F203/Debug/F203 VER 4.list

48966 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 00016860 080001f8 080001f8 000101f8 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .rodata 000194c8 08016a58 08016a58 00026a58 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
3 .ARM 00000008 0802ff20 0802ff20 0003ff20 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
4 .init_array 00000004 0802ff28 0802ff28 0003ff28 2**2
CONTENTS, ALLOC, LOAD, DATA
5 .fini_array 00000004 0802ff2c 0802ff2c 0003ff2c 2**2
CONTENTS, ALLOC, LOAD, DATA
6 .data 00000888 20020000 0802ff30 00040000 2**2
CONTENTS, ALLOC, LOAD, DATA
7 .dtcmram 00000000 20000000 20000000 00040888 2**0
CONTENTS
8 .sram2 00000000 2007c000 2007c000 00040888 2**0
CONTENTS
9 .bss 0004bd3c 20020888 20020888 00040888 2**2
ALLOC
10 ._user_heap_stack 00000600 2006c5c4 2006c5c4 00040888 2**0
ALLOC
11 .ARM.attributes 0000002e 00000000 00000000 00040888 2**0
CONTENTS, READONLY
12 .debug_info 000305d6 00000000 00000000 000408b6 2**0
CONTENTS, READONLY, DEBUGGING
13 .debug_abbrev 0000457a 00000000 00000000 00070e8c 2**0
CONTENTS, READONLY, DEBUGGING
14 .debug_aranges 00001650 00000000 00000000 00075408 2**3
CONTENTS, READONLY, DEBUGGING
15 .debug_ranges 00001480 00000000 00000000 00076a58 2**3
CONTENTS, READONLY, DEBUGGING
16 .debug_line 0000f03c 00000000 00000000 00077ed8 2**0
CONTENTS, READONLY, DEBUGGING
17 .debug_str 00009225 00000000 00000000 00086f14 2**0
CONTENTS, READONLY, DEBUGGING
18 .comment 0000007c 00000000 00000000 00090139 2**0
CONTENTS, READONLY
19 .debug_frame 00005c8c 00000000 00000000 000901b8 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: 20020888 .word 0x20020888
8000214: 00000000 .word 0x00000000
8000218: 08016a40 .word 0x08016a40
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: 2002088c .word 0x2002088c
8000234: 08016a40 .word 0x08016a40
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 fc35 bl 8004dd0 <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 fe0f bl 8013190 <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 fdf0 bl 8013160 <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 fdff bl 8013190 <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 fdfa bl 8013190 <HAL_GPIO_WritePin>
HAL_Delay(300);
800059c: f44f 7096 mov.w r0, #300 ; 0x12c
80005a0: f011 faca bl 8011b38 <HAL_Delay>
while(1);
80005a4: e7fe b.n 80005a4 <Off+0x4c>
80005a6: bf00 nop
80005a8: 200208b8 .word 0x200208b8
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 fe1d bl 8012234 <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 fda6 bl 8006150 <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 ff82 bl 8012510 <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 fd9d bl 8006150 <Error_Handler>
}
}
8000616: bf00 nop
8000618: bd80 pop {r7, pc}
800061a: bf00 nop
800061c: 2006bb10 .word 0x2006bb10
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 faa2 bl 8012bcc <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: 2006bb68 .word 0x2006bb68
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: f012 f8c2 bl 8012838 <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: f012 fa0b bl 8012aec <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: f012 f83f bl 8012780 <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: f012 f8b1 bl 801287c <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: 200208a4 .word 0x200208a4
8000728: 081c0000 .word 0x081c0000
800072c: 2006bd88 .word 0x2006bd88
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: f016 f962 bl 8016a08 <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: 2006bd88 .word 0x2006bd88
8000794: 2006bb88 .word 0x2006bb88
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 fc94 bl 8013190 <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 fc8e bl 8013190 <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 fc89 bl 8013190 <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 fc83 bl 8013190 <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 fc7d bl 8013190 <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 faad bl 8012e0c <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: f012 fa9e bl 8012e0c <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: f012 fa8f bl 8012e0c <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: f012 fa80 bl 8012e0c <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: f012 fa74 bl 8012e0c <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: f012 fa66 bl 8012e0c <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 fc22 bl 8013190 <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 fc1d bl 8013190 <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 fc17 bl 8013190 <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 fbfe bl 8013190 <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 fbf9 bl 8013190 <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 fbf4 bl 8013190 <HAL_GPIO_WritePin>
}
80009a8: bf00 nop
80009aa: bd80 pop {r7, pc}
80009ac: 200208bc .word 0x200208bc
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 fbc3 bl 8013160 <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 fbd1 bl 8013190 <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 fbcc bl 8013190 <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 fbc7 bl 8013190 <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 fbc2 bl 8013190 <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 fba5 bl 8013160 <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 fbb1 bl 8013190 <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 fbac bl 8013190 <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 fb8f bl 8013160 <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 fb9b bl 8013190 <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 fb96 bl 8013190 <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 fb79 bl 8013160 <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 fb85 bl 8013190 <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: 200208bc .word 0x200208bc
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: 200208c8 .word 0x200208c8
8000b70: 20020012 .word 0x20020012
8000b74: 20020014 .word 0x20020014
8000b78: 200208ba .word 0x200208ba
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 < 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: 2b07 cmp r3, #7
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 fe7b bl 8010a90 <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 < 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: 2b07 cmp r3, #7
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 fe16 bl 8010a90 <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: 200208c0 .word 0x200208c0
8000e9c: 2006c044 .word 0x2006c044
8000ea0: 2006b968 .word 0x2006b968
8000ea4: 2006c034 .word 0x2006c034
8000ea8: 200208b9 .word 0x200208b9
8000eac: 200208c4 .word 0x200208c4
8000eb0: 20020010 .word 0x20020010
8000eb4: 2006bb88 .word 0x2006bb88
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 < mV)
8000eee: 4b93 ldr r3, [pc, #588] ; (800113c <keyIns+0x5c0>)
8000ef0: 8e5b ldrh r3, [r3, #50] ; 0x32
8000ef2: b29b uxth r3, r3
8000ef4: 2b07 cmp r3, #7
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 fdab bl 8010a90 <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 < mV)
8000f9e: 4b67 ldr r3, [pc, #412] ; (800113c <keyIns+0x5c0>)
8000fa0: 8a5b ldrh r3, [r3, #18]
8000fa2: b29b uxth r3, r3
8000fa4: 2b07 cmp r3, #7
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 fd53 bl 8010a90 <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 fcc5 bl 8010a90 <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: 200208c4 .word 0x200208c4
800113c: 2006bb88 .word 0x2006bb88
8001140: 2006b948 .word 0x2006b948
8001144: 200208b9 .word 0x200208b9
8001148: 2006b94c .word 0x2006b94c
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 fc3d bl 8010a90 <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 fbc1 bl 8010a90 <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: 2006b948 .word 0x2006b948
80013ac: 2002002c .word 0x2002002c
80013b0: 20020010 .word 0x20020010
80013b4: 200208c4 .word 0x200208c4
80013b8: 2006bb88 .word 0x2006bb88
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 fb3a bl 8010a90 <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: 2006b948 .word 0x2006b948
8001678: 20020010 .word 0x20020010
800167c: 200208c4 .word 0x200208c4
8001680: 2006bb88 .word 0x2006bb88
8001684: 2002002c .word 0x2002002c
8001688: 200208b9 .word 0x200208b9
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 = mV;
80016a8: 4ba8 ldr r3, [pc, #672] ; (800194c <keyIns+0xdd0>)
80016aa: 2208 movs r2, #8
80016ac: 825a strh r2, [r3, #18]
if(WriteChannel(Ch1))
80016ae: 2000 movs r0, #0
80016b0: f00f f9ee bl 8010a90 <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 = mV;
8001758: 4b7c ldr r3, [pc, #496] ; (800194c <keyIns+0xdd0>)
800175a: 2208 movs r2, #8
800175c: 865a strh r2, [r3, #50] ; 0x32
if(WriteChannel(Ch2))
800175e: 2001 movs r0, #1
8001760: f00f f996 bl 8010a90 <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 = mV;
800181c: 4b4b ldr r3, [pc, #300] ; (800194c <keyIns+0xdd0>)
800181e: 2208 movs r2, #8
8001820: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
if(WriteChannel(Ch3))
8001824: 2002 movs r0, #2
8001826: f00f f933 bl 8010a90 <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 = mV;
80018e6: 4b19 ldr r3, [pc, #100] ; (800194c <keyIns+0xdd0>)
80018e8: 2208 movs r2, #8
80018ea: f8a3 2072 strh.w r2, [r3, #114] ; 0x72
if(WriteChannel(Ch4))
80018ee: 2003 movs r0, #3
80018f0: f00f f8ce bl 8010a90 <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: 2006bb88 .word 0x2006bb88
8001950: 20020010 .word 0x20020010
8001954: 200208c4 .word 0x200208c4
8001958: 2006b948 .word 0x2006b948
else if(menupos >= Kikdt_3 && menupos <= Kpt_3) ACTIVE_CHANNEL = Ch3;
800195c: 4ba1 ldr r3, [pc, #644] ; (8001be4 <keyIns+0x1068>)
800195e: 781b ldrb r3, [r3, #0]
8001960: b2db uxtb r3, r3
8001962: 2b11 cmp r3, #17
8001964: d908 bls.n 8001978 <keyIns+0xdfc>
8001966: 4b9f ldr r3, [pc, #636] ; (8001be4 <keyIns+0x1068>)
8001968: 781b ldrb r3, [r3, #0]
800196a: b2db uxtb r3, r3
800196c: 2b17 cmp r3, #23
800196e: d803 bhi.n 8001978 <keyIns+0xdfc>
8001970: 4b9d ldr r3, [pc, #628] ; (8001be8 <keyIns+0x106c>)
8001972: 2202 movs r2, #2
8001974: 601a str r2, [r3, #0]
8001976: e00c b.n 8001992 <keyIns+0xe16>
else if(menupos >= Kikdt_4 && menupos <= Kpt_4) ACTIVE_CHANNEL = Ch4;
8001978: 4b9a ldr r3, [pc, #616] ; (8001be4 <keyIns+0x1068>)
800197a: 781b ldrb r3, [r3, #0]
800197c: b2db uxtb r3, r3
800197e: 2b19 cmp r3, #25
8001980: d907 bls.n 8001992 <keyIns+0xe16>
8001982: 4b98 ldr r3, [pc, #608] ; (8001be4 <keyIns+0x1068>)
8001984: 781b ldrb r3, [r3, #0]
8001986: b2db uxtb r3, r3
8001988: 2b1f cmp r3, #31
800198a: d802 bhi.n 8001992 <keyIns+0xe16>
800198c: 4b96 ldr r3, [pc, #600] ; (8001be8 <keyIns+0x106c>)
800198e: 2203 movs r2, #3
8001990: 601a str r2, [r3, #0]
DoKeyDN();
8001992: f002 f859 bl 8003a48 <DoKeyDN>
break;
8001996: f000 bc6a b.w 800226e <keyIns+0x16f2>
if(menu == MAIN)
800199a: 4b94 ldr r3, [pc, #592] ; (8001bec <keyIns+0x1070>)
800199c: 781b ldrb r3, [r3, #0]
800199e: b2db uxtb r3, r3
80019a0: 2b00 cmp r3, #0
80019a2: f040 812b bne.w 8001bfc <keyIns+0x1080>
if(CNT_CHANNELS < 5)
80019a6: 4b92 ldr r3, [pc, #584] ; (8001bf0 <keyIns+0x1074>)
80019a8: 681b ldr r3, [r3, #0]
80019aa: 2b04 cmp r3, #4
80019ac: f200 845f bhi.w 800226e <keyIns+0x16f2>
if(ACTIVE_CHANNEL == Ch1)
80019b0: 4b8d ldr r3, [pc, #564] ; (8001be8 <keyIns+0x106c>)
80019b2: 681b ldr r3, [r3, #0]
80019b4: 2b00 cmp r3, #0
80019b6: d143 bne.n 8001a40 <keyIns+0xec4>
if(menupos == Out)
80019b8: 4b8a ldr r3, [pc, #552] ; (8001be4 <keyIns+0x1068>)
80019ba: 781b ldrb r3, [r3, #0]
80019bc: b2db uxtb r3, r3
80019be: 2b02 cmp r3, #2
80019c0: d13a bne.n 8001a38 <keyIns+0xebc>
if(focused)
80019c2: 4b8c ldr r3, [pc, #560] ; (8001bf4 <keyIns+0x1078>)
80019c4: 781b ldrb r3, [r3, #0]
80019c6: b2db uxtb r3, r3
80019c8: 2b00 cmp r3, #0
80019ca: d003 beq.n 80019d4 <keyIns+0xe58>
SetDN();
80019cc: f001 f888 bl 8002ae0 <SetDN>
break;
80019d0: f000 bc4d b.w 800226e <keyIns+0x16f2>
ACTIVE_CHANNEL = Ch2;
80019d4: 4b84 ldr r3, [pc, #528] ; (8001be8 <keyIns+0x106c>)
80019d6: 2201 movs r2, #1
80019d8: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
80019da: 4b83 ldr r3, [pc, #524] ; (8001be8 <keyIns+0x106c>)
80019dc: 681b ldr r3, [r3, #0]
80019de: 2201 movs r2, #1
80019e0: fa02 f303 lsl.w r3, r2, r3
80019e4: 461a mov r2, r3
80019e6: 4b84 ldr r3, [pc, #528] ; (8001bf8 <keyIns+0x107c>)
80019e8: 681b ldr r3, [r3, #0]
80019ea: 4013 ands r3, r2
80019ec: 2b00 cmp r3, #0
80019ee: d11e bne.n 8001a2e <keyIns+0xeb2>
ACTIVE_CHANNEL = Ch3;
80019f0: 4b7d ldr r3, [pc, #500] ; (8001be8 <keyIns+0x106c>)
80019f2: 2202 movs r2, #2
80019f4: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
80019f6: 4b7c ldr r3, [pc, #496] ; (8001be8 <keyIns+0x106c>)
80019f8: 681b ldr r3, [r3, #0]
80019fa: 2201 movs r2, #1
80019fc: fa02 f303 lsl.w r3, r2, r3
8001a00: 461a mov r2, r3
8001a02: 4b7d ldr r3, [pc, #500] ; (8001bf8 <keyIns+0x107c>)
8001a04: 681b ldr r3, [r3, #0]
8001a06: 4013 ands r3, r2
8001a08: 2b00 cmp r3, #0
8001a0a: d110 bne.n 8001a2e <keyIns+0xeb2>
ACTIVE_CHANNEL = Ch4;
8001a0c: 4b76 ldr r3, [pc, #472] ; (8001be8 <keyIns+0x106c>)
8001a0e: 2203 movs r2, #3
8001a10: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001a12: 4b75 ldr r3, [pc, #468] ; (8001be8 <keyIns+0x106c>)
8001a14: 681b ldr r3, [r3, #0]
8001a16: 2201 movs r2, #1
8001a18: fa02 f303 lsl.w r3, r2, r3
8001a1c: 461a mov r2, r3
8001a1e: 4b76 ldr r3, [pc, #472] ; (8001bf8 <keyIns+0x107c>)
8001a20: 681b ldr r3, [r3, #0]
8001a22: 4013 ands r3, r2
8001a24: 2b00 cmp r3, #0
8001a26: d102 bne.n 8001a2e <keyIns+0xeb2>
ACTIVE_CHANNEL = Ch1;
8001a28: 4b6f ldr r3, [pc, #444] ; (8001be8 <keyIns+0x106c>)
8001a2a: 2200 movs r2, #0
8001a2c: 601a str r2, [r3, #0]
menupos = Hp;
8001a2e: 4b6d ldr r3, [pc, #436] ; (8001be4 <keyIns+0x1068>)
8001a30: 2200 movs r2, #0
8001a32: 701a strb r2, [r3, #0]
break;
8001a34: f000 bc1b b.w 800226e <keyIns+0x16f2>
SetDN();
8001a38: f001 f852 bl 8002ae0 <SetDN>
break;
8001a3c: f000 bc17 b.w 800226e <keyIns+0x16f2>
if(ACTIVE_CHANNEL == Ch2)
8001a40: 4b69 ldr r3, [pc, #420] ; (8001be8 <keyIns+0x106c>)
8001a42: 681b ldr r3, [r3, #0]
8001a44: 2b01 cmp r3, #1
8001a46: d141 bne.n 8001acc <keyIns+0xf50>
if(menupos == Out)
8001a48: 4b66 ldr r3, [pc, #408] ; (8001be4 <keyIns+0x1068>)
8001a4a: 781b ldrb r3, [r3, #0]
8001a4c: b2db uxtb r3, r3
8001a4e: 2b02 cmp r3, #2
8001a50: d139 bne.n 8001ac6 <keyIns+0xf4a>
if(focused)
8001a52: 4b68 ldr r3, [pc, #416] ; (8001bf4 <keyIns+0x1078>)
8001a54: 781b ldrb r3, [r3, #0]
8001a56: b2db uxtb r3, r3
8001a58: 2b00 cmp r3, #0
8001a5a: d003 beq.n 8001a64 <keyIns+0xee8>
SetDN();
8001a5c: f001 f840 bl 8002ae0 <SetDN>
break;
8001a60: f000 bc05 b.w 800226e <keyIns+0x16f2>
ACTIVE_CHANNEL = Ch3;
8001a64: 4b60 ldr r3, [pc, #384] ; (8001be8 <keyIns+0x106c>)
8001a66: 2202 movs r2, #2
8001a68: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001a6a: 4b5f ldr r3, [pc, #380] ; (8001be8 <keyIns+0x106c>)
8001a6c: 681b ldr r3, [r3, #0]
8001a6e: 2201 movs r2, #1
8001a70: fa02 f303 lsl.w r3, r2, r3
8001a74: 461a mov r2, r3
8001a76: 4b60 ldr r3, [pc, #384] ; (8001bf8 <keyIns+0x107c>)
8001a78: 681b ldr r3, [r3, #0]
8001a7a: 4013 ands r3, r2
8001a7c: 2b00 cmp r3, #0
8001a7e: d11e bne.n 8001abe <keyIns+0xf42>
ACTIVE_CHANNEL = Ch4;
8001a80: 4b59 ldr r3, [pc, #356] ; (8001be8 <keyIns+0x106c>)
8001a82: 2203 movs r2, #3
8001a84: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001a86: 4b58 ldr r3, [pc, #352] ; (8001be8 <keyIns+0x106c>)
8001a88: 681b ldr r3, [r3, #0]
8001a8a: 2201 movs r2, #1
8001a8c: fa02 f303 lsl.w r3, r2, r3
8001a90: 461a mov r2, r3
8001a92: 4b59 ldr r3, [pc, #356] ; (8001bf8 <keyIns+0x107c>)
8001a94: 681b ldr r3, [r3, #0]
8001a96: 4013 ands r3, r2
8001a98: 2b00 cmp r3, #0
8001a9a: d110 bne.n 8001abe <keyIns+0xf42>
ACTIVE_CHANNEL = Ch1;
8001a9c: 4b52 ldr r3, [pc, #328] ; (8001be8 <keyIns+0x106c>)
8001a9e: 2200 movs r2, #0
8001aa0: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001aa2: 4b51 ldr r3, [pc, #324] ; (8001be8 <keyIns+0x106c>)
8001aa4: 681b ldr r3, [r3, #0]
8001aa6: 2201 movs r2, #1
8001aa8: fa02 f303 lsl.w r3, r2, r3
8001aac: 461a mov r2, r3
8001aae: 4b52 ldr r3, [pc, #328] ; (8001bf8 <keyIns+0x107c>)
8001ab0: 681b ldr r3, [r3, #0]
8001ab2: 4013 ands r3, r2
8001ab4: 2b00 cmp r3, #0
8001ab6: d102 bne.n 8001abe <keyIns+0xf42>
ACTIVE_CHANNEL = Ch2;
8001ab8: 4b4b ldr r3, [pc, #300] ; (8001be8 <keyIns+0x106c>)
8001aba: 2201 movs r2, #1
8001abc: 601a str r2, [r3, #0]
menupos = Hp;
8001abe: 4b49 ldr r3, [pc, #292] ; (8001be4 <keyIns+0x1068>)
8001ac0: 2200 movs r2, #0
8001ac2: 701a strb r2, [r3, #0]
break;
8001ac4: e3d3 b.n 800226e <keyIns+0x16f2>
SetDN();
8001ac6: f001 f80b bl 8002ae0 <SetDN>
break;
8001aca: e3d0 b.n 800226e <keyIns+0x16f2>
if(ACTIVE_CHANNEL == Ch3)
8001acc: 4b46 ldr r3, [pc, #280] ; (8001be8 <keyIns+0x106c>)
8001ace: 681b ldr r3, [r3, #0]
8001ad0: 2b02 cmp r3, #2
8001ad2: d140 bne.n 8001b56 <keyIns+0xfda>
if(menupos == Out)
8001ad4: 4b43 ldr r3, [pc, #268] ; (8001be4 <keyIns+0x1068>)
8001ad6: 781b ldrb r3, [r3, #0]
8001ad8: b2db uxtb r3, r3
8001ada: 2b02 cmp r3, #2
8001adc: d138 bne.n 8001b50 <keyIns+0xfd4>
if(focused)
8001ade: 4b45 ldr r3, [pc, #276] ; (8001bf4 <keyIns+0x1078>)
8001ae0: 781b ldrb r3, [r3, #0]
8001ae2: b2db uxtb r3, r3
8001ae4: 2b00 cmp r3, #0
8001ae6: d002 beq.n 8001aee <keyIns+0xf72>
SetDN();
8001ae8: f000 fffa bl 8002ae0 <SetDN>
break;
8001aec: e3bf b.n 800226e <keyIns+0x16f2>
ACTIVE_CHANNEL = Ch4;
8001aee: 4b3e ldr r3, [pc, #248] ; (8001be8 <keyIns+0x106c>)
8001af0: 2203 movs r2, #3
8001af2: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001af4: 4b3c ldr r3, [pc, #240] ; (8001be8 <keyIns+0x106c>)
8001af6: 681b ldr r3, [r3, #0]
8001af8: 2201 movs r2, #1
8001afa: fa02 f303 lsl.w r3, r2, r3
8001afe: 461a mov r2, r3
8001b00: 4b3d ldr r3, [pc, #244] ; (8001bf8 <keyIns+0x107c>)
8001b02: 681b ldr r3, [r3, #0]
8001b04: 4013 ands r3, r2
8001b06: 2b00 cmp r3, #0
8001b08: d11e bne.n 8001b48 <keyIns+0xfcc>
ACTIVE_CHANNEL = Ch1;
8001b0a: 4b37 ldr r3, [pc, #220] ; (8001be8 <keyIns+0x106c>)
8001b0c: 2200 movs r2, #0
8001b0e: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001b10: 4b35 ldr r3, [pc, #212] ; (8001be8 <keyIns+0x106c>)
8001b12: 681b ldr r3, [r3, #0]
8001b14: 2201 movs r2, #1
8001b16: fa02 f303 lsl.w r3, r2, r3
8001b1a: 461a mov r2, r3
8001b1c: 4b36 ldr r3, [pc, #216] ; (8001bf8 <keyIns+0x107c>)
8001b1e: 681b ldr r3, [r3, #0]
8001b20: 4013 ands r3, r2
8001b22: 2b00 cmp r3, #0
8001b24: d110 bne.n 8001b48 <keyIns+0xfcc>
ACTIVE_CHANNEL = Ch2;
8001b26: 4b30 ldr r3, [pc, #192] ; (8001be8 <keyIns+0x106c>)
8001b28: 2201 movs r2, #1
8001b2a: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001b2c: 4b2e ldr r3, [pc, #184] ; (8001be8 <keyIns+0x106c>)
8001b2e: 681b ldr r3, [r3, #0]
8001b30: 2201 movs r2, #1
8001b32: fa02 f303 lsl.w r3, r2, r3
8001b36: 461a mov r2, r3
8001b38: 4b2f ldr r3, [pc, #188] ; (8001bf8 <keyIns+0x107c>)
8001b3a: 681b ldr r3, [r3, #0]
8001b3c: 4013 ands r3, r2
8001b3e: 2b00 cmp r3, #0
8001b40: d102 bne.n 8001b48 <keyIns+0xfcc>
ACTIVE_CHANNEL = Ch3;
8001b42: 4b29 ldr r3, [pc, #164] ; (8001be8 <keyIns+0x106c>)
8001b44: 2202 movs r2, #2
8001b46: 601a str r2, [r3, #0]
menupos = Hp;
8001b48: 4b26 ldr r3, [pc, #152] ; (8001be4 <keyIns+0x1068>)
8001b4a: 2200 movs r2, #0
8001b4c: 701a strb r2, [r3, #0]
break;
8001b4e: e38e b.n 800226e <keyIns+0x16f2>
SetDN();
8001b50: f000 ffc6 bl 8002ae0 <SetDN>
break;
8001b54: e38b b.n 800226e <keyIns+0x16f2>
if(ACTIVE_CHANNEL == Ch4)
8001b56: 4b24 ldr r3, [pc, #144] ; (8001be8 <keyIns+0x106c>)
8001b58: 681b ldr r3, [r3, #0]
8001b5a: 2b03 cmp r3, #3
8001b5c: f040 8387 bne.w 800226e <keyIns+0x16f2>
if(menupos == Out)
8001b60: 4b20 ldr r3, [pc, #128] ; (8001be4 <keyIns+0x1068>)
8001b62: 781b ldrb r3, [r3, #0]
8001b64: b2db uxtb r3, r3
8001b66: 2b02 cmp r3, #2
8001b68: d138 bne.n 8001bdc <keyIns+0x1060>
if(focused)
8001b6a: 4b22 ldr r3, [pc, #136] ; (8001bf4 <keyIns+0x1078>)
8001b6c: 781b ldrb r3, [r3, #0]
8001b6e: b2db uxtb r3, r3
8001b70: 2b00 cmp r3, #0
8001b72: d002 beq.n 8001b7a <keyIns+0xffe>
SetDN();
8001b74: f000 ffb4 bl 8002ae0 <SetDN>
break;
8001b78: e379 b.n 800226e <keyIns+0x16f2>
ACTIVE_CHANNEL = Ch1;
8001b7a: 4b1b ldr r3, [pc, #108] ; (8001be8 <keyIns+0x106c>)
8001b7c: 2200 movs r2, #0
8001b7e: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001b80: 4b19 ldr r3, [pc, #100] ; (8001be8 <keyIns+0x106c>)
8001b82: 681b ldr r3, [r3, #0]
8001b84: 2201 movs r2, #1
8001b86: fa02 f303 lsl.w r3, r2, r3
8001b8a: 461a mov r2, r3
8001b8c: 4b1a ldr r3, [pc, #104] ; (8001bf8 <keyIns+0x107c>)
8001b8e: 681b ldr r3, [r3, #0]
8001b90: 4013 ands r3, r2
8001b92: 2b00 cmp r3, #0
8001b94: d11e bne.n 8001bd4 <keyIns+0x1058>
ACTIVE_CHANNEL = Ch2;
8001b96: 4b14 ldr r3, [pc, #80] ; (8001be8 <keyIns+0x106c>)
8001b98: 2201 movs r2, #1
8001b9a: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001b9c: 4b12 ldr r3, [pc, #72] ; (8001be8 <keyIns+0x106c>)
8001b9e: 681b ldr r3, [r3, #0]
8001ba0: 2201 movs r2, #1
8001ba2: fa02 f303 lsl.w r3, r2, r3
8001ba6: 461a mov r2, r3
8001ba8: 4b13 ldr r3, [pc, #76] ; (8001bf8 <keyIns+0x107c>)
8001baa: 681b ldr r3, [r3, #0]
8001bac: 4013 ands r3, r2
8001bae: 2b00 cmp r3, #0
8001bb0: d110 bne.n 8001bd4 <keyIns+0x1058>
ACTIVE_CHANNEL = Ch3;
8001bb2: 4b0d ldr r3, [pc, #52] ; (8001be8 <keyIns+0x106c>)
8001bb4: 2202 movs r2, #2
8001bb6: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001bb8: 4b0b ldr r3, [pc, #44] ; (8001be8 <keyIns+0x106c>)
8001bba: 681b ldr r3, [r3, #0]
8001bbc: 2201 movs r2, #1
8001bbe: fa02 f303 lsl.w r3, r2, r3
8001bc2: 461a mov r2, r3
8001bc4: 4b0c ldr r3, [pc, #48] ; (8001bf8 <keyIns+0x107c>)
8001bc6: 681b ldr r3, [r3, #0]
8001bc8: 4013 ands r3, r2
8001bca: 2b00 cmp r3, #0
8001bcc: d102 bne.n 8001bd4 <keyIns+0x1058>
ACTIVE_CHANNEL = Ch4;
8001bce: 4b06 ldr r3, [pc, #24] ; (8001be8 <keyIns+0x106c>)
8001bd0: 2203 movs r2, #3
8001bd2: 601a str r2, [r3, #0]
menupos = Hp;
8001bd4: 4b03 ldr r3, [pc, #12] ; (8001be4 <keyIns+0x1068>)
8001bd6: 2200 movs r2, #0
8001bd8: 701a strb r2, [r3, #0]
break;
8001bda: e348 b.n 800226e <keyIns+0x16f2>
SetDN();
8001bdc: f000 ff80 bl 8002ae0 <SetDN>
break;
8001be0: e345 b.n 800226e <keyIns+0x16f2>
8001be2: bf00 nop
8001be4: 20020010 .word 0x20020010
8001be8: 2006b948 .word 0x2006b948
8001bec: 200208b9 .word 0x200208b9
8001bf0: 2006b94c .word 0x2006b94c
8001bf4: 200208c4 .word 0x200208c4
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 fdfe bl 8016a08 <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: f00f f946 bl 80110ec <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 fdc8 bl 8016a08 <memcpy>
if(menupos < Kpt_1)
8001e78: e1ce b.n 8002218 <keyIns+0x169c>
WriteChannel(Ch1);
8001e7a: 2000 movs r0, #0
8001e7c: f00e fe08 bl 8010a90 <WriteChannel>
if(menupos < Kpt_1)
8001e80: e1ca b.n 8002218 <keyIns+0x169c>
8001e82: bf00 nop
8001e84: 200208b9 .word 0x200208b9
8001e88: 20020010 .word 0x20020010
8001e8c: 2006b944 .word 0x2006b944
8001e90: 2006b948 .word 0x2006b948
8001e94: 20020011 .word 0x20020011
8001e98: 200208c4 .word 0x200208c4
8001e9c: 2006bdfc .word 0x2006bdfc
8001ea0: 2006bb88 .word 0x2006bb88
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 fda4 bl 8016a08 <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: f00f f8ec bl 80110ec <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 fd6e bl 8016a08 <memcpy>
if(menupos < Kpt_2)
8001f2c: e174 b.n 8002218 <keyIns+0x169c>
WriteChannel(Ch2);
8001f2e: 2001 movs r0, #1
8001f30: f00e fdae bl 8010a90 <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 fd5b bl 8016a08 <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: f00f f8a3 bl 80110ec <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 fd25 bl 8016a08 <memcpy>
if(menupos < Kpt_3)
8001fbe: e12b b.n 8002218 <keyIns+0x169c>
WriteChannel(Ch3);
8001fc0: 2002 movs r0, #2
8001fc2: f00e fd65 bl 8010a90 <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 fd12 bl 8016a08 <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: f00f f858 bl 80110ec <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 fcda bl 8016a08 <memcpy>
break;
8002054: e10d b.n 8002272 <keyIns+0x16f6>
WriteChannel(Ch4);
8002056: 2003 movs r0, #3
8002058: f00e fd1a bl 8010a90 <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: f00f f95b bl 8011374 <Calibr>
break;
80020be: e0d8 b.n 8002272 <keyIns+0x16f6>
CalibrOFF();
80020c0: f00f fbd2 bl 8011868 <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: f00f f928 bl 8011374 <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: f00f fa58 bl 80115f8 <WriteCorr>
break;
8002148: e093 b.n 8002272 <keyIns+0x16f6>
800214a: bf00 nop
800214c: 20020010 .word 0x20020010
8002150: 2006bdfc .word 0x2006bdfc
8002154: 2006bb88 .word 0x2006bb88
8002158: 200208c4 .word 0x200208c4
800215c: 200208b9 .word 0x200208b9
8002160: 2006b948 .word 0x2006b948
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: f00f fa39 bl 80115f8 <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: f00f fa27 bl 80115f8 <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: f00f fa15 bl 80115f8 <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: f00f fa03 bl 80115f8 <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: f00f f9f1 bl 80115f8 <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: 2006b948 .word 0x2006b948
8002288: 200208b9 .word 0x200208b9
800228c: 2006b944 .word 0x2006b944
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 fbd1 bl 8010a90 <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 fb7c bl 8010a90 <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 fb37 bl 8010a90 <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 faf2 bl 8010a90 <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: 200208c4 .word 0x200208c4
80024e0: 2006b948 .word 0x2006b948
80024e4: 2006bb88 .word 0x2006bb88
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 faa2 bl 8010a90 <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: f00e fa5d bl 8010a90 <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: f00e fa18 bl 8010a90 <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: f00e f9d3 bl 8010a90 <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: f00e f98e bl 8010a90 <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: 2006b948 .word 0x2006b948
80027a4: 2006bb88 .word 0x2006bb88
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: f00e f93a bl 8010a90 <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: f00e f8f5 bl 8010a90 <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: f00e f8b0 bl 8010a90 <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: f00e f86b bl 8010a90 <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: f00e f827 bl 8010a90 <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: 2006b948 .word 0x2006b948
8002a70: 2006bb88 .word 0x2006bb88
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 ffe6 bl 8010a90 <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: 2006b948 .word 0x2006b948
8002ad4: 2006bb88 .word 0x2006bb88
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 ffab bl 8010a90 <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 ff67 bl 8010a90 <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 ff1b bl 8010a90 <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 fee7 bl 8010a90 <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: 200208c4 .word 0x200208c4
8002cf4: 2006b948 .word 0x2006b948
8002cf8: 2006bb88 .word 0x2006bb88
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: 2006b948 .word 0x2006b948
8002e84: 2006bb88 .word 0x2006bb88
8002e88: 461c4000 .word 0x461c4000
8002e8c: 42c80000 .word 0x42c80000
8002e90: 447a0000 .word 0x447a0000
8002e94: 47c35000 .word 0x47c35000
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8002e98: 4baf ldr r3, [pc, #700] ; (8003158 <DoKeyUP+0x45c>)
8002e9a: 681b ldr r3, [r3, #0]
8002e9c: 4aaf ldr r2, [pc, #700] ; (800315c <DoKeyUP+0x460>)
8002e9e: 015b lsls r3, r3, #5
8002ea0: 4413 add r3, r2
8002ea2: 3318 adds r3, #24
8002ea4: edd3 7a00 vldr s15, [r3]
8002ea8: ed9f 7aad vldr s14, [pc, #692] ; 8003160 <DoKeyUP+0x464>
8002eac: eef4 7ac7 vcmpe.f32 s15, s14
8002eb0: eef1 fa10 vmrs APSR_nzcv, fpscr
8002eb4: db0b blt.n 8002ece <DoKeyUP+0x1d2>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
8002eb6: 4ba8 ldr r3, [pc, #672] ; (8003158 <DoKeyUP+0x45c>)
8002eb8: 681b ldr r3, [r3, #0]
8002eba: 4aa8 ldr r2, [pc, #672] ; (800315c <DoKeyUP+0x460>)
8002ebc: 015b lsls r3, r3, #5
8002ebe: 4413 add r3, r2
8002ec0: 3318 adds r3, #24
8002ec2: 4aa8 ldr r2, [pc, #672] ; (8003164 <DoKeyUP+0x468>)
8002ec4: 601a str r2, [r3, #0]
s = 99999;
8002ec6: 4ba8 ldr r3, [pc, #672] ; (8003168 <DoKeyUP+0x46c>)
8002ec8: 61fb str r3, [r7, #28]
ipt = 0;
8002eca: 2300 movs r3, #0
8002ecc: 607b str r3, [r7, #4]
}
ikdt = (s / 10000);
8002ece: 69fb ldr r3, [r7, #28]
8002ed0: 4aa6 ldr r2, [pc, #664] ; (800316c <DoKeyUP+0x470>)
8002ed2: fba2 2303 umull r2, r3, r2, r3
8002ed6: 0b5b lsrs r3, r3, #13
8002ed8: 61bb str r3, [r7, #24]
ikt = (s % 10000 / 1000);
8002eda: 69fa ldr r2, [r7, #28]
8002edc: 4ba3 ldr r3, [pc, #652] ; (800316c <DoKeyUP+0x470>)
8002ede: fba3 1302 umull r1, r3, r3, r2
8002ee2: 0b5b lsrs r3, r3, #13
8002ee4: f242 7110 movw r1, #10000 ; 0x2710
8002ee8: fb01 f303 mul.w r3, r1, r3
8002eec: 1ad3 subs r3, r2, r3
8002eee: 4aa0 ldr r2, [pc, #640] ; (8003170 <DoKeyUP+0x474>)
8002ef0: fba2 2303 umull r2, r3, r2, r3
8002ef4: 099b lsrs r3, r3, #6
8002ef6: 617b str r3, [r7, #20]
iks = (s % 10000 % 1000 / 100);
8002ef8: 69fa ldr r2, [r7, #28]
8002efa: 4b9c ldr r3, [pc, #624] ; (800316c <DoKeyUP+0x470>)
8002efc: fba3 1302 umull r1, r3, r3, r2
8002f00: 0b5b lsrs r3, r3, #13
8002f02: f242 7110 movw r1, #10000 ; 0x2710
8002f06: fb01 f303 mul.w r3, r1, r3
8002f0a: 1ad3 subs r3, r2, r3
8002f0c: 4a98 ldr r2, [pc, #608] ; (8003170 <DoKeyUP+0x474>)
8002f0e: fba2 1203 umull r1, r2, r2, r3
8002f12: 0992 lsrs r2, r2, #6
8002f14: f44f 717a mov.w r1, #1000 ; 0x3e8
8002f18: fb01 f202 mul.w r2, r1, r2
8002f1c: 1a9a subs r2, r3, r2
8002f1e: 4b95 ldr r3, [pc, #596] ; (8003174 <DoKeyUP+0x478>)
8002f20: fba3 2302 umull r2, r3, r3, r2
8002f24: 095b lsrs r3, r3, #5
8002f26: 613b str r3, [r7, #16]
ikd = (s % 10000 % 1000 % 100 / 10);
8002f28: 69fb ldr r3, [r7, #28]
8002f2a: 4a90 ldr r2, [pc, #576] ; (800316c <DoKeyUP+0x470>)
8002f2c: fba2 1203 umull r1, r2, r2, r3
8002f30: 0b52 lsrs r2, r2, #13
8002f32: f242 7110 movw r1, #10000 ; 0x2710
8002f36: fb01 f202 mul.w r2, r1, r2
8002f3a: 1a9a subs r2, r3, r2
8002f3c: 4b8c ldr r3, [pc, #560] ; (8003170 <DoKeyUP+0x474>)
8002f3e: fba3 1302 umull r1, r3, r3, r2
8002f42: 099b lsrs r3, r3, #6
8002f44: f44f 717a mov.w r1, #1000 ; 0x3e8
8002f48: fb01 f303 mul.w r3, r1, r3
8002f4c: 1ad3 subs r3, r2, r3
8002f4e: 4a89 ldr r2, [pc, #548] ; (8003174 <DoKeyUP+0x478>)
8002f50: fba2 1203 umull r1, r2, r2, r3
8002f54: 0952 lsrs r2, r2, #5
8002f56: 2164 movs r1, #100 ; 0x64
8002f58: fb01 f202 mul.w r2, r1, r2
8002f5c: 1a9a subs r2, r3, r2
8002f5e: 4b86 ldr r3, [pc, #536] ; (8003178 <DoKeyUP+0x47c>)
8002f60: fba3 2302 umull r2, r3, r3, r2
8002f64: 08db lsrs r3, r3, #3
8002f66: 60fb str r3, [r7, #12]
ike = (s % 10000 % 1000 % 100 % 10);
8002f68: 69fb ldr r3, [r7, #28]
8002f6a: 4a80 ldr r2, [pc, #512] ; (800316c <DoKeyUP+0x470>)
8002f6c: fba2 1203 umull r1, r2, r2, r3
8002f70: 0b52 lsrs r2, r2, #13
8002f72: f242 7110 movw r1, #10000 ; 0x2710
8002f76: fb01 f202 mul.w r2, r1, r2
8002f7a: 1a9a subs r2, r3, r2
8002f7c: 4b7c ldr r3, [pc, #496] ; (8003170 <DoKeyUP+0x474>)
8002f7e: fba3 1302 umull r1, r3, r3, r2
8002f82: 099b lsrs r3, r3, #6
8002f84: f44f 717a mov.w r1, #1000 ; 0x3e8
8002f88: fb01 f303 mul.w r3, r1, r3
8002f8c: 1ad3 subs r3, r2, r3
8002f8e: 4a79 ldr r2, [pc, #484] ; (8003174 <DoKeyUP+0x478>)
8002f90: fba2 1203 umull r1, r2, r2, r3
8002f94: 0952 lsrs r2, r2, #5
8002f96: 2164 movs r1, #100 ; 0x64
8002f98: fb01 f202 mul.w r2, r1, r2
8002f9c: 1a9a subs r2, r3, r2
8002f9e: 4b76 ldr r3, [pc, #472] ; (8003178 <DoKeyUP+0x47c>)
8002fa0: fba3 1302 umull r1, r3, r3, r2
8002fa4: 08d9 lsrs r1, r3, #3
8002fa6: 460b mov r3, r1
8002fa8: 009b lsls r3, r3, #2
8002faa: 440b add r3, r1
8002fac: 005b lsls r3, r3, #1
8002fae: 1ad3 subs r3, r2, r3
8002fb0: 60bb str r3, [r7, #8]
if(menupos == Kikdt_1 || menupos == Kikdt_2 || menupos == Kikdt_3 || menupos == Kikdt_4)
8002fb2: 4b72 ldr r3, [pc, #456] ; (800317c <DoKeyUP+0x480>)
8002fb4: 781b ldrb r3, [r3, #0]
8002fb6: b2db uxtb r3, r3
8002fb8: 2b02 cmp r3, #2
8002fba: d00f beq.n 8002fdc <DoKeyUP+0x2e0>
8002fbc: 4b6f ldr r3, [pc, #444] ; (800317c <DoKeyUP+0x480>)
8002fbe: 781b ldrb r3, [r3, #0]
8002fc0: b2db uxtb r3, r3
8002fc2: 2b0a cmp r3, #10
8002fc4: d00a beq.n 8002fdc <DoKeyUP+0x2e0>
8002fc6: 4b6d ldr r3, [pc, #436] ; (800317c <DoKeyUP+0x480>)
8002fc8: 781b ldrb r3, [r3, #0]
8002fca: b2db uxtb r3, r3
8002fcc: 2b12 cmp r3, #18
8002fce: d005 beq.n 8002fdc <DoKeyUP+0x2e0>
8002fd0: 4b6a ldr r3, [pc, #424] ; (800317c <DoKeyUP+0x480>)
8002fd2: 781b ldrb r3, [r3, #0]
8002fd4: b2db uxtb r3, r3
8002fd6: 2b1a cmp r3, #26
8002fd8: f040 80dc bne.w 8003194 <DoKeyUP+0x498>
{
if(ikdt < 9) {
8002fdc: 69bb ldr r3, [r7, #24]
8002fde: 2b08 cmp r3, #8
8002fe0: d802 bhi.n 8002fe8 <DoKeyUP+0x2ec>
ikdt++;
8002fe2: 69bb ldr r3, [r7, #24]
8002fe4: 3301 adds r3, #1
8002fe6: 61bb str r3, [r7, #24]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
8002fe8: 69bb ldr r3, [r7, #24]
8002fea: f242 7210 movw r2, #10000 ; 0x2710
8002fee: fb02 f203 mul.w r2, r2, r3
8002ff2: 697b ldr r3, [r7, #20]
8002ff4: f44f 717a mov.w r1, #1000 ; 0x3e8
8002ff8: fb01 f303 mul.w r3, r1, r3
8002ffc: 18d1 adds r1, r2, r3
8002ffe: 68fa ldr r2, [r7, #12]
8003000: 4613 mov r3, r2
8003002: 009b lsls r3, r3, #2
8003004: 4413 add r3, r2
8003006: 005b lsls r3, r3, #1
8003008: 4618 mov r0, r3
800300a: 693b ldr r3, [r7, #16]
800300c: 2264 movs r2, #100 ; 0x64
800300e: fb02 f303 mul.w r3, r2, r3
8003012: 4403 add r3, r0
8003014: 18ca adds r2, r1, r3
8003016: 68bb ldr r3, [r7, #8]
8003018: 4413 add r3, r2
800301a: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
800301c: 4b4e ldr r3, [pc, #312] ; (8003158 <DoKeyUP+0x45c>)
800301e: 681b ldr r3, [r3, #0]
8003020: 69fa ldr r2, [r7, #28]
8003022: ee07 2a90 vmov s15, r2
8003026: eef8 7a67 vcvt.f32.u32 s15, s15
800302a: 4a4c ldr r2, [pc, #304] ; (800315c <DoKeyUP+0x460>)
800302c: 015b lsls r3, r3, #5
800302e: 4413 add r3, r2
8003030: 3318 adds r3, #24
8003032: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8003036: 687b ldr r3, [r7, #4]
8003038: 2b01 cmp r3, #1
800303a: d112 bne.n 8003062 <DoKeyUP+0x366>
800303c: 4b46 ldr r3, [pc, #280] ; (8003158 <DoKeyUP+0x45c>)
800303e: 681b ldr r3, [r3, #0]
8003040: 4946 ldr r1, [pc, #280] ; (800315c <DoKeyUP+0x460>)
8003042: 015a lsls r2, r3, #5
8003044: 440a add r2, r1
8003046: 3218 adds r2, #24
8003048: edd2 7a00 vldr s15, [r2]
800304c: ed9f 7a4c vldr s14, [pc, #304] ; 8003180 <DoKeyUP+0x484>
8003050: ee67 7a87 vmul.f32 s15, s15, s14
8003054: 4a41 ldr r2, [pc, #260] ; (800315c <DoKeyUP+0x460>)
8003056: 015b lsls r3, r3, #5
8003058: 4413 add r3, r2
800305a: 3318 adds r3, #24
800305c: edc3 7a00 vstr s15, [r3]
8003060: e040 b.n 80030e4 <DoKeyUP+0x3e8>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8003062: 687b ldr r3, [r7, #4]
8003064: 2b02 cmp r3, #2
8003066: d112 bne.n 800308e <DoKeyUP+0x392>
8003068: 4b3b ldr r3, [pc, #236] ; (8003158 <DoKeyUP+0x45c>)
800306a: 681b ldr r3, [r3, #0]
800306c: 493b ldr r1, [pc, #236] ; (800315c <DoKeyUP+0x460>)
800306e: 015a lsls r2, r3, #5
8003070: 440a add r2, r1
8003072: 3218 adds r2, #24
8003074: edd2 7a00 vldr s15, [r2]
8003078: ed9f 7a42 vldr s14, [pc, #264] ; 8003184 <DoKeyUP+0x488>
800307c: ee67 7a87 vmul.f32 s15, s15, s14
8003080: 4a36 ldr r2, [pc, #216] ; (800315c <DoKeyUP+0x460>)
8003082: 015b lsls r3, r3, #5
8003084: 4413 add r3, r2
8003086: 3318 adds r3, #24
8003088: edc3 7a00 vstr s15, [r3]
800308c: e02a b.n 80030e4 <DoKeyUP+0x3e8>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
800308e: 687b ldr r3, [r7, #4]
8003090: 2b03 cmp r3, #3
8003092: d112 bne.n 80030ba <DoKeyUP+0x3be>
8003094: 4b30 ldr r3, [pc, #192] ; (8003158 <DoKeyUP+0x45c>)
8003096: 681b ldr r3, [r3, #0]
8003098: 4930 ldr r1, [pc, #192] ; (800315c <DoKeyUP+0x460>)
800309a: 015a lsls r2, r3, #5
800309c: 440a add r2, r1
800309e: 3218 adds r2, #24
80030a0: edd2 7a00 vldr s15, [r2]
80030a4: ed9f 7a38 vldr s14, [pc, #224] ; 8003188 <DoKeyUP+0x48c>
80030a8: ee67 7a87 vmul.f32 s15, s15, s14
80030ac: 4a2b ldr r2, [pc, #172] ; (800315c <DoKeyUP+0x460>)
80030ae: 015b lsls r3, r3, #5
80030b0: 4413 add r3, r2
80030b2: 3318 adds r3, #24
80030b4: edc3 7a00 vstr s15, [r3]
80030b8: e014 b.n 80030e4 <DoKeyUP+0x3e8>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
80030ba: 687b ldr r3, [r7, #4]
80030bc: 2b04 cmp r3, #4
80030be: d111 bne.n 80030e4 <DoKeyUP+0x3e8>
80030c0: 4b25 ldr r3, [pc, #148] ; (8003158 <DoKeyUP+0x45c>)
80030c2: 681b ldr r3, [r3, #0]
80030c4: 4925 ldr r1, [pc, #148] ; (800315c <DoKeyUP+0x460>)
80030c6: 015a lsls r2, r3, #5
80030c8: 440a add r2, r1
80030ca: 3218 adds r2, #24
80030cc: edd2 7a00 vldr s15, [r2]
80030d0: ed9f 7a2e vldr s14, [pc, #184] ; 800318c <DoKeyUP+0x490>
80030d4: ee67 7a87 vmul.f32 s15, s15, s14
80030d8: 4a20 ldr r2, [pc, #128] ; (800315c <DoKeyUP+0x460>)
80030da: 015b lsls r3, r3, #5
80030dc: 4413 add r3, r2
80030de: 3318 adds r3, #24
80030e0: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
80030e4: 4b1c ldr r3, [pc, #112] ; (8003158 <DoKeyUP+0x45c>)
80030e6: 681b ldr r3, [r3, #0]
80030e8: 4a1c ldr r2, [pc, #112] ; (800315c <DoKeyUP+0x460>)
80030ea: 015b lsls r3, r3, #5
80030ec: 4413 add r3, r2
80030ee: 3318 adds r3, #24
80030f0: edd3 7a00 vldr s15, [r3]
80030f4: eef5 7ac0 vcmpe.f32 s15, #0.0
80030f8: eef1 fa10 vmrs APSR_nzcv, fpscr
80030fc: d807 bhi.n 800310e <DoKeyUP+0x412>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
80030fe: 4b16 ldr r3, [pc, #88] ; (8003158 <DoKeyUP+0x45c>)
8003100: 681b ldr r3, [r3, #0]
8003102: 4a16 ldr r2, [pc, #88] ; (800315c <DoKeyUP+0x460>)
8003104: 015b lsls r3, r3, #5
8003106: 4413 add r3, r2
8003108: 3318 adds r3, #24
800310a: 4a21 ldr r2, [pc, #132] ; (8003190 <DoKeyUP+0x494>)
800310c: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
800310e: 4b12 ldr r3, [pc, #72] ; (8003158 <DoKeyUP+0x45c>)
8003110: 681b ldr r3, [r3, #0]
8003112: 4a12 ldr r2, [pc, #72] ; (800315c <DoKeyUP+0x460>)
8003114: 015b lsls r3, r3, #5
8003116: 4413 add r3, r2
8003118: 3318 adds r3, #24
800311a: edd3 7a00 vldr s15, [r3]
800311e: ed9f 7a10 vldr s14, [pc, #64] ; 8003160 <DoKeyUP+0x464>
8003122: eef4 7ac7 vcmpe.f32 s15, s14
8003126: eef1 fa10 vmrs APSR_nzcv, fpscr
800312a: db07 blt.n 800313c <DoKeyUP+0x440>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
800312c: 4b0a ldr r3, [pc, #40] ; (8003158 <DoKeyUP+0x45c>)
800312e: 681b ldr r3, [r3, #0]
8003130: 4a0a ldr r2, [pc, #40] ; (800315c <DoKeyUP+0x460>)
8003132: 015b lsls r3, r3, #5
8003134: 4413 add r3, r2
8003136: 3318 adds r3, #24
8003138: 4a0a ldr r2, [pc, #40] ; (8003164 <DoKeyUP+0x468>)
800313a: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
800313c: 4b06 ldr r3, [pc, #24] ; (8003158 <DoKeyUP+0x45c>)
800313e: 681b ldr r3, [r3, #0]
8003140: 4a06 ldr r2, [pc, #24] ; (800315c <DoKeyUP+0x460>)
8003142: 015b lsls r3, r3, #5
8003144: 4413 add r3, r2
8003146: 3318 adds r3, #24
8003148: edd3 7a00 vldr s15, [r3]
800314c: eeb0 0a67 vmov.f32 s0, s15
8003150: f001 fb20 bl 8004794 <VerifyGain>
8003154: f000 bc60 b.w 8003a18 <DoKeyUP+0xd1c>
8003158: 2006b948 .word 0x2006b948
800315c: 2006bb88 .word 0x2006bb88
8003160: 47c35000 .word 0x47c35000
8003164: 47c34f80 .word 0x47c34f80
8003168: 0001869f .word 0x0001869f
800316c: d1b71759 .word 0xd1b71759
8003170: 10624dd3 .word 0x10624dd3
8003174: 51eb851f .word 0x51eb851f
8003178: cccccccd .word 0xcccccccd
800317c: 20020010 .word 0x20020010
8003180: 3dcccccd .word 0x3dcccccd
8003184: 3c23d70a .word 0x3c23d70a
8003188: 3a83126f .word 0x3a83126f
800318c: 38d1b717 .word 0x38d1b717
8003190: 38d1b717 .word 0x38d1b717
}
else
if(menupos == Kikt_1 || menupos == Kikt_2 || menupos == Kikt_3 || menupos == Kikt_4)
8003194: 4baa ldr r3, [pc, #680] ; (8003440 <DoKeyUP+0x744>)
8003196: 781b ldrb r3, [r3, #0]
8003198: b2db uxtb r3, r3
800319a: 2b03 cmp r3, #3
800319c: d00f beq.n 80031be <DoKeyUP+0x4c2>
800319e: 4ba8 ldr r3, [pc, #672] ; (8003440 <DoKeyUP+0x744>)
80031a0: 781b ldrb r3, [r3, #0]
80031a2: b2db uxtb r3, r3
80031a4: 2b0b cmp r3, #11
80031a6: d00a beq.n 80031be <DoKeyUP+0x4c2>
80031a8: 4ba5 ldr r3, [pc, #660] ; (8003440 <DoKeyUP+0x744>)
80031aa: 781b ldrb r3, [r3, #0]
80031ac: b2db uxtb r3, r3
80031ae: 2b13 cmp r3, #19
80031b0: d005 beq.n 80031be <DoKeyUP+0x4c2>
80031b2: 4ba3 ldr r3, [pc, #652] ; (8003440 <DoKeyUP+0x744>)
80031b4: 781b ldrb r3, [r3, #0]
80031b6: b2db uxtb r3, r3
80031b8: 2b1b cmp r3, #27
80031ba: f040 80bd bne.w 8003338 <DoKeyUP+0x63c>
{
if(ikt < 9) {
80031be: 697b ldr r3, [r7, #20]
80031c0: 2b08 cmp r3, #8
80031c2: d802 bhi.n 80031ca <DoKeyUP+0x4ce>
ikt++;
80031c4: 697b ldr r3, [r7, #20]
80031c6: 3301 adds r3, #1
80031c8: 617b str r3, [r7, #20]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
80031ca: 69bb ldr r3, [r7, #24]
80031cc: f242 7210 movw r2, #10000 ; 0x2710
80031d0: fb02 f203 mul.w r2, r2, r3
80031d4: 697b ldr r3, [r7, #20]
80031d6: f44f 717a mov.w r1, #1000 ; 0x3e8
80031da: fb01 f303 mul.w r3, r1, r3
80031de: 18d1 adds r1, r2, r3
80031e0: 68fa ldr r2, [r7, #12]
80031e2: 4613 mov r3, r2
80031e4: 009b lsls r3, r3, #2
80031e6: 4413 add r3, r2
80031e8: 005b lsls r3, r3, #1
80031ea: 4618 mov r0, r3
80031ec: 693b ldr r3, [r7, #16]
80031ee: 2264 movs r2, #100 ; 0x64
80031f0: fb02 f303 mul.w r3, r2, r3
80031f4: 4403 add r3, r0
80031f6: 18ca adds r2, r1, r3
80031f8: 68bb ldr r3, [r7, #8]
80031fa: 4413 add r3, r2
80031fc: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
80031fe: 4b91 ldr r3, [pc, #580] ; (8003444 <DoKeyUP+0x748>)
8003200: 681b ldr r3, [r3, #0]
8003202: 69fa ldr r2, [r7, #28]
8003204: ee07 2a90 vmov s15, r2
8003208: eef8 7a67 vcvt.f32.u32 s15, s15
800320c: 4a8e ldr r2, [pc, #568] ; (8003448 <DoKeyUP+0x74c>)
800320e: 015b lsls r3, r3, #5
8003210: 4413 add r3, r2
8003212: 3318 adds r3, #24
8003214: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8003218: 687b ldr r3, [r7, #4]
800321a: 2b01 cmp r3, #1
800321c: d112 bne.n 8003244 <DoKeyUP+0x548>
800321e: 4b89 ldr r3, [pc, #548] ; (8003444 <DoKeyUP+0x748>)
8003220: 681b ldr r3, [r3, #0]
8003222: 4989 ldr r1, [pc, #548] ; (8003448 <DoKeyUP+0x74c>)
8003224: 015a lsls r2, r3, #5
8003226: 440a add r2, r1
8003228: 3218 adds r2, #24
800322a: edd2 7a00 vldr s15, [r2]
800322e: ed9f 7a87 vldr s14, [pc, #540] ; 800344c <DoKeyUP+0x750>
8003232: ee67 7a87 vmul.f32 s15, s15, s14
8003236: 4a84 ldr r2, [pc, #528] ; (8003448 <DoKeyUP+0x74c>)
8003238: 015b lsls r3, r3, #5
800323a: 4413 add r3, r2
800323c: 3318 adds r3, #24
800323e: edc3 7a00 vstr s15, [r3]
8003242: e040 b.n 80032c6 <DoKeyUP+0x5ca>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8003244: 687b ldr r3, [r7, #4]
8003246: 2b02 cmp r3, #2
8003248: d112 bne.n 8003270 <DoKeyUP+0x574>
800324a: 4b7e ldr r3, [pc, #504] ; (8003444 <DoKeyUP+0x748>)
800324c: 681b ldr r3, [r3, #0]
800324e: 497e ldr r1, [pc, #504] ; (8003448 <DoKeyUP+0x74c>)
8003250: 015a lsls r2, r3, #5
8003252: 440a add r2, r1
8003254: 3218 adds r2, #24
8003256: edd2 7a00 vldr s15, [r2]
800325a: ed9f 7a7d vldr s14, [pc, #500] ; 8003450 <DoKeyUP+0x754>
800325e: ee67 7a87 vmul.f32 s15, s15, s14
8003262: 4a79 ldr r2, [pc, #484] ; (8003448 <DoKeyUP+0x74c>)
8003264: 015b lsls r3, r3, #5
8003266: 4413 add r3, r2
8003268: 3318 adds r3, #24
800326a: edc3 7a00 vstr s15, [r3]
800326e: e02a b.n 80032c6 <DoKeyUP+0x5ca>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8003270: 687b ldr r3, [r7, #4]
8003272: 2b03 cmp r3, #3
8003274: d112 bne.n 800329c <DoKeyUP+0x5a0>
8003276: 4b73 ldr r3, [pc, #460] ; (8003444 <DoKeyUP+0x748>)
8003278: 681b ldr r3, [r3, #0]
800327a: 4973 ldr r1, [pc, #460] ; (8003448 <DoKeyUP+0x74c>)
800327c: 015a lsls r2, r3, #5
800327e: 440a add r2, r1
8003280: 3218 adds r2, #24
8003282: edd2 7a00 vldr s15, [r2]
8003286: ed9f 7a73 vldr s14, [pc, #460] ; 8003454 <DoKeyUP+0x758>
800328a: ee67 7a87 vmul.f32 s15, s15, s14
800328e: 4a6e ldr r2, [pc, #440] ; (8003448 <DoKeyUP+0x74c>)
8003290: 015b lsls r3, r3, #5
8003292: 4413 add r3, r2
8003294: 3318 adds r3, #24
8003296: edc3 7a00 vstr s15, [r3]
800329a: e014 b.n 80032c6 <DoKeyUP+0x5ca>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
800329c: 687b ldr r3, [r7, #4]
800329e: 2b04 cmp r3, #4
80032a0: d111 bne.n 80032c6 <DoKeyUP+0x5ca>
80032a2: 4b68 ldr r3, [pc, #416] ; (8003444 <DoKeyUP+0x748>)
80032a4: 681b ldr r3, [r3, #0]
80032a6: 4968 ldr r1, [pc, #416] ; (8003448 <DoKeyUP+0x74c>)
80032a8: 015a lsls r2, r3, #5
80032aa: 440a add r2, r1
80032ac: 3218 adds r2, #24
80032ae: edd2 7a00 vldr s15, [r2]
80032b2: ed9f 7a69 vldr s14, [pc, #420] ; 8003458 <DoKeyUP+0x75c>
80032b6: ee67 7a87 vmul.f32 s15, s15, s14
80032ba: 4a63 ldr r2, [pc, #396] ; (8003448 <DoKeyUP+0x74c>)
80032bc: 015b lsls r3, r3, #5
80032be: 4413 add r3, r2
80032c0: 3318 adds r3, #24
80032c2: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
80032c6: 4b5f ldr r3, [pc, #380] ; (8003444 <DoKeyUP+0x748>)
80032c8: 681b ldr r3, [r3, #0]
80032ca: 4a5f ldr r2, [pc, #380] ; (8003448 <DoKeyUP+0x74c>)
80032cc: 015b lsls r3, r3, #5
80032ce: 4413 add r3, r2
80032d0: 3318 adds r3, #24
80032d2: edd3 7a00 vldr s15, [r3]
80032d6: eef5 7ac0 vcmpe.f32 s15, #0.0
80032da: eef1 fa10 vmrs APSR_nzcv, fpscr
80032de: d807 bhi.n 80032f0 <DoKeyUP+0x5f4>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
80032e0: 4b58 ldr r3, [pc, #352] ; (8003444 <DoKeyUP+0x748>)
80032e2: 681b ldr r3, [r3, #0]
80032e4: 4a58 ldr r2, [pc, #352] ; (8003448 <DoKeyUP+0x74c>)
80032e6: 015b lsls r3, r3, #5
80032e8: 4413 add r3, r2
80032ea: 3318 adds r3, #24
80032ec: 4a5b ldr r2, [pc, #364] ; (800345c <DoKeyUP+0x760>)
80032ee: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
80032f0: 4b54 ldr r3, [pc, #336] ; (8003444 <DoKeyUP+0x748>)
80032f2: 681b ldr r3, [r3, #0]
80032f4: 4a54 ldr r2, [pc, #336] ; (8003448 <DoKeyUP+0x74c>)
80032f6: 015b lsls r3, r3, #5
80032f8: 4413 add r3, r2
80032fa: 3318 adds r3, #24
80032fc: edd3 7a00 vldr s15, [r3]
8003300: ed9f 7a57 vldr s14, [pc, #348] ; 8003460 <DoKeyUP+0x764>
8003304: eef4 7ac7 vcmpe.f32 s15, s14
8003308: eef1 fa10 vmrs APSR_nzcv, fpscr
800330c: db07 blt.n 800331e <DoKeyUP+0x622>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
800330e: 4b4d ldr r3, [pc, #308] ; (8003444 <DoKeyUP+0x748>)
8003310: 681b ldr r3, [r3, #0]
8003312: 4a4d ldr r2, [pc, #308] ; (8003448 <DoKeyUP+0x74c>)
8003314: 015b lsls r3, r3, #5
8003316: 4413 add r3, r2
8003318: 3318 adds r3, #24
800331a: 4a52 ldr r2, [pc, #328] ; (8003464 <DoKeyUP+0x768>)
800331c: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
800331e: 4b49 ldr r3, [pc, #292] ; (8003444 <DoKeyUP+0x748>)
8003320: 681b ldr r3, [r3, #0]
8003322: 4a49 ldr r2, [pc, #292] ; (8003448 <DoKeyUP+0x74c>)
8003324: 015b lsls r3, r3, #5
8003326: 4413 add r3, r2
8003328: 3318 adds r3, #24
800332a: edd3 7a00 vldr s15, [r3]
800332e: eeb0 0a67 vmov.f32 s0, s15
8003332: f001 fa2f bl 8004794 <VerifyGain>
8003336: e36f b.n 8003a18 <DoKeyUP+0xd1c>
}
else
if(menupos == Kiks_1 || menupos == Kiks_2 || menupos == Kiks_3 || menupos == Kiks_4)
8003338: 4b41 ldr r3, [pc, #260] ; (8003440 <DoKeyUP+0x744>)
800333a: 781b ldrb r3, [r3, #0]
800333c: b2db uxtb r3, r3
800333e: 2b04 cmp r3, #4
8003340: d00f beq.n 8003362 <DoKeyUP+0x666>
8003342: 4b3f ldr r3, [pc, #252] ; (8003440 <DoKeyUP+0x744>)
8003344: 781b ldrb r3, [r3, #0]
8003346: b2db uxtb r3, r3
8003348: 2b0c cmp r3, #12
800334a: d00a beq.n 8003362 <DoKeyUP+0x666>
800334c: 4b3c ldr r3, [pc, #240] ; (8003440 <DoKeyUP+0x744>)
800334e: 781b ldrb r3, [r3, #0]
8003350: b2db uxtb r3, r3
8003352: 2b14 cmp r3, #20
8003354: d005 beq.n 8003362 <DoKeyUP+0x666>
8003356: 4b3a ldr r3, [pc, #232] ; (8003440 <DoKeyUP+0x744>)
8003358: 781b ldrb r3, [r3, #0]
800335a: b2db uxtb r3, r3
800335c: 2b1c cmp r3, #28
800335e: f040 80d1 bne.w 8003504 <DoKeyUP+0x808>
{
if(iks < 9) {
8003362: 693b ldr r3, [r7, #16]
8003364: 2b08 cmp r3, #8
8003366: d802 bhi.n 800336e <DoKeyUP+0x672>
iks++;
8003368: 693b ldr r3, [r7, #16]
800336a: 3301 adds r3, #1
800336c: 613b str r3, [r7, #16]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
800336e: 69bb ldr r3, [r7, #24]
8003370: f242 7210 movw r2, #10000 ; 0x2710
8003374: fb02 f203 mul.w r2, r2, r3
8003378: 697b ldr r3, [r7, #20]
800337a: f44f 717a mov.w r1, #1000 ; 0x3e8
800337e: fb01 f303 mul.w r3, r1, r3
8003382: 18d1 adds r1, r2, r3
8003384: 68fa ldr r2, [r7, #12]
8003386: 4613 mov r3, r2
8003388: 009b lsls r3, r3, #2
800338a: 4413 add r3, r2
800338c: 005b lsls r3, r3, #1
800338e: 4618 mov r0, r3
8003390: 693b ldr r3, [r7, #16]
8003392: 2264 movs r2, #100 ; 0x64
8003394: fb02 f303 mul.w r3, r2, r3
8003398: 4403 add r3, r0
800339a: 18ca adds r2, r1, r3
800339c: 68bb ldr r3, [r7, #8]
800339e: 4413 add r3, r2
80033a0: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
80033a2: 4b28 ldr r3, [pc, #160] ; (8003444 <DoKeyUP+0x748>)
80033a4: 681b ldr r3, [r3, #0]
80033a6: 69fa ldr r2, [r7, #28]
80033a8: ee07 2a90 vmov s15, r2
80033ac: eef8 7a67 vcvt.f32.u32 s15, s15
80033b0: 4a25 ldr r2, [pc, #148] ; (8003448 <DoKeyUP+0x74c>)
80033b2: 015b lsls r3, r3, #5
80033b4: 4413 add r3, r2
80033b6: 3318 adds r3, #24
80033b8: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
80033bc: 687b ldr r3, [r7, #4]
80033be: 2b01 cmp r3, #1
80033c0: d112 bne.n 80033e8 <DoKeyUP+0x6ec>
80033c2: 4b20 ldr r3, [pc, #128] ; (8003444 <DoKeyUP+0x748>)
80033c4: 681b ldr r3, [r3, #0]
80033c6: 4920 ldr r1, [pc, #128] ; (8003448 <DoKeyUP+0x74c>)
80033c8: 015a lsls r2, r3, #5
80033ca: 440a add r2, r1
80033cc: 3218 adds r2, #24
80033ce: edd2 7a00 vldr s15, [r2]
80033d2: ed9f 7a1e vldr s14, [pc, #120] ; 800344c <DoKeyUP+0x750>
80033d6: ee67 7a87 vmul.f32 s15, s15, s14
80033da: 4a1b ldr r2, [pc, #108] ; (8003448 <DoKeyUP+0x74c>)
80033dc: 015b lsls r3, r3, #5
80033de: 4413 add r3, r2
80033e0: 3318 adds r3, #24
80033e2: edc3 7a00 vstr s15, [r3]
80033e6: e054 b.n 8003492 <DoKeyUP+0x796>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
80033e8: 687b ldr r3, [r7, #4]
80033ea: 2b02 cmp r3, #2
80033ec: d112 bne.n 8003414 <DoKeyUP+0x718>
80033ee: 4b15 ldr r3, [pc, #84] ; (8003444 <DoKeyUP+0x748>)
80033f0: 681b ldr r3, [r3, #0]
80033f2: 4915 ldr r1, [pc, #84] ; (8003448 <DoKeyUP+0x74c>)
80033f4: 015a lsls r2, r3, #5
80033f6: 440a add r2, r1
80033f8: 3218 adds r2, #24
80033fa: edd2 7a00 vldr s15, [r2]
80033fe: ed9f 7a14 vldr s14, [pc, #80] ; 8003450 <DoKeyUP+0x754>
8003402: ee67 7a87 vmul.f32 s15, s15, s14
8003406: 4a10 ldr r2, [pc, #64] ; (8003448 <DoKeyUP+0x74c>)
8003408: 015b lsls r3, r3, #5
800340a: 4413 add r3, r2
800340c: 3318 adds r3, #24
800340e: edc3 7a00 vstr s15, [r3]
8003412: e03e b.n 8003492 <DoKeyUP+0x796>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8003414: 687b ldr r3, [r7, #4]
8003416: 2b03 cmp r3, #3
8003418: d126 bne.n 8003468 <DoKeyUP+0x76c>
800341a: 4b0a ldr r3, [pc, #40] ; (8003444 <DoKeyUP+0x748>)
800341c: 681b ldr r3, [r3, #0]
800341e: 490a ldr r1, [pc, #40] ; (8003448 <DoKeyUP+0x74c>)
8003420: 015a lsls r2, r3, #5
8003422: 440a add r2, r1
8003424: 3218 adds r2, #24
8003426: edd2 7a00 vldr s15, [r2]
800342a: ed9f 7a0a vldr s14, [pc, #40] ; 8003454 <DoKeyUP+0x758>
800342e: ee67 7a87 vmul.f32 s15, s15, s14
8003432: 4a05 ldr r2, [pc, #20] ; (8003448 <DoKeyUP+0x74c>)
8003434: 015b lsls r3, r3, #5
8003436: 4413 add r3, r2
8003438: 3318 adds r3, #24
800343a: edc3 7a00 vstr s15, [r3]
800343e: e028 b.n 8003492 <DoKeyUP+0x796>
8003440: 20020010 .word 0x20020010
8003444: 2006b948 .word 0x2006b948
8003448: 2006bb88 .word 0x2006bb88
800344c: 3dcccccd .word 0x3dcccccd
8003450: 3c23d70a .word 0x3c23d70a
8003454: 3a83126f .word 0x3a83126f
8003458: 38d1b717 .word 0x38d1b717
800345c: 38d1b717 .word 0x38d1b717
8003460: 47c35000 .word 0x47c35000
8003464: 47c34f80 .word 0x47c34f80
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8003468: 687b ldr r3, [r7, #4]
800346a: 2b04 cmp r3, #4
800346c: d111 bne.n 8003492 <DoKeyUP+0x796>
800346e: 4bba ldr r3, [pc, #744] ; (8003758 <DoKeyUP+0xa5c>)
8003470: 681b ldr r3, [r3, #0]
8003472: 49ba ldr r1, [pc, #744] ; (800375c <DoKeyUP+0xa60>)
8003474: 015a lsls r2, r3, #5
8003476: 440a add r2, r1
8003478: 3218 adds r2, #24
800347a: edd2 7a00 vldr s15, [r2]
800347e: ed9f 7ab8 vldr s14, [pc, #736] ; 8003760 <DoKeyUP+0xa64>
8003482: ee67 7a87 vmul.f32 s15, s15, s14
8003486: 4ab5 ldr r2, [pc, #724] ; (800375c <DoKeyUP+0xa60>)
8003488: 015b lsls r3, r3, #5
800348a: 4413 add r3, r2
800348c: 3318 adds r3, #24
800348e: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
8003492: 4bb1 ldr r3, [pc, #708] ; (8003758 <DoKeyUP+0xa5c>)
8003494: 681b ldr r3, [r3, #0]
8003496: 4ab1 ldr r2, [pc, #708] ; (800375c <DoKeyUP+0xa60>)
8003498: 015b lsls r3, r3, #5
800349a: 4413 add r3, r2
800349c: 3318 adds r3, #24
800349e: edd3 7a00 vldr s15, [r3]
80034a2: eef5 7ac0 vcmpe.f32 s15, #0.0
80034a6: eef1 fa10 vmrs APSR_nzcv, fpscr
80034aa: d807 bhi.n 80034bc <DoKeyUP+0x7c0>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
80034ac: 4baa ldr r3, [pc, #680] ; (8003758 <DoKeyUP+0xa5c>)
80034ae: 681b ldr r3, [r3, #0]
80034b0: 4aaa ldr r2, [pc, #680] ; (800375c <DoKeyUP+0xa60>)
80034b2: 015b lsls r3, r3, #5
80034b4: 4413 add r3, r2
80034b6: 3318 adds r3, #24
80034b8: 4aaa ldr r2, [pc, #680] ; (8003764 <DoKeyUP+0xa68>)
80034ba: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
80034bc: 4ba6 ldr r3, [pc, #664] ; (8003758 <DoKeyUP+0xa5c>)
80034be: 681b ldr r3, [r3, #0]
80034c0: 4aa6 ldr r2, [pc, #664] ; (800375c <DoKeyUP+0xa60>)
80034c2: 015b lsls r3, r3, #5
80034c4: 4413 add r3, r2
80034c6: 3318 adds r3, #24
80034c8: edd3 7a00 vldr s15, [r3]
80034cc: ed9f 7aa6 vldr s14, [pc, #664] ; 8003768 <DoKeyUP+0xa6c>
80034d0: eef4 7ac7 vcmpe.f32 s15, s14
80034d4: eef1 fa10 vmrs APSR_nzcv, fpscr
80034d8: db07 blt.n 80034ea <DoKeyUP+0x7ee>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
80034da: 4b9f ldr r3, [pc, #636] ; (8003758 <DoKeyUP+0xa5c>)
80034dc: 681b ldr r3, [r3, #0]
80034de: 4a9f ldr r2, [pc, #636] ; (800375c <DoKeyUP+0xa60>)
80034e0: 015b lsls r3, r3, #5
80034e2: 4413 add r3, r2
80034e4: 3318 adds r3, #24
80034e6: 4aa1 ldr r2, [pc, #644] ; (800376c <DoKeyUP+0xa70>)
80034e8: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
80034ea: 4b9b ldr r3, [pc, #620] ; (8003758 <DoKeyUP+0xa5c>)
80034ec: 681b ldr r3, [r3, #0]
80034ee: 4a9b ldr r2, [pc, #620] ; (800375c <DoKeyUP+0xa60>)
80034f0: 015b lsls r3, r3, #5
80034f2: 4413 add r3, r2
80034f4: 3318 adds r3, #24
80034f6: edd3 7a00 vldr s15, [r3]
80034fa: eeb0 0a67 vmov.f32 s0, s15
80034fe: f001 f949 bl 8004794 <VerifyGain>
8003502: e289 b.n 8003a18 <DoKeyUP+0xd1c>
}
else
if(menupos == Kikd_1 || menupos == Kikd_2 || menupos == Kikd_3 || menupos == Kikd_4)
8003504: 4b9a ldr r3, [pc, #616] ; (8003770 <DoKeyUP+0xa74>)
8003506: 781b ldrb r3, [r3, #0]
8003508: b2db uxtb r3, r3
800350a: 2b05 cmp r3, #5
800350c: d00f beq.n 800352e <DoKeyUP+0x832>
800350e: 4b98 ldr r3, [pc, #608] ; (8003770 <DoKeyUP+0xa74>)
8003510: 781b ldrb r3, [r3, #0]
8003512: b2db uxtb r3, r3
8003514: 2b0d cmp r3, #13
8003516: d00a beq.n 800352e <DoKeyUP+0x832>
8003518: 4b95 ldr r3, [pc, #596] ; (8003770 <DoKeyUP+0xa74>)
800351a: 781b ldrb r3, [r3, #0]
800351c: b2db uxtb r3, r3
800351e: 2b15 cmp r3, #21
8003520: d005 beq.n 800352e <DoKeyUP+0x832>
8003522: 4b93 ldr r3, [pc, #588] ; (8003770 <DoKeyUP+0xa74>)
8003524: 781b ldrb r3, [r3, #0]
8003526: b2db uxtb r3, r3
8003528: 2b1d cmp r3, #29
800352a: f040 80bd bne.w 80036a8 <DoKeyUP+0x9ac>
{
if(ikd < 9) {
800352e: 68fb ldr r3, [r7, #12]
8003530: 2b08 cmp r3, #8
8003532: d802 bhi.n 800353a <DoKeyUP+0x83e>
ikd++;
8003534: 68fb ldr r3, [r7, #12]
8003536: 3301 adds r3, #1
8003538: 60fb str r3, [r7, #12]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
800353a: 69bb ldr r3, [r7, #24]
800353c: f242 7210 movw r2, #10000 ; 0x2710
8003540: fb02 f203 mul.w r2, r2, r3
8003544: 697b ldr r3, [r7, #20]
8003546: f44f 717a mov.w r1, #1000 ; 0x3e8
800354a: fb01 f303 mul.w r3, r1, r3
800354e: 18d1 adds r1, r2, r3
8003550: 68fa ldr r2, [r7, #12]
8003552: 4613 mov r3, r2
8003554: 009b lsls r3, r3, #2
8003556: 4413 add r3, r2
8003558: 005b lsls r3, r3, #1
800355a: 4618 mov r0, r3
800355c: 693b ldr r3, [r7, #16]
800355e: 2264 movs r2, #100 ; 0x64
8003560: fb02 f303 mul.w r3, r2, r3
8003564: 4403 add r3, r0
8003566: 18ca adds r2, r1, r3
8003568: 68bb ldr r3, [r7, #8]
800356a: 4413 add r3, r2
800356c: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
800356e: 4b7a ldr r3, [pc, #488] ; (8003758 <DoKeyUP+0xa5c>)
8003570: 681b ldr r3, [r3, #0]
8003572: 69fa ldr r2, [r7, #28]
8003574: ee07 2a90 vmov s15, r2
8003578: eef8 7a67 vcvt.f32.u32 s15, s15
800357c: 4a77 ldr r2, [pc, #476] ; (800375c <DoKeyUP+0xa60>)
800357e: 015b lsls r3, r3, #5
8003580: 4413 add r3, r2
8003582: 3318 adds r3, #24
8003584: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8003588: 687b ldr r3, [r7, #4]
800358a: 2b01 cmp r3, #1
800358c: d112 bne.n 80035b4 <DoKeyUP+0x8b8>
800358e: 4b72 ldr r3, [pc, #456] ; (8003758 <DoKeyUP+0xa5c>)
8003590: 681b ldr r3, [r3, #0]
8003592: 4972 ldr r1, [pc, #456] ; (800375c <DoKeyUP+0xa60>)
8003594: 015a lsls r2, r3, #5
8003596: 440a add r2, r1
8003598: 3218 adds r2, #24
800359a: edd2 7a00 vldr s15, [r2]
800359e: ed9f 7a75 vldr s14, [pc, #468] ; 8003774 <DoKeyUP+0xa78>
80035a2: ee67 7a87 vmul.f32 s15, s15, s14
80035a6: 4a6d ldr r2, [pc, #436] ; (800375c <DoKeyUP+0xa60>)
80035a8: 015b lsls r3, r3, #5
80035aa: 4413 add r3, r2
80035ac: 3318 adds r3, #24
80035ae: edc3 7a00 vstr s15, [r3]
80035b2: e040 b.n 8003636 <DoKeyUP+0x93a>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
80035b4: 687b ldr r3, [r7, #4]
80035b6: 2b02 cmp r3, #2
80035b8: d112 bne.n 80035e0 <DoKeyUP+0x8e4>
80035ba: 4b67 ldr r3, [pc, #412] ; (8003758 <DoKeyUP+0xa5c>)
80035bc: 681b ldr r3, [r3, #0]
80035be: 4967 ldr r1, [pc, #412] ; (800375c <DoKeyUP+0xa60>)
80035c0: 015a lsls r2, r3, #5
80035c2: 440a add r2, r1
80035c4: 3218 adds r2, #24
80035c6: edd2 7a00 vldr s15, [r2]
80035ca: ed9f 7a6b vldr s14, [pc, #428] ; 8003778 <DoKeyUP+0xa7c>
80035ce: ee67 7a87 vmul.f32 s15, s15, s14
80035d2: 4a62 ldr r2, [pc, #392] ; (800375c <DoKeyUP+0xa60>)
80035d4: 015b lsls r3, r3, #5
80035d6: 4413 add r3, r2
80035d8: 3318 adds r3, #24
80035da: edc3 7a00 vstr s15, [r3]
80035de: e02a b.n 8003636 <DoKeyUP+0x93a>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
80035e0: 687b ldr r3, [r7, #4]
80035e2: 2b03 cmp r3, #3
80035e4: d112 bne.n 800360c <DoKeyUP+0x910>
80035e6: 4b5c ldr r3, [pc, #368] ; (8003758 <DoKeyUP+0xa5c>)
80035e8: 681b ldr r3, [r3, #0]
80035ea: 495c ldr r1, [pc, #368] ; (800375c <DoKeyUP+0xa60>)
80035ec: 015a lsls r2, r3, #5
80035ee: 440a add r2, r1
80035f0: 3218 adds r2, #24
80035f2: edd2 7a00 vldr s15, [r2]
80035f6: ed9f 7a61 vldr s14, [pc, #388] ; 800377c <DoKeyUP+0xa80>
80035fa: ee67 7a87 vmul.f32 s15, s15, s14
80035fe: 4a57 ldr r2, [pc, #348] ; (800375c <DoKeyUP+0xa60>)
8003600: 015b lsls r3, r3, #5
8003602: 4413 add r3, r2
8003604: 3318 adds r3, #24
8003606: edc3 7a00 vstr s15, [r3]
800360a: e014 b.n 8003636 <DoKeyUP+0x93a>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
800360c: 687b ldr r3, [r7, #4]
800360e: 2b04 cmp r3, #4
8003610: d111 bne.n 8003636 <DoKeyUP+0x93a>
8003612: 4b51 ldr r3, [pc, #324] ; (8003758 <DoKeyUP+0xa5c>)
8003614: 681b ldr r3, [r3, #0]
8003616: 4951 ldr r1, [pc, #324] ; (800375c <DoKeyUP+0xa60>)
8003618: 015a lsls r2, r3, #5
800361a: 440a add r2, r1
800361c: 3218 adds r2, #24
800361e: edd2 7a00 vldr s15, [r2]
8003622: ed9f 7a4f vldr s14, [pc, #316] ; 8003760 <DoKeyUP+0xa64>
8003626: ee67 7a87 vmul.f32 s15, s15, s14
800362a: 4a4c ldr r2, [pc, #304] ; (800375c <DoKeyUP+0xa60>)
800362c: 015b lsls r3, r3, #5
800362e: 4413 add r3, r2
8003630: 3318 adds r3, #24
8003632: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
8003636: 4b48 ldr r3, [pc, #288] ; (8003758 <DoKeyUP+0xa5c>)
8003638: 681b ldr r3, [r3, #0]
800363a: 4a48 ldr r2, [pc, #288] ; (800375c <DoKeyUP+0xa60>)
800363c: 015b lsls r3, r3, #5
800363e: 4413 add r3, r2
8003640: 3318 adds r3, #24
8003642: edd3 7a00 vldr s15, [r3]
8003646: eef5 7ac0 vcmpe.f32 s15, #0.0
800364a: eef1 fa10 vmrs APSR_nzcv, fpscr
800364e: d807 bhi.n 8003660 <DoKeyUP+0x964>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
8003650: 4b41 ldr r3, [pc, #260] ; (8003758 <DoKeyUP+0xa5c>)
8003652: 681b ldr r3, [r3, #0]
8003654: 4a41 ldr r2, [pc, #260] ; (800375c <DoKeyUP+0xa60>)
8003656: 015b lsls r3, r3, #5
8003658: 4413 add r3, r2
800365a: 3318 adds r3, #24
800365c: 4a41 ldr r2, [pc, #260] ; (8003764 <DoKeyUP+0xa68>)
800365e: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8003660: 4b3d ldr r3, [pc, #244] ; (8003758 <DoKeyUP+0xa5c>)
8003662: 681b ldr r3, [r3, #0]
8003664: 4a3d ldr r2, [pc, #244] ; (800375c <DoKeyUP+0xa60>)
8003666: 015b lsls r3, r3, #5
8003668: 4413 add r3, r2
800366a: 3318 adds r3, #24
800366c: edd3 7a00 vldr s15, [r3]
8003670: ed9f 7a3d vldr s14, [pc, #244] ; 8003768 <DoKeyUP+0xa6c>
8003674: eef4 7ac7 vcmpe.f32 s15, s14
8003678: eef1 fa10 vmrs APSR_nzcv, fpscr
800367c: db07 blt.n 800368e <DoKeyUP+0x992>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
800367e: 4b36 ldr r3, [pc, #216] ; (8003758 <DoKeyUP+0xa5c>)
8003680: 681b ldr r3, [r3, #0]
8003682: 4a36 ldr r2, [pc, #216] ; (800375c <DoKeyUP+0xa60>)
8003684: 015b lsls r3, r3, #5
8003686: 4413 add r3, r2
8003688: 3318 adds r3, #24
800368a: 4a38 ldr r2, [pc, #224] ; (800376c <DoKeyUP+0xa70>)
800368c: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
800368e: 4b32 ldr r3, [pc, #200] ; (8003758 <DoKeyUP+0xa5c>)
8003690: 681b ldr r3, [r3, #0]
8003692: 4a32 ldr r2, [pc, #200] ; (800375c <DoKeyUP+0xa60>)
8003694: 015b lsls r3, r3, #5
8003696: 4413 add r3, r2
8003698: 3318 adds r3, #24
800369a: edd3 7a00 vldr s15, [r3]
800369e: eeb0 0a67 vmov.f32 s0, s15
80036a2: f001 f877 bl 8004794 <VerifyGain>
80036a6: e1b7 b.n 8003a18 <DoKeyUP+0xd1c>
}
else
if(menupos == Kike_1 || menupos == Kike_2 || menupos == Kike_3 || menupos == Kike_4)
80036a8: 4b31 ldr r3, [pc, #196] ; (8003770 <DoKeyUP+0xa74>)
80036aa: 781b ldrb r3, [r3, #0]
80036ac: b2db uxtb r3, r3
80036ae: 2b06 cmp r3, #6
80036b0: d00f beq.n 80036d2 <DoKeyUP+0x9d6>
80036b2: 4b2f ldr r3, [pc, #188] ; (8003770 <DoKeyUP+0xa74>)
80036b4: 781b ldrb r3, [r3, #0]
80036b6: b2db uxtb r3, r3
80036b8: 2b0e cmp r3, #14
80036ba: d00a beq.n 80036d2 <DoKeyUP+0x9d6>
80036bc: 4b2c ldr r3, [pc, #176] ; (8003770 <DoKeyUP+0xa74>)
80036be: 781b ldrb r3, [r3, #0]
80036c0: b2db uxtb r3, r3
80036c2: 2b16 cmp r3, #22
80036c4: d005 beq.n 80036d2 <DoKeyUP+0x9d6>
80036c6: 4b2a ldr r3, [pc, #168] ; (8003770 <DoKeyUP+0xa74>)
80036c8: 781b ldrb r3, [r3, #0]
80036ca: b2db uxtb r3, r3
80036cc: 2b1e cmp r3, #30
80036ce: f040 80d1 bne.w 8003874 <DoKeyUP+0xb78>
{
if(ike < 9) {
80036d2: 68bb ldr r3, [r7, #8]
80036d4: 2b08 cmp r3, #8
80036d6: d802 bhi.n 80036de <DoKeyUP+0x9e2>
ike++;
80036d8: 68bb ldr r3, [r7, #8]
80036da: 3301 adds r3, #1
80036dc: 60bb str r3, [r7, #8]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
80036de: 69bb ldr r3, [r7, #24]
80036e0: f242 7210 movw r2, #10000 ; 0x2710
80036e4: fb02 f203 mul.w r2, r2, r3
80036e8: 697b ldr r3, [r7, #20]
80036ea: f44f 717a mov.w r1, #1000 ; 0x3e8
80036ee: fb01 f303 mul.w r3, r1, r3
80036f2: 18d1 adds r1, r2, r3
80036f4: 68fa ldr r2, [r7, #12]
80036f6: 4613 mov r3, r2
80036f8: 009b lsls r3, r3, #2
80036fa: 4413 add r3, r2
80036fc: 005b lsls r3, r3, #1
80036fe: 4618 mov r0, r3
8003700: 693b ldr r3, [r7, #16]
8003702: 2264 movs r2, #100 ; 0x64
8003704: fb02 f303 mul.w r3, r2, r3
8003708: 4403 add r3, r0
800370a: 18ca adds r2, r1, r3
800370c: 68bb ldr r3, [r7, #8]
800370e: 4413 add r3, r2
8003710: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
8003712: 4b11 ldr r3, [pc, #68] ; (8003758 <DoKeyUP+0xa5c>)
8003714: 681b ldr r3, [r3, #0]
8003716: 69fa ldr r2, [r7, #28]
8003718: ee07 2a90 vmov s15, r2
800371c: eef8 7a67 vcvt.f32.u32 s15, s15
8003720: 4a0e ldr r2, [pc, #56] ; (800375c <DoKeyUP+0xa60>)
8003722: 015b lsls r3, r3, #5
8003724: 4413 add r3, r2
8003726: 3318 adds r3, #24
8003728: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
800372c: 687b ldr r3, [r7, #4]
800372e: 2b01 cmp r3, #1
8003730: d126 bne.n 8003780 <DoKeyUP+0xa84>
8003732: 4b09 ldr r3, [pc, #36] ; (8003758 <DoKeyUP+0xa5c>)
8003734: 681b ldr r3, [r3, #0]
8003736: 4909 ldr r1, [pc, #36] ; (800375c <DoKeyUP+0xa60>)
8003738: 015a lsls r2, r3, #5
800373a: 440a add r2, r1
800373c: 3218 adds r2, #24
800373e: edd2 7a00 vldr s15, [r2]
8003742: ed9f 7a0c vldr s14, [pc, #48] ; 8003774 <DoKeyUP+0xa78>
8003746: ee67 7a87 vmul.f32 s15, s15, s14
800374a: 4a04 ldr r2, [pc, #16] ; (800375c <DoKeyUP+0xa60>)
800374c: 015b lsls r3, r3, #5
800374e: 4413 add r3, r2
8003750: 3318 adds r3, #24
8003752: edc3 7a00 vstr s15, [r3]
8003756: e054 b.n 8003802 <DoKeyUP+0xb06>
8003758: 2006b948 .word 0x2006b948
800375c: 2006bb88 .word 0x2006bb88
8003760: 38d1b717 .word 0x38d1b717
8003764: 38d1b717 .word 0x38d1b717
8003768: 47c35000 .word 0x47c35000
800376c: 47c34f80 .word 0x47c34f80
8003770: 20020010 .word 0x20020010
8003774: 3dcccccd .word 0x3dcccccd
8003778: 3c23d70a .word 0x3c23d70a
800377c: 3a83126f .word 0x3a83126f
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8003780: 687b ldr r3, [r7, #4]
8003782: 2b02 cmp r3, #2
8003784: d112 bne.n 80037ac <DoKeyUP+0xab0>
8003786: 4ba6 ldr r3, [pc, #664] ; (8003a20 <DoKeyUP+0xd24>)
8003788: 681b ldr r3, [r3, #0]
800378a: 49a6 ldr r1, [pc, #664] ; (8003a24 <DoKeyUP+0xd28>)
800378c: 015a lsls r2, r3, #5
800378e: 440a add r2, r1
8003790: 3218 adds r2, #24
8003792: edd2 7a00 vldr s15, [r2]
8003796: ed9f 7aa4 vldr s14, [pc, #656] ; 8003a28 <DoKeyUP+0xd2c>
800379a: ee67 7a87 vmul.f32 s15, s15, s14
800379e: 4aa1 ldr r2, [pc, #644] ; (8003a24 <DoKeyUP+0xd28>)
80037a0: 015b lsls r3, r3, #5
80037a2: 4413 add r3, r2
80037a4: 3318 adds r3, #24
80037a6: edc3 7a00 vstr s15, [r3]
80037aa: e02a b.n 8003802 <DoKeyUP+0xb06>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
80037ac: 687b ldr r3, [r7, #4]
80037ae: 2b03 cmp r3, #3
80037b0: d112 bne.n 80037d8 <DoKeyUP+0xadc>
80037b2: 4b9b ldr r3, [pc, #620] ; (8003a20 <DoKeyUP+0xd24>)
80037b4: 681b ldr r3, [r3, #0]
80037b6: 499b ldr r1, [pc, #620] ; (8003a24 <DoKeyUP+0xd28>)
80037b8: 015a lsls r2, r3, #5
80037ba: 440a add r2, r1
80037bc: 3218 adds r2, #24
80037be: edd2 7a00 vldr s15, [r2]
80037c2: ed9f 7a9a vldr s14, [pc, #616] ; 8003a2c <DoKeyUP+0xd30>
80037c6: ee67 7a87 vmul.f32 s15, s15, s14
80037ca: 4a96 ldr r2, [pc, #600] ; (8003a24 <DoKeyUP+0xd28>)
80037cc: 015b lsls r3, r3, #5
80037ce: 4413 add r3, r2
80037d0: 3318 adds r3, #24
80037d2: edc3 7a00 vstr s15, [r3]
80037d6: e014 b.n 8003802 <DoKeyUP+0xb06>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
80037d8: 687b ldr r3, [r7, #4]
80037da: 2b04 cmp r3, #4
80037dc: d111 bne.n 8003802 <DoKeyUP+0xb06>
80037de: 4b90 ldr r3, [pc, #576] ; (8003a20 <DoKeyUP+0xd24>)
80037e0: 681b ldr r3, [r3, #0]
80037e2: 4990 ldr r1, [pc, #576] ; (8003a24 <DoKeyUP+0xd28>)
80037e4: 015a lsls r2, r3, #5
80037e6: 440a add r2, r1
80037e8: 3218 adds r2, #24
80037ea: edd2 7a00 vldr s15, [r2]
80037ee: ed9f 7a90 vldr s14, [pc, #576] ; 8003a30 <DoKeyUP+0xd34>
80037f2: ee67 7a87 vmul.f32 s15, s15, s14
80037f6: 4a8b ldr r2, [pc, #556] ; (8003a24 <DoKeyUP+0xd28>)
80037f8: 015b lsls r3, r3, #5
80037fa: 4413 add r3, r2
80037fc: 3318 adds r3, #24
80037fe: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
8003802: 4b87 ldr r3, [pc, #540] ; (8003a20 <DoKeyUP+0xd24>)
8003804: 681b ldr r3, [r3, #0]
8003806: 4a87 ldr r2, [pc, #540] ; (8003a24 <DoKeyUP+0xd28>)
8003808: 015b lsls r3, r3, #5
800380a: 4413 add r3, r2
800380c: 3318 adds r3, #24
800380e: edd3 7a00 vldr s15, [r3]
8003812: eef5 7ac0 vcmpe.f32 s15, #0.0
8003816: eef1 fa10 vmrs APSR_nzcv, fpscr
800381a: d807 bhi.n 800382c <DoKeyUP+0xb30>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
800381c: 4b80 ldr r3, [pc, #512] ; (8003a20 <DoKeyUP+0xd24>)
800381e: 681b ldr r3, [r3, #0]
8003820: 4a80 ldr r2, [pc, #512] ; (8003a24 <DoKeyUP+0xd28>)
8003822: 015b lsls r3, r3, #5
8003824: 4413 add r3, r2
8003826: 3318 adds r3, #24
8003828: 4a82 ldr r2, [pc, #520] ; (8003a34 <DoKeyUP+0xd38>)
800382a: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
800382c: 4b7c ldr r3, [pc, #496] ; (8003a20 <DoKeyUP+0xd24>)
800382e: 681b ldr r3, [r3, #0]
8003830: 4a7c ldr r2, [pc, #496] ; (8003a24 <DoKeyUP+0xd28>)
8003832: 015b lsls r3, r3, #5
8003834: 4413 add r3, r2
8003836: 3318 adds r3, #24
8003838: edd3 7a00 vldr s15, [r3]
800383c: ed9f 7a7e vldr s14, [pc, #504] ; 8003a38 <DoKeyUP+0xd3c>
8003840: eef4 7ac7 vcmpe.f32 s15, s14
8003844: eef1 fa10 vmrs APSR_nzcv, fpscr
8003848: db07 blt.n 800385a <DoKeyUP+0xb5e>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
800384a: 4b75 ldr r3, [pc, #468] ; (8003a20 <DoKeyUP+0xd24>)
800384c: 681b ldr r3, [r3, #0]
800384e: 4a75 ldr r2, [pc, #468] ; (8003a24 <DoKeyUP+0xd28>)
8003850: 015b lsls r3, r3, #5
8003852: 4413 add r3, r2
8003854: 3318 adds r3, #24
8003856: 4a79 ldr r2, [pc, #484] ; (8003a3c <DoKeyUP+0xd40>)
8003858: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
800385a: 4b71 ldr r3, [pc, #452] ; (8003a20 <DoKeyUP+0xd24>)
800385c: 681b ldr r3, [r3, #0]
800385e: 4a71 ldr r2, [pc, #452] ; (8003a24 <DoKeyUP+0xd28>)
8003860: 015b lsls r3, r3, #5
8003862: 4413 add r3, r2
8003864: 3318 adds r3, #24
8003866: edd3 7a00 vldr s15, [r3]
800386a: eeb0 0a67 vmov.f32 s0, s15
800386e: f000 ff91 bl 8004794 <VerifyGain>
8003872: e0d1 b.n 8003a18 <DoKeyUP+0xd1c>
}
else
if(menupos == Kpt_1 || menupos == Kpt_2 || menupos == Kpt_3 || menupos == Kpt_4)
8003874: 4b72 ldr r3, [pc, #456] ; (8003a40 <DoKeyUP+0xd44>)
8003876: 781b ldrb r3, [r3, #0]
8003878: b2db uxtb r3, r3
800387a: 2b07 cmp r3, #7
800387c: d00f beq.n 800389e <DoKeyUP+0xba2>
800387e: 4b70 ldr r3, [pc, #448] ; (8003a40 <DoKeyUP+0xd44>)
8003880: 781b ldrb r3, [r3, #0]
8003882: b2db uxtb r3, r3
8003884: 2b0f cmp r3, #15
8003886: d00a beq.n 800389e <DoKeyUP+0xba2>
8003888: 4b6d ldr r3, [pc, #436] ; (8003a40 <DoKeyUP+0xd44>)
800388a: 781b ldrb r3, [r3, #0]
800388c: b2db uxtb r3, r3
800388e: 2b17 cmp r3, #23
8003890: d005 beq.n 800389e <DoKeyUP+0xba2>
8003892: 4b6b ldr r3, [pc, #428] ; (8003a40 <DoKeyUP+0xd44>)
8003894: 781b ldrb r3, [r3, #0]
8003896: b2db uxtb r3, r3
8003898: 2b1f cmp r3, #31
800389a: f040 80bd bne.w 8003a18 <DoKeyUP+0xd1c>
{
if(ipt) {
800389e: 687b ldr r3, [r7, #4]
80038a0: 2b00 cmp r3, #0
80038a2: d002 beq.n 80038aa <DoKeyUP+0xbae>
ipt--;
80038a4: 687b ldr r3, [r7, #4]
80038a6: 3b01 subs r3, #1
80038a8: 607b str r3, [r7, #4]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
80038aa: 69bb ldr r3, [r7, #24]
80038ac: f242 7210 movw r2, #10000 ; 0x2710
80038b0: fb02 f203 mul.w r2, r2, r3
80038b4: 697b ldr r3, [r7, #20]
80038b6: f44f 717a mov.w r1, #1000 ; 0x3e8
80038ba: fb01 f303 mul.w r3, r1, r3
80038be: 18d1 adds r1, r2, r3
80038c0: 68fa ldr r2, [r7, #12]
80038c2: 4613 mov r3, r2
80038c4: 009b lsls r3, r3, #2
80038c6: 4413 add r3, r2
80038c8: 005b lsls r3, r3, #1
80038ca: 4618 mov r0, r3
80038cc: 693b ldr r3, [r7, #16]
80038ce: 2264 movs r2, #100 ; 0x64
80038d0: fb02 f303 mul.w r3, r2, r3
80038d4: 4403 add r3, r0
80038d6: 18ca adds r2, r1, r3
80038d8: 68bb ldr r3, [r7, #8]
80038da: 4413 add r3, r2
80038dc: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
80038de: 4b50 ldr r3, [pc, #320] ; (8003a20 <DoKeyUP+0xd24>)
80038e0: 681b ldr r3, [r3, #0]
80038e2: 69fa ldr r2, [r7, #28]
80038e4: ee07 2a90 vmov s15, r2
80038e8: eef8 7a67 vcvt.f32.u32 s15, s15
80038ec: 4a4d ldr r2, [pc, #308] ; (8003a24 <DoKeyUP+0xd28>)
80038ee: 015b lsls r3, r3, #5
80038f0: 4413 add r3, r2
80038f2: 3318 adds r3, #24
80038f4: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
80038f8: 687b ldr r3, [r7, #4]
80038fa: 2b01 cmp r3, #1
80038fc: d112 bne.n 8003924 <DoKeyUP+0xc28>
80038fe: 4b48 ldr r3, [pc, #288] ; (8003a20 <DoKeyUP+0xd24>)
8003900: 681b ldr r3, [r3, #0]
8003902: 4948 ldr r1, [pc, #288] ; (8003a24 <DoKeyUP+0xd28>)
8003904: 015a lsls r2, r3, #5
8003906: 440a add r2, r1
8003908: 3218 adds r2, #24
800390a: edd2 7a00 vldr s15, [r2]
800390e: ed9f 7a4d vldr s14, [pc, #308] ; 8003a44 <DoKeyUP+0xd48>
8003912: ee67 7a87 vmul.f32 s15, s15, s14
8003916: 4a43 ldr r2, [pc, #268] ; (8003a24 <DoKeyUP+0xd28>)
8003918: 015b lsls r3, r3, #5
800391a: 4413 add r3, r2
800391c: 3318 adds r3, #24
800391e: edc3 7a00 vstr s15, [r3]
8003922: e040 b.n 80039a6 <DoKeyUP+0xcaa>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8003924: 687b ldr r3, [r7, #4]
8003926: 2b02 cmp r3, #2
8003928: d112 bne.n 8003950 <DoKeyUP+0xc54>
800392a: 4b3d ldr r3, [pc, #244] ; (8003a20 <DoKeyUP+0xd24>)
800392c: 681b ldr r3, [r3, #0]
800392e: 493d ldr r1, [pc, #244] ; (8003a24 <DoKeyUP+0xd28>)
8003930: 015a lsls r2, r3, #5
8003932: 440a add r2, r1
8003934: 3218 adds r2, #24
8003936: edd2 7a00 vldr s15, [r2]
800393a: ed9f 7a3b vldr s14, [pc, #236] ; 8003a28 <DoKeyUP+0xd2c>
800393e: ee67 7a87 vmul.f32 s15, s15, s14
8003942: 4a38 ldr r2, [pc, #224] ; (8003a24 <DoKeyUP+0xd28>)
8003944: 015b lsls r3, r3, #5
8003946: 4413 add r3, r2
8003948: 3318 adds r3, #24
800394a: edc3 7a00 vstr s15, [r3]
800394e: e02a b.n 80039a6 <DoKeyUP+0xcaa>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8003950: 687b ldr r3, [r7, #4]
8003952: 2b03 cmp r3, #3
8003954: d112 bne.n 800397c <DoKeyUP+0xc80>
8003956: 4b32 ldr r3, [pc, #200] ; (8003a20 <DoKeyUP+0xd24>)
8003958: 681b ldr r3, [r3, #0]
800395a: 4932 ldr r1, [pc, #200] ; (8003a24 <DoKeyUP+0xd28>)
800395c: 015a lsls r2, r3, #5
800395e: 440a add r2, r1
8003960: 3218 adds r2, #24
8003962: edd2 7a00 vldr s15, [r2]
8003966: ed9f 7a31 vldr s14, [pc, #196] ; 8003a2c <DoKeyUP+0xd30>
800396a: ee67 7a87 vmul.f32 s15, s15, s14
800396e: 4a2d ldr r2, [pc, #180] ; (8003a24 <DoKeyUP+0xd28>)
8003970: 015b lsls r3, r3, #5
8003972: 4413 add r3, r2
8003974: 3318 adds r3, #24
8003976: edc3 7a00 vstr s15, [r3]
800397a: e014 b.n 80039a6 <DoKeyUP+0xcaa>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
800397c: 687b ldr r3, [r7, #4]
800397e: 2b04 cmp r3, #4
8003980: d111 bne.n 80039a6 <DoKeyUP+0xcaa>
8003982: 4b27 ldr r3, [pc, #156] ; (8003a20 <DoKeyUP+0xd24>)
8003984: 681b ldr r3, [r3, #0]
8003986: 4927 ldr r1, [pc, #156] ; (8003a24 <DoKeyUP+0xd28>)
8003988: 015a lsls r2, r3, #5
800398a: 440a add r2, r1
800398c: 3218 adds r2, #24
800398e: edd2 7a00 vldr s15, [r2]
8003992: ed9f 7a27 vldr s14, [pc, #156] ; 8003a30 <DoKeyUP+0xd34>
8003996: ee67 7a87 vmul.f32 s15, s15, s14
800399a: 4a22 ldr r2, [pc, #136] ; (8003a24 <DoKeyUP+0xd28>)
800399c: 015b lsls r3, r3, #5
800399e: 4413 add r3, r2
80039a0: 3318 adds r3, #24
80039a2: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
80039a6: 4b1e ldr r3, [pc, #120] ; (8003a20 <DoKeyUP+0xd24>)
80039a8: 681b ldr r3, [r3, #0]
80039aa: 4a1e ldr r2, [pc, #120] ; (8003a24 <DoKeyUP+0xd28>)
80039ac: 015b lsls r3, r3, #5
80039ae: 4413 add r3, r2
80039b0: 3318 adds r3, #24
80039b2: edd3 7a00 vldr s15, [r3]
80039b6: eef5 7ac0 vcmpe.f32 s15, #0.0
80039ba: eef1 fa10 vmrs APSR_nzcv, fpscr
80039be: d807 bhi.n 80039d0 <DoKeyUP+0xcd4>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
80039c0: 4b17 ldr r3, [pc, #92] ; (8003a20 <DoKeyUP+0xd24>)
80039c2: 681b ldr r3, [r3, #0]
80039c4: 4a17 ldr r2, [pc, #92] ; (8003a24 <DoKeyUP+0xd28>)
80039c6: 015b lsls r3, r3, #5
80039c8: 4413 add r3, r2
80039ca: 3318 adds r3, #24
80039cc: 4a19 ldr r2, [pc, #100] ; (8003a34 <DoKeyUP+0xd38>)
80039ce: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
80039d0: 4b13 ldr r3, [pc, #76] ; (8003a20 <DoKeyUP+0xd24>)
80039d2: 681b ldr r3, [r3, #0]
80039d4: 4a13 ldr r2, [pc, #76] ; (8003a24 <DoKeyUP+0xd28>)
80039d6: 015b lsls r3, r3, #5
80039d8: 4413 add r3, r2
80039da: 3318 adds r3, #24
80039dc: edd3 7a00 vldr s15, [r3]
80039e0: ed9f 7a15 vldr s14, [pc, #84] ; 8003a38 <DoKeyUP+0xd3c>
80039e4: eef4 7ac7 vcmpe.f32 s15, s14
80039e8: eef1 fa10 vmrs APSR_nzcv, fpscr
80039ec: db07 blt.n 80039fe <DoKeyUP+0xd02>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
80039ee: 4b0c ldr r3, [pc, #48] ; (8003a20 <DoKeyUP+0xd24>)
80039f0: 681b ldr r3, [r3, #0]
80039f2: 4a0c ldr r2, [pc, #48] ; (8003a24 <DoKeyUP+0xd28>)
80039f4: 015b lsls r3, r3, #5
80039f6: 4413 add r3, r2
80039f8: 3318 adds r3, #24
80039fa: 4a10 ldr r2, [pc, #64] ; (8003a3c <DoKeyUP+0xd40>)
80039fc: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
80039fe: 4b08 ldr r3, [pc, #32] ; (8003a20 <DoKeyUP+0xd24>)
8003a00: 681b ldr r3, [r3, #0]
8003a02: 4a08 ldr r2, [pc, #32] ; (8003a24 <DoKeyUP+0xd28>)
8003a04: 015b lsls r3, r3, #5
8003a06: 4413 add r3, r2
8003a08: 3318 adds r3, #24
8003a0a: edd3 7a00 vldr s15, [r3]
8003a0e: eeb0 0a67 vmov.f32 s0, s15
8003a12: f000 febf bl 8004794 <VerifyGain>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
}*/
}
8003a16: e7ff b.n 8003a18 <DoKeyUP+0xd1c>
8003a18: bf00 nop
8003a1a: 3720 adds r7, #32
8003a1c: 46bd mov sp, r7
8003a1e: bd80 pop {r7, pc}
8003a20: 2006b948 .word 0x2006b948
8003a24: 2006bb88 .word 0x2006bb88
8003a28: 3c23d70a .word 0x3c23d70a
8003a2c: 3a83126f .word 0x3a83126f
8003a30: 38d1b717 .word 0x38d1b717
8003a34: 38d1b717 .word 0x38d1b717
8003a38: 47c35000 .word 0x47c35000
8003a3c: 47c34f80 .word 0x47c34f80
8003a40: 20020010 .word 0x20020010
8003a44: 3dcccccd .word 0x3dcccccd
08003a48 <DoKeyDN>:
void DoKeyDN(void)
{
8003a48: b580 push {r7, lr}
8003a4a: b088 sub sp, #32
8003a4c: af00 add r7, sp, #0
uint32_t s, ikdt, ikt, iks, ikd, ike, ipt;
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10.0f) {
8003a4e: 4b5f ldr r3, [pc, #380] ; (8003bcc <DoKeyDN+0x184>)
8003a50: 681b ldr r3, [r3, #0]
8003a52: 4a5f ldr r2, [pc, #380] ; (8003bd0 <DoKeyDN+0x188>)
8003a54: 015b lsls r3, r3, #5
8003a56: 4413 add r3, r2
8003a58: 3318 adds r3, #24
8003a5a: edd3 7a00 vldr s15, [r3]
8003a5e: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8003a62: eef4 7ac7 vcmpe.f32 s15, s14
8003a66: eef1 fa10 vmrs APSR_nzcv, fpscr
8003a6a: d517 bpl.n 8003a9c <DoKeyDN+0x54>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10000.0f) + 0.5f);
8003a6c: 4b57 ldr r3, [pc, #348] ; (8003bcc <DoKeyDN+0x184>)
8003a6e: 681b ldr r3, [r3, #0]
8003a70: 4a57 ldr r2, [pc, #348] ; (8003bd0 <DoKeyDN+0x188>)
8003a72: 015b lsls r3, r3, #5
8003a74: 4413 add r3, r2
8003a76: 3318 adds r3, #24
8003a78: edd3 7a00 vldr s15, [r3]
8003a7c: ed9f 7a55 vldr s14, [pc, #340] ; 8003bd4 <DoKeyDN+0x18c>
8003a80: ee67 7a87 vmul.f32 s15, s15, s14
8003a84: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8003a88: ee77 7a87 vadd.f32 s15, s15, s14
8003a8c: eefc 7ae7 vcvt.u32.f32 s15, s15
8003a90: ee17 3a90 vmov r3, s15
8003a94: 61fb str r3, [r7, #28]
ipt = 4;
8003a96: 2304 movs r3, #4
8003a98: 607b str r3, [r7, #4]
8003a9a: e0be b.n 8003c1a <DoKeyDN+0x1d2>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100.0f) {
8003a9c: 4b4b ldr r3, [pc, #300] ; (8003bcc <DoKeyDN+0x184>)
8003a9e: 681b ldr r3, [r3, #0]
8003aa0: 4a4b ldr r2, [pc, #300] ; (8003bd0 <DoKeyDN+0x188>)
8003aa2: 015b lsls r3, r3, #5
8003aa4: 4413 add r3, r2
8003aa6: 3318 adds r3, #24
8003aa8: edd3 7a00 vldr s15, [r3]
8003aac: ed9f 7a4a vldr s14, [pc, #296] ; 8003bd8 <DoKeyDN+0x190>
8003ab0: eef4 7ac7 vcmpe.f32 s15, s14
8003ab4: eef1 fa10 vmrs APSR_nzcv, fpscr
8003ab8: d517 bpl.n 8003aea <DoKeyDN+0xa2>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 1000.0f) + 0.5f);
8003aba: 4b44 ldr r3, [pc, #272] ; (8003bcc <DoKeyDN+0x184>)
8003abc: 681b ldr r3, [r3, #0]
8003abe: 4a44 ldr r2, [pc, #272] ; (8003bd0 <DoKeyDN+0x188>)
8003ac0: 015b lsls r3, r3, #5
8003ac2: 4413 add r3, r2
8003ac4: 3318 adds r3, #24
8003ac6: edd3 7a00 vldr s15, [r3]
8003aca: ed9f 7a44 vldr s14, [pc, #272] ; 8003bdc <DoKeyDN+0x194>
8003ace: ee67 7a87 vmul.f32 s15, s15, s14
8003ad2: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8003ad6: ee77 7a87 vadd.f32 s15, s15, s14
8003ada: eefc 7ae7 vcvt.u32.f32 s15, s15
8003ade: ee17 3a90 vmov r3, s15
8003ae2: 61fb str r3, [r7, #28]
ipt = 3;
8003ae4: 2303 movs r3, #3
8003ae6: 607b str r3, [r7, #4]
8003ae8: e097 b.n 8003c1a <DoKeyDN+0x1d2>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 1000.0f) {
8003aea: 4b38 ldr r3, [pc, #224] ; (8003bcc <DoKeyDN+0x184>)
8003aec: 681b ldr r3, [r3, #0]
8003aee: 4a38 ldr r2, [pc, #224] ; (8003bd0 <DoKeyDN+0x188>)
8003af0: 015b lsls r3, r3, #5
8003af2: 4413 add r3, r2
8003af4: 3318 adds r3, #24
8003af6: edd3 7a00 vldr s15, [r3]
8003afa: ed9f 7a38 vldr s14, [pc, #224] ; 8003bdc <DoKeyDN+0x194>
8003afe: eef4 7ac7 vcmpe.f32 s15, s14
8003b02: eef1 fa10 vmrs APSR_nzcv, fpscr
8003b06: d517 bpl.n 8003b38 <DoKeyDN+0xf0>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 100.0f) + 0.5f);
8003b08: 4b30 ldr r3, [pc, #192] ; (8003bcc <DoKeyDN+0x184>)
8003b0a: 681b ldr r3, [r3, #0]
8003b0c: 4a30 ldr r2, [pc, #192] ; (8003bd0 <DoKeyDN+0x188>)
8003b0e: 015b lsls r3, r3, #5
8003b10: 4413 add r3, r2
8003b12: 3318 adds r3, #24
8003b14: edd3 7a00 vldr s15, [r3]
8003b18: ed9f 7a2f vldr s14, [pc, #188] ; 8003bd8 <DoKeyDN+0x190>
8003b1c: ee67 7a87 vmul.f32 s15, s15, s14
8003b20: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8003b24: ee77 7a87 vadd.f32 s15, s15, s14
8003b28: eefc 7ae7 vcvt.u32.f32 s15, s15
8003b2c: ee17 3a90 vmov r3, s15
8003b30: 61fb str r3, [r7, #28]
ipt = 2;
8003b32: 2302 movs r3, #2
8003b34: 607b str r3, [r7, #4]
8003b36: e070 b.n 8003c1a <DoKeyDN+0x1d2>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10000.0f) {
8003b38: 4b24 ldr r3, [pc, #144] ; (8003bcc <DoKeyDN+0x184>)
8003b3a: 681b ldr r3, [r3, #0]
8003b3c: 4a24 ldr r2, [pc, #144] ; (8003bd0 <DoKeyDN+0x188>)
8003b3e: 015b lsls r3, r3, #5
8003b40: 4413 add r3, r2
8003b42: 3318 adds r3, #24
8003b44: edd3 7a00 vldr s15, [r3]
8003b48: ed9f 7a22 vldr s14, [pc, #136] ; 8003bd4 <DoKeyDN+0x18c>
8003b4c: eef4 7ac7 vcmpe.f32 s15, s14
8003b50: eef1 fa10 vmrs APSR_nzcv, fpscr
8003b54: d517 bpl.n 8003b86 <DoKeyDN+0x13e>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10.0f) + 0.5f);
8003b56: 4b1d ldr r3, [pc, #116] ; (8003bcc <DoKeyDN+0x184>)
8003b58: 681b ldr r3, [r3, #0]
8003b5a: 4a1d ldr r2, [pc, #116] ; (8003bd0 <DoKeyDN+0x188>)
8003b5c: 015b lsls r3, r3, #5
8003b5e: 4413 add r3, r2
8003b60: 3318 adds r3, #24
8003b62: edd3 7a00 vldr s15, [r3]
8003b66: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8003b6a: ee67 7a87 vmul.f32 s15, s15, s14
8003b6e: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8003b72: ee77 7a87 vadd.f32 s15, s15, s14
8003b76: eefc 7ae7 vcvt.u32.f32 s15, s15
8003b7a: ee17 3a90 vmov r3, s15
8003b7e: 61fb str r3, [r7, #28]
ipt = 1;
8003b80: 2301 movs r3, #1
8003b82: 607b str r3, [r7, #4]
8003b84: e049 b.n 8003c1a <DoKeyDN+0x1d2>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) {
8003b86: 4b11 ldr r3, [pc, #68] ; (8003bcc <DoKeyDN+0x184>)
8003b88: 681b ldr r3, [r3, #0]
8003b8a: 4a11 ldr r2, [pc, #68] ; (8003bd0 <DoKeyDN+0x188>)
8003b8c: 015b lsls r3, r3, #5
8003b8e: 4413 add r3, r2
8003b90: 3318 adds r3, #24
8003b92: edd3 7a00 vldr s15, [r3]
8003b96: ed9f 7a12 vldr s14, [pc, #72] ; 8003be0 <DoKeyDN+0x198>
8003b9a: eef4 7ac7 vcmpe.f32 s15, s14
8003b9e: eef1 fa10 vmrs APSR_nzcv, fpscr
8003ba2: d51f bpl.n 8003be4 <DoKeyDN+0x19c>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS) + 0.5f);
8003ba4: 4b09 ldr r3, [pc, #36] ; (8003bcc <DoKeyDN+0x184>)
8003ba6: 681b ldr r3, [r3, #0]
8003ba8: 4a09 ldr r2, [pc, #36] ; (8003bd0 <DoKeyDN+0x188>)
8003baa: 015b lsls r3, r3, #5
8003bac: 4413 add r3, r2
8003bae: 3318 adds r3, #24
8003bb0: edd3 7a00 vldr s15, [r3]
8003bb4: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8003bb8: ee77 7a87 vadd.f32 s15, s15, s14
8003bbc: eefc 7ae7 vcvt.u32.f32 s15, s15
8003bc0: ee17 3a90 vmov r3, s15
8003bc4: 61fb str r3, [r7, #28]
ipt = 0;
8003bc6: 2300 movs r3, #0
8003bc8: 607b str r3, [r7, #4]
8003bca: e026 b.n 8003c1a <DoKeyDN+0x1d2>
8003bcc: 2006b948 .word 0x2006b948
8003bd0: 2006bb88 .word 0x2006bb88
8003bd4: 461c4000 .word 0x461c4000
8003bd8: 42c80000 .word 0x42c80000
8003bdc: 447a0000 .word 0x447a0000
8003be0: 47c35000 .word 0x47c35000
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8003be4: 4baf ldr r3, [pc, #700] ; (8003ea4 <DoKeyDN+0x45c>)
8003be6: 681b ldr r3, [r3, #0]
8003be8: 4aaf ldr r2, [pc, #700] ; (8003ea8 <DoKeyDN+0x460>)
8003bea: 015b lsls r3, r3, #5
8003bec: 4413 add r3, r2
8003bee: 3318 adds r3, #24
8003bf0: edd3 7a00 vldr s15, [r3]
8003bf4: ed9f 7aad vldr s14, [pc, #692] ; 8003eac <DoKeyDN+0x464>
8003bf8: eef4 7ac7 vcmpe.f32 s15, s14
8003bfc: eef1 fa10 vmrs APSR_nzcv, fpscr
8003c00: db0b blt.n 8003c1a <DoKeyDN+0x1d2>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
8003c02: 4ba8 ldr r3, [pc, #672] ; (8003ea4 <DoKeyDN+0x45c>)
8003c04: 681b ldr r3, [r3, #0]
8003c06: 4aa8 ldr r2, [pc, #672] ; (8003ea8 <DoKeyDN+0x460>)
8003c08: 015b lsls r3, r3, #5
8003c0a: 4413 add r3, r2
8003c0c: 3318 adds r3, #24
8003c0e: 4aa8 ldr r2, [pc, #672] ; (8003eb0 <DoKeyDN+0x468>)
8003c10: 601a str r2, [r3, #0]
s = 99999;
8003c12: 4ba8 ldr r3, [pc, #672] ; (8003eb4 <DoKeyDN+0x46c>)
8003c14: 61fb str r3, [r7, #28]
ipt = 0;
8003c16: 2300 movs r3, #0
8003c18: 607b str r3, [r7, #4]
}
ikdt = (s / 10000);
8003c1a: 69fb ldr r3, [r7, #28]
8003c1c: 4aa6 ldr r2, [pc, #664] ; (8003eb8 <DoKeyDN+0x470>)
8003c1e: fba2 2303 umull r2, r3, r2, r3
8003c22: 0b5b lsrs r3, r3, #13
8003c24: 61bb str r3, [r7, #24]
ikt = (s % 10000 / 1000);
8003c26: 69fa ldr r2, [r7, #28]
8003c28: 4ba3 ldr r3, [pc, #652] ; (8003eb8 <DoKeyDN+0x470>)
8003c2a: fba3 1302 umull r1, r3, r3, r2
8003c2e: 0b5b lsrs r3, r3, #13
8003c30: f242 7110 movw r1, #10000 ; 0x2710
8003c34: fb01 f303 mul.w r3, r1, r3
8003c38: 1ad3 subs r3, r2, r3
8003c3a: 4aa0 ldr r2, [pc, #640] ; (8003ebc <DoKeyDN+0x474>)
8003c3c: fba2 2303 umull r2, r3, r2, r3
8003c40: 099b lsrs r3, r3, #6
8003c42: 617b str r3, [r7, #20]
iks = (s % 10000 % 1000 / 100);
8003c44: 69fa ldr r2, [r7, #28]
8003c46: 4b9c ldr r3, [pc, #624] ; (8003eb8 <DoKeyDN+0x470>)
8003c48: fba3 1302 umull r1, r3, r3, r2
8003c4c: 0b5b lsrs r3, r3, #13
8003c4e: f242 7110 movw r1, #10000 ; 0x2710
8003c52: fb01 f303 mul.w r3, r1, r3
8003c56: 1ad3 subs r3, r2, r3
8003c58: 4a98 ldr r2, [pc, #608] ; (8003ebc <DoKeyDN+0x474>)
8003c5a: fba2 1203 umull r1, r2, r2, r3
8003c5e: 0992 lsrs r2, r2, #6
8003c60: f44f 717a mov.w r1, #1000 ; 0x3e8
8003c64: fb01 f202 mul.w r2, r1, r2
8003c68: 1a9a subs r2, r3, r2
8003c6a: 4b95 ldr r3, [pc, #596] ; (8003ec0 <DoKeyDN+0x478>)
8003c6c: fba3 2302 umull r2, r3, r3, r2
8003c70: 095b lsrs r3, r3, #5
8003c72: 613b str r3, [r7, #16]
ikd = (s % 10000 % 1000 % 100 / 10);
8003c74: 69fb ldr r3, [r7, #28]
8003c76: 4a90 ldr r2, [pc, #576] ; (8003eb8 <DoKeyDN+0x470>)
8003c78: fba2 1203 umull r1, r2, r2, r3
8003c7c: 0b52 lsrs r2, r2, #13
8003c7e: f242 7110 movw r1, #10000 ; 0x2710
8003c82: fb01 f202 mul.w r2, r1, r2
8003c86: 1a9a subs r2, r3, r2
8003c88: 4b8c ldr r3, [pc, #560] ; (8003ebc <DoKeyDN+0x474>)
8003c8a: fba3 1302 umull r1, r3, r3, r2
8003c8e: 099b lsrs r3, r3, #6
8003c90: f44f 717a mov.w r1, #1000 ; 0x3e8
8003c94: fb01 f303 mul.w r3, r1, r3
8003c98: 1ad3 subs r3, r2, r3
8003c9a: 4a89 ldr r2, [pc, #548] ; (8003ec0 <DoKeyDN+0x478>)
8003c9c: fba2 1203 umull r1, r2, r2, r3
8003ca0: 0952 lsrs r2, r2, #5
8003ca2: 2164 movs r1, #100 ; 0x64
8003ca4: fb01 f202 mul.w r2, r1, r2
8003ca8: 1a9a subs r2, r3, r2
8003caa: 4b86 ldr r3, [pc, #536] ; (8003ec4 <DoKeyDN+0x47c>)
8003cac: fba3 2302 umull r2, r3, r3, r2
8003cb0: 08db lsrs r3, r3, #3
8003cb2: 60fb str r3, [r7, #12]
ike = (s % 10000 % 1000 % 100 % 10);
8003cb4: 69fb ldr r3, [r7, #28]
8003cb6: 4a80 ldr r2, [pc, #512] ; (8003eb8 <DoKeyDN+0x470>)
8003cb8: fba2 1203 umull r1, r2, r2, r3
8003cbc: 0b52 lsrs r2, r2, #13
8003cbe: f242 7110 movw r1, #10000 ; 0x2710
8003cc2: fb01 f202 mul.w r2, r1, r2
8003cc6: 1a9a subs r2, r3, r2
8003cc8: 4b7c ldr r3, [pc, #496] ; (8003ebc <DoKeyDN+0x474>)
8003cca: fba3 1302 umull r1, r3, r3, r2
8003cce: 099b lsrs r3, r3, #6
8003cd0: f44f 717a mov.w r1, #1000 ; 0x3e8
8003cd4: fb01 f303 mul.w r3, r1, r3
8003cd8: 1ad3 subs r3, r2, r3
8003cda: 4a79 ldr r2, [pc, #484] ; (8003ec0 <DoKeyDN+0x478>)
8003cdc: fba2 1203 umull r1, r2, r2, r3
8003ce0: 0952 lsrs r2, r2, #5
8003ce2: 2164 movs r1, #100 ; 0x64
8003ce4: fb01 f202 mul.w r2, r1, r2
8003ce8: 1a9a subs r2, r3, r2
8003cea: 4b76 ldr r3, [pc, #472] ; (8003ec4 <DoKeyDN+0x47c>)
8003cec: fba3 1302 umull r1, r3, r3, r2
8003cf0: 08d9 lsrs r1, r3, #3
8003cf2: 460b mov r3, r1
8003cf4: 009b lsls r3, r3, #2
8003cf6: 440b add r3, r1
8003cf8: 005b lsls r3, r3, #1
8003cfa: 1ad3 subs r3, r2, r3
8003cfc: 60bb str r3, [r7, #8]
if(menupos == Kikdt_1 || menupos == Kikdt_2 || menupos == Kikdt_3 || menupos == Kikdt_4)
8003cfe: 4b72 ldr r3, [pc, #456] ; (8003ec8 <DoKeyDN+0x480>)
8003d00: 781b ldrb r3, [r3, #0]
8003d02: b2db uxtb r3, r3
8003d04: 2b02 cmp r3, #2
8003d06: d00f beq.n 8003d28 <DoKeyDN+0x2e0>
8003d08: 4b6f ldr r3, [pc, #444] ; (8003ec8 <DoKeyDN+0x480>)
8003d0a: 781b ldrb r3, [r3, #0]
8003d0c: b2db uxtb r3, r3
8003d0e: 2b0a cmp r3, #10
8003d10: d00a beq.n 8003d28 <DoKeyDN+0x2e0>
8003d12: 4b6d ldr r3, [pc, #436] ; (8003ec8 <DoKeyDN+0x480>)
8003d14: 781b ldrb r3, [r3, #0]
8003d16: b2db uxtb r3, r3
8003d18: 2b12 cmp r3, #18
8003d1a: d005 beq.n 8003d28 <DoKeyDN+0x2e0>
8003d1c: 4b6a ldr r3, [pc, #424] ; (8003ec8 <DoKeyDN+0x480>)
8003d1e: 781b ldrb r3, [r3, #0]
8003d20: b2db uxtb r3, r3
8003d22: 2b1a cmp r3, #26
8003d24: f040 80dc bne.w 8003ee0 <DoKeyDN+0x498>
{
if(ikdt) {
8003d28: 69bb ldr r3, [r7, #24]
8003d2a: 2b00 cmp r3, #0
8003d2c: d002 beq.n 8003d34 <DoKeyDN+0x2ec>
ikdt--;
8003d2e: 69bb ldr r3, [r7, #24]
8003d30: 3b01 subs r3, #1
8003d32: 61bb str r3, [r7, #24]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
8003d34: 69bb ldr r3, [r7, #24]
8003d36: f242 7210 movw r2, #10000 ; 0x2710
8003d3a: fb02 f203 mul.w r2, r2, r3
8003d3e: 697b ldr r3, [r7, #20]
8003d40: f44f 717a mov.w r1, #1000 ; 0x3e8
8003d44: fb01 f303 mul.w r3, r1, r3
8003d48: 18d1 adds r1, r2, r3
8003d4a: 68fa ldr r2, [r7, #12]
8003d4c: 4613 mov r3, r2
8003d4e: 009b lsls r3, r3, #2
8003d50: 4413 add r3, r2
8003d52: 005b lsls r3, r3, #1
8003d54: 4618 mov r0, r3
8003d56: 693b ldr r3, [r7, #16]
8003d58: 2264 movs r2, #100 ; 0x64
8003d5a: fb02 f303 mul.w r3, r2, r3
8003d5e: 4403 add r3, r0
8003d60: 18ca adds r2, r1, r3
8003d62: 68bb ldr r3, [r7, #8]
8003d64: 4413 add r3, r2
8003d66: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
8003d68: 4b4e ldr r3, [pc, #312] ; (8003ea4 <DoKeyDN+0x45c>)
8003d6a: 681b ldr r3, [r3, #0]
8003d6c: 69fa ldr r2, [r7, #28]
8003d6e: ee07 2a90 vmov s15, r2
8003d72: eef8 7a67 vcvt.f32.u32 s15, s15
8003d76: 4a4c ldr r2, [pc, #304] ; (8003ea8 <DoKeyDN+0x460>)
8003d78: 015b lsls r3, r3, #5
8003d7a: 4413 add r3, r2
8003d7c: 3318 adds r3, #24
8003d7e: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8003d82: 687b ldr r3, [r7, #4]
8003d84: 2b01 cmp r3, #1
8003d86: d112 bne.n 8003dae <DoKeyDN+0x366>
8003d88: 4b46 ldr r3, [pc, #280] ; (8003ea4 <DoKeyDN+0x45c>)
8003d8a: 681b ldr r3, [r3, #0]
8003d8c: 4946 ldr r1, [pc, #280] ; (8003ea8 <DoKeyDN+0x460>)
8003d8e: 015a lsls r2, r3, #5
8003d90: 440a add r2, r1
8003d92: 3218 adds r2, #24
8003d94: edd2 7a00 vldr s15, [r2]
8003d98: ed9f 7a4c vldr s14, [pc, #304] ; 8003ecc <DoKeyDN+0x484>
8003d9c: ee67 7a87 vmul.f32 s15, s15, s14
8003da0: 4a41 ldr r2, [pc, #260] ; (8003ea8 <DoKeyDN+0x460>)
8003da2: 015b lsls r3, r3, #5
8003da4: 4413 add r3, r2
8003da6: 3318 adds r3, #24
8003da8: edc3 7a00 vstr s15, [r3]
8003dac: e040 b.n 8003e30 <DoKeyDN+0x3e8>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8003dae: 687b ldr r3, [r7, #4]
8003db0: 2b02 cmp r3, #2
8003db2: d112 bne.n 8003dda <DoKeyDN+0x392>
8003db4: 4b3b ldr r3, [pc, #236] ; (8003ea4 <DoKeyDN+0x45c>)
8003db6: 681b ldr r3, [r3, #0]
8003db8: 493b ldr r1, [pc, #236] ; (8003ea8 <DoKeyDN+0x460>)
8003dba: 015a lsls r2, r3, #5
8003dbc: 440a add r2, r1
8003dbe: 3218 adds r2, #24
8003dc0: edd2 7a00 vldr s15, [r2]
8003dc4: ed9f 7a42 vldr s14, [pc, #264] ; 8003ed0 <DoKeyDN+0x488>
8003dc8: ee67 7a87 vmul.f32 s15, s15, s14
8003dcc: 4a36 ldr r2, [pc, #216] ; (8003ea8 <DoKeyDN+0x460>)
8003dce: 015b lsls r3, r3, #5
8003dd0: 4413 add r3, r2
8003dd2: 3318 adds r3, #24
8003dd4: edc3 7a00 vstr s15, [r3]
8003dd8: e02a b.n 8003e30 <DoKeyDN+0x3e8>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8003dda: 687b ldr r3, [r7, #4]
8003ddc: 2b03 cmp r3, #3
8003dde: d112 bne.n 8003e06 <DoKeyDN+0x3be>
8003de0: 4b30 ldr r3, [pc, #192] ; (8003ea4 <DoKeyDN+0x45c>)
8003de2: 681b ldr r3, [r3, #0]
8003de4: 4930 ldr r1, [pc, #192] ; (8003ea8 <DoKeyDN+0x460>)
8003de6: 015a lsls r2, r3, #5
8003de8: 440a add r2, r1
8003dea: 3218 adds r2, #24
8003dec: edd2 7a00 vldr s15, [r2]
8003df0: ed9f 7a38 vldr s14, [pc, #224] ; 8003ed4 <DoKeyDN+0x48c>
8003df4: ee67 7a87 vmul.f32 s15, s15, s14
8003df8: 4a2b ldr r2, [pc, #172] ; (8003ea8 <DoKeyDN+0x460>)
8003dfa: 015b lsls r3, r3, #5
8003dfc: 4413 add r3, r2
8003dfe: 3318 adds r3, #24
8003e00: edc3 7a00 vstr s15, [r3]
8003e04: e014 b.n 8003e30 <DoKeyDN+0x3e8>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8003e06: 687b ldr r3, [r7, #4]
8003e08: 2b04 cmp r3, #4
8003e0a: d111 bne.n 8003e30 <DoKeyDN+0x3e8>
8003e0c: 4b25 ldr r3, [pc, #148] ; (8003ea4 <DoKeyDN+0x45c>)
8003e0e: 681b ldr r3, [r3, #0]
8003e10: 4925 ldr r1, [pc, #148] ; (8003ea8 <DoKeyDN+0x460>)
8003e12: 015a lsls r2, r3, #5
8003e14: 440a add r2, r1
8003e16: 3218 adds r2, #24
8003e18: edd2 7a00 vldr s15, [r2]
8003e1c: ed9f 7a2e vldr s14, [pc, #184] ; 8003ed8 <DoKeyDN+0x490>
8003e20: ee67 7a87 vmul.f32 s15, s15, s14
8003e24: 4a20 ldr r2, [pc, #128] ; (8003ea8 <DoKeyDN+0x460>)
8003e26: 015b lsls r3, r3, #5
8003e28: 4413 add r3, r2
8003e2a: 3318 adds r3, #24
8003e2c: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
8003e30: 4b1c ldr r3, [pc, #112] ; (8003ea4 <DoKeyDN+0x45c>)
8003e32: 681b ldr r3, [r3, #0]
8003e34: 4a1c ldr r2, [pc, #112] ; (8003ea8 <DoKeyDN+0x460>)
8003e36: 015b lsls r3, r3, #5
8003e38: 4413 add r3, r2
8003e3a: 3318 adds r3, #24
8003e3c: edd3 7a00 vldr s15, [r3]
8003e40: eef5 7ac0 vcmpe.f32 s15, #0.0
8003e44: eef1 fa10 vmrs APSR_nzcv, fpscr
8003e48: d807 bhi.n 8003e5a <DoKeyDN+0x412>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
8003e4a: 4b16 ldr r3, [pc, #88] ; (8003ea4 <DoKeyDN+0x45c>)
8003e4c: 681b ldr r3, [r3, #0]
8003e4e: 4a16 ldr r2, [pc, #88] ; (8003ea8 <DoKeyDN+0x460>)
8003e50: 015b lsls r3, r3, #5
8003e52: 4413 add r3, r2
8003e54: 3318 adds r3, #24
8003e56: 4a21 ldr r2, [pc, #132] ; (8003edc <DoKeyDN+0x494>)
8003e58: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8003e5a: 4b12 ldr r3, [pc, #72] ; (8003ea4 <DoKeyDN+0x45c>)
8003e5c: 681b ldr r3, [r3, #0]
8003e5e: 4a12 ldr r2, [pc, #72] ; (8003ea8 <DoKeyDN+0x460>)
8003e60: 015b lsls r3, r3, #5
8003e62: 4413 add r3, r2
8003e64: 3318 adds r3, #24
8003e66: edd3 7a00 vldr s15, [r3]
8003e6a: ed9f 7a10 vldr s14, [pc, #64] ; 8003eac <DoKeyDN+0x464>
8003e6e: eef4 7ac7 vcmpe.f32 s15, s14
8003e72: eef1 fa10 vmrs APSR_nzcv, fpscr
8003e76: db07 blt.n 8003e88 <DoKeyDN+0x440>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
8003e78: 4b0a ldr r3, [pc, #40] ; (8003ea4 <DoKeyDN+0x45c>)
8003e7a: 681b ldr r3, [r3, #0]
8003e7c: 4a0a ldr r2, [pc, #40] ; (8003ea8 <DoKeyDN+0x460>)
8003e7e: 015b lsls r3, r3, #5
8003e80: 4413 add r3, r2
8003e82: 3318 adds r3, #24
8003e84: 4a0a ldr r2, [pc, #40] ; (8003eb0 <DoKeyDN+0x468>)
8003e86: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
8003e88: 4b06 ldr r3, [pc, #24] ; (8003ea4 <DoKeyDN+0x45c>)
8003e8a: 681b ldr r3, [r3, #0]
8003e8c: 4a06 ldr r2, [pc, #24] ; (8003ea8 <DoKeyDN+0x460>)
8003e8e: 015b lsls r3, r3, #5
8003e90: 4413 add r3, r2
8003e92: 3318 adds r3, #24
8003e94: edd3 7a00 vldr s15, [r3]
8003e98: eeb0 0a67 vmov.f32 s0, s15
8003e9c: f000 fc7a bl 8004794 <VerifyGain>
8003ea0: f000 bc60 b.w 8004764 <DoKeyDN+0xd1c>
8003ea4: 2006b948 .word 0x2006b948
8003ea8: 2006bb88 .word 0x2006bb88
8003eac: 47c35000 .word 0x47c35000
8003eb0: 47c34f80 .word 0x47c34f80
8003eb4: 0001869f .word 0x0001869f
8003eb8: d1b71759 .word 0xd1b71759
8003ebc: 10624dd3 .word 0x10624dd3
8003ec0: 51eb851f .word 0x51eb851f
8003ec4: cccccccd .word 0xcccccccd
8003ec8: 20020010 .word 0x20020010
8003ecc: 3dcccccd .word 0x3dcccccd
8003ed0: 3c23d70a .word 0x3c23d70a
8003ed4: 3a83126f .word 0x3a83126f
8003ed8: 38d1b717 .word 0x38d1b717
8003edc: 38d1b717 .word 0x38d1b717
}
else
if(menupos == Kikt_1 || menupos == Kikt_2 || menupos == Kikt_3 || menupos == Kikt_4)
8003ee0: 4baa ldr r3, [pc, #680] ; (800418c <DoKeyDN+0x744>)
8003ee2: 781b ldrb r3, [r3, #0]
8003ee4: b2db uxtb r3, r3
8003ee6: 2b03 cmp r3, #3
8003ee8: d00f beq.n 8003f0a <DoKeyDN+0x4c2>
8003eea: 4ba8 ldr r3, [pc, #672] ; (800418c <DoKeyDN+0x744>)
8003eec: 781b ldrb r3, [r3, #0]
8003eee: b2db uxtb r3, r3
8003ef0: 2b0b cmp r3, #11
8003ef2: d00a beq.n 8003f0a <DoKeyDN+0x4c2>
8003ef4: 4ba5 ldr r3, [pc, #660] ; (800418c <DoKeyDN+0x744>)
8003ef6: 781b ldrb r3, [r3, #0]
8003ef8: b2db uxtb r3, r3
8003efa: 2b13 cmp r3, #19
8003efc: d005 beq.n 8003f0a <DoKeyDN+0x4c2>
8003efe: 4ba3 ldr r3, [pc, #652] ; (800418c <DoKeyDN+0x744>)
8003f00: 781b ldrb r3, [r3, #0]
8003f02: b2db uxtb r3, r3
8003f04: 2b1b cmp r3, #27
8003f06: f040 80bd bne.w 8004084 <DoKeyDN+0x63c>
{
if(ikt) {
8003f0a: 697b ldr r3, [r7, #20]
8003f0c: 2b00 cmp r3, #0
8003f0e: d002 beq.n 8003f16 <DoKeyDN+0x4ce>
ikt--;
8003f10: 697b ldr r3, [r7, #20]
8003f12: 3b01 subs r3, #1
8003f14: 617b str r3, [r7, #20]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
8003f16: 69bb ldr r3, [r7, #24]
8003f18: f242 7210 movw r2, #10000 ; 0x2710
8003f1c: fb02 f203 mul.w r2, r2, r3
8003f20: 697b ldr r3, [r7, #20]
8003f22: f44f 717a mov.w r1, #1000 ; 0x3e8
8003f26: fb01 f303 mul.w r3, r1, r3
8003f2a: 18d1 adds r1, r2, r3
8003f2c: 68fa ldr r2, [r7, #12]
8003f2e: 4613 mov r3, r2
8003f30: 009b lsls r3, r3, #2
8003f32: 4413 add r3, r2
8003f34: 005b lsls r3, r3, #1
8003f36: 4618 mov r0, r3
8003f38: 693b ldr r3, [r7, #16]
8003f3a: 2264 movs r2, #100 ; 0x64
8003f3c: fb02 f303 mul.w r3, r2, r3
8003f40: 4403 add r3, r0
8003f42: 18ca adds r2, r1, r3
8003f44: 68bb ldr r3, [r7, #8]
8003f46: 4413 add r3, r2
8003f48: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
8003f4a: 4b91 ldr r3, [pc, #580] ; (8004190 <DoKeyDN+0x748>)
8003f4c: 681b ldr r3, [r3, #0]
8003f4e: 69fa ldr r2, [r7, #28]
8003f50: ee07 2a90 vmov s15, r2
8003f54: eef8 7a67 vcvt.f32.u32 s15, s15
8003f58: 4a8e ldr r2, [pc, #568] ; (8004194 <DoKeyDN+0x74c>)
8003f5a: 015b lsls r3, r3, #5
8003f5c: 4413 add r3, r2
8003f5e: 3318 adds r3, #24
8003f60: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8003f64: 687b ldr r3, [r7, #4]
8003f66: 2b01 cmp r3, #1
8003f68: d112 bne.n 8003f90 <DoKeyDN+0x548>
8003f6a: 4b89 ldr r3, [pc, #548] ; (8004190 <DoKeyDN+0x748>)
8003f6c: 681b ldr r3, [r3, #0]
8003f6e: 4989 ldr r1, [pc, #548] ; (8004194 <DoKeyDN+0x74c>)
8003f70: 015a lsls r2, r3, #5
8003f72: 440a add r2, r1
8003f74: 3218 adds r2, #24
8003f76: edd2 7a00 vldr s15, [r2]
8003f7a: ed9f 7a87 vldr s14, [pc, #540] ; 8004198 <DoKeyDN+0x750>
8003f7e: ee67 7a87 vmul.f32 s15, s15, s14
8003f82: 4a84 ldr r2, [pc, #528] ; (8004194 <DoKeyDN+0x74c>)
8003f84: 015b lsls r3, r3, #5
8003f86: 4413 add r3, r2
8003f88: 3318 adds r3, #24
8003f8a: edc3 7a00 vstr s15, [r3]
8003f8e: e040 b.n 8004012 <DoKeyDN+0x5ca>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8003f90: 687b ldr r3, [r7, #4]
8003f92: 2b02 cmp r3, #2
8003f94: d112 bne.n 8003fbc <DoKeyDN+0x574>
8003f96: 4b7e ldr r3, [pc, #504] ; (8004190 <DoKeyDN+0x748>)
8003f98: 681b ldr r3, [r3, #0]
8003f9a: 497e ldr r1, [pc, #504] ; (8004194 <DoKeyDN+0x74c>)
8003f9c: 015a lsls r2, r3, #5
8003f9e: 440a add r2, r1
8003fa0: 3218 adds r2, #24
8003fa2: edd2 7a00 vldr s15, [r2]
8003fa6: ed9f 7a7d vldr s14, [pc, #500] ; 800419c <DoKeyDN+0x754>
8003faa: ee67 7a87 vmul.f32 s15, s15, s14
8003fae: 4a79 ldr r2, [pc, #484] ; (8004194 <DoKeyDN+0x74c>)
8003fb0: 015b lsls r3, r3, #5
8003fb2: 4413 add r3, r2
8003fb4: 3318 adds r3, #24
8003fb6: edc3 7a00 vstr s15, [r3]
8003fba: e02a b.n 8004012 <DoKeyDN+0x5ca>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8003fbc: 687b ldr r3, [r7, #4]
8003fbe: 2b03 cmp r3, #3
8003fc0: d112 bne.n 8003fe8 <DoKeyDN+0x5a0>
8003fc2: 4b73 ldr r3, [pc, #460] ; (8004190 <DoKeyDN+0x748>)
8003fc4: 681b ldr r3, [r3, #0]
8003fc6: 4973 ldr r1, [pc, #460] ; (8004194 <DoKeyDN+0x74c>)
8003fc8: 015a lsls r2, r3, #5
8003fca: 440a add r2, r1
8003fcc: 3218 adds r2, #24
8003fce: edd2 7a00 vldr s15, [r2]
8003fd2: ed9f 7a73 vldr s14, [pc, #460] ; 80041a0 <DoKeyDN+0x758>
8003fd6: ee67 7a87 vmul.f32 s15, s15, s14
8003fda: 4a6e ldr r2, [pc, #440] ; (8004194 <DoKeyDN+0x74c>)
8003fdc: 015b lsls r3, r3, #5
8003fde: 4413 add r3, r2
8003fe0: 3318 adds r3, #24
8003fe2: edc3 7a00 vstr s15, [r3]
8003fe6: e014 b.n 8004012 <DoKeyDN+0x5ca>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8003fe8: 687b ldr r3, [r7, #4]
8003fea: 2b04 cmp r3, #4
8003fec: d111 bne.n 8004012 <DoKeyDN+0x5ca>
8003fee: 4b68 ldr r3, [pc, #416] ; (8004190 <DoKeyDN+0x748>)
8003ff0: 681b ldr r3, [r3, #0]
8003ff2: 4968 ldr r1, [pc, #416] ; (8004194 <DoKeyDN+0x74c>)
8003ff4: 015a lsls r2, r3, #5
8003ff6: 440a add r2, r1
8003ff8: 3218 adds r2, #24
8003ffa: edd2 7a00 vldr s15, [r2]
8003ffe: ed9f 7a69 vldr s14, [pc, #420] ; 80041a4 <DoKeyDN+0x75c>
8004002: ee67 7a87 vmul.f32 s15, s15, s14
8004006: 4a63 ldr r2, [pc, #396] ; (8004194 <DoKeyDN+0x74c>)
8004008: 015b lsls r3, r3, #5
800400a: 4413 add r3, r2
800400c: 3318 adds r3, #24
800400e: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
8004012: 4b5f ldr r3, [pc, #380] ; (8004190 <DoKeyDN+0x748>)
8004014: 681b ldr r3, [r3, #0]
8004016: 4a5f ldr r2, [pc, #380] ; (8004194 <DoKeyDN+0x74c>)
8004018: 015b lsls r3, r3, #5
800401a: 4413 add r3, r2
800401c: 3318 adds r3, #24
800401e: edd3 7a00 vldr s15, [r3]
8004022: eef5 7ac0 vcmpe.f32 s15, #0.0
8004026: eef1 fa10 vmrs APSR_nzcv, fpscr
800402a: d807 bhi.n 800403c <DoKeyDN+0x5f4>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
800402c: 4b58 ldr r3, [pc, #352] ; (8004190 <DoKeyDN+0x748>)
800402e: 681b ldr r3, [r3, #0]
8004030: 4a58 ldr r2, [pc, #352] ; (8004194 <DoKeyDN+0x74c>)
8004032: 015b lsls r3, r3, #5
8004034: 4413 add r3, r2
8004036: 3318 adds r3, #24
8004038: 4a5b ldr r2, [pc, #364] ; (80041a8 <DoKeyDN+0x760>)
800403a: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
800403c: 4b54 ldr r3, [pc, #336] ; (8004190 <DoKeyDN+0x748>)
800403e: 681b ldr r3, [r3, #0]
8004040: 4a54 ldr r2, [pc, #336] ; (8004194 <DoKeyDN+0x74c>)
8004042: 015b lsls r3, r3, #5
8004044: 4413 add r3, r2
8004046: 3318 adds r3, #24
8004048: edd3 7a00 vldr s15, [r3]
800404c: ed9f 7a57 vldr s14, [pc, #348] ; 80041ac <DoKeyDN+0x764>
8004050: eef4 7ac7 vcmpe.f32 s15, s14
8004054: eef1 fa10 vmrs APSR_nzcv, fpscr
8004058: db07 blt.n 800406a <DoKeyDN+0x622>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
800405a: 4b4d ldr r3, [pc, #308] ; (8004190 <DoKeyDN+0x748>)
800405c: 681b ldr r3, [r3, #0]
800405e: 4a4d ldr r2, [pc, #308] ; (8004194 <DoKeyDN+0x74c>)
8004060: 015b lsls r3, r3, #5
8004062: 4413 add r3, r2
8004064: 3318 adds r3, #24
8004066: 4a52 ldr r2, [pc, #328] ; (80041b0 <DoKeyDN+0x768>)
8004068: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
800406a: 4b49 ldr r3, [pc, #292] ; (8004190 <DoKeyDN+0x748>)
800406c: 681b ldr r3, [r3, #0]
800406e: 4a49 ldr r2, [pc, #292] ; (8004194 <DoKeyDN+0x74c>)
8004070: 015b lsls r3, r3, #5
8004072: 4413 add r3, r2
8004074: 3318 adds r3, #24
8004076: edd3 7a00 vldr s15, [r3]
800407a: eeb0 0a67 vmov.f32 s0, s15
800407e: f000 fb89 bl 8004794 <VerifyGain>
8004082: e36f b.n 8004764 <DoKeyDN+0xd1c>
}
else
if(menupos == Kiks_1 || menupos == Kiks_2 || menupos == Kiks_3 || menupos == Kiks_4)
8004084: 4b41 ldr r3, [pc, #260] ; (800418c <DoKeyDN+0x744>)
8004086: 781b ldrb r3, [r3, #0]
8004088: b2db uxtb r3, r3
800408a: 2b04 cmp r3, #4
800408c: d00f beq.n 80040ae <DoKeyDN+0x666>
800408e: 4b3f ldr r3, [pc, #252] ; (800418c <DoKeyDN+0x744>)
8004090: 781b ldrb r3, [r3, #0]
8004092: b2db uxtb r3, r3
8004094: 2b0c cmp r3, #12
8004096: d00a beq.n 80040ae <DoKeyDN+0x666>
8004098: 4b3c ldr r3, [pc, #240] ; (800418c <DoKeyDN+0x744>)
800409a: 781b ldrb r3, [r3, #0]
800409c: b2db uxtb r3, r3
800409e: 2b14 cmp r3, #20
80040a0: d005 beq.n 80040ae <DoKeyDN+0x666>
80040a2: 4b3a ldr r3, [pc, #232] ; (800418c <DoKeyDN+0x744>)
80040a4: 781b ldrb r3, [r3, #0]
80040a6: b2db uxtb r3, r3
80040a8: 2b1c cmp r3, #28
80040aa: f040 80d1 bne.w 8004250 <DoKeyDN+0x808>
{
if(iks) {
80040ae: 693b ldr r3, [r7, #16]
80040b0: 2b00 cmp r3, #0
80040b2: d002 beq.n 80040ba <DoKeyDN+0x672>
iks--;
80040b4: 693b ldr r3, [r7, #16]
80040b6: 3b01 subs r3, #1
80040b8: 613b str r3, [r7, #16]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
80040ba: 69bb ldr r3, [r7, #24]
80040bc: f242 7210 movw r2, #10000 ; 0x2710
80040c0: fb02 f203 mul.w r2, r2, r3
80040c4: 697b ldr r3, [r7, #20]
80040c6: f44f 717a mov.w r1, #1000 ; 0x3e8
80040ca: fb01 f303 mul.w r3, r1, r3
80040ce: 18d1 adds r1, r2, r3
80040d0: 68fa ldr r2, [r7, #12]
80040d2: 4613 mov r3, r2
80040d4: 009b lsls r3, r3, #2
80040d6: 4413 add r3, r2
80040d8: 005b lsls r3, r3, #1
80040da: 4618 mov r0, r3
80040dc: 693b ldr r3, [r7, #16]
80040de: 2264 movs r2, #100 ; 0x64
80040e0: fb02 f303 mul.w r3, r2, r3
80040e4: 4403 add r3, r0
80040e6: 18ca adds r2, r1, r3
80040e8: 68bb ldr r3, [r7, #8]
80040ea: 4413 add r3, r2
80040ec: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
80040ee: 4b28 ldr r3, [pc, #160] ; (8004190 <DoKeyDN+0x748>)
80040f0: 681b ldr r3, [r3, #0]
80040f2: 69fa ldr r2, [r7, #28]
80040f4: ee07 2a90 vmov s15, r2
80040f8: eef8 7a67 vcvt.f32.u32 s15, s15
80040fc: 4a25 ldr r2, [pc, #148] ; (8004194 <DoKeyDN+0x74c>)
80040fe: 015b lsls r3, r3, #5
8004100: 4413 add r3, r2
8004102: 3318 adds r3, #24
8004104: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8004108: 687b ldr r3, [r7, #4]
800410a: 2b01 cmp r3, #1
800410c: d112 bne.n 8004134 <DoKeyDN+0x6ec>
800410e: 4b20 ldr r3, [pc, #128] ; (8004190 <DoKeyDN+0x748>)
8004110: 681b ldr r3, [r3, #0]
8004112: 4920 ldr r1, [pc, #128] ; (8004194 <DoKeyDN+0x74c>)
8004114: 015a lsls r2, r3, #5
8004116: 440a add r2, r1
8004118: 3218 adds r2, #24
800411a: edd2 7a00 vldr s15, [r2]
800411e: ed9f 7a1e vldr s14, [pc, #120] ; 8004198 <DoKeyDN+0x750>
8004122: ee67 7a87 vmul.f32 s15, s15, s14
8004126: 4a1b ldr r2, [pc, #108] ; (8004194 <DoKeyDN+0x74c>)
8004128: 015b lsls r3, r3, #5
800412a: 4413 add r3, r2
800412c: 3318 adds r3, #24
800412e: edc3 7a00 vstr s15, [r3]
8004132: e054 b.n 80041de <DoKeyDN+0x796>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8004134: 687b ldr r3, [r7, #4]
8004136: 2b02 cmp r3, #2
8004138: d112 bne.n 8004160 <DoKeyDN+0x718>
800413a: 4b15 ldr r3, [pc, #84] ; (8004190 <DoKeyDN+0x748>)
800413c: 681b ldr r3, [r3, #0]
800413e: 4915 ldr r1, [pc, #84] ; (8004194 <DoKeyDN+0x74c>)
8004140: 015a lsls r2, r3, #5
8004142: 440a add r2, r1
8004144: 3218 adds r2, #24
8004146: edd2 7a00 vldr s15, [r2]
800414a: ed9f 7a14 vldr s14, [pc, #80] ; 800419c <DoKeyDN+0x754>
800414e: ee67 7a87 vmul.f32 s15, s15, s14
8004152: 4a10 ldr r2, [pc, #64] ; (8004194 <DoKeyDN+0x74c>)
8004154: 015b lsls r3, r3, #5
8004156: 4413 add r3, r2
8004158: 3318 adds r3, #24
800415a: edc3 7a00 vstr s15, [r3]
800415e: e03e b.n 80041de <DoKeyDN+0x796>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8004160: 687b ldr r3, [r7, #4]
8004162: 2b03 cmp r3, #3
8004164: d126 bne.n 80041b4 <DoKeyDN+0x76c>
8004166: 4b0a ldr r3, [pc, #40] ; (8004190 <DoKeyDN+0x748>)
8004168: 681b ldr r3, [r3, #0]
800416a: 490a ldr r1, [pc, #40] ; (8004194 <DoKeyDN+0x74c>)
800416c: 015a lsls r2, r3, #5
800416e: 440a add r2, r1
8004170: 3218 adds r2, #24
8004172: edd2 7a00 vldr s15, [r2]
8004176: ed9f 7a0a vldr s14, [pc, #40] ; 80041a0 <DoKeyDN+0x758>
800417a: ee67 7a87 vmul.f32 s15, s15, s14
800417e: 4a05 ldr r2, [pc, #20] ; (8004194 <DoKeyDN+0x74c>)
8004180: 015b lsls r3, r3, #5
8004182: 4413 add r3, r2
8004184: 3318 adds r3, #24
8004186: edc3 7a00 vstr s15, [r3]
800418a: e028 b.n 80041de <DoKeyDN+0x796>
800418c: 20020010 .word 0x20020010
8004190: 2006b948 .word 0x2006b948
8004194: 2006bb88 .word 0x2006bb88
8004198: 3dcccccd .word 0x3dcccccd
800419c: 3c23d70a .word 0x3c23d70a
80041a0: 3a83126f .word 0x3a83126f
80041a4: 38d1b717 .word 0x38d1b717
80041a8: 38d1b717 .word 0x38d1b717
80041ac: 47c35000 .word 0x47c35000
80041b0: 47c34f80 .word 0x47c34f80
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
80041b4: 687b ldr r3, [r7, #4]
80041b6: 2b04 cmp r3, #4
80041b8: d111 bne.n 80041de <DoKeyDN+0x796>
80041ba: 4bba ldr r3, [pc, #744] ; (80044a4 <DoKeyDN+0xa5c>)
80041bc: 681b ldr r3, [r3, #0]
80041be: 49ba ldr r1, [pc, #744] ; (80044a8 <DoKeyDN+0xa60>)
80041c0: 015a lsls r2, r3, #5
80041c2: 440a add r2, r1
80041c4: 3218 adds r2, #24
80041c6: edd2 7a00 vldr s15, [r2]
80041ca: ed9f 7ab8 vldr s14, [pc, #736] ; 80044ac <DoKeyDN+0xa64>
80041ce: ee67 7a87 vmul.f32 s15, s15, s14
80041d2: 4ab5 ldr r2, [pc, #724] ; (80044a8 <DoKeyDN+0xa60>)
80041d4: 015b lsls r3, r3, #5
80041d6: 4413 add r3, r2
80041d8: 3318 adds r3, #24
80041da: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
80041de: 4bb1 ldr r3, [pc, #708] ; (80044a4 <DoKeyDN+0xa5c>)
80041e0: 681b ldr r3, [r3, #0]
80041e2: 4ab1 ldr r2, [pc, #708] ; (80044a8 <DoKeyDN+0xa60>)
80041e4: 015b lsls r3, r3, #5
80041e6: 4413 add r3, r2
80041e8: 3318 adds r3, #24
80041ea: edd3 7a00 vldr s15, [r3]
80041ee: eef5 7ac0 vcmpe.f32 s15, #0.0
80041f2: eef1 fa10 vmrs APSR_nzcv, fpscr
80041f6: d807 bhi.n 8004208 <DoKeyDN+0x7c0>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
80041f8: 4baa ldr r3, [pc, #680] ; (80044a4 <DoKeyDN+0xa5c>)
80041fa: 681b ldr r3, [r3, #0]
80041fc: 4aaa ldr r2, [pc, #680] ; (80044a8 <DoKeyDN+0xa60>)
80041fe: 015b lsls r3, r3, #5
8004200: 4413 add r3, r2
8004202: 3318 adds r3, #24
8004204: 4aaa ldr r2, [pc, #680] ; (80044b0 <DoKeyDN+0xa68>)
8004206: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8004208: 4ba6 ldr r3, [pc, #664] ; (80044a4 <DoKeyDN+0xa5c>)
800420a: 681b ldr r3, [r3, #0]
800420c: 4aa6 ldr r2, [pc, #664] ; (80044a8 <DoKeyDN+0xa60>)
800420e: 015b lsls r3, r3, #5
8004210: 4413 add r3, r2
8004212: 3318 adds r3, #24
8004214: edd3 7a00 vldr s15, [r3]
8004218: ed9f 7aa6 vldr s14, [pc, #664] ; 80044b4 <DoKeyDN+0xa6c>
800421c: eef4 7ac7 vcmpe.f32 s15, s14
8004220: eef1 fa10 vmrs APSR_nzcv, fpscr
8004224: db07 blt.n 8004236 <DoKeyDN+0x7ee>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
8004226: 4b9f ldr r3, [pc, #636] ; (80044a4 <DoKeyDN+0xa5c>)
8004228: 681b ldr r3, [r3, #0]
800422a: 4a9f ldr r2, [pc, #636] ; (80044a8 <DoKeyDN+0xa60>)
800422c: 015b lsls r3, r3, #5
800422e: 4413 add r3, r2
8004230: 3318 adds r3, #24
8004232: 4aa1 ldr r2, [pc, #644] ; (80044b8 <DoKeyDN+0xa70>)
8004234: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
8004236: 4b9b ldr r3, [pc, #620] ; (80044a4 <DoKeyDN+0xa5c>)
8004238: 681b ldr r3, [r3, #0]
800423a: 4a9b ldr r2, [pc, #620] ; (80044a8 <DoKeyDN+0xa60>)
800423c: 015b lsls r3, r3, #5
800423e: 4413 add r3, r2
8004240: 3318 adds r3, #24
8004242: edd3 7a00 vldr s15, [r3]
8004246: eeb0 0a67 vmov.f32 s0, s15
800424a: f000 faa3 bl 8004794 <VerifyGain>
800424e: e289 b.n 8004764 <DoKeyDN+0xd1c>
}
else
if(menupos == Kikd_1 || menupos == Kikd_2 || menupos == Kikd_3 || menupos == Kikd_4)
8004250: 4b9a ldr r3, [pc, #616] ; (80044bc <DoKeyDN+0xa74>)
8004252: 781b ldrb r3, [r3, #0]
8004254: b2db uxtb r3, r3
8004256: 2b05 cmp r3, #5
8004258: d00f beq.n 800427a <DoKeyDN+0x832>
800425a: 4b98 ldr r3, [pc, #608] ; (80044bc <DoKeyDN+0xa74>)
800425c: 781b ldrb r3, [r3, #0]
800425e: b2db uxtb r3, r3
8004260: 2b0d cmp r3, #13
8004262: d00a beq.n 800427a <DoKeyDN+0x832>
8004264: 4b95 ldr r3, [pc, #596] ; (80044bc <DoKeyDN+0xa74>)
8004266: 781b ldrb r3, [r3, #0]
8004268: b2db uxtb r3, r3
800426a: 2b15 cmp r3, #21
800426c: d005 beq.n 800427a <DoKeyDN+0x832>
800426e: 4b93 ldr r3, [pc, #588] ; (80044bc <DoKeyDN+0xa74>)
8004270: 781b ldrb r3, [r3, #0]
8004272: b2db uxtb r3, r3
8004274: 2b1d cmp r3, #29
8004276: f040 80bd bne.w 80043f4 <DoKeyDN+0x9ac>
{
if(ikd) {
800427a: 68fb ldr r3, [r7, #12]
800427c: 2b00 cmp r3, #0
800427e: d002 beq.n 8004286 <DoKeyDN+0x83e>
ikd--;
8004280: 68fb ldr r3, [r7, #12]
8004282: 3b01 subs r3, #1
8004284: 60fb str r3, [r7, #12]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
8004286: 69bb ldr r3, [r7, #24]
8004288: f242 7210 movw r2, #10000 ; 0x2710
800428c: fb02 f203 mul.w r2, r2, r3
8004290: 697b ldr r3, [r7, #20]
8004292: f44f 717a mov.w r1, #1000 ; 0x3e8
8004296: fb01 f303 mul.w r3, r1, r3
800429a: 18d1 adds r1, r2, r3
800429c: 68fa ldr r2, [r7, #12]
800429e: 4613 mov r3, r2
80042a0: 009b lsls r3, r3, #2
80042a2: 4413 add r3, r2
80042a4: 005b lsls r3, r3, #1
80042a6: 4618 mov r0, r3
80042a8: 693b ldr r3, [r7, #16]
80042aa: 2264 movs r2, #100 ; 0x64
80042ac: fb02 f303 mul.w r3, r2, r3
80042b0: 4403 add r3, r0
80042b2: 18ca adds r2, r1, r3
80042b4: 68bb ldr r3, [r7, #8]
80042b6: 4413 add r3, r2
80042b8: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
80042ba: 4b7a ldr r3, [pc, #488] ; (80044a4 <DoKeyDN+0xa5c>)
80042bc: 681b ldr r3, [r3, #0]
80042be: 69fa ldr r2, [r7, #28]
80042c0: ee07 2a90 vmov s15, r2
80042c4: eef8 7a67 vcvt.f32.u32 s15, s15
80042c8: 4a77 ldr r2, [pc, #476] ; (80044a8 <DoKeyDN+0xa60>)
80042ca: 015b lsls r3, r3, #5
80042cc: 4413 add r3, r2
80042ce: 3318 adds r3, #24
80042d0: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
80042d4: 687b ldr r3, [r7, #4]
80042d6: 2b01 cmp r3, #1
80042d8: d112 bne.n 8004300 <DoKeyDN+0x8b8>
80042da: 4b72 ldr r3, [pc, #456] ; (80044a4 <DoKeyDN+0xa5c>)
80042dc: 681b ldr r3, [r3, #0]
80042de: 4972 ldr r1, [pc, #456] ; (80044a8 <DoKeyDN+0xa60>)
80042e0: 015a lsls r2, r3, #5
80042e2: 440a add r2, r1
80042e4: 3218 adds r2, #24
80042e6: edd2 7a00 vldr s15, [r2]
80042ea: ed9f 7a75 vldr s14, [pc, #468] ; 80044c0 <DoKeyDN+0xa78>
80042ee: ee67 7a87 vmul.f32 s15, s15, s14
80042f2: 4a6d ldr r2, [pc, #436] ; (80044a8 <DoKeyDN+0xa60>)
80042f4: 015b lsls r3, r3, #5
80042f6: 4413 add r3, r2
80042f8: 3318 adds r3, #24
80042fa: edc3 7a00 vstr s15, [r3]
80042fe: e040 b.n 8004382 <DoKeyDN+0x93a>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8004300: 687b ldr r3, [r7, #4]
8004302: 2b02 cmp r3, #2
8004304: d112 bne.n 800432c <DoKeyDN+0x8e4>
8004306: 4b67 ldr r3, [pc, #412] ; (80044a4 <DoKeyDN+0xa5c>)
8004308: 681b ldr r3, [r3, #0]
800430a: 4967 ldr r1, [pc, #412] ; (80044a8 <DoKeyDN+0xa60>)
800430c: 015a lsls r2, r3, #5
800430e: 440a add r2, r1
8004310: 3218 adds r2, #24
8004312: edd2 7a00 vldr s15, [r2]
8004316: ed9f 7a6b vldr s14, [pc, #428] ; 80044c4 <DoKeyDN+0xa7c>
800431a: ee67 7a87 vmul.f32 s15, s15, s14
800431e: 4a62 ldr r2, [pc, #392] ; (80044a8 <DoKeyDN+0xa60>)
8004320: 015b lsls r3, r3, #5
8004322: 4413 add r3, r2
8004324: 3318 adds r3, #24
8004326: edc3 7a00 vstr s15, [r3]
800432a: e02a b.n 8004382 <DoKeyDN+0x93a>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
800432c: 687b ldr r3, [r7, #4]
800432e: 2b03 cmp r3, #3
8004330: d112 bne.n 8004358 <DoKeyDN+0x910>
8004332: 4b5c ldr r3, [pc, #368] ; (80044a4 <DoKeyDN+0xa5c>)
8004334: 681b ldr r3, [r3, #0]
8004336: 495c ldr r1, [pc, #368] ; (80044a8 <DoKeyDN+0xa60>)
8004338: 015a lsls r2, r3, #5
800433a: 440a add r2, r1
800433c: 3218 adds r2, #24
800433e: edd2 7a00 vldr s15, [r2]
8004342: ed9f 7a61 vldr s14, [pc, #388] ; 80044c8 <DoKeyDN+0xa80>
8004346: ee67 7a87 vmul.f32 s15, s15, s14
800434a: 4a57 ldr r2, [pc, #348] ; (80044a8 <DoKeyDN+0xa60>)
800434c: 015b lsls r3, r3, #5
800434e: 4413 add r3, r2
8004350: 3318 adds r3, #24
8004352: edc3 7a00 vstr s15, [r3]
8004356: e014 b.n 8004382 <DoKeyDN+0x93a>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8004358: 687b ldr r3, [r7, #4]
800435a: 2b04 cmp r3, #4
800435c: d111 bne.n 8004382 <DoKeyDN+0x93a>
800435e: 4b51 ldr r3, [pc, #324] ; (80044a4 <DoKeyDN+0xa5c>)
8004360: 681b ldr r3, [r3, #0]
8004362: 4951 ldr r1, [pc, #324] ; (80044a8 <DoKeyDN+0xa60>)
8004364: 015a lsls r2, r3, #5
8004366: 440a add r2, r1
8004368: 3218 adds r2, #24
800436a: edd2 7a00 vldr s15, [r2]
800436e: ed9f 7a4f vldr s14, [pc, #316] ; 80044ac <DoKeyDN+0xa64>
8004372: ee67 7a87 vmul.f32 s15, s15, s14
8004376: 4a4c ldr r2, [pc, #304] ; (80044a8 <DoKeyDN+0xa60>)
8004378: 015b lsls r3, r3, #5
800437a: 4413 add r3, r2
800437c: 3318 adds r3, #24
800437e: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
8004382: 4b48 ldr r3, [pc, #288] ; (80044a4 <DoKeyDN+0xa5c>)
8004384: 681b ldr r3, [r3, #0]
8004386: 4a48 ldr r2, [pc, #288] ; (80044a8 <DoKeyDN+0xa60>)
8004388: 015b lsls r3, r3, #5
800438a: 4413 add r3, r2
800438c: 3318 adds r3, #24
800438e: edd3 7a00 vldr s15, [r3]
8004392: eef5 7ac0 vcmpe.f32 s15, #0.0
8004396: eef1 fa10 vmrs APSR_nzcv, fpscr
800439a: d807 bhi.n 80043ac <DoKeyDN+0x964>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
800439c: 4b41 ldr r3, [pc, #260] ; (80044a4 <DoKeyDN+0xa5c>)
800439e: 681b ldr r3, [r3, #0]
80043a0: 4a41 ldr r2, [pc, #260] ; (80044a8 <DoKeyDN+0xa60>)
80043a2: 015b lsls r3, r3, #5
80043a4: 4413 add r3, r2
80043a6: 3318 adds r3, #24
80043a8: 4a41 ldr r2, [pc, #260] ; (80044b0 <DoKeyDN+0xa68>)
80043aa: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
80043ac: 4b3d ldr r3, [pc, #244] ; (80044a4 <DoKeyDN+0xa5c>)
80043ae: 681b ldr r3, [r3, #0]
80043b0: 4a3d ldr r2, [pc, #244] ; (80044a8 <DoKeyDN+0xa60>)
80043b2: 015b lsls r3, r3, #5
80043b4: 4413 add r3, r2
80043b6: 3318 adds r3, #24
80043b8: edd3 7a00 vldr s15, [r3]
80043bc: ed9f 7a3d vldr s14, [pc, #244] ; 80044b4 <DoKeyDN+0xa6c>
80043c0: eef4 7ac7 vcmpe.f32 s15, s14
80043c4: eef1 fa10 vmrs APSR_nzcv, fpscr
80043c8: db07 blt.n 80043da <DoKeyDN+0x992>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
80043ca: 4b36 ldr r3, [pc, #216] ; (80044a4 <DoKeyDN+0xa5c>)
80043cc: 681b ldr r3, [r3, #0]
80043ce: 4a36 ldr r2, [pc, #216] ; (80044a8 <DoKeyDN+0xa60>)
80043d0: 015b lsls r3, r3, #5
80043d2: 4413 add r3, r2
80043d4: 3318 adds r3, #24
80043d6: 4a38 ldr r2, [pc, #224] ; (80044b8 <DoKeyDN+0xa70>)
80043d8: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
80043da: 4b32 ldr r3, [pc, #200] ; (80044a4 <DoKeyDN+0xa5c>)
80043dc: 681b ldr r3, [r3, #0]
80043de: 4a32 ldr r2, [pc, #200] ; (80044a8 <DoKeyDN+0xa60>)
80043e0: 015b lsls r3, r3, #5
80043e2: 4413 add r3, r2
80043e4: 3318 adds r3, #24
80043e6: edd3 7a00 vldr s15, [r3]
80043ea: eeb0 0a67 vmov.f32 s0, s15
80043ee: f000 f9d1 bl 8004794 <VerifyGain>
80043f2: e1b7 b.n 8004764 <DoKeyDN+0xd1c>
}
else
if(menupos == Kike_1 || menupos == Kike_2 || menupos == Kike_3 || menupos == Kike_4)
80043f4: 4b31 ldr r3, [pc, #196] ; (80044bc <DoKeyDN+0xa74>)
80043f6: 781b ldrb r3, [r3, #0]
80043f8: b2db uxtb r3, r3
80043fa: 2b06 cmp r3, #6
80043fc: d00f beq.n 800441e <DoKeyDN+0x9d6>
80043fe: 4b2f ldr r3, [pc, #188] ; (80044bc <DoKeyDN+0xa74>)
8004400: 781b ldrb r3, [r3, #0]
8004402: b2db uxtb r3, r3
8004404: 2b0e cmp r3, #14
8004406: d00a beq.n 800441e <DoKeyDN+0x9d6>
8004408: 4b2c ldr r3, [pc, #176] ; (80044bc <DoKeyDN+0xa74>)
800440a: 781b ldrb r3, [r3, #0]
800440c: b2db uxtb r3, r3
800440e: 2b16 cmp r3, #22
8004410: d005 beq.n 800441e <DoKeyDN+0x9d6>
8004412: 4b2a ldr r3, [pc, #168] ; (80044bc <DoKeyDN+0xa74>)
8004414: 781b ldrb r3, [r3, #0]
8004416: b2db uxtb r3, r3
8004418: 2b1e cmp r3, #30
800441a: f040 80d1 bne.w 80045c0 <DoKeyDN+0xb78>
{
if(ike) {
800441e: 68bb ldr r3, [r7, #8]
8004420: 2b00 cmp r3, #0
8004422: d002 beq.n 800442a <DoKeyDN+0x9e2>
ike--;
8004424: 68bb ldr r3, [r7, #8]
8004426: 3b01 subs r3, #1
8004428: 60bb str r3, [r7, #8]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
800442a: 69bb ldr r3, [r7, #24]
800442c: f242 7210 movw r2, #10000 ; 0x2710
8004430: fb02 f203 mul.w r2, r2, r3
8004434: 697b ldr r3, [r7, #20]
8004436: f44f 717a mov.w r1, #1000 ; 0x3e8
800443a: fb01 f303 mul.w r3, r1, r3
800443e: 18d1 adds r1, r2, r3
8004440: 68fa ldr r2, [r7, #12]
8004442: 4613 mov r3, r2
8004444: 009b lsls r3, r3, #2
8004446: 4413 add r3, r2
8004448: 005b lsls r3, r3, #1
800444a: 4618 mov r0, r3
800444c: 693b ldr r3, [r7, #16]
800444e: 2264 movs r2, #100 ; 0x64
8004450: fb02 f303 mul.w r3, r2, r3
8004454: 4403 add r3, r0
8004456: 18ca adds r2, r1, r3
8004458: 68bb ldr r3, [r7, #8]
800445a: 4413 add r3, r2
800445c: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
800445e: 4b11 ldr r3, [pc, #68] ; (80044a4 <DoKeyDN+0xa5c>)
8004460: 681b ldr r3, [r3, #0]
8004462: 69fa ldr r2, [r7, #28]
8004464: ee07 2a90 vmov s15, r2
8004468: eef8 7a67 vcvt.f32.u32 s15, s15
800446c: 4a0e ldr r2, [pc, #56] ; (80044a8 <DoKeyDN+0xa60>)
800446e: 015b lsls r3, r3, #5
8004470: 4413 add r3, r2
8004472: 3318 adds r3, #24
8004474: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8004478: 687b ldr r3, [r7, #4]
800447a: 2b01 cmp r3, #1
800447c: d126 bne.n 80044cc <DoKeyDN+0xa84>
800447e: 4b09 ldr r3, [pc, #36] ; (80044a4 <DoKeyDN+0xa5c>)
8004480: 681b ldr r3, [r3, #0]
8004482: 4909 ldr r1, [pc, #36] ; (80044a8 <DoKeyDN+0xa60>)
8004484: 015a lsls r2, r3, #5
8004486: 440a add r2, r1
8004488: 3218 adds r2, #24
800448a: edd2 7a00 vldr s15, [r2]
800448e: ed9f 7a0c vldr s14, [pc, #48] ; 80044c0 <DoKeyDN+0xa78>
8004492: ee67 7a87 vmul.f32 s15, s15, s14
8004496: 4a04 ldr r2, [pc, #16] ; (80044a8 <DoKeyDN+0xa60>)
8004498: 015b lsls r3, r3, #5
800449a: 4413 add r3, r2
800449c: 3318 adds r3, #24
800449e: edc3 7a00 vstr s15, [r3]
80044a2: e054 b.n 800454e <DoKeyDN+0xb06>
80044a4: 2006b948 .word 0x2006b948
80044a8: 2006bb88 .word 0x2006bb88
80044ac: 38d1b717 .word 0x38d1b717
80044b0: 38d1b717 .word 0x38d1b717
80044b4: 47c35000 .word 0x47c35000
80044b8: 47c34f80 .word 0x47c34f80
80044bc: 20020010 .word 0x20020010
80044c0: 3dcccccd .word 0x3dcccccd
80044c4: 3c23d70a .word 0x3c23d70a
80044c8: 3a83126f .word 0x3a83126f
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
80044cc: 687b ldr r3, [r7, #4]
80044ce: 2b02 cmp r3, #2
80044d0: d112 bne.n 80044f8 <DoKeyDN+0xab0>
80044d2: 4ba6 ldr r3, [pc, #664] ; (800476c <DoKeyDN+0xd24>)
80044d4: 681b ldr r3, [r3, #0]
80044d6: 49a6 ldr r1, [pc, #664] ; (8004770 <DoKeyDN+0xd28>)
80044d8: 015a lsls r2, r3, #5
80044da: 440a add r2, r1
80044dc: 3218 adds r2, #24
80044de: edd2 7a00 vldr s15, [r2]
80044e2: ed9f 7aa4 vldr s14, [pc, #656] ; 8004774 <DoKeyDN+0xd2c>
80044e6: ee67 7a87 vmul.f32 s15, s15, s14
80044ea: 4aa1 ldr r2, [pc, #644] ; (8004770 <DoKeyDN+0xd28>)
80044ec: 015b lsls r3, r3, #5
80044ee: 4413 add r3, r2
80044f0: 3318 adds r3, #24
80044f2: edc3 7a00 vstr s15, [r3]
80044f6: e02a b.n 800454e <DoKeyDN+0xb06>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
80044f8: 687b ldr r3, [r7, #4]
80044fa: 2b03 cmp r3, #3
80044fc: d112 bne.n 8004524 <DoKeyDN+0xadc>
80044fe: 4b9b ldr r3, [pc, #620] ; (800476c <DoKeyDN+0xd24>)
8004500: 681b ldr r3, [r3, #0]
8004502: 499b ldr r1, [pc, #620] ; (8004770 <DoKeyDN+0xd28>)
8004504: 015a lsls r2, r3, #5
8004506: 440a add r2, r1
8004508: 3218 adds r2, #24
800450a: edd2 7a00 vldr s15, [r2]
800450e: ed9f 7a9a vldr s14, [pc, #616] ; 8004778 <DoKeyDN+0xd30>
8004512: ee67 7a87 vmul.f32 s15, s15, s14
8004516: 4a96 ldr r2, [pc, #600] ; (8004770 <DoKeyDN+0xd28>)
8004518: 015b lsls r3, r3, #5
800451a: 4413 add r3, r2
800451c: 3318 adds r3, #24
800451e: edc3 7a00 vstr s15, [r3]
8004522: e014 b.n 800454e <DoKeyDN+0xb06>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8004524: 687b ldr r3, [r7, #4]
8004526: 2b04 cmp r3, #4
8004528: d111 bne.n 800454e <DoKeyDN+0xb06>
800452a: 4b90 ldr r3, [pc, #576] ; (800476c <DoKeyDN+0xd24>)
800452c: 681b ldr r3, [r3, #0]
800452e: 4990 ldr r1, [pc, #576] ; (8004770 <DoKeyDN+0xd28>)
8004530: 015a lsls r2, r3, #5
8004532: 440a add r2, r1
8004534: 3218 adds r2, #24
8004536: edd2 7a00 vldr s15, [r2]
800453a: ed9f 7a90 vldr s14, [pc, #576] ; 800477c <DoKeyDN+0xd34>
800453e: ee67 7a87 vmul.f32 s15, s15, s14
8004542: 4a8b ldr r2, [pc, #556] ; (8004770 <DoKeyDN+0xd28>)
8004544: 015b lsls r3, r3, #5
8004546: 4413 add r3, r2
8004548: 3318 adds r3, #24
800454a: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
800454e: 4b87 ldr r3, [pc, #540] ; (800476c <DoKeyDN+0xd24>)
8004550: 681b ldr r3, [r3, #0]
8004552: 4a87 ldr r2, [pc, #540] ; (8004770 <DoKeyDN+0xd28>)
8004554: 015b lsls r3, r3, #5
8004556: 4413 add r3, r2
8004558: 3318 adds r3, #24
800455a: edd3 7a00 vldr s15, [r3]
800455e: eef5 7ac0 vcmpe.f32 s15, #0.0
8004562: eef1 fa10 vmrs APSR_nzcv, fpscr
8004566: d807 bhi.n 8004578 <DoKeyDN+0xb30>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
8004568: 4b80 ldr r3, [pc, #512] ; (800476c <DoKeyDN+0xd24>)
800456a: 681b ldr r3, [r3, #0]
800456c: 4a80 ldr r2, [pc, #512] ; (8004770 <DoKeyDN+0xd28>)
800456e: 015b lsls r3, r3, #5
8004570: 4413 add r3, r2
8004572: 3318 adds r3, #24
8004574: 4a82 ldr r2, [pc, #520] ; (8004780 <DoKeyDN+0xd38>)
8004576: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8004578: 4b7c ldr r3, [pc, #496] ; (800476c <DoKeyDN+0xd24>)
800457a: 681b ldr r3, [r3, #0]
800457c: 4a7c ldr r2, [pc, #496] ; (8004770 <DoKeyDN+0xd28>)
800457e: 015b lsls r3, r3, #5
8004580: 4413 add r3, r2
8004582: 3318 adds r3, #24
8004584: edd3 7a00 vldr s15, [r3]
8004588: ed9f 7a7e vldr s14, [pc, #504] ; 8004784 <DoKeyDN+0xd3c>
800458c: eef4 7ac7 vcmpe.f32 s15, s14
8004590: eef1 fa10 vmrs APSR_nzcv, fpscr
8004594: db07 blt.n 80045a6 <DoKeyDN+0xb5e>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
8004596: 4b75 ldr r3, [pc, #468] ; (800476c <DoKeyDN+0xd24>)
8004598: 681b ldr r3, [r3, #0]
800459a: 4a75 ldr r2, [pc, #468] ; (8004770 <DoKeyDN+0xd28>)
800459c: 015b lsls r3, r3, #5
800459e: 4413 add r3, r2
80045a0: 3318 adds r3, #24
80045a2: 4a79 ldr r2, [pc, #484] ; (8004788 <DoKeyDN+0xd40>)
80045a4: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
80045a6: 4b71 ldr r3, [pc, #452] ; (800476c <DoKeyDN+0xd24>)
80045a8: 681b ldr r3, [r3, #0]
80045aa: 4a71 ldr r2, [pc, #452] ; (8004770 <DoKeyDN+0xd28>)
80045ac: 015b lsls r3, r3, #5
80045ae: 4413 add r3, r2
80045b0: 3318 adds r3, #24
80045b2: edd3 7a00 vldr s15, [r3]
80045b6: eeb0 0a67 vmov.f32 s0, s15
80045ba: f000 f8eb bl 8004794 <VerifyGain>
80045be: e0d1 b.n 8004764 <DoKeyDN+0xd1c>
}
else
if(menupos == Kpt_1 || menupos == Kpt_2 || menupos == Kpt_3 || menupos == Kpt_4)
80045c0: 4b72 ldr r3, [pc, #456] ; (800478c <DoKeyDN+0xd44>)
80045c2: 781b ldrb r3, [r3, #0]
80045c4: b2db uxtb r3, r3
80045c6: 2b07 cmp r3, #7
80045c8: d00f beq.n 80045ea <DoKeyDN+0xba2>
80045ca: 4b70 ldr r3, [pc, #448] ; (800478c <DoKeyDN+0xd44>)
80045cc: 781b ldrb r3, [r3, #0]
80045ce: b2db uxtb r3, r3
80045d0: 2b0f cmp r3, #15
80045d2: d00a beq.n 80045ea <DoKeyDN+0xba2>
80045d4: 4b6d ldr r3, [pc, #436] ; (800478c <DoKeyDN+0xd44>)
80045d6: 781b ldrb r3, [r3, #0]
80045d8: b2db uxtb r3, r3
80045da: 2b17 cmp r3, #23
80045dc: d005 beq.n 80045ea <DoKeyDN+0xba2>
80045de: 4b6b ldr r3, [pc, #428] ; (800478c <DoKeyDN+0xd44>)
80045e0: 781b ldrb r3, [r3, #0]
80045e2: b2db uxtb r3, r3
80045e4: 2b1f cmp r3, #31
80045e6: f040 80bd bne.w 8004764 <DoKeyDN+0xd1c>
{
if(ipt < 4) {
80045ea: 687b ldr r3, [r7, #4]
80045ec: 2b03 cmp r3, #3
80045ee: d802 bhi.n 80045f6 <DoKeyDN+0xbae>
ipt++;
80045f0: 687b ldr r3, [r7, #4]
80045f2: 3301 adds r3, #1
80045f4: 607b str r3, [r7, #4]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
80045f6: 69bb ldr r3, [r7, #24]
80045f8: f242 7210 movw r2, #10000 ; 0x2710
80045fc: fb02 f203 mul.w r2, r2, r3
8004600: 697b ldr r3, [r7, #20]
8004602: f44f 717a mov.w r1, #1000 ; 0x3e8
8004606: fb01 f303 mul.w r3, r1, r3
800460a: 18d1 adds r1, r2, r3
800460c: 68fa ldr r2, [r7, #12]
800460e: 4613 mov r3, r2
8004610: 009b lsls r3, r3, #2
8004612: 4413 add r3, r2
8004614: 005b lsls r3, r3, #1
8004616: 4618 mov r0, r3
8004618: 693b ldr r3, [r7, #16]
800461a: 2264 movs r2, #100 ; 0x64
800461c: fb02 f303 mul.w r3, r2, r3
8004620: 4403 add r3, r0
8004622: 18ca adds r2, r1, r3
8004624: 68bb ldr r3, [r7, #8]
8004626: 4413 add r3, r2
8004628: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
800462a: 4b50 ldr r3, [pc, #320] ; (800476c <DoKeyDN+0xd24>)
800462c: 681b ldr r3, [r3, #0]
800462e: 69fa ldr r2, [r7, #28]
8004630: ee07 2a90 vmov s15, r2
8004634: eef8 7a67 vcvt.f32.u32 s15, s15
8004638: 4a4d ldr r2, [pc, #308] ; (8004770 <DoKeyDN+0xd28>)
800463a: 015b lsls r3, r3, #5
800463c: 4413 add r3, r2
800463e: 3318 adds r3, #24
8004640: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8004644: 687b ldr r3, [r7, #4]
8004646: 2b01 cmp r3, #1
8004648: d112 bne.n 8004670 <DoKeyDN+0xc28>
800464a: 4b48 ldr r3, [pc, #288] ; (800476c <DoKeyDN+0xd24>)
800464c: 681b ldr r3, [r3, #0]
800464e: 4948 ldr r1, [pc, #288] ; (8004770 <DoKeyDN+0xd28>)
8004650: 015a lsls r2, r3, #5
8004652: 440a add r2, r1
8004654: 3218 adds r2, #24
8004656: edd2 7a00 vldr s15, [r2]
800465a: ed9f 7a4d vldr s14, [pc, #308] ; 8004790 <DoKeyDN+0xd48>
800465e: ee67 7a87 vmul.f32 s15, s15, s14
8004662: 4a43 ldr r2, [pc, #268] ; (8004770 <DoKeyDN+0xd28>)
8004664: 015b lsls r3, r3, #5
8004666: 4413 add r3, r2
8004668: 3318 adds r3, #24
800466a: edc3 7a00 vstr s15, [r3]
800466e: e040 b.n 80046f2 <DoKeyDN+0xcaa>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8004670: 687b ldr r3, [r7, #4]
8004672: 2b02 cmp r3, #2
8004674: d112 bne.n 800469c <DoKeyDN+0xc54>
8004676: 4b3d ldr r3, [pc, #244] ; (800476c <DoKeyDN+0xd24>)
8004678: 681b ldr r3, [r3, #0]
800467a: 493d ldr r1, [pc, #244] ; (8004770 <DoKeyDN+0xd28>)
800467c: 015a lsls r2, r3, #5
800467e: 440a add r2, r1
8004680: 3218 adds r2, #24
8004682: edd2 7a00 vldr s15, [r2]
8004686: ed9f 7a3b vldr s14, [pc, #236] ; 8004774 <DoKeyDN+0xd2c>
800468a: ee67 7a87 vmul.f32 s15, s15, s14
800468e: 4a38 ldr r2, [pc, #224] ; (8004770 <DoKeyDN+0xd28>)
8004690: 015b lsls r3, r3, #5
8004692: 4413 add r3, r2
8004694: 3318 adds r3, #24
8004696: edc3 7a00 vstr s15, [r3]
800469a: e02a b.n 80046f2 <DoKeyDN+0xcaa>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
800469c: 687b ldr r3, [r7, #4]
800469e: 2b03 cmp r3, #3
80046a0: d112 bne.n 80046c8 <DoKeyDN+0xc80>
80046a2: 4b32 ldr r3, [pc, #200] ; (800476c <DoKeyDN+0xd24>)
80046a4: 681b ldr r3, [r3, #0]
80046a6: 4932 ldr r1, [pc, #200] ; (8004770 <DoKeyDN+0xd28>)
80046a8: 015a lsls r2, r3, #5
80046aa: 440a add r2, r1
80046ac: 3218 adds r2, #24
80046ae: edd2 7a00 vldr s15, [r2]
80046b2: ed9f 7a31 vldr s14, [pc, #196] ; 8004778 <DoKeyDN+0xd30>
80046b6: ee67 7a87 vmul.f32 s15, s15, s14
80046ba: 4a2d ldr r2, [pc, #180] ; (8004770 <DoKeyDN+0xd28>)
80046bc: 015b lsls r3, r3, #5
80046be: 4413 add r3, r2
80046c0: 3318 adds r3, #24
80046c2: edc3 7a00 vstr s15, [r3]
80046c6: e014 b.n 80046f2 <DoKeyDN+0xcaa>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
80046c8: 687b ldr r3, [r7, #4]
80046ca: 2b04 cmp r3, #4
80046cc: d111 bne.n 80046f2 <DoKeyDN+0xcaa>
80046ce: 4b27 ldr r3, [pc, #156] ; (800476c <DoKeyDN+0xd24>)
80046d0: 681b ldr r3, [r3, #0]
80046d2: 4927 ldr r1, [pc, #156] ; (8004770 <DoKeyDN+0xd28>)
80046d4: 015a lsls r2, r3, #5
80046d6: 440a add r2, r1
80046d8: 3218 adds r2, #24
80046da: edd2 7a00 vldr s15, [r2]
80046de: ed9f 7a27 vldr s14, [pc, #156] ; 800477c <DoKeyDN+0xd34>
80046e2: ee67 7a87 vmul.f32 s15, s15, s14
80046e6: 4a22 ldr r2, [pc, #136] ; (8004770 <DoKeyDN+0xd28>)
80046e8: 015b lsls r3, r3, #5
80046ea: 4413 add r3, r2
80046ec: 3318 adds r3, #24
80046ee: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
80046f2: 4b1e ldr r3, [pc, #120] ; (800476c <DoKeyDN+0xd24>)
80046f4: 681b ldr r3, [r3, #0]
80046f6: 4a1e ldr r2, [pc, #120] ; (8004770 <DoKeyDN+0xd28>)
80046f8: 015b lsls r3, r3, #5
80046fa: 4413 add r3, r2
80046fc: 3318 adds r3, #24
80046fe: edd3 7a00 vldr s15, [r3]
8004702: eef5 7ac0 vcmpe.f32 s15, #0.0
8004706: eef1 fa10 vmrs APSR_nzcv, fpscr
800470a: d807 bhi.n 800471c <DoKeyDN+0xcd4>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
800470c: 4b17 ldr r3, [pc, #92] ; (800476c <DoKeyDN+0xd24>)
800470e: 681b ldr r3, [r3, #0]
8004710: 4a17 ldr r2, [pc, #92] ; (8004770 <DoKeyDN+0xd28>)
8004712: 015b lsls r3, r3, #5
8004714: 4413 add r3, r2
8004716: 3318 adds r3, #24
8004718: 4a19 ldr r2, [pc, #100] ; (8004780 <DoKeyDN+0xd38>)
800471a: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
800471c: 4b13 ldr r3, [pc, #76] ; (800476c <DoKeyDN+0xd24>)
800471e: 681b ldr r3, [r3, #0]
8004720: 4a13 ldr r2, [pc, #76] ; (8004770 <DoKeyDN+0xd28>)
8004722: 015b lsls r3, r3, #5
8004724: 4413 add r3, r2
8004726: 3318 adds r3, #24
8004728: edd3 7a00 vldr s15, [r3]
800472c: ed9f 7a15 vldr s14, [pc, #84] ; 8004784 <DoKeyDN+0xd3c>
8004730: eef4 7ac7 vcmpe.f32 s15, s14
8004734: eef1 fa10 vmrs APSR_nzcv, fpscr
8004738: db07 blt.n 800474a <DoKeyDN+0xd02>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
800473a: 4b0c ldr r3, [pc, #48] ; (800476c <DoKeyDN+0xd24>)
800473c: 681b ldr r3, [r3, #0]
800473e: 4a0c ldr r2, [pc, #48] ; (8004770 <DoKeyDN+0xd28>)
8004740: 015b lsls r3, r3, #5
8004742: 4413 add r3, r2
8004744: 3318 adds r3, #24
8004746: 4a10 ldr r2, [pc, #64] ; (8004788 <DoKeyDN+0xd40>)
8004748: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
800474a: 4b08 ldr r3, [pc, #32] ; (800476c <DoKeyDN+0xd24>)
800474c: 681b ldr r3, [r3, #0]
800474e: 4a08 ldr r2, [pc, #32] ; (8004770 <DoKeyDN+0xd28>)
8004750: 015b lsls r3, r3, #5
8004752: 4413 add r3, r2
8004754: 3318 adds r3, #24
8004756: edd3 7a00 vldr s15, [r3]
800475a: eeb0 0a67 vmov.f32 s0, s15
800475e: f000 f819 bl 8004794 <VerifyGain>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
}*/
}
8004762: e7ff b.n 8004764 <DoKeyDN+0xd1c>
8004764: bf00 nop
8004766: 3720 adds r7, #32
8004768: 46bd mov sp, r7
800476a: bd80 pop {r7, pc}
800476c: 2006b948 .word 0x2006b948
8004770: 2006bb88 .word 0x2006bb88
8004774: 3c23d70a .word 0x3c23d70a
8004778: 3a83126f .word 0x3a83126f
800477c: 38d1b717 .word 0x38d1b717
8004780: 38d1b717 .word 0x38d1b717
8004784: 47c35000 .word 0x47c35000
8004788: 47c34f80 .word 0x47c34f80
800478c: 20020010 .word 0x20020010
8004790: 3dcccccd .word 0x3dcccccd
08004794 <VerifyGain>:
void VerifyGain(float32_t sens)
{
8004794: b480 push {r7}
8004796: b083 sub sp, #12
8004798: af00 add r7, sp, #0
800479a: ed87 0a01 vstr s0, [r7, #4]
if(sens <= 0.0010f) //0.001
800479e: edd7 7a01 vldr s15, [r7, #4]
80047a2: ed9f 7aac vldr s14, [pc, #688] ; 8004a54 <VerifyGain+0x2c0>
80047a6: eef4 7ac7 vcmpe.f32 s15, s14
80047aa: eef1 fa10 vmrs APSR_nzcv, fpscr
80047ae: d813 bhi.n 80047d8 <VerifyGain+0x44>
{
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku1000)
80047b0: 4ba9 ldr r3, [pc, #676] ; (8004a58 <VerifyGain+0x2c4>)
80047b2: 681b ldr r3, [r3, #0]
80047b4: 4aa9 ldr r2, [pc, #676] ; (8004a5c <VerifyGain+0x2c8>)
80047b6: 015b lsls r3, r3, #5
80047b8: 4413 add r3, r2
80047ba: 3306 adds r3, #6
80047bc: 881b ldrh r3, [r3, #0]
80047be: b29b uxth r3, r3
80047c0: 2b0c cmp r3, #12
80047c2: f240 8199 bls.w 8004af8 <VerifyGain+0x364>
{
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku1000;
80047c6: 4ba4 ldr r3, [pc, #656] ; (8004a58 <VerifyGain+0x2c4>)
80047c8: 681b ldr r3, [r3, #0]
80047ca: 4aa4 ldr r2, [pc, #656] ; (8004a5c <VerifyGain+0x2c8>)
80047cc: 015b lsls r3, r3, #5
80047ce: 4413 add r3, r2
80047d0: 3306 adds r3, #6
80047d2: 220c movs r2, #12
80047d4: 801a strh r2, [r3, #0]
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku0_1)
{
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku0_1;
}
}
}
80047d6: e18f b.n 8004af8 <VerifyGain+0x364>
if(/*sens >= 0.0011f && */sens <= 10.000f) //0.002
80047d8: edd7 7a01 vldr s15, [r7, #4]
80047dc: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
80047e0: eef4 7ac7 vcmpe.f32 s15, s14
80047e4: eef1 fa10 vmrs APSR_nzcv, fpscr
80047e8: d813 bhi.n 8004812 <VerifyGain+0x7e>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku1000)
80047ea: 4b9b ldr r3, [pc, #620] ; (8004a58 <VerifyGain+0x2c4>)
80047ec: 681b ldr r3, [r3, #0]
80047ee: 4a9b ldr r2, [pc, #620] ; (8004a5c <VerifyGain+0x2c8>)
80047f0: 015b lsls r3, r3, #5
80047f2: 4413 add r3, r2
80047f4: 3306 adds r3, #6
80047f6: 881b ldrh r3, [r3, #0]
80047f8: b29b uxth r3, r3
80047fa: 2b0c cmp r3, #12
80047fc: f240 817c bls.w 8004af8 <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku1000;
8004800: 4b95 ldr r3, [pc, #596] ; (8004a58 <VerifyGain+0x2c4>)
8004802: 681b ldr r3, [r3, #0]
8004804: 4a95 ldr r2, [pc, #596] ; (8004a5c <VerifyGain+0x2c8>)
8004806: 015b lsls r3, r3, #5
8004808: 4413 add r3, r2
800480a: 3306 adds r3, #6
800480c: 220c movs r2, #12
800480e: 801a strh r2, [r3, #0]
}
8004810: e172 b.n 8004af8 <VerifyGain+0x364>
if(/*sens >= 10.001f && */sens <= 20.000f) //20
8004812: edd7 7a01 vldr s15, [r7, #4]
8004816: eeb3 7a04 vmov.f32 s14, #52 ; 0x41a00000 20.0
800481a: eef4 7ac7 vcmpe.f32 s15, s14
800481e: eef1 fa10 vmrs APSR_nzcv, fpscr
8004822: d813 bhi.n 800484c <VerifyGain+0xb8>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku500)
8004824: 4b8c ldr r3, [pc, #560] ; (8004a58 <VerifyGain+0x2c4>)
8004826: 681b ldr r3, [r3, #0]
8004828: 4a8c ldr r2, [pc, #560] ; (8004a5c <VerifyGain+0x2c8>)
800482a: 015b lsls r3, r3, #5
800482c: 4413 add r3, r2
800482e: 3306 adds r3, #6
8004830: 881b ldrh r3, [r3, #0]
8004832: b29b uxth r3, r3
8004834: 2b0b cmp r3, #11
8004836: f240 815f bls.w 8004af8 <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku500;
800483a: 4b87 ldr r3, [pc, #540] ; (8004a58 <VerifyGain+0x2c4>)
800483c: 681b ldr r3, [r3, #0]
800483e: 4a87 ldr r2, [pc, #540] ; (8004a5c <VerifyGain+0x2c8>)
8004840: 015b lsls r3, r3, #5
8004842: 4413 add r3, r2
8004844: 3306 adds r3, #6
8004846: 220b movs r2, #11
8004848: 801a strh r2, [r3, #0]
}
800484a: e155 b.n 8004af8 <VerifyGain+0x364>
if(/*sens >= 20.001f && */sens <= 50.000f) //50
800484c: edd7 7a01 vldr s15, [r7, #4]
8004850: ed9f 7a83 vldr s14, [pc, #524] ; 8004a60 <VerifyGain+0x2cc>
8004854: eef4 7ac7 vcmpe.f32 s15, s14
8004858: eef1 fa10 vmrs APSR_nzcv, fpscr
800485c: d813 bhi.n 8004886 <VerifyGain+0xf2>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku200)
800485e: 4b7e ldr r3, [pc, #504] ; (8004a58 <VerifyGain+0x2c4>)
8004860: 681b ldr r3, [r3, #0]
8004862: 4a7e ldr r2, [pc, #504] ; (8004a5c <VerifyGain+0x2c8>)
8004864: 015b lsls r3, r3, #5
8004866: 4413 add r3, r2
8004868: 3306 adds r3, #6
800486a: 881b ldrh r3, [r3, #0]
800486c: b29b uxth r3, r3
800486e: 2b0a cmp r3, #10
8004870: f240 8142 bls.w 8004af8 <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku200;
8004874: 4b78 ldr r3, [pc, #480] ; (8004a58 <VerifyGain+0x2c4>)
8004876: 681b ldr r3, [r3, #0]
8004878: 4a78 ldr r2, [pc, #480] ; (8004a5c <VerifyGain+0x2c8>)
800487a: 015b lsls r3, r3, #5
800487c: 4413 add r3, r2
800487e: 3306 adds r3, #6
8004880: 220a movs r2, #10
8004882: 801a strh r2, [r3, #0]
}
8004884: e138 b.n 8004af8 <VerifyGain+0x364>
if(/*sens >= 50.001f && */sens <= 100.00f) //100
8004886: edd7 7a01 vldr s15, [r7, #4]
800488a: ed9f 7a76 vldr s14, [pc, #472] ; 8004a64 <VerifyGain+0x2d0>
800488e: eef4 7ac7 vcmpe.f32 s15, s14
8004892: eef1 fa10 vmrs APSR_nzcv, fpscr
8004896: d813 bhi.n 80048c0 <VerifyGain+0x12c>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku100)
8004898: 4b6f ldr r3, [pc, #444] ; (8004a58 <VerifyGain+0x2c4>)
800489a: 681b ldr r3, [r3, #0]
800489c: 4a6f ldr r2, [pc, #444] ; (8004a5c <VerifyGain+0x2c8>)
800489e: 015b lsls r3, r3, #5
80048a0: 4413 add r3, r2
80048a2: 3306 adds r3, #6
80048a4: 881b ldrh r3, [r3, #0]
80048a6: b29b uxth r3, r3
80048a8: 2b09 cmp r3, #9
80048aa: f240 8125 bls.w 8004af8 <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku100;
80048ae: 4b6a ldr r3, [pc, #424] ; (8004a58 <VerifyGain+0x2c4>)
80048b0: 681b ldr r3, [r3, #0]
80048b2: 4a6a ldr r2, [pc, #424] ; (8004a5c <VerifyGain+0x2c8>)
80048b4: 015b lsls r3, r3, #5
80048b6: 4413 add r3, r2
80048b8: 3306 adds r3, #6
80048ba: 2209 movs r2, #9
80048bc: 801a strh r2, [r3, #0]
}
80048be: e11b b.n 8004af8 <VerifyGain+0x364>
if(/*sens >= 100.01f && */sens <= 200.00f) //200
80048c0: edd7 7a01 vldr s15, [r7, #4]
80048c4: ed9f 7a68 vldr s14, [pc, #416] ; 8004a68 <VerifyGain+0x2d4>
80048c8: eef4 7ac7 vcmpe.f32 s15, s14
80048cc: eef1 fa10 vmrs APSR_nzcv, fpscr
80048d0: d813 bhi.n 80048fa <VerifyGain+0x166>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku50)
80048d2: 4b61 ldr r3, [pc, #388] ; (8004a58 <VerifyGain+0x2c4>)
80048d4: 681b ldr r3, [r3, #0]
80048d6: 4a61 ldr r2, [pc, #388] ; (8004a5c <VerifyGain+0x2c8>)
80048d8: 015b lsls r3, r3, #5
80048da: 4413 add r3, r2
80048dc: 3306 adds r3, #6
80048de: 881b ldrh r3, [r3, #0]
80048e0: b29b uxth r3, r3
80048e2: 2b08 cmp r3, #8
80048e4: f240 8108 bls.w 8004af8 <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku50;
80048e8: 4b5b ldr r3, [pc, #364] ; (8004a58 <VerifyGain+0x2c4>)
80048ea: 681b ldr r3, [r3, #0]
80048ec: 4a5b ldr r2, [pc, #364] ; (8004a5c <VerifyGain+0x2c8>)
80048ee: 015b lsls r3, r3, #5
80048f0: 4413 add r3, r2
80048f2: 3306 adds r3, #6
80048f4: 2208 movs r2, #8
80048f6: 801a strh r2, [r3, #0]
}
80048f8: e0fe b.n 8004af8 <VerifyGain+0x364>
if(/*sens >= 200.01f && */sens <= 500.00f) //500
80048fa: edd7 7a01 vldr s15, [r7, #4]
80048fe: ed9f 7a5b vldr s14, [pc, #364] ; 8004a6c <VerifyGain+0x2d8>
8004902: eef4 7ac7 vcmpe.f32 s15, s14
8004906: eef1 fa10 vmrs APSR_nzcv, fpscr
800490a: d813 bhi.n 8004934 <VerifyGain+0x1a0>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku20)
800490c: 4b52 ldr r3, [pc, #328] ; (8004a58 <VerifyGain+0x2c4>)
800490e: 681b ldr r3, [r3, #0]
8004910: 4a52 ldr r2, [pc, #328] ; (8004a5c <VerifyGain+0x2c8>)
8004912: 015b lsls r3, r3, #5
8004914: 4413 add r3, r2
8004916: 3306 adds r3, #6
8004918: 881b ldrh r3, [r3, #0]
800491a: b29b uxth r3, r3
800491c: 2b07 cmp r3, #7
800491e: f240 80eb bls.w 8004af8 <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku20;
8004922: 4b4d ldr r3, [pc, #308] ; (8004a58 <VerifyGain+0x2c4>)
8004924: 681b ldr r3, [r3, #0]
8004926: 4a4d ldr r2, [pc, #308] ; (8004a5c <VerifyGain+0x2c8>)
8004928: 015b lsls r3, r3, #5
800492a: 4413 add r3, r2
800492c: 3306 adds r3, #6
800492e: 2207 movs r2, #7
8004930: 801a strh r2, [r3, #0]
}
8004932: e0e1 b.n 8004af8 <VerifyGain+0x364>
if(/*sens >= 500.01f && */sens <= 1000.0f) //1000
8004934: edd7 7a01 vldr s15, [r7, #4]
8004938: ed9f 7a4d vldr s14, [pc, #308] ; 8004a70 <VerifyGain+0x2dc>
800493c: eef4 7ac7 vcmpe.f32 s15, s14
8004940: eef1 fa10 vmrs APSR_nzcv, fpscr
8004944: d813 bhi.n 800496e <VerifyGain+0x1da>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku10)
8004946: 4b44 ldr r3, [pc, #272] ; (8004a58 <VerifyGain+0x2c4>)
8004948: 681b ldr r3, [r3, #0]
800494a: 4a44 ldr r2, [pc, #272] ; (8004a5c <VerifyGain+0x2c8>)
800494c: 015b lsls r3, r3, #5
800494e: 4413 add r3, r2
8004950: 3306 adds r3, #6
8004952: 881b ldrh r3, [r3, #0]
8004954: b29b uxth r3, r3
8004956: 2b06 cmp r3, #6
8004958: f240 80ce bls.w 8004af8 <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku10;
800495c: 4b3e ldr r3, [pc, #248] ; (8004a58 <VerifyGain+0x2c4>)
800495e: 681b ldr r3, [r3, #0]
8004960: 4a3e ldr r2, [pc, #248] ; (8004a5c <VerifyGain+0x2c8>)
8004962: 015b lsls r3, r3, #5
8004964: 4413 add r3, r2
8004966: 3306 adds r3, #6
8004968: 2206 movs r2, #6
800496a: 801a strh r2, [r3, #0]
}
800496c: e0c4 b.n 8004af8 <VerifyGain+0x364>
if(/*sens >= 1000.01f && */sens <= 2000.0f) //2000
800496e: edd7 7a01 vldr s15, [r7, #4]
8004972: ed9f 7a40 vldr s14, [pc, #256] ; 8004a74 <VerifyGain+0x2e0>
8004976: eef4 7ac7 vcmpe.f32 s15, s14
800497a: eef1 fa10 vmrs APSR_nzcv, fpscr
800497e: d813 bhi.n 80049a8 <VerifyGain+0x214>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku5)
8004980: 4b35 ldr r3, [pc, #212] ; (8004a58 <VerifyGain+0x2c4>)
8004982: 681b ldr r3, [r3, #0]
8004984: 4a35 ldr r2, [pc, #212] ; (8004a5c <VerifyGain+0x2c8>)
8004986: 015b lsls r3, r3, #5
8004988: 4413 add r3, r2
800498a: 3306 adds r3, #6
800498c: 881b ldrh r3, [r3, #0]
800498e: b29b uxth r3, r3
8004990: 2b05 cmp r3, #5
8004992: f240 80b1 bls.w 8004af8 <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku5;
8004996: 4b30 ldr r3, [pc, #192] ; (8004a58 <VerifyGain+0x2c4>)
8004998: 681b ldr r3, [r3, #0]
800499a: 4a30 ldr r2, [pc, #192] ; (8004a5c <VerifyGain+0x2c8>)
800499c: 015b lsls r3, r3, #5
800499e: 4413 add r3, r2
80049a0: 3306 adds r3, #6
80049a2: 2205 movs r2, #5
80049a4: 801a strh r2, [r3, #0]
}
80049a6: e0a7 b.n 8004af8 <VerifyGain+0x364>
if(/*sens >= 2000.01f && */sens <= 5000.0f) //5000
80049a8: edd7 7a01 vldr s15, [r7, #4]
80049ac: ed9f 7a32 vldr s14, [pc, #200] ; 8004a78 <VerifyGain+0x2e4>
80049b0: eef4 7ac7 vcmpe.f32 s15, s14
80049b4: eef1 fa10 vmrs APSR_nzcv, fpscr
80049b8: d813 bhi.n 80049e2 <VerifyGain+0x24e>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku2)
80049ba: 4b27 ldr r3, [pc, #156] ; (8004a58 <VerifyGain+0x2c4>)
80049bc: 681b ldr r3, [r3, #0]
80049be: 4a27 ldr r2, [pc, #156] ; (8004a5c <VerifyGain+0x2c8>)
80049c0: 015b lsls r3, r3, #5
80049c2: 4413 add r3, r2
80049c4: 3306 adds r3, #6
80049c6: 881b ldrh r3, [r3, #0]
80049c8: b29b uxth r3, r3
80049ca: 2b04 cmp r3, #4
80049cc: f240 8094 bls.w 8004af8 <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku2;
80049d0: 4b21 ldr r3, [pc, #132] ; (8004a58 <VerifyGain+0x2c4>)
80049d2: 681b ldr r3, [r3, #0]
80049d4: 4a21 ldr r2, [pc, #132] ; (8004a5c <VerifyGain+0x2c8>)
80049d6: 015b lsls r3, r3, #5
80049d8: 4413 add r3, r2
80049da: 3306 adds r3, #6
80049dc: 2204 movs r2, #4
80049de: 801a strh r2, [r3, #0]
}
80049e0: e08a b.n 8004af8 <VerifyGain+0x364>
if(/*sens >= 5000.01f && */sens <= 10000.0f) //10000
80049e2: edd7 7a01 vldr s15, [r7, #4]
80049e6: ed9f 7a25 vldr s14, [pc, #148] ; 8004a7c <VerifyGain+0x2e8>
80049ea: eef4 7ac7 vcmpe.f32 s15, s14
80049ee: eef1 fa10 vmrs APSR_nzcv, fpscr
80049f2: d812 bhi.n 8004a1a <VerifyGain+0x286>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku1)
80049f4: 4b18 ldr r3, [pc, #96] ; (8004a58 <VerifyGain+0x2c4>)
80049f6: 681b ldr r3, [r3, #0]
80049f8: 4a18 ldr r2, [pc, #96] ; (8004a5c <VerifyGain+0x2c8>)
80049fa: 015b lsls r3, r3, #5
80049fc: 4413 add r3, r2
80049fe: 3306 adds r3, #6
8004a00: 881b ldrh r3, [r3, #0]
8004a02: b29b uxth r3, r3
8004a04: 2b03 cmp r3, #3
8004a06: d977 bls.n 8004af8 <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku1;
8004a08: 4b13 ldr r3, [pc, #76] ; (8004a58 <VerifyGain+0x2c4>)
8004a0a: 681b ldr r3, [r3, #0]
8004a0c: 4a13 ldr r2, [pc, #76] ; (8004a5c <VerifyGain+0x2c8>)
8004a0e: 015b lsls r3, r3, #5
8004a10: 4413 add r3, r2
8004a12: 3306 adds r3, #6
8004a14: 2203 movs r2, #3
8004a16: 801a strh r2, [r3, #0]
}
8004a18: e06e b.n 8004af8 <VerifyGain+0x364>
if(/*sens >= 10001.0f && */sens <= 20000.0f) //20000
8004a1a: edd7 7a01 vldr s15, [r7, #4]
8004a1e: ed9f 7a18 vldr s14, [pc, #96] ; 8004a80 <VerifyGain+0x2ec>
8004a22: eef4 7ac7 vcmpe.f32 s15, s14
8004a26: eef1 fa10 vmrs APSR_nzcv, fpscr
8004a2a: d82d bhi.n 8004a88 <VerifyGain+0x2f4>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku0_5)
8004a2c: 4b0a ldr r3, [pc, #40] ; (8004a58 <VerifyGain+0x2c4>)
8004a2e: 681b ldr r3, [r3, #0]
8004a30: 4a0a ldr r2, [pc, #40] ; (8004a5c <VerifyGain+0x2c8>)
8004a32: 015b lsls r3, r3, #5
8004a34: 4413 add r3, r2
8004a36: 3306 adds r3, #6
8004a38: 881b ldrh r3, [r3, #0]
8004a3a: b29b uxth r3, r3
8004a3c: 2b02 cmp r3, #2
8004a3e: d95b bls.n 8004af8 <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku0_5;
8004a40: 4b05 ldr r3, [pc, #20] ; (8004a58 <VerifyGain+0x2c4>)
8004a42: 681b ldr r3, [r3, #0]
8004a44: 4a05 ldr r2, [pc, #20] ; (8004a5c <VerifyGain+0x2c8>)
8004a46: 015b lsls r3, r3, #5
8004a48: 4413 add r3, r2
8004a4a: 3306 adds r3, #6
8004a4c: 2202 movs r2, #2
8004a4e: 801a strh r2, [r3, #0]
}
8004a50: e052 b.n 8004af8 <VerifyGain+0x364>
8004a52: bf00 nop
8004a54: 3a83126f .word 0x3a83126f
8004a58: 2006b948 .word 0x2006b948
8004a5c: 2006bb88 .word 0x2006bb88
8004a60: 42480000 .word 0x42480000
8004a64: 42c80000 .word 0x42c80000
8004a68: 43480000 .word 0x43480000
8004a6c: 43fa0000 .word 0x43fa0000
8004a70: 447a0000 .word 0x447a0000
8004a74: 44fa0000 .word 0x44fa0000
8004a78: 459c4000 .word 0x459c4000
8004a7c: 461c4000 .word 0x461c4000
8004a80: 469c4000 .word 0x469c4000
8004a84: 47435000 .word 0x47435000
if(/*sens >= 20001.0f && */sens <= 50000.0f) //50000
8004a88: edd7 7a01 vldr s15, [r7, #4]
8004a8c: ed1f 7a03 vldr s14, [pc, #-12] ; 8004a84 <VerifyGain+0x2f0>
8004a90: eef4 7ac7 vcmpe.f32 s15, s14
8004a94: eef1 fa10 vmrs APSR_nzcv, fpscr
8004a98: d812 bhi.n 8004ac0 <VerifyGain+0x32c>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku0_2)
8004a9a: 4b1a ldr r3, [pc, #104] ; (8004b04 <VerifyGain+0x370>)
8004a9c: 681b ldr r3, [r3, #0]
8004a9e: 4a1a ldr r2, [pc, #104] ; (8004b08 <VerifyGain+0x374>)
8004aa0: 015b lsls r3, r3, #5
8004aa2: 4413 add r3, r2
8004aa4: 3306 adds r3, #6
8004aa6: 881b ldrh r3, [r3, #0]
8004aa8: b29b uxth r3, r3
8004aaa: 2b01 cmp r3, #1
8004aac: d924 bls.n 8004af8 <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku0_2;
8004aae: 4b15 ldr r3, [pc, #84] ; (8004b04 <VerifyGain+0x370>)
8004ab0: 681b ldr r3, [r3, #0]
8004ab2: 4a15 ldr r2, [pc, #84] ; (8004b08 <VerifyGain+0x374>)
8004ab4: 015b lsls r3, r3, #5
8004ab6: 4413 add r3, r2
8004ab8: 3306 adds r3, #6
8004aba: 2201 movs r2, #1
8004abc: 801a strh r2, [r3, #0]
}
8004abe: e01b b.n 8004af8 <VerifyGain+0x364>
if(sens < 100000.0f) //99999
8004ac0: edd7 7a01 vldr s15, [r7, #4]
8004ac4: ed9f 7a11 vldr s14, [pc, #68] ; 8004b0c <VerifyGain+0x378>
8004ac8: eef4 7ac7 vcmpe.f32 s15, s14
8004acc: eef1 fa10 vmrs APSR_nzcv, fpscr
8004ad0: d400 bmi.n 8004ad4 <VerifyGain+0x340>
}
8004ad2: e011 b.n 8004af8 <VerifyGain+0x364>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku0_1)
8004ad4: 4b0b ldr r3, [pc, #44] ; (8004b04 <VerifyGain+0x370>)
8004ad6: 681b ldr r3, [r3, #0]
8004ad8: 4a0b ldr r2, [pc, #44] ; (8004b08 <VerifyGain+0x374>)
8004ada: 015b lsls r3, r3, #5
8004adc: 4413 add r3, r2
8004ade: 3306 adds r3, #6
8004ae0: 881b ldrh r3, [r3, #0]
8004ae2: b29b uxth r3, r3
8004ae4: 2b00 cmp r3, #0
8004ae6: d007 beq.n 8004af8 <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku0_1;
8004ae8: 4b06 ldr r3, [pc, #24] ; (8004b04 <VerifyGain+0x370>)
8004aea: 681b ldr r3, [r3, #0]
8004aec: 4a06 ldr r2, [pc, #24] ; (8004b08 <VerifyGain+0x374>)
8004aee: 015b lsls r3, r3, #5
8004af0: 4413 add r3, r2
8004af2: 3306 adds r3, #6
8004af4: 2200 movs r2, #0
8004af6: 801a strh r2, [r3, #0]
}
8004af8: bf00 nop
8004afa: 370c adds r7, #12
8004afc: 46bd mov sp, r7
8004afe: f85d 7b04 ldr.w r7, [sp], #4
8004b02: 4770 bx lr
8004b04: 2006b948 .word 0x2006b948
8004b08: 2006bb88 .word 0x2006bb88
8004b0c: 47c35000 .word 0x47c35000
08004b10 <LTDC_Reset>:
}
void LTDC_Reset(void)
{
8004b10: b580 push {r7, lr}
8004b12: af00 add r7, sp, #0
HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_SET); HAL_Delay(100);
8004b14: 2201 movs r2, #1
8004b16: 2140 movs r1, #64 ; 0x40
8004b18: 480b ldr r0, [pc, #44] ; (8004b48 <LTDC_Reset+0x38>)
8004b1a: f00e fb39 bl 8013190 <HAL_GPIO_WritePin>
8004b1e: 2064 movs r0, #100 ; 0x64
8004b20: f00d f80a bl 8011b38 <HAL_Delay>
HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_RESET); HAL_Delay(100);
8004b24: 2200 movs r2, #0
8004b26: 2140 movs r1, #64 ; 0x40
8004b28: 4807 ldr r0, [pc, #28] ; (8004b48 <LTDC_Reset+0x38>)
8004b2a: f00e fb31 bl 8013190 <HAL_GPIO_WritePin>
8004b2e: 2064 movs r0, #100 ; 0x64
8004b30: f00d f802 bl 8011b38 <HAL_Delay>
HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_SET); HAL_Delay(100);
8004b34: 2201 movs r2, #1
8004b36: 2140 movs r1, #64 ; 0x40
8004b38: 4803 ldr r0, [pc, #12] ; (8004b48 <LTDC_Reset+0x38>)
8004b3a: f00e fb29 bl 8013190 <HAL_GPIO_WritePin>
8004b3e: 2064 movs r0, #100 ; 0x64
8004b40: f00c fffa bl 8011b38 <HAL_Delay>
}
8004b44: bf00 nop
8004b46: bd80 pop {r7, pc}
8004b48: 40020c00 .word 0x40020c00
08004b4c <MX_LTDC_Init>:
/* LTDC init function */
void MX_LTDC_Init(void)
{
8004b4c: b580 push {r7, lr}
8004b4e: b09c sub sp, #112 ; 0x70
8004b50: af00 add r7, sp, #0
__IO uint32_t tickstart;
// SET_BIT(RCC->CR, RCC_CR_PLLSAION);
// HAL_Delay(100);
LTDC_Reset();
8004b52: f7ff ffdd bl 8004b10 <LTDC_Reset>
__HAL_RCC_PLLSAI_ENABLE();
8004b56: 4a8c ldr r2, [pc, #560] ; (8004d88 <MX_LTDC_Init+0x23c>)
8004b58: 4b8b ldr r3, [pc, #556] ; (8004d88 <MX_LTDC_Init+0x23c>)
8004b5a: 681b ldr r3, [r3, #0]
8004b5c: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
8004b60: 6013 str r3, [r2, #0]
tickstart = HAL_GetTick();
8004b62: f00c ffdd bl 8011b20 <HAL_GetTick>
8004b66: 4603 mov r3, r0
8004b68: 607b str r3, [r7, #4]
while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET)
8004b6a: e008 b.n 8004b7e <MX_LTDC_Init+0x32>
{
if((HAL_GetTick() - tickstart) >= PLLSAI_TIMEOUT_VALUE) {
8004b6c: f00c ffd8 bl 8011b20 <HAL_GetTick>
8004b70: 4602 mov r2, r0
8004b72: 687b ldr r3, [r7, #4]
8004b74: 1ad3 subs r3, r2, r3
8004b76: 2b63 cmp r3, #99 ; 0x63
8004b78: d901 bls.n 8004b7e <MX_LTDC_Init+0x32>
Error_Handler();
8004b7a: f001 fae9 bl 8006150 <Error_Handler>
while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET)
8004b7e: 4b82 ldr r3, [pc, #520] ; (8004d88 <MX_LTDC_Init+0x23c>)
8004b80: 681b ldr r3, [r3, #0]
8004b82: f003 5300 and.w r3, r3, #536870912 ; 0x20000000
8004b86: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000
8004b8a: d1ef bne.n 8004b6c <MX_LTDC_Init+0x20>
}
}
hLtdcHandler.Instance = LTDC;
8004b8c: 4b7f ldr r3, [pc, #508] ; (8004d8c <MX_LTDC_Init+0x240>)
8004b8e: 4a80 ldr r2, [pc, #512] ; (8004d90 <MX_LTDC_Init+0x244>)
8004b90: 601a str r2, [r3, #0]
hLtdcHandler.Init.HSPolarity = LTDC_HSPOLARITY_AL;
8004b92: 4b7e ldr r3, [pc, #504] ; (8004d8c <MX_LTDC_Init+0x240>)
8004b94: 2200 movs r2, #0
8004b96: 605a str r2, [r3, #4]
hLtdcHandler.Init.VSPolarity = LTDC_VSPOLARITY_AL;
8004b98: 4b7c ldr r3, [pc, #496] ; (8004d8c <MX_LTDC_Init+0x240>)
8004b9a: 2200 movs r2, #0
8004b9c: 609a str r2, [r3, #8]
hLtdcHandler.Init.DEPolarity = LTDC_DEPOLARITY_AH;
8004b9e: 4b7b ldr r3, [pc, #492] ; (8004d8c <MX_LTDC_Init+0x240>)
8004ba0: f04f 5200 mov.w r2, #536870912 ; 0x20000000
8004ba4: 60da str r2, [r3, #12]
hLtdcHandler.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
8004ba6: 4b79 ldr r3, [pc, #484] ; (8004d8c <MX_LTDC_Init+0x240>)
8004ba8: 2200 movs r2, #0
8004baa: 611a str r2, [r3, #16]
hLtdcHandler.Init.HorizontalSync = 38;
8004bac: 4b77 ldr r3, [pc, #476] ; (8004d8c <MX_LTDC_Init+0x240>)
8004bae: 2226 movs r2, #38 ; 0x26
8004bb0: 615a str r2, [r3, #20]
hLtdcHandler.Init.VerticalSync = 4;
8004bb2: 4b76 ldr r3, [pc, #472] ; (8004d8c <MX_LTDC_Init+0x240>)
8004bb4: 2204 movs r2, #4
8004bb6: 619a str r2, [r3, #24]
hLtdcHandler.Init.AccumulatedHBP = 68;
8004bb8: 4b74 ldr r3, [pc, #464] ; (8004d8c <MX_LTDC_Init+0x240>)
8004bba: 2244 movs r2, #68 ; 0x44
8004bbc: 61da str r2, [r3, #28]
hLtdcHandler.Init.AccumulatedVBP = 18;
8004bbe: 4b73 ldr r3, [pc, #460] ; (8004d8c <MX_LTDC_Init+0x240>)
8004bc0: 2212 movs r2, #18
8004bc2: 621a str r2, [r3, #32]
hLtdcHandler.Init.AccumulatedActiveW = 388;
8004bc4: 4b71 ldr r3, [pc, #452] ; (8004d8c <MX_LTDC_Init+0x240>)
8004bc6: f44f 72c2 mov.w r2, #388 ; 0x184
8004bca: 625a str r2, [r3, #36] ; 0x24
hLtdcHandler.Init.AccumulatedActiveH = 262;
8004bcc: 4b6f ldr r3, [pc, #444] ; (8004d8c <MX_LTDC_Init+0x240>)
8004bce: f44f 7283 mov.w r2, #262 ; 0x106
8004bd2: 629a str r2, [r3, #40] ; 0x28
hLtdcHandler.Init.TotalWidth = 408;
8004bd4: 4b6d ldr r3, [pc, #436] ; (8004d8c <MX_LTDC_Init+0x240>)
8004bd6: f44f 72cc mov.w r2, #408 ; 0x198
8004bda: 62da str r2, [r3, #44] ; 0x2c
hLtdcHandler.Init.TotalHeigh = 263;
8004bdc: 4b6b ldr r3, [pc, #428] ; (8004d8c <MX_LTDC_Init+0x240>)
8004bde: f240 1207 movw r2, #263 ; 0x107
8004be2: 631a str r2, [r3, #48] ; 0x30
hLtdcHandler.Init.Backcolor.Blue = 0;
8004be4: 4b69 ldr r3, [pc, #420] ; (8004d8c <MX_LTDC_Init+0x240>)
8004be6: 2200 movs r2, #0
8004be8: f883 2034 strb.w r2, [r3, #52] ; 0x34
hLtdcHandler.Init.Backcolor.Green = 0;
8004bec: 4b67 ldr r3, [pc, #412] ; (8004d8c <MX_LTDC_Init+0x240>)
8004bee: 2200 movs r2, #0
8004bf0: f883 2035 strb.w r2, [r3, #53] ; 0x35
hLtdcHandler.Init.Backcolor.Red = 0;
8004bf4: 4b65 ldr r3, [pc, #404] ; (8004d8c <MX_LTDC_Init+0x240>)
8004bf6: 2200 movs r2, #0
8004bf8: f883 2036 strb.w r2, [r3, #54] ; 0x36
if (HAL_LTDC_Init(&hLtdcHandler) != HAL_OK) {
8004bfc: 4863 ldr r0, [pc, #396] ; (8004d8c <MX_LTDC_Init+0x240>)
8004bfe: f00e faf9 bl 80131f4 <HAL_LTDC_Init>
8004c02: 4603 mov r3, r0
8004c04: 2b00 cmp r3, #0
8004c06: d001 beq.n 8004c0c <MX_LTDC_Init+0xc0>
Error_Handler();
8004c08: f001 faa2 bl 8006150 <Error_Handler>
}
pLayerCfg.WindowX0 = 0;
8004c0c: 2300 movs r3, #0
8004c0e: 63fb str r3, [r7, #60] ; 0x3c
pLayerCfg.WindowX1 = 320;
8004c10: f44f 73a0 mov.w r3, #320 ; 0x140
8004c14: 643b str r3, [r7, #64] ; 0x40
pLayerCfg.WindowY0 = 0;
8004c16: 2300 movs r3, #0
8004c18: 647b str r3, [r7, #68] ; 0x44
pLayerCfg.WindowY1 = 240;
8004c1a: 23f0 movs r3, #240 ; 0xf0
8004c1c: 64bb str r3, [r7, #72] ; 0x48
pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
8004c1e: 2302 movs r3, #2
8004c20: 64fb str r3, [r7, #76] ; 0x4c
pLayerCfg.Alpha = 255;
8004c22: 23ff movs r3, #255 ; 0xff
8004c24: 653b str r3, [r7, #80] ; 0x50
pLayerCfg.Alpha0 = 0;
8004c26: 2300 movs r3, #0
8004c28: 657b str r3, [r7, #84] ; 0x54
pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
8004c2a: f44f 63c0 mov.w r3, #1536 ; 0x600
8004c2e: 65bb str r3, [r7, #88] ; 0x58
pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
8004c30: 2307 movs r3, #7
8004c32: 65fb str r3, [r7, #92] ; 0x5c
pLayerCfg.FBStartAdress = (uint32_t) &LAYER_1[0];
8004c34: 4b57 ldr r3, [pc, #348] ; (8004d94 <MX_LTDC_Init+0x248>)
8004c36: 663b str r3, [r7, #96] ; 0x60
pLayerCfg.ImageWidth = 320;
8004c38: f44f 73a0 mov.w r3, #320 ; 0x140
8004c3c: 667b str r3, [r7, #100] ; 0x64
pLayerCfg.ImageHeight = 240;
8004c3e: 23f0 movs r3, #240 ; 0xf0
8004c40: 66bb str r3, [r7, #104] ; 0x68
pLayerCfg.Backcolor.Blue = 0;
8004c42: 2300 movs r3, #0
8004c44: f887 306c strb.w r3, [r7, #108] ; 0x6c
pLayerCfg.Backcolor.Green = 0;
8004c48: 2300 movs r3, #0
8004c4a: f887 306d strb.w r3, [r7, #109] ; 0x6d
pLayerCfg.Backcolor.Red = 0;
8004c4e: 2300 movs r3, #0
8004c50: f887 306e strb.w r3, [r7, #110] ; 0x6e
if(HAL_LTDC_ConfigLayer(&hLtdcHandler, &pLayerCfg, 0) != HAL_OK) {
8004c54: f107 033c add.w r3, r7, #60 ; 0x3c
8004c58: 2200 movs r2, #0
8004c5a: 4619 mov r1, r3
8004c5c: 484b ldr r0, [pc, #300] ; (8004d8c <MX_LTDC_Init+0x240>)
8004c5e: f00e fc51 bl 8013504 <HAL_LTDC_ConfigLayer>
8004c62: 4603 mov r3, r0
8004c64: 2b00 cmp r3, #0
8004c66: d001 beq.n 8004c6c <MX_LTDC_Init+0x120>
Error_Handler();
8004c68: f001 fa72 bl 8006150 <Error_Handler>
}
pLayerCfg1.WindowX0 = 0;
8004c6c: 2300 movs r3, #0
8004c6e: 60bb str r3, [r7, #8]
pLayerCfg1.WindowX1 = 320;
8004c70: f44f 73a0 mov.w r3, #320 ; 0x140
8004c74: 60fb str r3, [r7, #12]
pLayerCfg1.WindowY0 = 0;
8004c76: 2300 movs r3, #0
8004c78: 613b str r3, [r7, #16]
pLayerCfg1.WindowY1 = 240;
8004c7a: 23f0 movs r3, #240 ; 0xf0
8004c7c: 617b str r3, [r7, #20]
pLayerCfg1.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
8004c7e: 2302 movs r3, #2
8004c80: 61bb str r3, [r7, #24]
pLayerCfg1.Alpha = 255;
8004c82: 23ff movs r3, #255 ; 0xff
8004c84: 61fb str r3, [r7, #28]
pLayerCfg1.Alpha0 = 0;
8004c86: 2300 movs r3, #0
8004c88: 623b str r3, [r7, #32]
pLayerCfg1.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
8004c8a: f44f 63c0 mov.w r3, #1536 ; 0x600
8004c8e: 627b str r3, [r7, #36] ; 0x24
pLayerCfg1.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
8004c90: 2307 movs r3, #7
8004c92: 62bb str r3, [r7, #40] ; 0x28
pLayerCfg1.FBStartAdress = (uint32_t) &LAYER_2[0];
8004c94: 4b40 ldr r3, [pc, #256] ; (8004d98 <MX_LTDC_Init+0x24c>)
8004c96: 62fb str r3, [r7, #44] ; 0x2c
pLayerCfg1.ImageWidth = 320;
8004c98: f44f 73a0 mov.w r3, #320 ; 0x140
8004c9c: 633b str r3, [r7, #48] ; 0x30
pLayerCfg1.ImageHeight = 240;
8004c9e: 23f0 movs r3, #240 ; 0xf0
8004ca0: 637b str r3, [r7, #52] ; 0x34
pLayerCfg1.Backcolor.Blue = 0;
8004ca2: 2300 movs r3, #0
8004ca4: f887 3038 strb.w r3, [r7, #56] ; 0x38
pLayerCfg1.Backcolor.Green = 0;
8004ca8: 2300 movs r3, #0
8004caa: f887 3039 strb.w r3, [r7, #57] ; 0x39
pLayerCfg1.Backcolor.Red = 0;
8004cae: 2300 movs r3, #0
8004cb0: f887 303a strb.w r3, [r7, #58] ; 0x3a
if(HAL_LTDC_ConfigLayer(&hLtdcHandler, &pLayerCfg1, 1) != HAL_OK) {
8004cb4: f107 0308 add.w r3, r7, #8
8004cb8: 2201 movs r2, #1
8004cba: 4619 mov r1, r3
8004cbc: 4833 ldr r0, [pc, #204] ; (8004d8c <MX_LTDC_Init+0x240>)
8004cbe: f00e fc21 bl 8013504 <HAL_LTDC_ConfigLayer>
8004cc2: 4603 mov r3, r0
8004cc4: 2b00 cmp r3, #0
8004cc6: d001 beq.n 8004ccc <MX_LTDC_Init+0x180>
Error_Handler();
8004cc8: f001 fa42 bl 8006150 <Error_Handler>
}
//HAL_LTDC_EnableCLUT(&hLtdcHandler, 0);
//HAL_LTDC_EnableCLUT(&hLtdcHandler, 1);
ActiveLayer = 1;
8004ccc: 4b33 ldr r3, [pc, #204] ; (8004d9c <MX_LTDC_Init+0x250>)
8004cce: 2201 movs r2, #1
8004cd0: 601a str r2, [r3, #0]
RenderingLayer = 0;
8004cd2: 4b33 ldr r3, [pc, #204] ; (8004da0 <MX_LTDC_Init+0x254>)
8004cd4: 2200 movs r2, #0
8004cd6: 601a str r2, [r3, #0]
BSP_LCD_DisplayOff();
8004cd8: f000 f87a bl 8004dd0 <BSP_LCD_DisplayOff>
BSP_LCD_SelectLayer(0);
8004cdc: 2000 movs r0, #0
8004cde: f000 f961 bl 8004fa4 <BSP_LCD_SelectLayer>
BSP_LCD_Clear(0xFF000000);
8004ce2: f04f 407f mov.w r0, #4278190080 ; 0xff000000
8004ce6: f000 fa3f bl 8005168 <BSP_LCD_Clear>
BSP_LCD_SelectLayer(1);
8004cea: 2001 movs r0, #1
8004cec: f000 f95a bl 8004fa4 <BSP_LCD_SelectLayer>
BSP_LCD_Clear(0xFF000000);
8004cf0: f04f 407f mov.w r0, #4278190080 ; 0xff000000
8004cf4: f000 fa38 bl 8005168 <BSP_LCD_Clear>
BSP_LCD_SetLayerVisible(RenderingLayer, DISABLE);
8004cf8: 4b29 ldr r3, [pc, #164] ; (8004da0 <MX_LTDC_Init+0x254>)
8004cfa: 681b ldr r3, [r3, #0]
8004cfc: 2100 movs r1, #0
8004cfe: 4618 mov r0, r3
8004d00: f000 f960 bl 8004fc4 <BSP_LCD_SetLayerVisible>
BSP_LCD_SetLayerVisible(ActiveLayer, DISABLE);
8004d04: 4b25 ldr r3, [pc, #148] ; (8004d9c <MX_LTDC_Init+0x250>)
8004d06: 681b ldr r3, [r3, #0]
8004d08: 2100 movs r1, #0
8004d0a: 4618 mov r0, r3
8004d0c: f000 f95a bl 8004fc4 <BSP_LCD_SetLayerVisible>
HAL_LTDC_Reload(&hLtdcHandler, LTDC_RELOAD_IMMEDIATE);
8004d10: 2101 movs r1, #1
8004d12: 481e ldr r0, [pc, #120] ; (8004d8c <MX_LTDC_Init+0x240>)
8004d14: f00e fc6c bl 80135f0 <HAL_LTDC_Reload>
DrawProp[0].BackColor = LCD_COLOR_BLACK;
8004d18: 4b22 ldr r3, [pc, #136] ; (8004da4 <MX_LTDC_Init+0x258>)
8004d1a: f04f 427f mov.w r2, #4278190080 ; 0xff000000
8004d1e: 605a str r2, [r3, #4]
DrawProp[0].pFont = &Font17;
8004d20: 4b20 ldr r3, [pc, #128] ; (8004da4 <MX_LTDC_Init+0x258>)
8004d22: 4a21 ldr r2, [pc, #132] ; (8004da8 <MX_LTDC_Init+0x25c>)
8004d24: 609a str r2, [r3, #8]
DrawProp[0].TextColor = LCD_COLOR_WHITE;
8004d26: 4b1f ldr r3, [pc, #124] ; (8004da4 <MX_LTDC_Init+0x258>)
8004d28: f04f 32ff mov.w r2, #4294967295
8004d2c: 601a str r2, [r3, #0]
DrawProp[1].BackColor = LCD_COLOR_BLACK;
8004d2e: 4b1d ldr r3, [pc, #116] ; (8004da4 <MX_LTDC_Init+0x258>)
8004d30: f04f 427f mov.w r2, #4278190080 ; 0xff000000
8004d34: 611a str r2, [r3, #16]
DrawProp[1].pFont = &Font17;
8004d36: 4b1b ldr r3, [pc, #108] ; (8004da4 <MX_LTDC_Init+0x258>)
8004d38: 4a1b ldr r2, [pc, #108] ; (8004da8 <MX_LTDC_Init+0x25c>)
8004d3a: 615a str r2, [r3, #20]
DrawProp[1].TextColor = LCD_COLOR_WHITE;
8004d3c: 4b19 ldr r3, [pc, #100] ; (8004da4 <MX_LTDC_Init+0x258>)
8004d3e: f04f 32ff mov.w r2, #4294967295
8004d42: 60da str r2, [r3, #12]
CurrentFont = &Font17;
8004d44: 4b19 ldr r3, [pc, #100] ; (8004dac <MX_LTDC_Init+0x260>)
8004d46: 4a18 ldr r2, [pc, #96] ; (8004da8 <MX_LTDC_Init+0x25c>)
8004d48: 601a str r2, [r3, #0]
BSP_LCD_DisplayOn();
8004d4a: f000 f835 bl 8004db8 <BSP_LCD_DisplayOn>
HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_SET); // BACKLIGHT IS OFF
8004d4e: 2201 movs r2, #1
8004d50: f44f 7180 mov.w r1, #256 ; 0x100
8004d54: 4816 ldr r0, [pc, #88] ; (8004db0 <MX_LTDC_Init+0x264>)
8004d56: f00e fa1b bl 8013190 <HAL_GPIO_WritePin>
RefreshScreen = true;
8004d5a: 4b16 ldr r3, [pc, #88] ; (8004db4 <MX_LTDC_Init+0x268>)
8004d5c: 2201 movs r2, #1
8004d5e: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 255);
8004d60: 21ff movs r1, #255 ; 0xff
8004d62: 480a ldr r0, [pc, #40] ; (8004d8c <MX_LTDC_Init+0x240>)
8004d64: f00e fc0c bl 8013580 <HAL_LTDC_ProgramLineEvent>
while(RefreshScreen);
8004d68: bf00 nop
8004d6a: 4b12 ldr r3, [pc, #72] ; (8004db4 <MX_LTDC_Init+0x268>)
8004d6c: 781b ldrb r3, [r3, #0]
8004d6e: b2db uxtb r3, r3
8004d70: 2b00 cmp r3, #0
8004d72: d1fa bne.n 8004d6a <MX_LTDC_Init+0x21e>
BSP_LCD_SetLayerVisible(RenderingLayer, ENABLE);
8004d74: 4b0a ldr r3, [pc, #40] ; (8004da0 <MX_LTDC_Init+0x254>)
8004d76: 681b ldr r3, [r3, #0]
8004d78: 2101 movs r1, #1
8004d7a: 4618 mov r0, r3
8004d7c: f000 f922 bl 8004fc4 <BSP_LCD_SetLayerVisible>
}
8004d80: bf00 nop
8004d82: 3770 adds r7, #112 ; 0x70
8004d84: 46bd mov sp, r7
8004d86: bd80 pop {r7, pc}
8004d88: 40023800 .word 0x40023800
8004d8c: 2006c054 .word 0x2006c054
8004d90: 40016800 .word 0x40016800
8004d94: 200208cc .word 0x200208cc
8004d98: 200460cc .word 0x200460cc
8004d9c: 20020018 .word 0x20020018
8004da0: 2006b93c .word 0x2006b93c
8004da4: 2006b924 .word 0x2006b924
8004da8: 20020008 .word 0x20020008
8004dac: 2006c050 .word 0x2006c050
8004db0: 40020000 .word 0x40020000
8004db4: 2006b940 .word 0x2006b940
08004db8 <BSP_LCD_DisplayOn>:
void BSP_LCD_DisplayOn(void)
{
8004db8: b580 push {r7, lr}
8004dba: af00 add r7, sp, #0
//__HAL_LTDC_ENABLE(&hLtdcHandler);
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_SET); // DISPLAY_ON
8004dbc: 2201 movs r2, #1
8004dbe: f44f 6180 mov.w r1, #1024 ; 0x400
8004dc2: 4802 ldr r0, [pc, #8] ; (8004dcc <BSP_LCD_DisplayOn+0x14>)
8004dc4: f00e f9e4 bl 8013190 <HAL_GPIO_WritePin>
}
8004dc8: bf00 nop
8004dca: bd80 pop {r7, pc}
8004dcc: 40021400 .word 0x40021400
08004dd0 <BSP_LCD_DisplayOff>:
/**
* @brief Disables the display.
* @retval None
*/
void BSP_LCD_DisplayOff(void)
{
8004dd0: b580 push {r7, lr}
8004dd2: af00 add r7, sp, #0
//__HAL_LTDC_DISABLE(&hLtdcHandler);
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_RESET); // DISPLAY_OFF
8004dd4: 2200 movs r2, #0
8004dd6: f44f 6180 mov.w r1, #1024 ; 0x400
8004dda: 4802 ldr r0, [pc, #8] ; (8004de4 <BSP_LCD_DisplayOff+0x14>)
8004ddc: f00e f9d8 bl 8013190 <HAL_GPIO_WritePin>
}
8004de0: bf00 nop
8004de2: bd80 pop {r7, pc}
8004de4: 40021400 .word 0x40021400
08004de8 <HAL_LTDC_MspInit>:
void HAL_LTDC_MspInit(LTDC_HandleTypeDef* ltdcHandle)
{
8004de8: b580 push {r7, lr}
8004dea: b088 sub sp, #32
8004dec: af00 add r7, sp, #0
8004dee: 6078 str r0, [r7, #4]
GPIO_InitTypeDef GPIO_InitStruct;
if(ltdcHandle->Instance == LTDC)
8004df0: 687b ldr r3, [r7, #4]
8004df2: 681b ldr r3, [r3, #0]
8004df4: 4a4f ldr r2, [pc, #316] ; (8004f34 <HAL_LTDC_MspInit+0x14c>)
8004df6: 4293 cmp r3, r2
8004df8: f040 8097 bne.w 8004f2a <HAL_LTDC_MspInit+0x142>
{
__HAL_RCC_LTDC_CLK_ENABLE();
8004dfc: 4a4e ldr r2, [pc, #312] ; (8004f38 <HAL_LTDC_MspInit+0x150>)
8004dfe: 4b4e ldr r3, [pc, #312] ; (8004f38 <HAL_LTDC_MspInit+0x150>)
8004e00: 6c5b ldr r3, [r3, #68] ; 0x44
8004e02: f043 6380 orr.w r3, r3, #67108864 ; 0x4000000
8004e06: 6453 str r3, [r2, #68] ; 0x44
8004e08: 4b4b ldr r3, [pc, #300] ; (8004f38 <HAL_LTDC_MspInit+0x150>)
8004e0a: 6c5b ldr r3, [r3, #68] ; 0x44
8004e0c: f003 6380 and.w r3, r3, #67108864 ; 0x4000000
8004e10: 60bb str r3, [r7, #8]
8004e12: 68bb ldr r3, [r7, #8]
PG7 ------> LTDC_CLK
PG10 ------> LTDC_G3
PG11 ------> LTDC_B3
PG12 ------> LTDC_B4 */
GPIO_InitStruct.Pin = GPIO_PIN_10;
8004e14: f44f 6380 mov.w r3, #1024 ; 0x400
8004e18: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
8004e1a: 2301 movs r3, #1
8004e1c: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004e1e: 2300 movs r3, #0
8004e20: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004e22: 2303 movs r3, #3
8004e24: 61bb str r3, [r7, #24]
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
8004e26: f107 030c add.w r3, r7, #12
8004e2a: 4619 mov r1, r3
8004e2c: 4843 ldr r0, [pc, #268] ; (8004f3c <HAL_LTDC_MspInit+0x154>)
8004e2e: f00d ffed bl 8012e0c <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_6 | GPIO_PIN_11 |GPIO_PIN_12;
8004e32: f641 0358 movw r3, #6232 ; 0x1858
8004e36: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004e38: 2302 movs r3, #2
8004e3a: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004e3c: 2300 movs r3, #0
8004e3e: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004e40: 2303 movs r3, #3
8004e42: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
8004e44: 230e movs r3, #14
8004e46: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
8004e48: f107 030c add.w r3, r7, #12
8004e4c: 4619 mov r1, r3
8004e4e: 483c ldr r0, [pc, #240] ; (8004f40 <HAL_LTDC_MspInit+0x158>)
8004e50: f00d ffdc bl 8012e0c <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1;
8004e54: 2303 movs r3, #3
8004e56: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004e58: 2302 movs r3, #2
8004e5a: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004e5c: 2300 movs r3, #0
8004e5e: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004e60: 2303 movs r3, #3
8004e62: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF9_LTDC;
8004e64: 2309 movs r3, #9
8004e66: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
8004e68: f107 030c add.w r3, r7, #12
8004e6c: 4619 mov r1, r3
8004e6e: 4835 ldr r0, [pc, #212] ; (8004f44 <HAL_LTDC_MspInit+0x15c>)
8004e70: f00d ffcc bl 8012e0c <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_8 | GPIO_PIN_9;
8004e74: f44f 6370 mov.w r3, #3840 ; 0xf00
8004e78: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004e7a: 2302 movs r3, #2
8004e7c: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004e7e: 2300 movs r3, #0
8004e80: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004e82: 2303 movs r3, #3
8004e84: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
8004e86: 230e movs r3, #14
8004e88: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
8004e8a: f107 030c add.w r3, r7, #12
8004e8e: 4619 mov r1, r3
8004e90: 482c ldr r0, [pc, #176] ; (8004f44 <HAL_LTDC_MspInit+0x15c>)
8004e92: f00d ffbb bl 8012e0c <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_11;
8004e96: f44f 630c mov.w r3, #2240 ; 0x8c0
8004e9a: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004e9c: 2302 movs r3, #2
8004e9e: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004ea0: 2300 movs r3, #0
8004ea2: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004ea4: 2303 movs r3, #3
8004ea6: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
8004ea8: 230e movs r3, #14
8004eaa: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
8004eac: f107 030c add.w r3, r7, #12
8004eb0: 4619 mov r1, r3
8004eb2: 4825 ldr r0, [pc, #148] ; (8004f48 <HAL_LTDC_MspInit+0x160>)
8004eb4: f00d ffaa bl 8012e0c <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_6 | GPIO_PIN_7;
8004eb8: 23c0 movs r3, #192 ; 0xc0
8004eba: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004ebc: 2302 movs r3, #2
8004ebe: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004ec0: 2300 movs r3, #0
8004ec2: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004ec4: 2303 movs r3, #3
8004ec6: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
8004ec8: 230e movs r3, #14
8004eca: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
8004ecc: f107 030c add.w r3, r7, #12
8004ed0: 4619 mov r1, r3
8004ed2: 481e ldr r0, [pc, #120] ; (8004f4c <HAL_LTDC_MspInit+0x164>)
8004ed4: f00d ff9a bl 8012e0c <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_3;
8004ed8: 2308 movs r3, #8
8004eda: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004edc: 2302 movs r3, #2
8004ede: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004ee0: 2300 movs r3, #0
8004ee2: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004ee4: 2303 movs r3, #3
8004ee6: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
8004ee8: 230e movs r3, #14
8004eea: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
8004eec: f107 030c add.w r3, r7, #12
8004ef0: 4619 mov r1, r3
8004ef2: 4817 ldr r0, [pc, #92] ; (8004f50 <HAL_LTDC_MspInit+0x168>)
8004ef4: f00d ff8a bl 8012e0c <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_10 | GPIO_PIN_12;
8004ef8: f44f 53a0 mov.w r3, #5120 ; 0x1400
8004efc: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004efe: 2302 movs r3, #2
8004f00: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004f02: 2300 movs r3, #0
8004f04: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004f06: 2303 movs r3, #3
8004f08: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF9_LTDC;
8004f0a: 2309 movs r3, #9
8004f0c: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
8004f0e: f107 030c add.w r3, r7, #12
8004f12: 4619 mov r1, r3
8004f14: 480c ldr r0, [pc, #48] ; (8004f48 <HAL_LTDC_MspInit+0x160>)
8004f16: f00d ff79 bl 8012e0c <HAL_GPIO_Init>
HAL_NVIC_SetPriority(LTDC_IRQn, 6, 0);
8004f1a: 2200 movs r2, #0
8004f1c: 2106 movs r1, #6
8004f1e: 2058 movs r0, #88 ; 0x58
8004f20: f00c ff27 bl 8011d72 <HAL_NVIC_SetPriority>
HAL_NVIC_EnableIRQ(LTDC_IRQn);
8004f24: 2058 movs r0, #88 ; 0x58
8004f26: f00c ff40 bl 8011daa <HAL_NVIC_EnableIRQ>
}
}
8004f2a: bf00 nop
8004f2c: 3720 adds r7, #32
8004f2e: 46bd mov sp, r7
8004f30: bd80 pop {r7, pc}
8004f32: bf00 nop
8004f34: 40016800 .word 0x40016800
8004f38: 40023800 .word 0x40023800
8004f3c: 40021400 .word 0x40021400
8004f40: 40020000 .word 0x40020000
8004f44: 40020400 .word 0x40020400
8004f48: 40021800 .word 0x40021800
8004f4c: 40020800 .word 0x40020800
8004f50: 40020c00 .word 0x40020c00
08004f54 <BSP_LCD_GetXSize>:
HAL_NVIC_DisableIRQ(LTDC_IRQn);
}
}
uint32_t BSP_LCD_GetXSize(void)
{
8004f54: b480 push {r7}
8004f56: af00 add r7, sp, #0
return hLtdcHandler.LayerCfg[ActiveLayer].ImageWidth;
8004f58: 4b06 ldr r3, [pc, #24] ; (8004f74 <BSP_LCD_GetXSize+0x20>)
8004f5a: 681b ldr r3, [r3, #0]
8004f5c: 4a06 ldr r2, [pc, #24] ; (8004f78 <BSP_LCD_GetXSize+0x24>)
8004f5e: 2134 movs r1, #52 ; 0x34
8004f60: fb01 f303 mul.w r3, r1, r3
8004f64: 4413 add r3, r2
8004f66: 3360 adds r3, #96 ; 0x60
8004f68: 681b ldr r3, [r3, #0]
}
8004f6a: 4618 mov r0, r3
8004f6c: 46bd mov sp, r7
8004f6e: f85d 7b04 ldr.w r7, [sp], #4
8004f72: 4770 bx lr
8004f74: 20020018 .word 0x20020018
8004f78: 2006c054 .word 0x2006c054
08004f7c <BSP_LCD_GetYSize>:
/**
* @brief Gets the LCD Y size.
* @retval Used LCD Y size
*/
uint32_t BSP_LCD_GetYSize(void)
{
8004f7c: b480 push {r7}
8004f7e: af00 add r7, sp, #0
return hLtdcHandler.LayerCfg[ActiveLayer].ImageHeight;
8004f80: 4b06 ldr r3, [pc, #24] ; (8004f9c <BSP_LCD_GetYSize+0x20>)
8004f82: 681b ldr r3, [r3, #0]
8004f84: 4a06 ldr r2, [pc, #24] ; (8004fa0 <BSP_LCD_GetYSize+0x24>)
8004f86: 2134 movs r1, #52 ; 0x34
8004f88: fb01 f303 mul.w r3, r1, r3
8004f8c: 4413 add r3, r2
8004f8e: 3364 adds r3, #100 ; 0x64
8004f90: 681b ldr r3, [r3, #0]
}
8004f92: 4618 mov r0, r3
8004f94: 46bd mov sp, r7
8004f96: f85d 7b04 ldr.w r7, [sp], #4
8004f9a: 4770 bx lr
8004f9c: 20020018 .word 0x20020018
8004fa0: 2006c054 .word 0x2006c054
08004fa4 <BSP_LCD_SelectLayer>:
{
hLtdcHandler.LayerCfg[ActiveLayer].ImageHeight = imageHeightPixels;
}
void BSP_LCD_SelectLayer(uint32_t LayerIndex)
{
8004fa4: b480 push {r7}
8004fa6: b083 sub sp, #12
8004fa8: af00 add r7, sp, #0
8004faa: 6078 str r0, [r7, #4]
ActiveLayer = LayerIndex;
8004fac: 4a04 ldr r2, [pc, #16] ; (8004fc0 <BSP_LCD_SelectLayer+0x1c>)
8004fae: 687b ldr r3, [r7, #4]
8004fb0: 6013 str r3, [r2, #0]
}
8004fb2: bf00 nop
8004fb4: 370c adds r7, #12
8004fb6: 46bd mov sp, r7
8004fb8: f85d 7b04 ldr.w r7, [sp], #4
8004fbc: 4770 bx lr
8004fbe: bf00 nop
8004fc0: 20020018 .word 0x20020018
08004fc4 <BSP_LCD_SetLayerVisible>:
* @arg ENABLE
* @arg DISABLE
* @retval None
*/
void BSP_LCD_SetLayerVisible(uint32_t LayerIndex, FunctionalState State)
{
8004fc4: b480 push {r7}
8004fc6: b083 sub sp, #12
8004fc8: af00 add r7, sp, #0
8004fca: 6078 str r0, [r7, #4]
8004fcc: 460b mov r3, r1
8004fce: 70fb strb r3, [r7, #3]
if(State == ENABLE)
8004fd0: 78fb ldrb r3, [r7, #3]
8004fd2: 2b01 cmp r3, #1
8004fd4: d113 bne.n 8004ffe <BSP_LCD_SetLayerVisible+0x3a>
__HAL_LTDC_LAYER_ENABLE(&hLtdcHandler, LayerIndex);
8004fd6: 4b1a ldr r3, [pc, #104] ; (8005040 <BSP_LCD_SetLayerVisible+0x7c>)
8004fd8: 681b ldr r3, [r3, #0]
8004fda: 461a mov r2, r3
8004fdc: 687b ldr r3, [r7, #4]
8004fde: 01db lsls r3, r3, #7
8004fe0: 4413 add r3, r2
8004fe2: 3384 adds r3, #132 ; 0x84
8004fe4: 461a mov r2, r3
8004fe6: 4b16 ldr r3, [pc, #88] ; (8005040 <BSP_LCD_SetLayerVisible+0x7c>)
8004fe8: 681b ldr r3, [r3, #0]
8004fea: 4619 mov r1, r3
8004fec: 687b ldr r3, [r7, #4]
8004fee: 01db lsls r3, r3, #7
8004ff0: 440b add r3, r1
8004ff2: 3384 adds r3, #132 ; 0x84
8004ff4: 681b ldr r3, [r3, #0]
8004ff6: f043 0301 orr.w r3, r3, #1
8004ffa: 6013 str r3, [r2, #0]
8004ffc: e012 b.n 8005024 <BSP_LCD_SetLayerVisible+0x60>
else __HAL_LTDC_LAYER_DISABLE(&hLtdcHandler, LayerIndex);
8004ffe: 4b10 ldr r3, [pc, #64] ; (8005040 <BSP_LCD_SetLayerVisible+0x7c>)
8005000: 681b ldr r3, [r3, #0]
8005002: 461a mov r2, r3
8005004: 687b ldr r3, [r7, #4]
8005006: 01db lsls r3, r3, #7
8005008: 4413 add r3, r2
800500a: 3384 adds r3, #132 ; 0x84
800500c: 461a mov r2, r3
800500e: 4b0c ldr r3, [pc, #48] ; (8005040 <BSP_LCD_SetLayerVisible+0x7c>)
8005010: 681b ldr r3, [r3, #0]
8005012: 4619 mov r1, r3
8005014: 687b ldr r3, [r7, #4]
8005016: 01db lsls r3, r3, #7
8005018: 440b add r3, r1
800501a: 3384 adds r3, #132 ; 0x84
800501c: 681b ldr r3, [r3, #0]
800501e: f023 0301 bic.w r3, r3, #1
8005022: 6013 str r3, [r2, #0]
__HAL_LTDC_RELOAD_CONFIG(&hLtdcHandler);
8005024: 4b06 ldr r3, [pc, #24] ; (8005040 <BSP_LCD_SetLayerVisible+0x7c>)
8005026: 681b ldr r3, [r3, #0]
8005028: 4a05 ldr r2, [pc, #20] ; (8005040 <BSP_LCD_SetLayerVisible+0x7c>)
800502a: 6812 ldr r2, [r2, #0]
800502c: 6a52 ldr r2, [r2, #36] ; 0x24
800502e: f042 0201 orr.w r2, r2, #1
8005032: 625a str r2, [r3, #36] ; 0x24
}
8005034: bf00 nop
8005036: 370c adds r7, #12
8005038: 46bd mov sp, r7
800503a: f85d 7b04 ldr.w r7, [sp], #4
800503e: 4770 bx lr
8005040: 2006c054 .word 0x2006c054
08005044 <BSP_LCD_SetLayerVisible_NoReload>:
* @arg ENABLE
* @arg DISABLE
* @retval None
*/
void BSP_LCD_SetLayerVisible_NoReload(uint32_t LayerIndex, FunctionalState State)
{
8005044: b480 push {r7}
8005046: b083 sub sp, #12
8005048: af00 add r7, sp, #0
800504a: 6078 str r0, [r7, #4]
800504c: 460b mov r3, r1
800504e: 70fb strb r3, [r7, #3]
if(State == ENABLE)
8005050: 78fb ldrb r3, [r7, #3]
8005052: 2b01 cmp r3, #1
8005054: d113 bne.n 800507e <BSP_LCD_SetLayerVisible_NoReload+0x3a>
__HAL_LTDC_LAYER_ENABLE(&hLtdcHandler, LayerIndex);
8005056: 4b16 ldr r3, [pc, #88] ; (80050b0 <BSP_LCD_SetLayerVisible_NoReload+0x6c>)
8005058: 681b ldr r3, [r3, #0]
800505a: 461a mov r2, r3
800505c: 687b ldr r3, [r7, #4]
800505e: 01db lsls r3, r3, #7
8005060: 4413 add r3, r2
8005062: 3384 adds r3, #132 ; 0x84
8005064: 461a mov r2, r3
8005066: 4b12 ldr r3, [pc, #72] ; (80050b0 <BSP_LCD_SetLayerVisible_NoReload+0x6c>)
8005068: 681b ldr r3, [r3, #0]
800506a: 4619 mov r1, r3
800506c: 687b ldr r3, [r7, #4]
800506e: 01db lsls r3, r3, #7
8005070: 440b add r3, r1
8005072: 3384 adds r3, #132 ; 0x84
8005074: 681b ldr r3, [r3, #0]
8005076: f043 0301 orr.w r3, r3, #1
800507a: 6013 str r3, [r2, #0]
else __HAL_LTDC_LAYER_DISABLE(&hLtdcHandler, LayerIndex);
}
800507c: e012 b.n 80050a4 <BSP_LCD_SetLayerVisible_NoReload+0x60>
else __HAL_LTDC_LAYER_DISABLE(&hLtdcHandler, LayerIndex);
800507e: 4b0c ldr r3, [pc, #48] ; (80050b0 <BSP_LCD_SetLayerVisible_NoReload+0x6c>)
8005080: 681b ldr r3, [r3, #0]
8005082: 461a mov r2, r3
8005084: 687b ldr r3, [r7, #4]
8005086: 01db lsls r3, r3, #7
8005088: 4413 add r3, r2
800508a: 3384 adds r3, #132 ; 0x84
800508c: 461a mov r2, r3
800508e: 4b08 ldr r3, [pc, #32] ; (80050b0 <BSP_LCD_SetLayerVisible_NoReload+0x6c>)
8005090: 681b ldr r3, [r3, #0]
8005092: 4619 mov r1, r3
8005094: 687b ldr r3, [r7, #4]
8005096: 01db lsls r3, r3, #7
8005098: 440b add r3, r1
800509a: 3384 adds r3, #132 ; 0x84
800509c: 681b ldr r3, [r3, #0]
800509e: f023 0301 bic.w r3, r3, #1
80050a2: 6013 str r3, [r2, #0]
}
80050a4: bf00 nop
80050a6: 370c adds r7, #12
80050a8: 46bd mov sp, r7
80050aa: f85d 7b04 ldr.w r7, [sp], #4
80050ae: 4770 bx lr
80050b0: 2006c054 .word 0x2006c054
080050b4 <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)
{
80050b4: b480 push {r7}
80050b6: b083 sub sp, #12
80050b8: af00 add r7, sp, #0
80050ba: 6078 str r0, [r7, #4]
80050bc: 6039 str r1, [r7, #0]
DrawProp[ActiveLayer].TextColor = ColorUp;
80050be: 4b0d ldr r3, [pc, #52] ; (80050f4 <LCD_SetColors+0x40>)
80050c0: 681a ldr r2, [r3, #0]
80050c2: 490d ldr r1, [pc, #52] ; (80050f8 <LCD_SetColors+0x44>)
80050c4: 4613 mov r3, r2
80050c6: 005b lsls r3, r3, #1
80050c8: 4413 add r3, r2
80050ca: 009b lsls r3, r3, #2
80050cc: 440b add r3, r1
80050ce: 687a ldr r2, [r7, #4]
80050d0: 601a str r2, [r3, #0]
DrawProp[ActiveLayer].BackColor = ColorDn;
80050d2: 4b08 ldr r3, [pc, #32] ; (80050f4 <LCD_SetColors+0x40>)
80050d4: 681a ldr r2, [r3, #0]
80050d6: 4908 ldr r1, [pc, #32] ; (80050f8 <LCD_SetColors+0x44>)
80050d8: 4613 mov r3, r2
80050da: 005b lsls r3, r3, #1
80050dc: 4413 add r3, r2
80050de: 009b lsls r3, r3, #2
80050e0: 440b add r3, r1
80050e2: 3304 adds r3, #4
80050e4: 683a ldr r2, [r7, #0]
80050e6: 601a str r2, [r3, #0]
}
80050e8: bf00 nop
80050ea: 370c adds r7, #12
80050ec: 46bd mov sp, r7
80050ee: f85d 7b04 ldr.w r7, [sp], #4
80050f2: 4770 bx lr
80050f4: 20020018 .word 0x20020018
80050f8: 2006b924 .word 0x2006b924
080050fc <BSP_LCD_SetTextColor>:
void BSP_LCD_SetTextColor(uint32_t Color)
{
80050fc: b480 push {r7}
80050fe: b083 sub sp, #12
8005100: af00 add r7, sp, #0
8005102: 6078 str r0, [r7, #4]
DrawProp[ActiveLayer].TextColor = Color;
8005104: 4b07 ldr r3, [pc, #28] ; (8005124 <BSP_LCD_SetTextColor+0x28>)
8005106: 681a ldr r2, [r3, #0]
8005108: 4907 ldr r1, [pc, #28] ; (8005128 <BSP_LCD_SetTextColor+0x2c>)
800510a: 4613 mov r3, r2
800510c: 005b lsls r3, r3, #1
800510e: 4413 add r3, r2
8005110: 009b lsls r3, r3, #2
8005112: 440b add r3, r1
8005114: 687a ldr r2, [r7, #4]
8005116: 601a str r2, [r3, #0]
}
8005118: bf00 nop
800511a: 370c adds r7, #12
800511c: 46bd mov sp, r7
800511e: f85d 7b04 ldr.w r7, [sp], #4
8005122: 4770 bx lr
8005124: 20020018 .word 0x20020018
8005128: 2006b924 .word 0x2006b924
0800512c <BSP_LCD_SetFont>:
* @brief Sets the LCD text font.
* @param fonts: Layer font to be used
* @retval None
*/
void BSP_LCD_SetFont(sFONT *fonts)
{
800512c: b480 push {r7}
800512e: b083 sub sp, #12
8005130: af00 add r7, sp, #0
8005132: 6078 str r0, [r7, #4]
DrawProp[ActiveLayer].pFont = fonts;
8005134: 4b09 ldr r3, [pc, #36] ; (800515c <BSP_LCD_SetFont+0x30>)
8005136: 681a ldr r2, [r3, #0]
8005138: 4909 ldr r1, [pc, #36] ; (8005160 <BSP_LCD_SetFont+0x34>)
800513a: 4613 mov r3, r2
800513c: 005b lsls r3, r3, #1
800513e: 4413 add r3, r2
8005140: 009b lsls r3, r3, #2
8005142: 440b add r3, r1
8005144: 3308 adds r3, #8
8005146: 687a ldr r2, [r7, #4]
8005148: 601a str r2, [r3, #0]
CurrentFont = fonts;
800514a: 4a06 ldr r2, [pc, #24] ; (8005164 <BSP_LCD_SetFont+0x38>)
800514c: 687b ldr r3, [r7, #4]
800514e: 6013 str r3, [r2, #0]
}
8005150: bf00 nop
8005152: 370c adds r7, #12
8005154: 46bd mov sp, r7
8005156: f85d 7b04 ldr.w r7, [sp], #4
800515a: 4770 bx lr
800515c: 20020018 .word 0x20020018
8005160: 2006b924 .word 0x2006b924
8005164: 2006c050 .word 0x2006c050
08005168 <BSP_LCD_Clear>:
* @brief Clears the hole LCD.
* @param Color: Color of the background
* @retval None
*/
void BSP_LCD_Clear(uint32_t Color)
{
8005168: b5f0 push {r4, r5, r6, r7, lr}
800516a: b085 sub sp, #20
800516c: af02 add r7, sp, #8
800516e: 6078 str r0, [r7, #4]
LL_FillBuffer(ActiveLayer, (uint32_t *)(hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress), BSP_LCD_GetXSize(), BSP_LCD_GetYSize(), 0, Color);
8005170: 4b0f ldr r3, [pc, #60] ; (80051b0 <BSP_LCD_Clear+0x48>)
8005172: 681c ldr r4, [r3, #0]
8005174: 4b0e ldr r3, [pc, #56] ; (80051b0 <BSP_LCD_Clear+0x48>)
8005176: 681b ldr r3, [r3, #0]
8005178: 4a0e ldr r2, [pc, #56] ; (80051b4 <BSP_LCD_Clear+0x4c>)
800517a: 2134 movs r1, #52 ; 0x34
800517c: fb01 f303 mul.w r3, r1, r3
8005180: 4413 add r3, r2
8005182: 335c adds r3, #92 ; 0x5c
8005184: 681b ldr r3, [r3, #0]
8005186: 461d mov r5, r3
8005188: f7ff fee4 bl 8004f54 <BSP_LCD_GetXSize>
800518c: 4606 mov r6, r0
800518e: f7ff fef5 bl 8004f7c <BSP_LCD_GetYSize>
8005192: 4602 mov r2, r0
8005194: 687b ldr r3, [r7, #4]
8005196: 9301 str r3, [sp, #4]
8005198: 2300 movs r3, #0
800519a: 9300 str r3, [sp, #0]
800519c: 4613 mov r3, r2
800519e: 4632 mov r2, r6
80051a0: 4629 mov r1, r5
80051a2: 4620 mov r0, r4
80051a4: f000 fd1a bl 8005bdc <LL_FillBuffer>
}
80051a8: bf00 nop
80051aa: 370c adds r7, #12
80051ac: 46bd mov sp, r7
80051ae: bdf0 pop {r4, r5, r6, r7, pc}
80051b0: 20020018 .word 0x20020018
80051b4: 2006c054 .word 0x2006c054
080051b8 <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)
{
80051b8: b590 push {r4, r7, lr}
80051ba: b083 sub sp, #12
80051bc: af00 add r7, sp, #0
80051be: 4603 mov r3, r0
80051c0: 80fb strh r3, [r7, #6]
80051c2: 460b mov r3, r1
80051c4: 80bb strh r3, [r7, #4]
80051c6: 4613 mov r3, r2
80051c8: 70fb strb r3, [r7, #3]
DrawChar( Xpos, Ypos, &DrawProp[ActiveLayer].pFont->table[(Ascii - ' ') * DrawProp[ActiveLayer].pFont->Height * ((DrawProp[ActiveLayer].pFont->Width + 7) / 8)] );
80051ca: 4b1b ldr r3, [pc, #108] ; (8005238 <BSP_LCD_DisplayChar+0x80>)
80051cc: 681a ldr r2, [r3, #0]
80051ce: 491b ldr r1, [pc, #108] ; (800523c <BSP_LCD_DisplayChar+0x84>)
80051d0: 4613 mov r3, r2
80051d2: 005b lsls r3, r3, #1
80051d4: 4413 add r3, r2
80051d6: 009b lsls r3, r3, #2
80051d8: 440b add r3, r1
80051da: 3308 adds r3, #8
80051dc: 681b ldr r3, [r3, #0]
80051de: 6819 ldr r1, [r3, #0]
80051e0: 78fb ldrb r3, [r7, #3]
80051e2: f1a3 0020 sub.w r0, r3, #32
80051e6: 4b14 ldr r3, [pc, #80] ; (8005238 <BSP_LCD_DisplayChar+0x80>)
80051e8: 681a ldr r2, [r3, #0]
80051ea: 4c14 ldr r4, [pc, #80] ; (800523c <BSP_LCD_DisplayChar+0x84>)
80051ec: 4613 mov r3, r2
80051ee: 005b lsls r3, r3, #1
80051f0: 4413 add r3, r2
80051f2: 009b lsls r3, r3, #2
80051f4: 4423 add r3, r4
80051f6: 3308 adds r3, #8
80051f8: 681b ldr r3, [r3, #0]
80051fa: 88db ldrh r3, [r3, #6]
80051fc: fb03 f000 mul.w r0, r3, r0
8005200: 4b0d ldr r3, [pc, #52] ; (8005238 <BSP_LCD_DisplayChar+0x80>)
8005202: 681a ldr r2, [r3, #0]
8005204: 4c0d ldr r4, [pc, #52] ; (800523c <BSP_LCD_DisplayChar+0x84>)
8005206: 4613 mov r3, r2
8005208: 005b lsls r3, r3, #1
800520a: 4413 add r3, r2
800520c: 009b lsls r3, r3, #2
800520e: 4423 add r3, r4
8005210: 3308 adds r3, #8
8005212: 681b ldr r3, [r3, #0]
8005214: 889b ldrh r3, [r3, #4]
8005216: 3307 adds r3, #7
8005218: 2b00 cmp r3, #0
800521a: da00 bge.n 800521e <BSP_LCD_DisplayChar+0x66>
800521c: 3307 adds r3, #7
800521e: 10db asrs r3, r3, #3
8005220: fb03 f300 mul.w r3, r3, r0
8005224: 18ca adds r2, r1, r3
8005226: 88b9 ldrh r1, [r7, #4]
8005228: 88fb ldrh r3, [r7, #6]
800522a: 4618 mov r0, r3
800522c: f000 fc1e bl 8005a6c <DrawChar>
}
8005230: bf00 nop
8005232: 370c adds r7, #12
8005234: 46bd mov sp, r7
8005236: bd90 pop {r4, r7, pc}
8005238: 20020018 .word 0x20020018
800523c: 2006b924 .word 0x2006b924
08005240 <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)
{
8005240: b5b0 push {r4, r5, r7, lr}
8005242: b088 sub sp, #32
8005244: af00 add r7, sp, #0
8005246: 60ba str r2, [r7, #8]
8005248: 461a mov r2, r3
800524a: 4603 mov r3, r0
800524c: 81fb strh r3, [r7, #14]
800524e: 460b mov r3, r1
8005250: 81bb strh r3, [r7, #12]
8005252: 4613 mov r3, r2
8005254: 71fb strb r3, [r7, #7]
uint16_t ref_column = 1, i = 0, ll = 0;
8005256: 2301 movs r3, #1
8005258: 83fb strh r3, [r7, #30]
800525a: 2300 movs r3, #0
800525c: 83bb strh r3, [r7, #28]
800525e: 2300 movs r3, #0
8005260: 827b strh r3, [r7, #18]
uint32_t size = 0;
8005262: 2300 movs r3, #0
8005264: 61bb str r3, [r7, #24]
uint8_t *ptr;
ptr = (uint8_t *) Text;
8005266: 68bb ldr r3, [r7, #8]
8005268: 617b str r3, [r7, #20]
/* Get the text size */
while (*ptr++) size++ ;
800526a: e002 b.n 8005272 <BSP_LCD_DisplayStringAt+0x32>
800526c: 69bb ldr r3, [r7, #24]
800526e: 3301 adds r3, #1
8005270: 61bb str r3, [r7, #24]
8005272: 697b ldr r3, [r7, #20]
8005274: 1c5a adds r2, r3, #1
8005276: 617a str r2, [r7, #20]
8005278: 781b ldrb r3, [r3, #0]
800527a: 2b00 cmp r3, #0
800527c: d1f6 bne.n 800526c <BSP_LCD_DisplayStringAt+0x2c>
/* Characters number per line */
// xsize = (BSP_LCD_GetXSize() / DrawProp[ActiveLayer].pFont->Width);
switch (Mode)
800527e: 79fb ldrb r3, [r7, #7]
8005280: 2b02 cmp r3, #2
8005282: d01d beq.n 80052c0 <BSP_LCD_DisplayStringAt+0x80>
8005284: 2b03 cmp r3, #3
8005286: d018 beq.n 80052ba <BSP_LCD_DisplayStringAt+0x7a>
8005288: 2b01 cmp r3, #1
800528a: d12e bne.n 80052ea <BSP_LCD_DisplayStringAt+0xaa>
{
case CENTER_MODE:
{
ll = DrawProp[ActiveLayer].pFont->Width * size;
800528c: 4b44 ldr r3, [pc, #272] ; (80053a0 <BSP_LCD_DisplayStringAt+0x160>)
800528e: 681a ldr r2, [r3, #0]
8005290: 4944 ldr r1, [pc, #272] ; (80053a4 <BSP_LCD_DisplayStringAt+0x164>)
8005292: 4613 mov r3, r2
8005294: 005b lsls r3, r3, #1
8005296: 4413 add r3, r2
8005298: 009b lsls r3, r3, #2
800529a: 440b add r3, r1
800529c: 3308 adds r3, #8
800529e: 681b ldr r3, [r3, #0]
80052a0: 889a ldrh r2, [r3, #4]
80052a2: 69bb ldr r3, [r7, #24]
80052a4: b29b uxth r3, r3
80052a6: fb12 f303 smulbb r3, r2, r3
80052aa: 827b strh r3, [r7, #18]
ref_column = Xpos - (ll >> 1);
80052ac: 8a7b ldrh r3, [r7, #18]
80052ae: 085b lsrs r3, r3, #1
80052b0: b29b uxth r3, r3
80052b2: 89fa ldrh r2, [r7, #14]
80052b4: 1ad3 subs r3, r2, r3
80052b6: 83fb strh r3, [r7, #30]
//if((ref_column + ll > 319) || (ref_column > 319))
// ref_column = Xpos + ((xsize - size)* DrawProp[ActiveLayer].pFont->Width) / 2;
break;
80052b8: e01a b.n 80052f0 <BSP_LCD_DisplayStringAt+0xb0>
}
case LEFT_MODE:
{
ref_column = Xpos;
80052ba: 89fb ldrh r3, [r7, #14]
80052bc: 83fb strh r3, [r7, #30]
break;
80052be: e017 b.n 80052f0 <BSP_LCD_DisplayStringAt+0xb0>
}
case RIGHT_MODE:
{
ll = DrawProp[ActiveLayer].pFont->Width * size;
80052c0: 4b37 ldr r3, [pc, #220] ; (80053a0 <BSP_LCD_DisplayStringAt+0x160>)
80052c2: 681a ldr r2, [r3, #0]
80052c4: 4937 ldr r1, [pc, #220] ; (80053a4 <BSP_LCD_DisplayStringAt+0x164>)
80052c6: 4613 mov r3, r2
80052c8: 005b lsls r3, r3, #1
80052ca: 4413 add r3, r2
80052cc: 009b lsls r3, r3, #2
80052ce: 440b add r3, r1
80052d0: 3308 adds r3, #8
80052d2: 681b ldr r3, [r3, #0]
80052d4: 889a ldrh r2, [r3, #4]
80052d6: 69bb ldr r3, [r7, #24]
80052d8: b29b uxth r3, r3
80052da: fb12 f303 smulbb r3, r2, r3
80052de: 827b strh r3, [r7, #18]
ref_column = Xpos - ll;
80052e0: 89fa ldrh r2, [r7, #14]
80052e2: 8a7b ldrh r3, [r7, #18]
80052e4: 1ad3 subs r3, r2, r3
80052e6: 83fb strh r3, [r7, #30]
// ref_column = - Xpos + ((xsize - size)*DrawProp[ActiveLayer].pFont->Width);
break;
80052e8: e002 b.n 80052f0 <BSP_LCD_DisplayStringAt+0xb0>
}
default:
{
ref_column = Xpos;
80052ea: 89fb ldrh r3, [r7, #14]
80052ec: 83fb strh r3, [r7, #30]
break;
80052ee: bf00 nop
}
}
/* Check that the Start column is located in the screen */
if ((ref_column < 1) || (ref_column >= 0x8000))
80052f0: 8bfb ldrh r3, [r7, #30]
80052f2: 2b00 cmp r3, #0
80052f4: d003 beq.n 80052fe <BSP_LCD_DisplayStringAt+0xbe>
80052f6: f9b7 301e ldrsh.w r3, [r7, #30]
80052fa: 2b00 cmp r3, #0
80052fc: da1d bge.n 800533a <BSP_LCD_DisplayStringAt+0xfa>
{
ref_column = 1;
80052fe: 2301 movs r3, #1
8005300: 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))
8005302: e01a b.n 800533a <BSP_LCD_DisplayStringAt+0xfa>
{
/* Display one character on LCD */
BSP_LCD_DisplayChar(ref_column, Ypos, *Text);
8005304: 68bb ldr r3, [r7, #8]
8005306: 781a ldrb r2, [r3, #0]
8005308: 89b9 ldrh r1, [r7, #12]
800530a: 8bfb ldrh r3, [r7, #30]
800530c: 4618 mov r0, r3
800530e: f7ff ff53 bl 80051b8 <BSP_LCD_DisplayChar>
/* Decrement the column position by 16 */
ref_column += DrawProp[ActiveLayer].pFont->Width;
8005312: 4b23 ldr r3, [pc, #140] ; (80053a0 <BSP_LCD_DisplayStringAt+0x160>)
8005314: 681a ldr r2, [r3, #0]
8005316: 4923 ldr r1, [pc, #140] ; (80053a4 <BSP_LCD_DisplayStringAt+0x164>)
8005318: 4613 mov r3, r2
800531a: 005b lsls r3, r3, #1
800531c: 4413 add r3, r2
800531e: 009b lsls r3, r3, #2
8005320: 440b add r3, r1
8005322: 3308 adds r3, #8
8005324: 681b ldr r3, [r3, #0]
8005326: 889a ldrh r2, [r3, #4]
8005328: 8bfb ldrh r3, [r7, #30]
800532a: 4413 add r3, r2
800532c: 83fb strh r3, [r7, #30]
/* Point on the next character */
Text++;
800532e: 68bb ldr r3, [r7, #8]
8005330: 3301 adds r3, #1
8005332: 60bb str r3, [r7, #8]
i++;
8005334: 8bbb ldrh r3, [r7, #28]
8005336: 3301 adds r3, #1
8005338: 83bb strh r3, [r7, #28]
while ((*Text != 0) & (((BSP_LCD_GetXSize() - (i*DrawProp[ActiveLayer].pFont->Width)) & 0xFFFF) >= DrawProp[ActiveLayer].pFont->Width))
800533a: 68bb ldr r3, [r7, #8]
800533c: 781b ldrb r3, [r3, #0]
800533e: 2b00 cmp r3, #0
8005340: bf14 ite ne
8005342: 2301 movne r3, #1
8005344: 2300 moveq r3, #0
8005346: b2dc uxtb r4, r3
8005348: f7ff fe04 bl 8004f54 <BSP_LCD_GetXSize>
800534c: 4605 mov r5, r0
800534e: 8bb9 ldrh r1, [r7, #28]
8005350: 4b13 ldr r3, [pc, #76] ; (80053a0 <BSP_LCD_DisplayStringAt+0x160>)
8005352: 681a ldr r2, [r3, #0]
8005354: 4813 ldr r0, [pc, #76] ; (80053a4 <BSP_LCD_DisplayStringAt+0x164>)
8005356: 4613 mov r3, r2
8005358: 005b lsls r3, r3, #1
800535a: 4413 add r3, r2
800535c: 009b lsls r3, r3, #2
800535e: 4403 add r3, r0
8005360: 3308 adds r3, #8
8005362: 681b ldr r3, [r3, #0]
8005364: 889b ldrh r3, [r3, #4]
8005366: fb03 f301 mul.w r3, r3, r1
800536a: 1aeb subs r3, r5, r3
800536c: b299 uxth r1, r3
800536e: 4b0c ldr r3, [pc, #48] ; (80053a0 <BSP_LCD_DisplayStringAt+0x160>)
8005370: 681a ldr r2, [r3, #0]
8005372: 480c ldr r0, [pc, #48] ; (80053a4 <BSP_LCD_DisplayStringAt+0x164>)
8005374: 4613 mov r3, r2
8005376: 005b lsls r3, r3, #1
8005378: 4413 add r3, r2
800537a: 009b lsls r3, r3, #2
800537c: 4403 add r3, r0
800537e: 3308 adds r3, #8
8005380: 681b ldr r3, [r3, #0]
8005382: 889b ldrh r3, [r3, #4]
8005384: 4299 cmp r1, r3
8005386: bf2c ite cs
8005388: 2301 movcs r3, #1
800538a: 2300 movcc r3, #0
800538c: b2db uxtb r3, r3
800538e: 4023 ands r3, r4
8005390: b2db uxtb r3, r3
8005392: 2b00 cmp r3, #0
8005394: d1b6 bne.n 8005304 <BSP_LCD_DisplayStringAt+0xc4>
}
}
8005396: bf00 nop
8005398: 3720 adds r7, #32
800539a: 46bd mov sp, r7
800539c: bdb0 pop {r4, r5, r7, pc}
800539e: bf00 nop
80053a0: 20020018 .word 0x20020018
80053a4: 2006b924 .word 0x2006b924
080053a8 <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)
{
80053a8: b5b0 push {r4, r5, r7, lr}
80053aa: b086 sub sp, #24
80053ac: af02 add r7, sp, #8
80053ae: 4603 mov r3, r0
80053b0: 80fb strh r3, [r7, #6]
80053b2: 460b mov r3, r1
80053b4: 80bb strh r3, [r7, #4]
80053b6: 4613 mov r3, r2
80053b8: 807b strh r3, [r7, #2]
uint32_t Xaddress = 0;
80053ba: 2300 movs r3, #0
80053bc: 60fb str r3, [r7, #12]
/* Get the line address */
if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565)
80053be: 4b26 ldr r3, [pc, #152] ; (8005458 <BSP_LCD_DrawHLine+0xb0>)
80053c0: 681b ldr r3, [r3, #0]
80053c2: 4a26 ldr r2, [pc, #152] ; (800545c <BSP_LCD_DrawHLine+0xb4>)
80053c4: 2134 movs r1, #52 ; 0x34
80053c6: fb01 f303 mul.w r3, r1, r3
80053ca: 4413 add r3, r2
80053cc: 3348 adds r3, #72 ; 0x48
80053ce: 681b ldr r3, [r3, #0]
80053d0: 2b02 cmp r3, #2
80053d2: d114 bne.n 80053fe <BSP_LCD_DrawHLine+0x56>
{ /* RGB565 format */
Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 2*(BSP_LCD_GetXSize()*Ypos + Xpos);
80053d4: 4b20 ldr r3, [pc, #128] ; (8005458 <BSP_LCD_DrawHLine+0xb0>)
80053d6: 681b ldr r3, [r3, #0]
80053d8: 4a20 ldr r2, [pc, #128] ; (800545c <BSP_LCD_DrawHLine+0xb4>)
80053da: 2134 movs r1, #52 ; 0x34
80053dc: fb01 f303 mul.w r3, r1, r3
80053e0: 4413 add r3, r2
80053e2: 335c adds r3, #92 ; 0x5c
80053e4: 681c ldr r4, [r3, #0]
80053e6: f7ff fdb5 bl 8004f54 <BSP_LCD_GetXSize>
80053ea: 4602 mov r2, r0
80053ec: 88bb ldrh r3, [r7, #4]
80053ee: fb03 f202 mul.w r2, r3, r2
80053f2: 88fb ldrh r3, [r7, #6]
80053f4: 4413 add r3, r2
80053f6: 005b lsls r3, r3, #1
80053f8: 4423 add r3, r4
80053fa: 60fb str r3, [r7, #12]
80053fc: e013 b.n 8005426 <BSP_LCD_DrawHLine+0x7e>
}
else
{ /* ARGB8888 format */
Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 4*(BSP_LCD_GetXSize()*Ypos + Xpos);
80053fe: 4b16 ldr r3, [pc, #88] ; (8005458 <BSP_LCD_DrawHLine+0xb0>)
8005400: 681b ldr r3, [r3, #0]
8005402: 4a16 ldr r2, [pc, #88] ; (800545c <BSP_LCD_DrawHLine+0xb4>)
8005404: 2134 movs r1, #52 ; 0x34
8005406: fb01 f303 mul.w r3, r1, r3
800540a: 4413 add r3, r2
800540c: 335c adds r3, #92 ; 0x5c
800540e: 681c ldr r4, [r3, #0]
8005410: f7ff fda0 bl 8004f54 <BSP_LCD_GetXSize>
8005414: 4602 mov r2, r0
8005416: 88bb ldrh r3, [r7, #4]
8005418: fb03 f202 mul.w r2, r3, r2
800541c: 88fb ldrh r3, [r7, #6]
800541e: 4413 add r3, r2
8005420: 009b lsls r3, r3, #2
8005422: 4423 add r3, r4
8005424: 60fb str r3, [r7, #12]
}
/* Write line */
LL_FillBuffer(ActiveLayer, (uint32_t *)Xaddress, Length, 1, 0, DrawProp[ActiveLayer].TextColor);
8005426: 4b0c ldr r3, [pc, #48] ; (8005458 <BSP_LCD_DrawHLine+0xb0>)
8005428: 6818 ldr r0, [r3, #0]
800542a: 68fc ldr r4, [r7, #12]
800542c: 887d ldrh r5, [r7, #2]
800542e: 4b0a ldr r3, [pc, #40] ; (8005458 <BSP_LCD_DrawHLine+0xb0>)
8005430: 681a ldr r2, [r3, #0]
8005432: 490b ldr r1, [pc, #44] ; (8005460 <BSP_LCD_DrawHLine+0xb8>)
8005434: 4613 mov r3, r2
8005436: 005b lsls r3, r3, #1
8005438: 4413 add r3, r2
800543a: 009b lsls r3, r3, #2
800543c: 440b add r3, r1
800543e: 681b ldr r3, [r3, #0]
8005440: 9301 str r3, [sp, #4]
8005442: 2300 movs r3, #0
8005444: 9300 str r3, [sp, #0]
8005446: 2301 movs r3, #1
8005448: 462a mov r2, r5
800544a: 4621 mov r1, r4
800544c: f000 fbc6 bl 8005bdc <LL_FillBuffer>
}
8005450: bf00 nop
8005452: 3710 adds r7, #16
8005454: 46bd mov sp, r7
8005456: bdb0 pop {r4, r5, r7, pc}
8005458: 20020018 .word 0x20020018
800545c: 2006c054 .word 0x2006c054
8005460: 2006b924 .word 0x2006b924
08005464 <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)
{
8005464: b5f0 push {r4, r5, r6, r7, lr}
8005466: b087 sub sp, #28
8005468: af02 add r7, sp, #8
800546a: 4603 mov r3, r0
800546c: 80fb strh r3, [r7, #6]
800546e: 460b mov r3, r1
8005470: 80bb strh r3, [r7, #4]
8005472: 4613 mov r3, r2
8005474: 807b strh r3, [r7, #2]
uint32_t Xaddress = 0;
8005476: 2300 movs r3, #0
8005478: 60fb str r3, [r7, #12]
/* Get the line address */
if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565)
800547a: 4b28 ldr r3, [pc, #160] ; (800551c <BSP_LCD_DrawVLine+0xb8>)
800547c: 681b ldr r3, [r3, #0]
800547e: 4a28 ldr r2, [pc, #160] ; (8005520 <BSP_LCD_DrawVLine+0xbc>)
8005480: 2134 movs r1, #52 ; 0x34
8005482: fb01 f303 mul.w r3, r1, r3
8005486: 4413 add r3, r2
8005488: 3348 adds r3, #72 ; 0x48
800548a: 681b ldr r3, [r3, #0]
800548c: 2b02 cmp r3, #2
800548e: d114 bne.n 80054ba <BSP_LCD_DrawVLine+0x56>
{ /* RGB565 format */
Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 2*(BSP_LCD_GetXSize()*Ypos + Xpos);
8005490: 4b22 ldr r3, [pc, #136] ; (800551c <BSP_LCD_DrawVLine+0xb8>)
8005492: 681b ldr r3, [r3, #0]
8005494: 4a22 ldr r2, [pc, #136] ; (8005520 <BSP_LCD_DrawVLine+0xbc>)
8005496: 2134 movs r1, #52 ; 0x34
8005498: fb01 f303 mul.w r3, r1, r3
800549c: 4413 add r3, r2
800549e: 335c adds r3, #92 ; 0x5c
80054a0: 681c ldr r4, [r3, #0]
80054a2: f7ff fd57 bl 8004f54 <BSP_LCD_GetXSize>
80054a6: 4602 mov r2, r0
80054a8: 88bb ldrh r3, [r7, #4]
80054aa: fb03 f202 mul.w r2, r3, r2
80054ae: 88fb ldrh r3, [r7, #6]
80054b0: 4413 add r3, r2
80054b2: 005b lsls r3, r3, #1
80054b4: 4423 add r3, r4
80054b6: 60fb str r3, [r7, #12]
80054b8: e013 b.n 80054e2 <BSP_LCD_DrawVLine+0x7e>
}
else
{ /* ARGB8888 format */
Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 4*(BSP_LCD_GetXSize()*Ypos + Xpos);
80054ba: 4b18 ldr r3, [pc, #96] ; (800551c <BSP_LCD_DrawVLine+0xb8>)
80054bc: 681b ldr r3, [r3, #0]
80054be: 4a18 ldr r2, [pc, #96] ; (8005520 <BSP_LCD_DrawVLine+0xbc>)
80054c0: 2134 movs r1, #52 ; 0x34
80054c2: fb01 f303 mul.w r3, r1, r3
80054c6: 4413 add r3, r2
80054c8: 335c adds r3, #92 ; 0x5c
80054ca: 681c ldr r4, [r3, #0]
80054cc: f7ff fd42 bl 8004f54 <BSP_LCD_GetXSize>
80054d0: 4602 mov r2, r0
80054d2: 88bb ldrh r3, [r7, #4]
80054d4: fb03 f202 mul.w r2, r3, r2
80054d8: 88fb ldrh r3, [r7, #6]
80054da: 4413 add r3, r2
80054dc: 009b lsls r3, r3, #2
80054de: 4423 add r3, r4
80054e0: 60fb str r3, [r7, #12]
}
/* Write line */
LL_FillBuffer(ActiveLayer, (uint32_t *)Xaddress, 1, Length, (BSP_LCD_GetXSize() - 1), DrawProp[ActiveLayer].TextColor);
80054e2: 4b0e ldr r3, [pc, #56] ; (800551c <BSP_LCD_DrawVLine+0xb8>)
80054e4: 681c ldr r4, [r3, #0]
80054e6: 68fd ldr r5, [r7, #12]
80054e8: 887e ldrh r6, [r7, #2]
80054ea: f7ff fd33 bl 8004f54 <BSP_LCD_GetXSize>
80054ee: 4603 mov r3, r0
80054f0: 1e59 subs r1, r3, #1
80054f2: 4b0a ldr r3, [pc, #40] ; (800551c <BSP_LCD_DrawVLine+0xb8>)
80054f4: 681a ldr r2, [r3, #0]
80054f6: 480b ldr r0, [pc, #44] ; (8005524 <BSP_LCD_DrawVLine+0xc0>)
80054f8: 4613 mov r3, r2
80054fa: 005b lsls r3, r3, #1
80054fc: 4413 add r3, r2
80054fe: 009b lsls r3, r3, #2
8005500: 4403 add r3, r0
8005502: 681b ldr r3, [r3, #0]
8005504: 9301 str r3, [sp, #4]
8005506: 9100 str r1, [sp, #0]
8005508: 4633 mov r3, r6
800550a: 2201 movs r2, #1
800550c: 4629 mov r1, r5
800550e: 4620 mov r0, r4
8005510: f000 fb64 bl 8005bdc <LL_FillBuffer>
}
8005514: bf00 nop
8005516: 3714 adds r7, #20
8005518: 46bd mov sp, r7
800551a: bdf0 pop {r4, r5, r6, r7, pc}
800551c: 20020018 .word 0x20020018
8005520: 2006c054 .word 0x2006c054
8005524: 2006b924 .word 0x2006b924
08005528 <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)
{
8005528: b590 push {r4, r7, lr}
800552a: b083 sub sp, #12
800552c: af00 add r7, sp, #0
800552e: 4604 mov r4, r0
8005530: 4608 mov r0, r1
8005532: 4611 mov r1, r2
8005534: 461a mov r2, r3
8005536: 4623 mov r3, r4
8005538: 80fb strh r3, [r7, #6]
800553a: 4603 mov r3, r0
800553c: 80bb strh r3, [r7, #4]
800553e: 460b mov r3, r1
8005540: 807b strh r3, [r7, #2]
8005542: 4613 mov r3, r2
8005544: 803b strh r3, [r7, #0]
BSP_LCD_DrawHLine(Xpos, Ypos, Width);
8005546: 887a ldrh r2, [r7, #2]
8005548: 88b9 ldrh r1, [r7, #4]
800554a: 88fb ldrh r3, [r7, #6]
800554c: 4618 mov r0, r3
800554e: f7ff ff2b bl 80053a8 <BSP_LCD_DrawHLine>
BSP_LCD_DrawVLine(Xpos, Ypos, Height);
8005552: 883a ldrh r2, [r7, #0]
8005554: 88b9 ldrh r1, [r7, #4]
8005556: 88fb ldrh r3, [r7, #6]
8005558: 4618 mov r0, r3
800555a: f7ff ff83 bl 8005464 <BSP_LCD_DrawVLine>
BSP_LCD_DrawHLine(Xpos, (Ypos + Height), Width);
800555e: 88ba ldrh r2, [r7, #4]
8005560: 883b ldrh r3, [r7, #0]
8005562: 4413 add r3, r2
8005564: b299 uxth r1, r3
8005566: 887a ldrh r2, [r7, #2]
8005568: 88fb ldrh r3, [r7, #6]
800556a: 4618 mov r0, r3
800556c: f7ff ff1c bl 80053a8 <BSP_LCD_DrawHLine>
BSP_LCD_DrawVLine((Xpos + Width), Ypos, Height + 1);
8005570: 88fa ldrh r2, [r7, #6]
8005572: 887b ldrh r3, [r7, #2]
8005574: 4413 add r3, r2
8005576: b298 uxth r0, r3
8005578: 883b ldrh r3, [r7, #0]
800557a: 3301 adds r3, #1
800557c: b29a uxth r2, r3
800557e: 88bb ldrh r3, [r7, #4]
8005580: 4619 mov r1, r3
8005582: f7ff ff6f bl 8005464 <BSP_LCD_DrawVLine>
}
8005586: bf00 nop
8005588: 370c adds r7, #12
800558a: 46bd mov sp, r7
800558c: bd90 pop {r4, r7, pc}
...
08005590 <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)
{
8005590: b590 push {r4, r7, lr}
8005592: b087 sub sp, #28
8005594: af00 add r7, sp, #0
8005596: 4603 mov r3, r0
8005598: 80fb strh r3, [r7, #6]
800559a: 460b mov r3, r1
800559c: 80bb strh r3, [r7, #4]
800559e: 4613 mov r3, r2
80055a0: 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);
80055a2: 887b ldrh r3, [r7, #2]
80055a4: 005b lsls r3, r3, #1
80055a6: f1c3 0303 rsb r3, r3, #3
80055aa: 617b str r3, [r7, #20]
current_x = 0;
80055ac: 2300 movs r3, #0
80055ae: 613b str r3, [r7, #16]
current_y = Radius;
80055b0: 887b ldrh r3, [r7, #2]
80055b2: 60fb str r3, [r7, #12]
while (current_x <= current_y)
80055b4: e0cf b.n 8005756 <BSP_LCD_DrawCircle+0x1c6>
{
BSP_LCD_DrawPixel((Xpos + current_x), (Ypos - current_y), DrawProp[ActiveLayer].TextColor);
80055b6: 693b ldr r3, [r7, #16]
80055b8: b29a uxth r2, r3
80055ba: 88fb ldrh r3, [r7, #6]
80055bc: 4413 add r3, r2
80055be: b298 uxth r0, r3
80055c0: 68fb ldr r3, [r7, #12]
80055c2: b29b uxth r3, r3
80055c4: 88ba ldrh r2, [r7, #4]
80055c6: 1ad3 subs r3, r2, r3
80055c8: b29c uxth r4, r3
80055ca: 4b67 ldr r3, [pc, #412] ; (8005768 <BSP_LCD_DrawCircle+0x1d8>)
80055cc: 681a ldr r2, [r3, #0]
80055ce: 4967 ldr r1, [pc, #412] ; (800576c <BSP_LCD_DrawCircle+0x1dc>)
80055d0: 4613 mov r3, r2
80055d2: 005b lsls r3, r3, #1
80055d4: 4413 add r3, r2
80055d6: 009b lsls r3, r3, #2
80055d8: 440b add r3, r1
80055da: 681b ldr r3, [r3, #0]
80055dc: 461a mov r2, r3
80055de: 4621 mov r1, r4
80055e0: f000 f8c6 bl 8005770 <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos - current_x), (Ypos - current_y), DrawProp[ActiveLayer].TextColor);
80055e4: 693b ldr r3, [r7, #16]
80055e6: b29b uxth r3, r3
80055e8: 88fa ldrh r2, [r7, #6]
80055ea: 1ad3 subs r3, r2, r3
80055ec: b298 uxth r0, r3
80055ee: 68fb ldr r3, [r7, #12]
80055f0: b29b uxth r3, r3
80055f2: 88ba ldrh r2, [r7, #4]
80055f4: 1ad3 subs r3, r2, r3
80055f6: b29c uxth r4, r3
80055f8: 4b5b ldr r3, [pc, #364] ; (8005768 <BSP_LCD_DrawCircle+0x1d8>)
80055fa: 681a ldr r2, [r3, #0]
80055fc: 495b ldr r1, [pc, #364] ; (800576c <BSP_LCD_DrawCircle+0x1dc>)
80055fe: 4613 mov r3, r2
8005600: 005b lsls r3, r3, #1
8005602: 4413 add r3, r2
8005604: 009b lsls r3, r3, #2
8005606: 440b add r3, r1
8005608: 681b ldr r3, [r3, #0]
800560a: 461a mov r2, r3
800560c: 4621 mov r1, r4
800560e: f000 f8af bl 8005770 <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos + current_y), (Ypos - current_x), DrawProp[ActiveLayer].TextColor);
8005612: 68fb ldr r3, [r7, #12]
8005614: b29a uxth r2, r3
8005616: 88fb ldrh r3, [r7, #6]
8005618: 4413 add r3, r2
800561a: b298 uxth r0, r3
800561c: 693b ldr r3, [r7, #16]
800561e: b29b uxth r3, r3
8005620: 88ba ldrh r2, [r7, #4]
8005622: 1ad3 subs r3, r2, r3
8005624: b29c uxth r4, r3
8005626: 4b50 ldr r3, [pc, #320] ; (8005768 <BSP_LCD_DrawCircle+0x1d8>)
8005628: 681a ldr r2, [r3, #0]
800562a: 4950 ldr r1, [pc, #320] ; (800576c <BSP_LCD_DrawCircle+0x1dc>)
800562c: 4613 mov r3, r2
800562e: 005b lsls r3, r3, #1
8005630: 4413 add r3, r2
8005632: 009b lsls r3, r3, #2
8005634: 440b add r3, r1
8005636: 681b ldr r3, [r3, #0]
8005638: 461a mov r2, r3
800563a: 4621 mov r1, r4
800563c: f000 f898 bl 8005770 <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos - current_y), (Ypos - current_x), DrawProp[ActiveLayer].TextColor);
8005640: 68fb ldr r3, [r7, #12]
8005642: b29b uxth r3, r3
8005644: 88fa ldrh r2, [r7, #6]
8005646: 1ad3 subs r3, r2, r3
8005648: b298 uxth r0, r3
800564a: 693b ldr r3, [r7, #16]
800564c: b29b uxth r3, r3
800564e: 88ba ldrh r2, [r7, #4]
8005650: 1ad3 subs r3, r2, r3
8005652: b29c uxth r4, r3
8005654: 4b44 ldr r3, [pc, #272] ; (8005768 <BSP_LCD_DrawCircle+0x1d8>)
8005656: 681a ldr r2, [r3, #0]
8005658: 4944 ldr r1, [pc, #272] ; (800576c <BSP_LCD_DrawCircle+0x1dc>)
800565a: 4613 mov r3, r2
800565c: 005b lsls r3, r3, #1
800565e: 4413 add r3, r2
8005660: 009b lsls r3, r3, #2
8005662: 440b add r3, r1
8005664: 681b ldr r3, [r3, #0]
8005666: 461a mov r2, r3
8005668: 4621 mov r1, r4
800566a: f000 f881 bl 8005770 <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos + current_x), (Ypos + current_y), DrawProp[ActiveLayer].TextColor);
800566e: 693b ldr r3, [r7, #16]
8005670: b29a uxth r2, r3
8005672: 88fb ldrh r3, [r7, #6]
8005674: 4413 add r3, r2
8005676: b298 uxth r0, r3
8005678: 68fb ldr r3, [r7, #12]
800567a: b29a uxth r2, r3
800567c: 88bb ldrh r3, [r7, #4]
800567e: 4413 add r3, r2
8005680: b29c uxth r4, r3
8005682: 4b39 ldr r3, [pc, #228] ; (8005768 <BSP_LCD_DrawCircle+0x1d8>)
8005684: 681a ldr r2, [r3, #0]
8005686: 4939 ldr r1, [pc, #228] ; (800576c <BSP_LCD_DrawCircle+0x1dc>)
8005688: 4613 mov r3, r2
800568a: 005b lsls r3, r3, #1
800568c: 4413 add r3, r2
800568e: 009b lsls r3, r3, #2
8005690: 440b add r3, r1
8005692: 681b ldr r3, [r3, #0]
8005694: 461a mov r2, r3
8005696: 4621 mov r1, r4
8005698: f000 f86a bl 8005770 <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos - current_x), (Ypos + current_y), DrawProp[ActiveLayer].TextColor);
800569c: 693b ldr r3, [r7, #16]
800569e: b29b uxth r3, r3
80056a0: 88fa ldrh r2, [r7, #6]
80056a2: 1ad3 subs r3, r2, r3
80056a4: b298 uxth r0, r3
80056a6: 68fb ldr r3, [r7, #12]
80056a8: b29a uxth r2, r3
80056aa: 88bb ldrh r3, [r7, #4]
80056ac: 4413 add r3, r2
80056ae: b29c uxth r4, r3
80056b0: 4b2d ldr r3, [pc, #180] ; (8005768 <BSP_LCD_DrawCircle+0x1d8>)
80056b2: 681a ldr r2, [r3, #0]
80056b4: 492d ldr r1, [pc, #180] ; (800576c <BSP_LCD_DrawCircle+0x1dc>)
80056b6: 4613 mov r3, r2
80056b8: 005b lsls r3, r3, #1
80056ba: 4413 add r3, r2
80056bc: 009b lsls r3, r3, #2
80056be: 440b add r3, r1
80056c0: 681b ldr r3, [r3, #0]
80056c2: 461a mov r2, r3
80056c4: 4621 mov r1, r4
80056c6: f000 f853 bl 8005770 <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos + current_y), (Ypos + current_x), DrawProp[ActiveLayer].TextColor);
80056ca: 68fb ldr r3, [r7, #12]
80056cc: b29a uxth r2, r3
80056ce: 88fb ldrh r3, [r7, #6]
80056d0: 4413 add r3, r2
80056d2: b298 uxth r0, r3
80056d4: 693b ldr r3, [r7, #16]
80056d6: b29a uxth r2, r3
80056d8: 88bb ldrh r3, [r7, #4]
80056da: 4413 add r3, r2
80056dc: b29c uxth r4, r3
80056de: 4b22 ldr r3, [pc, #136] ; (8005768 <BSP_LCD_DrawCircle+0x1d8>)
80056e0: 681a ldr r2, [r3, #0]
80056e2: 4922 ldr r1, [pc, #136] ; (800576c <BSP_LCD_DrawCircle+0x1dc>)
80056e4: 4613 mov r3, r2
80056e6: 005b lsls r3, r3, #1
80056e8: 4413 add r3, r2
80056ea: 009b lsls r3, r3, #2
80056ec: 440b add r3, r1
80056ee: 681b ldr r3, [r3, #0]
80056f0: 461a mov r2, r3
80056f2: 4621 mov r1, r4
80056f4: f000 f83c bl 8005770 <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos - current_y), (Ypos + current_x), DrawProp[ActiveLayer].TextColor);
80056f8: 68fb ldr r3, [r7, #12]
80056fa: b29b uxth r3, r3
80056fc: 88fa ldrh r2, [r7, #6]
80056fe: 1ad3 subs r3, r2, r3
8005700: b298 uxth r0, r3
8005702: 693b ldr r3, [r7, #16]
8005704: b29a uxth r2, r3
8005706: 88bb ldrh r3, [r7, #4]
8005708: 4413 add r3, r2
800570a: b29c uxth r4, r3
800570c: 4b16 ldr r3, [pc, #88] ; (8005768 <BSP_LCD_DrawCircle+0x1d8>)
800570e: 681a ldr r2, [r3, #0]
8005710: 4916 ldr r1, [pc, #88] ; (800576c <BSP_LCD_DrawCircle+0x1dc>)
8005712: 4613 mov r3, r2
8005714: 005b lsls r3, r3, #1
8005716: 4413 add r3, r2
8005718: 009b lsls r3, r3, #2
800571a: 440b add r3, r1
800571c: 681b ldr r3, [r3, #0]
800571e: 461a mov r2, r3
8005720: 4621 mov r1, r4
8005722: f000 f825 bl 8005770 <BSP_LCD_DrawPixel>
if (decision < 0)
8005726: 697b ldr r3, [r7, #20]
8005728: 2b00 cmp r3, #0
800572a: da06 bge.n 800573a <BSP_LCD_DrawCircle+0x1aa>
{
decision += (current_x << 2) + 6;
800572c: 693b ldr r3, [r7, #16]
800572e: 009a lsls r2, r3, #2
8005730: 697b ldr r3, [r7, #20]
8005732: 4413 add r3, r2
8005734: 3306 adds r3, #6
8005736: 617b str r3, [r7, #20]
8005738: e00a b.n 8005750 <BSP_LCD_DrawCircle+0x1c0>
}
else
{
decision += ((current_x - current_y) << 2) + 10;
800573a: 693a ldr r2, [r7, #16]
800573c: 68fb ldr r3, [r7, #12]
800573e: 1ad3 subs r3, r2, r3
8005740: 009a lsls r2, r3, #2
8005742: 697b ldr r3, [r7, #20]
8005744: 4413 add r3, r2
8005746: 330a adds r3, #10
8005748: 617b str r3, [r7, #20]
current_y--;
800574a: 68fb ldr r3, [r7, #12]
800574c: 3b01 subs r3, #1
800574e: 60fb str r3, [r7, #12]
}
current_x++;
8005750: 693b ldr r3, [r7, #16]
8005752: 3301 adds r3, #1
8005754: 613b str r3, [r7, #16]
while (current_x <= current_y)
8005756: 693a ldr r2, [r7, #16]
8005758: 68fb ldr r3, [r7, #12]
800575a: 429a cmp r2, r3
800575c: f67f af2b bls.w 80055b6 <BSP_LCD_DrawCircle+0x26>
}
}
8005760: bf00 nop
8005762: 371c adds r7, #28
8005764: 46bd mov sp, r7
8005766: bd90 pop {r4, r7, pc}
8005768: 20020018 .word 0x20020018
800576c: 2006b924 .word 0x2006b924
08005770 <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)
{
8005770: b5b0 push {r4, r5, r7, lr}
8005772: b082 sub sp, #8
8005774: af00 add r7, sp, #0
8005776: 4603 mov r3, r0
8005778: 603a str r2, [r7, #0]
800577a: 80fb strh r3, [r7, #6]
800577c: 460b mov r3, r1
800577e: 80bb strh r3, [r7, #4]
/* Write data value to all SDRAM memory */
if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565)
8005780: 4b2a ldr r3, [pc, #168] ; (800582c <BSP_LCD_DrawPixel+0xbc>)
8005782: 681b ldr r3, [r3, #0]
8005784: 4a2a ldr r2, [pc, #168] ; (8005830 <BSP_LCD_DrawPixel+0xc0>)
8005786: 2134 movs r1, #52 ; 0x34
8005788: fb01 f303 mul.w r3, r1, r3
800578c: 4413 add r3, r2
800578e: 3348 adds r3, #72 ; 0x48
8005790: 681b ldr r3, [r3, #0]
8005792: 2b02 cmp r3, #2
8005794: d12f bne.n 80057f6 <BSP_LCD_DrawPixel+0x86>
{ /* RGB565 format */
*(__IO uint16_t*) (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (2*(Ypos*BSP_LCD_GetXSize() + Xpos))) = COLOR24TO16(RGB_Code);
8005796: 4b25 ldr r3, [pc, #148] ; (800582c <BSP_LCD_DrawPixel+0xbc>)
8005798: 681b ldr r3, [r3, #0]
800579a: 4a25 ldr r2, [pc, #148] ; (8005830 <BSP_LCD_DrawPixel+0xc0>)
800579c: 2134 movs r1, #52 ; 0x34
800579e: fb01 f303 mul.w r3, r1, r3
80057a2: 4413 add r3, r2
80057a4: 335c adds r3, #92 ; 0x5c
80057a6: 681c ldr r4, [r3, #0]
80057a8: 88bd ldrh r5, [r7, #4]
80057aa: f7ff fbd3 bl 8004f54 <BSP_LCD_GetXSize>
80057ae: 4603 mov r3, r0
80057b0: fb03 f205 mul.w r2, r3, r5
80057b4: 88fb ldrh r3, [r7, #6]
80057b6: 4413 add r3, r2
80057b8: 005b lsls r3, r3, #1
80057ba: 4423 add r3, r4
80057bc: 4619 mov r1, r3
80057be: 683b ldr r3, [r7, #0]
80057c0: 0c1b lsrs r3, r3, #16
80057c2: b29b uxth r3, r3
80057c4: 021b lsls r3, r3, #8
80057c6: b29a uxth r2, r3
80057c8: 4b1a ldr r3, [pc, #104] ; (8005834 <BSP_LCD_DrawPixel+0xc4>)
80057ca: 4013 ands r3, r2
80057cc: b29a uxth r2, r3
80057ce: 683b ldr r3, [r7, #0]
80057d0: 0a1b lsrs r3, r3, #8
80057d2: b29b uxth r3, r3
80057d4: 00db lsls r3, r3, #3
80057d6: b29b uxth r3, r3
80057d8: f403 63fc and.w r3, r3, #2016 ; 0x7e0
80057dc: b29b uxth r3, r3
80057de: 4313 orrs r3, r2
80057e0: b29a uxth r2, r3
80057e2: 683b ldr r3, [r7, #0]
80057e4: 08db lsrs r3, r3, #3
80057e6: b29b uxth r3, r3
80057e8: f003 031f and.w r3, r3, #31
80057ec: b29b uxth r3, r3
80057ee: 4313 orrs r3, r2
80057f0: b29b uxth r3, r3
80057f2: 800b strh r3, [r1, #0]
}
else
{ /* ARGB8888 format */
*(__IO uint32_t*) (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (4*(Ypos*BSP_LCD_GetXSize() + Xpos))) = RGB_Code;
}
}
80057f4: e015 b.n 8005822 <BSP_LCD_DrawPixel+0xb2>
*(__IO uint32_t*) (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (4*(Ypos*BSP_LCD_GetXSize() + Xpos))) = RGB_Code;
80057f6: 4b0d ldr r3, [pc, #52] ; (800582c <BSP_LCD_DrawPixel+0xbc>)
80057f8: 681b ldr r3, [r3, #0]
80057fa: 4a0d ldr r2, [pc, #52] ; (8005830 <BSP_LCD_DrawPixel+0xc0>)
80057fc: 2134 movs r1, #52 ; 0x34
80057fe: fb01 f303 mul.w r3, r1, r3
8005802: 4413 add r3, r2
8005804: 335c adds r3, #92 ; 0x5c
8005806: 681c ldr r4, [r3, #0]
8005808: 88bd ldrh r5, [r7, #4]
800580a: f7ff fba3 bl 8004f54 <BSP_LCD_GetXSize>
800580e: 4603 mov r3, r0
8005810: fb03 f205 mul.w r2, r3, r5
8005814: 88fb ldrh r3, [r7, #6]
8005816: 4413 add r3, r2
8005818: 009b lsls r3, r3, #2
800581a: 4423 add r3, r4
800581c: 461a mov r2, r3
800581e: 683b ldr r3, [r7, #0]
8005820: 6013 str r3, [r2, #0]
}
8005822: bf00 nop
8005824: 3708 adds r7, #8
8005826: 46bd mov sp, r7
8005828: bdb0 pop {r4, r5, r7, pc}
800582a: bf00 nop
800582c: 20020018 .word 0x20020018
8005830: 2006c054 .word 0x2006c054
8005834: fffff800 .word 0xfffff800
08005838 <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)
{
8005838: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
800583c: b086 sub sp, #24
800583e: af02 add r7, sp, #8
8005840: 4604 mov r4, r0
8005842: 4608 mov r0, r1
8005844: 4611 mov r1, r2
8005846: 461a mov r2, r3
8005848: 4623 mov r3, r4
800584a: 80fb strh r3, [r7, #6]
800584c: 4603 mov r3, r0
800584e: 80bb strh r3, [r7, #4]
8005850: 460b mov r3, r1
8005852: 807b strh r3, [r7, #2]
8005854: 4613 mov r3, r2
8005856: 803b strh r3, [r7, #0]
uint32_t x_address = 0;
8005858: 2300 movs r3, #0
800585a: 60fb str r3, [r7, #12]
/* Set the text color */
BSP_LCD_SetTextColor(DrawProp[ActiveLayer].TextColor);
800585c: 4b30 ldr r3, [pc, #192] ; (8005920 <BSP_LCD_FillRect+0xe8>)
800585e: 681a ldr r2, [r3, #0]
8005860: 4930 ldr r1, [pc, #192] ; (8005924 <BSP_LCD_FillRect+0xec>)
8005862: 4613 mov r3, r2
8005864: 005b lsls r3, r3, #1
8005866: 4413 add r3, r2
8005868: 009b lsls r3, r3, #2
800586a: 440b add r3, r1
800586c: 681b ldr r3, [r3, #0]
800586e: 4618 mov r0, r3
8005870: f7ff fc44 bl 80050fc <BSP_LCD_SetTextColor>
/* Get the rectangle start address */
if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565)
8005874: 4b2a ldr r3, [pc, #168] ; (8005920 <BSP_LCD_FillRect+0xe8>)
8005876: 681b ldr r3, [r3, #0]
8005878: 4a2b ldr r2, [pc, #172] ; (8005928 <BSP_LCD_FillRect+0xf0>)
800587a: 2134 movs r1, #52 ; 0x34
800587c: fb01 f303 mul.w r3, r1, r3
8005880: 4413 add r3, r2
8005882: 3348 adds r3, #72 ; 0x48
8005884: 681b ldr r3, [r3, #0]
8005886: 2b02 cmp r3, #2
8005888: d114 bne.n 80058b4 <BSP_LCD_FillRect+0x7c>
{ /* RGB565 format */
x_address = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 2*(BSP_LCD_GetXSize()*Ypos + Xpos);
800588a: 4b25 ldr r3, [pc, #148] ; (8005920 <BSP_LCD_FillRect+0xe8>)
800588c: 681b ldr r3, [r3, #0]
800588e: 4a26 ldr r2, [pc, #152] ; (8005928 <BSP_LCD_FillRect+0xf0>)
8005890: 2134 movs r1, #52 ; 0x34
8005892: fb01 f303 mul.w r3, r1, r3
8005896: 4413 add r3, r2
8005898: 335c adds r3, #92 ; 0x5c
800589a: 681c ldr r4, [r3, #0]
800589c: f7ff fb5a bl 8004f54 <BSP_LCD_GetXSize>
80058a0: 4602 mov r2, r0
80058a2: 88bb ldrh r3, [r7, #4]
80058a4: fb03 f202 mul.w r2, r3, r2
80058a8: 88fb ldrh r3, [r7, #6]
80058aa: 4413 add r3, r2
80058ac: 005b lsls r3, r3, #1
80058ae: 4423 add r3, r4
80058b0: 60fb str r3, [r7, #12]
80058b2: e013 b.n 80058dc <BSP_LCD_FillRect+0xa4>
}
else
{ /* ARGB8888 format */
x_address = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 4*(BSP_LCD_GetXSize()*Ypos + Xpos);
80058b4: 4b1a ldr r3, [pc, #104] ; (8005920 <BSP_LCD_FillRect+0xe8>)
80058b6: 681b ldr r3, [r3, #0]
80058b8: 4a1b ldr r2, [pc, #108] ; (8005928 <BSP_LCD_FillRect+0xf0>)
80058ba: 2134 movs r1, #52 ; 0x34
80058bc: fb01 f303 mul.w r3, r1, r3
80058c0: 4413 add r3, r2
80058c2: 335c adds r3, #92 ; 0x5c
80058c4: 681c ldr r4, [r3, #0]
80058c6: f7ff fb45 bl 8004f54 <BSP_LCD_GetXSize>
80058ca: 4602 mov r2, r0
80058cc: 88bb ldrh r3, [r7, #4]
80058ce: fb03 f202 mul.w r2, r3, r2
80058d2: 88fb ldrh r3, [r7, #6]
80058d4: 4413 add r3, r2
80058d6: 009b lsls r3, r3, #2
80058d8: 4423 add r3, r4
80058da: 60fb str r3, [r7, #12]
}
/* Fill the rectangle */
LL_FillBuffer(ActiveLayer, (uint32_t *)x_address, Width, Height, (BSP_LCD_GetXSize() - Width), DrawProp[ActiveLayer].TextColor);
80058dc: 4b10 ldr r3, [pc, #64] ; (8005920 <BSP_LCD_FillRect+0xe8>)
80058de: 681c ldr r4, [r3, #0]
80058e0: 68fd ldr r5, [r7, #12]
80058e2: 887e ldrh r6, [r7, #2]
80058e4: f8b7 8000 ldrh.w r8, [r7]
80058e8: f7ff fb34 bl 8004f54 <BSP_LCD_GetXSize>
80058ec: 4602 mov r2, r0
80058ee: 887b ldrh r3, [r7, #2]
80058f0: 1ad1 subs r1, r2, r3
80058f2: 4b0b ldr r3, [pc, #44] ; (8005920 <BSP_LCD_FillRect+0xe8>)
80058f4: 681a ldr r2, [r3, #0]
80058f6: 480b ldr r0, [pc, #44] ; (8005924 <BSP_LCD_FillRect+0xec>)
80058f8: 4613 mov r3, r2
80058fa: 005b lsls r3, r3, #1
80058fc: 4413 add r3, r2
80058fe: 009b lsls r3, r3, #2
8005900: 4403 add r3, r0
8005902: 681b ldr r3, [r3, #0]
8005904: 9301 str r3, [sp, #4]
8005906: 9100 str r1, [sp, #0]
8005908: 4643 mov r3, r8
800590a: 4632 mov r2, r6
800590c: 4629 mov r1, r5
800590e: 4620 mov r0, r4
8005910: f000 f964 bl 8005bdc <LL_FillBuffer>
}
8005914: bf00 nop
8005916: 3710 adds r7, #16
8005918: 46bd mov sp, r7
800591a: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
800591e: bf00 nop
8005920: 20020018 .word 0x20020018
8005924: 2006b924 .word 0x2006b924
8005928: 2006c054 .word 0x2006c054
0800592c <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)
{
800592c: b580 push {r7, lr}
800592e: b086 sub sp, #24
8005930: af00 add r7, sp, #0
8005932: 4603 mov r3, r0
8005934: 80fb strh r3, [r7, #6]
8005936: 460b mov r3, r1
8005938: 80bb strh r3, [r7, #4]
800593a: 4613 mov r3, r2
800593c: 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);
800593e: 887b ldrh r3, [r7, #2]
8005940: 005b lsls r3, r3, #1
8005942: f1c3 0303 rsb r3, r3, #3
8005946: 617b str r3, [r7, #20]
current_x = 0;
8005948: 2300 movs r3, #0
800594a: 613b str r3, [r7, #16]
current_y = Radius;
800594c: 887b ldrh r3, [r7, #2]
800594e: 60fb str r3, [r7, #12]
BSP_LCD_SetTextColor(DrawProp[ActiveLayer].TextColor);
8005950: 4b44 ldr r3, [pc, #272] ; (8005a64 <BSP_LCD_FillCircle+0x138>)
8005952: 681a ldr r2, [r3, #0]
8005954: 4944 ldr r1, [pc, #272] ; (8005a68 <BSP_LCD_FillCircle+0x13c>)
8005956: 4613 mov r3, r2
8005958: 005b lsls r3, r3, #1
800595a: 4413 add r3, r2
800595c: 009b lsls r3, r3, #2
800595e: 440b add r3, r1
8005960: 681b ldr r3, [r3, #0]
8005962: 4618 mov r0, r3
8005964: f7ff fbca bl 80050fc <BSP_LCD_SetTextColor>
while (current_x <= current_y)
8005968: e061 b.n 8005a2e <BSP_LCD_FillCircle+0x102>
{
if(current_y > 0)
800596a: 68fb ldr r3, [r7, #12]
800596c: 2b00 cmp r3, #0
800596e: d021 beq.n 80059b4 <BSP_LCD_FillCircle+0x88>
{
BSP_LCD_DrawHLine(Xpos - current_y, Ypos + current_x, 2*current_y);
8005970: 68fb ldr r3, [r7, #12]
8005972: b29b uxth r3, r3
8005974: 88fa ldrh r2, [r7, #6]
8005976: 1ad3 subs r3, r2, r3
8005978: b298 uxth r0, r3
800597a: 693b ldr r3, [r7, #16]
800597c: b29a uxth r2, r3
800597e: 88bb ldrh r3, [r7, #4]
8005980: 4413 add r3, r2
8005982: b299 uxth r1, r3
8005984: 68fb ldr r3, [r7, #12]
8005986: b29b uxth r3, r3
8005988: 005b lsls r3, r3, #1
800598a: b29b uxth r3, r3
800598c: 461a mov r2, r3
800598e: f7ff fd0b bl 80053a8 <BSP_LCD_DrawHLine>
BSP_LCD_DrawHLine(Xpos - current_y, Ypos - current_x, 2*current_y);
8005992: 68fb ldr r3, [r7, #12]
8005994: b29b uxth r3, r3
8005996: 88fa ldrh r2, [r7, #6]
8005998: 1ad3 subs r3, r2, r3
800599a: b298 uxth r0, r3
800599c: 693b ldr r3, [r7, #16]
800599e: b29b uxth r3, r3
80059a0: 88ba ldrh r2, [r7, #4]
80059a2: 1ad3 subs r3, r2, r3
80059a4: b299 uxth r1, r3
80059a6: 68fb ldr r3, [r7, #12]
80059a8: b29b uxth r3, r3
80059aa: 005b lsls r3, r3, #1
80059ac: b29b uxth r3, r3
80059ae: 461a mov r2, r3
80059b0: f7ff fcfa bl 80053a8 <BSP_LCD_DrawHLine>
}
if(current_x > 0)
80059b4: 693b ldr r3, [r7, #16]
80059b6: 2b00 cmp r3, #0
80059b8: d021 beq.n 80059fe <BSP_LCD_FillCircle+0xd2>
{
BSP_LCD_DrawHLine(Xpos - current_x, Ypos - current_y, 2*current_x);
80059ba: 693b ldr r3, [r7, #16]
80059bc: b29b uxth r3, r3
80059be: 88fa ldrh r2, [r7, #6]
80059c0: 1ad3 subs r3, r2, r3
80059c2: b298 uxth r0, r3
80059c4: 68fb ldr r3, [r7, #12]
80059c6: b29b uxth r3, r3
80059c8: 88ba ldrh r2, [r7, #4]
80059ca: 1ad3 subs r3, r2, r3
80059cc: b299 uxth r1, r3
80059ce: 693b ldr r3, [r7, #16]
80059d0: b29b uxth r3, r3
80059d2: 005b lsls r3, r3, #1
80059d4: b29b uxth r3, r3
80059d6: 461a mov r2, r3
80059d8: f7ff fce6 bl 80053a8 <BSP_LCD_DrawHLine>
BSP_LCD_DrawHLine(Xpos - current_x, Ypos + current_y, 2*current_x);
80059dc: 693b ldr r3, [r7, #16]
80059de: b29b uxth r3, r3
80059e0: 88fa ldrh r2, [r7, #6]
80059e2: 1ad3 subs r3, r2, r3
80059e4: b298 uxth r0, r3
80059e6: 68fb ldr r3, [r7, #12]
80059e8: b29a uxth r2, r3
80059ea: 88bb ldrh r3, [r7, #4]
80059ec: 4413 add r3, r2
80059ee: b299 uxth r1, r3
80059f0: 693b ldr r3, [r7, #16]
80059f2: b29b uxth r3, r3
80059f4: 005b lsls r3, r3, #1
80059f6: b29b uxth r3, r3
80059f8: 461a mov r2, r3
80059fa: f7ff fcd5 bl 80053a8 <BSP_LCD_DrawHLine>
}
if (decision < 0)
80059fe: 697b ldr r3, [r7, #20]
8005a00: 2b00 cmp r3, #0
8005a02: da06 bge.n 8005a12 <BSP_LCD_FillCircle+0xe6>
{
decision += (current_x << 2) + 6;
8005a04: 693b ldr r3, [r7, #16]
8005a06: 009a lsls r2, r3, #2
8005a08: 697b ldr r3, [r7, #20]
8005a0a: 4413 add r3, r2
8005a0c: 3306 adds r3, #6
8005a0e: 617b str r3, [r7, #20]
8005a10: e00a b.n 8005a28 <BSP_LCD_FillCircle+0xfc>
}
else
{
decision += ((current_x - current_y) << 2) + 10;
8005a12: 693a ldr r2, [r7, #16]
8005a14: 68fb ldr r3, [r7, #12]
8005a16: 1ad3 subs r3, r2, r3
8005a18: 009a lsls r2, r3, #2
8005a1a: 697b ldr r3, [r7, #20]
8005a1c: 4413 add r3, r2
8005a1e: 330a adds r3, #10
8005a20: 617b str r3, [r7, #20]
current_y--;
8005a22: 68fb ldr r3, [r7, #12]
8005a24: 3b01 subs r3, #1
8005a26: 60fb str r3, [r7, #12]
}
current_x++;
8005a28: 693b ldr r3, [r7, #16]
8005a2a: 3301 adds r3, #1
8005a2c: 613b str r3, [r7, #16]
while (current_x <= current_y)
8005a2e: 693a ldr r2, [r7, #16]
8005a30: 68fb ldr r3, [r7, #12]
8005a32: 429a cmp r2, r3
8005a34: d999 bls.n 800596a <BSP_LCD_FillCircle+0x3e>
}
BSP_LCD_SetTextColor(DrawProp[ActiveLayer].TextColor);
8005a36: 4b0b ldr r3, [pc, #44] ; (8005a64 <BSP_LCD_FillCircle+0x138>)
8005a38: 681a ldr r2, [r3, #0]
8005a3a: 490b ldr r1, [pc, #44] ; (8005a68 <BSP_LCD_FillCircle+0x13c>)
8005a3c: 4613 mov r3, r2
8005a3e: 005b lsls r3, r3, #1
8005a40: 4413 add r3, r2
8005a42: 009b lsls r3, r3, #2
8005a44: 440b add r3, r1
8005a46: 681b ldr r3, [r3, #0]
8005a48: 4618 mov r0, r3
8005a4a: f7ff fb57 bl 80050fc <BSP_LCD_SetTextColor>
BSP_LCD_DrawCircle(Xpos, Ypos, Radius);
8005a4e: 887a ldrh r2, [r7, #2]
8005a50: 88b9 ldrh r1, [r7, #4]
8005a52: 88fb ldrh r3, [r7, #6]
8005a54: 4618 mov r0, r3
8005a56: f7ff fd9b bl 8005590 <BSP_LCD_DrawCircle>
}
8005a5a: bf00 nop
8005a5c: 3718 adds r7, #24
8005a5e: 46bd mov sp, r7
8005a60: bd80 pop {r7, pc}
8005a62: bf00 nop
8005a64: 20020018 .word 0x20020018
8005a68: 2006b924 .word 0x2006b924
08005a6c <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)
{
8005a6c: b580 push {r7, lr}
8005a6e: b088 sub sp, #32
8005a70: af00 add r7, sp, #0
8005a72: 4603 mov r3, r0
8005a74: 603a str r2, [r7, #0]
8005a76: 80fb strh r3, [r7, #6]
8005a78: 460b mov r3, r1
8005a7a: 80bb strh r3, [r7, #4]
uint32_t i = 0, j = 0;
8005a7c: 2300 movs r3, #0
8005a7e: 61fb str r3, [r7, #28]
8005a80: 2300 movs r3, #0
8005a82: 61bb str r3, [r7, #24]
uint8_t offset;
uint8_t *pchar;
uint32_t line;
//uint16_t b;
height = DrawProp[ActiveLayer].pFont->Height;
8005a84: 4b53 ldr r3, [pc, #332] ; (8005bd4 <DrawChar+0x168>)
8005a86: 681a ldr r2, [r3, #0]
8005a88: 4953 ldr r1, [pc, #332] ; (8005bd8 <DrawChar+0x16c>)
8005a8a: 4613 mov r3, r2
8005a8c: 005b lsls r3, r3, #1
8005a8e: 4413 add r3, r2
8005a90: 009b lsls r3, r3, #2
8005a92: 440b add r3, r1
8005a94: 3308 adds r3, #8
8005a96: 681b ldr r3, [r3, #0]
8005a98: 88db ldrh r3, [r3, #6]
8005a9a: 827b strh r3, [r7, #18]
width = DrawProp[ActiveLayer].pFont->Width;
8005a9c: 4b4d ldr r3, [pc, #308] ; (8005bd4 <DrawChar+0x168>)
8005a9e: 681a ldr r2, [r3, #0]
8005aa0: 494d ldr r1, [pc, #308] ; (8005bd8 <DrawChar+0x16c>)
8005aa2: 4613 mov r3, r2
8005aa4: 005b lsls r3, r3, #1
8005aa6: 4413 add r3, r2
8005aa8: 009b lsls r3, r3, #2
8005aaa: 440b add r3, r1
8005aac: 3308 adds r3, #8
8005aae: 681b ldr r3, [r3, #0]
8005ab0: 889b ldrh r3, [r3, #4]
8005ab2: 823b strh r3, [r7, #16]
offset = 8 *((width + 7)/8) - width ;
8005ab4: 8a3b ldrh r3, [r7, #16]
8005ab6: 3307 adds r3, #7
8005ab8: 2b00 cmp r3, #0
8005aba: da00 bge.n 8005abe <DrawChar+0x52>
8005abc: 3307 adds r3, #7
8005abe: 10db asrs r3, r3, #3
8005ac0: b2db uxtb r3, r3
8005ac2: 00db lsls r3, r3, #3
8005ac4: b2da uxtb r2, r3
8005ac6: 8a3b ldrh r3, [r7, #16]
8005ac8: b2db uxtb r3, r3
8005aca: 1ad3 subs r3, r2, r3
8005acc: 73fb strb r3, [r7, #15]
for(i = 0; i < height; i++)
8005ace: 2300 movs r3, #0
8005ad0: 61fb str r3, [r7, #28]
8005ad2: e076 b.n 8005bc2 <DrawChar+0x156>
{
pchar = ((uint8_t *)c + (width + 7)/8 * i);
8005ad4: 8a3b ldrh r3, [r7, #16]
8005ad6: 3307 adds r3, #7
8005ad8: 2b00 cmp r3, #0
8005ada: da00 bge.n 8005ade <DrawChar+0x72>
8005adc: 3307 adds r3, #7
8005ade: 10db asrs r3, r3, #3
8005ae0: 461a mov r2, r3
8005ae2: 69fb ldr r3, [r7, #28]
8005ae4: fb03 f302 mul.w r3, r3, r2
8005ae8: 683a ldr r2, [r7, #0]
8005aea: 4413 add r3, r2
8005aec: 60bb str r3, [r7, #8]
switch(((width + 7)/8))
8005aee: 8a3b ldrh r3, [r7, #16]
8005af0: 3307 adds r3, #7
8005af2: 2b00 cmp r3, #0
8005af4: da00 bge.n 8005af8 <DrawChar+0x8c>
8005af6: 3307 adds r3, #7
8005af8: 10db asrs r3, r3, #3
8005afa: 2b01 cmp r3, #1
8005afc: d002 beq.n 8005b04 <DrawChar+0x98>
8005afe: 2b02 cmp r3, #2
8005b00: d004 beq.n 8005b0c <DrawChar+0xa0>
8005b02: e00c b.n 8005b1e <DrawChar+0xb2>
{
case 1:
line = pchar[0];
8005b04: 68bb ldr r3, [r7, #8]
8005b06: 781b ldrb r3, [r3, #0]
8005b08: 617b str r3, [r7, #20]
break;
8005b0a: e016 b.n 8005b3a <DrawChar+0xce>
case 2:
line = (pchar[0]<< 8) | pchar[1];
8005b0c: 68bb ldr r3, [r7, #8]
8005b0e: 781b ldrb r3, [r3, #0]
8005b10: 021b lsls r3, r3, #8
8005b12: 68ba ldr r2, [r7, #8]
8005b14: 3201 adds r2, #1
8005b16: 7812 ldrb r2, [r2, #0]
8005b18: 4313 orrs r3, r2
8005b1a: 617b str r3, [r7, #20]
break;
8005b1c: e00d b.n 8005b3a <DrawChar+0xce>
case 3:
default:
line = (pchar[0]<< 16) | (pchar[1]<< 8) | pchar[2];
8005b1e: 68bb ldr r3, [r7, #8]
8005b20: 781b ldrb r3, [r3, #0]
8005b22: 041a lsls r2, r3, #16
8005b24: 68bb ldr r3, [r7, #8]
8005b26: 3301 adds r3, #1
8005b28: 781b ldrb r3, [r3, #0]
8005b2a: 021b lsls r3, r3, #8
8005b2c: 4313 orrs r3, r2
8005b2e: 68ba ldr r2, [r7, #8]
8005b30: 3202 adds r2, #2
8005b32: 7812 ldrb r2, [r2, #0]
8005b34: 4313 orrs r3, r2
8005b36: 617b str r3, [r7, #20]
break;
8005b38: bf00 nop
}
for (j = 0; j < width; j++)
8005b3a: 2300 movs r3, #0
8005b3c: 61bb str r3, [r7, #24]
8005b3e: e036 b.n 8005bae <DrawChar+0x142>
{
if(line & (1 << (width- j + offset- 1)))
8005b40: 8a3a ldrh r2, [r7, #16]
8005b42: 69bb ldr r3, [r7, #24]
8005b44: 1ad2 subs r2, r2, r3
8005b46: 7bfb ldrb r3, [r7, #15]
8005b48: 4413 add r3, r2
8005b4a: 3b01 subs r3, #1
8005b4c: 2201 movs r2, #1
8005b4e: fa02 f303 lsl.w r3, r2, r3
8005b52: 461a mov r2, r3
8005b54: 697b ldr r3, [r7, #20]
8005b56: 4013 ands r3, r2
8005b58: 2b00 cmp r3, #0
8005b5a: d012 beq.n 8005b82 <DrawChar+0x116>
{
BSP_LCD_DrawPixel((Xpos + j), Ypos, DrawProp[ActiveLayer].TextColor);
8005b5c: 69bb ldr r3, [r7, #24]
8005b5e: b29a uxth r2, r3
8005b60: 88fb ldrh r3, [r7, #6]
8005b62: 4413 add r3, r2
8005b64: b298 uxth r0, r3
8005b66: 4b1b ldr r3, [pc, #108] ; (8005bd4 <DrawChar+0x168>)
8005b68: 681a ldr r2, [r3, #0]
8005b6a: 491b ldr r1, [pc, #108] ; (8005bd8 <DrawChar+0x16c>)
8005b6c: 4613 mov r3, r2
8005b6e: 005b lsls r3, r3, #1
8005b70: 4413 add r3, r2
8005b72: 009b lsls r3, r3, #2
8005b74: 440b add r3, r1
8005b76: 681a ldr r2, [r3, #0]
8005b78: 88bb ldrh r3, [r7, #4]
8005b7a: 4619 mov r1, r3
8005b7c: f7ff fdf8 bl 8005770 <BSP_LCD_DrawPixel>
8005b80: e012 b.n 8005ba8 <DrawChar+0x13c>
}
else
{
BSP_LCD_DrawPixel((Xpos + j), Ypos, DrawProp[ActiveLayer].BackColor);
8005b82: 69bb ldr r3, [r7, #24]
8005b84: b29a uxth r2, r3
8005b86: 88fb ldrh r3, [r7, #6]
8005b88: 4413 add r3, r2
8005b8a: b298 uxth r0, r3
8005b8c: 4b11 ldr r3, [pc, #68] ; (8005bd4 <DrawChar+0x168>)
8005b8e: 681a ldr r2, [r3, #0]
8005b90: 4911 ldr r1, [pc, #68] ; (8005bd8 <DrawChar+0x16c>)
8005b92: 4613 mov r3, r2
8005b94: 005b lsls r3, r3, #1
8005b96: 4413 add r3, r2
8005b98: 009b lsls r3, r3, #2
8005b9a: 440b add r3, r1
8005b9c: 3304 adds r3, #4
8005b9e: 681a ldr r2, [r3, #0]
8005ba0: 88bb ldrh r3, [r7, #4]
8005ba2: 4619 mov r1, r3
8005ba4: f7ff fde4 bl 8005770 <BSP_LCD_DrawPixel>
for (j = 0; j < width; j++)
8005ba8: 69bb ldr r3, [r7, #24]
8005baa: 3301 adds r3, #1
8005bac: 61bb str r3, [r7, #24]
8005bae: 8a3a ldrh r2, [r7, #16]
8005bb0: 69bb ldr r3, [r7, #24]
8005bb2: 429a cmp r2, r3
8005bb4: d8c4 bhi.n 8005b40 <DrawChar+0xd4>
}
}
Ypos++;
8005bb6: 88bb ldrh r3, [r7, #4]
8005bb8: 3301 adds r3, #1
8005bba: 80bb strh r3, [r7, #4]
for(i = 0; i < height; i++)
8005bbc: 69fb ldr r3, [r7, #28]
8005bbe: 3301 adds r3, #1
8005bc0: 61fb str r3, [r7, #28]
8005bc2: 8a7a ldrh r2, [r7, #18]
8005bc4: 69fb ldr r3, [r7, #28]
8005bc6: 429a cmp r2, r3
8005bc8: d884 bhi.n 8005ad4 <DrawChar+0x68>
}
}
8005bca: bf00 nop
8005bcc: 3720 adds r7, #32
8005bce: 46bd mov sp, r7
8005bd0: bd80 pop {r7, pc}
8005bd2: bf00 nop
8005bd4: 20020018 .word 0x20020018
8005bd8: 2006b924 .word 0x2006b924
08005bdc <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)
{
8005bdc: b580 push {r7, lr}
8005bde: b086 sub sp, #24
8005be0: af02 add r7, sp, #8
8005be2: 60f8 str r0, [r7, #12]
8005be4: 60b9 str r1, [r7, #8]
8005be6: 607a str r2, [r7, #4]
8005be8: 603b str r3, [r7, #0]
/* Register to memory mode with ARGB8888 as color Mode */
hDma2dHandler.Init.Mode = DMA2D_R2M;
8005bea: 4b1e ldr r3, [pc, #120] ; (8005c64 <LL_FillBuffer+0x88>)
8005bec: f44f 3240 mov.w r2, #196608 ; 0x30000
8005bf0: 605a str r2, [r3, #4]
if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565)
8005bf2: 4b1d ldr r3, [pc, #116] ; (8005c68 <LL_FillBuffer+0x8c>)
8005bf4: 681b ldr r3, [r3, #0]
8005bf6: 4a1d ldr r2, [pc, #116] ; (8005c6c <LL_FillBuffer+0x90>)
8005bf8: 2134 movs r1, #52 ; 0x34
8005bfa: fb01 f303 mul.w r3, r1, r3
8005bfe: 4413 add r3, r2
8005c00: 3348 adds r3, #72 ; 0x48
8005c02: 681b ldr r3, [r3, #0]
8005c04: 2b02 cmp r3, #2
8005c06: d103 bne.n 8005c10 <LL_FillBuffer+0x34>
hDma2dHandler.Init.ColorMode = DMA2D_RGB565;
8005c08: 4b16 ldr r3, [pc, #88] ; (8005c64 <LL_FillBuffer+0x88>)
8005c0a: 2202 movs r2, #2
8005c0c: 609a str r2, [r3, #8]
8005c0e: e002 b.n 8005c16 <LL_FillBuffer+0x3a>
else hDma2dHandler.Init.ColorMode = DMA2D_ARGB8888;
8005c10: 4b14 ldr r3, [pc, #80] ; (8005c64 <LL_FillBuffer+0x88>)
8005c12: 2200 movs r2, #0
8005c14: 609a str r2, [r3, #8]
hDma2dHandler.Init.OutputOffset = OffLine;
8005c16: 4a13 ldr r2, [pc, #76] ; (8005c64 <LL_FillBuffer+0x88>)
8005c18: 69bb ldr r3, [r7, #24]
8005c1a: 60d3 str r3, [r2, #12]
hDma2dHandler.Instance = DMA2D;
8005c1c: 4b11 ldr r3, [pc, #68] ; (8005c64 <LL_FillBuffer+0x88>)
8005c1e: 4a14 ldr r2, [pc, #80] ; (8005c70 <LL_FillBuffer+0x94>)
8005c20: 601a str r2, [r3, #0]
if(HAL_DMA2D_Init(&hDma2dHandler) == HAL_OK)
8005c22: 4810 ldr r0, [pc, #64] ; (8005c64 <LL_FillBuffer+0x88>)
8005c24: f00c fb06 bl 8012234 <HAL_DMA2D_Init>
8005c28: 4603 mov r3, r0
8005c2a: 2b00 cmp r3, #0
8005c2c: d115 bne.n 8005c5a <LL_FillBuffer+0x7e>
{
if(HAL_DMA2D_ConfigLayer(&hDma2dHandler, LayerIndex) == HAL_OK)
8005c2e: 68f9 ldr r1, [r7, #12]
8005c30: 480c ldr r0, [pc, #48] ; (8005c64 <LL_FillBuffer+0x88>)
8005c32: f00c fc6d bl 8012510 <HAL_DMA2D_ConfigLayer>
8005c36: 4603 mov r3, r0
8005c38: 2b00 cmp r3, #0
8005c3a: d10e bne.n 8005c5a <LL_FillBuffer+0x7e>
{
if (HAL_DMA2D_Start(&hDma2dHandler, ColorIndex, (uint32_t)pDst, xSize, ySize) == HAL_OK)
8005c3c: 68ba ldr r2, [r7, #8]
8005c3e: 683b ldr r3, [r7, #0]
8005c40: 9300 str r3, [sp, #0]
8005c42: 687b ldr r3, [r7, #4]
8005c44: 69f9 ldr r1, [r7, #28]
8005c46: 4807 ldr r0, [pc, #28] ; (8005c64 <LL_FillBuffer+0x88>)
8005c48: f00c fb4e bl 80122e8 <HAL_DMA2D_Start>
8005c4c: 4603 mov r3, r0
8005c4e: 2b00 cmp r3, #0
8005c50: d103 bne.n 8005c5a <LL_FillBuffer+0x7e>
{
HAL_DMA2D_PollForTransfer(&hDma2dHandler, 30);
8005c52: 211e movs r1, #30
8005c54: 4803 ldr r0, [pc, #12] ; (8005c64 <LL_FillBuffer+0x88>)
8005c56: f00c fb72 bl 801233e <HAL_DMA2D_PollForTransfer>
}
}
}
}
8005c5a: bf00 nop
8005c5c: 3710 adds r7, #16
8005c5e: 46bd mov sp, r7
8005c60: bd80 pop {r7, pc}
8005c62: bf00 nop
8005c64: 2006b8cc .word 0x2006b8cc
8005c68: 20020018 .word 0x20020018
8005c6c: 2006c054 .word 0x2006c054
8005c70: 4002b000 .word 0x4002b000
08005c74 <DrawImage>:
}
}
void DrawImage(const GUI_BITMAP * pBM, uint16_t x0, uint16_t y0)
{
8005c74: b580 push {r7, lr}
8005c76: b088 sub sp, #32
8005c78: af02 add r7, sp, #8
8005c7a: 6078 str r0, [r7, #4]
8005c7c: 460b mov r3, r1
8005c7e: 807b strh r3, [r7, #2]
8005c80: 4613 mov r3, r2
8005c82: 803b strh r3, [r7, #0]
//HAL_StatusTypeDef hal_status = HAL_OK;
uint32_t Xaddress = 0;
8005c84: 2300 movs r3, #0
8005c86: 617b str r3, [r7, #20]
uint8_t * p;
uint16_t xSize = pBM->XSize;
8005c88: 687b ldr r3, [r7, #4]
8005c8a: 881b ldrh r3, [r3, #0]
8005c8c: 827b strh r3, [r7, #18]
uint16_t ySize = pBM->YSize;
8005c8e: 687b ldr r3, [r7, #4]
8005c90: 885b ldrh r3, [r3, #2]
8005c92: 823b strh r3, [r7, #16]
//uint16_t BytesPerLine = pBM->BytesPerLine;
p = (uint8_t *) pBM->pData;
8005c94: 687b ldr r3, [r7, #4]
8005c96: 689b ldr r3, [r3, #8]
8005c98: 60fb str r3, [r7, #12]
Xaddress = hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + ((320 * y0 + x0) << 1);
8005c9a: 4b39 ldr r3, [pc, #228] ; (8005d80 <DrawImage+0x10c>)
8005c9c: 681b ldr r3, [r3, #0]
8005c9e: 4a39 ldr r2, [pc, #228] ; (8005d84 <DrawImage+0x110>)
8005ca0: 2134 movs r1, #52 ; 0x34
8005ca2: fb01 f303 mul.w r3, r1, r3
8005ca6: 4413 add r3, r2
8005ca8: 335c adds r3, #92 ; 0x5c
8005caa: 6819 ldr r1, [r3, #0]
8005cac: 883a ldrh r2, [r7, #0]
8005cae: 4613 mov r3, r2
8005cb0: 009b lsls r3, r3, #2
8005cb2: 4413 add r3, r2
8005cb4: 019b lsls r3, r3, #6
8005cb6: 461a mov r2, r3
8005cb8: 887b ldrh r3, [r7, #2]
8005cba: 4413 add r3, r2
8005cbc: 005b lsls r3, r3, #1
8005cbe: 440b add r3, r1
8005cc0: 617b str r3, [r7, #20]
hDma2dHandler.Init.Mode = DMA2D_M2M;
8005cc2: 4b31 ldr r3, [pc, #196] ; (8005d88 <DrawImage+0x114>)
8005cc4: 2200 movs r2, #0
8005cc6: 605a str r2, [r3, #4]
hDma2dHandler.Init.ColorMode = DMA2D_RGB565;
8005cc8: 4b2f ldr r3, [pc, #188] ; (8005d88 <DrawImage+0x114>)
8005cca: 2202 movs r2, #2
8005ccc: 609a str r2, [r3, #8]
hDma2dHandler.Init.OutputOffset = 320 - xSize;
8005cce: 8a7b ldrh r3, [r7, #18]
8005cd0: f5c3 73a0 rsb r3, r3, #320 ; 0x140
8005cd4: 461a mov r2, r3
8005cd6: 4b2c ldr r3, [pc, #176] ; (8005d88 <DrawImage+0x114>)
8005cd8: 60da str r2, [r3, #12]
/* DMA2D Callbacks Configuration */
hDma2dHandler.XferCpltCallback = TransferComplete;
8005cda: 4b2b ldr r3, [pc, #172] ; (8005d88 <DrawImage+0x114>)
8005cdc: 4a2b ldr r2, [pc, #172] ; (8005d8c <DrawImage+0x118>)
8005cde: 619a str r2, [r3, #24]
hDma2dHandler.XferErrorCallback = TransferError;
8005ce0: 4b29 ldr r3, [pc, #164] ; (8005d88 <DrawImage+0x114>)
8005ce2: 4a2b ldr r2, [pc, #172] ; (8005d90 <DrawImage+0x11c>)
8005ce4: 61da str r2, [r3, #28]
/* Foreground layer Configuration : layer 1 */
hDma2dHandler.LayerCfg[ActiveLayer].AlphaMode = DMA2D_NO_MODIF_ALPHA;
8005ce6: 4b26 ldr r3, [pc, #152] ; (8005d80 <DrawImage+0x10c>)
8005ce8: 681a ldr r2, [r3, #0]
8005cea: 4927 ldr r1, [pc, #156] ; (8005d88 <DrawImage+0x114>)
8005cec: 4613 mov r3, r2
8005cee: 005b lsls r3, r3, #1
8005cf0: 4413 add r3, r2
8005cf2: 00db lsls r3, r3, #3
8005cf4: 440b add r3, r1
8005cf6: 3328 adds r3, #40 ; 0x28
8005cf8: 2200 movs r2, #0
8005cfa: 601a str r2, [r3, #0]
hDma2dHandler.LayerCfg[ActiveLayer].InputAlpha = 255; /* Alpha fully opaque */
8005cfc: 4b20 ldr r3, [pc, #128] ; (8005d80 <DrawImage+0x10c>)
8005cfe: 681a ldr r2, [r3, #0]
8005d00: 4921 ldr r1, [pc, #132] ; (8005d88 <DrawImage+0x114>)
8005d02: 4613 mov r3, r2
8005d04: 005b lsls r3, r3, #1
8005d06: 4413 add r3, r2
8005d08: 00db lsls r3, r3, #3
8005d0a: 440b add r3, r1
8005d0c: 332c adds r3, #44 ; 0x2c
8005d0e: 22ff movs r2, #255 ; 0xff
8005d10: 601a str r2, [r3, #0]
hDma2dHandler.LayerCfg[ActiveLayer].InputColorMode = DMA2D_INPUT_RGB565; /* Layer 1 input format is ARGB8888 (32 bpp) */
8005d12: 4b1b ldr r3, [pc, #108] ; (8005d80 <DrawImage+0x10c>)
8005d14: 681a ldr r2, [r3, #0]
8005d16: 491c ldr r1, [pc, #112] ; (8005d88 <DrawImage+0x114>)
8005d18: 4613 mov r3, r2
8005d1a: 005b lsls r3, r3, #1
8005d1c: 4413 add r3, r2
8005d1e: 00db lsls r3, r3, #3
8005d20: 440b add r3, r1
8005d22: 3324 adds r3, #36 ; 0x24
8005d24: 2202 movs r2, #2
8005d26: 601a str r2, [r3, #0]
hDma2dHandler.LayerCfg[ActiveLayer].InputOffset = 0; /* No offset in input */
8005d28: 4b15 ldr r3, [pc, #84] ; (8005d80 <DrawImage+0x10c>)
8005d2a: 681a ldr r2, [r3, #0]
8005d2c: 4916 ldr r1, [pc, #88] ; (8005d88 <DrawImage+0x114>)
8005d2e: 4613 mov r3, r2
8005d30: 005b lsls r3, r3, #1
8005d32: 4413 add r3, r2
8005d34: 00db lsls r3, r3, #3
8005d36: 440b add r3, r1
8005d38: 3320 adds r3, #32
8005d3a: 2200 movs r2, #0
8005d3c: 601a str r2, [r3, #0]
hDma2dHandler.Instance = DMA2D;
8005d3e: 4b12 ldr r3, [pc, #72] ; (8005d88 <DrawImage+0x114>)
8005d40: 4a14 ldr r2, [pc, #80] ; (8005d94 <DrawImage+0x120>)
8005d42: 601a str r2, [r3, #0]
/* DMA2D Initialization */
HAL_DMA2D_Init(&hDma2dHandler);
8005d44: 4810 ldr r0, [pc, #64] ; (8005d88 <DrawImage+0x114>)
8005d46: f00c fa75 bl 8012234 <HAL_DMA2D_Init>
HAL_DMA2D_ConfigLayer(&hDma2dHandler, ActiveLayer);
8005d4a: 4b0d ldr r3, [pc, #52] ; (8005d80 <DrawImage+0x10c>)
8005d4c: 681b ldr r3, [r3, #0]
8005d4e: 4619 mov r1, r3
8005d50: 480d ldr r0, [pc, #52] ; (8005d88 <DrawImage+0x114>)
8005d52: f00c fbdd bl 8012510 <HAL_DMA2D_ConfigLayer>
DMA2D_TransferOk = 0;
8005d56: 4b10 ldr r3, [pc, #64] ; (8005d98 <DrawImage+0x124>)
8005d58: 2200 movs r2, #0
8005d5a: 601a str r2, [r3, #0]
HAL_DMA2D_Start(&hDma2dHandler, (uint32_t) p, Xaddress, xSize, ySize);
8005d5c: 68f9 ldr r1, [r7, #12]
8005d5e: 8a7a ldrh r2, [r7, #18]
8005d60: 8a3b ldrh r3, [r7, #16]
8005d62: 9300 str r3, [sp, #0]
8005d64: 4613 mov r3, r2
8005d66: 697a ldr r2, [r7, #20]
8005d68: 4807 ldr r0, [pc, #28] ; (8005d88 <DrawImage+0x114>)
8005d6a: f00c fabd bl 80122e8 <HAL_DMA2D_Start>
HAL_DMA2D_PollForTransfer(&hDma2dHandler, 30);
8005d6e: 211e movs r1, #30
8005d70: 4805 ldr r0, [pc, #20] ; (8005d88 <DrawImage+0x114>)
8005d72: f00c fae4 bl 801233e <HAL_DMA2D_PollForTransfer>
//SCB_CleanInvalidateDCache();
}
8005d76: bf00 nop
8005d78: 3718 adds r7, #24
8005d7a: 46bd mov sp, r7
8005d7c: bd80 pop {r7, pc}
8005d7e: bf00 nop
8005d80: 20020018 .word 0x20020018
8005d84: 2006c054 .word 0x2006c054
8005d88: 2006b8cc .word 0x2006b8cc
8005d8c: 08005d9d .word 0x08005d9d
8005d90: 08005dbd .word 0x08005dbd
8005d94: 4002b000 .word 0x4002b000
8005d98: 2002001c .word 0x2002001c
08005d9c <TransferComplete>:
static void TransferComplete(DMA2D_HandleTypeDef *hdma2d)
{
8005d9c: b480 push {r7}
8005d9e: b083 sub sp, #12
8005da0: af00 add r7, sp, #0
8005da2: 6078 str r0, [r7, #4]
DMA2D_TransferOk = 1;
8005da4: 4b04 ldr r3, [pc, #16] ; (8005db8 <TransferComplete+0x1c>)
8005da6: 2201 movs r2, #1
8005da8: 601a str r2, [r3, #0]
}
8005daa: bf00 nop
8005dac: 370c adds r7, #12
8005dae: 46bd mov sp, r7
8005db0: f85d 7b04 ldr.w r7, [sp], #4
8005db4: 4770 bx lr
8005db6: bf00 nop
8005db8: 2002001c .word 0x2002001c
08005dbc <TransferError>:
static void TransferError(DMA2D_HandleTypeDef *hdma2d)
{
8005dbc: b480 push {r7}
8005dbe: b083 sub sp, #12
8005dc0: af00 add r7, sp, #0
8005dc2: 6078 str r0, [r7, #4]
}
8005dc4: bf00 nop
8005dc6: 370c adds r7, #12
8005dc8: 46bd mov sp, r7
8005dca: f85d 7b04 ldr.w r7, [sp], #4
8005dce: 4770 bx lr
08005dd0 <LCD_Refresh>:
void LCD_Refresh(void)
{
8005dd0: b580 push {r7, lr}
8005dd2: af00 add r7, sp, #0
ActiveLayer ^= 1;
8005dd4: 4b0e ldr r3, [pc, #56] ; (8005e10 <LCD_Refresh+0x40>)
8005dd6: 681b ldr r3, [r3, #0]
8005dd8: f083 0301 eor.w r3, r3, #1
8005ddc: 4a0c ldr r2, [pc, #48] ; (8005e10 <LCD_Refresh+0x40>)
8005dde: 6013 str r3, [r2, #0]
RenderingLayer ^= 1;
8005de0: 4b0c ldr r3, [pc, #48] ; (8005e14 <LCD_Refresh+0x44>)
8005de2: 681b ldr r3, [r3, #0]
8005de4: f083 0301 eor.w r3, r3, #1
8005de8: 4a0a ldr r2, [pc, #40] ; (8005e14 <LCD_Refresh+0x44>)
8005dea: 6013 str r3, [r2, #0]
BSP_LCD_SetLayerVisible_NoReload(ActiveLayer, DISABLE);
8005dec: 4b08 ldr r3, [pc, #32] ; (8005e10 <LCD_Refresh+0x40>)
8005dee: 681b ldr r3, [r3, #0]
8005df0: 2100 movs r1, #0
8005df2: 4618 mov r0, r3
8005df4: f7ff f926 bl 8005044 <BSP_LCD_SetLayerVisible_NoReload>
BSP_LCD_SetLayerVisible_NoReload(RenderingLayer, ENABLE);
8005df8: 4b06 ldr r3, [pc, #24] ; (8005e14 <LCD_Refresh+0x44>)
8005dfa: 681b ldr r3, [r3, #0]
8005dfc: 2101 movs r1, #1
8005dfe: 4618 mov r0, r3
8005e00: f7ff f920 bl 8005044 <BSP_LCD_SetLayerVisible_NoReload>
HAL_LTDC_Reload(&hLtdcHandler, LTDC_RELOAD_IMMEDIATE);
8005e04: 2101 movs r1, #1
8005e06: 4804 ldr r0, [pc, #16] ; (8005e18 <LCD_Refresh+0x48>)
8005e08: f00d fbf2 bl 80135f0 <HAL_LTDC_Reload>
//BSP_LCD_Reload(LCD_RELOAD_VERTICAL_BLANKING);
}
8005e0c: bf00 nop
8005e0e: bd80 pop {r7, pc}
8005e10: 20020018 .word 0x20020018
8005e14: 2006b93c .word 0x2006b93c
8005e18: 2006c054 .word 0x2006c054
08005e1c <HAL_LTDC_LineEventCallback>:
void HAL_LTDC_LineEventCallback(LTDC_HandleTypeDef *hltdc)
{
8005e1c: b580 push {r7, lr}
8005e1e: b082 sub sp, #8
8005e20: af00 add r7, sp, #0
8005e22: 6078 str r0, [r7, #4]
if(RefreshScreen)
8005e24: 4b06 ldr r3, [pc, #24] ; (8005e40 <HAL_LTDC_LineEventCallback+0x24>)
8005e26: 781b ldrb r3, [r3, #0]
8005e28: b2db uxtb r3, r3
8005e2a: 2b00 cmp r3, #0
8005e2c: d004 beq.n 8005e38 <HAL_LTDC_LineEventCallback+0x1c>
{
LCD_Refresh();
8005e2e: f7ff ffcf bl 8005dd0 <LCD_Refresh>
RefreshScreen = false;
8005e32: 4b03 ldr r3, [pc, #12] ; (8005e40 <HAL_LTDC_LineEventCallback+0x24>)
8005e34: 2200 movs r2, #0
8005e36: 701a strb r2, [r3, #0]
}
}
8005e38: bf00 nop
8005e3a: 3708 adds r7, #8
8005e3c: 46bd mov sp, r7
8005e3e: bd80 pop {r7, pc}
8005e40: 2006b940 .word 0x2006b940
08005e44 <main>:
const char _VERSION[] = "VER 2.203.0\0";
volatile char _SERIAL_DRAW[10] = {'S', 'N', ' ', '2', '3', '0', '0', '1', 0, 0};
int main(void)
{
8005e44: b580 push {r7, lr}
8005e46: b092 sub sp, #72 ; 0x48
8005e48: af00 add r7, sp, #0
uint32_t cnt = 0, i, j, k, l;
8005e4a: 2300 movs r3, #0
8005e4c: 63fb str r3, [r7, #60] ; 0x3c
float32_t f;
char str[50];
uint32_t keys = 0;
8005e4e: 2300 movs r3, #0
8005e50: 63bb str r3, [r7, #56] ; 0x38
HAL_Init();
8005e52: f00b fe05 bl 8011a60 <HAL_Init>
SystemClock_Config();
8005e56: f000 f8df bl 8006018 <SystemClock_Config>
MX_GPIO_Init();
8005e5a: f7fa fc9d bl 8000798 <MX_GPIO_Init>
initFlash();
8005e5e: f7fa fc01 bl 8000664 <initFlash>
MX_DMA2D_Init();
8005e62: f7fa fba7 bl 80005b4 <MX_DMA2D_Init>
MX_TIM7_Init();
8005e66: f00a f839 bl 800fedc <MX_TIM7_Init>
MX_LTDC_Init();
8005e6a: f7fe fe6f bl 8004b4c <MX_LTDC_Init>
initKeys();
8005e6e: f7fa fd87 bl 8000980 <initKeys>
/////////////////////////////// todo
CNT_CHANNELS = 4;
8005e72: 4b5e ldr r3, [pc, #376] ; (8005fec <main+0x1a8>)
8005e74: 2204 movs r2, #4
8005e76: 601a str r2, [r3, #0]
ACTIVE_CHANNEL = Ch1;
8005e78: 4b5d ldr r3, [pc, #372] ; (8005ff0 <main+0x1ac>)
8005e7a: 2200 movs r2, #0
8005e7c: 601a str r2, [r3, #0]
menupos = Hp;
8005e7e: 4b5d ldr r3, [pc, #372] ; (8005ff4 <main+0x1b0>)
8005e80: 2200 movs r2, #0
8005e82: 701a strb r2, [r3, #0]
for(i = 0; i < 16; i++)
8005e84: 2300 movs r3, #0
8005e86: 647b str r3, [r7, #68] ; 0x44
8005e88: e05d b.n 8005f46 <main+0x102>
{
pardata.amplif[i].IIN = CHARGE;
8005e8a: 4a5b ldr r2, [pc, #364] ; (8005ff8 <main+0x1b4>)
8005e8c: 6c7b ldr r3, [r7, #68] ; 0x44
8005e8e: 015b lsls r3, r3, #5
8005e90: 4413 add r3, r2
8005e92: 2200 movs r2, #0
8005e94: 801a strh r2, [r3, #0]
pardata.amplif[i].IFV = Hp0_2;
8005e96: 4a58 ldr r2, [pc, #352] ; (8005ff8 <main+0x1b4>)
8005e98: 6c7b ldr r3, [r7, #68] ; 0x44
8005e9a: 015b lsls r3, r3, #5
8005e9c: 4413 add r3, r2
8005e9e: 3302 adds r3, #2
8005ea0: 2200 movs r2, #0
8005ea2: 801a strh r2, [r3, #0]
pardata.amplif[i].IFN = Lp100000;
8005ea4: 4a54 ldr r2, [pc, #336] ; (8005ff8 <main+0x1b4>)
8005ea6: 6c7b ldr r3, [r7, #68] ; 0x44
8005ea8: 015b lsls r3, r3, #5
8005eaa: 4413 add r3, r2
8005eac: 3304 adds r3, #4
8005eae: 2207 movs r2, #7
8005eb0: 801a strh r2, [r3, #0]
pardata.amplif[i].IKU = Ku1000;
8005eb2: 4a51 ldr r2, [pc, #324] ; (8005ff8 <main+0x1b4>)
8005eb4: 6c7b ldr r3, [r7, #68] ; 0x44
8005eb6: 015b lsls r3, r3, #5
8005eb8: 4413 add r3, r2
8005eba: 3306 adds r3, #6
8005ebc: 220c movs r2, #12
8005ebe: 801a strh r2, [r3, #0]
pardata.amplif[i].IKS = 0;
8005ec0: 4a4d ldr r2, [pc, #308] ; (8005ff8 <main+0x1b4>)
8005ec2: 6c7b ldr r3, [r7, #68] ; 0x44
8005ec4: 015b lsls r3, r3, #5
8005ec6: 4413 add r3, r2
8005ec8: 330c adds r3, #12
8005eca: 2200 movs r2, #0
8005ecc: 801a strh r2, [r3, #0]
pardata.amplif[i].IKD = 0;
8005ece: 4a4a ldr r2, [pc, #296] ; (8005ff8 <main+0x1b4>)
8005ed0: 6c7b ldr r3, [r7, #68] ; 0x44
8005ed2: 015b lsls r3, r3, #5
8005ed4: 4413 add r3, r2
8005ed6: 330a adds r3, #10
8005ed8: 2200 movs r2, #0
8005eda: 801a strh r2, [r3, #0]
pardata.amplif[i].IKE = 1;
8005edc: 4a46 ldr r2, [pc, #280] ; (8005ff8 <main+0x1b4>)
8005ede: 6c7b ldr r3, [r7, #68] ; 0x44
8005ee0: 015b lsls r3, r3, #5
8005ee2: 4413 add r3, r2
8005ee4: 3308 adds r3, #8
8005ee6: 2201 movs r2, #1
8005ee8: 801a strh r2, [r3, #0]
pardata.amplif[i].IPZ = 0;
8005eea: 4a43 ldr r2, [pc, #268] ; (8005ff8 <main+0x1b4>)
8005eec: 6c7b ldr r3, [r7, #68] ; 0x44
8005eee: 015b lsls r3, r3, #5
8005ef0: 4413 add r3, r2
8005ef2: 330e adds r3, #14
8005ef4: 2200 movs r2, #0
8005ef6: 801a strh r2, [r3, #0]
pardata.amplif[i].OPZ = 0;
8005ef8: 4a3f ldr r2, [pc, #252] ; (8005ff8 <main+0x1b4>)
8005efa: 6c7b ldr r3, [r7, #68] ; 0x44
8005efc: 015b lsls r3, r3, #5
8005efe: 4413 add r3, r2
8005f00: 3310 adds r3, #16
8005f02: 2200 movs r2, #0
8005f04: 801a strh r2, [r3, #0]
pardata.amplif[i].VAL = Accel;
8005f06: 4a3c ldr r2, [pc, #240] ; (8005ff8 <main+0x1b4>)
8005f08: 6c7b ldr r3, [r7, #68] ; 0x44
8005f0a: 015b lsls r3, r3, #5
8005f0c: 4413 add r3, r2
8005f0e: 3312 adds r3, #18
8005f10: 2200 movs r2, #0
8005f12: 801a strh r2, [r3, #0]
pardata.amplif[i].KCOND = 1.00f;
8005f14: 4a38 ldr r2, [pc, #224] ; (8005ff8 <main+0x1b4>)
8005f16: 6c7b ldr r3, [r7, #68] ; 0x44
8005f18: 015b lsls r3, r3, #5
8005f1a: 4413 add r3, r2
8005f1c: 3314 adds r3, #20
8005f1e: f04f 527e mov.w r2, #1065353216 ; 0x3f800000
8005f22: 601a str r2, [r3, #0]
pardata.amplif[i].SENS = 10.00f;
8005f24: 4a34 ldr r2, [pc, #208] ; (8005ff8 <main+0x1b4>)
8005f26: 6c7b ldr r3, [r7, #68] ; 0x44
8005f28: 015b lsls r3, r3, #5
8005f2a: 4413 add r3, r2
8005f2c: 3318 adds r3, #24
8005f2e: 4a33 ldr r2, [pc, #204] ; (8005ffc <main+0x1b8>)
8005f30: 601a str r2, [r3, #0]
pardata.amplif[i].ACCEL = 100.00f;
8005f32: 4a31 ldr r2, [pc, #196] ; (8005ff8 <main+0x1b4>)
8005f34: 6c7b ldr r3, [r7, #68] ; 0x44
8005f36: 015b lsls r3, r3, #5
8005f38: 4413 add r3, r2
8005f3a: 331c adds r3, #28
8005f3c: 4a30 ldr r2, [pc, #192] ; (8006000 <main+0x1bc>)
8005f3e: 601a str r2, [r3, #0]
for(i = 0; i < 16; i++)
8005f40: 6c7b ldr r3, [r7, #68] ; 0x44
8005f42: 3301 adds r3, #1
8005f44: 647b str r3, [r7, #68] ; 0x44
8005f46: 6c7b ldr r3, [r7, #68] ; 0x44
8005f48: 2b0f cmp r3, #15
8005f4a: d99e bls.n 8005e8a <main+0x46>
}
pardata.OWN = 18;
8005f4c: 4b2a ldr r3, [pc, #168] ; (8005ff8 <main+0x1b4>)
8005f4e: 2212 movs r2, #18
8005f50: f8a3 2200 strh.w r2, [r3, #512] ; 0x200
pardata.BAUD = 7;
8005f54: 4b28 ldr r3, [pc, #160] ; (8005ff8 <main+0x1b4>)
8005f56: 2207 movs r2, #7
8005f58: f8a3 2202 strh.w r2, [r3, #514] ; 0x202
pardata.INFB = 0;
8005f5c: 4b26 ldr r3, [pc, #152] ; (8005ff8 <main+0x1b4>)
8005f5e: 2200 movs r2, #0
8005f60: f8a3 2204 strh.w r2, [r3, #516] ; 0x204
//pardata.LANG = RUS;
/////////////////////////////
MX_UART7_Init();
8005f64: f00a f8d4 bl 8010110 <MX_UART7_Init>
EXTI_Config();
8005f68: f000 f8f6 bl 8006158 <EXTI_Config>
Logo();
8005f6c: f000 f958 bl 8006220 <Logo>
while(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET) {
8005f70: e001 b.n 8005f76 <main+0x132>
RedrawScreen();
8005f72: f000 f945 bl 8006200 <RedrawScreen>
while(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET) {
8005f76: 2101 movs r1, #1
8005f78: 4822 ldr r0, [pc, #136] ; (8006004 <main+0x1c0>)
8005f7a: f00d f8f1 bl 8013160 <HAL_GPIO_ReadPin>
8005f7e: 4603 mov r3, r0
8005f80: 2b01 cmp r3, #1
8005f82: d0f6 beq.n 8005f72 <main+0x12e>
}
KeysIsReady = true;
8005f84: 4b20 ldr r3, [pc, #128] ; (8006008 <main+0x1c4>)
8005f86: 2201 movs r2, #1
8005f88: 701a strb r2, [r3, #0]
for(k = 0; k < 30; k++)
8005f8a: 2300 movs r3, #0
8005f8c: 643b str r3, [r7, #64] ; 0x40
8005f8e: e00f b.n 8005fb0 <main+0x16c>
{
keys = kbhit();
8005f90: f7fa fd84 bl 8000a9c <kbhit>
8005f94: 63b8 str r0, [r7, #56] ; 0x38
if((keys == KEY_UP) || (keys == (KEY_UP + KEY_OK)))
8005f96: 6bbb ldr r3, [r7, #56] ; 0x38
8005f98: 2b02 cmp r3, #2
8005f9a: d002 beq.n 8005fa2 <main+0x15e>
8005f9c: 6bbb ldr r3, [r7, #56] ; 0x38
8005f9e: 2b22 cmp r3, #34 ; 0x22
8005fa0: d103 bne.n 8005faa <main+0x166>
{
clbr = true;
8005fa2: 4b1a ldr r3, [pc, #104] ; (800600c <main+0x1c8>)
8005fa4: 2201 movs r2, #1
8005fa6: 701a strb r2, [r3, #0]
break;
8005fa8: e005 b.n 8005fb6 <main+0x172>
for(k = 0; k < 30; k++)
8005faa: 6c3b ldr r3, [r7, #64] ; 0x40
8005fac: 3301 adds r3, #1
8005fae: 643b str r3, [r7, #64] ; 0x40
8005fb0: 6c3b ldr r3, [r7, #64] ; 0x40
8005fb2: 2b1d cmp r3, #29
8005fb4: d9ec bls.n 8005f90 <main+0x14c>
}
}
HAL_Delay(1000);
8005fb6: f44f 707a mov.w r0, #1000 ; 0x3e8
8005fba: f00b fdbd bl 8011b38 <HAL_Delay>
AskChannels();
8005fbe: f00b fc85 bl 80118cc <AskChannels>
//menu = MAIN; //todo
timerAsk = msec1900;
8005fc2: 4b13 ldr r3, [pc, #76] ; (8006010 <main+0x1cc>)
8005fc4: 22be movs r2, #190 ; 0xbe
8005fc6: 801a strh r2, [r3, #0]
FlagAsk = 0;
8005fc8: 4b12 ldr r3, [pc, #72] ; (8006014 <main+0x1d0>)
8005fca: 2200 movs r2, #0
8005fcc: 701a strb r2, [r3, #0]
while(1)
{
RedrawScreen();
8005fce: f000 f917 bl 8006200 <RedrawScreen>
keyIns();
8005fd2: f7fa fdd3 bl 8000b7c <keyIns>
if(FlagAsk)
8005fd6: 4b0f ldr r3, [pc, #60] ; (8006014 <main+0x1d0>)
8005fd8: 781b ldrb r3, [r3, #0]
8005fda: b2db uxtb r3, r3
8005fdc: 2b00 cmp r3, #0
8005fde: d0f6 beq.n 8005fce <main+0x18a>
{
FlagAsk = 0;
8005fe0: 4b0c ldr r3, [pc, #48] ; (8006014 <main+0x1d0>)
8005fe2: 2200 movs r2, #0
8005fe4: 701a strb r2, [r3, #0]
AskPeriodic();
8005fe6: f00b fd0d bl 8011a04 <AskPeriodic>
RedrawScreen();
8005fea: e7f0 b.n 8005fce <main+0x18a>
8005fec: 2006b94c .word 0x2006b94c
8005ff0: 2006b948 .word 0x2006b948
8005ff4: 20020010 .word 0x20020010
8005ff8: 2006bb88 .word 0x2006bb88
8005ffc: 41200000 .word 0x41200000
8006000: 42c80000 .word 0x42c80000
8006004: 40020000 .word 0x40020000
8006008: 200208bc .word 0x200208bc
800600c: 2006c0fc .word 0x2006c0fc
8006010: 2002087e .word 0x2002087e
8006014: 2006b967 .word 0x2006b967
08006018 <SystemClock_Config>:
/**
* @brief System Clock Configuration
* @retval None
*/
void SystemClock_Config(void)
{
8006018: b580 push {r7, lr}
800601a: b0b8 sub sp, #224 ; 0xe0
800601c: af00 add r7, sp, #0
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
800601e: f107 03ac add.w r3, r7, #172 ; 0xac
8006022: 2234 movs r2, #52 ; 0x34
8006024: 2100 movs r1, #0
8006026: 4618 mov r0, r3
8006028: f010 fcf9 bl 8016a1e <memset>
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
800602c: f107 0398 add.w r3, r7, #152 ; 0x98
8006030: 2200 movs r2, #0
8006032: 601a str r2, [r3, #0]
8006034: 605a str r2, [r3, #4]
8006036: 609a str r2, [r3, #8]
8006038: 60da str r2, [r3, #12]
800603a: 611a str r2, [r3, #16]
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
800603c: f107 0308 add.w r3, r7, #8
8006040: 2290 movs r2, #144 ; 0x90
8006042: 2100 movs r1, #0
8006044: 4618 mov r0, r3
8006046: f010 fcea bl 8016a1e <memset>
__HAL_RCC_PWR_CLK_ENABLE();
800604a: 4a3f ldr r2, [pc, #252] ; (8006148 <SystemClock_Config+0x130>)
800604c: 4b3e ldr r3, [pc, #248] ; (8006148 <SystemClock_Config+0x130>)
800604e: 6c1b ldr r3, [r3, #64] ; 0x40
8006050: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
8006054: 6413 str r3, [r2, #64] ; 0x40
8006056: 4b3c ldr r3, [pc, #240] ; (8006148 <SystemClock_Config+0x130>)
8006058: 6c1b ldr r3, [r3, #64] ; 0x40
800605a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
800605e: 607b str r3, [r7, #4]
8006060: 687b ldr r3, [r7, #4]
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);
8006062: 4a3a ldr r2, [pc, #232] ; (800614c <SystemClock_Config+0x134>)
8006064: 4b39 ldr r3, [pc, #228] ; (800614c <SystemClock_Config+0x134>)
8006066: 681b ldr r3, [r3, #0]
8006068: f423 4340 bic.w r3, r3, #49152 ; 0xc000
800606c: f443 4380 orr.w r3, r3, #16384 ; 0x4000
8006070: 6013 str r3, [r2, #0]
8006072: 4b36 ldr r3, [pc, #216] ; (800614c <SystemClock_Config+0x134>)
8006074: 681b ldr r3, [r3, #0]
8006076: f403 4340 and.w r3, r3, #49152 ; 0xc000
800607a: 603b str r3, [r7, #0]
800607c: 683b ldr r3, [r7, #0]
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
800607e: 2302 movs r3, #2
8006080: f8c7 30ac str.w r3, [r7, #172] ; 0xac
RCC_OscInitStruct.LSEState = RCC_LSE_BYPASS;
8006084: 2305 movs r3, #5
8006086: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
800608a: 2301 movs r3, #1
800608c: f8c7 30b8 str.w r3, [r7, #184] ; 0xb8
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
8006090: 2310 movs r3, #16
8006092: f8c7 30bc str.w r3, [r7, #188] ; 0xbc
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
8006096: 2302 movs r3, #2
8006098: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
800609c: 2300 movs r3, #0
800609e: f8c7 30c8 str.w r3, [r7, #200] ; 0xc8
RCC_OscInitStruct.PLL.PLLM = 16;
80060a2: 2310 movs r3, #16
80060a4: f8c7 30cc str.w r3, [r7, #204] ; 0xcc
RCC_OscInitStruct.PLL.PLLN = 432;
80060a8: f44f 73d8 mov.w r3, #432 ; 0x1b0
80060ac: f8c7 30d0 str.w r3, [r7, #208] ; 0xd0
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV8;
80060b0: 2308 movs r3, #8
80060b2: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4
RCC_OscInitStruct.PLL.PLLQ = 9;
80060b6: 2309 movs r3, #9
80060b8: f8c7 30d8 str.w r3, [r7, #216] ; 0xd8
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
80060bc: f107 03ac add.w r3, r7, #172 ; 0xac
80060c0: 4618 mov r0, r3
80060c2: f00d fc67 bl 8013994 <HAL_RCC_OscConfig>
80060c6: 4603 mov r3, r0
80060c8: 2b00 cmp r3, #0
80060ca: d001 beq.n 80060d0 <SystemClock_Config+0xb8>
{
Error_Handler();
80060cc: f000 f840 bl 8006150 <Error_Handler>
}
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
80060d0: 230f movs r3, #15
80060d2: f8c7 3098 str.w r3, [r7, #152] ; 0x98
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
80060d6: 2302 movs r3, #2
80060d8: f8c7 309c str.w r3, [r7, #156] ; 0x9c
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
80060dc: 2300 movs r3, #0
80060de: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
80060e2: 2300 movs r3, #0
80060e4: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
80060e8: 2300 movs r3, #0
80060ea: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8
if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
80060ee: f107 0398 add.w r3, r7, #152 ; 0x98
80060f2: 2101 movs r1, #1
80060f4: 4618 mov r0, r3
80060f6: f00d fefb bl 8013ef0 <HAL_RCC_ClockConfig>
80060fa: 4603 mov r3, r0
80060fc: 2b00 cmp r3, #0
80060fe: d001 beq.n 8006104 <SystemClock_Config+0xec>
{
Error_Handler();
8006100: f000 f826 bl 8006150 <Error_Handler>
}
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC |RCC_PERIPHCLK_UART7;
8006104: f241 0308 movw r3, #4104 ; 0x1008
8006108: 60bb str r3, [r7, #8]
PeriphClkInitStruct.PLLSAI.PLLSAIN = 192;
800610a: 23c0 movs r3, #192 ; 0xc0
800610c: 61fb str r3, [r7, #28]
PeriphClkInitStruct.PLLSAI.PLLSAIR = 4;
800610e: 2304 movs r3, #4
8006110: 627b str r3, [r7, #36] ; 0x24
PeriphClkInitStruct.PLLSAI.PLLSAIQ = 2;
8006112: 2302 movs r3, #2
8006114: 623b str r3, [r7, #32]
PeriphClkInitStruct.PLLSAI.PLLSAIP = RCC_PLLSAIP_DIV4;
8006116: 2301 movs r3, #1
8006118: 62bb str r3, [r7, #40] ; 0x28
PeriphClkInitStruct.PLLSAIDivQ = 1;
800611a: 2301 movs r3, #1
800611c: 633b str r3, [r7, #48] ; 0x30
PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_2;
800611e: 2300 movs r3, #0
8006120: 637b str r3, [r7, #52] ; 0x34
PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
8006122: f44f 7380 mov.w r3, #256 ; 0x100
8006126: 63bb str r3, [r7, #56] ; 0x38
PeriphClkInitStruct.Uart7ClockSelection = RCC_UART7CLKSOURCE_PCLK1;
8006128: 2300 movs r3, #0
800612a: 667b str r3, [r7, #100] ; 0x64
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
800612c: f107 0308 add.w r3, r7, #8
8006130: 4618 mov r0, r3
8006132: f00e f8b3 bl 801429c <HAL_RCCEx_PeriphCLKConfig>
8006136: 4603 mov r3, r0
8006138: 2b00 cmp r3, #0
800613a: d001 beq.n 8006140 <SystemClock_Config+0x128>
{
Error_Handler();
800613c: f000 f808 bl 8006150 <Error_Handler>
PeriphClkInitStruct.Sdmmc1ClockSelection = RCC_SDMMC1CLKSOURCE_CLK48;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
Error_Handler();
}*/
}
8006140: bf00 nop
8006142: 37e0 adds r7, #224 ; 0xe0
8006144: 46bd mov sp, r7
8006146: bd80 pop {r7, pc}
8006148: 40023800 .word 0x40023800
800614c: 40007000 .word 0x40007000
08006150 <Error_Handler>:
/**
* @brief This function is executed in case of error occurrence.
* @retval None
*/
void Error_Handler(void)
{
8006150: b480 push {r7}
8006152: af00 add r7, sp, #0
__ASM volatile ("cpsid i" : : : "memory");
8006154: 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)
8006156: e7fe b.n 8006156 <Error_Handler+0x6>
08006158 <EXTI_Config>:
void EXTI_Config(void)
{
8006158: b580 push {r7, lr}
800615a: b086 sub sp, #24
800615c: af00 add r7, sp, #0
GPIO_InitTypeDef EXTILineStruct;
__HAL_RCC_SYSCFG_CLK_ENABLE();
800615e: 4a12 ldr r2, [pc, #72] ; (80061a8 <EXTI_Config+0x50>)
8006160: 4b11 ldr r3, [pc, #68] ; (80061a8 <EXTI_Config+0x50>)
8006162: 6c5b ldr r3, [r3, #68] ; 0x44
8006164: f443 4380 orr.w r3, r3, #16384 ; 0x4000
8006168: 6453 str r3, [r2, #68] ; 0x44
800616a: 4b0f ldr r3, [pc, #60] ; (80061a8 <EXTI_Config+0x50>)
800616c: 6c5b ldr r3, [r3, #68] ; 0x44
800616e: f403 4380 and.w r3, r3, #16384 ; 0x4000
8006172: 603b str r3, [r7, #0]
8006174: 683b ldr r3, [r7, #0]
EXTILineStruct.Pin = GPIO_PIN_2;
8006176: 2304 movs r3, #4
8006178: 607b str r3, [r7, #4]
EXTILineStruct.Mode = GPIO_MODE_IT_RISING;
800617a: f44f 1388 mov.w r3, #1114112 ; 0x110000
800617e: 60bb str r3, [r7, #8]
EXTILineStruct.Pull = GPIO_NOPULL;
8006180: 2300 movs r3, #0
8006182: 60fb str r3, [r7, #12]
HAL_GPIO_Init(GPIOC, &EXTILineStruct);
8006184: 1d3b adds r3, r7, #4
8006186: 4619 mov r1, r3
8006188: 4808 ldr r0, [pc, #32] ; (80061ac <EXTI_Config+0x54>)
800618a: f00c fe3f bl 8012e0c <HAL_GPIO_Init>
HAL_NVIC_SetPriority(EXTI2_IRQn, 12, 0);
800618e: 2200 movs r2, #0
8006190: 210c movs r1, #12
8006192: 2008 movs r0, #8
8006194: f00b fded bl 8011d72 <HAL_NVIC_SetPriority>
HAL_NVIC_EnableIRQ(EXTI2_IRQn);
8006198: 2008 movs r0, #8
800619a: f00b fe06 bl 8011daa <HAL_NVIC_EnableIRQ>
}
800619e: bf00 nop
80061a0: 3718 adds r7, #24
80061a2: 46bd mov sp, r7
80061a4: bd80 pop {r7, pc}
80061a6: bf00 nop
80061a8: 40023800 .word 0x40023800
80061ac: 40020800 .word 0x40020800
080061b0 <HAL_GPIO_EXTI_Callback>:
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
80061b0: b580 push {r7, lr}
80061b2: b082 sub sp, #8
80061b4: af00 add r7, sp, #0
80061b6: 4603 mov r3, r0
80061b8: 80fb strh r3, [r7, #6]
if(GPIO_Pin == GPIO_PIN_2)
80061ba: 88fb ldrh r3, [r7, #6]
80061bc: 2b04 cmp r3, #4
80061be: d114 bne.n 80061ea <HAL_GPIO_EXTI_Callback+0x3a>
{
__HAL_GPIO_EXTI_CLEAR_FLAG(GPIO_PIN_2);
80061c0: 4b0c ldr r3, [pc, #48] ; (80061f4 <HAL_GPIO_EXTI_Callback+0x44>)
80061c2: 2204 movs r2, #4
80061c4: 615a str r2, [r3, #20]
if((RefreshScreen == false) && (screen == true))
80061c6: 4b0c ldr r3, [pc, #48] ; (80061f8 <HAL_GPIO_EXTI_Callback+0x48>)
80061c8: 781b ldrb r3, [r3, #0]
80061ca: b2db uxtb r3, r3
80061cc: f083 0301 eor.w r3, r3, #1
80061d0: b2db uxtb r3, r3
80061d2: 2b00 cmp r3, #0
80061d4: d009 beq.n 80061ea <HAL_GPIO_EXTI_Callback+0x3a>
80061d6: 4b09 ldr r3, [pc, #36] ; (80061fc <HAL_GPIO_EXTI_Callback+0x4c>)
80061d8: 781b ldrb r3, [r3, #0]
80061da: b2db uxtb r3, r3
80061dc: 2b00 cmp r3, #0
80061de: d004 beq.n 80061ea <HAL_GPIO_EXTI_Callback+0x3a>
{
screen = false;
80061e0: 4b06 ldr r3, [pc, #24] ; (80061fc <HAL_GPIO_EXTI_Callback+0x4c>)
80061e2: 2200 movs r2, #0
80061e4: 701a strb r2, [r3, #0]
Display();
80061e6: f000 f8b9 bl 800635c <Display>
}
//ReadChannel(Ch1);
}
}
80061ea: bf00 nop
80061ec: 3708 adds r7, #8
80061ee: 46bd mov sp, r7
80061f0: bd80 pop {r7, pc}
80061f2: bf00 nop
80061f4: 40013c00 .word 0x40013c00
80061f8: 2006b940 .word 0x2006b940
80061fc: 20020030 .word 0x20020030
08006200 <RedrawScreen>:
void RedrawScreen(void)
{
8006200: b480 push {r7}
8006202: af00 add r7, sp, #0
__HAL_GPIO_EXTI_GENERATE_SWIT(GPIO_PIN_2);
8006204: 4a05 ldr r2, [pc, #20] ; (800621c <RedrawScreen+0x1c>)
8006206: 4b05 ldr r3, [pc, #20] ; (800621c <RedrawScreen+0x1c>)
8006208: 691b ldr r3, [r3, #16]
800620a: f043 0304 orr.w r3, r3, #4
800620e: 6113 str r3, [r2, #16]
{
screen = false;
Display();
}*/
}
8006210: bf00 nop
8006212: 46bd mov sp, r7
8006214: f85d 7b04 ldr.w r7, [sp], #4
8006218: 4770 bx lr
800621a: bf00 nop
800621c: 40013c00 .word 0x40013c00
08006220 <Logo>:
void Logo(void)
{
8006220: b580 push {r7, lr}
8006222: b082 sub sp, #8
8006224: af00 add r7, sp, #0
uint32_t i;
uint32_t color = LCD_COLOR_BLACK; //0xFF212829;
8006226: f04f 437f mov.w r3, #4278190080 ; 0xff000000
800622a: 603b str r3, [r7, #0]
#ifdef DRAW_LOGO
BSP_LCD_DisplayOn();
800622c: f7fe fdc4 bl 8004db8 <BSP_LCD_DisplayOn>
HAL_NVIC_DisableIRQ(EXTI2_IRQn);
8006230: 2008 movs r0, #8
8006232: f00b fdc8 bl 8011dc6 <HAL_NVIC_DisableIRQ>
//*********************************************************
BSP_LCD_SetFont(&Font12);
8006236: 4843 ldr r0, [pc, #268] ; (8006344 <Logo+0x124>)
8006238: f7fe ff78 bl 800512c <BSP_LCD_SetFont>
for(i = 0; i < 3; i++)
800623c: 2300 movs r3, #0
800623e: 607b str r3, [r7, #4]
8006240: e032 b.n 80062a8 <Logo+0x88>
{
BSP_LCD_Clear(color);
8006242: 6838 ldr r0, [r7, #0]
8006244: f7fe ff90 bl 8005168 <BSP_LCD_Clear>
DrawImage(&bmLOGO_NEW, 0, 54);
8006248: 2236 movs r2, #54 ; 0x36
800624a: 2100 movs r1, #0
800624c: 483e ldr r0, [pc, #248] ; (8006348 <Logo+0x128>)
800624e: f7ff fd11 bl 8005c74 <DrawImage>
RefreshScreen = true;
8006252: 4b3e ldr r3, [pc, #248] ; (800634c <Logo+0x12c>)
8006254: 2201 movs r2, #1
8006256: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0);
8006258: 2100 movs r1, #0
800625a: 483d ldr r0, [pc, #244] ; (8006350 <Logo+0x130>)
800625c: f00d f990 bl 8013580 <HAL_LTDC_ProgramLineEvent>
while(RefreshScreen);
8006260: bf00 nop
8006262: 4b3a ldr r3, [pc, #232] ; (800634c <Logo+0x12c>)
8006264: 781b ldrb r3, [r3, #0]
8006266: b2db uxtb r3, r3
8006268: 2b00 cmp r3, #0
800626a: d1fa bne.n 8006262 <Logo+0x42>
HAL_Delay(50);
800626c: 2032 movs r0, #50 ; 0x32
800626e: f00b fc63 bl 8011b38 <HAL_Delay>
BSP_LCD_Clear(color);
8006272: 6838 ldr r0, [r7, #0]
8006274: f7fe ff78 bl 8005168 <BSP_LCD_Clear>
DrawImage(&bmLOGO_NEW, 0, 54);
8006278: 2236 movs r2, #54 ; 0x36
800627a: 2100 movs r1, #0
800627c: 4832 ldr r0, [pc, #200] ; (8006348 <Logo+0x128>)
800627e: f7ff fcf9 bl 8005c74 <DrawImage>
RefreshScreen = true;
8006282: 4b32 ldr r3, [pc, #200] ; (800634c <Logo+0x12c>)
8006284: 2201 movs r2, #1
8006286: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0);
8006288: 2100 movs r1, #0
800628a: 4831 ldr r0, [pc, #196] ; (8006350 <Logo+0x130>)
800628c: f00d f978 bl 8013580 <HAL_LTDC_ProgramLineEvent>
while(RefreshScreen);
8006290: bf00 nop
8006292: 4b2e ldr r3, [pc, #184] ; (800634c <Logo+0x12c>)
8006294: 781b ldrb r3, [r3, #0]
8006296: b2db uxtb r3, r3
8006298: 2b00 cmp r3, #0
800629a: d1fa bne.n 8006292 <Logo+0x72>
HAL_Delay(50);
800629c: 2032 movs r0, #50 ; 0x32
800629e: f00b fc4b bl 8011b38 <HAL_Delay>
for(i = 0; i < 3; i++)
80062a2: 687b ldr r3, [r7, #4]
80062a4: 3301 adds r3, #1
80062a6: 607b str r3, [r7, #4]
80062a8: 687b ldr r3, [r7, #4]
80062aa: 2b02 cmp r3, #2
80062ac: d9c9 bls.n 8006242 <Logo+0x22>
}
HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_RESET); // BACKLIGHT_ON
80062ae: 2200 movs r2, #0
80062b0: f44f 7180 mov.w r1, #256 ; 0x100
80062b4: 4827 ldr r0, [pc, #156] ; (8006354 <Logo+0x134>)
80062b6: f00c ff6b bl 8013190 <HAL_GPIO_WritePin>
//*********************************************************
BSP_LCD_Clear(color);
80062ba: 6838 ldr r0, [r7, #0]
80062bc: f7fe ff54 bl 8005168 <BSP_LCD_Clear>
DrawImage(&bmLOGO_NEW, 0, 54);
80062c0: 2236 movs r2, #54 ; 0x36
80062c2: 2100 movs r1, #0
80062c4: 4820 ldr r0, [pc, #128] ; (8006348 <Logo+0x128>)
80062c6: f7ff fcd5 bl 8005c74 <DrawImage>
RefreshScreen = true;
80062ca: 4b20 ldr r3, [pc, #128] ; (800634c <Logo+0x12c>)
80062cc: 2201 movs r2, #1
80062ce: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0);
80062d0: 2100 movs r1, #0
80062d2: 481f ldr r0, [pc, #124] ; (8006350 <Logo+0x130>)
80062d4: f00d f954 bl 8013580 <HAL_LTDC_ProgramLineEvent>
while(RefreshScreen);
80062d8: bf00 nop
80062da: 4b1c ldr r3, [pc, #112] ; (800634c <Logo+0x12c>)
80062dc: 781b ldrb r3, [r3, #0]
80062de: b2db uxtb r3, r3
80062e0: 2b00 cmp r3, #0
80062e2: d1fa bne.n 80062da <Logo+0xba>
HAL_Delay(50);
80062e4: 2032 movs r0, #50 ; 0x32
80062e6: f00b fc27 bl 8011b38 <HAL_Delay>
BSP_LCD_Clear(color);
80062ea: 6838 ldr r0, [r7, #0]
80062ec: f7fe ff3c bl 8005168 <BSP_LCD_Clear>
DrawImage(&bmLOGO_NEW, 0, 54);
80062f0: 2236 movs r2, #54 ; 0x36
80062f2: 2100 movs r1, #0
80062f4: 4814 ldr r0, [pc, #80] ; (8006348 <Logo+0x128>)
80062f6: f7ff fcbd bl 8005c74 <DrawImage>
RefreshScreen = true;
80062fa: 4b14 ldr r3, [pc, #80] ; (800634c <Logo+0x12c>)
80062fc: 2201 movs r2, #1
80062fe: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0);
8006300: 2100 movs r1, #0
8006302: 4813 ldr r0, [pc, #76] ; (8006350 <Logo+0x130>)
8006304: f00d f93c bl 8013580 <HAL_LTDC_ProgramLineEvent>
while(RefreshScreen);
8006308: bf00 nop
800630a: 4b10 ldr r3, [pc, #64] ; (800634c <Logo+0x12c>)
800630c: 781b ldrb r3, [r3, #0]
800630e: b2db uxtb r3, r3
8006310: 2b00 cmp r3, #0
8006312: d1fa bne.n 800630a <Logo+0xea>
HAL_Delay(50);
8006314: 2032 movs r0, #50 ; 0x32
8006316: f00b fc0f bl 8011b38 <HAL_Delay>
HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_RESET); // BACKLIGHT_ON
800631a: 2200 movs r2, #0
800631c: f44f 7180 mov.w r1, #256 ; 0x100
8006320: 480c ldr r0, [pc, #48] ; (8006354 <Logo+0x134>)
8006322: f00c ff35 bl 8013190 <HAL_GPIO_WritePin>
HAL_Delay(500);
8006326: f44f 70fa mov.w r0, #500 ; 0x1f4
800632a: f00b fc05 bl 8011b38 <HAL_Delay>
menu = LOGO;
800632e: 4b0a ldr r3, [pc, #40] ; (8006358 <Logo+0x138>)
8006330: 221e movs r2, #30
8006332: 701a strb r2, [r3, #0]
HAL_NVIC_EnableIRQ(EXTI2_IRQn);
8006334: 2008 movs r0, #8
8006336: f00b fd38 bl 8011daa <HAL_NVIC_EnableIRQ>
#endif
}
800633a: bf00 nop
800633c: 3708 adds r7, #8
800633e: 46bd mov sp, r7
8006340: bd80 pop {r7, pc}
8006342: bf00 nop
8006344: 20020000 .word 0x20020000
8006348: 0802ff14 .word 0x0802ff14
800634c: 2006b940 .word 0x2006b940
8006350: 2006c054 .word 0x2006c054
8006354: 40020000 .word 0x40020000
8006358: 200208b9 .word 0x200208b9
0800635c <Display>:
void Display(void)
{
800635c: b580 push {r7, lr}
800635e: f5ad 7d52 sub.w sp, sp, #840 ; 0x348
8006362: 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;
8006364: 2300 movs r3, #0
8006366: 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;
800636a: 2300 movs r3, #0
800636c: 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++;
8006370: 4bbd ldr r3, [pc, #756] ; (8006668 <Display+0x30c>)
8006372: 681b ldr r3, [r3, #0]
8006374: 3301 adds r3, #1
8006376: 4abc ldr r2, [pc, #752] ; (8006668 <Display+0x30c>)
8006378: 6013 str r3, [r2, #0]
if(blk > 1)
800637a: 4bbb ldr r3, [pc, #748] ; (8006668 <Display+0x30c>)
800637c: 681b ldr r3, [r3, #0]
800637e: 2b01 cmp r3, #1
8006380: d905 bls.n 800638e <Display+0x32>
{
blk = 0;
8006382: 4bb9 ldr r3, [pc, #740] ; (8006668 <Display+0x30c>)
8006384: 2200 movs r2, #0
8006386: 601a str r2, [r3, #0]
bll = true;
8006388: 2301 movs r3, #1
800638a: f887 333e strb.w r3, [r7, #830] ; 0x33e
}
blink++;
800638e: 4bb7 ldr r3, [pc, #732] ; (800666c <Display+0x310>)
8006390: 681b ldr r3, [r3, #0]
8006392: 3301 adds r3, #1
8006394: 4ab5 ldr r2, [pc, #724] ; (800666c <Display+0x310>)
8006396: 6013 str r3, [r2, #0]
if(blink > 8)
8006398: 4bb4 ldr r3, [pc, #720] ; (800666c <Display+0x310>)
800639a: 681b ldr r3, [r3, #0]
800639c: 2b08 cmp r3, #8
800639e: d905 bls.n 80063ac <Display+0x50>
{
blink = 0;
80063a0: 4bb2 ldr r3, [pc, #712] ; (800666c <Display+0x310>)
80063a2: 2200 movs r2, #0
80063a4: 601a str r2, [r3, #0]
bl = true;
80063a6: 2301 movs r3, #1
80063a8: f887 333f strb.w r3, [r7, #831] ; 0x33f
}
Redrawing = true;
80063ac: 4bb0 ldr r3, [pc, #704] ; (8006670 <Display+0x314>)
80063ae: 2201 movs r2, #1
80063b0: 701a strb r2, [r3, #0]
BSP_LCD_Clear(LCD_COLOR_BLACK);
80063b2: f04f 407f mov.w r0, #4278190080 ; 0xff000000
80063b6: f7fe fed7 bl 8005168 <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)
80063ba: 4bae ldr r3, [pc, #696] ; (8006674 <Display+0x318>)
80063bc: 781b ldrb r3, [r3, #0]
80063be: b2db uxtb r3, r3
80063c0: 2b4e cmp r3, #78 ; 0x4e
80063c2: f207 8480 bhi.w 800dcc6 <Display+0x796a>
80063c6: a201 add r2, pc, #4 ; (adr r2, 80063cc <Display+0x70>)
80063c8: f852 f023 ldr.w pc, [r2, r3, lsl #2]
80063cc: 0800d2ad .word 0x0800d2ad
80063d0: 0800d689 .word 0x0800d689
80063d4: 0800d799 .word 0x0800d799
80063d8: 0800d7c9 .word 0x0800d7c9
80063dc: 0800d855 .word 0x0800d855
80063e0: 0800d885 .word 0x0800d885
80063e4: 0800d8b5 .word 0x0800d8b5
80063e8: 0800d8e5 .word 0x0800d8e5
80063ec: 0800d915 .word 0x0800d915
80063f0: 0800d945 .word 0x0800d945
80063f4: 0800d975 .word 0x0800d975
80063f8: 0800d9a5 .word 0x0800d9a5
80063fc: 0800d9d5 .word 0x0800d9d5
8006400: 0800da05 .word 0x0800da05
8006404: 0800da35 .word 0x0800da35
8006408: 0800da65 .word 0x0800da65
800640c: 0800da95 .word 0x0800da95
8006410: 0800dac5 .word 0x0800dac5
8006414: 0800daf5 .word 0x0800daf5
8006418: 0800db25 .word 0x0800db25
800641c: 0800db55 .word 0x0800db55
8006420: 0800db85 .word 0x0800db85
8006424: 0800dc29 .word 0x0800dc29
8006428: 0800dc59 .word 0x0800dc59
800642c: 0800dc89 .word 0x0800dc89
8006430: 080067f5 .word 0x080067f5
8006434: 0800dcc7 .word 0x0800dcc7
8006438: 0800dcc7 .word 0x0800dcc7
800643c: 0800dcc7 .word 0x0800dcc7
8006440: 0800dcc7 .word 0x0800dcc7
8006444: 08006509 .word 0x08006509
8006448: 0800dcc7 .word 0x0800dcc7
800644c: 0800dcc7 .word 0x0800dcc7
8006450: 0800dcc7 .word 0x0800dcc7
8006454: 0800dcc7 .word 0x0800dcc7
8006458: 0800dcc7 .word 0x0800dcc7
800645c: 0800dcc7 .word 0x0800dcc7
8006460: 0800dcc7 .word 0x0800dcc7
8006464: 0800dcc7 .word 0x0800dcc7
8006468: 0800dcc7 .word 0x0800dcc7
800646c: 0800dcc7 .word 0x0800dcc7
8006470: 0800dcc7 .word 0x0800dcc7
8006474: 0800dcc7 .word 0x0800dcc7
8006478: 08006afb .word 0x08006afb
800647c: 0800dcc7 .word 0x0800dcc7
8006480: 0800dcc7 .word 0x0800dcc7
8006484: 0800dcc7 .word 0x0800dcc7
8006488: 0800dcc7 .word 0x0800dcc7
800648c: 0800dcc7 .word 0x0800dcc7
8006490: 0800dcc7 .word 0x0800dcc7
8006494: 0800dcc7 .word 0x0800dcc7
8006498: 0800dcc7 .word 0x0800dcc7
800649c: 0800dcc7 .word 0x0800dcc7
80064a0: 0800dcc7 .word 0x0800dcc7
80064a4: 0800dcc7 .word 0x0800dcc7
80064a8: 0800dcc7 .word 0x0800dcc7
80064ac: 0800dcc7 .word 0x0800dcc7
80064b0: 0800dcc7 .word 0x0800dcc7
80064b4: 0800dcc7 .word 0x0800dcc7
80064b8: 0800dcc7 .word 0x0800dcc7
80064bc: 0800dcc7 .word 0x0800dcc7
80064c0: 0800dcc7 .word 0x0800dcc7
80064c4: 0800dcc7 .word 0x0800dcc7
80064c8: 0800dcc7 .word 0x0800dcc7
80064cc: 0800dcc7 .word 0x0800dcc7
80064d0: 0800dcc7 .word 0x0800dcc7
80064d4: 0800dcc7 .word 0x0800dcc7
80064d8: 0800dcc7 .word 0x0800dcc7
80064dc: 0800dcc7 .word 0x0800dcc7
80064e0: 0800dcc7 .word 0x0800dcc7
80064e4: 0800dcc7 .word 0x0800dcc7
80064e8: 0800dcc7 .word 0x0800dcc7
80064ec: 0800dcc7 .word 0x0800dcc7
80064f0: 0800dcc7 .word 0x0800dcc7
80064f4: 0800dcc7 .word 0x0800dcc7
80064f8: 0800dcc7 .word 0x0800dcc7
80064fc: 0800dcc7 .word 0x0800dcc7
8006500: 0800dcc7 .word 0x0800dcc7
8006504: 0800dcc7 .word 0x0800dcc7
{
case LOGO:
//*********************************************************
DrawImage(&bmLOGO_NEW, 0, 54);
8006508: 2236 movs r2, #54 ; 0x36
800650a: 2100 movs r1, #0
800650c: 485a ldr r0, [pc, #360] ; (8006678 <Display+0x31c>)
800650e: f7ff fbb1 bl 8005c74 <DrawImage>
timesLOGO++;
8006512: 4b5a ldr r3, [pc, #360] ; (800667c <Display+0x320>)
8006514: 681b ldr r3, [r3, #0]
8006516: 3301 adds r3, #1
8006518: 4a58 ldr r2, [pc, #352] ; (800667c <Display+0x320>)
800651a: 6013 str r3, [r2, #0]
if(timesLOGO >= 2)
800651c: 4b57 ldr r3, [pc, #348] ; (800667c <Display+0x320>)
800651e: 681b ldr r3, [r3, #0]
8006520: 2b01 cmp r3, #1
8006522: f247 83c9 bls.w 800dcb8 <Display+0x795c>
{
LCD_SetColors(0xFFFFFFFF, 0);
8006526: 2100 movs r1, #0
8006528: f04f 30ff mov.w r0, #4294967295
800652c: f7fe fdc2 bl 80050b4 <LCD_SetColors>
BSP_LCD_SetFont(&Font12);
8006530: 4853 ldr r0, [pc, #332] ; (8006680 <Display+0x324>)
8006532: f7fe fdfb bl 800512c <BSP_LCD_SetFont>
#ifdef A142
if(pardata.LANG == RUS)
8006536: 4b53 ldr r3, [pc, #332] ; (8006684 <Display+0x328>)
8006538: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800653c: b29b uxth r3, r3
800653e: 2b00 cmp r3, #0
8006540: d10c bne.n 800655c <Display+0x200>
{
BSP_LCD_DisplayStringAt(165, 195, "<22>142", CENTER_MODE);
8006542: 2301 movs r3, #1
8006544: 4a50 ldr r2, [pc, #320] ; (8006688 <Display+0x32c>)
8006546: 21c3 movs r1, #195 ; 0xc3
8006548: 20a5 movs r0, #165 ; 0xa5
800654a: f7fe fe79 bl 8005240 <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);
800654e: 2301 movs r3, #1
8006550: 4a4e ldr r2, [pc, #312] ; (800668c <Display+0x330>)
8006552: 21ce movs r1, #206 ; 0xce
8006554: 20a5 movs r0, #165 ; 0xa5
8006556: f7fe fe73 bl 8005240 <BSP_LCD_DisplayStringAt>
800655a: e005 b.n 8006568 <Display+0x20c>
}
else
BSP_LCD_DisplayStringAt(165, 206, "Amplifier A142", CENTER_MODE);
800655c: 2301 movs r3, #1
800655e: 4a4c ldr r2, [pc, #304] ; (8006690 <Display+0x334>)
8006560: 21ce movs r1, #206 ; 0xce
8006562: 20a5 movs r0, #165 ; 0xa5
8006564: f7fe fe6c bl 8005240 <BSP_LCD_DisplayStringAt>
else
BSP_LCD_DisplayStringAt(165, 206, "Amplifier A148", CENTER_MODE);
#endif
#endif
BSP_LCD_DisplayStringAt(160, 224, (char *) _VERSION, CENTER_MODE);
8006568: 2301 movs r3, #1
800656a: 4a4a ldr r2, [pc, #296] ; (8006694 <Display+0x338>)
800656c: 21e0 movs r1, #224 ; 0xe0
800656e: 20a0 movs r0, #160 ; 0xa0
8006570: f7fe fe66 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 4, (char *) _SERIAL_DRAW, CENTER_MODE);
8006574: 2301 movs r3, #1
8006576: 4a48 ldr r2, [pc, #288] ; (8006698 <Display+0x33c>)
8006578: 2104 movs r1, #4
800657a: 20a0 movs r0, #160 ; 0xa0
800657c: f7fe fe60 bl 8005240 <BSP_LCD_DisplayStringAt>
memset(str, 0, sizeof(str));
8006580: f507 7307 add.w r3, r7, #540 ; 0x21c
8006584: 223c movs r2, #60 ; 0x3c
8006586: 2100 movs r1, #0
8006588: 4618 mov r0, r3
800658a: f010 fa48 bl 8016a1e <memset>
l = 0;
800658e: 2300 movs r3, #0
8006590: f8c7 3324 str.w r3, [r7, #804] ; 0x324
if(ip_assigned)
8006594: 4b41 ldr r3, [pc, #260] ; (800669c <Display+0x340>)
8006596: 781b ldrb r3, [r3, #0]
8006598: b2db uxtb r3, r3
800659a: 2b00 cmp r3, #0
800659c: f000 80f9 beq.w 8006792 <Display+0x436>
{
for(j = 0; j < 4; j++)
80065a0: 2300 movs r3, #0
80065a2: f8c7 332c str.w r3, [r7, #812] ; 0x32c
80065a6: e0d9 b.n 800675c <Display+0x400>
{
k = ip[j];
80065a8: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c
80065ac: 4a3c ldr r2, [pc, #240] ; (80066a0 <Display+0x344>)
80065ae: 5cd3 ldrb r3, [r2, r3]
80065b0: f8c7 3328 str.w r3, [r7, #808] ; 0x328
if(k < 10)
80065b4: f8d7 3328 ldr.w r3, [r7, #808] ; 0x328
80065b8: 2b09 cmp r3, #9
80065ba: d81b bhi.n 80065f4 <Display+0x298>
{
str[l++] = (uint8_t) (k + 48);
80065bc: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324
80065c0: 1c5a adds r2, r3, #1
80065c2: f8c7 2324 str.w r2, [r7, #804] ; 0x324
80065c6: f8d7 2328 ldr.w r2, [r7, #808] ; 0x328
80065ca: b2d2 uxtb r2, r2
80065cc: 3230 adds r2, #48 ; 0x30
80065ce: b2d1 uxtb r1, r2
80065d0: f507 7207 add.w r2, r7, #540 ; 0x21c
80065d4: 54d1 strb r1, [r2, r3]
if(j < 3) {
80065d6: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c
80065da: 2b02 cmp r3, #2
80065dc: f200 80b9 bhi.w 8006752 <Display+0x3f6>
str[l++] = '.';
80065e0: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324
80065e4: 1c5a adds r2, r3, #1
80065e6: f8c7 2324 str.w r2, [r7, #804] ; 0x324
80065ea: f507 7207 add.w r2, r7, #540 ; 0x21c
80065ee: 212e movs r1, #46 ; 0x2e
80065f0: 54d1 strb r1, [r2, r3]
80065f2: e0ae b.n 8006752 <Display+0x3f6>
}
}
else
if(k < 100)
80065f4: f8d7 3328 ldr.w r3, [r7, #808] ; 0x328
80065f8: 2b63 cmp r3, #99 ; 0x63
80065fa: d855 bhi.n 80066a8 <Display+0x34c>
{
str[l++] = (uint8_t) ((k / 10) + 48);
80065fc: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324
8006600: 1c5a adds r2, r3, #1
8006602: f8c7 2324 str.w r2, [r7, #804] ; 0x324
8006606: f8d7 2328 ldr.w r2, [r7, #808] ; 0x328
800660a: 4926 ldr r1, [pc, #152] ; (80066a4 <Display+0x348>)
800660c: fba1 1202 umull r1, r2, r1, r2
8006610: 08d2 lsrs r2, r2, #3
8006612: b2d2 uxtb r2, r2
8006614: 3230 adds r2, #48 ; 0x30
8006616: b2d1 uxtb r1, r2
8006618: f507 7207 add.w r2, r7, #540 ; 0x21c
800661c: 54d1 strb r1, [r2, r3]
str[l++] = (uint8_t) ((k % 10) + 48);
800661e: f8d7 1324 ldr.w r1, [r7, #804] ; 0x324
8006622: 1c4b adds r3, r1, #1
8006624: f8c7 3324 str.w r3, [r7, #804] ; 0x324
8006628: f8d7 0328 ldr.w r0, [r7, #808] ; 0x328
800662c: 4b1d ldr r3, [pc, #116] ; (80066a4 <Display+0x348>)
800662e: fba3 2300 umull r2, r3, r3, r0
8006632: 08da lsrs r2, r3, #3
8006634: 4613 mov r3, r2
8006636: 009b lsls r3, r3, #2
8006638: 4413 add r3, r2
800663a: 005b lsls r3, r3, #1
800663c: 1ac2 subs r2, r0, r3
800663e: b2d3 uxtb r3, r2
8006640: 3330 adds r3, #48 ; 0x30
8006642: b2da uxtb r2, r3
8006644: f507 7307 add.w r3, r7, #540 ; 0x21c
8006648: 545a strb r2, [r3, r1]
if(j < 3) {
800664a: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c
800664e: 2b02 cmp r3, #2
8006650: d87f bhi.n 8006752 <Display+0x3f6>
str[l++] = '.';
8006652: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324
8006656: 1c5a adds r2, r3, #1
8006658: f8c7 2324 str.w r2, [r7, #804] ; 0x324
800665c: f507 7207 add.w r2, r7, #540 ; 0x21c
8006660: 212e movs r1, #46 ; 0x2e
8006662: 54d1 strb r1, [r2, r3]
8006664: e075 b.n 8006752 <Display+0x3f6>
8006666: bf00 nop
8006668: 2006b958 .word 0x2006b958
800666c: 2006b95c .word 0x2006b95c
8006670: 2006b954 .word 0x2006b954
8006674: 200208b9 .word 0x200208b9
8006678: 0802ff14 .word 0x0802ff14
800667c: 2006b950 .word 0x2006b950
8006680: 20020000 .word 0x20020000
8006684: 2006bb88 .word 0x2006bb88
8006688: 080182f8 .word 0x080182f8
800668c: 08018300 .word 0x08018300
8006690: 08018320 .word 0x08018320
8006694: 0801b004 .word 0x0801b004
8006698: 20020020 .word 0x20020020
800669c: 2006b974 .word 0x2006b974
80066a0: 2006b96c .word 0x2006b96c
80066a4: cccccccd .word 0xcccccccd
}
}
else
{
str[l++] = (uint8_t) ((k / 100) + 48);
80066a8: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324
80066ac: 1c5a adds r2, r3, #1
80066ae: f8c7 2324 str.w r2, [r7, #804] ; 0x324
80066b2: f8d7 2328 ldr.w r2, [r7, #808] ; 0x328
80066b6: 49ba ldr r1, [pc, #744] ; (80069a0 <Display+0x644>)
80066b8: fba1 1202 umull r1, r2, r1, r2
80066bc: 0952 lsrs r2, r2, #5
80066be: b2d2 uxtb r2, r2
80066c0: 3230 adds r2, #48 ; 0x30
80066c2: b2d1 uxtb r1, r2
80066c4: f507 7207 add.w r2, r7, #540 ; 0x21c
80066c8: 54d1 strb r1, [r2, r3]
str[l++] = (uint8_t) ((k % 100 / 10) + 48);
80066ca: f8d7 2324 ldr.w r2, [r7, #804] ; 0x324
80066ce: 1c53 adds r3, r2, #1
80066d0: f8c7 3324 str.w r3, [r7, #804] ; 0x324
80066d4: f8d7 1328 ldr.w r1, [r7, #808] ; 0x328
80066d8: 4bb1 ldr r3, [pc, #708] ; (80069a0 <Display+0x644>)
80066da: fba3 0301 umull r0, r3, r3, r1
80066de: 095b lsrs r3, r3, #5
80066e0: 2064 movs r0, #100 ; 0x64
80066e2: fb00 f303 mul.w r3, r0, r3
80066e6: 1acb subs r3, r1, r3
80066e8: 49ae ldr r1, [pc, #696] ; (80069a4 <Display+0x648>)
80066ea: fba1 1303 umull r1, r3, r1, r3
80066ee: 08db lsrs r3, r3, #3
80066f0: b2db uxtb r3, r3
80066f2: 3330 adds r3, #48 ; 0x30
80066f4: b2d9 uxtb r1, r3
80066f6: f507 7307 add.w r3, r7, #540 ; 0x21c
80066fa: 5499 strb r1, [r3, r2]
str[l++] = (uint8_t) ((k % 100 % 10) + 48);
80066fc: f8d7 0324 ldr.w r0, [r7, #804] ; 0x324
8006700: 1c43 adds r3, r0, #1
8006702: f8c7 3324 str.w r3, [r7, #804] ; 0x324
8006706: f8d7 3328 ldr.w r3, [r7, #808] ; 0x328
800670a: 4aa5 ldr r2, [pc, #660] ; (80069a0 <Display+0x644>)
800670c: fba2 1203 umull r1, r2, r2, r3
8006710: 0952 lsrs r2, r2, #5
8006712: 2164 movs r1, #100 ; 0x64
8006714: fb01 f202 mul.w r2, r1, r2
8006718: 1a9a subs r2, r3, r2
800671a: 4ba2 ldr r3, [pc, #648] ; (80069a4 <Display+0x648>)
800671c: fba3 1302 umull r1, r3, r3, r2
8006720: 08d9 lsrs r1, r3, #3
8006722: 460b mov r3, r1
8006724: 009b lsls r3, r3, #2
8006726: 440b add r3, r1
8006728: 005b lsls r3, r3, #1
800672a: 1ad1 subs r1, r2, r3
800672c: b2cb uxtb r3, r1
800672e: 3330 adds r3, #48 ; 0x30
8006730: b2da uxtb r2, r3
8006732: f507 7307 add.w r3, r7, #540 ; 0x21c
8006736: 541a strb r2, [r3, r0]
if(j < 3) {
8006738: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c
800673c: 2b02 cmp r3, #2
800673e: d808 bhi.n 8006752 <Display+0x3f6>
str[l++] = '.';
8006740: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324
8006744: 1c5a adds r2, r3, #1
8006746: f8c7 2324 str.w r2, [r7, #804] ; 0x324
800674a: f507 7207 add.w r2, r7, #540 ; 0x21c
800674e: 212e movs r1, #46 ; 0x2e
8006750: 54d1 strb r1, [r2, r3]
for(j = 0; j < 4; j++)
8006752: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c
8006756: 3301 adds r3, #1
8006758: f8c7 332c str.w r3, [r7, #812] ; 0x32c
800675c: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c
8006760: 2b03 cmp r3, #3
8006762: f67f af21 bls.w 80065a8 <Display+0x24c>
}
}
}
strcat(str, ":7000");
8006766: f507 7307 add.w r3, r7, #540 ; 0x21c
800676a: 4618 mov r0, r3
800676c: f7f9 fd64 bl 8000238 <strlen>
8006770: 4603 mov r3, r0
8006772: 461a mov r2, r3
8006774: f507 7307 add.w r3, r7, #540 ; 0x21c
8006778: 4413 add r3, r2
800677a: 4a8b ldr r2, [pc, #556] ; (80069a8 <Display+0x64c>)
800677c: 6810 ldr r0, [r2, #0]
800677e: 6018 str r0, [r3, #0]
8006780: 8892 ldrh r2, [r2, #4]
8006782: 809a strh r2, [r3, #4]
BSP_LCD_DisplayStringAt(160, 24, str, CENTER_MODE);
8006784: f507 7207 add.w r2, r7, #540 ; 0x21c
8006788: 2301 movs r3, #1
800678a: 2118 movs r1, #24
800678c: 20a0 movs r0, #160 ; 0xa0
800678e: f7fe fd57 bl 8005240 <BSP_LCD_DisplayStringAt>
/*if(CORRECTION == false) {
BSP_LCD_DisplayStringAt(0, 4, ".", LEFT_MODE);
}*/
DrawSpinner(300, 20);
8006792: 2114 movs r1, #20
8006794: f44f 7096 mov.w r0, #300 ; 0x12c
8006798: f007 fdee bl 800e378 <DrawSpinner>
if(clbr)
800679c: 4b83 ldr r3, [pc, #524] ; (80069ac <Display+0x650>)
800679e: 781b ldrb r3, [r3, #0]
80067a0: b2db uxtb r3, r3
80067a2: 2b00 cmp r3, #0
80067a4: d00b beq.n 80067be <Display+0x462>
{
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
80067a6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80067aa: f04f 30ff mov.w r0, #4294967295
80067ae: f7fe fc81 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 18, "<22><><C7><C0><CF><D3> <20><><CA><C0><CB><C8><C1><D0><CE><C2>", CENTER_MODE);
80067b2: 2301 movs r3, #1
80067b4: 4a7e ldr r2, [pc, #504] ; (80069b0 <Display+0x654>)
80067b6: 2112 movs r1, #18
80067b8: 20a0 movs r0, #160 ; 0xa0
80067ba: f7fe fd41 bl 8005240 <BSP_LCD_DisplayStringAt>
}
if(ASK_COMPLETE)
80067be: 4b7d ldr r3, [pc, #500] ; (80069b4 <Display+0x658>)
80067c0: 781b ldrb r3, [r3, #0]
80067c2: b2db uxtb r3, r3
80067c4: 2b00 cmp r3, #0
80067c6: f007 8277 beq.w 800dcb8 <Display+0x795c>
{
timesLOGO = 0;
80067ca: 4b7b ldr r3, [pc, #492] ; (80069b8 <Display+0x65c>)
80067cc: 2200 movs r2, #0
80067ce: 601a str r2, [r3, #0]
if(clbr)
80067d0: 4b76 ldr r3, [pc, #472] ; (80069ac <Display+0x650>)
80067d2: 781b ldrb r3, [r3, #0]
80067d4: b2db uxtb r3, r3
80067d6: 2b00 cmp r3, #0
80067d8: d007 beq.n 80067ea <Display+0x48e>
{
menu = CALIBR_00;
80067da: 4b78 ldr r3, [pc, #480] ; (80069bc <Display+0x660>)
80067dc: 2201 movs r2, #1
80067de: 701a strb r2, [r3, #0]
menupos = Ch1;
80067e0: 4b77 ldr r3, [pc, #476] ; (80069c0 <Display+0x664>)
80067e2: 2200 movs r2, #0
80067e4: 701a strb r2, [r3, #0]
}
else
menu = MAIN;
}
}
break;
80067e6: f007 ba67 b.w 800dcb8 <Display+0x795c>
menu = MAIN;
80067ea: 4b74 ldr r3, [pc, #464] ; (80069bc <Display+0x660>)
80067ec: 2200 movs r2, #0
80067ee: 701a strb r2, [r3, #0]
break;
80067f0: f007 ba62 b.w 800dcb8 <Display+0x795c>
case OPTIONS:
BSP_LCD_SetFont(&Font12);
80067f4: 4873 ldr r0, [pc, #460] ; (80069c4 <Display+0x668>)
80067f6: f7fe fc99 bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
80067fa: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80067fe: f04f 30ff mov.w r0, #4294967295
8006802: f7fe fc57 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(55, 120, (char *) pOPTIONS[pardata.LANG][2], LEFT_MODE); //<2F><><DF><E7>
8006806: 4b70 ldr r3, [pc, #448] ; (80069c8 <Display+0x66c>)
8006808: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800680c: b29b uxth r3, r3
800680e: 4a6f ldr r2, [pc, #444] ; (80069cc <Display+0x670>)
8006810: 011b lsls r3, r3, #4
8006812: 4413 add r3, r2
8006814: 3308 adds r3, #8
8006816: 681a ldr r2, [r3, #0]
8006818: 2303 movs r3, #3
800681a: 2178 movs r1, #120 ; 0x78
800681c: 2037 movs r0, #55 ; 0x37
800681e: f7fe fd0f bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Back)
8006822: 4b67 ldr r3, [pc, #412] ; (80069c0 <Display+0x664>)
8006824: 781b ldrb r3, [r3, #0]
8006826: b2db uxtb r3, r3
8006828: 2bff cmp r3, #255 ; 0xff
800682a: d148 bne.n 80068be <Display+0x562>
{
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800682c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006830: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8006834: f7fe fc3e bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(55, 80, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //<2F><><CD><E0><E7>
8006838: 4b63 ldr r3, [pc, #396] ; (80069c8 <Display+0x66c>)
800683a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800683e: b29b uxth r3, r3
8006840: 4a62 ldr r2, [pc, #392] ; (80069cc <Display+0x670>)
8006842: 011b lsls r3, r3, #4
8006844: 4413 add r3, r2
8006846: 681a ldr r2, [r3, #0]
8006848: 2303 movs r3, #3
800684a: 2150 movs r1, #80 ; 0x50
800684c: 2037 movs r0, #55 ; 0x37
800684e: f7fe fcf7 bl 8005240 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
8006852: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006856: f04f 30ff mov.w r0, #4294967295
800685a: f7fe fc2b bl 80050b4 <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>
800685e: 4b5a ldr r3, [pc, #360] ; (80069c8 <Display+0x66c>)
8006860: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006864: b29b uxth r3, r3
8006866: 4a59 ldr r2, [pc, #356] ; (80069cc <Display+0x670>)
8006868: 011b lsls r3, r3, #4
800686a: 4413 add r3, r2
800686c: 3304 adds r3, #4
800686e: 681a ldr r2, [r3, #0]
8006870: 2303 movs r3, #3
8006872: 2164 movs r1, #100 ; 0x64
8006874: 2037 movs r0, #55 ; 0x37
8006876: f7fe fce3 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(55, 140, (char *) pOPTIONS[pardata.LANG][3], LEFT_MODE); //Off
800687a: 4b53 ldr r3, [pc, #332] ; (80069c8 <Display+0x66c>)
800687c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006880: b29b uxth r3, r3
8006882: 4a52 ldr r2, [pc, #328] ; (80069cc <Display+0x670>)
8006884: 011b lsls r3, r3, #4
8006886: 4413 add r3, r2
8006888: 330c adds r3, #12
800688a: 681a ldr r2, [r3, #0]
800688c: 2303 movs r3, #3
800688e: 218c movs r1, #140 ; 0x8c
8006890: 2037 movs r0, #55 ; 0x37
8006892: f7fe fcd5 bl 8005240 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8006896: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800689a: 484d ldr r0, [pc, #308] ; (80069d0 <Display+0x674>)
800689c: f7fe fc0a bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //<2F><><DF><E7>
80068a0: 4b49 ldr r3, [pc, #292] ; (80069c8 <Display+0x66c>)
80068a2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80068a6: b29b uxth r3, r3
80068a8: 461a mov r2, r3
80068aa: 4b4a ldr r3, [pc, #296] ; (80069d4 <Display+0x678>)
80068ac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80068b0: 2301 movs r3, #1
80068b2: 2178 movs r1, #120 ; 0x78
80068b4: 20f0 movs r0, #240 ; 0xf0
80068b6: f7fe fcc3 bl 8005240 <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;
80068ba: f007 b9ff b.w 800dcbc <Display+0x7960>
if(menupos == Inputs)
80068be: 4b40 ldr r3, [pc, #256] ; (80069c0 <Display+0x664>)
80068c0: 781b ldrb r3, [r3, #0]
80068c2: b2db uxtb r3, r3
80068c4: 2b00 cmp r3, #0
80068c6: d148 bne.n 800695a <Display+0x5fe>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
80068c8: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80068cc: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
80068d0: f7fe fbf0 bl 80050b4 <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>
80068d4: 4b3c ldr r3, [pc, #240] ; (80069c8 <Display+0x66c>)
80068d6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80068da: b29b uxth r3, r3
80068dc: 4a3b ldr r2, [pc, #236] ; (80069cc <Display+0x670>)
80068de: 011b lsls r3, r3, #4
80068e0: 4413 add r3, r2
80068e2: 3304 adds r3, #4
80068e4: 681a ldr r2, [r3, #0]
80068e6: 2303 movs r3, #3
80068e8: 2164 movs r1, #100 ; 0x64
80068ea: 2037 movs r0, #55 ; 0x37
80068ec: f7fe fca8 bl 8005240 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
80068f0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80068f4: f04f 30ff mov.w r0, #4294967295
80068f8: f7fe fbdc bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(55, 80, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //<2F><><CD><E0><E7>
80068fc: 4b32 ldr r3, [pc, #200] ; (80069c8 <Display+0x66c>)
80068fe: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006902: b29b uxth r3, r3
8006904: 4a31 ldr r2, [pc, #196] ; (80069cc <Display+0x670>)
8006906: 011b lsls r3, r3, #4
8006908: 4413 add r3, r2
800690a: 681a ldr r2, [r3, #0]
800690c: 2303 movs r3, #3
800690e: 2150 movs r1, #80 ; 0x50
8006910: 2037 movs r0, #55 ; 0x37
8006912: f7fe fc95 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(55, 140, (char *) pOPTIONS[pardata.LANG][3], LEFT_MODE); //Off
8006916: 4b2c ldr r3, [pc, #176] ; (80069c8 <Display+0x66c>)
8006918: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800691c: b29b uxth r3, r3
800691e: 4a2b ldr r2, [pc, #172] ; (80069cc <Display+0x670>)
8006920: 011b lsls r3, r3, #4
8006922: 4413 add r3, r2
8006924: 330c adds r3, #12
8006926: 681a ldr r2, [r3, #0]
8006928: 2303 movs r3, #3
800692a: 218c movs r1, #140 ; 0x8c
800692c: 2037 movs r0, #55 ; 0x37
800692e: f7fe fc87 bl 8005240 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8006932: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006936: 4826 ldr r0, [pc, #152] ; (80069d0 <Display+0x674>)
8006938: f7fe fbbc bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //<2F><><DF><E7>
800693c: 4b22 ldr r3, [pc, #136] ; (80069c8 <Display+0x66c>)
800693e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006942: b29b uxth r3, r3
8006944: 461a mov r2, r3
8006946: 4b23 ldr r3, [pc, #140] ; (80069d4 <Display+0x678>)
8006948: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800694c: 2301 movs r3, #1
800694e: 2178 movs r1, #120 ; 0x78
8006950: 20f0 movs r0, #240 ; 0xf0
8006952: f7fe fc75 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
8006956: f007 b9b1 b.w 800dcbc <Display+0x7960>
if(menupos == Lang)
800695a: 4b19 ldr r3, [pc, #100] ; (80069c0 <Display+0x664>)
800695c: 781b ldrb r3, [r3, #0]
800695e: b2db uxtb r3, r3
8006960: 2b01 cmp r3, #1
8006962: d17b bne.n 8006a5c <Display+0x700>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8006964: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006968: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800696c: f7fe fba2 bl 80050b4 <LCD_SetColors>
if(focused)
8006970: 4b19 ldr r3, [pc, #100] ; (80069d8 <Display+0x67c>)
8006972: 781b ldrb r3, [r3, #0]
8006974: b2db uxtb r3, r3
8006976: 2b00 cmp r3, #0
8006978: d032 beq.n 80069e0 <Display+0x684>
if(blk)
800697a: 4b18 ldr r3, [pc, #96] ; (80069dc <Display+0x680>)
800697c: 681b ldr r3, [r3, #0]
800697e: 2b00 cmp r3, #0
8006980: d03b beq.n 80069fa <Display+0x69e>
BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //<2F><><DF><E7>
8006982: 4b11 ldr r3, [pc, #68] ; (80069c8 <Display+0x66c>)
8006984: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006988: b29b uxth r3, r3
800698a: 461a mov r2, r3
800698c: 4b11 ldr r3, [pc, #68] ; (80069d4 <Display+0x678>)
800698e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8006992: 2301 movs r3, #1
8006994: 2178 movs r1, #120 ; 0x78
8006996: 20f0 movs r0, #240 ; 0xf0
8006998: f7fe fc52 bl 8005240 <BSP_LCD_DisplayStringAt>
800699c: e02d b.n 80069fa <Display+0x69e>
800699e: bf00 nop
80069a0: 51eb851f .word 0x51eb851f
80069a4: cccccccd .word 0xcccccccd
80069a8: 08018330 .word 0x08018330
80069ac: 2006c0fc .word 0x2006c0fc
80069b0: 08018338 .word 0x08018338
80069b4: 2006b970 .word 0x2006b970
80069b8: 2006b950 .word 0x2006b950
80069bc: 200208b9 .word 0x200208b9
80069c0: 20020010 .word 0x20020010
80069c4: 20020000 .word 0x20020000
80069c8: 2006bb88 .word 0x2006bb88
80069cc: 20020034 .word 0x20020034
80069d0: ffd8aa57 .word 0xffd8aa57
80069d4: 20020844 .word 0x20020844
80069d8: 200208c4 .word 0x200208c4
80069dc: 2006b958 .word 0x2006b958
BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //<2F><><DF><E7>
80069e0: 4b99 ldr r3, [pc, #612] ; (8006c48 <Display+0x8ec>)
80069e2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80069e6: b29b uxth r3, r3
80069e8: 461a mov r2, r3
80069ea: 4b98 ldr r3, [pc, #608] ; (8006c4c <Display+0x8f0>)
80069ec: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80069f0: 2301 movs r3, #1
80069f2: 2178 movs r1, #120 ; 0x78
80069f4: 20f0 movs r0, #240 ; 0xf0
80069f6: f7fe fc23 bl 8005240 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
80069fa: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80069fe: f04f 30ff mov.w r0, #4294967295
8006a02: f7fe fb57 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(55, 80, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //<2F><><CD><E0><E7>
8006a06: 4b90 ldr r3, [pc, #576] ; (8006c48 <Display+0x8ec>)
8006a08: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006a0c: b29b uxth r3, r3
8006a0e: 4a90 ldr r2, [pc, #576] ; (8006c50 <Display+0x8f4>)
8006a10: 011b lsls r3, r3, #4
8006a12: 4413 add r3, r2
8006a14: 681a ldr r2, [r3, #0]
8006a16: 2303 movs r3, #3
8006a18: 2150 movs r1, #80 ; 0x50
8006a1a: 2037 movs r0, #55 ; 0x37
8006a1c: f7fe fc10 bl 8005240 <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>
8006a20: 4b89 ldr r3, [pc, #548] ; (8006c48 <Display+0x8ec>)
8006a22: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006a26: b29b uxth r3, r3
8006a28: 4a89 ldr r2, [pc, #548] ; (8006c50 <Display+0x8f4>)
8006a2a: 011b lsls r3, r3, #4
8006a2c: 4413 add r3, r2
8006a2e: 3304 adds r3, #4
8006a30: 681a ldr r2, [r3, #0]
8006a32: 2303 movs r3, #3
8006a34: 2164 movs r1, #100 ; 0x64
8006a36: 2037 movs r0, #55 ; 0x37
8006a38: f7fe fc02 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(55, 140, (char *) pOPTIONS[pardata.LANG][3], LEFT_MODE); //Off
8006a3c: 4b82 ldr r3, [pc, #520] ; (8006c48 <Display+0x8ec>)
8006a3e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006a42: b29b uxth r3, r3
8006a44: 4a82 ldr r2, [pc, #520] ; (8006c50 <Display+0x8f4>)
8006a46: 011b lsls r3, r3, #4
8006a48: 4413 add r3, r2
8006a4a: 330c adds r3, #12
8006a4c: 681a ldr r2, [r3, #0]
8006a4e: 2303 movs r3, #3
8006a50: 218c movs r1, #140 ; 0x8c
8006a52: 2037 movs r0, #55 ; 0x37
8006a54: f7fe fbf4 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
8006a58: f007 b930 b.w 800dcbc <Display+0x7960>
if(menupos == PowerOff)
8006a5c: 4b7d ldr r3, [pc, #500] ; (8006c54 <Display+0x8f8>)
8006a5e: 781b ldrb r3, [r3, #0]
8006a60: b2db uxtb r3, r3
8006a62: 2b02 cmp r3, #2
8006a64: f047 812a bne.w 800dcbc <Display+0x7960>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8006a68: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006a6c: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8006a70: f7fe fb20 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(55, 140, (char *) pOPTIONS[pardata.LANG][3], LEFT_MODE); //Off
8006a74: 4b74 ldr r3, [pc, #464] ; (8006c48 <Display+0x8ec>)
8006a76: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006a7a: b29b uxth r3, r3
8006a7c: 4a74 ldr r2, [pc, #464] ; (8006c50 <Display+0x8f4>)
8006a7e: 011b lsls r3, r3, #4
8006a80: 4413 add r3, r2
8006a82: 330c adds r3, #12
8006a84: 681a ldr r2, [r3, #0]
8006a86: 2303 movs r3, #3
8006a88: 218c movs r1, #140 ; 0x8c
8006a8a: 2037 movs r0, #55 ; 0x37
8006a8c: f7fe fbd8 bl 8005240 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
8006a90: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006a94: f04f 30ff mov.w r0, #4294967295
8006a98: f7fe fb0c bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(55, 80, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //<2F><><CD><E0><E7>
8006a9c: 4b6a ldr r3, [pc, #424] ; (8006c48 <Display+0x8ec>)
8006a9e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006aa2: b29b uxth r3, r3
8006aa4: 4a6a ldr r2, [pc, #424] ; (8006c50 <Display+0x8f4>)
8006aa6: 011b lsls r3, r3, #4
8006aa8: 4413 add r3, r2
8006aaa: 681a ldr r2, [r3, #0]
8006aac: 2303 movs r3, #3
8006aae: 2150 movs r1, #80 ; 0x50
8006ab0: 2037 movs r0, #55 ; 0x37
8006ab2: f7fe fbc5 bl 8005240 <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>
8006ab6: 4b64 ldr r3, [pc, #400] ; (8006c48 <Display+0x8ec>)
8006ab8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006abc: b29b uxth r3, r3
8006abe: 4a64 ldr r2, [pc, #400] ; (8006c50 <Display+0x8f4>)
8006ac0: 011b lsls r3, r3, #4
8006ac2: 4413 add r3, r2
8006ac4: 3304 adds r3, #4
8006ac6: 681a ldr r2, [r3, #0]
8006ac8: 2303 movs r3, #3
8006aca: 2164 movs r1, #100 ; 0x64
8006acc: 2037 movs r0, #55 ; 0x37
8006ace: f7fe fbb7 bl 8005240 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8006ad2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006ad6: 4860 ldr r0, [pc, #384] ; (8006c58 <Display+0x8fc>)
8006ad8: f7fe faec bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //<2F><><DF><E7>
8006adc: 4b5a ldr r3, [pc, #360] ; (8006c48 <Display+0x8ec>)
8006ade: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006ae2: b29b uxth r3, r3
8006ae4: 461a mov r2, r3
8006ae6: 4b59 ldr r3, [pc, #356] ; (8006c4c <Display+0x8f0>)
8006ae8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8006aec: 2301 movs r3, #1
8006aee: 2178 movs r1, #120 ; 0x78
8006af0: 20f0 movs r0, #240 ; 0xf0
8006af2: f7fe fba5 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
8006af6: f007 b8e1 b.w 800dcbc <Display+0x7960>
case SETTINGS: //todo
//////////////////////////////////////////////////////////////////////////////
if(pardata.amplif[Ch1].SENS <= 0.0f) {
8006afa: 4b53 ldr r3, [pc, #332] ; (8006c48 <Display+0x8ec>)
8006afc: edd3 7a06 vldr s15, [r3, #24]
8006b00: eef5 7ac0 vcmpe.f32 s15, #0.0
8006b04: eef1 fa10 vmrs APSR_nzcv, fpscr
8006b08: d807 bhi.n 8006b1a <Display+0x7be>
pardata.amplif[Ch1].SENS = 1.0f;
8006b0a: 4b4f ldr r3, [pc, #316] ; (8006c48 <Display+0x8ec>)
8006b0c: f04f 527e mov.w r2, #1065353216 ; 0x3f800000
8006b10: 619a str r2, [r3, #24]
s = 10000;
8006b12: f242 7310 movw r3, #10000 ; 0x2710
8006b16: f8c7 3344 str.w r3, [r7, #836] ; 0x344
}
if(pardata.amplif[Ch1].SENS < 10.0f) {
8006b1a: 4b4b ldr r3, [pc, #300] ; (8006c48 <Display+0x8ec>)
8006b1c: edd3 7a06 vldr s15, [r3, #24]
8006b20: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8006b24: eef4 7ac7 vcmpe.f32 s15, s14
8006b28: eef1 fa10 vmrs APSR_nzcv, fpscr
8006b2c: d514 bpl.n 8006b58 <Display+0x7fc>
s = (uint32_t) ((pardata.amplif[Ch1].SENS * 10000.0f) + 0.5f);
8006b2e: 4b46 ldr r3, [pc, #280] ; (8006c48 <Display+0x8ec>)
8006b30: edd3 7a06 vldr s15, [r3, #24]
8006b34: ed9f 7a49 vldr s14, [pc, #292] ; 8006c5c <Display+0x900>
8006b38: ee67 7a87 vmul.f32 s15, s15, s14
8006b3c: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006b40: ee77 7a87 vadd.f32 s15, s15, s14
8006b44: eefc 7ae7 vcvt.u32.f32 s15, s15
8006b48: ee17 3a90 vmov r3, s15
8006b4c: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt1 = 4;
8006b50: 2304 movs r3, #4
8006b52: f887 3318 strb.w r3, [r7, #792] ; 0x318
8006b56: e09c b.n 8006c92 <Display+0x936>
}
else if(pardata.amplif[Ch1].SENS < 100.0f) {
8006b58: 4b3b ldr r3, [pc, #236] ; (8006c48 <Display+0x8ec>)
8006b5a: edd3 7a06 vldr s15, [r3, #24]
8006b5e: ed9f 7a40 vldr s14, [pc, #256] ; 8006c60 <Display+0x904>
8006b62: eef4 7ac7 vcmpe.f32 s15, s14
8006b66: eef1 fa10 vmrs APSR_nzcv, fpscr
8006b6a: d514 bpl.n 8006b96 <Display+0x83a>
s = (uint32_t) ((pardata.amplif[Ch1].SENS * 1000.0f) + 0.5f);
8006b6c: 4b36 ldr r3, [pc, #216] ; (8006c48 <Display+0x8ec>)
8006b6e: edd3 7a06 vldr s15, [r3, #24]
8006b72: ed9f 7a3c vldr s14, [pc, #240] ; 8006c64 <Display+0x908>
8006b76: ee67 7a87 vmul.f32 s15, s15, s14
8006b7a: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006b7e: ee77 7a87 vadd.f32 s15, s15, s14
8006b82: eefc 7ae7 vcvt.u32.f32 s15, s15
8006b86: ee17 3a90 vmov r3, s15
8006b8a: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt1 = 3;
8006b8e: 2303 movs r3, #3
8006b90: f887 3318 strb.w r3, [r7, #792] ; 0x318
8006b94: e07d b.n 8006c92 <Display+0x936>
}
else if(pardata.amplif[Ch1].SENS < 1000.0f) {
8006b96: 4b2c ldr r3, [pc, #176] ; (8006c48 <Display+0x8ec>)
8006b98: edd3 7a06 vldr s15, [r3, #24]
8006b9c: ed9f 7a31 vldr s14, [pc, #196] ; 8006c64 <Display+0x908>
8006ba0: eef4 7ac7 vcmpe.f32 s15, s14
8006ba4: eef1 fa10 vmrs APSR_nzcv, fpscr
8006ba8: d514 bpl.n 8006bd4 <Display+0x878>
s = (uint32_t) ((pardata.amplif[Ch1].SENS * 100.0f) + 0.5f);
8006baa: 4b27 ldr r3, [pc, #156] ; (8006c48 <Display+0x8ec>)
8006bac: edd3 7a06 vldr s15, [r3, #24]
8006bb0: ed9f 7a2b vldr s14, [pc, #172] ; 8006c60 <Display+0x904>
8006bb4: ee67 7a87 vmul.f32 s15, s15, s14
8006bb8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006bbc: ee77 7a87 vadd.f32 s15, s15, s14
8006bc0: eefc 7ae7 vcvt.u32.f32 s15, s15
8006bc4: ee17 3a90 vmov r3, s15
8006bc8: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt1 = 2;
8006bcc: 2302 movs r3, #2
8006bce: f887 3318 strb.w r3, [r7, #792] ; 0x318
8006bd2: e05e b.n 8006c92 <Display+0x936>
}
else if(pardata.amplif[Ch1].SENS < 10000.0f) {
8006bd4: 4b1c ldr r3, [pc, #112] ; (8006c48 <Display+0x8ec>)
8006bd6: edd3 7a06 vldr s15, [r3, #24]
8006bda: ed9f 7a20 vldr s14, [pc, #128] ; 8006c5c <Display+0x900>
8006bde: eef4 7ac7 vcmpe.f32 s15, s14
8006be2: eef1 fa10 vmrs APSR_nzcv, fpscr
8006be6: d514 bpl.n 8006c12 <Display+0x8b6>
s = (uint32_t) ((pardata.amplif[Ch1].SENS * 10.0f) + 0.5f);
8006be8: 4b17 ldr r3, [pc, #92] ; (8006c48 <Display+0x8ec>)
8006bea: edd3 7a06 vldr s15, [r3, #24]
8006bee: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8006bf2: ee67 7a87 vmul.f32 s15, s15, s14
8006bf6: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006bfa: ee77 7a87 vadd.f32 s15, s15, s14
8006bfe: eefc 7ae7 vcvt.u32.f32 s15, s15
8006c02: ee17 3a90 vmov r3, s15
8006c06: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt1 = 1;
8006c0a: 2301 movs r3, #1
8006c0c: f887 3318 strb.w r3, [r7, #792] ; 0x318
8006c10: e03f b.n 8006c92 <Display+0x936>
}
else if(pardata.amplif[Ch1].SENS < 100000.0f) {
8006c12: 4b0d ldr r3, [pc, #52] ; (8006c48 <Display+0x8ec>)
8006c14: edd3 7a06 vldr s15, [r3, #24]
8006c18: ed9f 7a13 vldr s14, [pc, #76] ; 8006c68 <Display+0x90c>
8006c1c: eef4 7ac7 vcmpe.f32 s15, s14
8006c20: eef1 fa10 vmrs APSR_nzcv, fpscr
8006c24: d522 bpl.n 8006c6c <Display+0x910>
s = (uint32_t) ((pardata.amplif[Ch1].SENS) + 0.5f);
8006c26: 4b08 ldr r3, [pc, #32] ; (8006c48 <Display+0x8ec>)
8006c28: edd3 7a06 vldr s15, [r3, #24]
8006c2c: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006c30: ee77 7a87 vadd.f32 s15, s15, s14
8006c34: eefc 7ae7 vcvt.u32.f32 s15, s15
8006c38: ee17 3a90 vmov r3, s15
8006c3c: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt1 = 0;
8006c40: 2300 movs r3, #0
8006c42: f887 3318 strb.w r3, [r7, #792] ; 0x318
8006c46: e024 b.n 8006c92 <Display+0x936>
8006c48: 2006bb88 .word 0x2006bb88
8006c4c: 20020844 .word 0x20020844
8006c50: 20020034 .word 0x20020034
8006c54: 20020010 .word 0x20020010
8006c58: ffd8aa57 .word 0xffd8aa57
8006c5c: 461c4000 .word 0x461c4000
8006c60: 42c80000 .word 0x42c80000
8006c64: 447a0000 .word 0x447a0000
8006c68: 47c35000 .word 0x47c35000
}
else if(pardata.amplif[Ch1].SENS >= 100000.0f) {
8006c6c: 4bd8 ldr r3, [pc, #864] ; (8006fd0 <Display+0xc74>)
8006c6e: edd3 7a06 vldr s15, [r3, #24]
8006c72: ed9f 7ad8 vldr s14, [pc, #864] ; 8006fd4 <Display+0xc78>
8006c76: eef4 7ac7 vcmpe.f32 s15, s14
8006c7a: eef1 fa10 vmrs APSR_nzcv, fpscr
8006c7e: db08 blt.n 8006c92 <Display+0x936>
pardata.amplif[Ch1].SENS = 99999.0f;
8006c80: 4bd3 ldr r3, [pc, #844] ; (8006fd0 <Display+0xc74>)
8006c82: 4ad5 ldr r2, [pc, #852] ; (8006fd8 <Display+0xc7c>)
8006c84: 619a str r2, [r3, #24]
s = 99999;
8006c86: 4bd5 ldr r3, [pc, #852] ; (8006fdc <Display+0xc80>)
8006c88: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt1 = 0;
8006c8c: 2300 movs r3, #0
8006c8e: f887 3318 strb.w r3, [r7, #792] ; 0x318
}
idt1 = (s / 10000);
8006c92: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
8006c96: 4ad2 ldr r2, [pc, #840] ; (8006fe0 <Display+0xc84>)
8006c98: fba2 2303 umull r2, r3, r2, r3
8006c9c: 0b5b lsrs r3, r3, #13
8006c9e: b2db uxtb r3, r3
8006ca0: f887 331f strb.w r3, [r7, #799] ; 0x31f
iet1 = (s % 10000 / 1000);
8006ca4: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
8006ca8: 4bcd ldr r3, [pc, #820] ; (8006fe0 <Display+0xc84>)
8006caa: fba3 1302 umull r1, r3, r3, r2
8006cae: 0b5b lsrs r3, r3, #13
8006cb0: f242 7110 movw r1, #10000 ; 0x2710
8006cb4: fb01 f303 mul.w r3, r1, r3
8006cb8: 1ad3 subs r3, r2, r3
8006cba: 4aca ldr r2, [pc, #808] ; (8006fe4 <Display+0xc88>)
8006cbc: fba2 2303 umull r2, r3, r2, r3
8006cc0: 099b lsrs r3, r3, #6
8006cc2: b2db uxtb r3, r3
8006cc4: f887 331e strb.w r3, [r7, #798] ; 0x31e
ies1 = (s % 10000 % 1000 / 100);
8006cc8: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
8006ccc: 4bc4 ldr r3, [pc, #784] ; (8006fe0 <Display+0xc84>)
8006cce: fba3 1302 umull r1, r3, r3, r2
8006cd2: 0b5b lsrs r3, r3, #13
8006cd4: f242 7110 movw r1, #10000 ; 0x2710
8006cd8: fb01 f303 mul.w r3, r1, r3
8006cdc: 1ad3 subs r3, r2, r3
8006cde: 4ac1 ldr r2, [pc, #772] ; (8006fe4 <Display+0xc88>)
8006ce0: fba2 1203 umull r1, r2, r2, r3
8006ce4: 0992 lsrs r2, r2, #6
8006ce6: f44f 717a mov.w r1, #1000 ; 0x3e8
8006cea: fb01 f202 mul.w r2, r1, r2
8006cee: 1a9a subs r2, r3, r2
8006cf0: 4bbd ldr r3, [pc, #756] ; (8006fe8 <Display+0xc8c>)
8006cf2: fba3 2302 umull r2, r3, r3, r2
8006cf6: 095b lsrs r3, r3, #5
8006cf8: b2db uxtb r3, r3
8006cfa: f887 331d strb.w r3, [r7, #797] ; 0x31d
ied1 = (s % 10000 % 1000 % 100 / 10);
8006cfe: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
8006d02: 4ab7 ldr r2, [pc, #732] ; (8006fe0 <Display+0xc84>)
8006d04: fba2 1203 umull r1, r2, r2, r3
8006d08: 0b52 lsrs r2, r2, #13
8006d0a: f242 7110 movw r1, #10000 ; 0x2710
8006d0e: fb01 f202 mul.w r2, r1, r2
8006d12: 1a9a subs r2, r3, r2
8006d14: 4bb3 ldr r3, [pc, #716] ; (8006fe4 <Display+0xc88>)
8006d16: fba3 1302 umull r1, r3, r3, r2
8006d1a: 099b lsrs r3, r3, #6
8006d1c: f44f 717a mov.w r1, #1000 ; 0x3e8
8006d20: fb01 f303 mul.w r3, r1, r3
8006d24: 1ad3 subs r3, r2, r3
8006d26: 4ab0 ldr r2, [pc, #704] ; (8006fe8 <Display+0xc8c>)
8006d28: fba2 1203 umull r1, r2, r2, r3
8006d2c: 0952 lsrs r2, r2, #5
8006d2e: 2164 movs r1, #100 ; 0x64
8006d30: fb01 f202 mul.w r2, r1, r2
8006d34: 1a9a subs r2, r3, r2
8006d36: 4bad ldr r3, [pc, #692] ; (8006fec <Display+0xc90>)
8006d38: fba3 2302 umull r2, r3, r3, r2
8006d3c: 08db lsrs r3, r3, #3
8006d3e: b2db uxtb r3, r3
8006d40: f887 331c strb.w r3, [r7, #796] ; 0x31c
iee1 = (s % 10000 % 1000 % 100 % 10);
8006d44: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
8006d48: 4aa5 ldr r2, [pc, #660] ; (8006fe0 <Display+0xc84>)
8006d4a: fba2 1203 umull r1, r2, r2, r3
8006d4e: 0b52 lsrs r2, r2, #13
8006d50: f242 7110 movw r1, #10000 ; 0x2710
8006d54: fb01 f202 mul.w r2, r1, r2
8006d58: 1a9a subs r2, r3, r2
8006d5a: 4ba2 ldr r3, [pc, #648] ; (8006fe4 <Display+0xc88>)
8006d5c: fba3 1302 umull r1, r3, r3, r2
8006d60: 099b lsrs r3, r3, #6
8006d62: f44f 717a mov.w r1, #1000 ; 0x3e8
8006d66: fb01 f303 mul.w r3, r1, r3
8006d6a: 1ad3 subs r3, r2, r3
8006d6c: 4a9e ldr r2, [pc, #632] ; (8006fe8 <Display+0xc8c>)
8006d6e: fba2 1203 umull r1, r2, r2, r3
8006d72: 0952 lsrs r2, r2, #5
8006d74: 2164 movs r1, #100 ; 0x64
8006d76: fb01 f202 mul.w r2, r1, r2
8006d7a: 1a9a subs r2, r3, r2
8006d7c: 4b9b ldr r3, [pc, #620] ; (8006fec <Display+0xc90>)
8006d7e: fba3 1302 umull r1, r3, r3, r2
8006d82: 08d9 lsrs r1, r3, #3
8006d84: 460b mov r3, r1
8006d86: 009b lsls r3, r3, #2
8006d88: 440b add r3, r1
8006d8a: 005b lsls r3, r3, #1
8006d8c: 1ad1 subs r1, r2, r3
8006d8e: b2cb uxtb r3, r1
8006d90: f887 331b strb.w r3, [r7, #795] ; 0x31b
p8 = str1;
8006d94: f507 738e add.w r3, r7, #284 ; 0x11c
8006d98: f8c7 3340 str.w r3, [r7, #832] ; 0x340
if(pardata.amplif[Ch1].SENS < 10.0f) {
8006d9c: 4b8c ldr r3, [pc, #560] ; (8006fd0 <Display+0xc74>)
8006d9e: edd3 7a06 vldr s15, [r3, #24]
8006da2: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8006da6: eef4 7ac7 vcmpe.f32 s15, s14
8006daa: eef1 fa10 vmrs APSR_nzcv, fpscr
8006dae: d50b bpl.n 8006dc8 <Display+0xa6c>
p8 = FloatToASCII(pardata.amplif[Ch1].SENS, -4);
8006db0: 4b87 ldr r3, [pc, #540] ; (8006fd0 <Display+0xc74>)
8006db2: edd3 7a06 vldr s15, [r3, #24]
8006db6: f06f 0003 mvn.w r0, #3
8006dba: eeb0 0a67 vmov.f32 s0, s15
8006dbe: f008 fe11 bl 800f9e4 <FloatToASCII>
8006dc2: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8006dc6: e055 b.n 8006e74 <Display+0xb18>
}
else if(pardata.amplif[Ch1].SENS < 100.0f) {
8006dc8: 4b81 ldr r3, [pc, #516] ; (8006fd0 <Display+0xc74>)
8006dca: edd3 7a06 vldr s15, [r3, #24]
8006dce: ed9f 7a88 vldr s14, [pc, #544] ; 8006ff0 <Display+0xc94>
8006dd2: eef4 7ac7 vcmpe.f32 s15, s14
8006dd6: eef1 fa10 vmrs APSR_nzcv, fpscr
8006dda: d50b bpl.n 8006df4 <Display+0xa98>
p8 = FloatToASCII(pardata.amplif[Ch1].SENS, -3);
8006ddc: 4b7c ldr r3, [pc, #496] ; (8006fd0 <Display+0xc74>)
8006dde: edd3 7a06 vldr s15, [r3, #24]
8006de2: f06f 0002 mvn.w r0, #2
8006de6: eeb0 0a67 vmov.f32 s0, s15
8006dea: f008 fdfb bl 800f9e4 <FloatToASCII>
8006dee: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8006df2: e03f b.n 8006e74 <Display+0xb18>
}
else if(pardata.amplif[Ch1].SENS < 1000.0f) {
8006df4: 4b76 ldr r3, [pc, #472] ; (8006fd0 <Display+0xc74>)
8006df6: edd3 7a06 vldr s15, [r3, #24]
8006dfa: ed9f 7a7e vldr s14, [pc, #504] ; 8006ff4 <Display+0xc98>
8006dfe: eef4 7ac7 vcmpe.f32 s15, s14
8006e02: eef1 fa10 vmrs APSR_nzcv, fpscr
8006e06: d50b bpl.n 8006e20 <Display+0xac4>
p8 = FloatToASCII(pardata.amplif[Ch1].SENS, -2);
8006e08: 4b71 ldr r3, [pc, #452] ; (8006fd0 <Display+0xc74>)
8006e0a: edd3 7a06 vldr s15, [r3, #24]
8006e0e: f06f 0001 mvn.w r0, #1
8006e12: eeb0 0a67 vmov.f32 s0, s15
8006e16: f008 fde5 bl 800f9e4 <FloatToASCII>
8006e1a: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8006e1e: e029 b.n 8006e74 <Display+0xb18>
}
else if(pardata.amplif[Ch1].SENS < 10000.0f) {
8006e20: 4b6b ldr r3, [pc, #428] ; (8006fd0 <Display+0xc74>)
8006e22: edd3 7a06 vldr s15, [r3, #24]
8006e26: ed9f 7a74 vldr s14, [pc, #464] ; 8006ff8 <Display+0xc9c>
8006e2a: eef4 7ac7 vcmpe.f32 s15, s14
8006e2e: eef1 fa10 vmrs APSR_nzcv, fpscr
8006e32: d50b bpl.n 8006e4c <Display+0xaf0>
p8 = FloatToASCII(pardata.amplif[Ch1].SENS, -1);
8006e34: 4b66 ldr r3, [pc, #408] ; (8006fd0 <Display+0xc74>)
8006e36: edd3 7a06 vldr s15, [r3, #24]
8006e3a: f04f 30ff mov.w r0, #4294967295
8006e3e: eeb0 0a67 vmov.f32 s0, s15
8006e42: f008 fdcf bl 800f9e4 <FloatToASCII>
8006e46: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8006e4a: e013 b.n 8006e74 <Display+0xb18>
}
else if(pardata.amplif[Ch1].SENS < 100000.0f) {
8006e4c: 4b60 ldr r3, [pc, #384] ; (8006fd0 <Display+0xc74>)
8006e4e: edd3 7a06 vldr s15, [r3, #24]
8006e52: ed9f 7a60 vldr s14, [pc, #384] ; 8006fd4 <Display+0xc78>
8006e56: eef4 7ac7 vcmpe.f32 s15, s14
8006e5a: eef1 fa10 vmrs APSR_nzcv, fpscr
8006e5e: d509 bpl.n 8006e74 <Display+0xb18>
p8 = FloatToASCII(pardata.amplif[Ch1].SENS, 0);
8006e60: 4b5b ldr r3, [pc, #364] ; (8006fd0 <Display+0xc74>)
8006e62: edd3 7a06 vldr s15, [r3, #24]
8006e66: 2000 movs r0, #0
8006e68: eeb0 0a67 vmov.f32 s0, s15
8006e6c: f008 fdba bl 800f9e4 <FloatToASCII>
8006e70: f8c7 0340 str.w r0, [r7, #832] ; 0x340
}
strcpy((void *) str1, (void *) p8);
8006e74: f507 738e add.w r3, r7, #284 ; 0x11c
8006e78: f8d7 1340 ldr.w r1, [r7, #832] ; 0x340
8006e7c: 4618 mov r0, r3
8006e7e: f00f fdd6 bl 8016a2e <strcpy>
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
if(pardata.amplif[Ch2].SENS <= 0.0f) {
8006e82: 4b53 ldr r3, [pc, #332] ; (8006fd0 <Display+0xc74>)
8006e84: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006e88: eef5 7ac0 vcmpe.f32 s15, #0.0
8006e8c: eef1 fa10 vmrs APSR_nzcv, fpscr
8006e90: d807 bhi.n 8006ea2 <Display+0xb46>
pardata.amplif[Ch2].SENS = 1.0f;
8006e92: 4b4f ldr r3, [pc, #316] ; (8006fd0 <Display+0xc74>)
8006e94: f04f 527e mov.w r2, #1065353216 ; 0x3f800000
8006e98: 639a str r2, [r3, #56] ; 0x38
s = 10000;
8006e9a: f242 7310 movw r3, #10000 ; 0x2710
8006e9e: f8c7 3344 str.w r3, [r7, #836] ; 0x344
}
if(pardata.amplif[Ch2].SENS < 10.0f) {
8006ea2: 4b4b ldr r3, [pc, #300] ; (8006fd0 <Display+0xc74>)
8006ea4: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006ea8: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8006eac: eef4 7ac7 vcmpe.f32 s15, s14
8006eb0: eef1 fa10 vmrs APSR_nzcv, fpscr
8006eb4: d514 bpl.n 8006ee0 <Display+0xb84>
s = (uint32_t) ((pardata.amplif[Ch2].SENS * 10000.0f) + 0.5f);
8006eb6: 4b46 ldr r3, [pc, #280] ; (8006fd0 <Display+0xc74>)
8006eb8: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006ebc: ed9f 7a4e vldr s14, [pc, #312] ; 8006ff8 <Display+0xc9c>
8006ec0: ee67 7a87 vmul.f32 s15, s15, s14
8006ec4: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006ec8: ee77 7a87 vadd.f32 s15, s15, s14
8006ecc: eefc 7ae7 vcvt.u32.f32 s15, s15
8006ed0: ee17 3a90 vmov r3, s15
8006ed4: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt2 = 4;
8006ed8: 2304 movs r3, #4
8006eda: f887 3310 strb.w r3, [r7, #784] ; 0x310
8006ede: e0a0 b.n 8007022 <Display+0xcc6>
}
else if(pardata.amplif[Ch2].SENS < 100.0f) {
8006ee0: 4b3b ldr r3, [pc, #236] ; (8006fd0 <Display+0xc74>)
8006ee2: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006ee6: ed9f 7a42 vldr s14, [pc, #264] ; 8006ff0 <Display+0xc94>
8006eea: eef4 7ac7 vcmpe.f32 s15, s14
8006eee: eef1 fa10 vmrs APSR_nzcv, fpscr
8006ef2: d514 bpl.n 8006f1e <Display+0xbc2>
s = (uint32_t) ((pardata.amplif[Ch2].SENS * 1000.0f) + 0.5f);
8006ef4: 4b36 ldr r3, [pc, #216] ; (8006fd0 <Display+0xc74>)
8006ef6: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006efa: ed9f 7a3e vldr s14, [pc, #248] ; 8006ff4 <Display+0xc98>
8006efe: ee67 7a87 vmul.f32 s15, s15, s14
8006f02: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006f06: ee77 7a87 vadd.f32 s15, s15, s14
8006f0a: eefc 7ae7 vcvt.u32.f32 s15, s15
8006f0e: ee17 3a90 vmov r3, s15
8006f12: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt2 = 3;
8006f16: 2303 movs r3, #3
8006f18: f887 3310 strb.w r3, [r7, #784] ; 0x310
8006f1c: e081 b.n 8007022 <Display+0xcc6>
}
else if(pardata.amplif[Ch2].SENS < 1000.0f) {
8006f1e: 4b2c ldr r3, [pc, #176] ; (8006fd0 <Display+0xc74>)
8006f20: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006f24: ed9f 7a33 vldr s14, [pc, #204] ; 8006ff4 <Display+0xc98>
8006f28: eef4 7ac7 vcmpe.f32 s15, s14
8006f2c: eef1 fa10 vmrs APSR_nzcv, fpscr
8006f30: d514 bpl.n 8006f5c <Display+0xc00>
s = (uint32_t) ((pardata.amplif[Ch2].SENS * 100.0f) + 0.5f);
8006f32: 4b27 ldr r3, [pc, #156] ; (8006fd0 <Display+0xc74>)
8006f34: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006f38: ed9f 7a2d vldr s14, [pc, #180] ; 8006ff0 <Display+0xc94>
8006f3c: ee67 7a87 vmul.f32 s15, s15, s14
8006f40: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006f44: ee77 7a87 vadd.f32 s15, s15, s14
8006f48: eefc 7ae7 vcvt.u32.f32 s15, s15
8006f4c: ee17 3a90 vmov r3, s15
8006f50: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt2 = 2;
8006f54: 2302 movs r3, #2
8006f56: f887 3310 strb.w r3, [r7, #784] ; 0x310
8006f5a: e062 b.n 8007022 <Display+0xcc6>
}
else if(pardata.amplif[Ch2].SENS < 10000.0f) {
8006f5c: 4b1c ldr r3, [pc, #112] ; (8006fd0 <Display+0xc74>)
8006f5e: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006f62: ed9f 7a25 vldr s14, [pc, #148] ; 8006ff8 <Display+0xc9c>
8006f66: eef4 7ac7 vcmpe.f32 s15, s14
8006f6a: eef1 fa10 vmrs APSR_nzcv, fpscr
8006f6e: d514 bpl.n 8006f9a <Display+0xc3e>
s = (uint32_t) ((pardata.amplif[Ch2].SENS * 10.0f) + 0.5f);
8006f70: 4b17 ldr r3, [pc, #92] ; (8006fd0 <Display+0xc74>)
8006f72: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006f76: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8006f7a: ee67 7a87 vmul.f32 s15, s15, s14
8006f7e: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006f82: ee77 7a87 vadd.f32 s15, s15, s14
8006f86: eefc 7ae7 vcvt.u32.f32 s15, s15
8006f8a: ee17 3a90 vmov r3, s15
8006f8e: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt2 = 1;
8006f92: 2301 movs r3, #1
8006f94: f887 3310 strb.w r3, [r7, #784] ; 0x310
8006f98: e043 b.n 8007022 <Display+0xcc6>
}
else if(pardata.amplif[Ch2].SENS < 100000.0f) {
8006f9a: 4b0d ldr r3, [pc, #52] ; (8006fd0 <Display+0xc74>)
8006f9c: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006fa0: ed9f 7a0c vldr s14, [pc, #48] ; 8006fd4 <Display+0xc78>
8006fa4: eef4 7ac7 vcmpe.f32 s15, s14
8006fa8: eef1 fa10 vmrs APSR_nzcv, fpscr
8006fac: d526 bpl.n 8006ffc <Display+0xca0>
s = (uint32_t) ((pardata.amplif[Ch2].SENS) + 0.5f);
8006fae: 4b08 ldr r3, [pc, #32] ; (8006fd0 <Display+0xc74>)
8006fb0: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006fb4: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006fb8: ee77 7a87 vadd.f32 s15, s15, s14
8006fbc: eefc 7ae7 vcvt.u32.f32 s15, s15
8006fc0: ee17 3a90 vmov r3, s15
8006fc4: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt2 = 0;
8006fc8: 2300 movs r3, #0
8006fca: f887 3310 strb.w r3, [r7, #784] ; 0x310
8006fce: e028 b.n 8007022 <Display+0xcc6>
8006fd0: 2006bb88 .word 0x2006bb88
8006fd4: 47c35000 .word 0x47c35000
8006fd8: 47c34f80 .word 0x47c34f80
8006fdc: 0001869f .word 0x0001869f
8006fe0: d1b71759 .word 0xd1b71759
8006fe4: 10624dd3 .word 0x10624dd3
8006fe8: 51eb851f .word 0x51eb851f
8006fec: cccccccd .word 0xcccccccd
8006ff0: 42c80000 .word 0x42c80000
8006ff4: 447a0000 .word 0x447a0000
8006ff8: 461c4000 .word 0x461c4000
}
else if(pardata.amplif[Ch2].SENS >= 100000.0f) {
8006ffc: 4bd8 ldr r3, [pc, #864] ; (8007360 <Display+0x1004>)
8006ffe: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8007002: ed9f 7ad8 vldr s14, [pc, #864] ; 8007364 <Display+0x1008>
8007006: eef4 7ac7 vcmpe.f32 s15, s14
800700a: eef1 fa10 vmrs APSR_nzcv, fpscr
800700e: db08 blt.n 8007022 <Display+0xcc6>
pardata.amplif[Ch2].SENS = 99999.0f;
8007010: 4bd3 ldr r3, [pc, #844] ; (8007360 <Display+0x1004>)
8007012: 4ad5 ldr r2, [pc, #852] ; (8007368 <Display+0x100c>)
8007014: 639a str r2, [r3, #56] ; 0x38
s = 99999;
8007016: 4bd5 ldr r3, [pc, #852] ; (800736c <Display+0x1010>)
8007018: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt2 = 0;
800701c: 2300 movs r3, #0
800701e: f887 3310 strb.w r3, [r7, #784] ; 0x310
}
idt2 = (s / 10000);
8007022: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
8007026: 4ad2 ldr r2, [pc, #840] ; (8007370 <Display+0x1014>)
8007028: fba2 2303 umull r2, r3, r2, r3
800702c: 0b5b lsrs r3, r3, #13
800702e: b2db uxtb r3, r3
8007030: f887 3317 strb.w r3, [r7, #791] ; 0x317
iet2 = (s % 10000 / 1000);
8007034: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
8007038: 4bcd ldr r3, [pc, #820] ; (8007370 <Display+0x1014>)
800703a: fba3 1302 umull r1, r3, r3, r2
800703e: 0b5b lsrs r3, r3, #13
8007040: f242 7110 movw r1, #10000 ; 0x2710
8007044: fb01 f303 mul.w r3, r1, r3
8007048: 1ad3 subs r3, r2, r3
800704a: 4aca ldr r2, [pc, #808] ; (8007374 <Display+0x1018>)
800704c: fba2 2303 umull r2, r3, r2, r3
8007050: 099b lsrs r3, r3, #6
8007052: b2db uxtb r3, r3
8007054: f887 3316 strb.w r3, [r7, #790] ; 0x316
ies2 = (s % 10000 % 1000 / 100);
8007058: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
800705c: 4bc4 ldr r3, [pc, #784] ; (8007370 <Display+0x1014>)
800705e: fba3 1302 umull r1, r3, r3, r2
8007062: 0b5b lsrs r3, r3, #13
8007064: f242 7110 movw r1, #10000 ; 0x2710
8007068: fb01 f303 mul.w r3, r1, r3
800706c: 1ad3 subs r3, r2, r3
800706e: 4ac1 ldr r2, [pc, #772] ; (8007374 <Display+0x1018>)
8007070: fba2 1203 umull r1, r2, r2, r3
8007074: 0992 lsrs r2, r2, #6
8007076: f44f 717a mov.w r1, #1000 ; 0x3e8
800707a: fb01 f202 mul.w r2, r1, r2
800707e: 1a9a subs r2, r3, r2
8007080: 4bbd ldr r3, [pc, #756] ; (8007378 <Display+0x101c>)
8007082: fba3 2302 umull r2, r3, r3, r2
8007086: 095b lsrs r3, r3, #5
8007088: b2db uxtb r3, r3
800708a: f887 3315 strb.w r3, [r7, #789] ; 0x315
ied2 = (s % 10000 % 1000 % 100 / 10);
800708e: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
8007092: 4ab7 ldr r2, [pc, #732] ; (8007370 <Display+0x1014>)
8007094: fba2 1203 umull r1, r2, r2, r3
8007098: 0b52 lsrs r2, r2, #13
800709a: f242 7110 movw r1, #10000 ; 0x2710
800709e: fb01 f202 mul.w r2, r1, r2
80070a2: 1a9a subs r2, r3, r2
80070a4: 4bb3 ldr r3, [pc, #716] ; (8007374 <Display+0x1018>)
80070a6: fba3 1302 umull r1, r3, r3, r2
80070aa: 099b lsrs r3, r3, #6
80070ac: f44f 717a mov.w r1, #1000 ; 0x3e8
80070b0: fb01 f303 mul.w r3, r1, r3
80070b4: 1ad3 subs r3, r2, r3
80070b6: 4ab0 ldr r2, [pc, #704] ; (8007378 <Display+0x101c>)
80070b8: fba2 1203 umull r1, r2, r2, r3
80070bc: 0952 lsrs r2, r2, #5
80070be: 2164 movs r1, #100 ; 0x64
80070c0: fb01 f202 mul.w r2, r1, r2
80070c4: 1a9a subs r2, r3, r2
80070c6: 4bad ldr r3, [pc, #692] ; (800737c <Display+0x1020>)
80070c8: fba3 2302 umull r2, r3, r3, r2
80070cc: 08db lsrs r3, r3, #3
80070ce: b2db uxtb r3, r3
80070d0: f887 3314 strb.w r3, [r7, #788] ; 0x314
iee2 = (s % 10000 % 1000 % 100 % 10);
80070d4: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
80070d8: 4aa5 ldr r2, [pc, #660] ; (8007370 <Display+0x1014>)
80070da: fba2 1203 umull r1, r2, r2, r3
80070de: 0b52 lsrs r2, r2, #13
80070e0: f242 7110 movw r1, #10000 ; 0x2710
80070e4: fb01 f202 mul.w r2, r1, r2
80070e8: 1a9a subs r2, r3, r2
80070ea: 4ba2 ldr r3, [pc, #648] ; (8007374 <Display+0x1018>)
80070ec: fba3 1302 umull r1, r3, r3, r2
80070f0: 099b lsrs r3, r3, #6
80070f2: f44f 717a mov.w r1, #1000 ; 0x3e8
80070f6: fb01 f303 mul.w r3, r1, r3
80070fa: 1ad3 subs r3, r2, r3
80070fc: 4a9e ldr r2, [pc, #632] ; (8007378 <Display+0x101c>)
80070fe: fba2 1203 umull r1, r2, r2, r3
8007102: 0952 lsrs r2, r2, #5
8007104: 2164 movs r1, #100 ; 0x64
8007106: fb01 f202 mul.w r2, r1, r2
800710a: 1a9a subs r2, r3, r2
800710c: 4b9b ldr r3, [pc, #620] ; (800737c <Display+0x1020>)
800710e: fba3 1302 umull r1, r3, r3, r2
8007112: 08d9 lsrs r1, r3, #3
8007114: 460b mov r3, r1
8007116: 009b lsls r3, r3, #2
8007118: 440b add r3, r1
800711a: 005b lsls r3, r3, #1
800711c: 1ad1 subs r1, r2, r3
800711e: b2cb uxtb r3, r1
8007120: f887 3313 strb.w r3, [r7, #787] ; 0x313
p8 = str2;
8007124: f107 03e0 add.w r3, r7, #224 ; 0xe0
8007128: f8c7 3340 str.w r3, [r7, #832] ; 0x340
if(pardata.amplif[Ch2].SENS < 10.0f) {
800712c: 4b8c ldr r3, [pc, #560] ; (8007360 <Display+0x1004>)
800712e: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8007132: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8007136: eef4 7ac7 vcmpe.f32 s15, s14
800713a: eef1 fa10 vmrs APSR_nzcv, fpscr
800713e: d50b bpl.n 8007158 <Display+0xdfc>
p8 = FloatToASCII(pardata.amplif[Ch2].SENS, -4);
8007140: 4b87 ldr r3, [pc, #540] ; (8007360 <Display+0x1004>)
8007142: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8007146: f06f 0003 mvn.w r0, #3
800714a: eeb0 0a67 vmov.f32 s0, s15
800714e: f008 fc49 bl 800f9e4 <FloatToASCII>
8007152: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8007156: e055 b.n 8007204 <Display+0xea8>
}
else if(pardata.amplif[Ch2].SENS < 100.0f) {
8007158: 4b81 ldr r3, [pc, #516] ; (8007360 <Display+0x1004>)
800715a: edd3 7a0e vldr s15, [r3, #56] ; 0x38
800715e: ed9f 7a88 vldr s14, [pc, #544] ; 8007380 <Display+0x1024>
8007162: eef4 7ac7 vcmpe.f32 s15, s14
8007166: eef1 fa10 vmrs APSR_nzcv, fpscr
800716a: d50b bpl.n 8007184 <Display+0xe28>
p8 = FloatToASCII(pardata.amplif[Ch2].SENS, -3);
800716c: 4b7c ldr r3, [pc, #496] ; (8007360 <Display+0x1004>)
800716e: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8007172: f06f 0002 mvn.w r0, #2
8007176: eeb0 0a67 vmov.f32 s0, s15
800717a: f008 fc33 bl 800f9e4 <FloatToASCII>
800717e: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8007182: e03f b.n 8007204 <Display+0xea8>
}
else if(pardata.amplif[Ch2].SENS < 1000.0f) {
8007184: 4b76 ldr r3, [pc, #472] ; (8007360 <Display+0x1004>)
8007186: edd3 7a0e vldr s15, [r3, #56] ; 0x38
800718a: ed9f 7a7e vldr s14, [pc, #504] ; 8007384 <Display+0x1028>
800718e: eef4 7ac7 vcmpe.f32 s15, s14
8007192: eef1 fa10 vmrs APSR_nzcv, fpscr
8007196: d50b bpl.n 80071b0 <Display+0xe54>
p8 = FloatToASCII(pardata.amplif[Ch2].SENS, -2);
8007198: 4b71 ldr r3, [pc, #452] ; (8007360 <Display+0x1004>)
800719a: edd3 7a0e vldr s15, [r3, #56] ; 0x38
800719e: f06f 0001 mvn.w r0, #1
80071a2: eeb0 0a67 vmov.f32 s0, s15
80071a6: f008 fc1d bl 800f9e4 <FloatToASCII>
80071aa: f8c7 0340 str.w r0, [r7, #832] ; 0x340
80071ae: e029 b.n 8007204 <Display+0xea8>
}
else if(pardata.amplif[Ch2].SENS < 10000.0f) {
80071b0: 4b6b ldr r3, [pc, #428] ; (8007360 <Display+0x1004>)
80071b2: edd3 7a0e vldr s15, [r3, #56] ; 0x38
80071b6: ed9f 7a74 vldr s14, [pc, #464] ; 8007388 <Display+0x102c>
80071ba: eef4 7ac7 vcmpe.f32 s15, s14
80071be: eef1 fa10 vmrs APSR_nzcv, fpscr
80071c2: d50b bpl.n 80071dc <Display+0xe80>
p8 = FloatToASCII(pardata.amplif[Ch2].SENS, -1);
80071c4: 4b66 ldr r3, [pc, #408] ; (8007360 <Display+0x1004>)
80071c6: edd3 7a0e vldr s15, [r3, #56] ; 0x38
80071ca: f04f 30ff mov.w r0, #4294967295
80071ce: eeb0 0a67 vmov.f32 s0, s15
80071d2: f008 fc07 bl 800f9e4 <FloatToASCII>
80071d6: f8c7 0340 str.w r0, [r7, #832] ; 0x340
80071da: e013 b.n 8007204 <Display+0xea8>
}
else if(pardata.amplif[Ch2].SENS < 100000.0f) {
80071dc: 4b60 ldr r3, [pc, #384] ; (8007360 <Display+0x1004>)
80071de: edd3 7a0e vldr s15, [r3, #56] ; 0x38
80071e2: ed9f 7a60 vldr s14, [pc, #384] ; 8007364 <Display+0x1008>
80071e6: eef4 7ac7 vcmpe.f32 s15, s14
80071ea: eef1 fa10 vmrs APSR_nzcv, fpscr
80071ee: d509 bpl.n 8007204 <Display+0xea8>
p8 = FloatToASCII(pardata.amplif[Ch2].SENS, 0);
80071f0: 4b5b ldr r3, [pc, #364] ; (8007360 <Display+0x1004>)
80071f2: edd3 7a0e vldr s15, [r3, #56] ; 0x38
80071f6: 2000 movs r0, #0
80071f8: eeb0 0a67 vmov.f32 s0, s15
80071fc: f008 fbf2 bl 800f9e4 <FloatToASCII>
8007200: f8c7 0340 str.w r0, [r7, #832] ; 0x340
}
strcpy((void *) str2, (void *) p8);
8007204: f107 03e0 add.w r3, r7, #224 ; 0xe0
8007208: f8d7 1340 ldr.w r1, [r7, #832] ; 0x340
800720c: 4618 mov r0, r3
800720e: f00f fc0e bl 8016a2e <strcpy>
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
if(pardata.amplif[Ch3].SENS <= 0.0f) {
8007212: 4b53 ldr r3, [pc, #332] ; (8007360 <Display+0x1004>)
8007214: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8007218: eef5 7ac0 vcmpe.f32 s15, #0.0
800721c: eef1 fa10 vmrs APSR_nzcv, fpscr
8007220: d807 bhi.n 8007232 <Display+0xed6>
pardata.amplif[Ch3].SENS = 1.0f;
8007222: 4b4f ldr r3, [pc, #316] ; (8007360 <Display+0x1004>)
8007224: f04f 527e mov.w r2, #1065353216 ; 0x3f800000
8007228: 659a str r2, [r3, #88] ; 0x58
s = 10000;
800722a: f242 7310 movw r3, #10000 ; 0x2710
800722e: f8c7 3344 str.w r3, [r7, #836] ; 0x344
}
if(pardata.amplif[Ch3].SENS < 10.0f) {
8007232: 4b4b ldr r3, [pc, #300] ; (8007360 <Display+0x1004>)
8007234: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8007238: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800723c: eef4 7ac7 vcmpe.f32 s15, s14
8007240: eef1 fa10 vmrs APSR_nzcv, fpscr
8007244: d514 bpl.n 8007270 <Display+0xf14>
s = (uint32_t) ((pardata.amplif[Ch3].SENS * 10000.0f) + 0.5f);
8007246: 4b46 ldr r3, [pc, #280] ; (8007360 <Display+0x1004>)
8007248: edd3 7a16 vldr s15, [r3, #88] ; 0x58
800724c: ed9f 7a4e vldr s14, [pc, #312] ; 8007388 <Display+0x102c>
8007250: ee67 7a87 vmul.f32 s15, s15, s14
8007254: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8007258: ee77 7a87 vadd.f32 s15, s15, s14
800725c: eefc 7ae7 vcvt.u32.f32 s15, s15
8007260: ee17 3a90 vmov r3, s15
8007264: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt3 = 4;
8007268: 2304 movs r3, #4
800726a: f887 3308 strb.w r3, [r7, #776] ; 0x308
800726e: e0a0 b.n 80073b2 <Display+0x1056>
}
else if(pardata.amplif[Ch3].SENS < 100.0f) {
8007270: 4b3b ldr r3, [pc, #236] ; (8007360 <Display+0x1004>)
8007272: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8007276: ed9f 7a42 vldr s14, [pc, #264] ; 8007380 <Display+0x1024>
800727a: eef4 7ac7 vcmpe.f32 s15, s14
800727e: eef1 fa10 vmrs APSR_nzcv, fpscr
8007282: d514 bpl.n 80072ae <Display+0xf52>
s = (uint32_t) ((pardata.amplif[Ch3].SENS * 1000.0f) + 0.5f);
8007284: 4b36 ldr r3, [pc, #216] ; (8007360 <Display+0x1004>)
8007286: edd3 7a16 vldr s15, [r3, #88] ; 0x58
800728a: ed9f 7a3e vldr s14, [pc, #248] ; 8007384 <Display+0x1028>
800728e: ee67 7a87 vmul.f32 s15, s15, s14
8007292: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8007296: ee77 7a87 vadd.f32 s15, s15, s14
800729a: eefc 7ae7 vcvt.u32.f32 s15, s15
800729e: ee17 3a90 vmov r3, s15
80072a2: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt3 = 3;
80072a6: 2303 movs r3, #3
80072a8: f887 3308 strb.w r3, [r7, #776] ; 0x308
80072ac: e081 b.n 80073b2 <Display+0x1056>
}
else if(pardata.amplif[Ch3].SENS < 1000.0f) {
80072ae: 4b2c ldr r3, [pc, #176] ; (8007360 <Display+0x1004>)
80072b0: edd3 7a16 vldr s15, [r3, #88] ; 0x58
80072b4: ed9f 7a33 vldr s14, [pc, #204] ; 8007384 <Display+0x1028>
80072b8: eef4 7ac7 vcmpe.f32 s15, s14
80072bc: eef1 fa10 vmrs APSR_nzcv, fpscr
80072c0: d514 bpl.n 80072ec <Display+0xf90>
s = (uint32_t) ((pardata.amplif[Ch3].SENS * 100.0f) + 0.5f);
80072c2: 4b27 ldr r3, [pc, #156] ; (8007360 <Display+0x1004>)
80072c4: edd3 7a16 vldr s15, [r3, #88] ; 0x58
80072c8: ed9f 7a2d vldr s14, [pc, #180] ; 8007380 <Display+0x1024>
80072cc: ee67 7a87 vmul.f32 s15, s15, s14
80072d0: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
80072d4: ee77 7a87 vadd.f32 s15, s15, s14
80072d8: eefc 7ae7 vcvt.u32.f32 s15, s15
80072dc: ee17 3a90 vmov r3, s15
80072e0: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt3 = 2;
80072e4: 2302 movs r3, #2
80072e6: f887 3308 strb.w r3, [r7, #776] ; 0x308
80072ea: e062 b.n 80073b2 <Display+0x1056>
}
else if(pardata.amplif[Ch3].SENS < 10000.0f) {
80072ec: 4b1c ldr r3, [pc, #112] ; (8007360 <Display+0x1004>)
80072ee: edd3 7a16 vldr s15, [r3, #88] ; 0x58
80072f2: ed9f 7a25 vldr s14, [pc, #148] ; 8007388 <Display+0x102c>
80072f6: eef4 7ac7 vcmpe.f32 s15, s14
80072fa: eef1 fa10 vmrs APSR_nzcv, fpscr
80072fe: d514 bpl.n 800732a <Display+0xfce>
s = (uint32_t) ((pardata.amplif[Ch3].SENS * 10.0f) + 0.5f);
8007300: 4b17 ldr r3, [pc, #92] ; (8007360 <Display+0x1004>)
8007302: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8007306: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800730a: ee67 7a87 vmul.f32 s15, s15, s14
800730e: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8007312: ee77 7a87 vadd.f32 s15, s15, s14
8007316: eefc 7ae7 vcvt.u32.f32 s15, s15
800731a: ee17 3a90 vmov r3, s15
800731e: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt3 = 1;
8007322: 2301 movs r3, #1
8007324: f887 3308 strb.w r3, [r7, #776] ; 0x308
8007328: e043 b.n 80073b2 <Display+0x1056>
}
else if(pardata.amplif[Ch3].SENS < 100000.0f) {
800732a: 4b0d ldr r3, [pc, #52] ; (8007360 <Display+0x1004>)
800732c: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8007330: ed9f 7a0c vldr s14, [pc, #48] ; 8007364 <Display+0x1008>
8007334: eef4 7ac7 vcmpe.f32 s15, s14
8007338: eef1 fa10 vmrs APSR_nzcv, fpscr
800733c: d526 bpl.n 800738c <Display+0x1030>
s = (uint32_t) ((pardata.amplif[Ch3].SENS) + 0.5f);
800733e: 4b08 ldr r3, [pc, #32] ; (8007360 <Display+0x1004>)
8007340: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8007344: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8007348: ee77 7a87 vadd.f32 s15, s15, s14
800734c: eefc 7ae7 vcvt.u32.f32 s15, s15
8007350: ee17 3a90 vmov r3, s15
8007354: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt3 = 0;
8007358: 2300 movs r3, #0
800735a: f887 3308 strb.w r3, [r7, #776] ; 0x308
800735e: e028 b.n 80073b2 <Display+0x1056>
8007360: 2006bb88 .word 0x2006bb88
8007364: 47c35000 .word 0x47c35000
8007368: 47c34f80 .word 0x47c34f80
800736c: 0001869f .word 0x0001869f
8007370: d1b71759 .word 0xd1b71759
8007374: 10624dd3 .word 0x10624dd3
8007378: 51eb851f .word 0x51eb851f
800737c: cccccccd .word 0xcccccccd
8007380: 42c80000 .word 0x42c80000
8007384: 447a0000 .word 0x447a0000
8007388: 461c4000 .word 0x461c4000
}
else if(pardata.amplif[Ch3].SENS >= 100000.0f) {
800738c: 4bd8 ldr r3, [pc, #864] ; (80076f0 <Display+0x1394>)
800738e: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8007392: ed9f 7ad8 vldr s14, [pc, #864] ; 80076f4 <Display+0x1398>
8007396: eef4 7ac7 vcmpe.f32 s15, s14
800739a: eef1 fa10 vmrs APSR_nzcv, fpscr
800739e: db08 blt.n 80073b2 <Display+0x1056>
pardata.amplif[Ch3].SENS = 99999.0f;
80073a0: 4bd3 ldr r3, [pc, #844] ; (80076f0 <Display+0x1394>)
80073a2: 4ad5 ldr r2, [pc, #852] ; (80076f8 <Display+0x139c>)
80073a4: 659a str r2, [r3, #88] ; 0x58
s = 99999;
80073a6: 4bd5 ldr r3, [pc, #852] ; (80076fc <Display+0x13a0>)
80073a8: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt3 = 0;
80073ac: 2300 movs r3, #0
80073ae: f887 3308 strb.w r3, [r7, #776] ; 0x308
}
idt3 = (s / 10000);
80073b2: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
80073b6: 4ad2 ldr r2, [pc, #840] ; (8007700 <Display+0x13a4>)
80073b8: fba2 2303 umull r2, r3, r2, r3
80073bc: 0b5b lsrs r3, r3, #13
80073be: b2db uxtb r3, r3
80073c0: f887 330f strb.w r3, [r7, #783] ; 0x30f
iet3 = (s % 10000 / 1000);
80073c4: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
80073c8: 4bcd ldr r3, [pc, #820] ; (8007700 <Display+0x13a4>)
80073ca: fba3 1302 umull r1, r3, r3, r2
80073ce: 0b5b lsrs r3, r3, #13
80073d0: f242 7110 movw r1, #10000 ; 0x2710
80073d4: fb01 f303 mul.w r3, r1, r3
80073d8: 1ad3 subs r3, r2, r3
80073da: 4aca ldr r2, [pc, #808] ; (8007704 <Display+0x13a8>)
80073dc: fba2 2303 umull r2, r3, r2, r3
80073e0: 099b lsrs r3, r3, #6
80073e2: b2db uxtb r3, r3
80073e4: f887 330e strb.w r3, [r7, #782] ; 0x30e
ies3 = (s % 10000 % 1000 / 100);
80073e8: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
80073ec: 4bc4 ldr r3, [pc, #784] ; (8007700 <Display+0x13a4>)
80073ee: fba3 1302 umull r1, r3, r3, r2
80073f2: 0b5b lsrs r3, r3, #13
80073f4: f242 7110 movw r1, #10000 ; 0x2710
80073f8: fb01 f303 mul.w r3, r1, r3
80073fc: 1ad3 subs r3, r2, r3
80073fe: 4ac1 ldr r2, [pc, #772] ; (8007704 <Display+0x13a8>)
8007400: fba2 1203 umull r1, r2, r2, r3
8007404: 0992 lsrs r2, r2, #6
8007406: f44f 717a mov.w r1, #1000 ; 0x3e8
800740a: fb01 f202 mul.w r2, r1, r2
800740e: 1a9a subs r2, r3, r2
8007410: 4bbd ldr r3, [pc, #756] ; (8007708 <Display+0x13ac>)
8007412: fba3 2302 umull r2, r3, r3, r2
8007416: 095b lsrs r3, r3, #5
8007418: b2db uxtb r3, r3
800741a: f887 330d strb.w r3, [r7, #781] ; 0x30d
ied3 = (s % 10000 % 1000 % 100 / 10);
800741e: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
8007422: 4ab7 ldr r2, [pc, #732] ; (8007700 <Display+0x13a4>)
8007424: fba2 1203 umull r1, r2, r2, r3
8007428: 0b52 lsrs r2, r2, #13
800742a: f242 7110 movw r1, #10000 ; 0x2710
800742e: fb01 f202 mul.w r2, r1, r2
8007432: 1a9a subs r2, r3, r2
8007434: 4bb3 ldr r3, [pc, #716] ; (8007704 <Display+0x13a8>)
8007436: fba3 1302 umull r1, r3, r3, r2
800743a: 099b lsrs r3, r3, #6
800743c: f44f 717a mov.w r1, #1000 ; 0x3e8
8007440: fb01 f303 mul.w r3, r1, r3
8007444: 1ad3 subs r3, r2, r3
8007446: 4ab0 ldr r2, [pc, #704] ; (8007708 <Display+0x13ac>)
8007448: fba2 1203 umull r1, r2, r2, r3
800744c: 0952 lsrs r2, r2, #5
800744e: 2164 movs r1, #100 ; 0x64
8007450: fb01 f202 mul.w r2, r1, r2
8007454: 1a9a subs r2, r3, r2
8007456: 4bad ldr r3, [pc, #692] ; (800770c <Display+0x13b0>)
8007458: fba3 2302 umull r2, r3, r3, r2
800745c: 08db lsrs r3, r3, #3
800745e: b2db uxtb r3, r3
8007460: f887 330c strb.w r3, [r7, #780] ; 0x30c
iee3 = (s % 10000 % 1000 % 100 % 10);
8007464: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
8007468: 4aa5 ldr r2, [pc, #660] ; (8007700 <Display+0x13a4>)
800746a: fba2 1203 umull r1, r2, r2, r3
800746e: 0b52 lsrs r2, r2, #13
8007470: f242 7110 movw r1, #10000 ; 0x2710
8007474: fb01 f202 mul.w r2, r1, r2
8007478: 1a9a subs r2, r3, r2
800747a: 4ba2 ldr r3, [pc, #648] ; (8007704 <Display+0x13a8>)
800747c: fba3 1302 umull r1, r3, r3, r2
8007480: 099b lsrs r3, r3, #6
8007482: f44f 717a mov.w r1, #1000 ; 0x3e8
8007486: fb01 f303 mul.w r3, r1, r3
800748a: 1ad3 subs r3, r2, r3
800748c: 4a9e ldr r2, [pc, #632] ; (8007708 <Display+0x13ac>)
800748e: fba2 1203 umull r1, r2, r2, r3
8007492: 0952 lsrs r2, r2, #5
8007494: 2164 movs r1, #100 ; 0x64
8007496: fb01 f202 mul.w r2, r1, r2
800749a: 1a9a subs r2, r3, r2
800749c: 4b9b ldr r3, [pc, #620] ; (800770c <Display+0x13b0>)
800749e: fba3 1302 umull r1, r3, r3, r2
80074a2: 08d9 lsrs r1, r3, #3
80074a4: 460b mov r3, r1
80074a6: 009b lsls r3, r3, #2
80074a8: 440b add r3, r1
80074aa: 005b lsls r3, r3, #1
80074ac: 1ad1 subs r1, r2, r3
80074ae: b2cb uxtb r3, r1
80074b0: f887 330b strb.w r3, [r7, #779] ; 0x30b
p8 = str3;
80074b4: f107 03a4 add.w r3, r7, #164 ; 0xa4
80074b8: f8c7 3340 str.w r3, [r7, #832] ; 0x340
if(pardata.amplif[Ch3].SENS < 10.0f) {
80074bc: 4b8c ldr r3, [pc, #560] ; (80076f0 <Display+0x1394>)
80074be: edd3 7a16 vldr s15, [r3, #88] ; 0x58
80074c2: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
80074c6: eef4 7ac7 vcmpe.f32 s15, s14
80074ca: eef1 fa10 vmrs APSR_nzcv, fpscr
80074ce: d50b bpl.n 80074e8 <Display+0x118c>
p8 = FloatToASCII(pardata.amplif[Ch3].SENS, -4);
80074d0: 4b87 ldr r3, [pc, #540] ; (80076f0 <Display+0x1394>)
80074d2: edd3 7a16 vldr s15, [r3, #88] ; 0x58
80074d6: f06f 0003 mvn.w r0, #3
80074da: eeb0 0a67 vmov.f32 s0, s15
80074de: f008 fa81 bl 800f9e4 <FloatToASCII>
80074e2: f8c7 0340 str.w r0, [r7, #832] ; 0x340
80074e6: e055 b.n 8007594 <Display+0x1238>
}
else if(pardata.amplif[Ch3].SENS < 100.0f) {
80074e8: 4b81 ldr r3, [pc, #516] ; (80076f0 <Display+0x1394>)
80074ea: edd3 7a16 vldr s15, [r3, #88] ; 0x58
80074ee: ed9f 7a88 vldr s14, [pc, #544] ; 8007710 <Display+0x13b4>
80074f2: eef4 7ac7 vcmpe.f32 s15, s14
80074f6: eef1 fa10 vmrs APSR_nzcv, fpscr
80074fa: d50b bpl.n 8007514 <Display+0x11b8>
p8 = FloatToASCII(pardata.amplif[Ch3].SENS, -3);
80074fc: 4b7c ldr r3, [pc, #496] ; (80076f0 <Display+0x1394>)
80074fe: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8007502: f06f 0002 mvn.w r0, #2
8007506: eeb0 0a67 vmov.f32 s0, s15
800750a: f008 fa6b bl 800f9e4 <FloatToASCII>
800750e: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8007512: e03f b.n 8007594 <Display+0x1238>
}
else if(pardata.amplif[Ch3].SENS < 1000.0f) {
8007514: 4b76 ldr r3, [pc, #472] ; (80076f0 <Display+0x1394>)
8007516: edd3 7a16 vldr s15, [r3, #88] ; 0x58
800751a: ed9f 7a7e vldr s14, [pc, #504] ; 8007714 <Display+0x13b8>
800751e: eef4 7ac7 vcmpe.f32 s15, s14
8007522: eef1 fa10 vmrs APSR_nzcv, fpscr
8007526: d50b bpl.n 8007540 <Display+0x11e4>
p8 = FloatToASCII(pardata.amplif[Ch3].SENS, -2);
8007528: 4b71 ldr r3, [pc, #452] ; (80076f0 <Display+0x1394>)
800752a: edd3 7a16 vldr s15, [r3, #88] ; 0x58
800752e: f06f 0001 mvn.w r0, #1
8007532: eeb0 0a67 vmov.f32 s0, s15
8007536: f008 fa55 bl 800f9e4 <FloatToASCII>
800753a: f8c7 0340 str.w r0, [r7, #832] ; 0x340
800753e: e029 b.n 8007594 <Display+0x1238>
}
else if(pardata.amplif[Ch3].SENS < 10000.0f) {
8007540: 4b6b ldr r3, [pc, #428] ; (80076f0 <Display+0x1394>)
8007542: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8007546: ed9f 7a74 vldr s14, [pc, #464] ; 8007718 <Display+0x13bc>
800754a: eef4 7ac7 vcmpe.f32 s15, s14
800754e: eef1 fa10 vmrs APSR_nzcv, fpscr
8007552: d50b bpl.n 800756c <Display+0x1210>
p8 = FloatToASCII(pardata.amplif[Ch3].SENS, -1);
8007554: 4b66 ldr r3, [pc, #408] ; (80076f0 <Display+0x1394>)
8007556: edd3 7a16 vldr s15, [r3, #88] ; 0x58
800755a: f04f 30ff mov.w r0, #4294967295
800755e: eeb0 0a67 vmov.f32 s0, s15
8007562: f008 fa3f bl 800f9e4 <FloatToASCII>
8007566: f8c7 0340 str.w r0, [r7, #832] ; 0x340
800756a: e013 b.n 8007594 <Display+0x1238>
}
else if(pardata.amplif[Ch3].SENS < 100000.0f) {
800756c: 4b60 ldr r3, [pc, #384] ; (80076f0 <Display+0x1394>)
800756e: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8007572: ed9f 7a60 vldr s14, [pc, #384] ; 80076f4 <Display+0x1398>
8007576: eef4 7ac7 vcmpe.f32 s15, s14
800757a: eef1 fa10 vmrs APSR_nzcv, fpscr
800757e: d509 bpl.n 8007594 <Display+0x1238>
p8 = FloatToASCII(pardata.amplif[Ch3].SENS, 0);
8007580: 4b5b ldr r3, [pc, #364] ; (80076f0 <Display+0x1394>)
8007582: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8007586: 2000 movs r0, #0
8007588: eeb0 0a67 vmov.f32 s0, s15
800758c: f008 fa2a bl 800f9e4 <FloatToASCII>
8007590: f8c7 0340 str.w r0, [r7, #832] ; 0x340
}
strcpy((void *) str3, (void *) p8);
8007594: f107 03a4 add.w r3, r7, #164 ; 0xa4
8007598: f8d7 1340 ldr.w r1, [r7, #832] ; 0x340
800759c: 4618 mov r0, r3
800759e: f00f fa46 bl 8016a2e <strcpy>
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
if(pardata.amplif[Ch4].SENS <= 0.0f) {
80075a2: 4b53 ldr r3, [pc, #332] ; (80076f0 <Display+0x1394>)
80075a4: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80075a8: eef5 7ac0 vcmpe.f32 s15, #0.0
80075ac: eef1 fa10 vmrs APSR_nzcv, fpscr
80075b0: d807 bhi.n 80075c2 <Display+0x1266>
pardata.amplif[Ch4].SENS = 1.0f;
80075b2: 4b4f ldr r3, [pc, #316] ; (80076f0 <Display+0x1394>)
80075b4: f04f 527e mov.w r2, #1065353216 ; 0x3f800000
80075b8: 679a str r2, [r3, #120] ; 0x78
s = 10000;
80075ba: f242 7310 movw r3, #10000 ; 0x2710
80075be: f8c7 3344 str.w r3, [r7, #836] ; 0x344
}
if(pardata.amplif[Ch4].SENS < 10.0f) {
80075c2: 4b4b ldr r3, [pc, #300] ; (80076f0 <Display+0x1394>)
80075c4: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80075c8: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
80075cc: eef4 7ac7 vcmpe.f32 s15, s14
80075d0: eef1 fa10 vmrs APSR_nzcv, fpscr
80075d4: d514 bpl.n 8007600 <Display+0x12a4>
s = (uint32_t) ((pardata.amplif[Ch4].SENS * 10000.0f) + 0.5f);
80075d6: 4b46 ldr r3, [pc, #280] ; (80076f0 <Display+0x1394>)
80075d8: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80075dc: ed9f 7a4e vldr s14, [pc, #312] ; 8007718 <Display+0x13bc>
80075e0: ee67 7a87 vmul.f32 s15, s15, s14
80075e4: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
80075e8: ee77 7a87 vadd.f32 s15, s15, s14
80075ec: eefc 7ae7 vcvt.u32.f32 s15, s15
80075f0: ee17 3a90 vmov r3, s15
80075f4: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt4 = 4;
80075f8: 2304 movs r3, #4
80075fa: f887 3300 strb.w r3, [r7, #768] ; 0x300
80075fe: e0a0 b.n 8007742 <Display+0x13e6>
}
else if(pardata.amplif[Ch4].SENS < 100.0f) {
8007600: 4b3b ldr r3, [pc, #236] ; (80076f0 <Display+0x1394>)
8007602: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007606: ed9f 7a42 vldr s14, [pc, #264] ; 8007710 <Display+0x13b4>
800760a: eef4 7ac7 vcmpe.f32 s15, s14
800760e: eef1 fa10 vmrs APSR_nzcv, fpscr
8007612: d514 bpl.n 800763e <Display+0x12e2>
s = (uint32_t) ((pardata.amplif[Ch4].SENS * 1000.0f) + 0.5f);
8007614: 4b36 ldr r3, [pc, #216] ; (80076f0 <Display+0x1394>)
8007616: edd3 7a1e vldr s15, [r3, #120] ; 0x78
800761a: ed9f 7a3e vldr s14, [pc, #248] ; 8007714 <Display+0x13b8>
800761e: ee67 7a87 vmul.f32 s15, s15, s14
8007622: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8007626: ee77 7a87 vadd.f32 s15, s15, s14
800762a: eefc 7ae7 vcvt.u32.f32 s15, s15
800762e: ee17 3a90 vmov r3, s15
8007632: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt4 = 3;
8007636: 2303 movs r3, #3
8007638: f887 3300 strb.w r3, [r7, #768] ; 0x300
800763c: e081 b.n 8007742 <Display+0x13e6>
}
else if(pardata.amplif[Ch4].SENS < 1000.0f) {
800763e: 4b2c ldr r3, [pc, #176] ; (80076f0 <Display+0x1394>)
8007640: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007644: ed9f 7a33 vldr s14, [pc, #204] ; 8007714 <Display+0x13b8>
8007648: eef4 7ac7 vcmpe.f32 s15, s14
800764c: eef1 fa10 vmrs APSR_nzcv, fpscr
8007650: d514 bpl.n 800767c <Display+0x1320>
s = (uint32_t) ((pardata.amplif[Ch4].SENS * 100.0f) + 0.5f);
8007652: 4b27 ldr r3, [pc, #156] ; (80076f0 <Display+0x1394>)
8007654: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007658: ed9f 7a2d vldr s14, [pc, #180] ; 8007710 <Display+0x13b4>
800765c: ee67 7a87 vmul.f32 s15, s15, s14
8007660: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8007664: ee77 7a87 vadd.f32 s15, s15, s14
8007668: eefc 7ae7 vcvt.u32.f32 s15, s15
800766c: ee17 3a90 vmov r3, s15
8007670: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt4 = 2;
8007674: 2302 movs r3, #2
8007676: f887 3300 strb.w r3, [r7, #768] ; 0x300
800767a: e062 b.n 8007742 <Display+0x13e6>
}
else if(pardata.amplif[Ch4].SENS < 10000.0f) {
800767c: 4b1c ldr r3, [pc, #112] ; (80076f0 <Display+0x1394>)
800767e: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007682: ed9f 7a25 vldr s14, [pc, #148] ; 8007718 <Display+0x13bc>
8007686: eef4 7ac7 vcmpe.f32 s15, s14
800768a: eef1 fa10 vmrs APSR_nzcv, fpscr
800768e: d514 bpl.n 80076ba <Display+0x135e>
s = (uint32_t) ((pardata.amplif[Ch4].SENS * 10.0f) + 0.5f);
8007690: 4b17 ldr r3, [pc, #92] ; (80076f0 <Display+0x1394>)
8007692: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007696: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800769a: ee67 7a87 vmul.f32 s15, s15, s14
800769e: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
80076a2: ee77 7a87 vadd.f32 s15, s15, s14
80076a6: eefc 7ae7 vcvt.u32.f32 s15, s15
80076aa: ee17 3a90 vmov r3, s15
80076ae: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt4 = 1;
80076b2: 2301 movs r3, #1
80076b4: f887 3300 strb.w r3, [r7, #768] ; 0x300
80076b8: e043 b.n 8007742 <Display+0x13e6>
}
else if(pardata.amplif[Ch4].SENS < 100000.0f) {
80076ba: 4b0d ldr r3, [pc, #52] ; (80076f0 <Display+0x1394>)
80076bc: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80076c0: ed9f 7a0c vldr s14, [pc, #48] ; 80076f4 <Display+0x1398>
80076c4: eef4 7ac7 vcmpe.f32 s15, s14
80076c8: eef1 fa10 vmrs APSR_nzcv, fpscr
80076cc: d526 bpl.n 800771c <Display+0x13c0>
s = (uint32_t) ((pardata.amplif[Ch4].SENS) + 0.5f);
80076ce: 4b08 ldr r3, [pc, #32] ; (80076f0 <Display+0x1394>)
80076d0: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80076d4: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
80076d8: ee77 7a87 vadd.f32 s15, s15, s14
80076dc: eefc 7ae7 vcvt.u32.f32 s15, s15
80076e0: ee17 3a90 vmov r3, s15
80076e4: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt4 = 0;
80076e8: 2300 movs r3, #0
80076ea: f887 3300 strb.w r3, [r7, #768] ; 0x300
80076ee: e028 b.n 8007742 <Display+0x13e6>
80076f0: 2006bb88 .word 0x2006bb88
80076f4: 47c35000 .word 0x47c35000
80076f8: 47c34f80 .word 0x47c34f80
80076fc: 0001869f .word 0x0001869f
8007700: d1b71759 .word 0xd1b71759
8007704: 10624dd3 .word 0x10624dd3
8007708: 51eb851f .word 0x51eb851f
800770c: cccccccd .word 0xcccccccd
8007710: 42c80000 .word 0x42c80000
8007714: 447a0000 .word 0x447a0000
8007718: 461c4000 .word 0x461c4000
}
else if(pardata.amplif[Ch4].SENS >= 100000.0f) {
800771c: 4bc9 ldr r3, [pc, #804] ; (8007a44 <Display+0x16e8>)
800771e: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007722: ed9f 7ac9 vldr s14, [pc, #804] ; 8007a48 <Display+0x16ec>
8007726: eef4 7ac7 vcmpe.f32 s15, s14
800772a: eef1 fa10 vmrs APSR_nzcv, fpscr
800772e: db08 blt.n 8007742 <Display+0x13e6>
pardata.amplif[Ch4].SENS = 99999.0f;
8007730: 4bc4 ldr r3, [pc, #784] ; (8007a44 <Display+0x16e8>)
8007732: 4ac6 ldr r2, [pc, #792] ; (8007a4c <Display+0x16f0>)
8007734: 679a str r2, [r3, #120] ; 0x78
s = 99999;
8007736: 4bc6 ldr r3, [pc, #792] ; (8007a50 <Display+0x16f4>)
8007738: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt4 = 0;
800773c: 2300 movs r3, #0
800773e: f887 3300 strb.w r3, [r7, #768] ; 0x300
}
idt4 = (s / 10000);
8007742: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
8007746: 4ac3 ldr r2, [pc, #780] ; (8007a54 <Display+0x16f8>)
8007748: fba2 2303 umull r2, r3, r2, r3
800774c: 0b5b lsrs r3, r3, #13
800774e: b2db uxtb r3, r3
8007750: f887 3307 strb.w r3, [r7, #775] ; 0x307
iet4 = (s % 10000 / 1000);
8007754: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
8007758: 4bbe ldr r3, [pc, #760] ; (8007a54 <Display+0x16f8>)
800775a: fba3 1302 umull r1, r3, r3, r2
800775e: 0b5b lsrs r3, r3, #13
8007760: f242 7110 movw r1, #10000 ; 0x2710
8007764: fb01 f303 mul.w r3, r1, r3
8007768: 1ad3 subs r3, r2, r3
800776a: 4abb ldr r2, [pc, #748] ; (8007a58 <Display+0x16fc>)
800776c: fba2 2303 umull r2, r3, r2, r3
8007770: 099b lsrs r3, r3, #6
8007772: b2db uxtb r3, r3
8007774: f887 3306 strb.w r3, [r7, #774] ; 0x306
ies4 = (s % 10000 % 1000 / 100);
8007778: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
800777c: 4bb5 ldr r3, [pc, #724] ; (8007a54 <Display+0x16f8>)
800777e: fba3 1302 umull r1, r3, r3, r2
8007782: 0b5b lsrs r3, r3, #13
8007784: f242 7110 movw r1, #10000 ; 0x2710
8007788: fb01 f303 mul.w r3, r1, r3
800778c: 1ad3 subs r3, r2, r3
800778e: 4ab2 ldr r2, [pc, #712] ; (8007a58 <Display+0x16fc>)
8007790: fba2 1203 umull r1, r2, r2, r3
8007794: 0992 lsrs r2, r2, #6
8007796: f44f 717a mov.w r1, #1000 ; 0x3e8
800779a: fb01 f202 mul.w r2, r1, r2
800779e: 1a9a subs r2, r3, r2
80077a0: 4bae ldr r3, [pc, #696] ; (8007a5c <Display+0x1700>)
80077a2: fba3 2302 umull r2, r3, r3, r2
80077a6: 095b lsrs r3, r3, #5
80077a8: b2db uxtb r3, r3
80077aa: f887 3305 strb.w r3, [r7, #773] ; 0x305
ied4 = (s % 10000 % 1000 % 100 / 10);
80077ae: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
80077b2: 4aa8 ldr r2, [pc, #672] ; (8007a54 <Display+0x16f8>)
80077b4: fba2 1203 umull r1, r2, r2, r3
80077b8: 0b52 lsrs r2, r2, #13
80077ba: f242 7110 movw r1, #10000 ; 0x2710
80077be: fb01 f202 mul.w r2, r1, r2
80077c2: 1a9a subs r2, r3, r2
80077c4: 4ba4 ldr r3, [pc, #656] ; (8007a58 <Display+0x16fc>)
80077c6: fba3 1302 umull r1, r3, r3, r2
80077ca: 099b lsrs r3, r3, #6
80077cc: f44f 717a mov.w r1, #1000 ; 0x3e8
80077d0: fb01 f303 mul.w r3, r1, r3
80077d4: 1ad3 subs r3, r2, r3
80077d6: 4aa1 ldr r2, [pc, #644] ; (8007a5c <Display+0x1700>)
80077d8: fba2 1203 umull r1, r2, r2, r3
80077dc: 0952 lsrs r2, r2, #5
80077de: 2164 movs r1, #100 ; 0x64
80077e0: fb01 f202 mul.w r2, r1, r2
80077e4: 1a9a subs r2, r3, r2
80077e6: 4b9e ldr r3, [pc, #632] ; (8007a60 <Display+0x1704>)
80077e8: fba3 2302 umull r2, r3, r3, r2
80077ec: 08db lsrs r3, r3, #3
80077ee: b2db uxtb r3, r3
80077f0: f887 3304 strb.w r3, [r7, #772] ; 0x304
iee4 = (s % 10000 % 1000 % 100 % 10);
80077f4: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
80077f8: 4a96 ldr r2, [pc, #600] ; (8007a54 <Display+0x16f8>)
80077fa: fba2 1203 umull r1, r2, r2, r3
80077fe: 0b52 lsrs r2, r2, #13
8007800: f242 7110 movw r1, #10000 ; 0x2710
8007804: fb01 f202 mul.w r2, r1, r2
8007808: 1a9a subs r2, r3, r2
800780a: 4b93 ldr r3, [pc, #588] ; (8007a58 <Display+0x16fc>)
800780c: fba3 1302 umull r1, r3, r3, r2
8007810: 099b lsrs r3, r3, #6
8007812: f44f 717a mov.w r1, #1000 ; 0x3e8
8007816: fb01 f303 mul.w r3, r1, r3
800781a: 1ad3 subs r3, r2, r3
800781c: 4a8f ldr r2, [pc, #572] ; (8007a5c <Display+0x1700>)
800781e: fba2 1203 umull r1, r2, r2, r3
8007822: 0952 lsrs r2, r2, #5
8007824: 2164 movs r1, #100 ; 0x64
8007826: fb01 f202 mul.w r2, r1, r2
800782a: 1a9a subs r2, r3, r2
800782c: 4b8c ldr r3, [pc, #560] ; (8007a60 <Display+0x1704>)
800782e: fba3 1302 umull r1, r3, r3, r2
8007832: 08d9 lsrs r1, r3, #3
8007834: 460b mov r3, r1
8007836: 009b lsls r3, r3, #2
8007838: 440b add r3, r1
800783a: 005b lsls r3, r3, #1
800783c: 1ad1 subs r1, r2, r3
800783e: b2cb uxtb r3, r1
8007840: f887 3303 strb.w r3, [r7, #771] ; 0x303
p8 = str4;
8007844: f107 0368 add.w r3, r7, #104 ; 0x68
8007848: f8c7 3340 str.w r3, [r7, #832] ; 0x340
if(pardata.amplif[Ch4].SENS < 10.0f) {
800784c: 4b7d ldr r3, [pc, #500] ; (8007a44 <Display+0x16e8>)
800784e: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007852: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8007856: eef4 7ac7 vcmpe.f32 s15, s14
800785a: eef1 fa10 vmrs APSR_nzcv, fpscr
800785e: d50b bpl.n 8007878 <Display+0x151c>
p8 = FloatToASCII(pardata.amplif[Ch4].SENS, -4);
8007860: 4b78 ldr r3, [pc, #480] ; (8007a44 <Display+0x16e8>)
8007862: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007866: f06f 0003 mvn.w r0, #3
800786a: eeb0 0a67 vmov.f32 s0, s15
800786e: f008 f8b9 bl 800f9e4 <FloatToASCII>
8007872: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8007876: e055 b.n 8007924 <Display+0x15c8>
}
else if(pardata.amplif[Ch4].SENS < 100.0f) {
8007878: 4b72 ldr r3, [pc, #456] ; (8007a44 <Display+0x16e8>)
800787a: edd3 7a1e vldr s15, [r3, #120] ; 0x78
800787e: ed9f 7a79 vldr s14, [pc, #484] ; 8007a64 <Display+0x1708>
8007882: eef4 7ac7 vcmpe.f32 s15, s14
8007886: eef1 fa10 vmrs APSR_nzcv, fpscr
800788a: d50b bpl.n 80078a4 <Display+0x1548>
p8 = FloatToASCII(pardata.amplif[Ch4].SENS, -3);
800788c: 4b6d ldr r3, [pc, #436] ; (8007a44 <Display+0x16e8>)
800788e: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007892: f06f 0002 mvn.w r0, #2
8007896: eeb0 0a67 vmov.f32 s0, s15
800789a: f008 f8a3 bl 800f9e4 <FloatToASCII>
800789e: f8c7 0340 str.w r0, [r7, #832] ; 0x340
80078a2: e03f b.n 8007924 <Display+0x15c8>
}
else if(pardata.amplif[Ch4].SENS < 1000.0f) {
80078a4: 4b67 ldr r3, [pc, #412] ; (8007a44 <Display+0x16e8>)
80078a6: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80078aa: ed9f 7a6f vldr s14, [pc, #444] ; 8007a68 <Display+0x170c>
80078ae: eef4 7ac7 vcmpe.f32 s15, s14
80078b2: eef1 fa10 vmrs APSR_nzcv, fpscr
80078b6: d50b bpl.n 80078d0 <Display+0x1574>
p8 = FloatToASCII(pardata.amplif[Ch4].SENS, -2);
80078b8: 4b62 ldr r3, [pc, #392] ; (8007a44 <Display+0x16e8>)
80078ba: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80078be: f06f 0001 mvn.w r0, #1
80078c2: eeb0 0a67 vmov.f32 s0, s15
80078c6: f008 f88d bl 800f9e4 <FloatToASCII>
80078ca: f8c7 0340 str.w r0, [r7, #832] ; 0x340
80078ce: e029 b.n 8007924 <Display+0x15c8>
}
else if(pardata.amplif[Ch4].SENS < 10000.0f) {
80078d0: 4b5c ldr r3, [pc, #368] ; (8007a44 <Display+0x16e8>)
80078d2: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80078d6: ed9f 7a65 vldr s14, [pc, #404] ; 8007a6c <Display+0x1710>
80078da: eef4 7ac7 vcmpe.f32 s15, s14
80078de: eef1 fa10 vmrs APSR_nzcv, fpscr
80078e2: d50b bpl.n 80078fc <Display+0x15a0>
p8 = FloatToASCII(pardata.amplif[Ch4].SENS, -1);
80078e4: 4b57 ldr r3, [pc, #348] ; (8007a44 <Display+0x16e8>)
80078e6: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80078ea: f04f 30ff mov.w r0, #4294967295
80078ee: eeb0 0a67 vmov.f32 s0, s15
80078f2: f008 f877 bl 800f9e4 <FloatToASCII>
80078f6: f8c7 0340 str.w r0, [r7, #832] ; 0x340
80078fa: e013 b.n 8007924 <Display+0x15c8>
}
else if(pardata.amplif[Ch4].SENS < 100000.0f) {
80078fc: 4b51 ldr r3, [pc, #324] ; (8007a44 <Display+0x16e8>)
80078fe: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007902: ed9f 7a51 vldr s14, [pc, #324] ; 8007a48 <Display+0x16ec>
8007906: eef4 7ac7 vcmpe.f32 s15, s14
800790a: eef1 fa10 vmrs APSR_nzcv, fpscr
800790e: d509 bpl.n 8007924 <Display+0x15c8>
p8 = FloatToASCII(pardata.amplif[Ch4].SENS, 0);
8007910: 4b4c ldr r3, [pc, #304] ; (8007a44 <Display+0x16e8>)
8007912: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007916: 2000 movs r0, #0
8007918: eeb0 0a67 vmov.f32 s0, s15
800791c: f008 f862 bl 800f9e4 <FloatToASCII>
8007920: f8c7 0340 str.w r0, [r7, #832] ; 0x340
}
strcpy((void *) str4, (void *) p8);
8007924: f107 0368 add.w r3, r7, #104 ; 0x68
8007928: f8d7 1340 ldr.w r1, [r7, #832] ; 0x340
800792c: 4618 mov r0, r3
800792e: f00f f87e bl 8016a2e <strcpy>
//////////////////////////////////////////////////////////////////////////////
BSP_LCD_SetFont(&Font12);
8007932: 484f ldr r0, [pc, #316] ; (8007a70 <Display+0x1714>)
8007934: f7fd fbfa bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
8007938: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800793c: 484d ldr r0, [pc, #308] ; (8007a74 <Display+0x1718>)
800793e: f7fd fbb9 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 5, "Sensetivity", CENTER_MODE);
8007942: 2301 movs r3, #1
8007944: 4a4c ldr r2, [pc, #304] ; (8007a78 <Display+0x171c>)
8007946: 2105 movs r1, #5
8007948: 20a0 movs r0, #160 ; 0xa0
800794a: f7fd fc79 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(240, 5, "Units", CENTER_MODE);
800794e: 2301 movs r3, #1
8007950: 4a4a ldr r2, [pc, #296] ; (8007a7c <Display+0x1720>)
8007952: 2105 movs r1, #5
8007954: 20f0 movs r0, #240 ; 0xf0
8007956: f7fd fc73 bl 8005240 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_ORANGE, LCD_COLOR_BLACK);
800795a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800795e: 4848 ldr r0, [pc, #288] ; (8007a80 <Display+0x1724>)
8007960: f7fd fba8 bl 80050b4 <LCD_SetColors>
if(pardata.amplif[Ch1].IIN == CHARGE)
8007964: 4b37 ldr r3, [pc, #220] ; (8007a44 <Display+0x16e8>)
8007966: 881b ldrh r3, [r3, #0]
8007968: b29b uxth r3, r3
800796a: 2b00 cmp r3, #0
800796c: d106 bne.n 800797c <Display+0x1620>
BSP_LCD_DisplayStringAt(95, 60, "PE", LEFT_MODE);
800796e: 2303 movs r3, #3
8007970: 4a44 ldr r2, [pc, #272] ; (8007a84 <Display+0x1728>)
8007972: 213c movs r1, #60 ; 0x3c
8007974: 205f movs r0, #95 ; 0x5f
8007976: f7fd fc63 bl 8005240 <BSP_LCD_DisplayStringAt>
800797a: e005 b.n 8007988 <Display+0x162c>
else BSP_LCD_DisplayStringAt(95, 60, "IEPE", LEFT_MODE);
800797c: 2303 movs r3, #3
800797e: 4a42 ldr r2, [pc, #264] ; (8007a88 <Display+0x172c>)
8007980: 213c movs r1, #60 ; 0x3c
8007982: 205f movs r0, #95 ; 0x5f
8007984: f7fd fc5c bl 8005240 <BSP_LCD_DisplayStringAt>
if(pardata.amplif[Ch2].IIN == CHARGE)
8007988: 4b2e ldr r3, [pc, #184] ; (8007a44 <Display+0x16e8>)
800798a: 8c1b ldrh r3, [r3, #32]
800798c: b29b uxth r3, r3
800798e: 2b00 cmp r3, #0
8007990: d106 bne.n 80079a0 <Display+0x1644>
BSP_LCD_DisplayStringAt(95, 80, "PE", LEFT_MODE);
8007992: 2303 movs r3, #3
8007994: 4a3b ldr r2, [pc, #236] ; (8007a84 <Display+0x1728>)
8007996: 2150 movs r1, #80 ; 0x50
8007998: 205f movs r0, #95 ; 0x5f
800799a: f7fd fc51 bl 8005240 <BSP_LCD_DisplayStringAt>
800799e: e005 b.n 80079ac <Display+0x1650>
else BSP_LCD_DisplayStringAt(95, 80, "IEPE", LEFT_MODE);
80079a0: 2303 movs r3, #3
80079a2: 4a39 ldr r2, [pc, #228] ; (8007a88 <Display+0x172c>)
80079a4: 2150 movs r1, #80 ; 0x50
80079a6: 205f movs r0, #95 ; 0x5f
80079a8: f7fd fc4a bl 8005240 <BSP_LCD_DisplayStringAt>
if(pardata.amplif[Ch3].IIN == CHARGE)
80079ac: 4b25 ldr r3, [pc, #148] ; (8007a44 <Display+0x16e8>)
80079ae: f8b3 3040 ldrh.w r3, [r3, #64] ; 0x40
80079b2: b29b uxth r3, r3
80079b4: 2b00 cmp r3, #0
80079b6: d106 bne.n 80079c6 <Display+0x166a>
BSP_LCD_DisplayStringAt(95, 100, "PE", LEFT_MODE);
80079b8: 2303 movs r3, #3
80079ba: 4a32 ldr r2, [pc, #200] ; (8007a84 <Display+0x1728>)
80079bc: 2164 movs r1, #100 ; 0x64
80079be: 205f movs r0, #95 ; 0x5f
80079c0: f7fd fc3e bl 8005240 <BSP_LCD_DisplayStringAt>
80079c4: e005 b.n 80079d2 <Display+0x1676>
else BSP_LCD_DisplayStringAt(95, 100, "IEPE", LEFT_MODE);
80079c6: 2303 movs r3, #3
80079c8: 4a2f ldr r2, [pc, #188] ; (8007a88 <Display+0x172c>)
80079ca: 2164 movs r1, #100 ; 0x64
80079cc: 205f movs r0, #95 ; 0x5f
80079ce: f7fd fc37 bl 8005240 <BSP_LCD_DisplayStringAt>
if(pardata.amplif[Ch4].IIN == CHARGE)
80079d2: 4b1c ldr r3, [pc, #112] ; (8007a44 <Display+0x16e8>)
80079d4: f8b3 3060 ldrh.w r3, [r3, #96] ; 0x60
80079d8: b29b uxth r3, r3
80079da: 2b00 cmp r3, #0
80079dc: d106 bne.n 80079ec <Display+0x1690>
BSP_LCD_DisplayStringAt(95, 120, "PE", LEFT_MODE);
80079de: 2303 movs r3, #3
80079e0: 4a28 ldr r2, [pc, #160] ; (8007a84 <Display+0x1728>)
80079e2: 2178 movs r1, #120 ; 0x78
80079e4: 205f movs r0, #95 ; 0x5f
80079e6: f7fd fc2b bl 8005240 <BSP_LCD_DisplayStringAt>
80079ea: e005 b.n 80079f8 <Display+0x169c>
else BSP_LCD_DisplayStringAt(95, 120, "IEPE", LEFT_MODE);
80079ec: 2303 movs r3, #3
80079ee: 4a26 ldr r2, [pc, #152] ; (8007a88 <Display+0x172c>)
80079f0: 2178 movs r1, #120 ; 0x78
80079f2: 205f movs r0, #95 ; 0x5f
80079f4: f7fd fc24 bl 8005240 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
80079f8: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80079fc: f04f 30ff mov.w r0, #4294967295
8007a00: f7fd fb58 bl 80050b4 <LCD_SetColors>
if(pardata.LANG == RUS)
8007a04: 4b0f ldr r3, [pc, #60] ; (8007a44 <Display+0x16e8>)
8007a06: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007a0a: b29b uxth r3, r3
8007a0c: 2b00 cmp r3, #0
8007a0e: d145 bne.n 8007a9c <Display+0x1740>
{
BSP_LCD_DisplayStringAt(20, 60, "<22><><CA><C0><CD> 1:", LEFT_MODE);
8007a10: 2303 movs r3, #3
8007a12: 4a1e ldr r2, [pc, #120] ; (8007a8c <Display+0x1730>)
8007a14: 213c movs r1, #60 ; 0x3c
8007a16: 2014 movs r0, #20
8007a18: f7fd fc12 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(20, 80, "<22><><CA><C0><CD> 2:", LEFT_MODE);
8007a1c: 2303 movs r3, #3
8007a1e: 4a1c ldr r2, [pc, #112] ; (8007a90 <Display+0x1734>)
8007a20: 2150 movs r1, #80 ; 0x50
8007a22: 2014 movs r0, #20
8007a24: f7fd fc0c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(20, 100, "<22><><CA><C0><CD> 3:", LEFT_MODE);
8007a28: 2303 movs r3, #3
8007a2a: 4a1a ldr r2, [pc, #104] ; (8007a94 <Display+0x1738>)
8007a2c: 2164 movs r1, #100 ; 0x64
8007a2e: 2014 movs r0, #20
8007a30: f7fd fc06 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(20, 120, "<22><><CA><C0><CD> 4:", LEFT_MODE);
8007a34: 2303 movs r3, #3
8007a36: 4a18 ldr r2, [pc, #96] ; (8007a98 <Display+0x173c>)
8007a38: 2178 movs r1, #120 ; 0x78
8007a3a: 2014 movs r0, #20
8007a3c: f7fd fc00 bl 8005240 <BSP_LCD_DisplayStringAt>
8007a40: e044 b.n 8007acc <Display+0x1770>
8007a42: bf00 nop
8007a44: 2006bb88 .word 0x2006bb88
8007a48: 47c35000 .word 0x47c35000
8007a4c: 47c34f80 .word 0x47c34f80
8007a50: 0001869f .word 0x0001869f
8007a54: d1b71759 .word 0xd1b71759
8007a58: 10624dd3 .word 0x10624dd3
8007a5c: 51eb851f .word 0x51eb851f
8007a60: cccccccd .word 0xcccccccd
8007a64: 42c80000 .word 0x42c80000
8007a68: 447a0000 .word 0x447a0000
8007a6c: 461c4000 .word 0x461c4000
8007a70: 20020000 .word 0x20020000
8007a74: ff808080 .word 0xff808080
8007a78: 0801834c .word 0x0801834c
8007a7c: 08018358 .word 0x08018358
8007a80: ffffa500 .word 0xffffa500
8007a84: 08018360 .word 0x08018360
8007a88: 08018364 .word 0x08018364
8007a8c: 0801836c .word 0x0801836c
8007a90: 08018378 .word 0x08018378
8007a94: 08018384 .word 0x08018384
8007a98: 08018390 .word 0x08018390
}
else
{
BSP_LCD_DisplayStringAt(20, 60, "CHANNEL 1:", LEFT_MODE);
8007a9c: 2303 movs r3, #3
8007a9e: 4abe ldr r2, [pc, #760] ; (8007d98 <Display+0x1a3c>)
8007aa0: 213c movs r1, #60 ; 0x3c
8007aa2: 2014 movs r0, #20
8007aa4: f7fd fbcc bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(20, 80, "CHANNEL 2:", LEFT_MODE);
8007aa8: 2303 movs r3, #3
8007aaa: 4abc ldr r2, [pc, #752] ; (8007d9c <Display+0x1a40>)
8007aac: 2150 movs r1, #80 ; 0x50
8007aae: 2014 movs r0, #20
8007ab0: f7fd fbc6 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(20, 100, "CHANNEL 3:", LEFT_MODE);
8007ab4: 2303 movs r3, #3
8007ab6: 4aba ldr r2, [pc, #744] ; (8007da0 <Display+0x1a44>)
8007ab8: 2164 movs r1, #100 ; 0x64
8007aba: 2014 movs r0, #20
8007abc: f7fd fbc0 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(20, 120, "CHANNEL 4:", LEFT_MODE);
8007ac0: 2303 movs r3, #3
8007ac2: 4ab8 ldr r2, [pc, #736] ; (8007da4 <Display+0x1a48>)
8007ac4: 2178 movs r1, #120 ; 0x78
8007ac6: 2014 movs r0, #20
8007ac8: f7fd fbba bl 8005240 <BSP_LCD_DisplayStringAt>
}
if(menupos != Back)
8007acc: 4bb6 ldr r3, [pc, #728] ; (8007da8 <Display+0x1a4c>)
8007ace: 781b ldrb r3, [r3, #0]
8007ad0: b2db uxtb r3, r3
8007ad2: 2bff cmp r3, #255 ; 0xff
8007ad4: d006 beq.n 8007ae4 <Display+0x1788>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
8007ad6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007ada: f04f 30ff mov.w r0, #4294967295
8007ade: f7fd fae9 bl 80050b4 <LCD_SetColors>
8007ae2: e005 b.n 8007af0 <Display+0x1794>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8007ae4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007ae8: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8007aec: f7fd fae2 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(20, 40, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //<2F><><CD><E0><E7>
8007af0: 4bae ldr r3, [pc, #696] ; (8007dac <Display+0x1a50>)
8007af2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007af6: b29b uxth r3, r3
8007af8: 4aad ldr r2, [pc, #692] ; (8007db0 <Display+0x1a54>)
8007afa: 011b lsls r3, r3, #4
8007afc: 4413 add r3, r2
8007afe: 681a ldr r2, [r3, #0]
8007b00: 2303 movs r3, #3
8007b02: 2128 movs r1, #40 ; 0x28
8007b04: 2014 movs r0, #20
8007b06: f7fd fb9b bl 8005240 <BSP_LCD_DisplayStringAt>
//todo
if(menupos == Back)
8007b0a: 4ba7 ldr r3, [pc, #668] ; (8007da8 <Display+0x1a4c>)
8007b0c: 781b ldrb r3, [r3, #0]
8007b0e: b2db uxtb r3, r3
8007b10: 2bff cmp r3, #255 ; 0xff
8007b12: f040 8083 bne.w 8007c1c <Display+0x18c0>
{
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8007b16: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007b1a: 48a6 ldr r0, [pc, #664] ; (8007db4 <Display+0x1a58>)
8007b1c: f7fd faca bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8007b20: f507 728e add.w r2, r7, #284 ; 0x11c
8007b24: 2303 movs r3, #3
8007b26: 213c movs r1, #60 ; 0x3c
8007b28: 208c movs r0, #140 ; 0x8c
8007b2a: f7fd fb89 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8007b2e: f107 02e0 add.w r2, r7, #224 ; 0xe0
8007b32: 2303 movs r3, #3
8007b34: 2150 movs r1, #80 ; 0x50
8007b36: 208c movs r0, #140 ; 0x8c
8007b38: f7fd fb82 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8007b3c: f107 02a4 add.w r2, r7, #164 ; 0xa4
8007b40: 2303 movs r3, #3
8007b42: 2164 movs r1, #100 ; 0x64
8007b44: 208c movs r0, #140 ; 0x8c
8007b46: f7fd fb7b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8007b4a: f107 0268 add.w r2, r7, #104 ; 0x68
8007b4e: 2303 movs r3, #3
8007b50: 2178 movs r1, #120 ; 0x78
8007b52: 208c movs r0, #140 ; 0x8c
8007b54: f7fd fb74 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
8007b58: 4b94 ldr r3, [pc, #592] ; (8007dac <Display+0x1a50>)
8007b5a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007b5e: b29b uxth r3, r3
8007b60: 4618 mov r0, r3
8007b62: 4b92 ldr r3, [pc, #584] ; (8007dac <Display+0x1a50>)
8007b64: 8a5b ldrh r3, [r3, #18]
8007b66: b29b uxth r3, r3
8007b68: 005b lsls r3, r3, #1
8007b6a: 4a90 ldr r2, [pc, #576] ; (8007dac <Display+0x1a50>)
8007b6c: 8812 ldrh r2, [r2, #0]
8007b6e: b292 uxth r2, r2
8007b70: 4413 add r3, r2
8007b72: 4991 ldr r1, [pc, #580] ; (8007db8 <Display+0x1a5c>)
8007b74: 0102 lsls r2, r0, #4
8007b76: 4413 add r3, r2
8007b78: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007b7c: 2303 movs r3, #3
8007b7e: 213c movs r1, #60 ; 0x3c
8007b80: 20dc movs r0, #220 ; 0xdc
8007b82: f7fd fb5d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8007b86: 4b89 ldr r3, [pc, #548] ; (8007dac <Display+0x1a50>)
8007b88: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007b8c: b29b uxth r3, r3
8007b8e: 4618 mov r0, r3
8007b90: 4b86 ldr r3, [pc, #536] ; (8007dac <Display+0x1a50>)
8007b92: 8e5b ldrh r3, [r3, #50] ; 0x32
8007b94: b29b uxth r3, r3
8007b96: 005b lsls r3, r3, #1
8007b98: 4a84 ldr r2, [pc, #528] ; (8007dac <Display+0x1a50>)
8007b9a: 8c12 ldrh r2, [r2, #32]
8007b9c: b292 uxth r2, r2
8007b9e: 4413 add r3, r2
8007ba0: 4985 ldr r1, [pc, #532] ; (8007db8 <Display+0x1a5c>)
8007ba2: 0102 lsls r2, r0, #4
8007ba4: 4413 add r3, r2
8007ba6: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007baa: 2303 movs r3, #3
8007bac: 2150 movs r1, #80 ; 0x50
8007bae: 20dc movs r0, #220 ; 0xdc
8007bb0: f7fd fb46 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8007bb4: 4b7d ldr r3, [pc, #500] ; (8007dac <Display+0x1a50>)
8007bb6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007bba: b29b uxth r3, r3
8007bbc: 4618 mov r0, r3
8007bbe: 4b7b ldr r3, [pc, #492] ; (8007dac <Display+0x1a50>)
8007bc0: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8007bc4: b29b uxth r3, r3
8007bc6: 005b lsls r3, r3, #1
8007bc8: 4a78 ldr r2, [pc, #480] ; (8007dac <Display+0x1a50>)
8007bca: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
8007bce: b292 uxth r2, r2
8007bd0: 4413 add r3, r2
8007bd2: 4979 ldr r1, [pc, #484] ; (8007db8 <Display+0x1a5c>)
8007bd4: 0102 lsls r2, r0, #4
8007bd6: 4413 add r3, r2
8007bd8: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007bdc: 2303 movs r3, #3
8007bde: 2164 movs r1, #100 ; 0x64
8007be0: 20dc movs r0, #220 ; 0xdc
8007be2: f7fd fb2d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
8007be6: 4b71 ldr r3, [pc, #452] ; (8007dac <Display+0x1a50>)
8007be8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007bec: b29b uxth r3, r3
8007bee: 4618 mov r0, r3
8007bf0: 4b6e ldr r3, [pc, #440] ; (8007dac <Display+0x1a50>)
8007bf2: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8007bf6: b29b uxth r3, r3
8007bf8: 005b lsls r3, r3, #1
8007bfa: 4a6c ldr r2, [pc, #432] ; (8007dac <Display+0x1a50>)
8007bfc: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
8007c00: b292 uxth r2, r2
8007c02: 4413 add r3, r2
8007c04: 496c ldr r1, [pc, #432] ; (8007db8 <Display+0x1a5c>)
8007c06: 0102 lsls r2, r0, #4
8007c08: 4413 add r3, r2
8007c0a: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007c0e: 2303 movs r3, #3
8007c10: 2178 movs r1, #120 ; 0x78
8007c12: 20dc movs r0, #220 ; 0xdc
8007c14: f7fd fb14 bl 8005240 <BSP_LCD_DisplayStringAt>
}
}
}
}
break;
8007c18: f006 b852 b.w 800dcc0 <Display+0x7964>
if(menupos == Sens_1)
8007c1c: 4b62 ldr r3, [pc, #392] ; (8007da8 <Display+0x1a4c>)
8007c1e: 781b ldrb r3, [r3, #0]
8007c20: b2db uxtb r3, r3
8007c22: 2b00 cmp r3, #0
8007c24: f040 809a bne.w 8007d5c <Display+0x1a00>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8007c28: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007c2c: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8007c30: f7fd fa40 bl 80050b4 <LCD_SetColors>
if(focused)
8007c34: 4b61 ldr r3, [pc, #388] ; (8007dbc <Display+0x1a60>)
8007c36: 781b ldrb r3, [r3, #0]
8007c38: b2db uxtb r3, r3
8007c3a: 2b00 cmp r3, #0
8007c3c: d00b beq.n 8007c56 <Display+0x18fa>
if(blk)
8007c3e: 4b60 ldr r3, [pc, #384] ; (8007dc0 <Display+0x1a64>)
8007c40: 681b ldr r3, [r3, #0]
8007c42: 2b00 cmp r3, #0
8007c44: d00e beq.n 8007c64 <Display+0x1908>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8007c46: f507 728e add.w r2, r7, #284 ; 0x11c
8007c4a: 2303 movs r3, #3
8007c4c: 213c movs r1, #60 ; 0x3c
8007c4e: 208c movs r0, #140 ; 0x8c
8007c50: f7fd faf6 bl 8005240 <BSP_LCD_DisplayStringAt>
8007c54: e006 b.n 8007c64 <Display+0x1908>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8007c56: f507 728e add.w r2, r7, #284 ; 0x11c
8007c5a: 2303 movs r3, #3
8007c5c: 213c movs r1, #60 ; 0x3c
8007c5e: 208c movs r0, #140 ; 0x8c
8007c60: f7fd faee bl 8005240 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8007c64: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007c68: 4852 ldr r0, [pc, #328] ; (8007db4 <Display+0x1a58>)
8007c6a: f7fd fa23 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8007c6e: f107 02e0 add.w r2, r7, #224 ; 0xe0
8007c72: 2303 movs r3, #3
8007c74: 2150 movs r1, #80 ; 0x50
8007c76: 208c movs r0, #140 ; 0x8c
8007c78: f7fd fae2 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8007c7c: f107 02a4 add.w r2, r7, #164 ; 0xa4
8007c80: 2303 movs r3, #3
8007c82: 2164 movs r1, #100 ; 0x64
8007c84: 208c movs r0, #140 ; 0x8c
8007c86: f7fd fadb bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8007c8a: f107 0268 add.w r2, r7, #104 ; 0x68
8007c8e: 2303 movs r3, #3
8007c90: 2178 movs r1, #120 ; 0x78
8007c92: 208c movs r0, #140 ; 0x8c
8007c94: f7fd fad4 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
8007c98: 4b44 ldr r3, [pc, #272] ; (8007dac <Display+0x1a50>)
8007c9a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007c9e: b29b uxth r3, r3
8007ca0: 4618 mov r0, r3
8007ca2: 4b42 ldr r3, [pc, #264] ; (8007dac <Display+0x1a50>)
8007ca4: 8a5b ldrh r3, [r3, #18]
8007ca6: b29b uxth r3, r3
8007ca8: 005b lsls r3, r3, #1
8007caa: 4a40 ldr r2, [pc, #256] ; (8007dac <Display+0x1a50>)
8007cac: 8812 ldrh r2, [r2, #0]
8007cae: b292 uxth r2, r2
8007cb0: 4413 add r3, r2
8007cb2: 4941 ldr r1, [pc, #260] ; (8007db8 <Display+0x1a5c>)
8007cb4: 0102 lsls r2, r0, #4
8007cb6: 4413 add r3, r2
8007cb8: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007cbc: 2303 movs r3, #3
8007cbe: 213c movs r1, #60 ; 0x3c
8007cc0: 20dc movs r0, #220 ; 0xdc
8007cc2: f7fd fabd bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8007cc6: 4b39 ldr r3, [pc, #228] ; (8007dac <Display+0x1a50>)
8007cc8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007ccc: b29b uxth r3, r3
8007cce: 4618 mov r0, r3
8007cd0: 4b36 ldr r3, [pc, #216] ; (8007dac <Display+0x1a50>)
8007cd2: 8e5b ldrh r3, [r3, #50] ; 0x32
8007cd4: b29b uxth r3, r3
8007cd6: 005b lsls r3, r3, #1
8007cd8: 4a34 ldr r2, [pc, #208] ; (8007dac <Display+0x1a50>)
8007cda: 8c12 ldrh r2, [r2, #32]
8007cdc: b292 uxth r2, r2
8007cde: 4413 add r3, r2
8007ce0: 4935 ldr r1, [pc, #212] ; (8007db8 <Display+0x1a5c>)
8007ce2: 0102 lsls r2, r0, #4
8007ce4: 4413 add r3, r2
8007ce6: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007cea: 2303 movs r3, #3
8007cec: 2150 movs r1, #80 ; 0x50
8007cee: 20dc movs r0, #220 ; 0xdc
8007cf0: f7fd faa6 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8007cf4: 4b2d ldr r3, [pc, #180] ; (8007dac <Display+0x1a50>)
8007cf6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007cfa: b29b uxth r3, r3
8007cfc: 4618 mov r0, r3
8007cfe: 4b2b ldr r3, [pc, #172] ; (8007dac <Display+0x1a50>)
8007d00: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8007d04: b29b uxth r3, r3
8007d06: 005b lsls r3, r3, #1
8007d08: 4a28 ldr r2, [pc, #160] ; (8007dac <Display+0x1a50>)
8007d0a: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
8007d0e: b292 uxth r2, r2
8007d10: 4413 add r3, r2
8007d12: 4929 ldr r1, [pc, #164] ; (8007db8 <Display+0x1a5c>)
8007d14: 0102 lsls r2, r0, #4
8007d16: 4413 add r3, r2
8007d18: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007d1c: 2303 movs r3, #3
8007d1e: 2164 movs r1, #100 ; 0x64
8007d20: 20dc movs r0, #220 ; 0xdc
8007d22: f7fd fa8d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
8007d26: 4b21 ldr r3, [pc, #132] ; (8007dac <Display+0x1a50>)
8007d28: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007d2c: b29b uxth r3, r3
8007d2e: 4618 mov r0, r3
8007d30: 4b1e ldr r3, [pc, #120] ; (8007dac <Display+0x1a50>)
8007d32: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8007d36: b29b uxth r3, r3
8007d38: 005b lsls r3, r3, #1
8007d3a: 4a1c ldr r2, [pc, #112] ; (8007dac <Display+0x1a50>)
8007d3c: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
8007d40: b292 uxth r2, r2
8007d42: 4413 add r3, r2
8007d44: 491c ldr r1, [pc, #112] ; (8007db8 <Display+0x1a5c>)
8007d46: 0102 lsls r2, r0, #4
8007d48: 4413 add r3, r2
8007d4a: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007d4e: 2303 movs r3, #3
8007d50: 2178 movs r1, #120 ; 0x78
8007d52: 20dc movs r0, #220 ; 0xdc
8007d54: f7fd fa74 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
8007d58: f005 bfb2 b.w 800dcc0 <Display+0x7964>
if(menupos == Sens_2)
8007d5c: 4b12 ldr r3, [pc, #72] ; (8007da8 <Display+0x1a4c>)
8007d5e: 781b ldrb r3, [r3, #0]
8007d60: b2db uxtb r3, r3
8007d62: 2b08 cmp r3, #8
8007d64: f040 80b1 bne.w 8007eca <Display+0x1b6e>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8007d68: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007d6c: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8007d70: f7fd f9a0 bl 80050b4 <LCD_SetColors>
if(focused)
8007d74: 4b11 ldr r3, [pc, #68] ; (8007dbc <Display+0x1a60>)
8007d76: 781b ldrb r3, [r3, #0]
8007d78: b2db uxtb r3, r3
8007d7a: 2b00 cmp r3, #0
8007d7c: d022 beq.n 8007dc4 <Display+0x1a68>
if(blk)
8007d7e: 4b10 ldr r3, [pc, #64] ; (8007dc0 <Display+0x1a64>)
8007d80: 681b ldr r3, [r3, #0]
8007d82: 2b00 cmp r3, #0
8007d84: d025 beq.n 8007dd2 <Display+0x1a76>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8007d86: f107 02e0 add.w r2, r7, #224 ; 0xe0
8007d8a: 2303 movs r3, #3
8007d8c: 2150 movs r1, #80 ; 0x50
8007d8e: 208c movs r0, #140 ; 0x8c
8007d90: f7fd fa56 bl 8005240 <BSP_LCD_DisplayStringAt>
8007d94: e01d b.n 8007dd2 <Display+0x1a76>
8007d96: bf00 nop
8007d98: 0801839c .word 0x0801839c
8007d9c: 080183a8 .word 0x080183a8
8007da0: 080183b4 .word 0x080183b4
8007da4: 080183c0 .word 0x080183c0
8007da8: 20020010 .word 0x20020010
8007dac: 2006bb88 .word 0x2006bb88
8007db0: 20020034 .word 0x20020034
8007db4: ffd8aa57 .word 0xffd8aa57
8007db8: 200200bc .word 0x200200bc
8007dbc: 200208c4 .word 0x200208c4
8007dc0: 2006b958 .word 0x2006b958
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8007dc4: f107 02e0 add.w r2, r7, #224 ; 0xe0
8007dc8: 2303 movs r3, #3
8007dca: 2150 movs r1, #80 ; 0x50
8007dcc: 208c movs r0, #140 ; 0x8c
8007dce: f7fd fa37 bl 8005240 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8007dd2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007dd6: 489b ldr r0, [pc, #620] ; (8008044 <Display+0x1ce8>)
8007dd8: f7fd f96c bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8007ddc: f507 728e add.w r2, r7, #284 ; 0x11c
8007de0: 2303 movs r3, #3
8007de2: 213c movs r1, #60 ; 0x3c
8007de4: 208c movs r0, #140 ; 0x8c
8007de6: f7fd fa2b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8007dea: f107 02a4 add.w r2, r7, #164 ; 0xa4
8007dee: 2303 movs r3, #3
8007df0: 2164 movs r1, #100 ; 0x64
8007df2: 208c movs r0, #140 ; 0x8c
8007df4: f7fd fa24 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8007df8: f107 0268 add.w r2, r7, #104 ; 0x68
8007dfc: 2303 movs r3, #3
8007dfe: 2178 movs r1, #120 ; 0x78
8007e00: 208c movs r0, #140 ; 0x8c
8007e02: f7fd fa1d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
8007e06: 4b90 ldr r3, [pc, #576] ; (8008048 <Display+0x1cec>)
8007e08: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007e0c: b29b uxth r3, r3
8007e0e: 4618 mov r0, r3
8007e10: 4b8d ldr r3, [pc, #564] ; (8008048 <Display+0x1cec>)
8007e12: 8a5b ldrh r3, [r3, #18]
8007e14: b29b uxth r3, r3
8007e16: 005b lsls r3, r3, #1
8007e18: 4a8b ldr r2, [pc, #556] ; (8008048 <Display+0x1cec>)
8007e1a: 8812 ldrh r2, [r2, #0]
8007e1c: b292 uxth r2, r2
8007e1e: 4413 add r3, r2
8007e20: 498a ldr r1, [pc, #552] ; (800804c <Display+0x1cf0>)
8007e22: 0102 lsls r2, r0, #4
8007e24: 4413 add r3, r2
8007e26: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007e2a: 2303 movs r3, #3
8007e2c: 213c movs r1, #60 ; 0x3c
8007e2e: 20dc movs r0, #220 ; 0xdc
8007e30: f7fd fa06 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8007e34: 4b84 ldr r3, [pc, #528] ; (8008048 <Display+0x1cec>)
8007e36: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007e3a: b29b uxth r3, r3
8007e3c: 4618 mov r0, r3
8007e3e: 4b82 ldr r3, [pc, #520] ; (8008048 <Display+0x1cec>)
8007e40: 8e5b ldrh r3, [r3, #50] ; 0x32
8007e42: b29b uxth r3, r3
8007e44: 005b lsls r3, r3, #1
8007e46: 4a80 ldr r2, [pc, #512] ; (8008048 <Display+0x1cec>)
8007e48: 8c12 ldrh r2, [r2, #32]
8007e4a: b292 uxth r2, r2
8007e4c: 4413 add r3, r2
8007e4e: 497f ldr r1, [pc, #508] ; (800804c <Display+0x1cf0>)
8007e50: 0102 lsls r2, r0, #4
8007e52: 4413 add r3, r2
8007e54: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007e58: 2303 movs r3, #3
8007e5a: 2150 movs r1, #80 ; 0x50
8007e5c: 20dc movs r0, #220 ; 0xdc
8007e5e: f7fd f9ef bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8007e62: 4b79 ldr r3, [pc, #484] ; (8008048 <Display+0x1cec>)
8007e64: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007e68: b29b uxth r3, r3
8007e6a: 4618 mov r0, r3
8007e6c: 4b76 ldr r3, [pc, #472] ; (8008048 <Display+0x1cec>)
8007e6e: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8007e72: b29b uxth r3, r3
8007e74: 005b lsls r3, r3, #1
8007e76: 4a74 ldr r2, [pc, #464] ; (8008048 <Display+0x1cec>)
8007e78: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
8007e7c: b292 uxth r2, r2
8007e7e: 4413 add r3, r2
8007e80: 4972 ldr r1, [pc, #456] ; (800804c <Display+0x1cf0>)
8007e82: 0102 lsls r2, r0, #4
8007e84: 4413 add r3, r2
8007e86: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007e8a: 2303 movs r3, #3
8007e8c: 2164 movs r1, #100 ; 0x64
8007e8e: 20dc movs r0, #220 ; 0xdc
8007e90: f7fd f9d6 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
8007e94: 4b6c ldr r3, [pc, #432] ; (8008048 <Display+0x1cec>)
8007e96: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007e9a: b29b uxth r3, r3
8007e9c: 4618 mov r0, r3
8007e9e: 4b6a ldr r3, [pc, #424] ; (8008048 <Display+0x1cec>)
8007ea0: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8007ea4: b29b uxth r3, r3
8007ea6: 005b lsls r3, r3, #1
8007ea8: 4a67 ldr r2, [pc, #412] ; (8008048 <Display+0x1cec>)
8007eaa: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
8007eae: b292 uxth r2, r2
8007eb0: 4413 add r3, r2
8007eb2: 4966 ldr r1, [pc, #408] ; (800804c <Display+0x1cf0>)
8007eb4: 0102 lsls r2, r0, #4
8007eb6: 4413 add r3, r2
8007eb8: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007ebc: 2303 movs r3, #3
8007ebe: 2178 movs r1, #120 ; 0x78
8007ec0: 20dc movs r0, #220 ; 0xdc
8007ec2: f7fd f9bd bl 8005240 <BSP_LCD_DisplayStringAt>
break;
8007ec6: f005 befb b.w 800dcc0 <Display+0x7964>
if(menupos == Sens_3)
8007eca: 4b61 ldr r3, [pc, #388] ; (8008050 <Display+0x1cf4>)
8007ecc: 781b ldrb r3, [r3, #0]
8007ece: b2db uxtb r3, r3
8007ed0: 2b10 cmp r3, #16
8007ed2: f040 809a bne.w 800800a <Display+0x1cae>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8007ed6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007eda: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8007ede: f7fd f8e9 bl 80050b4 <LCD_SetColors>
if(focused)
8007ee2: 4b5c ldr r3, [pc, #368] ; (8008054 <Display+0x1cf8>)
8007ee4: 781b ldrb r3, [r3, #0]
8007ee6: b2db uxtb r3, r3
8007ee8: 2b00 cmp r3, #0
8007eea: d00b beq.n 8007f04 <Display+0x1ba8>
if(blk)
8007eec: 4b5a ldr r3, [pc, #360] ; (8008058 <Display+0x1cfc>)
8007eee: 681b ldr r3, [r3, #0]
8007ef0: 2b00 cmp r3, #0
8007ef2: d00e beq.n 8007f12 <Display+0x1bb6>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8007ef4: f107 02a4 add.w r2, r7, #164 ; 0xa4
8007ef8: 2303 movs r3, #3
8007efa: 2164 movs r1, #100 ; 0x64
8007efc: 208c movs r0, #140 ; 0x8c
8007efe: f7fd f99f bl 8005240 <BSP_LCD_DisplayStringAt>
8007f02: e006 b.n 8007f12 <Display+0x1bb6>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8007f04: f107 02a4 add.w r2, r7, #164 ; 0xa4
8007f08: 2303 movs r3, #3
8007f0a: 2164 movs r1, #100 ; 0x64
8007f0c: 208c movs r0, #140 ; 0x8c
8007f0e: f7fd f997 bl 8005240 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8007f12: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007f16: 484b ldr r0, [pc, #300] ; (8008044 <Display+0x1ce8>)
8007f18: f7fd f8cc bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8007f1c: f507 728e add.w r2, r7, #284 ; 0x11c
8007f20: 2303 movs r3, #3
8007f22: 213c movs r1, #60 ; 0x3c
8007f24: 208c movs r0, #140 ; 0x8c
8007f26: f7fd f98b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8007f2a: f107 02e0 add.w r2, r7, #224 ; 0xe0
8007f2e: 2303 movs r3, #3
8007f30: 2150 movs r1, #80 ; 0x50
8007f32: 208c movs r0, #140 ; 0x8c
8007f34: f7fd f984 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8007f38: f107 0268 add.w r2, r7, #104 ; 0x68
8007f3c: 2303 movs r3, #3
8007f3e: 2178 movs r1, #120 ; 0x78
8007f40: 208c movs r0, #140 ; 0x8c
8007f42: f7fd f97d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
8007f46: 4b40 ldr r3, [pc, #256] ; (8008048 <Display+0x1cec>)
8007f48: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007f4c: b29b uxth r3, r3
8007f4e: 4618 mov r0, r3
8007f50: 4b3d ldr r3, [pc, #244] ; (8008048 <Display+0x1cec>)
8007f52: 8a5b ldrh r3, [r3, #18]
8007f54: b29b uxth r3, r3
8007f56: 005b lsls r3, r3, #1
8007f58: 4a3b ldr r2, [pc, #236] ; (8008048 <Display+0x1cec>)
8007f5a: 8812 ldrh r2, [r2, #0]
8007f5c: b292 uxth r2, r2
8007f5e: 4413 add r3, r2
8007f60: 493a ldr r1, [pc, #232] ; (800804c <Display+0x1cf0>)
8007f62: 0102 lsls r2, r0, #4
8007f64: 4413 add r3, r2
8007f66: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007f6a: 2303 movs r3, #3
8007f6c: 213c movs r1, #60 ; 0x3c
8007f6e: 20dc movs r0, #220 ; 0xdc
8007f70: f7fd f966 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8007f74: 4b34 ldr r3, [pc, #208] ; (8008048 <Display+0x1cec>)
8007f76: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007f7a: b29b uxth r3, r3
8007f7c: 4618 mov r0, r3
8007f7e: 4b32 ldr r3, [pc, #200] ; (8008048 <Display+0x1cec>)
8007f80: 8e5b ldrh r3, [r3, #50] ; 0x32
8007f82: b29b uxth r3, r3
8007f84: 005b lsls r3, r3, #1
8007f86: 4a30 ldr r2, [pc, #192] ; (8008048 <Display+0x1cec>)
8007f88: 8c12 ldrh r2, [r2, #32]
8007f8a: b292 uxth r2, r2
8007f8c: 4413 add r3, r2
8007f8e: 492f ldr r1, [pc, #188] ; (800804c <Display+0x1cf0>)
8007f90: 0102 lsls r2, r0, #4
8007f92: 4413 add r3, r2
8007f94: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007f98: 2303 movs r3, #3
8007f9a: 2150 movs r1, #80 ; 0x50
8007f9c: 20dc movs r0, #220 ; 0xdc
8007f9e: f7fd f94f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8007fa2: 4b29 ldr r3, [pc, #164] ; (8008048 <Display+0x1cec>)
8007fa4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007fa8: b29b uxth r3, r3
8007faa: 4618 mov r0, r3
8007fac: 4b26 ldr r3, [pc, #152] ; (8008048 <Display+0x1cec>)
8007fae: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8007fb2: b29b uxth r3, r3
8007fb4: 005b lsls r3, r3, #1
8007fb6: 4a24 ldr r2, [pc, #144] ; (8008048 <Display+0x1cec>)
8007fb8: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
8007fbc: b292 uxth r2, r2
8007fbe: 4413 add r3, r2
8007fc0: 4922 ldr r1, [pc, #136] ; (800804c <Display+0x1cf0>)
8007fc2: 0102 lsls r2, r0, #4
8007fc4: 4413 add r3, r2
8007fc6: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007fca: 2303 movs r3, #3
8007fcc: 2164 movs r1, #100 ; 0x64
8007fce: 20dc movs r0, #220 ; 0xdc
8007fd0: f7fd f936 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
8007fd4: 4b1c ldr r3, [pc, #112] ; (8008048 <Display+0x1cec>)
8007fd6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007fda: b29b uxth r3, r3
8007fdc: 4618 mov r0, r3
8007fde: 4b1a ldr r3, [pc, #104] ; (8008048 <Display+0x1cec>)
8007fe0: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8007fe4: b29b uxth r3, r3
8007fe6: 005b lsls r3, r3, #1
8007fe8: 4a17 ldr r2, [pc, #92] ; (8008048 <Display+0x1cec>)
8007fea: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
8007fee: b292 uxth r2, r2
8007ff0: 4413 add r3, r2
8007ff2: 4916 ldr r1, [pc, #88] ; (800804c <Display+0x1cf0>)
8007ff4: 0102 lsls r2, r0, #4
8007ff6: 4413 add r3, r2
8007ff8: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007ffc: 2303 movs r3, #3
8007ffe: 2178 movs r1, #120 ; 0x78
8008000: 20dc movs r0, #220 ; 0xdc
8008002: f7fd f91d bl 8005240 <BSP_LCD_DisplayStringAt>
break;
8008006: f005 be5b b.w 800dcc0 <Display+0x7964>
if(menupos == Sens_4)
800800a: 4b11 ldr r3, [pc, #68] ; (8008050 <Display+0x1cf4>)
800800c: 781b ldrb r3, [r3, #0]
800800e: b2db uxtb r3, r3
8008010: 2b18 cmp r3, #24
8008012: f040 80a6 bne.w 8008162 <Display+0x1e06>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8008016: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800801a: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800801e: f7fd f849 bl 80050b4 <LCD_SetColors>
if(focused)
8008022: 4b0c ldr r3, [pc, #48] ; (8008054 <Display+0x1cf8>)
8008024: 781b ldrb r3, [r3, #0]
8008026: b2db uxtb r3, r3
8008028: 2b00 cmp r3, #0
800802a: d017 beq.n 800805c <Display+0x1d00>
if(blk)
800802c: 4b0a ldr r3, [pc, #40] ; (8008058 <Display+0x1cfc>)
800802e: 681b ldr r3, [r3, #0]
8008030: 2b00 cmp r3, #0
8008032: d01a beq.n 800806a <Display+0x1d0e>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8008034: f107 0268 add.w r2, r7, #104 ; 0x68
8008038: 2303 movs r3, #3
800803a: 2178 movs r1, #120 ; 0x78
800803c: 208c movs r0, #140 ; 0x8c
800803e: f7fd f8ff bl 8005240 <BSP_LCD_DisplayStringAt>
8008042: e012 b.n 800806a <Display+0x1d0e>
8008044: ffd8aa57 .word 0xffd8aa57
8008048: 2006bb88 .word 0x2006bb88
800804c: 200200bc .word 0x200200bc
8008050: 20020010 .word 0x20020010
8008054: 200208c4 .word 0x200208c4
8008058: 2006b958 .word 0x2006b958
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
800805c: f107 0268 add.w r2, r7, #104 ; 0x68
8008060: 2303 movs r3, #3
8008062: 2178 movs r1, #120 ; 0x78
8008064: 208c movs r0, #140 ; 0x8c
8008066: f7fd f8eb bl 8005240 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800806a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800806e: 48ab ldr r0, [pc, #684] ; (800831c <Display+0x1fc0>)
8008070: f7fd f820 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8008074: f507 728e add.w r2, r7, #284 ; 0x11c
8008078: 2303 movs r3, #3
800807a: 213c movs r1, #60 ; 0x3c
800807c: 208c movs r0, #140 ; 0x8c
800807e: f7fd f8df bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8008082: f107 02e0 add.w r2, r7, #224 ; 0xe0
8008086: 2303 movs r3, #3
8008088: 2150 movs r1, #80 ; 0x50
800808a: 208c movs r0, #140 ; 0x8c
800808c: f7fd f8d8 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8008090: f107 02a4 add.w r2, r7, #164 ; 0xa4
8008094: 2303 movs r3, #3
8008096: 2164 movs r1, #100 ; 0x64
8008098: 208c movs r0, #140 ; 0x8c
800809a: f7fd f8d1 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
800809e: 4ba0 ldr r3, [pc, #640] ; (8008320 <Display+0x1fc4>)
80080a0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80080a4: b29b uxth r3, r3
80080a6: 4618 mov r0, r3
80080a8: 4b9d ldr r3, [pc, #628] ; (8008320 <Display+0x1fc4>)
80080aa: 8a5b ldrh r3, [r3, #18]
80080ac: b29b uxth r3, r3
80080ae: 005b lsls r3, r3, #1
80080b0: 4a9b ldr r2, [pc, #620] ; (8008320 <Display+0x1fc4>)
80080b2: 8812 ldrh r2, [r2, #0]
80080b4: b292 uxth r2, r2
80080b6: 4413 add r3, r2
80080b8: 499a ldr r1, [pc, #616] ; (8008324 <Display+0x1fc8>)
80080ba: 0102 lsls r2, r0, #4
80080bc: 4413 add r3, r2
80080be: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80080c2: 2303 movs r3, #3
80080c4: 213c movs r1, #60 ; 0x3c
80080c6: 20dc movs r0, #220 ; 0xdc
80080c8: f7fd f8ba bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
80080cc: 4b94 ldr r3, [pc, #592] ; (8008320 <Display+0x1fc4>)
80080ce: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80080d2: b29b uxth r3, r3
80080d4: 4618 mov r0, r3
80080d6: 4b92 ldr r3, [pc, #584] ; (8008320 <Display+0x1fc4>)
80080d8: 8e5b ldrh r3, [r3, #50] ; 0x32
80080da: b29b uxth r3, r3
80080dc: 005b lsls r3, r3, #1
80080de: 4a90 ldr r2, [pc, #576] ; (8008320 <Display+0x1fc4>)
80080e0: 8c12 ldrh r2, [r2, #32]
80080e2: b292 uxth r2, r2
80080e4: 4413 add r3, r2
80080e6: 498f ldr r1, [pc, #572] ; (8008324 <Display+0x1fc8>)
80080e8: 0102 lsls r2, r0, #4
80080ea: 4413 add r3, r2
80080ec: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80080f0: 2303 movs r3, #3
80080f2: 2150 movs r1, #80 ; 0x50
80080f4: 20dc movs r0, #220 ; 0xdc
80080f6: f7fd f8a3 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
80080fa: 4b89 ldr r3, [pc, #548] ; (8008320 <Display+0x1fc4>)
80080fc: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008100: b29b uxth r3, r3
8008102: 4618 mov r0, r3
8008104: 4b86 ldr r3, [pc, #536] ; (8008320 <Display+0x1fc4>)
8008106: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
800810a: b29b uxth r3, r3
800810c: 005b lsls r3, r3, #1
800810e: 4a84 ldr r2, [pc, #528] ; (8008320 <Display+0x1fc4>)
8008110: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
8008114: b292 uxth r2, r2
8008116: 4413 add r3, r2
8008118: 4982 ldr r1, [pc, #520] ; (8008324 <Display+0x1fc8>)
800811a: 0102 lsls r2, r0, #4
800811c: 4413 add r3, r2
800811e: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008122: 2303 movs r3, #3
8008124: 2164 movs r1, #100 ; 0x64
8008126: 20dc movs r0, #220 ; 0xdc
8008128: f7fd f88a bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
800812c: 4b7c ldr r3, [pc, #496] ; (8008320 <Display+0x1fc4>)
800812e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008132: b29b uxth r3, r3
8008134: 4618 mov r0, r3
8008136: 4b7a ldr r3, [pc, #488] ; (8008320 <Display+0x1fc4>)
8008138: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
800813c: b29b uxth r3, r3
800813e: 005b lsls r3, r3, #1
8008140: 4a77 ldr r2, [pc, #476] ; (8008320 <Display+0x1fc4>)
8008142: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
8008146: b292 uxth r2, r2
8008148: 4413 add r3, r2
800814a: 4976 ldr r1, [pc, #472] ; (8008324 <Display+0x1fc8>)
800814c: 0102 lsls r2, r0, #4
800814e: 4413 add r3, r2
8008150: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008154: 2303 movs r3, #3
8008156: 2178 movs r1, #120 ; 0x78
8008158: 20dc movs r0, #220 ; 0xdc
800815a: f7fd f871 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800815e: f005 bdaf b.w 800dcc0 <Display+0x7964>
if(menupos == Val_1)
8008162: 4b71 ldr r3, [pc, #452] ; (8008328 <Display+0x1fcc>)
8008164: 781b ldrb r3, [r3, #0]
8008166: b2db uxtb r3, r3
8008168: 2b01 cmp r3, #1
800816a: f040 80aa bne.w 80082c2 <Display+0x1f66>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800816e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008172: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8008176: f7fc ff9d bl 80050b4 <LCD_SetColors>
if(focused)
800817a: 4b6c ldr r3, [pc, #432] ; (800832c <Display+0x1fd0>)
800817c: 781b ldrb r3, [r3, #0]
800817e: b2db uxtb r3, r3
8008180: 2b00 cmp r3, #0
8008182: d01b beq.n 80081bc <Display+0x1e60>
if(blk)
8008184: 4b6a ldr r3, [pc, #424] ; (8008330 <Display+0x1fd4>)
8008186: 681b ldr r3, [r3, #0]
8008188: 2b00 cmp r3, #0
800818a: d02e beq.n 80081ea <Display+0x1e8e>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
800818c: 4b64 ldr r3, [pc, #400] ; (8008320 <Display+0x1fc4>)
800818e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008192: b29b uxth r3, r3
8008194: 4618 mov r0, r3
8008196: 4b62 ldr r3, [pc, #392] ; (8008320 <Display+0x1fc4>)
8008198: 8a5b ldrh r3, [r3, #18]
800819a: b29b uxth r3, r3
800819c: 005b lsls r3, r3, #1
800819e: 4a60 ldr r2, [pc, #384] ; (8008320 <Display+0x1fc4>)
80081a0: 8812 ldrh r2, [r2, #0]
80081a2: b292 uxth r2, r2
80081a4: 4413 add r3, r2
80081a6: 495f ldr r1, [pc, #380] ; (8008324 <Display+0x1fc8>)
80081a8: 0102 lsls r2, r0, #4
80081aa: 4413 add r3, r2
80081ac: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80081b0: 2303 movs r3, #3
80081b2: 213c movs r1, #60 ; 0x3c
80081b4: 20dc movs r0, #220 ; 0xdc
80081b6: f7fd f843 bl 8005240 <BSP_LCD_DisplayStringAt>
80081ba: e016 b.n 80081ea <Display+0x1e8e>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
80081bc: 4b58 ldr r3, [pc, #352] ; (8008320 <Display+0x1fc4>)
80081be: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80081c2: b29b uxth r3, r3
80081c4: 4618 mov r0, r3
80081c6: 4b56 ldr r3, [pc, #344] ; (8008320 <Display+0x1fc4>)
80081c8: 8a5b ldrh r3, [r3, #18]
80081ca: b29b uxth r3, r3
80081cc: 005b lsls r3, r3, #1
80081ce: 4a54 ldr r2, [pc, #336] ; (8008320 <Display+0x1fc4>)
80081d0: 8812 ldrh r2, [r2, #0]
80081d2: b292 uxth r2, r2
80081d4: 4413 add r3, r2
80081d6: 4953 ldr r1, [pc, #332] ; (8008324 <Display+0x1fc8>)
80081d8: 0102 lsls r2, r0, #4
80081da: 4413 add r3, r2
80081dc: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80081e0: 2303 movs r3, #3
80081e2: 213c movs r1, #60 ; 0x3c
80081e4: 20dc movs r0, #220 ; 0xdc
80081e6: f7fd f82b bl 8005240 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
80081ea: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80081ee: 484b ldr r0, [pc, #300] ; (800831c <Display+0x1fc0>)
80081f0: f7fc ff60 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
80081f4: f507 728e add.w r2, r7, #284 ; 0x11c
80081f8: 2303 movs r3, #3
80081fa: 213c movs r1, #60 ; 0x3c
80081fc: 208c movs r0, #140 ; 0x8c
80081fe: f7fd f81f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8008202: f107 02e0 add.w r2, r7, #224 ; 0xe0
8008206: 2303 movs r3, #3
8008208: 2150 movs r1, #80 ; 0x50
800820a: 208c movs r0, #140 ; 0x8c
800820c: f7fd f818 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8008210: f107 02a4 add.w r2, r7, #164 ; 0xa4
8008214: 2303 movs r3, #3
8008216: 2164 movs r1, #100 ; 0x64
8008218: 208c movs r0, #140 ; 0x8c
800821a: f7fd f811 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
800821e: f107 0268 add.w r2, r7, #104 ; 0x68
8008222: 2303 movs r3, #3
8008224: 2178 movs r1, #120 ; 0x78
8008226: 208c movs r0, #140 ; 0x8c
8008228: f7fd f80a bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
800822c: 4b3c ldr r3, [pc, #240] ; (8008320 <Display+0x1fc4>)
800822e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008232: b29b uxth r3, r3
8008234: 4618 mov r0, r3
8008236: 4b3a ldr r3, [pc, #232] ; (8008320 <Display+0x1fc4>)
8008238: 8e5b ldrh r3, [r3, #50] ; 0x32
800823a: b29b uxth r3, r3
800823c: 005b lsls r3, r3, #1
800823e: 4a38 ldr r2, [pc, #224] ; (8008320 <Display+0x1fc4>)
8008240: 8c12 ldrh r2, [r2, #32]
8008242: b292 uxth r2, r2
8008244: 4413 add r3, r2
8008246: 4937 ldr r1, [pc, #220] ; (8008324 <Display+0x1fc8>)
8008248: 0102 lsls r2, r0, #4
800824a: 4413 add r3, r2
800824c: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008250: 2303 movs r3, #3
8008252: 2150 movs r1, #80 ; 0x50
8008254: 20dc movs r0, #220 ; 0xdc
8008256: f7fc fff3 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
800825a: 4b31 ldr r3, [pc, #196] ; (8008320 <Display+0x1fc4>)
800825c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008260: b29b uxth r3, r3
8008262: 4618 mov r0, r3
8008264: 4b2e ldr r3, [pc, #184] ; (8008320 <Display+0x1fc4>)
8008266: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
800826a: b29b uxth r3, r3
800826c: 005b lsls r3, r3, #1
800826e: 4a2c ldr r2, [pc, #176] ; (8008320 <Display+0x1fc4>)
8008270: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
8008274: b292 uxth r2, r2
8008276: 4413 add r3, r2
8008278: 492a ldr r1, [pc, #168] ; (8008324 <Display+0x1fc8>)
800827a: 0102 lsls r2, r0, #4
800827c: 4413 add r3, r2
800827e: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008282: 2303 movs r3, #3
8008284: 2164 movs r1, #100 ; 0x64
8008286: 20dc movs r0, #220 ; 0xdc
8008288: f7fc ffda bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
800828c: 4b24 ldr r3, [pc, #144] ; (8008320 <Display+0x1fc4>)
800828e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008292: b29b uxth r3, r3
8008294: 4618 mov r0, r3
8008296: 4b22 ldr r3, [pc, #136] ; (8008320 <Display+0x1fc4>)
8008298: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
800829c: b29b uxth r3, r3
800829e: 005b lsls r3, r3, #1
80082a0: 4a1f ldr r2, [pc, #124] ; (8008320 <Display+0x1fc4>)
80082a2: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
80082a6: b292 uxth r2, r2
80082a8: 4413 add r3, r2
80082aa: 491e ldr r1, [pc, #120] ; (8008324 <Display+0x1fc8>)
80082ac: 0102 lsls r2, r0, #4
80082ae: 4413 add r3, r2
80082b0: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80082b4: 2303 movs r3, #3
80082b6: 2178 movs r1, #120 ; 0x78
80082b8: 20dc movs r0, #220 ; 0xdc
80082ba: f7fc ffc1 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
80082be: f005 bcff b.w 800dcc0 <Display+0x7964>
if(menupos == Val_2)
80082c2: 4b19 ldr r3, [pc, #100] ; (8008328 <Display+0x1fcc>)
80082c4: 781b ldrb r3, [r3, #0]
80082c6: b2db uxtb r3, r3
80082c8: 2b09 cmp r3, #9
80082ca: f040 80b6 bne.w 800843a <Display+0x20de>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
80082ce: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80082d2: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
80082d6: f7fc feed bl 80050b4 <LCD_SetColors>
if(focused)
80082da: 4b14 ldr r3, [pc, #80] ; (800832c <Display+0x1fd0>)
80082dc: 781b ldrb r3, [r3, #0]
80082de: b2db uxtb r3, r3
80082e0: 2b00 cmp r3, #0
80082e2: d027 beq.n 8008334 <Display+0x1fd8>
if(blk)
80082e4: 4b12 ldr r3, [pc, #72] ; (8008330 <Display+0x1fd4>)
80082e6: 681b ldr r3, [r3, #0]
80082e8: 2b00 cmp r3, #0
80082ea: d03a beq.n 8008362 <Display+0x2006>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
80082ec: 4b0c ldr r3, [pc, #48] ; (8008320 <Display+0x1fc4>)
80082ee: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80082f2: b29b uxth r3, r3
80082f4: 4618 mov r0, r3
80082f6: 4b0a ldr r3, [pc, #40] ; (8008320 <Display+0x1fc4>)
80082f8: 8e5b ldrh r3, [r3, #50] ; 0x32
80082fa: b29b uxth r3, r3
80082fc: 005b lsls r3, r3, #1
80082fe: 4a08 ldr r2, [pc, #32] ; (8008320 <Display+0x1fc4>)
8008300: 8c12 ldrh r2, [r2, #32]
8008302: b292 uxth r2, r2
8008304: 4413 add r3, r2
8008306: 4907 ldr r1, [pc, #28] ; (8008324 <Display+0x1fc8>)
8008308: 0102 lsls r2, r0, #4
800830a: 4413 add r3, r2
800830c: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008310: 2303 movs r3, #3
8008312: 2150 movs r1, #80 ; 0x50
8008314: 20dc movs r0, #220 ; 0xdc
8008316: f7fc ff93 bl 8005240 <BSP_LCD_DisplayStringAt>
800831a: e022 b.n 8008362 <Display+0x2006>
800831c: ffd8aa57 .word 0xffd8aa57
8008320: 2006bb88 .word 0x2006bb88
8008324: 200200bc .word 0x200200bc
8008328: 20020010 .word 0x20020010
800832c: 200208c4 .word 0x200208c4
8008330: 2006b958 .word 0x2006b958
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8008334: 4bb1 ldr r3, [pc, #708] ; (80085fc <Display+0x22a0>)
8008336: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800833a: b29b uxth r3, r3
800833c: 4618 mov r0, r3
800833e: 4baf ldr r3, [pc, #700] ; (80085fc <Display+0x22a0>)
8008340: 8e5b ldrh r3, [r3, #50] ; 0x32
8008342: b29b uxth r3, r3
8008344: 005b lsls r3, r3, #1
8008346: 4aad ldr r2, [pc, #692] ; (80085fc <Display+0x22a0>)
8008348: 8c12 ldrh r2, [r2, #32]
800834a: b292 uxth r2, r2
800834c: 4413 add r3, r2
800834e: 49ac ldr r1, [pc, #688] ; (8008600 <Display+0x22a4>)
8008350: 0102 lsls r2, r0, #4
8008352: 4413 add r3, r2
8008354: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008358: 2303 movs r3, #3
800835a: 2150 movs r1, #80 ; 0x50
800835c: 20dc movs r0, #220 ; 0xdc
800835e: f7fc ff6f bl 8005240 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8008362: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008366: 48a7 ldr r0, [pc, #668] ; (8008604 <Display+0x22a8>)
8008368: f7fc fea4 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
800836c: f507 728e add.w r2, r7, #284 ; 0x11c
8008370: 2303 movs r3, #3
8008372: 213c movs r1, #60 ; 0x3c
8008374: 208c movs r0, #140 ; 0x8c
8008376: f7fc ff63 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
800837a: f107 02e0 add.w r2, r7, #224 ; 0xe0
800837e: 2303 movs r3, #3
8008380: 2150 movs r1, #80 ; 0x50
8008382: 208c movs r0, #140 ; 0x8c
8008384: f7fc ff5c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8008388: f107 02a4 add.w r2, r7, #164 ; 0xa4
800838c: 2303 movs r3, #3
800838e: 2164 movs r1, #100 ; 0x64
8008390: 208c movs r0, #140 ; 0x8c
8008392: f7fc ff55 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8008396: f107 0268 add.w r2, r7, #104 ; 0x68
800839a: 2303 movs r3, #3
800839c: 2178 movs r1, #120 ; 0x78
800839e: 208c movs r0, #140 ; 0x8c
80083a0: f7fc ff4e bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
80083a4: 4b95 ldr r3, [pc, #596] ; (80085fc <Display+0x22a0>)
80083a6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80083aa: b29b uxth r3, r3
80083ac: 4618 mov r0, r3
80083ae: 4b93 ldr r3, [pc, #588] ; (80085fc <Display+0x22a0>)
80083b0: 8a5b ldrh r3, [r3, #18]
80083b2: b29b uxth r3, r3
80083b4: 005b lsls r3, r3, #1
80083b6: 4a91 ldr r2, [pc, #580] ; (80085fc <Display+0x22a0>)
80083b8: 8812 ldrh r2, [r2, #0]
80083ba: b292 uxth r2, r2
80083bc: 4413 add r3, r2
80083be: 4990 ldr r1, [pc, #576] ; (8008600 <Display+0x22a4>)
80083c0: 0102 lsls r2, r0, #4
80083c2: 4413 add r3, r2
80083c4: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80083c8: 2303 movs r3, #3
80083ca: 213c movs r1, #60 ; 0x3c
80083cc: 20dc movs r0, #220 ; 0xdc
80083ce: f7fc ff37 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
80083d2: 4b8a ldr r3, [pc, #552] ; (80085fc <Display+0x22a0>)
80083d4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80083d8: b29b uxth r3, r3
80083da: 4618 mov r0, r3
80083dc: 4b87 ldr r3, [pc, #540] ; (80085fc <Display+0x22a0>)
80083de: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
80083e2: b29b uxth r3, r3
80083e4: 005b lsls r3, r3, #1
80083e6: 4a85 ldr r2, [pc, #532] ; (80085fc <Display+0x22a0>)
80083e8: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
80083ec: b292 uxth r2, r2
80083ee: 4413 add r3, r2
80083f0: 4983 ldr r1, [pc, #524] ; (8008600 <Display+0x22a4>)
80083f2: 0102 lsls r2, r0, #4
80083f4: 4413 add r3, r2
80083f6: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80083fa: 2303 movs r3, #3
80083fc: 2164 movs r1, #100 ; 0x64
80083fe: 20dc movs r0, #220 ; 0xdc
8008400: f7fc ff1e bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
8008404: 4b7d ldr r3, [pc, #500] ; (80085fc <Display+0x22a0>)
8008406: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800840a: b29b uxth r3, r3
800840c: 4618 mov r0, r3
800840e: 4b7b ldr r3, [pc, #492] ; (80085fc <Display+0x22a0>)
8008410: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8008414: b29b uxth r3, r3
8008416: 005b lsls r3, r3, #1
8008418: 4a78 ldr r2, [pc, #480] ; (80085fc <Display+0x22a0>)
800841a: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
800841e: b292 uxth r2, r2
8008420: 4413 add r3, r2
8008422: 4977 ldr r1, [pc, #476] ; (8008600 <Display+0x22a4>)
8008424: 0102 lsls r2, r0, #4
8008426: 4413 add r3, r2
8008428: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800842c: 2303 movs r3, #3
800842e: 2178 movs r1, #120 ; 0x78
8008430: 20dc movs r0, #220 ; 0xdc
8008432: f7fc ff05 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
8008436: f005 bc43 b.w 800dcc0 <Display+0x7964>
if(menupos == Val_3)
800843a: 4b73 ldr r3, [pc, #460] ; (8008608 <Display+0x22ac>)
800843c: 781b ldrb r3, [r3, #0]
800843e: b2db uxtb r3, r3
8008440: 2b11 cmp r3, #17
8008442: f040 80ac bne.w 800859e <Display+0x2242>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8008446: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800844a: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800844e: f7fc fe31 bl 80050b4 <LCD_SetColors>
if(focused)
8008452: 4b6e ldr r3, [pc, #440] ; (800860c <Display+0x22b0>)
8008454: 781b ldrb r3, [r3, #0]
8008456: b2db uxtb r3, r3
8008458: 2b00 cmp r3, #0
800845a: d01d beq.n 8008498 <Display+0x213c>
if(blk)
800845c: 4b6c ldr r3, [pc, #432] ; (8008610 <Display+0x22b4>)
800845e: 681b ldr r3, [r3, #0]
8008460: 2b00 cmp r3, #0
8008462: d032 beq.n 80084ca <Display+0x216e>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8008464: 4b65 ldr r3, [pc, #404] ; (80085fc <Display+0x22a0>)
8008466: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800846a: b29b uxth r3, r3
800846c: 4618 mov r0, r3
800846e: 4b63 ldr r3, [pc, #396] ; (80085fc <Display+0x22a0>)
8008470: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8008474: b29b uxth r3, r3
8008476: 005b lsls r3, r3, #1
8008478: 4a60 ldr r2, [pc, #384] ; (80085fc <Display+0x22a0>)
800847a: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
800847e: b292 uxth r2, r2
8008480: 4413 add r3, r2
8008482: 495f ldr r1, [pc, #380] ; (8008600 <Display+0x22a4>)
8008484: 0102 lsls r2, r0, #4
8008486: 4413 add r3, r2
8008488: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800848c: 2303 movs r3, #3
800848e: 2164 movs r1, #100 ; 0x64
8008490: 20dc movs r0, #220 ; 0xdc
8008492: f7fc fed5 bl 8005240 <BSP_LCD_DisplayStringAt>
8008496: e018 b.n 80084ca <Display+0x216e>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8008498: 4b58 ldr r3, [pc, #352] ; (80085fc <Display+0x22a0>)
800849a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800849e: b29b uxth r3, r3
80084a0: 4618 mov r0, r3
80084a2: 4b56 ldr r3, [pc, #344] ; (80085fc <Display+0x22a0>)
80084a4: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
80084a8: b29b uxth r3, r3
80084aa: 005b lsls r3, r3, #1
80084ac: 4a53 ldr r2, [pc, #332] ; (80085fc <Display+0x22a0>)
80084ae: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
80084b2: b292 uxth r2, r2
80084b4: 4413 add r3, r2
80084b6: 4952 ldr r1, [pc, #328] ; (8008600 <Display+0x22a4>)
80084b8: 0102 lsls r2, r0, #4
80084ba: 4413 add r3, r2
80084bc: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80084c0: 2303 movs r3, #3
80084c2: 2164 movs r1, #100 ; 0x64
80084c4: 20dc movs r0, #220 ; 0xdc
80084c6: f7fc febb bl 8005240 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
80084ca: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80084ce: 484d ldr r0, [pc, #308] ; (8008604 <Display+0x22a8>)
80084d0: f7fc fdf0 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
80084d4: f507 728e add.w r2, r7, #284 ; 0x11c
80084d8: 2303 movs r3, #3
80084da: 213c movs r1, #60 ; 0x3c
80084dc: 208c movs r0, #140 ; 0x8c
80084de: f7fc feaf bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
80084e2: f107 02e0 add.w r2, r7, #224 ; 0xe0
80084e6: 2303 movs r3, #3
80084e8: 2150 movs r1, #80 ; 0x50
80084ea: 208c movs r0, #140 ; 0x8c
80084ec: f7fc fea8 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
80084f0: f107 02a4 add.w r2, r7, #164 ; 0xa4
80084f4: 2303 movs r3, #3
80084f6: 2164 movs r1, #100 ; 0x64
80084f8: 208c movs r0, #140 ; 0x8c
80084fa: f7fc fea1 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
80084fe: f107 0268 add.w r2, r7, #104 ; 0x68
8008502: 2303 movs r3, #3
8008504: 2178 movs r1, #120 ; 0x78
8008506: 208c movs r0, #140 ; 0x8c
8008508: f7fc fe9a bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
800850c: 4b3b ldr r3, [pc, #236] ; (80085fc <Display+0x22a0>)
800850e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008512: b29b uxth r3, r3
8008514: 4618 mov r0, r3
8008516: 4b39 ldr r3, [pc, #228] ; (80085fc <Display+0x22a0>)
8008518: 8a5b ldrh r3, [r3, #18]
800851a: b29b uxth r3, r3
800851c: 005b lsls r3, r3, #1
800851e: 4a37 ldr r2, [pc, #220] ; (80085fc <Display+0x22a0>)
8008520: 8812 ldrh r2, [r2, #0]
8008522: b292 uxth r2, r2
8008524: 4413 add r3, r2
8008526: 4936 ldr r1, [pc, #216] ; (8008600 <Display+0x22a4>)
8008528: 0102 lsls r2, r0, #4
800852a: 4413 add r3, r2
800852c: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008530: 2303 movs r3, #3
8008532: 213c movs r1, #60 ; 0x3c
8008534: 20dc movs r0, #220 ; 0xdc
8008536: f7fc fe83 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
800853a: 4b30 ldr r3, [pc, #192] ; (80085fc <Display+0x22a0>)
800853c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008540: b29b uxth r3, r3
8008542: 4618 mov r0, r3
8008544: 4b2d ldr r3, [pc, #180] ; (80085fc <Display+0x22a0>)
8008546: 8e5b ldrh r3, [r3, #50] ; 0x32
8008548: b29b uxth r3, r3
800854a: 005b lsls r3, r3, #1
800854c: 4a2b ldr r2, [pc, #172] ; (80085fc <Display+0x22a0>)
800854e: 8c12 ldrh r2, [r2, #32]
8008550: b292 uxth r2, r2
8008552: 4413 add r3, r2
8008554: 492a ldr r1, [pc, #168] ; (8008600 <Display+0x22a4>)
8008556: 0102 lsls r2, r0, #4
8008558: 4413 add r3, r2
800855a: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800855e: 2303 movs r3, #3
8008560: 2150 movs r1, #80 ; 0x50
8008562: 20dc movs r0, #220 ; 0xdc
8008564: f7fc fe6c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
8008568: 4b24 ldr r3, [pc, #144] ; (80085fc <Display+0x22a0>)
800856a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800856e: b29b uxth r3, r3
8008570: 4618 mov r0, r3
8008572: 4b22 ldr r3, [pc, #136] ; (80085fc <Display+0x22a0>)
8008574: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8008578: b29b uxth r3, r3
800857a: 005b lsls r3, r3, #1
800857c: 4a1f ldr r2, [pc, #124] ; (80085fc <Display+0x22a0>)
800857e: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
8008582: b292 uxth r2, r2
8008584: 4413 add r3, r2
8008586: 491e ldr r1, [pc, #120] ; (8008600 <Display+0x22a4>)
8008588: 0102 lsls r2, r0, #4
800858a: 4413 add r3, r2
800858c: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008590: 2303 movs r3, #3
8008592: 2178 movs r1, #120 ; 0x78
8008594: 20dc movs r0, #220 ; 0xdc
8008596: f7fc fe53 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800859a: f005 bb91 b.w 800dcc0 <Display+0x7964>
if(menupos == Val_4)
800859e: 4b1a ldr r3, [pc, #104] ; (8008608 <Display+0x22ac>)
80085a0: 781b ldrb r3, [r3, #0]
80085a2: b2db uxtb r3, r3
80085a4: 2b19 cmp r3, #25
80085a6: f040 80b8 bne.w 800871a <Display+0x23be>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
80085aa: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80085ae: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
80085b2: f7fc fd7f bl 80050b4 <LCD_SetColors>
if(focused)
80085b6: 4b15 ldr r3, [pc, #84] ; (800860c <Display+0x22b0>)
80085b8: 781b ldrb r3, [r3, #0]
80085ba: b2db uxtb r3, r3
80085bc: 2b00 cmp r3, #0
80085be: d029 beq.n 8008614 <Display+0x22b8>
if(blk)
80085c0: 4b13 ldr r3, [pc, #76] ; (8008610 <Display+0x22b4>)
80085c2: 681b ldr r3, [r3, #0]
80085c4: 2b00 cmp r3, #0
80085c6: d03e beq.n 8008646 <Display+0x22ea>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
80085c8: 4b0c ldr r3, [pc, #48] ; (80085fc <Display+0x22a0>)
80085ca: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80085ce: b29b uxth r3, r3
80085d0: 4618 mov r0, r3
80085d2: 4b0a ldr r3, [pc, #40] ; (80085fc <Display+0x22a0>)
80085d4: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
80085d8: b29b uxth r3, r3
80085da: 005b lsls r3, r3, #1
80085dc: 4a07 ldr r2, [pc, #28] ; (80085fc <Display+0x22a0>)
80085de: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
80085e2: b292 uxth r2, r2
80085e4: 4413 add r3, r2
80085e6: 4906 ldr r1, [pc, #24] ; (8008600 <Display+0x22a4>)
80085e8: 0102 lsls r2, r0, #4
80085ea: 4413 add r3, r2
80085ec: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80085f0: 2303 movs r3, #3
80085f2: 2178 movs r1, #120 ; 0x78
80085f4: 20dc movs r0, #220 ; 0xdc
80085f6: f7fc fe23 bl 8005240 <BSP_LCD_DisplayStringAt>
80085fa: e024 b.n 8008646 <Display+0x22ea>
80085fc: 2006bb88 .word 0x2006bb88
8008600: 200200bc .word 0x200200bc
8008604: ffd8aa57 .word 0xffd8aa57
8008608: 20020010 .word 0x20020010
800860c: 200208c4 .word 0x200208c4
8008610: 2006b958 .word 0x2006b958
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
8008614: 4bb0 ldr r3, [pc, #704] ; (80088d8 <Display+0x257c>)
8008616: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800861a: b29b uxth r3, r3
800861c: 4618 mov r0, r3
800861e: 4bae ldr r3, [pc, #696] ; (80088d8 <Display+0x257c>)
8008620: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8008624: b29b uxth r3, r3
8008626: 005b lsls r3, r3, #1
8008628: 4aab ldr r2, [pc, #684] ; (80088d8 <Display+0x257c>)
800862a: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
800862e: b292 uxth r2, r2
8008630: 4413 add r3, r2
8008632: 49aa ldr r1, [pc, #680] ; (80088dc <Display+0x2580>)
8008634: 0102 lsls r2, r0, #4
8008636: 4413 add r3, r2
8008638: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800863c: 2303 movs r3, #3
800863e: 2178 movs r1, #120 ; 0x78
8008640: 20dc movs r0, #220 ; 0xdc
8008642: f7fc fdfd bl 8005240 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8008646: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800864a: 48a5 ldr r0, [pc, #660] ; (80088e0 <Display+0x2584>)
800864c: f7fc fd32 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8008650: f507 728e add.w r2, r7, #284 ; 0x11c
8008654: 2303 movs r3, #3
8008656: 213c movs r1, #60 ; 0x3c
8008658: 208c movs r0, #140 ; 0x8c
800865a: f7fc fdf1 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
800865e: f107 02e0 add.w r2, r7, #224 ; 0xe0
8008662: 2303 movs r3, #3
8008664: 2150 movs r1, #80 ; 0x50
8008666: 208c movs r0, #140 ; 0x8c
8008668: f7fc fdea bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
800866c: f107 02a4 add.w r2, r7, #164 ; 0xa4
8008670: 2303 movs r3, #3
8008672: 2164 movs r1, #100 ; 0x64
8008674: 208c movs r0, #140 ; 0x8c
8008676: f7fc fde3 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
800867a: f107 0268 add.w r2, r7, #104 ; 0x68
800867e: 2303 movs r3, #3
8008680: 2178 movs r1, #120 ; 0x78
8008682: 208c movs r0, #140 ; 0x8c
8008684: f7fc fddc bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
8008688: 4b93 ldr r3, [pc, #588] ; (80088d8 <Display+0x257c>)
800868a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800868e: b29b uxth r3, r3
8008690: 4618 mov r0, r3
8008692: 4b91 ldr r3, [pc, #580] ; (80088d8 <Display+0x257c>)
8008694: 8a5b ldrh r3, [r3, #18]
8008696: b29b uxth r3, r3
8008698: 005b lsls r3, r3, #1
800869a: 4a8f ldr r2, [pc, #572] ; (80088d8 <Display+0x257c>)
800869c: 8812 ldrh r2, [r2, #0]
800869e: b292 uxth r2, r2
80086a0: 4413 add r3, r2
80086a2: 498e ldr r1, [pc, #568] ; (80088dc <Display+0x2580>)
80086a4: 0102 lsls r2, r0, #4
80086a6: 4413 add r3, r2
80086a8: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80086ac: 2303 movs r3, #3
80086ae: 213c movs r1, #60 ; 0x3c
80086b0: 20dc movs r0, #220 ; 0xdc
80086b2: f7fc fdc5 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
80086b6: 4b88 ldr r3, [pc, #544] ; (80088d8 <Display+0x257c>)
80086b8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80086bc: b29b uxth r3, r3
80086be: 4618 mov r0, r3
80086c0: 4b85 ldr r3, [pc, #532] ; (80088d8 <Display+0x257c>)
80086c2: 8e5b ldrh r3, [r3, #50] ; 0x32
80086c4: b29b uxth r3, r3
80086c6: 005b lsls r3, r3, #1
80086c8: 4a83 ldr r2, [pc, #524] ; (80088d8 <Display+0x257c>)
80086ca: 8c12 ldrh r2, [r2, #32]
80086cc: b292 uxth r2, r2
80086ce: 4413 add r3, r2
80086d0: 4982 ldr r1, [pc, #520] ; (80088dc <Display+0x2580>)
80086d2: 0102 lsls r2, r0, #4
80086d4: 4413 add r3, r2
80086d6: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80086da: 2303 movs r3, #3
80086dc: 2150 movs r1, #80 ; 0x50
80086de: 20dc movs r0, #220 ; 0xdc
80086e0: f7fc fdae bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
80086e4: 4b7c ldr r3, [pc, #496] ; (80088d8 <Display+0x257c>)
80086e6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80086ea: b29b uxth r3, r3
80086ec: 4618 mov r0, r3
80086ee: 4b7a ldr r3, [pc, #488] ; (80088d8 <Display+0x257c>)
80086f0: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
80086f4: b29b uxth r3, r3
80086f6: 005b lsls r3, r3, #1
80086f8: 4a77 ldr r2, [pc, #476] ; (80088d8 <Display+0x257c>)
80086fa: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
80086fe: b292 uxth r2, r2
8008700: 4413 add r3, r2
8008702: 4976 ldr r1, [pc, #472] ; (80088dc <Display+0x2580>)
8008704: 0102 lsls r2, r0, #4
8008706: 4413 add r3, r2
8008708: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800870c: 2303 movs r3, #3
800870e: 2164 movs r1, #100 ; 0x64
8008710: 20dc movs r0, #220 ; 0xdc
8008712: f7fc fd95 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
8008716: f005 bad3 b.w 800dcc0 <Display+0x7964>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800871a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800871e: 4870 ldr r0, [pc, #448] ; (80088e0 <Display+0x2584>)
8008720: f7fc fcc8 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
8008724: 4b6c ldr r3, [pc, #432] ; (80088d8 <Display+0x257c>)
8008726: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800872a: b29b uxth r3, r3
800872c: 4618 mov r0, r3
800872e: 4b6a ldr r3, [pc, #424] ; (80088d8 <Display+0x257c>)
8008730: 8a5b ldrh r3, [r3, #18]
8008732: b29b uxth r3, r3
8008734: 005b lsls r3, r3, #1
8008736: 4a68 ldr r2, [pc, #416] ; (80088d8 <Display+0x257c>)
8008738: 8812 ldrh r2, [r2, #0]
800873a: b292 uxth r2, r2
800873c: 4413 add r3, r2
800873e: 4967 ldr r1, [pc, #412] ; (80088dc <Display+0x2580>)
8008740: 0102 lsls r2, r0, #4
8008742: 4413 add r3, r2
8008744: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008748: 2303 movs r3, #3
800874a: 213c movs r1, #60 ; 0x3c
800874c: 20dc movs r0, #220 ; 0xdc
800874e: f7fc fd77 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8008752: 4b61 ldr r3, [pc, #388] ; (80088d8 <Display+0x257c>)
8008754: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008758: b29b uxth r3, r3
800875a: 4618 mov r0, r3
800875c: 4b5e ldr r3, [pc, #376] ; (80088d8 <Display+0x257c>)
800875e: 8e5b ldrh r3, [r3, #50] ; 0x32
8008760: b29b uxth r3, r3
8008762: 005b lsls r3, r3, #1
8008764: 4a5c ldr r2, [pc, #368] ; (80088d8 <Display+0x257c>)
8008766: 8c12 ldrh r2, [r2, #32]
8008768: b292 uxth r2, r2
800876a: 4413 add r3, r2
800876c: 495b ldr r1, [pc, #364] ; (80088dc <Display+0x2580>)
800876e: 0102 lsls r2, r0, #4
8008770: 4413 add r3, r2
8008772: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008776: 2303 movs r3, #3
8008778: 2150 movs r1, #80 ; 0x50
800877a: 20dc movs r0, #220 ; 0xdc
800877c: f7fc fd60 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8008780: 4b55 ldr r3, [pc, #340] ; (80088d8 <Display+0x257c>)
8008782: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008786: b29b uxth r3, r3
8008788: 4618 mov r0, r3
800878a: 4b53 ldr r3, [pc, #332] ; (80088d8 <Display+0x257c>)
800878c: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8008790: b29b uxth r3, r3
8008792: 005b lsls r3, r3, #1
8008794: 4a50 ldr r2, [pc, #320] ; (80088d8 <Display+0x257c>)
8008796: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
800879a: b292 uxth r2, r2
800879c: 4413 add r3, r2
800879e: 494f ldr r1, [pc, #316] ; (80088dc <Display+0x2580>)
80087a0: 0102 lsls r2, r0, #4
80087a2: 4413 add r3, r2
80087a4: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80087a8: 2303 movs r3, #3
80087aa: 2164 movs r1, #100 ; 0x64
80087ac: 20dc movs r0, #220 ; 0xdc
80087ae: f7fc fd47 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
80087b2: 4b49 ldr r3, [pc, #292] ; (80088d8 <Display+0x257c>)
80087b4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80087b8: b29b uxth r3, r3
80087ba: 4618 mov r0, r3
80087bc: 4b46 ldr r3, [pc, #280] ; (80088d8 <Display+0x257c>)
80087be: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
80087c2: b29b uxth r3, r3
80087c4: 005b lsls r3, r3, #1
80087c6: 4a44 ldr r2, [pc, #272] ; (80088d8 <Display+0x257c>)
80087c8: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
80087cc: b292 uxth r2, r2
80087ce: 4413 add r3, r2
80087d0: 4942 ldr r1, [pc, #264] ; (80088dc <Display+0x2580>)
80087d2: 0102 lsls r2, r0, #4
80087d4: 4413 add r3, r2
80087d6: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80087da: 2303 movs r3, #3
80087dc: 2178 movs r1, #120 ; 0x78
80087de: 20dc movs r0, #220 ; 0xdc
80087e0: f7fc fd2e bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos >= Kikdt_1 && menupos <= Kpt_1)
80087e4: 4b3f ldr r3, [pc, #252] ; (80088e4 <Display+0x2588>)
80087e6: 781b ldrb r3, [r3, #0]
80087e8: b2db uxtb r3, r3
80087ea: 2b01 cmp r3, #1
80087ec: f241 8152 bls.w 8009a94 <Display+0x3738>
80087f0: 4b3c ldr r3, [pc, #240] ; (80088e4 <Display+0x2588>)
80087f2: 781b ldrb r3, [r3, #0]
80087f4: b2db uxtb r3, r3
80087f6: 2b07 cmp r3, #7
80087f8: f201 814c bhi.w 8009a94 <Display+0x3738>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
80087fc: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008800: 4837 ldr r0, [pc, #220] ; (80088e0 <Display+0x2584>)
8008802: f7fc fc57 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8008806: f107 02e0 add.w r2, r7, #224 ; 0xe0
800880a: 2303 movs r3, #3
800880c: 2150 movs r1, #80 ; 0x50
800880e: 208c movs r0, #140 ; 0x8c
8008810: f7fc fd16 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8008814: f107 02a4 add.w r2, r7, #164 ; 0xa4
8008818: 2303 movs r3, #3
800881a: 2164 movs r1, #100 ; 0x64
800881c: 208c movs r0, #140 ; 0x8c
800881e: f7fc fd0f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8008822: f107 0268 add.w r2, r7, #104 ; 0x68
8008826: 2303 movs r3, #3
8008828: 2178 movs r1, #120 ; 0x78
800882a: 208c movs r0, #140 ; 0x8c
800882c: f7fc fd08 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008830: 4b2c ldr r3, [pc, #176] ; (80088e4 <Display+0x2588>)
8008832: 781b ldrb r3, [r3, #0]
8008834: b2db uxtb r3, r3
8008836: 2b02 cmp r3, #2
8008838: f040 814f bne.w 8008ada <Display+0x277e>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800883c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008840: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8008844: f7fc fc36 bl 80050b4 <LCD_SetColors>
if(blk)
8008848: 4b27 ldr r3, [pc, #156] ; (80088e8 <Display+0x258c>)
800884a: 681b ldr r3, [r3, #0]
800884c: 2b00 cmp r3, #0
800884e: d00b beq.n 8008868 <Display+0x250c>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008850: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008854: b2db uxtb r3, r3
8008856: 461a mov r2, r3
8008858: 4b24 ldr r3, [pc, #144] ; (80088ec <Display+0x2590>)
800885a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800885e: 2303 movs r3, #3
8008860: 213c movs r1, #60 ; 0x3c
8008862: 208c movs r0, #140 ; 0x8c
8008864: f7fc fcec bl 8005240 <BSP_LCD_DisplayStringAt>
if(!ipt1)
8008868: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
800886c: b2db uxtb r3, r3
800886e: 2b00 cmp r3, #0
8008870: d13e bne.n 80088f0 <Display+0x2594>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008872: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008876: b2db uxtb r3, r3
8008878: 461a mov r2, r3
800887a: 4b1c ldr r3, [pc, #112] ; (80088ec <Display+0x2590>)
800887c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008880: 2303 movs r3, #3
8008882: 213c movs r1, #60 ; 0x3c
8008884: 2093 movs r0, #147 ; 0x93
8008886: f7fc fcdb bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
800888a: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
800888e: b2db uxtb r3, r3
8008890: 461a mov r2, r3
8008892: 4b16 ldr r3, [pc, #88] ; (80088ec <Display+0x2590>)
8008894: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008898: 2303 movs r3, #3
800889a: 213c movs r1, #60 ; 0x3c
800889c: 209a movs r0, #154 ; 0x9a
800889e: f7fc fccf bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
80088a2: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80088a6: b2db uxtb r3, r3
80088a8: 461a mov r2, r3
80088aa: 4b10 ldr r3, [pc, #64] ; (80088ec <Display+0x2590>)
80088ac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80088b0: 2303 movs r3, #3
80088b2: 213c movs r1, #60 ; 0x3c
80088b4: 20a1 movs r0, #161 ; 0xa1
80088b6: f7fc fcc3 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE);
80088ba: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80088be: b2db uxtb r3, r3
80088c0: 461a mov r2, r3
80088c2: 4b0a ldr r3, [pc, #40] ; (80088ec <Display+0x2590>)
80088c4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80088c8: 2303 movs r3, #3
80088ca: 213c movs r1, #60 ; 0x3c
80088cc: 20a8 movs r0, #168 ; 0xa8
80088ce: f7fc fcb7 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80088d2: f004 bce2 b.w 800d29a <Display+0x6f3e>
80088d6: bf00 nop
80088d8: 2006bb88 .word 0x2006bb88
80088dc: 200200bc .word 0x200200bc
80088e0: ffd8aa57 .word 0xffd8aa57
80088e4: 20020010 .word 0x20020010
80088e8: 2006b958 .word 0x2006b958
80088ec: 2002084c .word 0x2002084c
if(ipt1 == 1)
80088f0: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
80088f4: b2db uxtb r3, r3
80088f6: 2b01 cmp r3, #1
80088f8: d137 bne.n 800896a <Display+0x260e>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
80088fa: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
80088fe: b2db uxtb r3, r3
8008900: 461a mov r2, r3
8008902: 4bc6 ldr r3, [pc, #792] ; (8008c1c <Display+0x28c0>)
8008904: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008908: 2303 movs r3, #3
800890a: 213c movs r1, #60 ; 0x3c
800890c: 2093 movs r0, #147 ; 0x93
800890e: f7fc fc97 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008912: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008916: b2db uxtb r3, r3
8008918: 461a mov r2, r3
800891a: 4bc0 ldr r3, [pc, #768] ; (8008c1c <Display+0x28c0>)
800891c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008920: 2303 movs r3, #3
8008922: 213c movs r1, #60 ; 0x3c
8008924: 209a movs r0, #154 ; 0x9a
8008926: f7fc fc8b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
800892a: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
800892e: b2db uxtb r3, r3
8008930: 461a mov r2, r3
8008932: 4bba ldr r3, [pc, #744] ; (8008c1c <Display+0x28c0>)
8008934: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008938: 2303 movs r3, #3
800893a: 213c movs r1, #60 ; 0x3c
800893c: 20a1 movs r0, #161 ; 0xa1
800893e: f7fc fc7f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE);
8008942: 2303 movs r3, #3
8008944: 4ab6 ldr r2, [pc, #728] ; (8008c20 <Display+0x28c4>)
8008946: 213c movs r1, #60 ; 0x3c
8008948: 20a8 movs r0, #168 ; 0xa8
800894a: f7fc fc79 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
800894e: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008952: b2db uxtb r3, r3
8008954: 461a mov r2, r3
8008956: 4bb1 ldr r3, [pc, #708] ; (8008c1c <Display+0x28c0>)
8008958: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800895c: 2303 movs r3, #3
800895e: 213c movs r1, #60 ; 0x3c
8008960: 20af movs r0, #175 ; 0xaf
8008962: f7fc fc6d bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008966: f004 bc98 b.w 800d29a <Display+0x6f3e>
if(ipt1 == 2)
800896a: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
800896e: b2db uxtb r3, r3
8008970: 2b02 cmp r3, #2
8008972: d137 bne.n 80089e4 <Display+0x2688>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008974: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008978: b2db uxtb r3, r3
800897a: 461a mov r2, r3
800897c: 4ba7 ldr r3, [pc, #668] ; (8008c1c <Display+0x28c0>)
800897e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008982: 2303 movs r3, #3
8008984: 213c movs r1, #60 ; 0x3c
8008986: 2093 movs r0, #147 ; 0x93
8008988: f7fc fc5a bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
800898c: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008990: b2db uxtb r3, r3
8008992: 461a mov r2, r3
8008994: 4ba1 ldr r3, [pc, #644] ; (8008c1c <Display+0x28c0>)
8008996: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800899a: 2303 movs r3, #3
800899c: 213c movs r1, #60 ; 0x3c
800899e: 209a movs r0, #154 ; 0x9a
80089a0: f7fc fc4e bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE);
80089a4: 2303 movs r3, #3
80089a6: 4a9e ldr r2, [pc, #632] ; (8008c20 <Display+0x28c4>)
80089a8: 213c movs r1, #60 ; 0x3c
80089aa: 20a1 movs r0, #161 ; 0xa1
80089ac: f7fc fc48 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
80089b0: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80089b4: b2db uxtb r3, r3
80089b6: 461a mov r2, r3
80089b8: 4b98 ldr r3, [pc, #608] ; (8008c1c <Display+0x28c0>)
80089ba: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80089be: 2303 movs r3, #3
80089c0: 213c movs r1, #60 ; 0x3c
80089c2: 20a8 movs r0, #168 ; 0xa8
80089c4: f7fc fc3c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
80089c8: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80089cc: b2db uxtb r3, r3
80089ce: 461a mov r2, r3
80089d0: 4b92 ldr r3, [pc, #584] ; (8008c1c <Display+0x28c0>)
80089d2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80089d6: 2303 movs r3, #3
80089d8: 213c movs r1, #60 ; 0x3c
80089da: 20af movs r0, #175 ; 0xaf
80089dc: f7fc fc30 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80089e0: f004 bc5b b.w 800d29a <Display+0x6f3e>
if(ipt1 == 3)
80089e4: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
80089e8: b2db uxtb r3, r3
80089ea: 2b03 cmp r3, #3
80089ec: d137 bne.n 8008a5e <Display+0x2702>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
80089ee: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
80089f2: b2db uxtb r3, r3
80089f4: 461a mov r2, r3
80089f6: 4b89 ldr r3, [pc, #548] ; (8008c1c <Display+0x28c0>)
80089f8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80089fc: 2303 movs r3, #3
80089fe: 213c movs r1, #60 ; 0x3c
8008a00: 2093 movs r0, #147 ; 0x93
8008a02: f7fc fc1d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE);
8008a06: 2303 movs r3, #3
8008a08: 4a85 ldr r2, [pc, #532] ; (8008c20 <Display+0x28c4>)
8008a0a: 213c movs r1, #60 ; 0x3c
8008a0c: 209a movs r0, #154 ; 0x9a
8008a0e: f7fc fc17 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008a12: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008a16: b2db uxtb r3, r3
8008a18: 461a mov r2, r3
8008a1a: 4b80 ldr r3, [pc, #512] ; (8008c1c <Display+0x28c0>)
8008a1c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008a20: 2303 movs r3, #3
8008a22: 213c movs r1, #60 ; 0x3c
8008a24: 20a1 movs r0, #161 ; 0xa1
8008a26: f7fc fc0b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008a2a: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008a2e: b2db uxtb r3, r3
8008a30: 461a mov r2, r3
8008a32: 4b7a ldr r3, [pc, #488] ; (8008c1c <Display+0x28c0>)
8008a34: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008a38: 2303 movs r3, #3
8008a3a: 213c movs r1, #60 ; 0x3c
8008a3c: 20a8 movs r0, #168 ; 0xa8
8008a3e: f7fc fbff bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008a42: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008a46: b2db uxtb r3, r3
8008a48: 461a mov r2, r3
8008a4a: 4b74 ldr r3, [pc, #464] ; (8008c1c <Display+0x28c0>)
8008a4c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008a50: 2303 movs r3, #3
8008a52: 213c movs r1, #60 ; 0x3c
8008a54: 20af movs r0, #175 ; 0xaf
8008a56: f7fc fbf3 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008a5a: f004 bc1e b.w 800d29a <Display+0x6f3e>
if(ipt1 == 4)
8008a5e: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008a62: b2db uxtb r3, r3
8008a64: 2b04 cmp r3, #4
8008a66: f044 8418 bne.w 800d29a <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE);
8008a6a: 2303 movs r3, #3
8008a6c: 4a6c ldr r2, [pc, #432] ; (8008c20 <Display+0x28c4>)
8008a6e: 213c movs r1, #60 ; 0x3c
8008a70: 2093 movs r0, #147 ; 0x93
8008a72: f7fc fbe5 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008a76: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008a7a: b2db uxtb r3, r3
8008a7c: 461a mov r2, r3
8008a7e: 4b67 ldr r3, [pc, #412] ; (8008c1c <Display+0x28c0>)
8008a80: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008a84: 2303 movs r3, #3
8008a86: 213c movs r1, #60 ; 0x3c
8008a88: 209a movs r0, #154 ; 0x9a
8008a8a: f7fc fbd9 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008a8e: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008a92: b2db uxtb r3, r3
8008a94: 461a mov r2, r3
8008a96: 4b61 ldr r3, [pc, #388] ; (8008c1c <Display+0x28c0>)
8008a98: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008a9c: 2303 movs r3, #3
8008a9e: 213c movs r1, #60 ; 0x3c
8008aa0: 20a1 movs r0, #161 ; 0xa1
8008aa2: f7fc fbcd bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008aa6: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008aaa: b2db uxtb r3, r3
8008aac: 461a mov r2, r3
8008aae: 4b5b ldr r3, [pc, #364] ; (8008c1c <Display+0x28c0>)
8008ab0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008ab4: 2303 movs r3, #3
8008ab6: 213c movs r1, #60 ; 0x3c
8008ab8: 20a8 movs r0, #168 ; 0xa8
8008aba: f7fc fbc1 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008abe: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008ac2: b2db uxtb r3, r3
8008ac4: 461a mov r2, r3
8008ac6: 4b55 ldr r3, [pc, #340] ; (8008c1c <Display+0x28c0>)
8008ac8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008acc: 2303 movs r3, #3
8008ace: 213c movs r1, #60 ; 0x3c
8008ad0: 20af movs r0, #175 ; 0xaf
8008ad2: f7fc fbb5 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008ad6: f004 bbe0 b.w 800d29a <Display+0x6f3e>
if(menupos == Kikt_1)
8008ada: 4b52 ldr r3, [pc, #328] ; (8008c24 <Display+0x28c8>)
8008adc: 781b ldrb r3, [r3, #0]
8008ade: b2db uxtb r3, r3
8008ae0: 2b03 cmp r3, #3
8008ae2: f040 818b bne.w 8008dfc <Display+0x2aa0>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8008ae6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008aea: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8008aee: f7fc fae1 bl 80050b4 <LCD_SetColors>
if(!ipt1)
8008af2: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008af6: b2db uxtb r3, r3
8008af8: 2b00 cmp r3, #0
8008afa: d141 bne.n 8008b80 <Display+0x2824>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008afc: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008b00: b2db uxtb r3, r3
8008b02: 461a mov r2, r3
8008b04: 4b45 ldr r3, [pc, #276] ; (8008c1c <Display+0x28c0>)
8008b06: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008b0a: 2303 movs r3, #3
8008b0c: 213c movs r1, #60 ; 0x3c
8008b0e: 208c movs r0, #140 ; 0x8c
8008b10: f7fc fb96 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8008b14: 4b44 ldr r3, [pc, #272] ; (8008c28 <Display+0x28cc>)
8008b16: 681b ldr r3, [r3, #0]
8008b18: 2b00 cmp r3, #0
8008b1a: d00b beq.n 8008b34 <Display+0x27d8>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008b1c: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008b20: b2db uxtb r3, r3
8008b22: 461a mov r2, r3
8008b24: 4b3d ldr r3, [pc, #244] ; (8008c1c <Display+0x28c0>)
8008b26: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008b2a: 2303 movs r3, #3
8008b2c: 213c movs r1, #60 ; 0x3c
8008b2e: 2093 movs r0, #147 ; 0x93
8008b30: f7fc fb86 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008b34: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008b38: b2db uxtb r3, r3
8008b3a: 461a mov r2, r3
8008b3c: 4b37 ldr r3, [pc, #220] ; (8008c1c <Display+0x28c0>)
8008b3e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008b42: 2303 movs r3, #3
8008b44: 213c movs r1, #60 ; 0x3c
8008b46: 209a movs r0, #154 ; 0x9a
8008b48: f7fc fb7a bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008b4c: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008b50: b2db uxtb r3, r3
8008b52: 461a mov r2, r3
8008b54: 4b31 ldr r3, [pc, #196] ; (8008c1c <Display+0x28c0>)
8008b56: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008b5a: 2303 movs r3, #3
8008b5c: 213c movs r1, #60 ; 0x3c
8008b5e: 20a1 movs r0, #161 ; 0xa1
8008b60: f7fc fb6e bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008b64: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008b68: b2db uxtb r3, r3
8008b6a: 461a mov r2, r3
8008b6c: 4b2b ldr r3, [pc, #172] ; (8008c1c <Display+0x28c0>)
8008b6e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008b72: 2303 movs r3, #3
8008b74: 213c movs r1, #60 ; 0x3c
8008b76: 20a8 movs r0, #168 ; 0xa8
8008b78: f7fc fb62 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008b7c: f004 bb8d b.w 800d29a <Display+0x6f3e>
if(ipt1 == 1)
8008b80: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008b84: b2db uxtb r3, r3
8008b86: 2b01 cmp r3, #1
8008b88: d150 bne.n 8008c2c <Display+0x28d0>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008b8a: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008b8e: b2db uxtb r3, r3
8008b90: 461a mov r2, r3
8008b92: 4b22 ldr r3, [pc, #136] ; (8008c1c <Display+0x28c0>)
8008b94: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008b98: 2303 movs r3, #3
8008b9a: 213c movs r1, #60 ; 0x3c
8008b9c: 208c movs r0, #140 ; 0x8c
8008b9e: f7fc fb4f bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8008ba2: 4b21 ldr r3, [pc, #132] ; (8008c28 <Display+0x28cc>)
8008ba4: 681b ldr r3, [r3, #0]
8008ba6: 2b00 cmp r3, #0
8008ba8: d00b beq.n 8008bc2 <Display+0x2866>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008baa: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008bae: b2db uxtb r3, r3
8008bb0: 461a mov r2, r3
8008bb2: 4b1a ldr r3, [pc, #104] ; (8008c1c <Display+0x28c0>)
8008bb4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008bb8: 2303 movs r3, #3
8008bba: 213c movs r1, #60 ; 0x3c
8008bbc: 2093 movs r0, #147 ; 0x93
8008bbe: f7fc fb3f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008bc2: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008bc6: b2db uxtb r3, r3
8008bc8: 461a mov r2, r3
8008bca: 4b14 ldr r3, [pc, #80] ; (8008c1c <Display+0x28c0>)
8008bcc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008bd0: 2303 movs r3, #3
8008bd2: 213c movs r1, #60 ; 0x3c
8008bd4: 209a movs r0, #154 ; 0x9a
8008bd6: f7fc fb33 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008bda: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008bde: b2db uxtb r3, r3
8008be0: 461a mov r2, r3
8008be2: 4b0e ldr r3, [pc, #56] ; (8008c1c <Display+0x28c0>)
8008be4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008be8: 2303 movs r3, #3
8008bea: 213c movs r1, #60 ; 0x3c
8008bec: 20a1 movs r0, #161 ; 0xa1
8008bee: f7fc fb27 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE);
8008bf2: 2303 movs r3, #3
8008bf4: 4a0a ldr r2, [pc, #40] ; (8008c20 <Display+0x28c4>)
8008bf6: 213c movs r1, #60 ; 0x3c
8008bf8: 20a8 movs r0, #168 ; 0xa8
8008bfa: f7fc fb21 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008bfe: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008c02: b2db uxtb r3, r3
8008c04: 461a mov r2, r3
8008c06: 4b05 ldr r3, [pc, #20] ; (8008c1c <Display+0x28c0>)
8008c08: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008c0c: 2303 movs r3, #3
8008c0e: 213c movs r1, #60 ; 0x3c
8008c10: 20af movs r0, #175 ; 0xaf
8008c12: f7fc fb15 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008c16: f004 bb40 b.w 800d29a <Display+0x6f3e>
8008c1a: bf00 nop
8008c1c: 2002084c .word 0x2002084c
8008c20: 080183cc .word 0x080183cc
8008c24: 20020010 .word 0x20020010
8008c28: 2006b958 .word 0x2006b958
if(ipt1 == 2)
8008c2c: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008c30: b2db uxtb r3, r3
8008c32: 2b02 cmp r3, #2
8008c34: d147 bne.n 8008cc6 <Display+0x296a>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008c36: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008c3a: b2db uxtb r3, r3
8008c3c: 461a mov r2, r3
8008c3e: 4bbf ldr r3, [pc, #764] ; (8008f3c <Display+0x2be0>)
8008c40: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008c44: 2303 movs r3, #3
8008c46: 213c movs r1, #60 ; 0x3c
8008c48: 208c movs r0, #140 ; 0x8c
8008c4a: f7fc faf9 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8008c4e: 4bbc ldr r3, [pc, #752] ; (8008f40 <Display+0x2be4>)
8008c50: 681b ldr r3, [r3, #0]
8008c52: 2b00 cmp r3, #0
8008c54: d00b beq.n 8008c6e <Display+0x2912>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008c56: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008c5a: b2db uxtb r3, r3
8008c5c: 461a mov r2, r3
8008c5e: 4bb7 ldr r3, [pc, #732] ; (8008f3c <Display+0x2be0>)
8008c60: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008c64: 2303 movs r3, #3
8008c66: 213c movs r1, #60 ; 0x3c
8008c68: 2093 movs r0, #147 ; 0x93
8008c6a: f7fc fae9 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008c6e: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008c72: b2db uxtb r3, r3
8008c74: 461a mov r2, r3
8008c76: 4bb1 ldr r3, [pc, #708] ; (8008f3c <Display+0x2be0>)
8008c78: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008c7c: 2303 movs r3, #3
8008c7e: 213c movs r1, #60 ; 0x3c
8008c80: 209a movs r0, #154 ; 0x9a
8008c82: f7fc fadd bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE);
8008c86: 2303 movs r3, #3
8008c88: 4aae ldr r2, [pc, #696] ; (8008f44 <Display+0x2be8>)
8008c8a: 213c movs r1, #60 ; 0x3c
8008c8c: 20a1 movs r0, #161 ; 0xa1
8008c8e: f7fc fad7 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008c92: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008c96: b2db uxtb r3, r3
8008c98: 461a mov r2, r3
8008c9a: 4ba8 ldr r3, [pc, #672] ; (8008f3c <Display+0x2be0>)
8008c9c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008ca0: 2303 movs r3, #3
8008ca2: 213c movs r1, #60 ; 0x3c
8008ca4: 20a8 movs r0, #168 ; 0xa8
8008ca6: f7fc facb bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008caa: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008cae: b2db uxtb r3, r3
8008cb0: 461a mov r2, r3
8008cb2: 4ba2 ldr r3, [pc, #648] ; (8008f3c <Display+0x2be0>)
8008cb4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008cb8: 2303 movs r3, #3
8008cba: 213c movs r1, #60 ; 0x3c
8008cbc: 20af movs r0, #175 ; 0xaf
8008cbe: f7fc fabf bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008cc2: f004 baea b.w 800d29a <Display+0x6f3e>
if(ipt1 == 3)
8008cc6: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008cca: b2db uxtb r3, r3
8008ccc: 2b03 cmp r3, #3
8008cce: d147 bne.n 8008d60 <Display+0x2a04>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008cd0: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008cd4: b2db uxtb r3, r3
8008cd6: 461a mov r2, r3
8008cd8: 4b98 ldr r3, [pc, #608] ; (8008f3c <Display+0x2be0>)
8008cda: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008cde: 2303 movs r3, #3
8008ce0: 213c movs r1, #60 ; 0x3c
8008ce2: 208c movs r0, #140 ; 0x8c
8008ce4: f7fc faac bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8008ce8: 4b95 ldr r3, [pc, #596] ; (8008f40 <Display+0x2be4>)
8008cea: 681b ldr r3, [r3, #0]
8008cec: 2b00 cmp r3, #0
8008cee: d00b beq.n 8008d08 <Display+0x29ac>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008cf0: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008cf4: b2db uxtb r3, r3
8008cf6: 461a mov r2, r3
8008cf8: 4b90 ldr r3, [pc, #576] ; (8008f3c <Display+0x2be0>)
8008cfa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008cfe: 2303 movs r3, #3
8008d00: 213c movs r1, #60 ; 0x3c
8008d02: 2093 movs r0, #147 ; 0x93
8008d04: f7fc fa9c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE);
8008d08: 2303 movs r3, #3
8008d0a: 4a8e ldr r2, [pc, #568] ; (8008f44 <Display+0x2be8>)
8008d0c: 213c movs r1, #60 ; 0x3c
8008d0e: 209a movs r0, #154 ; 0x9a
8008d10: f7fc fa96 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008d14: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008d18: b2db uxtb r3, r3
8008d1a: 461a mov r2, r3
8008d1c: 4b87 ldr r3, [pc, #540] ; (8008f3c <Display+0x2be0>)
8008d1e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008d22: 2303 movs r3, #3
8008d24: 213c movs r1, #60 ; 0x3c
8008d26: 20a1 movs r0, #161 ; 0xa1
8008d28: f7fc fa8a bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008d2c: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008d30: b2db uxtb r3, r3
8008d32: 461a mov r2, r3
8008d34: 4b81 ldr r3, [pc, #516] ; (8008f3c <Display+0x2be0>)
8008d36: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008d3a: 2303 movs r3, #3
8008d3c: 213c movs r1, #60 ; 0x3c
8008d3e: 20a8 movs r0, #168 ; 0xa8
8008d40: f7fc fa7e bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008d44: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008d48: b2db uxtb r3, r3
8008d4a: 461a mov r2, r3
8008d4c: 4b7b ldr r3, [pc, #492] ; (8008f3c <Display+0x2be0>)
8008d4e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008d52: 2303 movs r3, #3
8008d54: 213c movs r1, #60 ; 0x3c
8008d56: 20af movs r0, #175 ; 0xaf
8008d58: f7fc fa72 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008d5c: f004 ba9d b.w 800d29a <Display+0x6f3e>
if(ipt1 == 4)
8008d60: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008d64: b2db uxtb r3, r3
8008d66: 2b04 cmp r3, #4
8008d68: f044 8297 bne.w 800d29a <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008d6c: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008d70: b2db uxtb r3, r3
8008d72: 461a mov r2, r3
8008d74: 4b71 ldr r3, [pc, #452] ; (8008f3c <Display+0x2be0>)
8008d76: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008d7a: 2303 movs r3, #3
8008d7c: 213c movs r1, #60 ; 0x3c
8008d7e: 208c movs r0, #140 ; 0x8c
8008d80: f7fc fa5e bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE);
8008d84: 2303 movs r3, #3
8008d86: 4a6f ldr r2, [pc, #444] ; (8008f44 <Display+0x2be8>)
8008d88: 213c movs r1, #60 ; 0x3c
8008d8a: 2093 movs r0, #147 ; 0x93
8008d8c: f7fc fa58 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8008d90: 4b6b ldr r3, [pc, #428] ; (8008f40 <Display+0x2be4>)
8008d92: 681b ldr r3, [r3, #0]
8008d94: 2b00 cmp r3, #0
8008d96: d00b beq.n 8008db0 <Display+0x2a54>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008d98: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008d9c: b2db uxtb r3, r3
8008d9e: 461a mov r2, r3
8008da0: 4b66 ldr r3, [pc, #408] ; (8008f3c <Display+0x2be0>)
8008da2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008da6: 2303 movs r3, #3
8008da8: 213c movs r1, #60 ; 0x3c
8008daa: 209a movs r0, #154 ; 0x9a
8008dac: f7fc fa48 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008db0: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008db4: b2db uxtb r3, r3
8008db6: 461a mov r2, r3
8008db8: 4b60 ldr r3, [pc, #384] ; (8008f3c <Display+0x2be0>)
8008dba: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008dbe: 2303 movs r3, #3
8008dc0: 213c movs r1, #60 ; 0x3c
8008dc2: 20a1 movs r0, #161 ; 0xa1
8008dc4: f7fc fa3c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008dc8: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008dcc: b2db uxtb r3, r3
8008dce: 461a mov r2, r3
8008dd0: 4b5a ldr r3, [pc, #360] ; (8008f3c <Display+0x2be0>)
8008dd2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008dd6: 2303 movs r3, #3
8008dd8: 213c movs r1, #60 ; 0x3c
8008dda: 20a8 movs r0, #168 ; 0xa8
8008ddc: f7fc fa30 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008de0: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008de4: b2db uxtb r3, r3
8008de6: 461a mov r2, r3
8008de8: 4b54 ldr r3, [pc, #336] ; (8008f3c <Display+0x2be0>)
8008dea: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008dee: 2303 movs r3, #3
8008df0: 213c movs r1, #60 ; 0x3c
8008df2: 20af movs r0, #175 ; 0xaf
8008df4: f7fc fa24 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008df8: f004 ba4f b.w 800d29a <Display+0x6f3e>
if(menupos == Kiks_1)
8008dfc: 4b52 ldr r3, [pc, #328] ; (8008f48 <Display+0x2bec>)
8008dfe: 781b ldrb r3, [r3, #0]
8008e00: b2db uxtb r3, r3
8008e02: 2b04 cmp r3, #4
8008e04: f040 818a bne.w 800911c <Display+0x2dc0>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8008e08: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008e0c: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8008e10: f7fc f950 bl 80050b4 <LCD_SetColors>
if(!ipt1)
8008e14: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008e18: b2db uxtb r3, r3
8008e1a: 2b00 cmp r3, #0
8008e1c: d141 bne.n 8008ea2 <Display+0x2b46>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008e1e: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008e22: b2db uxtb r3, r3
8008e24: 461a mov r2, r3
8008e26: 4b45 ldr r3, [pc, #276] ; (8008f3c <Display+0x2be0>)
8008e28: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008e2c: 2303 movs r3, #3
8008e2e: 213c movs r1, #60 ; 0x3c
8008e30: 208c movs r0, #140 ; 0x8c
8008e32: f7fc fa05 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008e36: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008e3a: b2db uxtb r3, r3
8008e3c: 461a mov r2, r3
8008e3e: 4b3f ldr r3, [pc, #252] ; (8008f3c <Display+0x2be0>)
8008e40: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008e44: 2303 movs r3, #3
8008e46: 213c movs r1, #60 ; 0x3c
8008e48: 2093 movs r0, #147 ; 0x93
8008e4a: f7fc f9f9 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8008e4e: 4b3c ldr r3, [pc, #240] ; (8008f40 <Display+0x2be4>)
8008e50: 681b ldr r3, [r3, #0]
8008e52: 2b00 cmp r3, #0
8008e54: d00b beq.n 8008e6e <Display+0x2b12>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008e56: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008e5a: b2db uxtb r3, r3
8008e5c: 461a mov r2, r3
8008e5e: 4b37 ldr r3, [pc, #220] ; (8008f3c <Display+0x2be0>)
8008e60: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008e64: 2303 movs r3, #3
8008e66: 213c movs r1, #60 ; 0x3c
8008e68: 209a movs r0, #154 ; 0x9a
8008e6a: f7fc f9e9 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008e6e: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008e72: b2db uxtb r3, r3
8008e74: 461a mov r2, r3
8008e76: 4b31 ldr r3, [pc, #196] ; (8008f3c <Display+0x2be0>)
8008e78: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008e7c: 2303 movs r3, #3
8008e7e: 213c movs r1, #60 ; 0x3c
8008e80: 20a1 movs r0, #161 ; 0xa1
8008e82: f7fc f9dd bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008e86: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008e8a: b2db uxtb r3, r3
8008e8c: 461a mov r2, r3
8008e8e: 4b2b ldr r3, [pc, #172] ; (8008f3c <Display+0x2be0>)
8008e90: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008e94: 2303 movs r3, #3
8008e96: 213c movs r1, #60 ; 0x3c
8008e98: 20a8 movs r0, #168 ; 0xa8
8008e9a: f7fc f9d1 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008e9e: f004 b9fc b.w 800d29a <Display+0x6f3e>
if(ipt1 == 1)
8008ea2: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008ea6: b2db uxtb r3, r3
8008ea8: 2b01 cmp r3, #1
8008eaa: d14f bne.n 8008f4c <Display+0x2bf0>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008eac: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008eb0: b2db uxtb r3, r3
8008eb2: 461a mov r2, r3
8008eb4: 4b21 ldr r3, [pc, #132] ; (8008f3c <Display+0x2be0>)
8008eb6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008eba: 2303 movs r3, #3
8008ebc: 213c movs r1, #60 ; 0x3c
8008ebe: 208c movs r0, #140 ; 0x8c
8008ec0: f7fc f9be bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008ec4: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008ec8: b2db uxtb r3, r3
8008eca: 461a mov r2, r3
8008ecc: 4b1b ldr r3, [pc, #108] ; (8008f3c <Display+0x2be0>)
8008ece: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008ed2: 2303 movs r3, #3
8008ed4: 213c movs r1, #60 ; 0x3c
8008ed6: 2093 movs r0, #147 ; 0x93
8008ed8: f7fc f9b2 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8008edc: 4b18 ldr r3, [pc, #96] ; (8008f40 <Display+0x2be4>)
8008ede: 681b ldr r3, [r3, #0]
8008ee0: 2b00 cmp r3, #0
8008ee2: d00b beq.n 8008efc <Display+0x2ba0>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008ee4: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008ee8: b2db uxtb r3, r3
8008eea: 461a mov r2, r3
8008eec: 4b13 ldr r3, [pc, #76] ; (8008f3c <Display+0x2be0>)
8008eee: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008ef2: 2303 movs r3, #3
8008ef4: 213c movs r1, #60 ; 0x3c
8008ef6: 209a movs r0, #154 ; 0x9a
8008ef8: f7fc f9a2 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008efc: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008f00: b2db uxtb r3, r3
8008f02: 461a mov r2, r3
8008f04: 4b0d ldr r3, [pc, #52] ; (8008f3c <Display+0x2be0>)
8008f06: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008f0a: 2303 movs r3, #3
8008f0c: 213c movs r1, #60 ; 0x3c
8008f0e: 20a1 movs r0, #161 ; 0xa1
8008f10: f7fc f996 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE);
8008f14: 2303 movs r3, #3
8008f16: 4a0b ldr r2, [pc, #44] ; (8008f44 <Display+0x2be8>)
8008f18: 213c movs r1, #60 ; 0x3c
8008f1a: 20a8 movs r0, #168 ; 0xa8
8008f1c: f7fc f990 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008f20: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008f24: b2db uxtb r3, r3
8008f26: 461a mov r2, r3
8008f28: 4b04 ldr r3, [pc, #16] ; (8008f3c <Display+0x2be0>)
8008f2a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008f2e: 2303 movs r3, #3
8008f30: 213c movs r1, #60 ; 0x3c
8008f32: 20af movs r0, #175 ; 0xaf
8008f34: f7fc f984 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008f38: f004 b9af b.w 800d29a <Display+0x6f3e>
8008f3c: 2002084c .word 0x2002084c
8008f40: 2006b958 .word 0x2006b958
8008f44: 080183cc .word 0x080183cc
8008f48: 20020010 .word 0x20020010
if(ipt1 == 2)
8008f4c: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008f50: b2db uxtb r3, r3
8008f52: 2b02 cmp r3, #2
8008f54: d147 bne.n 8008fe6 <Display+0x2c8a>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008f56: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008f5a: b2db uxtb r3, r3
8008f5c: 461a mov r2, r3
8008f5e: 4bbf ldr r3, [pc, #764] ; (800925c <Display+0x2f00>)
8008f60: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008f64: 2303 movs r3, #3
8008f66: 213c movs r1, #60 ; 0x3c
8008f68: 208c movs r0, #140 ; 0x8c
8008f6a: f7fc f969 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008f6e: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008f72: b2db uxtb r3, r3
8008f74: 461a mov r2, r3
8008f76: 4bb9 ldr r3, [pc, #740] ; (800925c <Display+0x2f00>)
8008f78: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008f7c: 2303 movs r3, #3
8008f7e: 213c movs r1, #60 ; 0x3c
8008f80: 2093 movs r0, #147 ; 0x93
8008f82: f7fc f95d bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8008f86: 4bb6 ldr r3, [pc, #728] ; (8009260 <Display+0x2f04>)
8008f88: 681b ldr r3, [r3, #0]
8008f8a: 2b00 cmp r3, #0
8008f8c: d00b beq.n 8008fa6 <Display+0x2c4a>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008f8e: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008f92: b2db uxtb r3, r3
8008f94: 461a mov r2, r3
8008f96: 4bb1 ldr r3, [pc, #708] ; (800925c <Display+0x2f00>)
8008f98: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008f9c: 2303 movs r3, #3
8008f9e: 213c movs r1, #60 ; 0x3c
8008fa0: 209a movs r0, #154 ; 0x9a
8008fa2: f7fc f94d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE);
8008fa6: 2303 movs r3, #3
8008fa8: 4aae ldr r2, [pc, #696] ; (8009264 <Display+0x2f08>)
8008faa: 213c movs r1, #60 ; 0x3c
8008fac: 20a1 movs r0, #161 ; 0xa1
8008fae: f7fc f947 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008fb2: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008fb6: b2db uxtb r3, r3
8008fb8: 461a mov r2, r3
8008fba: 4ba8 ldr r3, [pc, #672] ; (800925c <Display+0x2f00>)
8008fbc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008fc0: 2303 movs r3, #3
8008fc2: 213c movs r1, #60 ; 0x3c
8008fc4: 20a8 movs r0, #168 ; 0xa8
8008fc6: f7fc f93b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008fca: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008fce: b2db uxtb r3, r3
8008fd0: 461a mov r2, r3
8008fd2: 4ba2 ldr r3, [pc, #648] ; (800925c <Display+0x2f00>)
8008fd4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008fd8: 2303 movs r3, #3
8008fda: 213c movs r1, #60 ; 0x3c
8008fdc: 20af movs r0, #175 ; 0xaf
8008fde: f7fc f92f bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008fe2: f004 b95a b.w 800d29a <Display+0x6f3e>
if(ipt1 == 3)
8008fe6: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008fea: b2db uxtb r3, r3
8008fec: 2b03 cmp r3, #3
8008fee: d147 bne.n 8009080 <Display+0x2d24>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008ff0: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008ff4: b2db uxtb r3, r3
8008ff6: 461a mov r2, r3
8008ff8: 4b98 ldr r3, [pc, #608] ; (800925c <Display+0x2f00>)
8008ffa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008ffe: 2303 movs r3, #3
8009000: 213c movs r1, #60 ; 0x3c
8009002: 208c movs r0, #140 ; 0x8c
8009004: f7fc f91c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8009008: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
800900c: b2db uxtb r3, r3
800900e: 461a mov r2, r3
8009010: 4b92 ldr r3, [pc, #584] ; (800925c <Display+0x2f00>)
8009012: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009016: 2303 movs r3, #3
8009018: 213c movs r1, #60 ; 0x3c
800901a: 2093 movs r0, #147 ; 0x93
800901c: f7fc f910 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE);
8009020: 2303 movs r3, #3
8009022: 4a90 ldr r2, [pc, #576] ; (8009264 <Display+0x2f08>)
8009024: 213c movs r1, #60 ; 0x3c
8009026: 209a movs r0, #154 ; 0x9a
8009028: f7fc f90a bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800902c: 4b8c ldr r3, [pc, #560] ; (8009260 <Display+0x2f04>)
800902e: 681b ldr r3, [r3, #0]
8009030: 2b00 cmp r3, #0
8009032: d00b beq.n 800904c <Display+0x2cf0>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8009034: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8009038: b2db uxtb r3, r3
800903a: 461a mov r2, r3
800903c: 4b87 ldr r3, [pc, #540] ; (800925c <Display+0x2f00>)
800903e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009042: 2303 movs r3, #3
8009044: 213c movs r1, #60 ; 0x3c
8009046: 20a1 movs r0, #161 ; 0xa1
8009048: f7fc f8fa bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
800904c: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8009050: b2db uxtb r3, r3
8009052: 461a mov r2, r3
8009054: 4b81 ldr r3, [pc, #516] ; (800925c <Display+0x2f00>)
8009056: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800905a: 2303 movs r3, #3
800905c: 213c movs r1, #60 ; 0x3c
800905e: 20a8 movs r0, #168 ; 0xa8
8009060: f7fc f8ee bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009064: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8009068: b2db uxtb r3, r3
800906a: 461a mov r2, r3
800906c: 4b7b ldr r3, [pc, #492] ; (800925c <Display+0x2f00>)
800906e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009072: 2303 movs r3, #3
8009074: 213c movs r1, #60 ; 0x3c
8009076: 20af movs r0, #175 ; 0xaf
8009078: f7fc f8e2 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
800907c: f004 b90d b.w 800d29a <Display+0x6f3e>
if(ipt1 == 4)
8009080: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8009084: b2db uxtb r3, r3
8009086: 2b04 cmp r3, #4
8009088: f044 8107 bne.w 800d29a <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
800908c: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8009090: b2db uxtb r3, r3
8009092: 461a mov r2, r3
8009094: 4b71 ldr r3, [pc, #452] ; (800925c <Display+0x2f00>)
8009096: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800909a: 2303 movs r3, #3
800909c: 213c movs r1, #60 ; 0x3c
800909e: 208c movs r0, #140 ; 0x8c
80090a0: f7fc f8ce bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE);
80090a4: 2303 movs r3, #3
80090a6: 4a6f ldr r2, [pc, #444] ; (8009264 <Display+0x2f08>)
80090a8: 213c movs r1, #60 ; 0x3c
80090aa: 2093 movs r0, #147 ; 0x93
80090ac: f7fc f8c8 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE);
80090b0: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
80090b4: b2db uxtb r3, r3
80090b6: 461a mov r2, r3
80090b8: 4b68 ldr r3, [pc, #416] ; (800925c <Display+0x2f00>)
80090ba: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80090be: 2303 movs r3, #3
80090c0: 213c movs r1, #60 ; 0x3c
80090c2: 209a movs r0, #154 ; 0x9a
80090c4: f7fc f8bc bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
80090c8: 4b65 ldr r3, [pc, #404] ; (8009260 <Display+0x2f04>)
80090ca: 681b ldr r3, [r3, #0]
80090cc: 2b00 cmp r3, #0
80090ce: d00b beq.n 80090e8 <Display+0x2d8c>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
80090d0: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80090d4: b2db uxtb r3, r3
80090d6: 461a mov r2, r3
80090d8: 4b60 ldr r3, [pc, #384] ; (800925c <Display+0x2f00>)
80090da: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80090de: 2303 movs r3, #3
80090e0: 213c movs r1, #60 ; 0x3c
80090e2: 20a1 movs r0, #161 ; 0xa1
80090e4: f7fc f8ac bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
80090e8: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80090ec: b2db uxtb r3, r3
80090ee: 461a mov r2, r3
80090f0: 4b5a ldr r3, [pc, #360] ; (800925c <Display+0x2f00>)
80090f2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80090f6: 2303 movs r3, #3
80090f8: 213c movs r1, #60 ; 0x3c
80090fa: 20a8 movs r0, #168 ; 0xa8
80090fc: f7fc f8a0 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009100: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8009104: b2db uxtb r3, r3
8009106: 461a mov r2, r3
8009108: 4b54 ldr r3, [pc, #336] ; (800925c <Display+0x2f00>)
800910a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800910e: 2303 movs r3, #3
8009110: 213c movs r1, #60 ; 0x3c
8009112: 20af movs r0, #175 ; 0xaf
8009114: f7fc f894 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8009118: f004 b8bf b.w 800d29a <Display+0x6f3e>
if(menupos == Kikd_1)
800911c: 4b52 ldr r3, [pc, #328] ; (8009268 <Display+0x2f0c>)
800911e: 781b ldrb r3, [r3, #0]
8009120: b2db uxtb r3, r3
8009122: 2b05 cmp r3, #5
8009124: f040 818a bne.w 800943c <Display+0x30e0>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8009128: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800912c: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8009130: f7fb ffc0 bl 80050b4 <LCD_SetColors>
if(!ipt1)
8009134: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8009138: b2db uxtb r3, r3
800913a: 2b00 cmp r3, #0
800913c: d141 bne.n 80091c2 <Display+0x2e66>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
800913e: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8009142: b2db uxtb r3, r3
8009144: 461a mov r2, r3
8009146: 4b45 ldr r3, [pc, #276] ; (800925c <Display+0x2f00>)
8009148: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800914c: 2303 movs r3, #3
800914e: 213c movs r1, #60 ; 0x3c
8009150: 208c movs r0, #140 ; 0x8c
8009152: f7fc f875 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8009156: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
800915a: b2db uxtb r3, r3
800915c: 461a mov r2, r3
800915e: 4b3f ldr r3, [pc, #252] ; (800925c <Display+0x2f00>)
8009160: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009164: 2303 movs r3, #3
8009166: 213c movs r1, #60 ; 0x3c
8009168: 2093 movs r0, #147 ; 0x93
800916a: f7fc f869 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
800916e: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8009172: b2db uxtb r3, r3
8009174: 461a mov r2, r3
8009176: 4b39 ldr r3, [pc, #228] ; (800925c <Display+0x2f00>)
8009178: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800917c: 2303 movs r3, #3
800917e: 213c movs r1, #60 ; 0x3c
8009180: 209a movs r0, #154 ; 0x9a
8009182: f7fc f85d bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8009186: 4b36 ldr r3, [pc, #216] ; (8009260 <Display+0x2f04>)
8009188: 681b ldr r3, [r3, #0]
800918a: 2b00 cmp r3, #0
800918c: d00b beq.n 80091a6 <Display+0x2e4a>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
800918e: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8009192: b2db uxtb r3, r3
8009194: 461a mov r2, r3
8009196: 4b31 ldr r3, [pc, #196] ; (800925c <Display+0x2f00>)
8009198: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800919c: 2303 movs r3, #3
800919e: 213c movs r1, #60 ; 0x3c
80091a0: 20a1 movs r0, #161 ; 0xa1
80091a2: f7fc f84d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE);
80091a6: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80091aa: b2db uxtb r3, r3
80091ac: 461a mov r2, r3
80091ae: 4b2b ldr r3, [pc, #172] ; (800925c <Display+0x2f00>)
80091b0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80091b4: 2303 movs r3, #3
80091b6: 213c movs r1, #60 ; 0x3c
80091b8: 20a8 movs r0, #168 ; 0xa8
80091ba: f7fc f841 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80091be: f004 b86c b.w 800d29a <Display+0x6f3e>
if(ipt1 == 1)
80091c2: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
80091c6: b2db uxtb r3, r3
80091c8: 2b01 cmp r3, #1
80091ca: d14f bne.n 800926c <Display+0x2f10>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
80091cc: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
80091d0: b2db uxtb r3, r3
80091d2: 461a mov r2, r3
80091d4: 4b21 ldr r3, [pc, #132] ; (800925c <Display+0x2f00>)
80091d6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80091da: 2303 movs r3, #3
80091dc: 213c movs r1, #60 ; 0x3c
80091de: 208c movs r0, #140 ; 0x8c
80091e0: f7fc f82e bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
80091e4: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
80091e8: b2db uxtb r3, r3
80091ea: 461a mov r2, r3
80091ec: 4b1b ldr r3, [pc, #108] ; (800925c <Display+0x2f00>)
80091ee: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80091f2: 2303 movs r3, #3
80091f4: 213c movs r1, #60 ; 0x3c
80091f6: 2093 movs r0, #147 ; 0x93
80091f8: f7fc f822 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
80091fc: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8009200: b2db uxtb r3, r3
8009202: 461a mov r2, r3
8009204: 4b15 ldr r3, [pc, #84] ; (800925c <Display+0x2f00>)
8009206: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800920a: 2303 movs r3, #3
800920c: 213c movs r1, #60 ; 0x3c
800920e: 209a movs r0, #154 ; 0x9a
8009210: f7fc f816 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8009214: 4b12 ldr r3, [pc, #72] ; (8009260 <Display+0x2f04>)
8009216: 681b ldr r3, [r3, #0]
8009218: 2b00 cmp r3, #0
800921a: d00b beq.n 8009234 <Display+0x2ed8>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
800921c: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8009220: b2db uxtb r3, r3
8009222: 461a mov r2, r3
8009224: 4b0d ldr r3, [pc, #52] ; (800925c <Display+0x2f00>)
8009226: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800922a: 2303 movs r3, #3
800922c: 213c movs r1, #60 ; 0x3c
800922e: 20a1 movs r0, #161 ; 0xa1
8009230: f7fc f806 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE);
8009234: 2303 movs r3, #3
8009236: 4a0b ldr r2, [pc, #44] ; (8009264 <Display+0x2f08>)
8009238: 213c movs r1, #60 ; 0x3c
800923a: 20a8 movs r0, #168 ; 0xa8
800923c: f7fc f800 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009240: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8009244: b2db uxtb r3, r3
8009246: 461a mov r2, r3
8009248: 4b04 ldr r3, [pc, #16] ; (800925c <Display+0x2f00>)
800924a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800924e: 2303 movs r3, #3
8009250: 213c movs r1, #60 ; 0x3c
8009252: 20af movs r0, #175 ; 0xaf
8009254: f7fb fff4 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8009258: f004 b81f b.w 800d29a <Display+0x6f3e>
800925c: 2002084c .word 0x2002084c
8009260: 2006b958 .word 0x2006b958
8009264: 080183cc .word 0x080183cc
8009268: 20020010 .word 0x20020010
if(ipt1 == 2)
800926c: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8009270: b2db uxtb r3, r3
8009272: 2b02 cmp r3, #2
8009274: d147 bne.n 8009306 <Display+0x2faa>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8009276: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
800927a: b2db uxtb r3, r3
800927c: 461a mov r2, r3
800927e: 4bc0 ldr r3, [pc, #768] ; (8009580 <Display+0x3224>)
8009280: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009284: 2303 movs r3, #3
8009286: 213c movs r1, #60 ; 0x3c
8009288: 208c movs r0, #140 ; 0x8c
800928a: f7fb ffd9 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
800928e: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8009292: b2db uxtb r3, r3
8009294: 461a mov r2, r3
8009296: 4bba ldr r3, [pc, #744] ; (8009580 <Display+0x3224>)
8009298: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800929c: 2303 movs r3, #3
800929e: 213c movs r1, #60 ; 0x3c
80092a0: 2093 movs r0, #147 ; 0x93
80092a2: f7fb ffcd bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
80092a6: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80092aa: b2db uxtb r3, r3
80092ac: 461a mov r2, r3
80092ae: 4bb4 ldr r3, [pc, #720] ; (8009580 <Display+0x3224>)
80092b0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80092b4: 2303 movs r3, #3
80092b6: 213c movs r1, #60 ; 0x3c
80092b8: 209a movs r0, #154 ; 0x9a
80092ba: f7fb ffc1 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE);
80092be: 2303 movs r3, #3
80092c0: 4ab0 ldr r2, [pc, #704] ; (8009584 <Display+0x3228>)
80092c2: 213c movs r1, #60 ; 0x3c
80092c4: 20a1 movs r0, #161 ; 0xa1
80092c6: f7fb ffbb bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
80092ca: 4baf ldr r3, [pc, #700] ; (8009588 <Display+0x322c>)
80092cc: 681b ldr r3, [r3, #0]
80092ce: 2b00 cmp r3, #0
80092d0: d00b beq.n 80092ea <Display+0x2f8e>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
80092d2: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80092d6: b2db uxtb r3, r3
80092d8: 461a mov r2, r3
80092da: 4ba9 ldr r3, [pc, #676] ; (8009580 <Display+0x3224>)
80092dc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80092e0: 2303 movs r3, #3
80092e2: 213c movs r1, #60 ; 0x3c
80092e4: 20a8 movs r0, #168 ; 0xa8
80092e6: f7fb ffab bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
80092ea: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80092ee: b2db uxtb r3, r3
80092f0: 461a mov r2, r3
80092f2: 4ba3 ldr r3, [pc, #652] ; (8009580 <Display+0x3224>)
80092f4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80092f8: 2303 movs r3, #3
80092fa: 213c movs r1, #60 ; 0x3c
80092fc: 20af movs r0, #175 ; 0xaf
80092fe: f7fb ff9f bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8009302: f003 bfca b.w 800d29a <Display+0x6f3e>
if(ipt1 == 3)
8009306: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
800930a: b2db uxtb r3, r3
800930c: 2b03 cmp r3, #3
800930e: d147 bne.n 80093a0 <Display+0x3044>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8009310: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8009314: b2db uxtb r3, r3
8009316: 461a mov r2, r3
8009318: 4b99 ldr r3, [pc, #612] ; (8009580 <Display+0x3224>)
800931a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800931e: 2303 movs r3, #3
8009320: 213c movs r1, #60 ; 0x3c
8009322: 208c movs r0, #140 ; 0x8c
8009324: f7fb ff8c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8009328: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
800932c: b2db uxtb r3, r3
800932e: 461a mov r2, r3
8009330: 4b93 ldr r3, [pc, #588] ; (8009580 <Display+0x3224>)
8009332: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009336: 2303 movs r3, #3
8009338: 213c movs r1, #60 ; 0x3c
800933a: 2093 movs r0, #147 ; 0x93
800933c: f7fb ff80 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE);
8009340: 2303 movs r3, #3
8009342: 4a90 ldr r2, [pc, #576] ; (8009584 <Display+0x3228>)
8009344: 213c movs r1, #60 ; 0x3c
8009346: 209a movs r0, #154 ; 0x9a
8009348: f7fb ff7a bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
800934c: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8009350: b2db uxtb r3, r3
8009352: 461a mov r2, r3
8009354: 4b8a ldr r3, [pc, #552] ; (8009580 <Display+0x3224>)
8009356: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800935a: 2303 movs r3, #3
800935c: 213c movs r1, #60 ; 0x3c
800935e: 20a1 movs r0, #161 ; 0xa1
8009360: f7fb ff6e bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8009364: 4b88 ldr r3, [pc, #544] ; (8009588 <Display+0x322c>)
8009366: 681b ldr r3, [r3, #0]
8009368: 2b00 cmp r3, #0
800936a: d00b beq.n 8009384 <Display+0x3028>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
800936c: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8009370: b2db uxtb r3, r3
8009372: 461a mov r2, r3
8009374: 4b82 ldr r3, [pc, #520] ; (8009580 <Display+0x3224>)
8009376: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800937a: 2303 movs r3, #3
800937c: 213c movs r1, #60 ; 0x3c
800937e: 20a8 movs r0, #168 ; 0xa8
8009380: f7fb ff5e bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009384: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8009388: b2db uxtb r3, r3
800938a: 461a mov r2, r3
800938c: 4b7c ldr r3, [pc, #496] ; (8009580 <Display+0x3224>)
800938e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009392: 2303 movs r3, #3
8009394: 213c movs r1, #60 ; 0x3c
8009396: 20af movs r0, #175 ; 0xaf
8009398: f7fb ff52 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
800939c: f003 bf7d b.w 800d29a <Display+0x6f3e>
if(ipt1 == 4)
80093a0: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
80093a4: b2db uxtb r3, r3
80093a6: 2b04 cmp r3, #4
80093a8: f043 8777 bne.w 800d29a <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
80093ac: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
80093b0: b2db uxtb r3, r3
80093b2: 461a mov r2, r3
80093b4: 4b72 ldr r3, [pc, #456] ; (8009580 <Display+0x3224>)
80093b6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80093ba: 2303 movs r3, #3
80093bc: 213c movs r1, #60 ; 0x3c
80093be: 208c movs r0, #140 ; 0x8c
80093c0: f7fb ff3e bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE);
80093c4: 2303 movs r3, #3
80093c6: 4a6f ldr r2, [pc, #444] ; (8009584 <Display+0x3228>)
80093c8: 213c movs r1, #60 ; 0x3c
80093ca: 2093 movs r0, #147 ; 0x93
80093cc: f7fb ff38 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE);
80093d0: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
80093d4: b2db uxtb r3, r3
80093d6: 461a mov r2, r3
80093d8: 4b69 ldr r3, [pc, #420] ; (8009580 <Display+0x3224>)
80093da: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80093de: 2303 movs r3, #3
80093e0: 213c movs r1, #60 ; 0x3c
80093e2: 209a movs r0, #154 ; 0x9a
80093e4: f7fb ff2c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
80093e8: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80093ec: b2db uxtb r3, r3
80093ee: 461a mov r2, r3
80093f0: 4b63 ldr r3, [pc, #396] ; (8009580 <Display+0x3224>)
80093f2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80093f6: 2303 movs r3, #3
80093f8: 213c movs r1, #60 ; 0x3c
80093fa: 20a1 movs r0, #161 ; 0xa1
80093fc: f7fb ff20 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8009400: 4b61 ldr r3, [pc, #388] ; (8009588 <Display+0x322c>)
8009402: 681b ldr r3, [r3, #0]
8009404: 2b00 cmp r3, #0
8009406: d00b beq.n 8009420 <Display+0x30c4>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8009408: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
800940c: b2db uxtb r3, r3
800940e: 461a mov r2, r3
8009410: 4b5b ldr r3, [pc, #364] ; (8009580 <Display+0x3224>)
8009412: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009416: 2303 movs r3, #3
8009418: 213c movs r1, #60 ; 0x3c
800941a: 20a8 movs r0, #168 ; 0xa8
800941c: f7fb ff10 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009420: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8009424: b2db uxtb r3, r3
8009426: 461a mov r2, r3
8009428: 4b55 ldr r3, [pc, #340] ; (8009580 <Display+0x3224>)
800942a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800942e: 2303 movs r3, #3
8009430: 213c movs r1, #60 ; 0x3c
8009432: 20af movs r0, #175 ; 0xaf
8009434: f7fb ff04 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8009438: f003 bf2f b.w 800d29a <Display+0x6f3e>
if(menupos == Kike_1)
800943c: 4b53 ldr r3, [pc, #332] ; (800958c <Display+0x3230>)
800943e: 781b ldrb r3, [r3, #0]
8009440: b2db uxtb r3, r3
8009442: 2b06 cmp r3, #6
8009444: f040 818f bne.w 8009766 <Display+0x340a>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8009448: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800944c: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8009450: f7fb fe30 bl 80050b4 <LCD_SetColors>
if(!ipt1)
8009454: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8009458: b2db uxtb r3, r3
800945a: 2b00 cmp r3, #0
800945c: d142 bne.n 80094e4 <Display+0x3188>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
800945e: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8009462: b2db uxtb r3, r3
8009464: 461a mov r2, r3
8009466: 4b46 ldr r3, [pc, #280] ; (8009580 <Display+0x3224>)
8009468: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800946c: 2303 movs r3, #3
800946e: 213c movs r1, #60 ; 0x3c
8009470: 208c movs r0, #140 ; 0x8c
8009472: f7fb fee5 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8009476: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
800947a: b2db uxtb r3, r3
800947c: 461a mov r2, r3
800947e: 4b40 ldr r3, [pc, #256] ; (8009580 <Display+0x3224>)
8009480: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009484: 2303 movs r3, #3
8009486: 213c movs r1, #60 ; 0x3c
8009488: 2093 movs r0, #147 ; 0x93
800948a: f7fb fed9 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
800948e: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8009492: b2db uxtb r3, r3
8009494: 461a mov r2, r3
8009496: 4b3a ldr r3, [pc, #232] ; (8009580 <Display+0x3224>)
8009498: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800949c: 2303 movs r3, #3
800949e: 213c movs r1, #60 ; 0x3c
80094a0: 209a movs r0, #154 ; 0x9a
80094a2: f7fb fecd bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
80094a6: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80094aa: b2db uxtb r3, r3
80094ac: 461a mov r2, r3
80094ae: 4b34 ldr r3, [pc, #208] ; (8009580 <Display+0x3224>)
80094b0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80094b4: 2303 movs r3, #3
80094b6: 213c movs r1, #60 ; 0x3c
80094b8: 20a1 movs r0, #161 ; 0xa1
80094ba: f7fb fec1 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
80094be: 4b32 ldr r3, [pc, #200] ; (8009588 <Display+0x322c>)
80094c0: 681b ldr r3, [r3, #0]
80094c2: 2b00 cmp r3, #0
80094c4: f003 86e9 beq.w 800d29a <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE);
80094c8: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80094cc: b2db uxtb r3, r3
80094ce: 461a mov r2, r3
80094d0: 4b2b ldr r3, [pc, #172] ; (8009580 <Display+0x3224>)
80094d2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80094d6: 2303 movs r3, #3
80094d8: 213c movs r1, #60 ; 0x3c
80094da: 20a8 movs r0, #168 ; 0xa8
80094dc: f7fb feb0 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80094e0: f003 bedb b.w 800d29a <Display+0x6f3e>
if(ipt1 == 1)
80094e4: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
80094e8: b2db uxtb r3, r3
80094ea: 2b01 cmp r3, #1
80094ec: d150 bne.n 8009590 <Display+0x3234>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
80094ee: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
80094f2: b2db uxtb r3, r3
80094f4: 461a mov r2, r3
80094f6: 4b22 ldr r3, [pc, #136] ; (8009580 <Display+0x3224>)
80094f8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80094fc: 2303 movs r3, #3
80094fe: 213c movs r1, #60 ; 0x3c
8009500: 208c movs r0, #140 ; 0x8c
8009502: f7fb fe9d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8009506: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
800950a: b2db uxtb r3, r3
800950c: 461a mov r2, r3
800950e: 4b1c ldr r3, [pc, #112] ; (8009580 <Display+0x3224>)
8009510: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009514: 2303 movs r3, #3
8009516: 213c movs r1, #60 ; 0x3c
8009518: 2093 movs r0, #147 ; 0x93
800951a: f7fb fe91 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
800951e: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8009522: b2db uxtb r3, r3
8009524: 461a mov r2, r3
8009526: 4b16 ldr r3, [pc, #88] ; (8009580 <Display+0x3224>)
8009528: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800952c: 2303 movs r3, #3
800952e: 213c movs r1, #60 ; 0x3c
8009530: 209a movs r0, #154 ; 0x9a
8009532: f7fb fe85 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
8009536: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
800953a: b2db uxtb r3, r3
800953c: 461a mov r2, r3
800953e: 4b10 ldr r3, [pc, #64] ; (8009580 <Display+0x3224>)
8009540: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009544: 2303 movs r3, #3
8009546: 213c movs r1, #60 ; 0x3c
8009548: 20a1 movs r0, #161 ; 0xa1
800954a: f7fb fe79 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE);
800954e: 2303 movs r3, #3
8009550: 4a0c ldr r2, [pc, #48] ; (8009584 <Display+0x3228>)
8009552: 213c movs r1, #60 ; 0x3c
8009554: 20a8 movs r0, #168 ; 0xa8
8009556: f7fb fe73 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800955a: 4b0b ldr r3, [pc, #44] ; (8009588 <Display+0x322c>)
800955c: 681b ldr r3, [r3, #0]
800955e: 2b00 cmp r3, #0
8009560: f003 869b beq.w 800d29a <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009564: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8009568: b2db uxtb r3, r3
800956a: 461a mov r2, r3
800956c: 4b04 ldr r3, [pc, #16] ; (8009580 <Display+0x3224>)
800956e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009572: 2303 movs r3, #3
8009574: 213c movs r1, #60 ; 0x3c
8009576: 20af movs r0, #175 ; 0xaf
8009578: f7fb fe62 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
800957c: f003 be8d b.w 800d29a <Display+0x6f3e>
8009580: 2002084c .word 0x2002084c
8009584: 080183cc .word 0x080183cc
8009588: 2006b958 .word 0x2006b958
800958c: 20020010 .word 0x20020010
if(ipt1 == 2)
8009590: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8009594: b2db uxtb r3, r3
8009596: 2b02 cmp r3, #2
8009598: d148 bne.n 800962c <Display+0x32d0>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
800959a: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
800959e: b2db uxtb r3, r3
80095a0: 461a mov r2, r3
80095a2: 4bc4 ldr r3, [pc, #784] ; (80098b4 <Display+0x3558>)
80095a4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80095a8: 2303 movs r3, #3
80095aa: 213c movs r1, #60 ; 0x3c
80095ac: 208c movs r0, #140 ; 0x8c
80095ae: f7fb fe47 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
80095b2: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
80095b6: b2db uxtb r3, r3
80095b8: 461a mov r2, r3
80095ba: 4bbe ldr r3, [pc, #760] ; (80098b4 <Display+0x3558>)
80095bc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80095c0: 2303 movs r3, #3
80095c2: 213c movs r1, #60 ; 0x3c
80095c4: 2093 movs r0, #147 ; 0x93
80095c6: f7fb fe3b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
80095ca: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80095ce: b2db uxtb r3, r3
80095d0: 461a mov r2, r3
80095d2: 4bb8 ldr r3, [pc, #736] ; (80098b4 <Display+0x3558>)
80095d4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80095d8: 2303 movs r3, #3
80095da: 213c movs r1, #60 ; 0x3c
80095dc: 209a movs r0, #154 ; 0x9a
80095de: f7fb fe2f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE);
80095e2: 2303 movs r3, #3
80095e4: 4ab4 ldr r2, [pc, #720] ; (80098b8 <Display+0x355c>)
80095e6: 213c movs r1, #60 ; 0x3c
80095e8: 20a1 movs r0, #161 ; 0xa1
80095ea: f7fb fe29 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
80095ee: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80095f2: b2db uxtb r3, r3
80095f4: 461a mov r2, r3
80095f6: 4baf ldr r3, [pc, #700] ; (80098b4 <Display+0x3558>)
80095f8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80095fc: 2303 movs r3, #3
80095fe: 213c movs r1, #60 ; 0x3c
8009600: 20a8 movs r0, #168 ; 0xa8
8009602: f7fb fe1d bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8009606: 4bad ldr r3, [pc, #692] ; (80098bc <Display+0x3560>)
8009608: 681b ldr r3, [r3, #0]
800960a: 2b00 cmp r3, #0
800960c: f003 8645 beq.w 800d29a <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009610: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8009614: b2db uxtb r3, r3
8009616: 461a mov r2, r3
8009618: 4ba6 ldr r3, [pc, #664] ; (80098b4 <Display+0x3558>)
800961a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800961e: 2303 movs r3, #3
8009620: 213c movs r1, #60 ; 0x3c
8009622: 20af movs r0, #175 ; 0xaf
8009624: f7fb fe0c bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8009628: f003 be37 b.w 800d29a <Display+0x6f3e>
if(ipt1 == 3)
800962c: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8009630: b2db uxtb r3, r3
8009632: 2b03 cmp r3, #3
8009634: d148 bne.n 80096c8 <Display+0x336c>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8009636: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
800963a: b2db uxtb r3, r3
800963c: 461a mov r2, r3
800963e: 4b9d ldr r3, [pc, #628] ; (80098b4 <Display+0x3558>)
8009640: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009644: 2303 movs r3, #3
8009646: 213c movs r1, #60 ; 0x3c
8009648: 208c movs r0, #140 ; 0x8c
800964a: f7fb fdf9 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
800964e: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8009652: b2db uxtb r3, r3
8009654: 461a mov r2, r3
8009656: 4b97 ldr r3, [pc, #604] ; (80098b4 <Display+0x3558>)
8009658: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800965c: 2303 movs r3, #3
800965e: 213c movs r1, #60 ; 0x3c
8009660: 2093 movs r0, #147 ; 0x93
8009662: f7fb fded bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE);
8009666: 2303 movs r3, #3
8009668: 4a93 ldr r2, [pc, #588] ; (80098b8 <Display+0x355c>)
800966a: 213c movs r1, #60 ; 0x3c
800966c: 209a movs r0, #154 ; 0x9a
800966e: f7fb fde7 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8009672: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8009676: b2db uxtb r3, r3
8009678: 461a mov r2, r3
800967a: 4b8e ldr r3, [pc, #568] ; (80098b4 <Display+0x3558>)
800967c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009680: 2303 movs r3, #3
8009682: 213c movs r1, #60 ; 0x3c
8009684: 20a1 movs r0, #161 ; 0xa1
8009686: f7fb fddb bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
800968a: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
800968e: b2db uxtb r3, r3
8009690: 461a mov r2, r3
8009692: 4b88 ldr r3, [pc, #544] ; (80098b4 <Display+0x3558>)
8009694: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009698: 2303 movs r3, #3
800969a: 213c movs r1, #60 ; 0x3c
800969c: 20a8 movs r0, #168 ; 0xa8
800969e: f7fb fdcf bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
80096a2: 4b86 ldr r3, [pc, #536] ; (80098bc <Display+0x3560>)
80096a4: 681b ldr r3, [r3, #0]
80096a6: 2b00 cmp r3, #0
80096a8: f003 85f7 beq.w 800d29a <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
80096ac: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80096b0: b2db uxtb r3, r3
80096b2: 461a mov r2, r3
80096b4: 4b7f ldr r3, [pc, #508] ; (80098b4 <Display+0x3558>)
80096b6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80096ba: 2303 movs r3, #3
80096bc: 213c movs r1, #60 ; 0x3c
80096be: 20af movs r0, #175 ; 0xaf
80096c0: f7fb fdbe bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80096c4: f003 bde9 b.w 800d29a <Display+0x6f3e>
if(ipt1 == 4)
80096c8: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
80096cc: b2db uxtb r3, r3
80096ce: 2b04 cmp r3, #4
80096d0: f043 85e3 bne.w 800d29a <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
80096d4: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
80096d8: b2db uxtb r3, r3
80096da: 461a mov r2, r3
80096dc: 4b75 ldr r3, [pc, #468] ; (80098b4 <Display+0x3558>)
80096de: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80096e2: 2303 movs r3, #3
80096e4: 213c movs r1, #60 ; 0x3c
80096e6: 208c movs r0, #140 ; 0x8c
80096e8: f7fb fdaa bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE);
80096ec: 2303 movs r3, #3
80096ee: 4a72 ldr r2, [pc, #456] ; (80098b8 <Display+0x355c>)
80096f0: 213c movs r1, #60 ; 0x3c
80096f2: 2093 movs r0, #147 ; 0x93
80096f4: f7fb fda4 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE);
80096f8: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
80096fc: b2db uxtb r3, r3
80096fe: 461a mov r2, r3
8009700: 4b6c ldr r3, [pc, #432] ; (80098b4 <Display+0x3558>)
8009702: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009706: 2303 movs r3, #3
8009708: 213c movs r1, #60 ; 0x3c
800970a: 209a movs r0, #154 ; 0x9a
800970c: f7fb fd98 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8009710: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8009714: b2db uxtb r3, r3
8009716: 461a mov r2, r3
8009718: 4b66 ldr r3, [pc, #408] ; (80098b4 <Display+0x3558>)
800971a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800971e: 2303 movs r3, #3
8009720: 213c movs r1, #60 ; 0x3c
8009722: 20a1 movs r0, #161 ; 0xa1
8009724: f7fb fd8c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8009728: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
800972c: b2db uxtb r3, r3
800972e: 461a mov r2, r3
8009730: 4b60 ldr r3, [pc, #384] ; (80098b4 <Display+0x3558>)
8009732: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009736: 2303 movs r3, #3
8009738: 213c movs r1, #60 ; 0x3c
800973a: 20a8 movs r0, #168 ; 0xa8
800973c: f7fb fd80 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8009740: 4b5e ldr r3, [pc, #376] ; (80098bc <Display+0x3560>)
8009742: 681b ldr r3, [r3, #0]
8009744: 2b00 cmp r3, #0
8009746: f003 85a8 beq.w 800d29a <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
800974a: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
800974e: b2db uxtb r3, r3
8009750: 461a mov r2, r3
8009752: 4b58 ldr r3, [pc, #352] ; (80098b4 <Display+0x3558>)
8009754: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009758: 2303 movs r3, #3
800975a: 213c movs r1, #60 ; 0x3c
800975c: 20af movs r0, #175 ; 0xaf
800975e: f7fb fd6f bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8009762: f003 bd9a b.w 800d29a <Display+0x6f3e>
if(menupos == Kpt_1)
8009766: 4b56 ldr r3, [pc, #344] ; (80098c0 <Display+0x3564>)
8009768: 781b ldrb r3, [r3, #0]
800976a: b2db uxtb r3, r3
800976c: 2b07 cmp r3, #7
800976e: f043 8594 bne.w 800d29a <Display+0x6f3e>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8009772: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8009776: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800977a: f7fb fc9b bl 80050b4 <LCD_SetColors>
if(!ipt1)
800977e: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8009782: b2db uxtb r3, r3
8009784: 2b00 cmp r3, #0
8009786: d148 bne.n 800981a <Display+0x34be>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8009788: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
800978c: b2db uxtb r3, r3
800978e: 461a mov r2, r3
8009790: 4b48 ldr r3, [pc, #288] ; (80098b4 <Display+0x3558>)
8009792: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009796: 2303 movs r3, #3
8009798: 213c movs r1, #60 ; 0x3c
800979a: 208c movs r0, #140 ; 0x8c
800979c: f7fb fd50 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
80097a0: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
80097a4: b2db uxtb r3, r3
80097a6: 461a mov r2, r3
80097a8: 4b42 ldr r3, [pc, #264] ; (80098b4 <Display+0x3558>)
80097aa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80097ae: 2303 movs r3, #3
80097b0: 213c movs r1, #60 ; 0x3c
80097b2: 2093 movs r0, #147 ; 0x93
80097b4: f7fb fd44 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
80097b8: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80097bc: b2db uxtb r3, r3
80097be: 461a mov r2, r3
80097c0: 4b3c ldr r3, [pc, #240] ; (80098b4 <Display+0x3558>)
80097c2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80097c6: 2303 movs r3, #3
80097c8: 213c movs r1, #60 ; 0x3c
80097ca: 209a movs r0, #154 ; 0x9a
80097cc: f7fb fd38 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
80097d0: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80097d4: b2db uxtb r3, r3
80097d6: 461a mov r2, r3
80097d8: 4b36 ldr r3, [pc, #216] ; (80098b4 <Display+0x3558>)
80097da: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80097de: 2303 movs r3, #3
80097e0: 213c movs r1, #60 ; 0x3c
80097e2: 20a1 movs r0, #161 ; 0xa1
80097e4: f7fb fd2c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE);
80097e8: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80097ec: b2db uxtb r3, r3
80097ee: 461a mov r2, r3
80097f0: 4b30 ldr r3, [pc, #192] ; (80098b4 <Display+0x3558>)
80097f2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80097f6: 2303 movs r3, #3
80097f8: 213c movs r1, #60 ; 0x3c
80097fa: 20a8 movs r0, #168 ; 0xa8
80097fc: f7fb fd20 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8009800: 4b2e ldr r3, [pc, #184] ; (80098bc <Display+0x3560>)
8009802: 681b ldr r3, [r3, #0]
8009804: 2b00 cmp r3, #0
8009806: f003 8548 beq.w 800d29a <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140+35, 60, ".", LEFT_MODE);
800980a: 2303 movs r3, #3
800980c: 4a2a ldr r2, [pc, #168] ; (80098b8 <Display+0x355c>)
800980e: 213c movs r1, #60 ; 0x3c
8009810: 20af movs r0, #175 ; 0xaf
8009812: f7fb fd15 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8009816: f003 bd40 b.w 800d29a <Display+0x6f3e>
if(ipt1 == 1)
800981a: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
800981e: b2db uxtb r3, r3
8009820: 2b01 cmp r3, #1
8009822: d14f bne.n 80098c4 <Display+0x3568>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8009824: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8009828: b2db uxtb r3, r3
800982a: 461a mov r2, r3
800982c: 4b21 ldr r3, [pc, #132] ; (80098b4 <Display+0x3558>)
800982e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009832: 2303 movs r3, #3
8009834: 213c movs r1, #60 ; 0x3c
8009836: 208c movs r0, #140 ; 0x8c
8009838: f7fb fd02 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
800983c: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8009840: b2db uxtb r3, r3
8009842: 461a mov r2, r3
8009844: 4b1b ldr r3, [pc, #108] ; (80098b4 <Display+0x3558>)
8009846: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800984a: 2303 movs r3, #3
800984c: 213c movs r1, #60 ; 0x3c
800984e: 2093 movs r0, #147 ; 0x93
8009850: f7fb fcf6 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8009854: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8009858: b2db uxtb r3, r3
800985a: 461a mov r2, r3
800985c: 4b15 ldr r3, [pc, #84] ; (80098b4 <Display+0x3558>)
800985e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009862: 2303 movs r3, #3
8009864: 213c movs r1, #60 ; 0x3c
8009866: 209a movs r0, #154 ; 0x9a
8009868: f7fb fcea bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
800986c: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8009870: b2db uxtb r3, r3
8009872: 461a mov r2, r3
8009874: 4b0f ldr r3, [pc, #60] ; (80098b4 <Display+0x3558>)
8009876: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800987a: 2303 movs r3, #3
800987c: 213c movs r1, #60 ; 0x3c
800987e: 20a1 movs r0, #161 ; 0xa1
8009880: f7fb fcde bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8009884: 4b0d ldr r3, [pc, #52] ; (80098bc <Display+0x3560>)
8009886: 681b ldr r3, [r3, #0]
8009888: 2b00 cmp r3, #0
800988a: d005 beq.n 8009898 <Display+0x353c>
BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE);
800988c: 2303 movs r3, #3
800988e: 4a0a ldr r2, [pc, #40] ; (80098b8 <Display+0x355c>)
8009890: 213c movs r1, #60 ; 0x3c
8009892: 20a8 movs r0, #168 ; 0xa8
8009894: f7fb fcd4 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009898: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
800989c: b2db uxtb r3, r3
800989e: 461a mov r2, r3
80098a0: 4b04 ldr r3, [pc, #16] ; (80098b4 <Display+0x3558>)
80098a2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80098a6: 2303 movs r3, #3
80098a8: 213c movs r1, #60 ; 0x3c
80098aa: 20af movs r0, #175 ; 0xaf
80098ac: f7fb fcc8 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80098b0: f003 bcf3 b.w 800d29a <Display+0x6f3e>
80098b4: 2002084c .word 0x2002084c
80098b8: 080183cc .word 0x080183cc
80098bc: 2006b958 .word 0x2006b958
80098c0: 20020010 .word 0x20020010
if(ipt1 == 2)
80098c4: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
80098c8: b2db uxtb r3, r3
80098ca: 2b02 cmp r3, #2
80098cc: d147 bne.n 800995e <Display+0x3602>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
80098ce: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
80098d2: b2db uxtb r3, r3
80098d4: 461a mov r2, r3
80098d6: 4bca ldr r3, [pc, #808] ; (8009c00 <Display+0x38a4>)
80098d8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80098dc: 2303 movs r3, #3
80098de: 213c movs r1, #60 ; 0x3c
80098e0: 208c movs r0, #140 ; 0x8c
80098e2: f7fb fcad bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
80098e6: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
80098ea: b2db uxtb r3, r3
80098ec: 461a mov r2, r3
80098ee: 4bc4 ldr r3, [pc, #784] ; (8009c00 <Display+0x38a4>)
80098f0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80098f4: 2303 movs r3, #3
80098f6: 213c movs r1, #60 ; 0x3c
80098f8: 2093 movs r0, #147 ; 0x93
80098fa: f7fb fca1 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
80098fe: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8009902: b2db uxtb r3, r3
8009904: 461a mov r2, r3
8009906: 4bbe ldr r3, [pc, #760] ; (8009c00 <Display+0x38a4>)
8009908: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800990c: 2303 movs r3, #3
800990e: 213c movs r1, #60 ; 0x3c
8009910: 209a movs r0, #154 ; 0x9a
8009912: f7fb fc95 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8009916: 4bbb ldr r3, [pc, #748] ; (8009c04 <Display+0x38a8>)
8009918: 681b ldr r3, [r3, #0]
800991a: 2b00 cmp r3, #0
800991c: d005 beq.n 800992a <Display+0x35ce>
BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE);
800991e: 2303 movs r3, #3
8009920: 4ab9 ldr r2, [pc, #740] ; (8009c08 <Display+0x38ac>)
8009922: 213c movs r1, #60 ; 0x3c
8009924: 20a1 movs r0, #161 ; 0xa1
8009926: f7fb fc8b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
800992a: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
800992e: b2db uxtb r3, r3
8009930: 461a mov r2, r3
8009932: 4bb3 ldr r3, [pc, #716] ; (8009c00 <Display+0x38a4>)
8009934: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009938: 2303 movs r3, #3
800993a: 213c movs r1, #60 ; 0x3c
800993c: 20a8 movs r0, #168 ; 0xa8
800993e: f7fb fc7f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009942: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8009946: b2db uxtb r3, r3
8009948: 461a mov r2, r3
800994a: 4bad ldr r3, [pc, #692] ; (8009c00 <Display+0x38a4>)
800994c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009950: 2303 movs r3, #3
8009952: 213c movs r1, #60 ; 0x3c
8009954: 20af movs r0, #175 ; 0xaf
8009956: f7fb fc73 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
800995a: f003 bc9e b.w 800d29a <Display+0x6f3e>
if(ipt1 == 3)
800995e: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8009962: b2db uxtb r3, r3
8009964: 2b03 cmp r3, #3
8009966: d147 bne.n 80099f8 <Display+0x369c>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8009968: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
800996c: b2db uxtb r3, r3
800996e: 461a mov r2, r3
8009970: 4ba3 ldr r3, [pc, #652] ; (8009c00 <Display+0x38a4>)
8009972: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009976: 2303 movs r3, #3
8009978: 213c movs r1, #60 ; 0x3c
800997a: 208c movs r0, #140 ; 0x8c
800997c: f7fb fc60 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8009980: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8009984: b2db uxtb r3, r3
8009986: 461a mov r2, r3
8009988: 4b9d ldr r3, [pc, #628] ; (8009c00 <Display+0x38a4>)
800998a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800998e: 2303 movs r3, #3
8009990: 213c movs r1, #60 ; 0x3c
8009992: 2093 movs r0, #147 ; 0x93
8009994: f7fb fc54 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8009998: 4b9a ldr r3, [pc, #616] ; (8009c04 <Display+0x38a8>)
800999a: 681b ldr r3, [r3, #0]
800999c: 2b00 cmp r3, #0
800999e: d005 beq.n 80099ac <Display+0x3650>
BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE);
80099a0: 2303 movs r3, #3
80099a2: 4a99 ldr r2, [pc, #612] ; (8009c08 <Display+0x38ac>)
80099a4: 213c movs r1, #60 ; 0x3c
80099a6: 209a movs r0, #154 ; 0x9a
80099a8: f7fb fc4a bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
80099ac: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80099b0: b2db uxtb r3, r3
80099b2: 461a mov r2, r3
80099b4: 4b92 ldr r3, [pc, #584] ; (8009c00 <Display+0x38a4>)
80099b6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80099ba: 2303 movs r3, #3
80099bc: 213c movs r1, #60 ; 0x3c
80099be: 20a1 movs r0, #161 ; 0xa1
80099c0: f7fb fc3e bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
80099c4: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80099c8: b2db uxtb r3, r3
80099ca: 461a mov r2, r3
80099cc: 4b8c ldr r3, [pc, #560] ; (8009c00 <Display+0x38a4>)
80099ce: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80099d2: 2303 movs r3, #3
80099d4: 213c movs r1, #60 ; 0x3c
80099d6: 20a8 movs r0, #168 ; 0xa8
80099d8: f7fb fc32 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
80099dc: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80099e0: b2db uxtb r3, r3
80099e2: 461a mov r2, r3
80099e4: 4b86 ldr r3, [pc, #536] ; (8009c00 <Display+0x38a4>)
80099e6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80099ea: 2303 movs r3, #3
80099ec: 213c movs r1, #60 ; 0x3c
80099ee: 20af movs r0, #175 ; 0xaf
80099f0: f7fb fc26 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80099f4: f003 bc51 b.w 800d29a <Display+0x6f3e>
if(ipt1 == 4)
80099f8: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
80099fc: b2db uxtb r3, r3
80099fe: 2b04 cmp r3, #4
8009a00: f043 844b bne.w 800d29a <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8009a04: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8009a08: b2db uxtb r3, r3
8009a0a: 461a mov r2, r3
8009a0c: 4b7c ldr r3, [pc, #496] ; (8009c00 <Display+0x38a4>)
8009a0e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009a12: 2303 movs r3, #3
8009a14: 213c movs r1, #60 ; 0x3c
8009a16: 208c movs r0, #140 ; 0x8c
8009a18: f7fb fc12 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8009a1c: 4b79 ldr r3, [pc, #484] ; (8009c04 <Display+0x38a8>)
8009a1e: 681b ldr r3, [r3, #0]
8009a20: 2b00 cmp r3, #0
8009a22: d005 beq.n 8009a30 <Display+0x36d4>
BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE);
8009a24: 2303 movs r3, #3
8009a26: 4a78 ldr r2, [pc, #480] ; (8009c08 <Display+0x38ac>)
8009a28: 213c movs r1, #60 ; 0x3c
8009a2a: 2093 movs r0, #147 ; 0x93
8009a2c: f7fb fc08 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE);
8009a30: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8009a34: b2db uxtb r3, r3
8009a36: 461a mov r2, r3
8009a38: 4b71 ldr r3, [pc, #452] ; (8009c00 <Display+0x38a4>)
8009a3a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009a3e: 2303 movs r3, #3
8009a40: 213c movs r1, #60 ; 0x3c
8009a42: 209a movs r0, #154 ; 0x9a
8009a44: f7fb fbfc bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8009a48: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8009a4c: b2db uxtb r3, r3
8009a4e: 461a mov r2, r3
8009a50: 4b6b ldr r3, [pc, #428] ; (8009c00 <Display+0x38a4>)
8009a52: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009a56: 2303 movs r3, #3
8009a58: 213c movs r1, #60 ; 0x3c
8009a5a: 20a1 movs r0, #161 ; 0xa1
8009a5c: f7fb fbf0 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8009a60: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8009a64: b2db uxtb r3, r3
8009a66: 461a mov r2, r3
8009a68: 4b65 ldr r3, [pc, #404] ; (8009c00 <Display+0x38a4>)
8009a6a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009a6e: 2303 movs r3, #3
8009a70: 213c movs r1, #60 ; 0x3c
8009a72: 20a8 movs r0, #168 ; 0xa8
8009a74: f7fb fbe4 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009a78: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8009a7c: b2db uxtb r3, r3
8009a7e: 461a mov r2, r3
8009a80: 4b5f ldr r3, [pc, #380] ; (8009c00 <Display+0x38a4>)
8009a82: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009a86: 2303 movs r3, #3
8009a88: 213c movs r1, #60 ; 0x3c
8009a8a: 20af movs r0, #175 ; 0xaf
8009a8c: f7fb fbd8 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8009a90: f003 bc03 b.w 800d29a <Display+0x6f3e>
if(menupos >= Kikdt_2 && menupos <= Kpt_2)
8009a94: 4b5d ldr r3, [pc, #372] ; (8009c0c <Display+0x38b0>)
8009a96: 781b ldrb r3, [r3, #0]
8009a98: b2db uxtb r3, r3
8009a9a: 2b09 cmp r3, #9
8009a9c: f241 8151 bls.w 800ad42 <Display+0x49e6>
8009aa0: 4b5a ldr r3, [pc, #360] ; (8009c0c <Display+0x38b0>)
8009aa2: 781b ldrb r3, [r3, #0]
8009aa4: b2db uxtb r3, r3
8009aa6: 2b0f cmp r3, #15
8009aa8: f201 814b bhi.w 800ad42 <Display+0x49e6>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8009aac: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8009ab0: 4857 ldr r0, [pc, #348] ; (8009c10 <Display+0x38b4>)
8009ab2: f7fb faff bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8009ab6: f507 728e add.w r2, r7, #284 ; 0x11c
8009aba: 2303 movs r3, #3
8009abc: 213c movs r1, #60 ; 0x3c
8009abe: 208c movs r0, #140 ; 0x8c
8009ac0: f7fb fbbe bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8009ac4: f107 02a4 add.w r2, r7, #164 ; 0xa4
8009ac8: 2303 movs r3, #3
8009aca: 2164 movs r1, #100 ; 0x64
8009acc: 208c movs r0, #140 ; 0x8c
8009ace: f7fb fbb7 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8009ad2: f107 0268 add.w r2, r7, #104 ; 0x68
8009ad6: 2303 movs r3, #3
8009ad8: 2178 movs r1, #120 ; 0x78
8009ada: 208c movs r0, #140 ; 0x8c
8009adc: f7fb fbb0 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009ae0: 4b4a ldr r3, [pc, #296] ; (8009c0c <Display+0x38b0>)
8009ae2: 781b ldrb r3, [r3, #0]
8009ae4: b2db uxtb r3, r3
8009ae6: 2b0a cmp r3, #10
8009ae8: f040 814c bne.w 8009d84 <Display+0x3a28>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8009aec: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8009af0: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8009af4: f7fb fade bl 80050b4 <LCD_SetColors>
if(blk)
8009af8: 4b42 ldr r3, [pc, #264] ; (8009c04 <Display+0x38a8>)
8009afa: 681b ldr r3, [r3, #0]
8009afc: 2b00 cmp r3, #0
8009afe: d00b beq.n 8009b18 <Display+0x37bc>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009b00: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009b04: b2db uxtb r3, r3
8009b06: 461a mov r2, r3
8009b08: 4b3d ldr r3, [pc, #244] ; (8009c00 <Display+0x38a4>)
8009b0a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009b0e: 2303 movs r3, #3
8009b10: 2150 movs r1, #80 ; 0x50
8009b12: 208c movs r0, #140 ; 0x8c
8009b14: f7fb fb94 bl 8005240 <BSP_LCD_DisplayStringAt>
if(!ipt2)
8009b18: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009b1c: b2db uxtb r3, r3
8009b1e: 2b00 cmp r3, #0
8009b20: d131 bne.n 8009b86 <Display+0x382a>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009b22: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009b26: b2db uxtb r3, r3
8009b28: 461a mov r2, r3
8009b2a: 4b35 ldr r3, [pc, #212] ; (8009c00 <Display+0x38a4>)
8009b2c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009b30: 2303 movs r3, #3
8009b32: 2150 movs r1, #80 ; 0x50
8009b34: 2093 movs r0, #147 ; 0x93
8009b36: f7fb fb83 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009b3a: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009b3e: b2db uxtb r3, r3
8009b40: 461a mov r2, r3
8009b42: 4b2f ldr r3, [pc, #188] ; (8009c00 <Display+0x38a4>)
8009b44: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009b48: 2303 movs r3, #3
8009b4a: 2150 movs r1, #80 ; 0x50
8009b4c: 209a movs r0, #154 ; 0x9a
8009b4e: f7fb fb77 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009b52: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009b56: b2db uxtb r3, r3
8009b58: 461a mov r2, r3
8009b5a: 4b29 ldr r3, [pc, #164] ; (8009c00 <Display+0x38a4>)
8009b5c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009b60: 2303 movs r3, #3
8009b62: 2150 movs r1, #80 ; 0x50
8009b64: 20a1 movs r0, #161 ; 0xa1
8009b66: f7fb fb6b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009b6a: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009b6e: b2db uxtb r3, r3
8009b70: 461a mov r2, r3
8009b72: 4b23 ldr r3, [pc, #140] ; (8009c00 <Display+0x38a4>)
8009b74: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009b78: 2303 movs r3, #3
8009b7a: 2150 movs r1, #80 ; 0x50
8009b7c: 20a8 movs r0, #168 ; 0xa8
8009b7e: f7fb fb5f bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009b82: f003 bb8d b.w 800d2a0 <Display+0x6f44>
if(ipt2 == 1)
8009b86: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009b8a: b2db uxtb r3, r3
8009b8c: 2b01 cmp r3, #1
8009b8e: d141 bne.n 8009c14 <Display+0x38b8>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009b90: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009b94: b2db uxtb r3, r3
8009b96: 461a mov r2, r3
8009b98: 4b19 ldr r3, [pc, #100] ; (8009c00 <Display+0x38a4>)
8009b9a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009b9e: 2303 movs r3, #3
8009ba0: 2150 movs r1, #80 ; 0x50
8009ba2: 2093 movs r0, #147 ; 0x93
8009ba4: f7fb fb4c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009ba8: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009bac: b2db uxtb r3, r3
8009bae: 461a mov r2, r3
8009bb0: 4b13 ldr r3, [pc, #76] ; (8009c00 <Display+0x38a4>)
8009bb2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009bb6: 2303 movs r3, #3
8009bb8: 2150 movs r1, #80 ; 0x50
8009bba: 209a movs r0, #154 ; 0x9a
8009bbc: f7fb fb40 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009bc0: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009bc4: b2db uxtb r3, r3
8009bc6: 461a mov r2, r3
8009bc8: 4b0d ldr r3, [pc, #52] ; (8009c00 <Display+0x38a4>)
8009bca: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009bce: 2303 movs r3, #3
8009bd0: 2150 movs r1, #80 ; 0x50
8009bd2: 20a1 movs r0, #161 ; 0xa1
8009bd4: f7fb fb34 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE);
8009bd8: 2303 movs r3, #3
8009bda: 4a0b ldr r2, [pc, #44] ; (8009c08 <Display+0x38ac>)
8009bdc: 2150 movs r1, #80 ; 0x50
8009bde: 20a8 movs r0, #168 ; 0xa8
8009be0: f7fb fb2e bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009be4: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009be8: b2db uxtb r3, r3
8009bea: 461a mov r2, r3
8009bec: 4b04 ldr r3, [pc, #16] ; (8009c00 <Display+0x38a4>)
8009bee: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009bf2: 2303 movs r3, #3
8009bf4: 2150 movs r1, #80 ; 0x50
8009bf6: 20af movs r0, #175 ; 0xaf
8009bf8: f7fb fb22 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009bfc: f003 bb50 b.w 800d2a0 <Display+0x6f44>
8009c00: 2002084c .word 0x2002084c
8009c04: 2006b958 .word 0x2006b958
8009c08: 080183cc .word 0x080183cc
8009c0c: 20020010 .word 0x20020010
8009c10: ffd8aa57 .word 0xffd8aa57
if(ipt2 == 2)
8009c14: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009c18: b2db uxtb r3, r3
8009c1a: 2b02 cmp r3, #2
8009c1c: d137 bne.n 8009c8e <Display+0x3932>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009c1e: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009c22: b2db uxtb r3, r3
8009c24: 461a mov r2, r3
8009c26: 4bce ldr r3, [pc, #824] ; (8009f60 <Display+0x3c04>)
8009c28: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009c2c: 2303 movs r3, #3
8009c2e: 2150 movs r1, #80 ; 0x50
8009c30: 2093 movs r0, #147 ; 0x93
8009c32: f7fb fb05 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009c36: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009c3a: b2db uxtb r3, r3
8009c3c: 461a mov r2, r3
8009c3e: 4bc8 ldr r3, [pc, #800] ; (8009f60 <Display+0x3c04>)
8009c40: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009c44: 2303 movs r3, #3
8009c46: 2150 movs r1, #80 ; 0x50
8009c48: 209a movs r0, #154 ; 0x9a
8009c4a: f7fb faf9 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE);
8009c4e: 2303 movs r3, #3
8009c50: 4ac4 ldr r2, [pc, #784] ; (8009f64 <Display+0x3c08>)
8009c52: 2150 movs r1, #80 ; 0x50
8009c54: 20a1 movs r0, #161 ; 0xa1
8009c56: f7fb faf3 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009c5a: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009c5e: b2db uxtb r3, r3
8009c60: 461a mov r2, r3
8009c62: 4bbf ldr r3, [pc, #764] ; (8009f60 <Display+0x3c04>)
8009c64: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009c68: 2303 movs r3, #3
8009c6a: 2150 movs r1, #80 ; 0x50
8009c6c: 20a8 movs r0, #168 ; 0xa8
8009c6e: f7fb fae7 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009c72: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009c76: b2db uxtb r3, r3
8009c78: 461a mov r2, r3
8009c7a: 4bb9 ldr r3, [pc, #740] ; (8009f60 <Display+0x3c04>)
8009c7c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009c80: 2303 movs r3, #3
8009c82: 2150 movs r1, #80 ; 0x50
8009c84: 20af movs r0, #175 ; 0xaf
8009c86: f7fb fadb bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009c8a: f003 bb09 b.w 800d2a0 <Display+0x6f44>
if(ipt2 == 3)
8009c8e: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009c92: b2db uxtb r3, r3
8009c94: 2b03 cmp r3, #3
8009c96: d137 bne.n 8009d08 <Display+0x39ac>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009c98: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009c9c: b2db uxtb r3, r3
8009c9e: 461a mov r2, r3
8009ca0: 4baf ldr r3, [pc, #700] ; (8009f60 <Display+0x3c04>)
8009ca2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009ca6: 2303 movs r3, #3
8009ca8: 2150 movs r1, #80 ; 0x50
8009caa: 2093 movs r0, #147 ; 0x93
8009cac: f7fb fac8 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE);
8009cb0: 2303 movs r3, #3
8009cb2: 4aac ldr r2, [pc, #688] ; (8009f64 <Display+0x3c08>)
8009cb4: 2150 movs r1, #80 ; 0x50
8009cb6: 209a movs r0, #154 ; 0x9a
8009cb8: f7fb fac2 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009cbc: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009cc0: b2db uxtb r3, r3
8009cc2: 461a mov r2, r3
8009cc4: 4ba6 ldr r3, [pc, #664] ; (8009f60 <Display+0x3c04>)
8009cc6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009cca: 2303 movs r3, #3
8009ccc: 2150 movs r1, #80 ; 0x50
8009cce: 20a1 movs r0, #161 ; 0xa1
8009cd0: f7fb fab6 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009cd4: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009cd8: b2db uxtb r3, r3
8009cda: 461a mov r2, r3
8009cdc: 4ba0 ldr r3, [pc, #640] ; (8009f60 <Display+0x3c04>)
8009cde: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009ce2: 2303 movs r3, #3
8009ce4: 2150 movs r1, #80 ; 0x50
8009ce6: 20a8 movs r0, #168 ; 0xa8
8009ce8: f7fb faaa bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009cec: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009cf0: b2db uxtb r3, r3
8009cf2: 461a mov r2, r3
8009cf4: 4b9a ldr r3, [pc, #616] ; (8009f60 <Display+0x3c04>)
8009cf6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009cfa: 2303 movs r3, #3
8009cfc: 2150 movs r1, #80 ; 0x50
8009cfe: 20af movs r0, #175 ; 0xaf
8009d00: f7fb fa9e bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009d04: f003 bacc b.w 800d2a0 <Display+0x6f44>
if(ipt2 == 4)
8009d08: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009d0c: b2db uxtb r3, r3
8009d0e: 2b04 cmp r3, #4
8009d10: f043 82c6 bne.w 800d2a0 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE);
8009d14: 2303 movs r3, #3
8009d16: 4a93 ldr r2, [pc, #588] ; (8009f64 <Display+0x3c08>)
8009d18: 2150 movs r1, #80 ; 0x50
8009d1a: 2093 movs r0, #147 ; 0x93
8009d1c: f7fb fa90 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009d20: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009d24: b2db uxtb r3, r3
8009d26: 461a mov r2, r3
8009d28: 4b8d ldr r3, [pc, #564] ; (8009f60 <Display+0x3c04>)
8009d2a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009d2e: 2303 movs r3, #3
8009d30: 2150 movs r1, #80 ; 0x50
8009d32: 209a movs r0, #154 ; 0x9a
8009d34: f7fb fa84 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009d38: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009d3c: b2db uxtb r3, r3
8009d3e: 461a mov r2, r3
8009d40: 4b87 ldr r3, [pc, #540] ; (8009f60 <Display+0x3c04>)
8009d42: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009d46: 2303 movs r3, #3
8009d48: 2150 movs r1, #80 ; 0x50
8009d4a: 20a1 movs r0, #161 ; 0xa1
8009d4c: f7fb fa78 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009d50: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009d54: b2db uxtb r3, r3
8009d56: 461a mov r2, r3
8009d58: 4b81 ldr r3, [pc, #516] ; (8009f60 <Display+0x3c04>)
8009d5a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009d5e: 2303 movs r3, #3
8009d60: 2150 movs r1, #80 ; 0x50
8009d62: 20a8 movs r0, #168 ; 0xa8
8009d64: f7fb fa6c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009d68: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009d6c: b2db uxtb r3, r3
8009d6e: 461a mov r2, r3
8009d70: 4b7b ldr r3, [pc, #492] ; (8009f60 <Display+0x3c04>)
8009d72: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009d76: 2303 movs r3, #3
8009d78: 2150 movs r1, #80 ; 0x50
8009d7a: 20af movs r0, #175 ; 0xaf
8009d7c: f7fb fa60 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009d80: f003 ba8e b.w 800d2a0 <Display+0x6f44>
if(menupos == Kikt_2)
8009d84: 4b78 ldr r3, [pc, #480] ; (8009f68 <Display+0x3c0c>)
8009d86: 781b ldrb r3, [r3, #0]
8009d88: b2db uxtb r3, r3
8009d8a: 2b0b cmp r3, #11
8009d8c: f040 818b bne.w 800a0a6 <Display+0x3d4a>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8009d90: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8009d94: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8009d98: f7fb f98c bl 80050b4 <LCD_SetColors>
if(!ipt2)
8009d9c: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009da0: b2db uxtb r3, r3
8009da2: 2b00 cmp r3, #0
8009da4: d141 bne.n 8009e2a <Display+0x3ace>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009da6: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009daa: b2db uxtb r3, r3
8009dac: 461a mov r2, r3
8009dae: 4b6c ldr r3, [pc, #432] ; (8009f60 <Display+0x3c04>)
8009db0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009db4: 2303 movs r3, #3
8009db6: 2150 movs r1, #80 ; 0x50
8009db8: 208c movs r0, #140 ; 0x8c
8009dba: f7fb fa41 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8009dbe: 4b6b ldr r3, [pc, #428] ; (8009f6c <Display+0x3c10>)
8009dc0: 681b ldr r3, [r3, #0]
8009dc2: 2b00 cmp r3, #0
8009dc4: d00b beq.n 8009dde <Display+0x3a82>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009dc6: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009dca: b2db uxtb r3, r3
8009dcc: 461a mov r2, r3
8009dce: 4b64 ldr r3, [pc, #400] ; (8009f60 <Display+0x3c04>)
8009dd0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009dd4: 2303 movs r3, #3
8009dd6: 2150 movs r1, #80 ; 0x50
8009dd8: 2093 movs r0, #147 ; 0x93
8009dda: f7fb fa31 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009dde: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009de2: b2db uxtb r3, r3
8009de4: 461a mov r2, r3
8009de6: 4b5e ldr r3, [pc, #376] ; (8009f60 <Display+0x3c04>)
8009de8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009dec: 2303 movs r3, #3
8009dee: 2150 movs r1, #80 ; 0x50
8009df0: 209a movs r0, #154 ; 0x9a
8009df2: f7fb fa25 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009df6: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009dfa: b2db uxtb r3, r3
8009dfc: 461a mov r2, r3
8009dfe: 4b58 ldr r3, [pc, #352] ; (8009f60 <Display+0x3c04>)
8009e00: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009e04: 2303 movs r3, #3
8009e06: 2150 movs r1, #80 ; 0x50
8009e08: 20a1 movs r0, #161 ; 0xa1
8009e0a: f7fb fa19 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009e0e: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009e12: b2db uxtb r3, r3
8009e14: 461a mov r2, r3
8009e16: 4b52 ldr r3, [pc, #328] ; (8009f60 <Display+0x3c04>)
8009e18: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009e1c: 2303 movs r3, #3
8009e1e: 2150 movs r1, #80 ; 0x50
8009e20: 20a8 movs r0, #168 ; 0xa8
8009e22: f7fb fa0d bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009e26: f003 ba3b b.w 800d2a0 <Display+0x6f44>
if(ipt2 == 1)
8009e2a: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009e2e: b2db uxtb r3, r3
8009e30: 2b01 cmp r3, #1
8009e32: d147 bne.n 8009ec4 <Display+0x3b68>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009e34: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009e38: b2db uxtb r3, r3
8009e3a: 461a mov r2, r3
8009e3c: 4b48 ldr r3, [pc, #288] ; (8009f60 <Display+0x3c04>)
8009e3e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009e42: 2303 movs r3, #3
8009e44: 2150 movs r1, #80 ; 0x50
8009e46: 208c movs r0, #140 ; 0x8c
8009e48: f7fb f9fa bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8009e4c: 4b47 ldr r3, [pc, #284] ; (8009f6c <Display+0x3c10>)
8009e4e: 681b ldr r3, [r3, #0]
8009e50: 2b00 cmp r3, #0
8009e52: d00b beq.n 8009e6c <Display+0x3b10>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009e54: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009e58: b2db uxtb r3, r3
8009e5a: 461a mov r2, r3
8009e5c: 4b40 ldr r3, [pc, #256] ; (8009f60 <Display+0x3c04>)
8009e5e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009e62: 2303 movs r3, #3
8009e64: 2150 movs r1, #80 ; 0x50
8009e66: 2093 movs r0, #147 ; 0x93
8009e68: f7fb f9ea bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009e6c: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009e70: b2db uxtb r3, r3
8009e72: 461a mov r2, r3
8009e74: 4b3a ldr r3, [pc, #232] ; (8009f60 <Display+0x3c04>)
8009e76: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009e7a: 2303 movs r3, #3
8009e7c: 2150 movs r1, #80 ; 0x50
8009e7e: 209a movs r0, #154 ; 0x9a
8009e80: f7fb f9de bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009e84: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009e88: b2db uxtb r3, r3
8009e8a: 461a mov r2, r3
8009e8c: 4b34 ldr r3, [pc, #208] ; (8009f60 <Display+0x3c04>)
8009e8e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009e92: 2303 movs r3, #3
8009e94: 2150 movs r1, #80 ; 0x50
8009e96: 20a1 movs r0, #161 ; 0xa1
8009e98: f7fb f9d2 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE);
8009e9c: 2303 movs r3, #3
8009e9e: 4a31 ldr r2, [pc, #196] ; (8009f64 <Display+0x3c08>)
8009ea0: 2150 movs r1, #80 ; 0x50
8009ea2: 20a8 movs r0, #168 ; 0xa8
8009ea4: f7fb f9cc bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009ea8: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009eac: b2db uxtb r3, r3
8009eae: 461a mov r2, r3
8009eb0: 4b2b ldr r3, [pc, #172] ; (8009f60 <Display+0x3c04>)
8009eb2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009eb6: 2303 movs r3, #3
8009eb8: 2150 movs r1, #80 ; 0x50
8009eba: 20af movs r0, #175 ; 0xaf
8009ebc: f7fb f9c0 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009ec0: f003 b9ee b.w 800d2a0 <Display+0x6f44>
if(ipt2 == 2)
8009ec4: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009ec8: b2db uxtb r3, r3
8009eca: 2b02 cmp r3, #2
8009ecc: d150 bne.n 8009f70 <Display+0x3c14>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009ece: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009ed2: b2db uxtb r3, r3
8009ed4: 461a mov r2, r3
8009ed6: 4b22 ldr r3, [pc, #136] ; (8009f60 <Display+0x3c04>)
8009ed8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009edc: 2303 movs r3, #3
8009ede: 2150 movs r1, #80 ; 0x50
8009ee0: 208c movs r0, #140 ; 0x8c
8009ee2: f7fb f9ad bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8009ee6: 4b21 ldr r3, [pc, #132] ; (8009f6c <Display+0x3c10>)
8009ee8: 681b ldr r3, [r3, #0]
8009eea: 2b00 cmp r3, #0
8009eec: d00b beq.n 8009f06 <Display+0x3baa>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009eee: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009ef2: b2db uxtb r3, r3
8009ef4: 461a mov r2, r3
8009ef6: 4b1a ldr r3, [pc, #104] ; (8009f60 <Display+0x3c04>)
8009ef8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009efc: 2303 movs r3, #3
8009efe: 2150 movs r1, #80 ; 0x50
8009f00: 2093 movs r0, #147 ; 0x93
8009f02: f7fb f99d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009f06: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009f0a: b2db uxtb r3, r3
8009f0c: 461a mov r2, r3
8009f0e: 4b14 ldr r3, [pc, #80] ; (8009f60 <Display+0x3c04>)
8009f10: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009f14: 2303 movs r3, #3
8009f16: 2150 movs r1, #80 ; 0x50
8009f18: 209a movs r0, #154 ; 0x9a
8009f1a: f7fb f991 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE);
8009f1e: 2303 movs r3, #3
8009f20: 4a10 ldr r2, [pc, #64] ; (8009f64 <Display+0x3c08>)
8009f22: 2150 movs r1, #80 ; 0x50
8009f24: 20a1 movs r0, #161 ; 0xa1
8009f26: f7fb f98b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009f2a: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009f2e: b2db uxtb r3, r3
8009f30: 461a mov r2, r3
8009f32: 4b0b ldr r3, [pc, #44] ; (8009f60 <Display+0x3c04>)
8009f34: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009f38: 2303 movs r3, #3
8009f3a: 2150 movs r1, #80 ; 0x50
8009f3c: 20a8 movs r0, #168 ; 0xa8
8009f3e: f7fb f97f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009f42: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009f46: b2db uxtb r3, r3
8009f48: 461a mov r2, r3
8009f4a: 4b05 ldr r3, [pc, #20] ; (8009f60 <Display+0x3c04>)
8009f4c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009f50: 2303 movs r3, #3
8009f52: 2150 movs r1, #80 ; 0x50
8009f54: 20af movs r0, #175 ; 0xaf
8009f56: f7fb f973 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009f5a: f003 b9a1 b.w 800d2a0 <Display+0x6f44>
8009f5e: bf00 nop
8009f60: 2002084c .word 0x2002084c
8009f64: 080183cc .word 0x080183cc
8009f68: 20020010 .word 0x20020010
8009f6c: 2006b958 .word 0x2006b958
if(ipt2 == 3)
8009f70: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009f74: b2db uxtb r3, r3
8009f76: 2b03 cmp r3, #3
8009f78: d147 bne.n 800a00a <Display+0x3cae>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009f7a: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009f7e: b2db uxtb r3, r3
8009f80: 461a mov r2, r3
8009f82: 4bbf ldr r3, [pc, #764] ; (800a280 <Display+0x3f24>)
8009f84: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009f88: 2303 movs r3, #3
8009f8a: 2150 movs r1, #80 ; 0x50
8009f8c: 208c movs r0, #140 ; 0x8c
8009f8e: f7fb f957 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
8009f92: 4bbc ldr r3, [pc, #752] ; (800a284 <Display+0x3f28>)
8009f94: 681b ldr r3, [r3, #0]
8009f96: 2b00 cmp r3, #0
8009f98: d00b beq.n 8009fb2 <Display+0x3c56>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009f9a: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009f9e: b2db uxtb r3, r3
8009fa0: 461a mov r2, r3
8009fa2: 4bb7 ldr r3, [pc, #732] ; (800a280 <Display+0x3f24>)
8009fa4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009fa8: 2303 movs r3, #3
8009faa: 2150 movs r1, #80 ; 0x50
8009fac: 2093 movs r0, #147 ; 0x93
8009fae: f7fb f947 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE);
8009fb2: 2303 movs r3, #3
8009fb4: 4ab4 ldr r2, [pc, #720] ; (800a288 <Display+0x3f2c>)
8009fb6: 2150 movs r1, #80 ; 0x50
8009fb8: 209a movs r0, #154 ; 0x9a
8009fba: f7fb f941 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009fbe: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009fc2: b2db uxtb r3, r3
8009fc4: 461a mov r2, r3
8009fc6: 4bae ldr r3, [pc, #696] ; (800a280 <Display+0x3f24>)
8009fc8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009fcc: 2303 movs r3, #3
8009fce: 2150 movs r1, #80 ; 0x50
8009fd0: 20a1 movs r0, #161 ; 0xa1
8009fd2: f7fb f935 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009fd6: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009fda: b2db uxtb r3, r3
8009fdc: 461a mov r2, r3
8009fde: 4ba8 ldr r3, [pc, #672] ; (800a280 <Display+0x3f24>)
8009fe0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009fe4: 2303 movs r3, #3
8009fe6: 2150 movs r1, #80 ; 0x50
8009fe8: 20a8 movs r0, #168 ; 0xa8
8009fea: f7fb f929 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009fee: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009ff2: b2db uxtb r3, r3
8009ff4: 461a mov r2, r3
8009ff6: 4ba2 ldr r3, [pc, #648] ; (800a280 <Display+0x3f24>)
8009ff8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009ffc: 2303 movs r3, #3
8009ffe: 2150 movs r1, #80 ; 0x50
800a000: 20af movs r0, #175 ; 0xaf
800a002: f7fb f91d bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a006: f003 b94b b.w 800d2a0 <Display+0x6f44>
if(ipt2 == 4)
800a00a: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a00e: b2db uxtb r3, r3
800a010: 2b04 cmp r3, #4
800a012: f043 8145 bne.w 800d2a0 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a016: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a01a: b2db uxtb r3, r3
800a01c: 461a mov r2, r3
800a01e: 4b98 ldr r3, [pc, #608] ; (800a280 <Display+0x3f24>)
800a020: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a024: 2303 movs r3, #3
800a026: 2150 movs r1, #80 ; 0x50
800a028: 208c movs r0, #140 ; 0x8c
800a02a: f7fb f909 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE);
800a02e: 2303 movs r3, #3
800a030: 4a95 ldr r2, [pc, #596] ; (800a288 <Display+0x3f2c>)
800a032: 2150 movs r1, #80 ; 0x50
800a034: 2093 movs r0, #147 ; 0x93
800a036: f7fb f903 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800a03a: 4b92 ldr r3, [pc, #584] ; (800a284 <Display+0x3f28>)
800a03c: 681b ldr r3, [r3, #0]
800a03e: 2b00 cmp r3, #0
800a040: d00b beq.n 800a05a <Display+0x3cfe>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a042: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a046: b2db uxtb r3, r3
800a048: 461a mov r2, r3
800a04a: 4b8d ldr r3, [pc, #564] ; (800a280 <Display+0x3f24>)
800a04c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a050: 2303 movs r3, #3
800a052: 2150 movs r1, #80 ; 0x50
800a054: 209a movs r0, #154 ; 0x9a
800a056: f7fb f8f3 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a05a: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a05e: b2db uxtb r3, r3
800a060: 461a mov r2, r3
800a062: 4b87 ldr r3, [pc, #540] ; (800a280 <Display+0x3f24>)
800a064: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a068: 2303 movs r3, #3
800a06a: 2150 movs r1, #80 ; 0x50
800a06c: 20a1 movs r0, #161 ; 0xa1
800a06e: f7fb f8e7 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a072: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a076: b2db uxtb r3, r3
800a078: 461a mov r2, r3
800a07a: 4b81 ldr r3, [pc, #516] ; (800a280 <Display+0x3f24>)
800a07c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a080: 2303 movs r3, #3
800a082: 2150 movs r1, #80 ; 0x50
800a084: 20a8 movs r0, #168 ; 0xa8
800a086: f7fb f8db bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a08a: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a08e: b2db uxtb r3, r3
800a090: 461a mov r2, r3
800a092: 4b7b ldr r3, [pc, #492] ; (800a280 <Display+0x3f24>)
800a094: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a098: 2303 movs r3, #3
800a09a: 2150 movs r1, #80 ; 0x50
800a09c: 20af movs r0, #175 ; 0xaf
800a09e: f7fb f8cf bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a0a2: f003 b8fd b.w 800d2a0 <Display+0x6f44>
if(menupos == Kiks_2)
800a0a6: 4b79 ldr r3, [pc, #484] ; (800a28c <Display+0x3f30>)
800a0a8: 781b ldrb r3, [r3, #0]
800a0aa: b2db uxtb r3, r3
800a0ac: 2b0c cmp r3, #12
800a0ae: f040 818a bne.w 800a3c6 <Display+0x406a>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800a0b2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800a0b6: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800a0ba: f7fa fffb bl 80050b4 <LCD_SetColors>
if(!ipt2)
800a0be: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a0c2: b2db uxtb r3, r3
800a0c4: 2b00 cmp r3, #0
800a0c6: d141 bne.n 800a14c <Display+0x3df0>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a0c8: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a0cc: b2db uxtb r3, r3
800a0ce: 461a mov r2, r3
800a0d0: 4b6b ldr r3, [pc, #428] ; (800a280 <Display+0x3f24>)
800a0d2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a0d6: 2303 movs r3, #3
800a0d8: 2150 movs r1, #80 ; 0x50
800a0da: 208c movs r0, #140 ; 0x8c
800a0dc: f7fb f8b0 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a0e0: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a0e4: b2db uxtb r3, r3
800a0e6: 461a mov r2, r3
800a0e8: 4b65 ldr r3, [pc, #404] ; (800a280 <Display+0x3f24>)
800a0ea: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a0ee: 2303 movs r3, #3
800a0f0: 2150 movs r1, #80 ; 0x50
800a0f2: 2093 movs r0, #147 ; 0x93
800a0f4: f7fb f8a4 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800a0f8: 4b62 ldr r3, [pc, #392] ; (800a284 <Display+0x3f28>)
800a0fa: 681b ldr r3, [r3, #0]
800a0fc: 2b00 cmp r3, #0
800a0fe: d00b beq.n 800a118 <Display+0x3dbc>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a100: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a104: b2db uxtb r3, r3
800a106: 461a mov r2, r3
800a108: 4b5d ldr r3, [pc, #372] ; (800a280 <Display+0x3f24>)
800a10a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a10e: 2303 movs r3, #3
800a110: 2150 movs r1, #80 ; 0x50
800a112: 209a movs r0, #154 ; 0x9a
800a114: f7fb f894 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a118: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a11c: b2db uxtb r3, r3
800a11e: 461a mov r2, r3
800a120: 4b57 ldr r3, [pc, #348] ; (800a280 <Display+0x3f24>)
800a122: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a126: 2303 movs r3, #3
800a128: 2150 movs r1, #80 ; 0x50
800a12a: 20a1 movs r0, #161 ; 0xa1
800a12c: f7fb f888 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a130: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a134: b2db uxtb r3, r3
800a136: 461a mov r2, r3
800a138: 4b51 ldr r3, [pc, #324] ; (800a280 <Display+0x3f24>)
800a13a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a13e: 2303 movs r3, #3
800a140: 2150 movs r1, #80 ; 0x50
800a142: 20a8 movs r0, #168 ; 0xa8
800a144: f7fb f87c bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a148: f003 b8aa b.w 800d2a0 <Display+0x6f44>
if(ipt2 == 1)
800a14c: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a150: b2db uxtb r3, r3
800a152: 2b01 cmp r3, #1
800a154: d147 bne.n 800a1e6 <Display+0x3e8a>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a156: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a15a: b2db uxtb r3, r3
800a15c: 461a mov r2, r3
800a15e: 4b48 ldr r3, [pc, #288] ; (800a280 <Display+0x3f24>)
800a160: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a164: 2303 movs r3, #3
800a166: 2150 movs r1, #80 ; 0x50
800a168: 208c movs r0, #140 ; 0x8c
800a16a: f7fb f869 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a16e: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a172: b2db uxtb r3, r3
800a174: 461a mov r2, r3
800a176: 4b42 ldr r3, [pc, #264] ; (800a280 <Display+0x3f24>)
800a178: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a17c: 2303 movs r3, #3
800a17e: 2150 movs r1, #80 ; 0x50
800a180: 2093 movs r0, #147 ; 0x93
800a182: f7fb f85d bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800a186: 4b3f ldr r3, [pc, #252] ; (800a284 <Display+0x3f28>)
800a188: 681b ldr r3, [r3, #0]
800a18a: 2b00 cmp r3, #0
800a18c: d00b beq.n 800a1a6 <Display+0x3e4a>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a18e: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a192: b2db uxtb r3, r3
800a194: 461a mov r2, r3
800a196: 4b3a ldr r3, [pc, #232] ; (800a280 <Display+0x3f24>)
800a198: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a19c: 2303 movs r3, #3
800a19e: 2150 movs r1, #80 ; 0x50
800a1a0: 209a movs r0, #154 ; 0x9a
800a1a2: f7fb f84d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a1a6: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a1aa: b2db uxtb r3, r3
800a1ac: 461a mov r2, r3
800a1ae: 4b34 ldr r3, [pc, #208] ; (800a280 <Display+0x3f24>)
800a1b0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a1b4: 2303 movs r3, #3
800a1b6: 2150 movs r1, #80 ; 0x50
800a1b8: 20a1 movs r0, #161 ; 0xa1
800a1ba: f7fb f841 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE);
800a1be: 2303 movs r3, #3
800a1c0: 4a31 ldr r2, [pc, #196] ; (800a288 <Display+0x3f2c>)
800a1c2: 2150 movs r1, #80 ; 0x50
800a1c4: 20a8 movs r0, #168 ; 0xa8
800a1c6: f7fb f83b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a1ca: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a1ce: b2db uxtb r3, r3
800a1d0: 461a mov r2, r3
800a1d2: 4b2b ldr r3, [pc, #172] ; (800a280 <Display+0x3f24>)
800a1d4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a1d8: 2303 movs r3, #3
800a1da: 2150 movs r1, #80 ; 0x50
800a1dc: 20af movs r0, #175 ; 0xaf
800a1de: f7fb f82f bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a1e2: f003 b85d b.w 800d2a0 <Display+0x6f44>
if(ipt2 == 2)
800a1e6: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a1ea: b2db uxtb r3, r3
800a1ec: 2b02 cmp r3, #2
800a1ee: d14f bne.n 800a290 <Display+0x3f34>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a1f0: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a1f4: b2db uxtb r3, r3
800a1f6: 461a mov r2, r3
800a1f8: 4b21 ldr r3, [pc, #132] ; (800a280 <Display+0x3f24>)
800a1fa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a1fe: 2303 movs r3, #3
800a200: 2150 movs r1, #80 ; 0x50
800a202: 208c movs r0, #140 ; 0x8c
800a204: f7fb f81c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a208: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a20c: b2db uxtb r3, r3
800a20e: 461a mov r2, r3
800a210: 4b1b ldr r3, [pc, #108] ; (800a280 <Display+0x3f24>)
800a212: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a216: 2303 movs r3, #3
800a218: 2150 movs r1, #80 ; 0x50
800a21a: 2093 movs r0, #147 ; 0x93
800a21c: f7fb f810 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800a220: 4b18 ldr r3, [pc, #96] ; (800a284 <Display+0x3f28>)
800a222: 681b ldr r3, [r3, #0]
800a224: 2b00 cmp r3, #0
800a226: d00b beq.n 800a240 <Display+0x3ee4>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a228: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a22c: b2db uxtb r3, r3
800a22e: 461a mov r2, r3
800a230: 4b13 ldr r3, [pc, #76] ; (800a280 <Display+0x3f24>)
800a232: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a236: 2303 movs r3, #3
800a238: 2150 movs r1, #80 ; 0x50
800a23a: 209a movs r0, #154 ; 0x9a
800a23c: f7fb f800 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE);
800a240: 2303 movs r3, #3
800a242: 4a11 ldr r2, [pc, #68] ; (800a288 <Display+0x3f2c>)
800a244: 2150 movs r1, #80 ; 0x50
800a246: 20a1 movs r0, #161 ; 0xa1
800a248: f7fa fffa bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a24c: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a250: b2db uxtb r3, r3
800a252: 461a mov r2, r3
800a254: 4b0a ldr r3, [pc, #40] ; (800a280 <Display+0x3f24>)
800a256: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a25a: 2303 movs r3, #3
800a25c: 2150 movs r1, #80 ; 0x50
800a25e: 20a8 movs r0, #168 ; 0xa8
800a260: f7fa ffee bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a264: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a268: b2db uxtb r3, r3
800a26a: 461a mov r2, r3
800a26c: 4b04 ldr r3, [pc, #16] ; (800a280 <Display+0x3f24>)
800a26e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a272: 2303 movs r3, #3
800a274: 2150 movs r1, #80 ; 0x50
800a276: 20af movs r0, #175 ; 0xaf
800a278: f7fa ffe2 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a27c: f003 b810 b.w 800d2a0 <Display+0x6f44>
800a280: 2002084c .word 0x2002084c
800a284: 2006b958 .word 0x2006b958
800a288: 080183cc .word 0x080183cc
800a28c: 20020010 .word 0x20020010
if(ipt2 == 3)
800a290: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a294: b2db uxtb r3, r3
800a296: 2b03 cmp r3, #3
800a298: d147 bne.n 800a32a <Display+0x3fce>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a29a: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a29e: b2db uxtb r3, r3
800a2a0: 461a mov r2, r3
800a2a2: 4bbf ldr r3, [pc, #764] ; (800a5a0 <Display+0x4244>)
800a2a4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a2a8: 2303 movs r3, #3
800a2aa: 2150 movs r1, #80 ; 0x50
800a2ac: 208c movs r0, #140 ; 0x8c
800a2ae: f7fa ffc7 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a2b2: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a2b6: b2db uxtb r3, r3
800a2b8: 461a mov r2, r3
800a2ba: 4bb9 ldr r3, [pc, #740] ; (800a5a0 <Display+0x4244>)
800a2bc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a2c0: 2303 movs r3, #3
800a2c2: 2150 movs r1, #80 ; 0x50
800a2c4: 2093 movs r0, #147 ; 0x93
800a2c6: f7fa ffbb bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE);
800a2ca: 2303 movs r3, #3
800a2cc: 4ab5 ldr r2, [pc, #724] ; (800a5a4 <Display+0x4248>)
800a2ce: 2150 movs r1, #80 ; 0x50
800a2d0: 209a movs r0, #154 ; 0x9a
800a2d2: f7fa ffb5 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800a2d6: 4bb4 ldr r3, [pc, #720] ; (800a5a8 <Display+0x424c>)
800a2d8: 681b ldr r3, [r3, #0]
800a2da: 2b00 cmp r3, #0
800a2dc: d00b beq.n 800a2f6 <Display+0x3f9a>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a2de: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a2e2: b2db uxtb r3, r3
800a2e4: 461a mov r2, r3
800a2e6: 4bae ldr r3, [pc, #696] ; (800a5a0 <Display+0x4244>)
800a2e8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a2ec: 2303 movs r3, #3
800a2ee: 2150 movs r1, #80 ; 0x50
800a2f0: 20a1 movs r0, #161 ; 0xa1
800a2f2: f7fa ffa5 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a2f6: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a2fa: b2db uxtb r3, r3
800a2fc: 461a mov r2, r3
800a2fe: 4ba8 ldr r3, [pc, #672] ; (800a5a0 <Display+0x4244>)
800a300: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a304: 2303 movs r3, #3
800a306: 2150 movs r1, #80 ; 0x50
800a308: 20a8 movs r0, #168 ; 0xa8
800a30a: f7fa ff99 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a30e: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a312: b2db uxtb r3, r3
800a314: 461a mov r2, r3
800a316: 4ba2 ldr r3, [pc, #648] ; (800a5a0 <Display+0x4244>)
800a318: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a31c: 2303 movs r3, #3
800a31e: 2150 movs r1, #80 ; 0x50
800a320: 20af movs r0, #175 ; 0xaf
800a322: f7fa ff8d bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a326: f002 bfbb b.w 800d2a0 <Display+0x6f44>
if(ipt2 == 4)
800a32a: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a32e: b2db uxtb r3, r3
800a330: 2b04 cmp r3, #4
800a332: f042 87b5 bne.w 800d2a0 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a336: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a33a: b2db uxtb r3, r3
800a33c: 461a mov r2, r3
800a33e: 4b98 ldr r3, [pc, #608] ; (800a5a0 <Display+0x4244>)
800a340: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a344: 2303 movs r3, #3
800a346: 2150 movs r1, #80 ; 0x50
800a348: 208c movs r0, #140 ; 0x8c
800a34a: f7fa ff79 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE);
800a34e: 2303 movs r3, #3
800a350: 4a94 ldr r2, [pc, #592] ; (800a5a4 <Display+0x4248>)
800a352: 2150 movs r1, #80 ; 0x50
800a354: 2093 movs r0, #147 ; 0x93
800a356: f7fa ff73 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a35a: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a35e: b2db uxtb r3, r3
800a360: 461a mov r2, r3
800a362: 4b8f ldr r3, [pc, #572] ; (800a5a0 <Display+0x4244>)
800a364: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a368: 2303 movs r3, #3
800a36a: 2150 movs r1, #80 ; 0x50
800a36c: 209a movs r0, #154 ; 0x9a
800a36e: f7fa ff67 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800a372: 4b8d ldr r3, [pc, #564] ; (800a5a8 <Display+0x424c>)
800a374: 681b ldr r3, [r3, #0]
800a376: 2b00 cmp r3, #0
800a378: d00b beq.n 800a392 <Display+0x4036>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a37a: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a37e: b2db uxtb r3, r3
800a380: 461a mov r2, r3
800a382: 4b87 ldr r3, [pc, #540] ; (800a5a0 <Display+0x4244>)
800a384: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a388: 2303 movs r3, #3
800a38a: 2150 movs r1, #80 ; 0x50
800a38c: 20a1 movs r0, #161 ; 0xa1
800a38e: f7fa ff57 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a392: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a396: b2db uxtb r3, r3
800a398: 461a mov r2, r3
800a39a: 4b81 ldr r3, [pc, #516] ; (800a5a0 <Display+0x4244>)
800a39c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a3a0: 2303 movs r3, #3
800a3a2: 2150 movs r1, #80 ; 0x50
800a3a4: 20a8 movs r0, #168 ; 0xa8
800a3a6: f7fa ff4b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a3aa: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a3ae: b2db uxtb r3, r3
800a3b0: 461a mov r2, r3
800a3b2: 4b7b ldr r3, [pc, #492] ; (800a5a0 <Display+0x4244>)
800a3b4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a3b8: 2303 movs r3, #3
800a3ba: 2150 movs r1, #80 ; 0x50
800a3bc: 20af movs r0, #175 ; 0xaf
800a3be: f7fa ff3f bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a3c2: f002 bf6d b.w 800d2a0 <Display+0x6f44>
if(menupos == Kikd_2)
800a3c6: 4b79 ldr r3, [pc, #484] ; (800a5ac <Display+0x4250>)
800a3c8: 781b ldrb r3, [r3, #0]
800a3ca: b2db uxtb r3, r3
800a3cc: 2b0d cmp r3, #13
800a3ce: f040 818a bne.w 800a6e6 <Display+0x438a>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800a3d2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800a3d6: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800a3da: f7fa fe6b bl 80050b4 <LCD_SetColors>
if(!ipt2)
800a3de: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a3e2: b2db uxtb r3, r3
800a3e4: 2b00 cmp r3, #0
800a3e6: d141 bne.n 800a46c <Display+0x4110>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a3e8: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a3ec: b2db uxtb r3, r3
800a3ee: 461a mov r2, r3
800a3f0: 4b6b ldr r3, [pc, #428] ; (800a5a0 <Display+0x4244>)
800a3f2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a3f6: 2303 movs r3, #3
800a3f8: 2150 movs r1, #80 ; 0x50
800a3fa: 208c movs r0, #140 ; 0x8c
800a3fc: f7fa ff20 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a400: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a404: b2db uxtb r3, r3
800a406: 461a mov r2, r3
800a408: 4b65 ldr r3, [pc, #404] ; (800a5a0 <Display+0x4244>)
800a40a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a40e: 2303 movs r3, #3
800a410: 2150 movs r1, #80 ; 0x50
800a412: 2093 movs r0, #147 ; 0x93
800a414: f7fa ff14 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a418: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a41c: b2db uxtb r3, r3
800a41e: 461a mov r2, r3
800a420: 4b5f ldr r3, [pc, #380] ; (800a5a0 <Display+0x4244>)
800a422: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a426: 2303 movs r3, #3
800a428: 2150 movs r1, #80 ; 0x50
800a42a: 209a movs r0, #154 ; 0x9a
800a42c: f7fa ff08 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800a430: 4b5d ldr r3, [pc, #372] ; (800a5a8 <Display+0x424c>)
800a432: 681b ldr r3, [r3, #0]
800a434: 2b00 cmp r3, #0
800a436: d00b beq.n 800a450 <Display+0x40f4>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a438: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a43c: b2db uxtb r3, r3
800a43e: 461a mov r2, r3
800a440: 4b57 ldr r3, [pc, #348] ; (800a5a0 <Display+0x4244>)
800a442: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a446: 2303 movs r3, #3
800a448: 2150 movs r1, #80 ; 0x50
800a44a: 20a1 movs r0, #161 ; 0xa1
800a44c: f7fa fef8 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a450: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a454: b2db uxtb r3, r3
800a456: 461a mov r2, r3
800a458: 4b51 ldr r3, [pc, #324] ; (800a5a0 <Display+0x4244>)
800a45a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a45e: 2303 movs r3, #3
800a460: 2150 movs r1, #80 ; 0x50
800a462: 20a8 movs r0, #168 ; 0xa8
800a464: f7fa feec bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a468: f002 bf1a b.w 800d2a0 <Display+0x6f44>
if(ipt2 == 1)
800a46c: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a470: b2db uxtb r3, r3
800a472: 2b01 cmp r3, #1
800a474: d147 bne.n 800a506 <Display+0x41aa>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a476: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a47a: b2db uxtb r3, r3
800a47c: 461a mov r2, r3
800a47e: 4b48 ldr r3, [pc, #288] ; (800a5a0 <Display+0x4244>)
800a480: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a484: 2303 movs r3, #3
800a486: 2150 movs r1, #80 ; 0x50
800a488: 208c movs r0, #140 ; 0x8c
800a48a: f7fa fed9 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a48e: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a492: b2db uxtb r3, r3
800a494: 461a mov r2, r3
800a496: 4b42 ldr r3, [pc, #264] ; (800a5a0 <Display+0x4244>)
800a498: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a49c: 2303 movs r3, #3
800a49e: 2150 movs r1, #80 ; 0x50
800a4a0: 2093 movs r0, #147 ; 0x93
800a4a2: f7fa fecd bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a4a6: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a4aa: b2db uxtb r3, r3
800a4ac: 461a mov r2, r3
800a4ae: 4b3c ldr r3, [pc, #240] ; (800a5a0 <Display+0x4244>)
800a4b0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a4b4: 2303 movs r3, #3
800a4b6: 2150 movs r1, #80 ; 0x50
800a4b8: 209a movs r0, #154 ; 0x9a
800a4ba: f7fa fec1 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800a4be: 4b3a ldr r3, [pc, #232] ; (800a5a8 <Display+0x424c>)
800a4c0: 681b ldr r3, [r3, #0]
800a4c2: 2b00 cmp r3, #0
800a4c4: d00b beq.n 800a4de <Display+0x4182>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a4c6: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a4ca: b2db uxtb r3, r3
800a4cc: 461a mov r2, r3
800a4ce: 4b34 ldr r3, [pc, #208] ; (800a5a0 <Display+0x4244>)
800a4d0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a4d4: 2303 movs r3, #3
800a4d6: 2150 movs r1, #80 ; 0x50
800a4d8: 20a1 movs r0, #161 ; 0xa1
800a4da: f7fa feb1 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE);
800a4de: 2303 movs r3, #3
800a4e0: 4a30 ldr r2, [pc, #192] ; (800a5a4 <Display+0x4248>)
800a4e2: 2150 movs r1, #80 ; 0x50
800a4e4: 20a8 movs r0, #168 ; 0xa8
800a4e6: f7fa feab bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a4ea: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a4ee: b2db uxtb r3, r3
800a4f0: 461a mov r2, r3
800a4f2: 4b2b ldr r3, [pc, #172] ; (800a5a0 <Display+0x4244>)
800a4f4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a4f8: 2303 movs r3, #3
800a4fa: 2150 movs r1, #80 ; 0x50
800a4fc: 20af movs r0, #175 ; 0xaf
800a4fe: f7fa fe9f bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a502: f002 becd b.w 800d2a0 <Display+0x6f44>
if(ipt2 == 2)
800a506: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a50a: b2db uxtb r3, r3
800a50c: 2b02 cmp r3, #2
800a50e: d14f bne.n 800a5b0 <Display+0x4254>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a510: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a514: b2db uxtb r3, r3
800a516: 461a mov r2, r3
800a518: 4b21 ldr r3, [pc, #132] ; (800a5a0 <Display+0x4244>)
800a51a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a51e: 2303 movs r3, #3
800a520: 2150 movs r1, #80 ; 0x50
800a522: 208c movs r0, #140 ; 0x8c
800a524: f7fa fe8c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a528: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a52c: b2db uxtb r3, r3
800a52e: 461a mov r2, r3
800a530: 4b1b ldr r3, [pc, #108] ; (800a5a0 <Display+0x4244>)
800a532: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a536: 2303 movs r3, #3
800a538: 2150 movs r1, #80 ; 0x50
800a53a: 2093 movs r0, #147 ; 0x93
800a53c: f7fa fe80 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a540: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a544: b2db uxtb r3, r3
800a546: 461a mov r2, r3
800a548: 4b15 ldr r3, [pc, #84] ; (800a5a0 <Display+0x4244>)
800a54a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a54e: 2303 movs r3, #3
800a550: 2150 movs r1, #80 ; 0x50
800a552: 209a movs r0, #154 ; 0x9a
800a554: f7fa fe74 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE);
800a558: 2303 movs r3, #3
800a55a: 4a12 ldr r2, [pc, #72] ; (800a5a4 <Display+0x4248>)
800a55c: 2150 movs r1, #80 ; 0x50
800a55e: 20a1 movs r0, #161 ; 0xa1
800a560: f7fa fe6e bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800a564: 4b10 ldr r3, [pc, #64] ; (800a5a8 <Display+0x424c>)
800a566: 681b ldr r3, [r3, #0]
800a568: 2b00 cmp r3, #0
800a56a: d00b beq.n 800a584 <Display+0x4228>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a56c: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a570: b2db uxtb r3, r3
800a572: 461a mov r2, r3
800a574: 4b0a ldr r3, [pc, #40] ; (800a5a0 <Display+0x4244>)
800a576: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a57a: 2303 movs r3, #3
800a57c: 2150 movs r1, #80 ; 0x50
800a57e: 20a8 movs r0, #168 ; 0xa8
800a580: f7fa fe5e bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a584: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a588: b2db uxtb r3, r3
800a58a: 461a mov r2, r3
800a58c: 4b04 ldr r3, [pc, #16] ; (800a5a0 <Display+0x4244>)
800a58e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a592: 2303 movs r3, #3
800a594: 2150 movs r1, #80 ; 0x50
800a596: 20af movs r0, #175 ; 0xaf
800a598: f7fa fe52 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a59c: f002 be80 b.w 800d2a0 <Display+0x6f44>
800a5a0: 2002084c .word 0x2002084c
800a5a4: 080183cc .word 0x080183cc
800a5a8: 2006b958 .word 0x2006b958
800a5ac: 20020010 .word 0x20020010
if(ipt2 == 3)
800a5b0: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a5b4: b2db uxtb r3, r3
800a5b6: 2b03 cmp r3, #3
800a5b8: d147 bne.n 800a64a <Display+0x42ee>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a5ba: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a5be: b2db uxtb r3, r3
800a5c0: 461a mov r2, r3
800a5c2: 4bc1 ldr r3, [pc, #772] ; (800a8c8 <Display+0x456c>)
800a5c4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a5c8: 2303 movs r3, #3
800a5ca: 2150 movs r1, #80 ; 0x50
800a5cc: 208c movs r0, #140 ; 0x8c
800a5ce: f7fa fe37 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a5d2: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a5d6: b2db uxtb r3, r3
800a5d8: 461a mov r2, r3
800a5da: 4bbb ldr r3, [pc, #748] ; (800a8c8 <Display+0x456c>)
800a5dc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a5e0: 2303 movs r3, #3
800a5e2: 2150 movs r1, #80 ; 0x50
800a5e4: 2093 movs r0, #147 ; 0x93
800a5e6: f7fa fe2b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE);
800a5ea: 2303 movs r3, #3
800a5ec: 4ab7 ldr r2, [pc, #732] ; (800a8cc <Display+0x4570>)
800a5ee: 2150 movs r1, #80 ; 0x50
800a5f0: 209a movs r0, #154 ; 0x9a
800a5f2: f7fa fe25 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a5f6: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a5fa: b2db uxtb r3, r3
800a5fc: 461a mov r2, r3
800a5fe: 4bb2 ldr r3, [pc, #712] ; (800a8c8 <Display+0x456c>)
800a600: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a604: 2303 movs r3, #3
800a606: 2150 movs r1, #80 ; 0x50
800a608: 20a1 movs r0, #161 ; 0xa1
800a60a: f7fa fe19 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800a60e: 4bb0 ldr r3, [pc, #704] ; (800a8d0 <Display+0x4574>)
800a610: 681b ldr r3, [r3, #0]
800a612: 2b00 cmp r3, #0
800a614: d00b beq.n 800a62e <Display+0x42d2>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a616: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a61a: b2db uxtb r3, r3
800a61c: 461a mov r2, r3
800a61e: 4baa ldr r3, [pc, #680] ; (800a8c8 <Display+0x456c>)
800a620: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a624: 2303 movs r3, #3
800a626: 2150 movs r1, #80 ; 0x50
800a628: 20a8 movs r0, #168 ; 0xa8
800a62a: f7fa fe09 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a62e: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a632: b2db uxtb r3, r3
800a634: 461a mov r2, r3
800a636: 4ba4 ldr r3, [pc, #656] ; (800a8c8 <Display+0x456c>)
800a638: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a63c: 2303 movs r3, #3
800a63e: 2150 movs r1, #80 ; 0x50
800a640: 20af movs r0, #175 ; 0xaf
800a642: f7fa fdfd bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a646: f002 be2b b.w 800d2a0 <Display+0x6f44>
if(ipt2 == 4)
800a64a: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a64e: b2db uxtb r3, r3
800a650: 2b04 cmp r3, #4
800a652: f042 8625 bne.w 800d2a0 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a656: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a65a: b2db uxtb r3, r3
800a65c: 461a mov r2, r3
800a65e: 4b9a ldr r3, [pc, #616] ; (800a8c8 <Display+0x456c>)
800a660: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a664: 2303 movs r3, #3
800a666: 2150 movs r1, #80 ; 0x50
800a668: 208c movs r0, #140 ; 0x8c
800a66a: f7fa fde9 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE);
800a66e: 2303 movs r3, #3
800a670: 4a96 ldr r2, [pc, #600] ; (800a8cc <Display+0x4570>)
800a672: 2150 movs r1, #80 ; 0x50
800a674: 2093 movs r0, #147 ; 0x93
800a676: f7fa fde3 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a67a: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a67e: b2db uxtb r3, r3
800a680: 461a mov r2, r3
800a682: 4b91 ldr r3, [pc, #580] ; (800a8c8 <Display+0x456c>)
800a684: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a688: 2303 movs r3, #3
800a68a: 2150 movs r1, #80 ; 0x50
800a68c: 209a movs r0, #154 ; 0x9a
800a68e: f7fa fdd7 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a692: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a696: b2db uxtb r3, r3
800a698: 461a mov r2, r3
800a69a: 4b8b ldr r3, [pc, #556] ; (800a8c8 <Display+0x456c>)
800a69c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a6a0: 2303 movs r3, #3
800a6a2: 2150 movs r1, #80 ; 0x50
800a6a4: 20a1 movs r0, #161 ; 0xa1
800a6a6: f7fa fdcb bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800a6aa: 4b89 ldr r3, [pc, #548] ; (800a8d0 <Display+0x4574>)
800a6ac: 681b ldr r3, [r3, #0]
800a6ae: 2b00 cmp r3, #0
800a6b0: d00b beq.n 800a6ca <Display+0x436e>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a6b2: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a6b6: b2db uxtb r3, r3
800a6b8: 461a mov r2, r3
800a6ba: 4b83 ldr r3, [pc, #524] ; (800a8c8 <Display+0x456c>)
800a6bc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a6c0: 2303 movs r3, #3
800a6c2: 2150 movs r1, #80 ; 0x50
800a6c4: 20a8 movs r0, #168 ; 0xa8
800a6c6: f7fa fdbb bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a6ca: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a6ce: b2db uxtb r3, r3
800a6d0: 461a mov r2, r3
800a6d2: 4b7d ldr r3, [pc, #500] ; (800a8c8 <Display+0x456c>)
800a6d4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a6d8: 2303 movs r3, #3
800a6da: 2150 movs r1, #80 ; 0x50
800a6dc: 20af movs r0, #175 ; 0xaf
800a6de: f7fa fdaf bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a6e2: f002 bddd b.w 800d2a0 <Display+0x6f44>
if(menupos == Kike_2)
800a6e6: 4b7b ldr r3, [pc, #492] ; (800a8d4 <Display+0x4578>)
800a6e8: 781b ldrb r3, [r3, #0]
800a6ea: b2db uxtb r3, r3
800a6ec: 2b0e cmp r3, #14
800a6ee: f040 8190 bne.w 800aa12 <Display+0x46b6>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800a6f2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800a6f6: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800a6fa: f7fa fcdb bl 80050b4 <LCD_SetColors>
if(!ipt2)
800a6fe: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a702: b2db uxtb r3, r3
800a704: 2b00 cmp r3, #0
800a706: d142 bne.n 800a78e <Display+0x4432>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a708: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a70c: b2db uxtb r3, r3
800a70e: 461a mov r2, r3
800a710: 4b6d ldr r3, [pc, #436] ; (800a8c8 <Display+0x456c>)
800a712: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a716: 2303 movs r3, #3
800a718: 2150 movs r1, #80 ; 0x50
800a71a: 208c movs r0, #140 ; 0x8c
800a71c: f7fa fd90 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a720: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a724: b2db uxtb r3, r3
800a726: 461a mov r2, r3
800a728: 4b67 ldr r3, [pc, #412] ; (800a8c8 <Display+0x456c>)
800a72a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a72e: 2303 movs r3, #3
800a730: 2150 movs r1, #80 ; 0x50
800a732: 2093 movs r0, #147 ; 0x93
800a734: f7fa fd84 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a738: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a73c: b2db uxtb r3, r3
800a73e: 461a mov r2, r3
800a740: 4b61 ldr r3, [pc, #388] ; (800a8c8 <Display+0x456c>)
800a742: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a746: 2303 movs r3, #3
800a748: 2150 movs r1, #80 ; 0x50
800a74a: 209a movs r0, #154 ; 0x9a
800a74c: f7fa fd78 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a750: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a754: b2db uxtb r3, r3
800a756: 461a mov r2, r3
800a758: 4b5b ldr r3, [pc, #364] ; (800a8c8 <Display+0x456c>)
800a75a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a75e: 2303 movs r3, #3
800a760: 2150 movs r1, #80 ; 0x50
800a762: 20a1 movs r0, #161 ; 0xa1
800a764: f7fa fd6c bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800a768: 4b59 ldr r3, [pc, #356] ; (800a8d0 <Display+0x4574>)
800a76a: 681b ldr r3, [r3, #0]
800a76c: 2b00 cmp r3, #0
800a76e: f002 8597 beq.w 800d2a0 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a772: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a776: b2db uxtb r3, r3
800a778: 461a mov r2, r3
800a77a: 4b53 ldr r3, [pc, #332] ; (800a8c8 <Display+0x456c>)
800a77c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a780: 2303 movs r3, #3
800a782: 2150 movs r1, #80 ; 0x50
800a784: 20a8 movs r0, #168 ; 0xa8
800a786: f7fa fd5b bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a78a: f002 bd89 b.w 800d2a0 <Display+0x6f44>
if(ipt2 == 1)
800a78e: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a792: b2db uxtb r3, r3
800a794: 2b01 cmp r3, #1
800a796: d148 bne.n 800a82a <Display+0x44ce>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a798: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a79c: b2db uxtb r3, r3
800a79e: 461a mov r2, r3
800a7a0: 4b49 ldr r3, [pc, #292] ; (800a8c8 <Display+0x456c>)
800a7a2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a7a6: 2303 movs r3, #3
800a7a8: 2150 movs r1, #80 ; 0x50
800a7aa: 208c movs r0, #140 ; 0x8c
800a7ac: f7fa fd48 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a7b0: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a7b4: b2db uxtb r3, r3
800a7b6: 461a mov r2, r3
800a7b8: 4b43 ldr r3, [pc, #268] ; (800a8c8 <Display+0x456c>)
800a7ba: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a7be: 2303 movs r3, #3
800a7c0: 2150 movs r1, #80 ; 0x50
800a7c2: 2093 movs r0, #147 ; 0x93
800a7c4: f7fa fd3c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a7c8: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a7cc: b2db uxtb r3, r3
800a7ce: 461a mov r2, r3
800a7d0: 4b3d ldr r3, [pc, #244] ; (800a8c8 <Display+0x456c>)
800a7d2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a7d6: 2303 movs r3, #3
800a7d8: 2150 movs r1, #80 ; 0x50
800a7da: 209a movs r0, #154 ; 0x9a
800a7dc: f7fa fd30 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a7e0: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a7e4: b2db uxtb r3, r3
800a7e6: 461a mov r2, r3
800a7e8: 4b37 ldr r3, [pc, #220] ; (800a8c8 <Display+0x456c>)
800a7ea: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a7ee: 2303 movs r3, #3
800a7f0: 2150 movs r1, #80 ; 0x50
800a7f2: 20a1 movs r0, #161 ; 0xa1
800a7f4: f7fa fd24 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE);
800a7f8: 2303 movs r3, #3
800a7fa: 4a34 ldr r2, [pc, #208] ; (800a8cc <Display+0x4570>)
800a7fc: 2150 movs r1, #80 ; 0x50
800a7fe: 20a8 movs r0, #168 ; 0xa8
800a800: f7fa fd1e bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800a804: 4b32 ldr r3, [pc, #200] ; (800a8d0 <Display+0x4574>)
800a806: 681b ldr r3, [r3, #0]
800a808: 2b00 cmp r3, #0
800a80a: f002 8549 beq.w 800d2a0 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a80e: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a812: b2db uxtb r3, r3
800a814: 461a mov r2, r3
800a816: 4b2c ldr r3, [pc, #176] ; (800a8c8 <Display+0x456c>)
800a818: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a81c: 2303 movs r3, #3
800a81e: 2150 movs r1, #80 ; 0x50
800a820: 20af movs r0, #175 ; 0xaf
800a822: f7fa fd0d bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a826: f002 bd3b b.w 800d2a0 <Display+0x6f44>
if(ipt2 == 2)
800a82a: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a82e: b2db uxtb r3, r3
800a830: 2b02 cmp r3, #2
800a832: d151 bne.n 800a8d8 <Display+0x457c>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a834: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a838: b2db uxtb r3, r3
800a83a: 461a mov r2, r3
800a83c: 4b22 ldr r3, [pc, #136] ; (800a8c8 <Display+0x456c>)
800a83e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a842: 2303 movs r3, #3
800a844: 2150 movs r1, #80 ; 0x50
800a846: 208c movs r0, #140 ; 0x8c
800a848: f7fa fcfa bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a84c: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a850: b2db uxtb r3, r3
800a852: 461a mov r2, r3
800a854: 4b1c ldr r3, [pc, #112] ; (800a8c8 <Display+0x456c>)
800a856: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a85a: 2303 movs r3, #3
800a85c: 2150 movs r1, #80 ; 0x50
800a85e: 2093 movs r0, #147 ; 0x93
800a860: f7fa fcee bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a864: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a868: b2db uxtb r3, r3
800a86a: 461a mov r2, r3
800a86c: 4b16 ldr r3, [pc, #88] ; (800a8c8 <Display+0x456c>)
800a86e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a872: 2303 movs r3, #3
800a874: 2150 movs r1, #80 ; 0x50
800a876: 209a movs r0, #154 ; 0x9a
800a878: f7fa fce2 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE);
800a87c: 2303 movs r3, #3
800a87e: 4a13 ldr r2, [pc, #76] ; (800a8cc <Display+0x4570>)
800a880: 2150 movs r1, #80 ; 0x50
800a882: 20a1 movs r0, #161 ; 0xa1
800a884: f7fa fcdc bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a888: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a88c: b2db uxtb r3, r3
800a88e: 461a mov r2, r3
800a890: 4b0d ldr r3, [pc, #52] ; (800a8c8 <Display+0x456c>)
800a892: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a896: 2303 movs r3, #3
800a898: 2150 movs r1, #80 ; 0x50
800a89a: 20a8 movs r0, #168 ; 0xa8
800a89c: f7fa fcd0 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800a8a0: 4b0b ldr r3, [pc, #44] ; (800a8d0 <Display+0x4574>)
800a8a2: 681b ldr r3, [r3, #0]
800a8a4: 2b00 cmp r3, #0
800a8a6: f002 84fb beq.w 800d2a0 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a8aa: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a8ae: b2db uxtb r3, r3
800a8b0: 461a mov r2, r3
800a8b2: 4b05 ldr r3, [pc, #20] ; (800a8c8 <Display+0x456c>)
800a8b4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a8b8: 2303 movs r3, #3
800a8ba: 2150 movs r1, #80 ; 0x50
800a8bc: 20af movs r0, #175 ; 0xaf
800a8be: f7fa fcbf bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a8c2: f002 bced b.w 800d2a0 <Display+0x6f44>
800a8c6: bf00 nop
800a8c8: 2002084c .word 0x2002084c
800a8cc: 080183cc .word 0x080183cc
800a8d0: 2006b958 .word 0x2006b958
800a8d4: 20020010 .word 0x20020010
if(ipt2 == 3)
800a8d8: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a8dc: b2db uxtb r3, r3
800a8de: 2b03 cmp r3, #3
800a8e0: d148 bne.n 800a974 <Display+0x4618>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a8e2: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a8e6: b2db uxtb r3, r3
800a8e8: 461a mov r2, r3
800a8ea: 4bc4 ldr r3, [pc, #784] ; (800abfc <Display+0x48a0>)
800a8ec: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a8f0: 2303 movs r3, #3
800a8f2: 2150 movs r1, #80 ; 0x50
800a8f4: 208c movs r0, #140 ; 0x8c
800a8f6: f7fa fca3 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a8fa: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a8fe: b2db uxtb r3, r3
800a900: 461a mov r2, r3
800a902: 4bbe ldr r3, [pc, #760] ; (800abfc <Display+0x48a0>)
800a904: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a908: 2303 movs r3, #3
800a90a: 2150 movs r1, #80 ; 0x50
800a90c: 2093 movs r0, #147 ; 0x93
800a90e: f7fa fc97 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE);
800a912: 2303 movs r3, #3
800a914: 4aba ldr r2, [pc, #744] ; (800ac00 <Display+0x48a4>)
800a916: 2150 movs r1, #80 ; 0x50
800a918: 209a movs r0, #154 ; 0x9a
800a91a: f7fa fc91 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a91e: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a922: b2db uxtb r3, r3
800a924: 461a mov r2, r3
800a926: 4bb5 ldr r3, [pc, #724] ; (800abfc <Display+0x48a0>)
800a928: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a92c: 2303 movs r3, #3
800a92e: 2150 movs r1, #80 ; 0x50
800a930: 20a1 movs r0, #161 ; 0xa1
800a932: f7fa fc85 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a936: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a93a: b2db uxtb r3, r3
800a93c: 461a mov r2, r3
800a93e: 4baf ldr r3, [pc, #700] ; (800abfc <Display+0x48a0>)
800a940: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a944: 2303 movs r3, #3
800a946: 2150 movs r1, #80 ; 0x50
800a948: 20a8 movs r0, #168 ; 0xa8
800a94a: f7fa fc79 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800a94e: 4bad ldr r3, [pc, #692] ; (800ac04 <Display+0x48a8>)
800a950: 681b ldr r3, [r3, #0]
800a952: 2b00 cmp r3, #0
800a954: f002 84a4 beq.w 800d2a0 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a958: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a95c: b2db uxtb r3, r3
800a95e: 461a mov r2, r3
800a960: 4ba6 ldr r3, [pc, #664] ; (800abfc <Display+0x48a0>)
800a962: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a966: 2303 movs r3, #3
800a968: 2150 movs r1, #80 ; 0x50
800a96a: 20af movs r0, #175 ; 0xaf
800a96c: f7fa fc68 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a970: f002 bc96 b.w 800d2a0 <Display+0x6f44>
if(ipt2 == 4)
800a974: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a978: b2db uxtb r3, r3
800a97a: 2b04 cmp r3, #4
800a97c: f042 8490 bne.w 800d2a0 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a980: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a984: b2db uxtb r3, r3
800a986: 461a mov r2, r3
800a988: 4b9c ldr r3, [pc, #624] ; (800abfc <Display+0x48a0>)
800a98a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a98e: 2303 movs r3, #3
800a990: 2150 movs r1, #80 ; 0x50
800a992: 208c movs r0, #140 ; 0x8c
800a994: f7fa fc54 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE);
800a998: 2303 movs r3, #3
800a99a: 4a99 ldr r2, [pc, #612] ; (800ac00 <Display+0x48a4>)
800a99c: 2150 movs r1, #80 ; 0x50
800a99e: 2093 movs r0, #147 ; 0x93
800a9a0: f7fa fc4e bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a9a4: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a9a8: b2db uxtb r3, r3
800a9aa: 461a mov r2, r3
800a9ac: 4b93 ldr r3, [pc, #588] ; (800abfc <Display+0x48a0>)
800a9ae: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a9b2: 2303 movs r3, #3
800a9b4: 2150 movs r1, #80 ; 0x50
800a9b6: 209a movs r0, #154 ; 0x9a
800a9b8: f7fa fc42 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a9bc: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a9c0: b2db uxtb r3, r3
800a9c2: 461a mov r2, r3
800a9c4: 4b8d ldr r3, [pc, #564] ; (800abfc <Display+0x48a0>)
800a9c6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a9ca: 2303 movs r3, #3
800a9cc: 2150 movs r1, #80 ; 0x50
800a9ce: 20a1 movs r0, #161 ; 0xa1
800a9d0: f7fa fc36 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a9d4: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a9d8: b2db uxtb r3, r3
800a9da: 461a mov r2, r3
800a9dc: 4b87 ldr r3, [pc, #540] ; (800abfc <Display+0x48a0>)
800a9de: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a9e2: 2303 movs r3, #3
800a9e4: 2150 movs r1, #80 ; 0x50
800a9e6: 20a8 movs r0, #168 ; 0xa8
800a9e8: f7fa fc2a bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800a9ec: 4b85 ldr r3, [pc, #532] ; (800ac04 <Display+0x48a8>)
800a9ee: 681b ldr r3, [r3, #0]
800a9f0: 2b00 cmp r3, #0
800a9f2: f002 8455 beq.w 800d2a0 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a9f6: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a9fa: b2db uxtb r3, r3
800a9fc: 461a mov r2, r3
800a9fe: 4b7f ldr r3, [pc, #508] ; (800abfc <Display+0x48a0>)
800aa00: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aa04: 2303 movs r3, #3
800aa06: 2150 movs r1, #80 ; 0x50
800aa08: 20af movs r0, #175 ; 0xaf
800aa0a: f7fa fc19 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800aa0e: f002 bc47 b.w 800d2a0 <Display+0x6f44>
if(menupos == Kpt_2)
800aa12: 4b7d ldr r3, [pc, #500] ; (800ac08 <Display+0x48ac>)
800aa14: 781b ldrb r3, [r3, #0]
800aa16: b2db uxtb r3, r3
800aa18: 2b0f cmp r3, #15
800aa1a: f042 8441 bne.w 800d2a0 <Display+0x6f44>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800aa1e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800aa22: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800aa26: f7fa fb45 bl 80050b4 <LCD_SetColors>
if(!ipt2)
800aa2a: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800aa2e: b2db uxtb r3, r3
800aa30: 2b00 cmp r3, #0
800aa32: d148 bne.n 800aac6 <Display+0x476a>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800aa34: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800aa38: b2db uxtb r3, r3
800aa3a: 461a mov r2, r3
800aa3c: 4b6f ldr r3, [pc, #444] ; (800abfc <Display+0x48a0>)
800aa3e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aa42: 2303 movs r3, #3
800aa44: 2150 movs r1, #80 ; 0x50
800aa46: 208c movs r0, #140 ; 0x8c
800aa48: f7fa fbfa bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800aa4c: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800aa50: b2db uxtb r3, r3
800aa52: 461a mov r2, r3
800aa54: 4b69 ldr r3, [pc, #420] ; (800abfc <Display+0x48a0>)
800aa56: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aa5a: 2303 movs r3, #3
800aa5c: 2150 movs r1, #80 ; 0x50
800aa5e: 2093 movs r0, #147 ; 0x93
800aa60: f7fa fbee bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800aa64: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800aa68: b2db uxtb r3, r3
800aa6a: 461a mov r2, r3
800aa6c: 4b63 ldr r3, [pc, #396] ; (800abfc <Display+0x48a0>)
800aa6e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aa72: 2303 movs r3, #3
800aa74: 2150 movs r1, #80 ; 0x50
800aa76: 209a movs r0, #154 ; 0x9a
800aa78: f7fa fbe2 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
800aa7c: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800aa80: b2db uxtb r3, r3
800aa82: 461a mov r2, r3
800aa84: 4b5d ldr r3, [pc, #372] ; (800abfc <Display+0x48a0>)
800aa86: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aa8a: 2303 movs r3, #3
800aa8c: 2150 movs r1, #80 ; 0x50
800aa8e: 20a1 movs r0, #161 ; 0xa1
800aa90: f7fa fbd6 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE);
800aa94: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800aa98: b2db uxtb r3, r3
800aa9a: 461a mov r2, r3
800aa9c: 4b57 ldr r3, [pc, #348] ; (800abfc <Display+0x48a0>)
800aa9e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aaa2: 2303 movs r3, #3
800aaa4: 2150 movs r1, #80 ; 0x50
800aaa6: 20a8 movs r0, #168 ; 0xa8
800aaa8: f7fa fbca bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800aaac: 4b55 ldr r3, [pc, #340] ; (800ac04 <Display+0x48a8>)
800aaae: 681b ldr r3, [r3, #0]
800aab0: 2b00 cmp r3, #0
800aab2: f002 83f5 beq.w 800d2a0 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140+35, 80, ".", LEFT_MODE);
800aab6: 2303 movs r3, #3
800aab8: 4a51 ldr r2, [pc, #324] ; (800ac00 <Display+0x48a4>)
800aaba: 2150 movs r1, #80 ; 0x50
800aabc: 20af movs r0, #175 ; 0xaf
800aabe: f7fa fbbf bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800aac2: f002 bbed b.w 800d2a0 <Display+0x6f44>
if(ipt2 == 1)
800aac6: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800aaca: b2db uxtb r3, r3
800aacc: 2b01 cmp r3, #1
800aace: d147 bne.n 800ab60 <Display+0x4804>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800aad0: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800aad4: b2db uxtb r3, r3
800aad6: 461a mov r2, r3
800aad8: 4b48 ldr r3, [pc, #288] ; (800abfc <Display+0x48a0>)
800aada: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aade: 2303 movs r3, #3
800aae0: 2150 movs r1, #80 ; 0x50
800aae2: 208c movs r0, #140 ; 0x8c
800aae4: f7fa fbac bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800aae8: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800aaec: b2db uxtb r3, r3
800aaee: 461a mov r2, r3
800aaf0: 4b42 ldr r3, [pc, #264] ; (800abfc <Display+0x48a0>)
800aaf2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aaf6: 2303 movs r3, #3
800aaf8: 2150 movs r1, #80 ; 0x50
800aafa: 2093 movs r0, #147 ; 0x93
800aafc: f7fa fba0 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800ab00: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800ab04: b2db uxtb r3, r3
800ab06: 461a mov r2, r3
800ab08: 4b3c ldr r3, [pc, #240] ; (800abfc <Display+0x48a0>)
800ab0a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ab0e: 2303 movs r3, #3
800ab10: 2150 movs r1, #80 ; 0x50
800ab12: 209a movs r0, #154 ; 0x9a
800ab14: f7fa fb94 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
800ab18: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800ab1c: b2db uxtb r3, r3
800ab1e: 461a mov r2, r3
800ab20: 4b36 ldr r3, [pc, #216] ; (800abfc <Display+0x48a0>)
800ab22: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ab26: 2303 movs r3, #3
800ab28: 2150 movs r1, #80 ; 0x50
800ab2a: 20a1 movs r0, #161 ; 0xa1
800ab2c: f7fa fb88 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800ab30: 4b34 ldr r3, [pc, #208] ; (800ac04 <Display+0x48a8>)
800ab32: 681b ldr r3, [r3, #0]
800ab34: 2b00 cmp r3, #0
800ab36: d005 beq.n 800ab44 <Display+0x47e8>
BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE);
800ab38: 2303 movs r3, #3
800ab3a: 4a31 ldr r2, [pc, #196] ; (800ac00 <Display+0x48a4>)
800ab3c: 2150 movs r1, #80 ; 0x50
800ab3e: 20a8 movs r0, #168 ; 0xa8
800ab40: f7fa fb7e bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800ab44: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800ab48: b2db uxtb r3, r3
800ab4a: 461a mov r2, r3
800ab4c: 4b2b ldr r3, [pc, #172] ; (800abfc <Display+0x48a0>)
800ab4e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ab52: 2303 movs r3, #3
800ab54: 2150 movs r1, #80 ; 0x50
800ab56: 20af movs r0, #175 ; 0xaf
800ab58: f7fa fb72 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800ab5c: f002 bba0 b.w 800d2a0 <Display+0x6f44>
if(ipt2 == 2)
800ab60: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800ab64: b2db uxtb r3, r3
800ab66: 2b02 cmp r3, #2
800ab68: d150 bne.n 800ac0c <Display+0x48b0>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800ab6a: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800ab6e: b2db uxtb r3, r3
800ab70: 461a mov r2, r3
800ab72: 4b22 ldr r3, [pc, #136] ; (800abfc <Display+0x48a0>)
800ab74: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ab78: 2303 movs r3, #3
800ab7a: 2150 movs r1, #80 ; 0x50
800ab7c: 208c movs r0, #140 ; 0x8c
800ab7e: f7fa fb5f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800ab82: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800ab86: b2db uxtb r3, r3
800ab88: 461a mov r2, r3
800ab8a: 4b1c ldr r3, [pc, #112] ; (800abfc <Display+0x48a0>)
800ab8c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ab90: 2303 movs r3, #3
800ab92: 2150 movs r1, #80 ; 0x50
800ab94: 2093 movs r0, #147 ; 0x93
800ab96: f7fa fb53 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800ab9a: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800ab9e: b2db uxtb r3, r3
800aba0: 461a mov r2, r3
800aba2: 4b16 ldr r3, [pc, #88] ; (800abfc <Display+0x48a0>)
800aba4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aba8: 2303 movs r3, #3
800abaa: 2150 movs r1, #80 ; 0x50
800abac: 209a movs r0, #154 ; 0x9a
800abae: f7fa fb47 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800abb2: 4b14 ldr r3, [pc, #80] ; (800ac04 <Display+0x48a8>)
800abb4: 681b ldr r3, [r3, #0]
800abb6: 2b00 cmp r3, #0
800abb8: d005 beq.n 800abc6 <Display+0x486a>
BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE);
800abba: 2303 movs r3, #3
800abbc: 4a10 ldr r2, [pc, #64] ; (800ac00 <Display+0x48a4>)
800abbe: 2150 movs r1, #80 ; 0x50
800abc0: 20a1 movs r0, #161 ; 0xa1
800abc2: f7fa fb3d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800abc6: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800abca: b2db uxtb r3, r3
800abcc: 461a mov r2, r3
800abce: 4b0b ldr r3, [pc, #44] ; (800abfc <Display+0x48a0>)
800abd0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800abd4: 2303 movs r3, #3
800abd6: 2150 movs r1, #80 ; 0x50
800abd8: 20a8 movs r0, #168 ; 0xa8
800abda: f7fa fb31 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800abde: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800abe2: b2db uxtb r3, r3
800abe4: 461a mov r2, r3
800abe6: 4b05 ldr r3, [pc, #20] ; (800abfc <Display+0x48a0>)
800abe8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800abec: 2303 movs r3, #3
800abee: 2150 movs r1, #80 ; 0x50
800abf0: 20af movs r0, #175 ; 0xaf
800abf2: f7fa fb25 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800abf6: f002 bb53 b.w 800d2a0 <Display+0x6f44>
800abfa: bf00 nop
800abfc: 2002084c .word 0x2002084c
800ac00: 080183cc .word 0x080183cc
800ac04: 2006b958 .word 0x2006b958
800ac08: 20020010 .word 0x20020010
if(ipt2 == 3)
800ac0c: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800ac10: b2db uxtb r3, r3
800ac12: 2b03 cmp r3, #3
800ac14: d147 bne.n 800aca6 <Display+0x494a>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800ac16: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800ac1a: b2db uxtb r3, r3
800ac1c: 461a mov r2, r3
800ac1e: 4bc2 ldr r3, [pc, #776] ; (800af28 <Display+0x4bcc>)
800ac20: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ac24: 2303 movs r3, #3
800ac26: 2150 movs r1, #80 ; 0x50
800ac28: 208c movs r0, #140 ; 0x8c
800ac2a: f7fa fb09 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800ac2e: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800ac32: b2db uxtb r3, r3
800ac34: 461a mov r2, r3
800ac36: 4bbc ldr r3, [pc, #752] ; (800af28 <Display+0x4bcc>)
800ac38: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ac3c: 2303 movs r3, #3
800ac3e: 2150 movs r1, #80 ; 0x50
800ac40: 2093 movs r0, #147 ; 0x93
800ac42: f7fa fafd bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800ac46: 4bb9 ldr r3, [pc, #740] ; (800af2c <Display+0x4bd0>)
800ac48: 681b ldr r3, [r3, #0]
800ac4a: 2b00 cmp r3, #0
800ac4c: d005 beq.n 800ac5a <Display+0x48fe>
BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE);
800ac4e: 2303 movs r3, #3
800ac50: 4ab7 ldr r2, [pc, #732] ; (800af30 <Display+0x4bd4>)
800ac52: 2150 movs r1, #80 ; 0x50
800ac54: 209a movs r0, #154 ; 0x9a
800ac56: f7fa faf3 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800ac5a: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800ac5e: b2db uxtb r3, r3
800ac60: 461a mov r2, r3
800ac62: 4bb1 ldr r3, [pc, #708] ; (800af28 <Display+0x4bcc>)
800ac64: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ac68: 2303 movs r3, #3
800ac6a: 2150 movs r1, #80 ; 0x50
800ac6c: 20a1 movs r0, #161 ; 0xa1
800ac6e: f7fa fae7 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800ac72: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800ac76: b2db uxtb r3, r3
800ac78: 461a mov r2, r3
800ac7a: 4bab ldr r3, [pc, #684] ; (800af28 <Display+0x4bcc>)
800ac7c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ac80: 2303 movs r3, #3
800ac82: 2150 movs r1, #80 ; 0x50
800ac84: 20a8 movs r0, #168 ; 0xa8
800ac86: f7fa fadb bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800ac8a: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800ac8e: b2db uxtb r3, r3
800ac90: 461a mov r2, r3
800ac92: 4ba5 ldr r3, [pc, #660] ; (800af28 <Display+0x4bcc>)
800ac94: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ac98: 2303 movs r3, #3
800ac9a: 2150 movs r1, #80 ; 0x50
800ac9c: 20af movs r0, #175 ; 0xaf
800ac9e: f7fa facf bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800aca2: f002 bafd b.w 800d2a0 <Display+0x6f44>
if(ipt2 == 4)
800aca6: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800acaa: b2db uxtb r3, r3
800acac: 2b04 cmp r3, #4
800acae: f042 82f7 bne.w 800d2a0 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800acb2: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800acb6: b2db uxtb r3, r3
800acb8: 461a mov r2, r3
800acba: 4b9b ldr r3, [pc, #620] ; (800af28 <Display+0x4bcc>)
800acbc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800acc0: 2303 movs r3, #3
800acc2: 2150 movs r1, #80 ; 0x50
800acc4: 208c movs r0, #140 ; 0x8c
800acc6: f7fa fabb bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800acca: 4b98 ldr r3, [pc, #608] ; (800af2c <Display+0x4bd0>)
800accc: 681b ldr r3, [r3, #0]
800acce: 2b00 cmp r3, #0
800acd0: d005 beq.n 800acde <Display+0x4982>
BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE);
800acd2: 2303 movs r3, #3
800acd4: 4a96 ldr r2, [pc, #600] ; (800af30 <Display+0x4bd4>)
800acd6: 2150 movs r1, #80 ; 0x50
800acd8: 2093 movs r0, #147 ; 0x93
800acda: f7fa fab1 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE);
800acde: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800ace2: b2db uxtb r3, r3
800ace4: 461a mov r2, r3
800ace6: 4b90 ldr r3, [pc, #576] ; (800af28 <Display+0x4bcc>)
800ace8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800acec: 2303 movs r3, #3
800acee: 2150 movs r1, #80 ; 0x50
800acf0: 209a movs r0, #154 ; 0x9a
800acf2: f7fa faa5 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800acf6: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800acfa: b2db uxtb r3, r3
800acfc: 461a mov r2, r3
800acfe: 4b8a ldr r3, [pc, #552] ; (800af28 <Display+0x4bcc>)
800ad00: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ad04: 2303 movs r3, #3
800ad06: 2150 movs r1, #80 ; 0x50
800ad08: 20a1 movs r0, #161 ; 0xa1
800ad0a: f7fa fa99 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800ad0e: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800ad12: b2db uxtb r3, r3
800ad14: 461a mov r2, r3
800ad16: 4b84 ldr r3, [pc, #528] ; (800af28 <Display+0x4bcc>)
800ad18: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ad1c: 2303 movs r3, #3
800ad1e: 2150 movs r1, #80 ; 0x50
800ad20: 20a8 movs r0, #168 ; 0xa8
800ad22: f7fa fa8d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800ad26: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800ad2a: b2db uxtb r3, r3
800ad2c: 461a mov r2, r3
800ad2e: 4b7e ldr r3, [pc, #504] ; (800af28 <Display+0x4bcc>)
800ad30: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ad34: 2303 movs r3, #3
800ad36: 2150 movs r1, #80 ; 0x50
800ad38: 20af movs r0, #175 ; 0xaf
800ad3a: f7fa fa81 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800ad3e: f002 baaf b.w 800d2a0 <Display+0x6f44>
if(menupos >= Kikdt_3 && menupos <= Kpt_3)
800ad42: 4b7c ldr r3, [pc, #496] ; (800af34 <Display+0x4bd8>)
800ad44: 781b ldrb r3, [r3, #0]
800ad46: b2db uxtb r3, r3
800ad48: 2b11 cmp r3, #17
800ad4a: f241 8150 bls.w 800bfee <Display+0x5c92>
800ad4e: 4b79 ldr r3, [pc, #484] ; (800af34 <Display+0x4bd8>)
800ad50: 781b ldrb r3, [r3, #0]
800ad52: b2db uxtb r3, r3
800ad54: 2b17 cmp r3, #23
800ad56: f201 814a bhi.w 800bfee <Display+0x5c92>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800ad5a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800ad5e: 4876 ldr r0, [pc, #472] ; (800af38 <Display+0x4bdc>)
800ad60: f7fa f9a8 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
800ad64: f507 728e add.w r2, r7, #284 ; 0x11c
800ad68: 2303 movs r3, #3
800ad6a: 213c movs r1, #60 ; 0x3c
800ad6c: 208c movs r0, #140 ; 0x8c
800ad6e: f7fa fa67 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
800ad72: f107 02e0 add.w r2, r7, #224 ; 0xe0
800ad76: 2303 movs r3, #3
800ad78: 2150 movs r1, #80 ; 0x50
800ad7a: 208c movs r0, #140 ; 0x8c
800ad7c: f7fa fa60 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
800ad80: f107 0268 add.w r2, r7, #104 ; 0x68
800ad84: 2303 movs r3, #3
800ad86: 2178 movs r1, #120 ; 0x78
800ad88: 208c movs r0, #140 ; 0x8c
800ad8a: f7fa fa59 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800ad8e: 4b69 ldr r3, [pc, #420] ; (800af34 <Display+0x4bd8>)
800ad90: 781b ldrb r3, [r3, #0]
800ad92: b2db uxtb r3, r3
800ad94: 2b12 cmp r3, #18
800ad96: f040 814c bne.w 800b032 <Display+0x4cd6>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800ad9a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800ad9e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800ada2: f7fa f987 bl 80050b4 <LCD_SetColors>
if(blk)
800ada6: 4b61 ldr r3, [pc, #388] ; (800af2c <Display+0x4bd0>)
800ada8: 681b ldr r3, [r3, #0]
800adaa: 2b00 cmp r3, #0
800adac: d00b beq.n 800adc6 <Display+0x4a6a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800adae: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800adb2: b2db uxtb r3, r3
800adb4: 461a mov r2, r3
800adb6: 4b5c ldr r3, [pc, #368] ; (800af28 <Display+0x4bcc>)
800adb8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800adbc: 2303 movs r3, #3
800adbe: 2164 movs r1, #100 ; 0x64
800adc0: 208c movs r0, #140 ; 0x8c
800adc2: f7fa fa3d bl 8005240 <BSP_LCD_DisplayStringAt>
if(!ipt3)
800adc6: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800adca: b2db uxtb r3, r3
800adcc: 2b00 cmp r3, #0
800adce: d131 bne.n 800ae34 <Display+0x4ad8>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800add0: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800add4: b2db uxtb r3, r3
800add6: 461a mov r2, r3
800add8: 4b53 ldr r3, [pc, #332] ; (800af28 <Display+0x4bcc>)
800adda: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800adde: 2303 movs r3, #3
800ade0: 2164 movs r1, #100 ; 0x64
800ade2: 2093 movs r0, #147 ; 0x93
800ade4: f7fa fa2c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800ade8: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800adec: b2db uxtb r3, r3
800adee: 461a mov r2, r3
800adf0: 4b4d ldr r3, [pc, #308] ; (800af28 <Display+0x4bcc>)
800adf2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800adf6: 2303 movs r3, #3
800adf8: 2164 movs r1, #100 ; 0x64
800adfa: 209a movs r0, #154 ; 0x9a
800adfc: f7fa fa20 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800ae00: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800ae04: b2db uxtb r3, r3
800ae06: 461a mov r2, r3
800ae08: 4b47 ldr r3, [pc, #284] ; (800af28 <Display+0x4bcc>)
800ae0a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ae0e: 2303 movs r3, #3
800ae10: 2164 movs r1, #100 ; 0x64
800ae12: 20a1 movs r0, #161 ; 0xa1
800ae14: f7fa fa14 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE);
800ae18: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800ae1c: b2db uxtb r3, r3
800ae1e: 461a mov r2, r3
800ae20: 4b41 ldr r3, [pc, #260] ; (800af28 <Display+0x4bcc>)
800ae22: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ae26: 2303 movs r3, #3
800ae28: 2164 movs r1, #100 ; 0x64
800ae2a: 20a8 movs r0, #168 ; 0xa8
800ae2c: f7fa fa08 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800ae30: f002 ba39 b.w 800d2a6 <Display+0x6f4a>
if(ipt3 == 1)
800ae34: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800ae38: b2db uxtb r3, r3
800ae3a: 2b01 cmp r3, #1
800ae3c: d137 bne.n 800aeae <Display+0x4b52>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800ae3e: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800ae42: b2db uxtb r3, r3
800ae44: 461a mov r2, r3
800ae46: 4b38 ldr r3, [pc, #224] ; (800af28 <Display+0x4bcc>)
800ae48: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ae4c: 2303 movs r3, #3
800ae4e: 2164 movs r1, #100 ; 0x64
800ae50: 2093 movs r0, #147 ; 0x93
800ae52: f7fa f9f5 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800ae56: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800ae5a: b2db uxtb r3, r3
800ae5c: 461a mov r2, r3
800ae5e: 4b32 ldr r3, [pc, #200] ; (800af28 <Display+0x4bcc>)
800ae60: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ae64: 2303 movs r3, #3
800ae66: 2164 movs r1, #100 ; 0x64
800ae68: 209a movs r0, #154 ; 0x9a
800ae6a: f7fa f9e9 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800ae6e: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800ae72: b2db uxtb r3, r3
800ae74: 461a mov r2, r3
800ae76: 4b2c ldr r3, [pc, #176] ; (800af28 <Display+0x4bcc>)
800ae78: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ae7c: 2303 movs r3, #3
800ae7e: 2164 movs r1, #100 ; 0x64
800ae80: 20a1 movs r0, #161 ; 0xa1
800ae82: f7fa f9dd bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE);
800ae86: 2303 movs r3, #3
800ae88: 4a29 ldr r2, [pc, #164] ; (800af30 <Display+0x4bd4>)
800ae8a: 2164 movs r1, #100 ; 0x64
800ae8c: 20a8 movs r0, #168 ; 0xa8
800ae8e: f7fa f9d7 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800ae92: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800ae96: b2db uxtb r3, r3
800ae98: 461a mov r2, r3
800ae9a: 4b23 ldr r3, [pc, #140] ; (800af28 <Display+0x4bcc>)
800ae9c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aea0: 2303 movs r3, #3
800aea2: 2164 movs r1, #100 ; 0x64
800aea4: 20af movs r0, #175 ; 0xaf
800aea6: f7fa f9cb bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800aeaa: f002 b9fc b.w 800d2a6 <Display+0x6f4a>
if(ipt3 == 2)
800aeae: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800aeb2: b2db uxtb r3, r3
800aeb4: 2b02 cmp r3, #2
800aeb6: d141 bne.n 800af3c <Display+0x4be0>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800aeb8: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800aebc: b2db uxtb r3, r3
800aebe: 461a mov r2, r3
800aec0: 4b19 ldr r3, [pc, #100] ; (800af28 <Display+0x4bcc>)
800aec2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aec6: 2303 movs r3, #3
800aec8: 2164 movs r1, #100 ; 0x64
800aeca: 2093 movs r0, #147 ; 0x93
800aecc: f7fa f9b8 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800aed0: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800aed4: b2db uxtb r3, r3
800aed6: 461a mov r2, r3
800aed8: 4b13 ldr r3, [pc, #76] ; (800af28 <Display+0x4bcc>)
800aeda: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aede: 2303 movs r3, #3
800aee0: 2164 movs r1, #100 ; 0x64
800aee2: 209a movs r0, #154 ; 0x9a
800aee4: f7fa f9ac bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE);
800aee8: 2303 movs r3, #3
800aeea: 4a11 ldr r2, [pc, #68] ; (800af30 <Display+0x4bd4>)
800aeec: 2164 movs r1, #100 ; 0x64
800aeee: 20a1 movs r0, #161 ; 0xa1
800aef0: f7fa f9a6 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800aef4: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800aef8: b2db uxtb r3, r3
800aefa: 461a mov r2, r3
800aefc: 4b0a ldr r3, [pc, #40] ; (800af28 <Display+0x4bcc>)
800aefe: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800af02: 2303 movs r3, #3
800af04: 2164 movs r1, #100 ; 0x64
800af06: 20a8 movs r0, #168 ; 0xa8
800af08: f7fa f99a bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800af0c: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800af10: b2db uxtb r3, r3
800af12: 461a mov r2, r3
800af14: 4b04 ldr r3, [pc, #16] ; (800af28 <Display+0x4bcc>)
800af16: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800af1a: 2303 movs r3, #3
800af1c: 2164 movs r1, #100 ; 0x64
800af1e: 20af movs r0, #175 ; 0xaf
800af20: f7fa f98e bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800af24: f002 b9bf b.w 800d2a6 <Display+0x6f4a>
800af28: 2002084c .word 0x2002084c
800af2c: 2006b958 .word 0x2006b958
800af30: 080183cc .word 0x080183cc
800af34: 20020010 .word 0x20020010
800af38: ffd8aa57 .word 0xffd8aa57
if(ipt3 == 3)
800af3c: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800af40: b2db uxtb r3, r3
800af42: 2b03 cmp r3, #3
800af44: d137 bne.n 800afb6 <Display+0x4c5a>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800af46: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800af4a: b2db uxtb r3, r3
800af4c: 461a mov r2, r3
800af4e: 4baf ldr r3, [pc, #700] ; (800b20c <Display+0x4eb0>)
800af50: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800af54: 2303 movs r3, #3
800af56: 2164 movs r1, #100 ; 0x64
800af58: 2093 movs r0, #147 ; 0x93
800af5a: f7fa f971 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE);
800af5e: 2303 movs r3, #3
800af60: 4aab ldr r2, [pc, #684] ; (800b210 <Display+0x4eb4>)
800af62: 2164 movs r1, #100 ; 0x64
800af64: 209a movs r0, #154 ; 0x9a
800af66: f7fa f96b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800af6a: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800af6e: b2db uxtb r3, r3
800af70: 461a mov r2, r3
800af72: 4ba6 ldr r3, [pc, #664] ; (800b20c <Display+0x4eb0>)
800af74: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800af78: 2303 movs r3, #3
800af7a: 2164 movs r1, #100 ; 0x64
800af7c: 20a1 movs r0, #161 ; 0xa1
800af7e: f7fa f95f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800af82: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800af86: b2db uxtb r3, r3
800af88: 461a mov r2, r3
800af8a: 4ba0 ldr r3, [pc, #640] ; (800b20c <Display+0x4eb0>)
800af8c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800af90: 2303 movs r3, #3
800af92: 2164 movs r1, #100 ; 0x64
800af94: 20a8 movs r0, #168 ; 0xa8
800af96: f7fa f953 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800af9a: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800af9e: b2db uxtb r3, r3
800afa0: 461a mov r2, r3
800afa2: 4b9a ldr r3, [pc, #616] ; (800b20c <Display+0x4eb0>)
800afa4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800afa8: 2303 movs r3, #3
800afaa: 2164 movs r1, #100 ; 0x64
800afac: 20af movs r0, #175 ; 0xaf
800afae: f7fa f947 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800afb2: f002 b978 b.w 800d2a6 <Display+0x6f4a>
if(ipt3 == 4)
800afb6: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800afba: b2db uxtb r3, r3
800afbc: 2b04 cmp r3, #4
800afbe: f042 8172 bne.w 800d2a6 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE);
800afc2: 2303 movs r3, #3
800afc4: 4a92 ldr r2, [pc, #584] ; (800b210 <Display+0x4eb4>)
800afc6: 2164 movs r1, #100 ; 0x64
800afc8: 2093 movs r0, #147 ; 0x93
800afca: f7fa f939 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE);
800afce: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800afd2: b2db uxtb r3, r3
800afd4: 461a mov r2, r3
800afd6: 4b8d ldr r3, [pc, #564] ; (800b20c <Display+0x4eb0>)
800afd8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800afdc: 2303 movs r3, #3
800afde: 2164 movs r1, #100 ; 0x64
800afe0: 209a movs r0, #154 ; 0x9a
800afe2: f7fa f92d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800afe6: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800afea: b2db uxtb r3, r3
800afec: 461a mov r2, r3
800afee: 4b87 ldr r3, [pc, #540] ; (800b20c <Display+0x4eb0>)
800aff0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aff4: 2303 movs r3, #3
800aff6: 2164 movs r1, #100 ; 0x64
800aff8: 20a1 movs r0, #161 ; 0xa1
800affa: f7fa f921 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800affe: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b002: b2db uxtb r3, r3
800b004: 461a mov r2, r3
800b006: 4b81 ldr r3, [pc, #516] ; (800b20c <Display+0x4eb0>)
800b008: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b00c: 2303 movs r3, #3
800b00e: 2164 movs r1, #100 ; 0x64
800b010: 20a8 movs r0, #168 ; 0xa8
800b012: f7fa f915 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b016: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b01a: b2db uxtb r3, r3
800b01c: 461a mov r2, r3
800b01e: 4b7b ldr r3, [pc, #492] ; (800b20c <Display+0x4eb0>)
800b020: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b024: 2303 movs r3, #3
800b026: 2164 movs r1, #100 ; 0x64
800b028: 20af movs r0, #175 ; 0xaf
800b02a: f7fa f909 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b02e: f002 b93a b.w 800d2a6 <Display+0x6f4a>
if(menupos == Kikt_3)
800b032: 4b78 ldr r3, [pc, #480] ; (800b214 <Display+0x4eb8>)
800b034: 781b ldrb r3, [r3, #0]
800b036: b2db uxtb r3, r3
800b038: 2b13 cmp r3, #19
800b03a: f040 818a bne.w 800b352 <Display+0x4ff6>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800b03e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b042: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800b046: f7fa f835 bl 80050b4 <LCD_SetColors>
if(!ipt3)
800b04a: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b04e: b2db uxtb r3, r3
800b050: 2b00 cmp r3, #0
800b052: d141 bne.n 800b0d8 <Display+0x4d7c>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b054: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b058: b2db uxtb r3, r3
800b05a: 461a mov r2, r3
800b05c: 4b6b ldr r3, [pc, #428] ; (800b20c <Display+0x4eb0>)
800b05e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b062: 2303 movs r3, #3
800b064: 2164 movs r1, #100 ; 0x64
800b066: 208c movs r0, #140 ; 0x8c
800b068: f7fa f8ea bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800b06c: 4b6a ldr r3, [pc, #424] ; (800b218 <Display+0x4ebc>)
800b06e: 681b ldr r3, [r3, #0]
800b070: 2b00 cmp r3, #0
800b072: d00b beq.n 800b08c <Display+0x4d30>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b074: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b078: b2db uxtb r3, r3
800b07a: 461a mov r2, r3
800b07c: 4b63 ldr r3, [pc, #396] ; (800b20c <Display+0x4eb0>)
800b07e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b082: 2303 movs r3, #3
800b084: 2164 movs r1, #100 ; 0x64
800b086: 2093 movs r0, #147 ; 0x93
800b088: f7fa f8da bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b08c: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b090: b2db uxtb r3, r3
800b092: 461a mov r2, r3
800b094: 4b5d ldr r3, [pc, #372] ; (800b20c <Display+0x4eb0>)
800b096: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b09a: 2303 movs r3, #3
800b09c: 2164 movs r1, #100 ; 0x64
800b09e: 209a movs r0, #154 ; 0x9a
800b0a0: f7fa f8ce bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b0a4: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b0a8: b2db uxtb r3, r3
800b0aa: 461a mov r2, r3
800b0ac: 4b57 ldr r3, [pc, #348] ; (800b20c <Display+0x4eb0>)
800b0ae: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b0b2: 2303 movs r3, #3
800b0b4: 2164 movs r1, #100 ; 0x64
800b0b6: 20a1 movs r0, #161 ; 0xa1
800b0b8: f7fa f8c2 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b0bc: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b0c0: b2db uxtb r3, r3
800b0c2: 461a mov r2, r3
800b0c4: 4b51 ldr r3, [pc, #324] ; (800b20c <Display+0x4eb0>)
800b0c6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b0ca: 2303 movs r3, #3
800b0cc: 2164 movs r1, #100 ; 0x64
800b0ce: 20a8 movs r0, #168 ; 0xa8
800b0d0: f7fa f8b6 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b0d4: f002 b8e7 b.w 800d2a6 <Display+0x6f4a>
if(ipt3 == 1)
800b0d8: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b0dc: b2db uxtb r3, r3
800b0de: 2b01 cmp r3, #1
800b0e0: d147 bne.n 800b172 <Display+0x4e16>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b0e2: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b0e6: b2db uxtb r3, r3
800b0e8: 461a mov r2, r3
800b0ea: 4b48 ldr r3, [pc, #288] ; (800b20c <Display+0x4eb0>)
800b0ec: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b0f0: 2303 movs r3, #3
800b0f2: 2164 movs r1, #100 ; 0x64
800b0f4: 208c movs r0, #140 ; 0x8c
800b0f6: f7fa f8a3 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800b0fa: 4b47 ldr r3, [pc, #284] ; (800b218 <Display+0x4ebc>)
800b0fc: 681b ldr r3, [r3, #0]
800b0fe: 2b00 cmp r3, #0
800b100: d00b beq.n 800b11a <Display+0x4dbe>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b102: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b106: b2db uxtb r3, r3
800b108: 461a mov r2, r3
800b10a: 4b40 ldr r3, [pc, #256] ; (800b20c <Display+0x4eb0>)
800b10c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b110: 2303 movs r3, #3
800b112: 2164 movs r1, #100 ; 0x64
800b114: 2093 movs r0, #147 ; 0x93
800b116: f7fa f893 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b11a: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b11e: b2db uxtb r3, r3
800b120: 461a mov r2, r3
800b122: 4b3a ldr r3, [pc, #232] ; (800b20c <Display+0x4eb0>)
800b124: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b128: 2303 movs r3, #3
800b12a: 2164 movs r1, #100 ; 0x64
800b12c: 209a movs r0, #154 ; 0x9a
800b12e: f7fa f887 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b132: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b136: b2db uxtb r3, r3
800b138: 461a mov r2, r3
800b13a: 4b34 ldr r3, [pc, #208] ; (800b20c <Display+0x4eb0>)
800b13c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b140: 2303 movs r3, #3
800b142: 2164 movs r1, #100 ; 0x64
800b144: 20a1 movs r0, #161 ; 0xa1
800b146: f7fa f87b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE);
800b14a: 2303 movs r3, #3
800b14c: 4a30 ldr r2, [pc, #192] ; (800b210 <Display+0x4eb4>)
800b14e: 2164 movs r1, #100 ; 0x64
800b150: 20a8 movs r0, #168 ; 0xa8
800b152: f7fa f875 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b156: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b15a: b2db uxtb r3, r3
800b15c: 461a mov r2, r3
800b15e: 4b2b ldr r3, [pc, #172] ; (800b20c <Display+0x4eb0>)
800b160: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b164: 2303 movs r3, #3
800b166: 2164 movs r1, #100 ; 0x64
800b168: 20af movs r0, #175 ; 0xaf
800b16a: f7fa f869 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b16e: f002 b89a b.w 800d2a6 <Display+0x6f4a>
if(ipt3 == 2)
800b172: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b176: b2db uxtb r3, r3
800b178: 2b02 cmp r3, #2
800b17a: d14f bne.n 800b21c <Display+0x4ec0>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b17c: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b180: b2db uxtb r3, r3
800b182: 461a mov r2, r3
800b184: 4b21 ldr r3, [pc, #132] ; (800b20c <Display+0x4eb0>)
800b186: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b18a: 2303 movs r3, #3
800b18c: 2164 movs r1, #100 ; 0x64
800b18e: 208c movs r0, #140 ; 0x8c
800b190: f7fa f856 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800b194: 4b20 ldr r3, [pc, #128] ; (800b218 <Display+0x4ebc>)
800b196: 681b ldr r3, [r3, #0]
800b198: 2b00 cmp r3, #0
800b19a: d00b beq.n 800b1b4 <Display+0x4e58>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b19c: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b1a0: b2db uxtb r3, r3
800b1a2: 461a mov r2, r3
800b1a4: 4b19 ldr r3, [pc, #100] ; (800b20c <Display+0x4eb0>)
800b1a6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b1aa: 2303 movs r3, #3
800b1ac: 2164 movs r1, #100 ; 0x64
800b1ae: 2093 movs r0, #147 ; 0x93
800b1b0: f7fa f846 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b1b4: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b1b8: b2db uxtb r3, r3
800b1ba: 461a mov r2, r3
800b1bc: 4b13 ldr r3, [pc, #76] ; (800b20c <Display+0x4eb0>)
800b1be: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b1c2: 2303 movs r3, #3
800b1c4: 2164 movs r1, #100 ; 0x64
800b1c6: 209a movs r0, #154 ; 0x9a
800b1c8: f7fa f83a bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE);
800b1cc: 2303 movs r3, #3
800b1ce: 4a10 ldr r2, [pc, #64] ; (800b210 <Display+0x4eb4>)
800b1d0: 2164 movs r1, #100 ; 0x64
800b1d2: 20a1 movs r0, #161 ; 0xa1
800b1d4: f7fa f834 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b1d8: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b1dc: b2db uxtb r3, r3
800b1de: 461a mov r2, r3
800b1e0: 4b0a ldr r3, [pc, #40] ; (800b20c <Display+0x4eb0>)
800b1e2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b1e6: 2303 movs r3, #3
800b1e8: 2164 movs r1, #100 ; 0x64
800b1ea: 20a8 movs r0, #168 ; 0xa8
800b1ec: f7fa f828 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b1f0: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b1f4: b2db uxtb r3, r3
800b1f6: 461a mov r2, r3
800b1f8: 4b04 ldr r3, [pc, #16] ; (800b20c <Display+0x4eb0>)
800b1fa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b1fe: 2303 movs r3, #3
800b200: 2164 movs r1, #100 ; 0x64
800b202: 20af movs r0, #175 ; 0xaf
800b204: f7fa f81c bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b208: f002 b84d b.w 800d2a6 <Display+0x6f4a>
800b20c: 2002084c .word 0x2002084c
800b210: 080183cc .word 0x080183cc
800b214: 20020010 .word 0x20020010
800b218: 2006b958 .word 0x2006b958
if(ipt3 == 3)
800b21c: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b220: b2db uxtb r3, r3
800b222: 2b03 cmp r3, #3
800b224: d147 bne.n 800b2b6 <Display+0x4f5a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b226: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b22a: b2db uxtb r3, r3
800b22c: 461a mov r2, r3
800b22e: 4bbf ldr r3, [pc, #764] ; (800b52c <Display+0x51d0>)
800b230: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b234: 2303 movs r3, #3
800b236: 2164 movs r1, #100 ; 0x64
800b238: 208c movs r0, #140 ; 0x8c
800b23a: f7fa f801 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800b23e: 4bbc ldr r3, [pc, #752] ; (800b530 <Display+0x51d4>)
800b240: 681b ldr r3, [r3, #0]
800b242: 2b00 cmp r3, #0
800b244: d00b beq.n 800b25e <Display+0x4f02>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b246: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b24a: b2db uxtb r3, r3
800b24c: 461a mov r2, r3
800b24e: 4bb7 ldr r3, [pc, #732] ; (800b52c <Display+0x51d0>)
800b250: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b254: 2303 movs r3, #3
800b256: 2164 movs r1, #100 ; 0x64
800b258: 2093 movs r0, #147 ; 0x93
800b25a: f7f9 fff1 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE);
800b25e: 2303 movs r3, #3
800b260: 4ab4 ldr r2, [pc, #720] ; (800b534 <Display+0x51d8>)
800b262: 2164 movs r1, #100 ; 0x64
800b264: 209a movs r0, #154 ; 0x9a
800b266: f7f9 ffeb bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b26a: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b26e: b2db uxtb r3, r3
800b270: 461a mov r2, r3
800b272: 4bae ldr r3, [pc, #696] ; (800b52c <Display+0x51d0>)
800b274: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b278: 2303 movs r3, #3
800b27a: 2164 movs r1, #100 ; 0x64
800b27c: 20a1 movs r0, #161 ; 0xa1
800b27e: f7f9 ffdf bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b282: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b286: b2db uxtb r3, r3
800b288: 461a mov r2, r3
800b28a: 4ba8 ldr r3, [pc, #672] ; (800b52c <Display+0x51d0>)
800b28c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b290: 2303 movs r3, #3
800b292: 2164 movs r1, #100 ; 0x64
800b294: 20a8 movs r0, #168 ; 0xa8
800b296: f7f9 ffd3 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b29a: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b29e: b2db uxtb r3, r3
800b2a0: 461a mov r2, r3
800b2a2: 4ba2 ldr r3, [pc, #648] ; (800b52c <Display+0x51d0>)
800b2a4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b2a8: 2303 movs r3, #3
800b2aa: 2164 movs r1, #100 ; 0x64
800b2ac: 20af movs r0, #175 ; 0xaf
800b2ae: f7f9 ffc7 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b2b2: f001 bff8 b.w 800d2a6 <Display+0x6f4a>
if(ipt3 == 4)
800b2b6: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b2ba: b2db uxtb r3, r3
800b2bc: 2b04 cmp r3, #4
800b2be: f041 87f2 bne.w 800d2a6 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b2c2: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b2c6: b2db uxtb r3, r3
800b2c8: 461a mov r2, r3
800b2ca: 4b98 ldr r3, [pc, #608] ; (800b52c <Display+0x51d0>)
800b2cc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b2d0: 2303 movs r3, #3
800b2d2: 2164 movs r1, #100 ; 0x64
800b2d4: 208c movs r0, #140 ; 0x8c
800b2d6: f7f9 ffb3 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE);
800b2da: 2303 movs r3, #3
800b2dc: 4a95 ldr r2, [pc, #596] ; (800b534 <Display+0x51d8>)
800b2de: 2164 movs r1, #100 ; 0x64
800b2e0: 2093 movs r0, #147 ; 0x93
800b2e2: f7f9 ffad bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800b2e6: 4b92 ldr r3, [pc, #584] ; (800b530 <Display+0x51d4>)
800b2e8: 681b ldr r3, [r3, #0]
800b2ea: 2b00 cmp r3, #0
800b2ec: d00b beq.n 800b306 <Display+0x4faa>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b2ee: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b2f2: b2db uxtb r3, r3
800b2f4: 461a mov r2, r3
800b2f6: 4b8d ldr r3, [pc, #564] ; (800b52c <Display+0x51d0>)
800b2f8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b2fc: 2303 movs r3, #3
800b2fe: 2164 movs r1, #100 ; 0x64
800b300: 209a movs r0, #154 ; 0x9a
800b302: f7f9 ff9d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b306: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b30a: b2db uxtb r3, r3
800b30c: 461a mov r2, r3
800b30e: 4b87 ldr r3, [pc, #540] ; (800b52c <Display+0x51d0>)
800b310: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b314: 2303 movs r3, #3
800b316: 2164 movs r1, #100 ; 0x64
800b318: 20a1 movs r0, #161 ; 0xa1
800b31a: f7f9 ff91 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b31e: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b322: b2db uxtb r3, r3
800b324: 461a mov r2, r3
800b326: 4b81 ldr r3, [pc, #516] ; (800b52c <Display+0x51d0>)
800b328: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b32c: 2303 movs r3, #3
800b32e: 2164 movs r1, #100 ; 0x64
800b330: 20a8 movs r0, #168 ; 0xa8
800b332: f7f9 ff85 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b336: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b33a: b2db uxtb r3, r3
800b33c: 461a mov r2, r3
800b33e: 4b7b ldr r3, [pc, #492] ; (800b52c <Display+0x51d0>)
800b340: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b344: 2303 movs r3, #3
800b346: 2164 movs r1, #100 ; 0x64
800b348: 20af movs r0, #175 ; 0xaf
800b34a: f7f9 ff79 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b34e: f001 bfaa b.w 800d2a6 <Display+0x6f4a>
if(menupos == Kiks_3)
800b352: 4b79 ldr r3, [pc, #484] ; (800b538 <Display+0x51dc>)
800b354: 781b ldrb r3, [r3, #0]
800b356: b2db uxtb r3, r3
800b358: 2b14 cmp r3, #20
800b35a: f040 818a bne.w 800b672 <Display+0x5316>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800b35e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b362: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800b366: f7f9 fea5 bl 80050b4 <LCD_SetColors>
if(!ipt3)
800b36a: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b36e: b2db uxtb r3, r3
800b370: 2b00 cmp r3, #0
800b372: d141 bne.n 800b3f8 <Display+0x509c>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b374: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b378: b2db uxtb r3, r3
800b37a: 461a mov r2, r3
800b37c: 4b6b ldr r3, [pc, #428] ; (800b52c <Display+0x51d0>)
800b37e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b382: 2303 movs r3, #3
800b384: 2164 movs r1, #100 ; 0x64
800b386: 208c movs r0, #140 ; 0x8c
800b388: f7f9 ff5a bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b38c: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b390: b2db uxtb r3, r3
800b392: 461a mov r2, r3
800b394: 4b65 ldr r3, [pc, #404] ; (800b52c <Display+0x51d0>)
800b396: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b39a: 2303 movs r3, #3
800b39c: 2164 movs r1, #100 ; 0x64
800b39e: 2093 movs r0, #147 ; 0x93
800b3a0: f7f9 ff4e bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800b3a4: 4b62 ldr r3, [pc, #392] ; (800b530 <Display+0x51d4>)
800b3a6: 681b ldr r3, [r3, #0]
800b3a8: 2b00 cmp r3, #0
800b3aa: d00b beq.n 800b3c4 <Display+0x5068>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b3ac: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b3b0: b2db uxtb r3, r3
800b3b2: 461a mov r2, r3
800b3b4: 4b5d ldr r3, [pc, #372] ; (800b52c <Display+0x51d0>)
800b3b6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b3ba: 2303 movs r3, #3
800b3bc: 2164 movs r1, #100 ; 0x64
800b3be: 209a movs r0, #154 ; 0x9a
800b3c0: f7f9 ff3e bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b3c4: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b3c8: b2db uxtb r3, r3
800b3ca: 461a mov r2, r3
800b3cc: 4b57 ldr r3, [pc, #348] ; (800b52c <Display+0x51d0>)
800b3ce: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b3d2: 2303 movs r3, #3
800b3d4: 2164 movs r1, #100 ; 0x64
800b3d6: 20a1 movs r0, #161 ; 0xa1
800b3d8: f7f9 ff32 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b3dc: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b3e0: b2db uxtb r3, r3
800b3e2: 461a mov r2, r3
800b3e4: 4b51 ldr r3, [pc, #324] ; (800b52c <Display+0x51d0>)
800b3e6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b3ea: 2303 movs r3, #3
800b3ec: 2164 movs r1, #100 ; 0x64
800b3ee: 20a8 movs r0, #168 ; 0xa8
800b3f0: f7f9 ff26 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b3f4: f001 bf57 b.w 800d2a6 <Display+0x6f4a>
if(ipt3 == 1)
800b3f8: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b3fc: b2db uxtb r3, r3
800b3fe: 2b01 cmp r3, #1
800b400: d147 bne.n 800b492 <Display+0x5136>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b402: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b406: b2db uxtb r3, r3
800b408: 461a mov r2, r3
800b40a: 4b48 ldr r3, [pc, #288] ; (800b52c <Display+0x51d0>)
800b40c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b410: 2303 movs r3, #3
800b412: 2164 movs r1, #100 ; 0x64
800b414: 208c movs r0, #140 ; 0x8c
800b416: f7f9 ff13 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b41a: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b41e: b2db uxtb r3, r3
800b420: 461a mov r2, r3
800b422: 4b42 ldr r3, [pc, #264] ; (800b52c <Display+0x51d0>)
800b424: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b428: 2303 movs r3, #3
800b42a: 2164 movs r1, #100 ; 0x64
800b42c: 2093 movs r0, #147 ; 0x93
800b42e: f7f9 ff07 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800b432: 4b3f ldr r3, [pc, #252] ; (800b530 <Display+0x51d4>)
800b434: 681b ldr r3, [r3, #0]
800b436: 2b00 cmp r3, #0
800b438: d00b beq.n 800b452 <Display+0x50f6>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b43a: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b43e: b2db uxtb r3, r3
800b440: 461a mov r2, r3
800b442: 4b3a ldr r3, [pc, #232] ; (800b52c <Display+0x51d0>)
800b444: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b448: 2303 movs r3, #3
800b44a: 2164 movs r1, #100 ; 0x64
800b44c: 209a movs r0, #154 ; 0x9a
800b44e: f7f9 fef7 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b452: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b456: b2db uxtb r3, r3
800b458: 461a mov r2, r3
800b45a: 4b34 ldr r3, [pc, #208] ; (800b52c <Display+0x51d0>)
800b45c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b460: 2303 movs r3, #3
800b462: 2164 movs r1, #100 ; 0x64
800b464: 20a1 movs r0, #161 ; 0xa1
800b466: f7f9 feeb bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE);
800b46a: 2303 movs r3, #3
800b46c: 4a31 ldr r2, [pc, #196] ; (800b534 <Display+0x51d8>)
800b46e: 2164 movs r1, #100 ; 0x64
800b470: 20a8 movs r0, #168 ; 0xa8
800b472: f7f9 fee5 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b476: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b47a: b2db uxtb r3, r3
800b47c: 461a mov r2, r3
800b47e: 4b2b ldr r3, [pc, #172] ; (800b52c <Display+0x51d0>)
800b480: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b484: 2303 movs r3, #3
800b486: 2164 movs r1, #100 ; 0x64
800b488: 20af movs r0, #175 ; 0xaf
800b48a: f7f9 fed9 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b48e: f001 bf0a b.w 800d2a6 <Display+0x6f4a>
if(ipt3 == 2)
800b492: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b496: b2db uxtb r3, r3
800b498: 2b02 cmp r3, #2
800b49a: d14f bne.n 800b53c <Display+0x51e0>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b49c: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b4a0: b2db uxtb r3, r3
800b4a2: 461a mov r2, r3
800b4a4: 4b21 ldr r3, [pc, #132] ; (800b52c <Display+0x51d0>)
800b4a6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b4aa: 2303 movs r3, #3
800b4ac: 2164 movs r1, #100 ; 0x64
800b4ae: 208c movs r0, #140 ; 0x8c
800b4b0: f7f9 fec6 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b4b4: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b4b8: b2db uxtb r3, r3
800b4ba: 461a mov r2, r3
800b4bc: 4b1b ldr r3, [pc, #108] ; (800b52c <Display+0x51d0>)
800b4be: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b4c2: 2303 movs r3, #3
800b4c4: 2164 movs r1, #100 ; 0x64
800b4c6: 2093 movs r0, #147 ; 0x93
800b4c8: f7f9 feba bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800b4cc: 4b18 ldr r3, [pc, #96] ; (800b530 <Display+0x51d4>)
800b4ce: 681b ldr r3, [r3, #0]
800b4d0: 2b00 cmp r3, #0
800b4d2: d00b beq.n 800b4ec <Display+0x5190>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b4d4: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b4d8: b2db uxtb r3, r3
800b4da: 461a mov r2, r3
800b4dc: 4b13 ldr r3, [pc, #76] ; (800b52c <Display+0x51d0>)
800b4de: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b4e2: 2303 movs r3, #3
800b4e4: 2164 movs r1, #100 ; 0x64
800b4e6: 209a movs r0, #154 ; 0x9a
800b4e8: f7f9 feaa bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE);
800b4ec: 2303 movs r3, #3
800b4ee: 4a11 ldr r2, [pc, #68] ; (800b534 <Display+0x51d8>)
800b4f0: 2164 movs r1, #100 ; 0x64
800b4f2: 20a1 movs r0, #161 ; 0xa1
800b4f4: f7f9 fea4 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b4f8: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b4fc: b2db uxtb r3, r3
800b4fe: 461a mov r2, r3
800b500: 4b0a ldr r3, [pc, #40] ; (800b52c <Display+0x51d0>)
800b502: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b506: 2303 movs r3, #3
800b508: 2164 movs r1, #100 ; 0x64
800b50a: 20a8 movs r0, #168 ; 0xa8
800b50c: f7f9 fe98 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b510: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b514: b2db uxtb r3, r3
800b516: 461a mov r2, r3
800b518: 4b04 ldr r3, [pc, #16] ; (800b52c <Display+0x51d0>)
800b51a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b51e: 2303 movs r3, #3
800b520: 2164 movs r1, #100 ; 0x64
800b522: 20af movs r0, #175 ; 0xaf
800b524: f7f9 fe8c bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b528: f001 bebd b.w 800d2a6 <Display+0x6f4a>
800b52c: 2002084c .word 0x2002084c
800b530: 2006b958 .word 0x2006b958
800b534: 080183cc .word 0x080183cc
800b538: 20020010 .word 0x20020010
if(ipt3 == 3)
800b53c: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b540: b2db uxtb r3, r3
800b542: 2b03 cmp r3, #3
800b544: d147 bne.n 800b5d6 <Display+0x527a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b546: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b54a: b2db uxtb r3, r3
800b54c: 461a mov r2, r3
800b54e: 4bbf ldr r3, [pc, #764] ; (800b84c <Display+0x54f0>)
800b550: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b554: 2303 movs r3, #3
800b556: 2164 movs r1, #100 ; 0x64
800b558: 208c movs r0, #140 ; 0x8c
800b55a: f7f9 fe71 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b55e: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b562: b2db uxtb r3, r3
800b564: 461a mov r2, r3
800b566: 4bb9 ldr r3, [pc, #740] ; (800b84c <Display+0x54f0>)
800b568: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b56c: 2303 movs r3, #3
800b56e: 2164 movs r1, #100 ; 0x64
800b570: 2093 movs r0, #147 ; 0x93
800b572: f7f9 fe65 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE);
800b576: 2303 movs r3, #3
800b578: 4ab5 ldr r2, [pc, #724] ; (800b850 <Display+0x54f4>)
800b57a: 2164 movs r1, #100 ; 0x64
800b57c: 209a movs r0, #154 ; 0x9a
800b57e: f7f9 fe5f bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800b582: 4bb4 ldr r3, [pc, #720] ; (800b854 <Display+0x54f8>)
800b584: 681b ldr r3, [r3, #0]
800b586: 2b00 cmp r3, #0
800b588: d00b beq.n 800b5a2 <Display+0x5246>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b58a: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b58e: b2db uxtb r3, r3
800b590: 461a mov r2, r3
800b592: 4bae ldr r3, [pc, #696] ; (800b84c <Display+0x54f0>)
800b594: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b598: 2303 movs r3, #3
800b59a: 2164 movs r1, #100 ; 0x64
800b59c: 20a1 movs r0, #161 ; 0xa1
800b59e: f7f9 fe4f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b5a2: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b5a6: b2db uxtb r3, r3
800b5a8: 461a mov r2, r3
800b5aa: 4ba8 ldr r3, [pc, #672] ; (800b84c <Display+0x54f0>)
800b5ac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b5b0: 2303 movs r3, #3
800b5b2: 2164 movs r1, #100 ; 0x64
800b5b4: 20a8 movs r0, #168 ; 0xa8
800b5b6: f7f9 fe43 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b5ba: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b5be: b2db uxtb r3, r3
800b5c0: 461a mov r2, r3
800b5c2: 4ba2 ldr r3, [pc, #648] ; (800b84c <Display+0x54f0>)
800b5c4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b5c8: 2303 movs r3, #3
800b5ca: 2164 movs r1, #100 ; 0x64
800b5cc: 20af movs r0, #175 ; 0xaf
800b5ce: f7f9 fe37 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b5d2: f001 be68 b.w 800d2a6 <Display+0x6f4a>
if(ipt3 == 4)
800b5d6: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b5da: b2db uxtb r3, r3
800b5dc: 2b04 cmp r3, #4
800b5de: f041 8662 bne.w 800d2a6 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b5e2: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b5e6: b2db uxtb r3, r3
800b5e8: 461a mov r2, r3
800b5ea: 4b98 ldr r3, [pc, #608] ; (800b84c <Display+0x54f0>)
800b5ec: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b5f0: 2303 movs r3, #3
800b5f2: 2164 movs r1, #100 ; 0x64
800b5f4: 208c movs r0, #140 ; 0x8c
800b5f6: f7f9 fe23 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE);
800b5fa: 2303 movs r3, #3
800b5fc: 4a94 ldr r2, [pc, #592] ; (800b850 <Display+0x54f4>)
800b5fe: 2164 movs r1, #100 ; 0x64
800b600: 2093 movs r0, #147 ; 0x93
800b602: f7f9 fe1d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b606: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b60a: b2db uxtb r3, r3
800b60c: 461a mov r2, r3
800b60e: 4b8f ldr r3, [pc, #572] ; (800b84c <Display+0x54f0>)
800b610: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b614: 2303 movs r3, #3
800b616: 2164 movs r1, #100 ; 0x64
800b618: 209a movs r0, #154 ; 0x9a
800b61a: f7f9 fe11 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800b61e: 4b8d ldr r3, [pc, #564] ; (800b854 <Display+0x54f8>)
800b620: 681b ldr r3, [r3, #0]
800b622: 2b00 cmp r3, #0
800b624: d00b beq.n 800b63e <Display+0x52e2>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b626: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b62a: b2db uxtb r3, r3
800b62c: 461a mov r2, r3
800b62e: 4b87 ldr r3, [pc, #540] ; (800b84c <Display+0x54f0>)
800b630: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b634: 2303 movs r3, #3
800b636: 2164 movs r1, #100 ; 0x64
800b638: 20a1 movs r0, #161 ; 0xa1
800b63a: f7f9 fe01 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b63e: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b642: b2db uxtb r3, r3
800b644: 461a mov r2, r3
800b646: 4b81 ldr r3, [pc, #516] ; (800b84c <Display+0x54f0>)
800b648: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b64c: 2303 movs r3, #3
800b64e: 2164 movs r1, #100 ; 0x64
800b650: 20a8 movs r0, #168 ; 0xa8
800b652: f7f9 fdf5 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b656: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b65a: b2db uxtb r3, r3
800b65c: 461a mov r2, r3
800b65e: 4b7b ldr r3, [pc, #492] ; (800b84c <Display+0x54f0>)
800b660: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b664: 2303 movs r3, #3
800b666: 2164 movs r1, #100 ; 0x64
800b668: 20af movs r0, #175 ; 0xaf
800b66a: f7f9 fde9 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b66e: f001 be1a b.w 800d2a6 <Display+0x6f4a>
if(menupos == Kikd_3)
800b672: 4b79 ldr r3, [pc, #484] ; (800b858 <Display+0x54fc>)
800b674: 781b ldrb r3, [r3, #0]
800b676: b2db uxtb r3, r3
800b678: 2b15 cmp r3, #21
800b67a: f040 818a bne.w 800b992 <Display+0x5636>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800b67e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b682: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800b686: f7f9 fd15 bl 80050b4 <LCD_SetColors>
if(!ipt3)
800b68a: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b68e: b2db uxtb r3, r3
800b690: 2b00 cmp r3, #0
800b692: d141 bne.n 800b718 <Display+0x53bc>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b694: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b698: b2db uxtb r3, r3
800b69a: 461a mov r2, r3
800b69c: 4b6b ldr r3, [pc, #428] ; (800b84c <Display+0x54f0>)
800b69e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b6a2: 2303 movs r3, #3
800b6a4: 2164 movs r1, #100 ; 0x64
800b6a6: 208c movs r0, #140 ; 0x8c
800b6a8: f7f9 fdca bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b6ac: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b6b0: b2db uxtb r3, r3
800b6b2: 461a mov r2, r3
800b6b4: 4b65 ldr r3, [pc, #404] ; (800b84c <Display+0x54f0>)
800b6b6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b6ba: 2303 movs r3, #3
800b6bc: 2164 movs r1, #100 ; 0x64
800b6be: 2093 movs r0, #147 ; 0x93
800b6c0: f7f9 fdbe bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b6c4: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b6c8: b2db uxtb r3, r3
800b6ca: 461a mov r2, r3
800b6cc: 4b5f ldr r3, [pc, #380] ; (800b84c <Display+0x54f0>)
800b6ce: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b6d2: 2303 movs r3, #3
800b6d4: 2164 movs r1, #100 ; 0x64
800b6d6: 209a movs r0, #154 ; 0x9a
800b6d8: f7f9 fdb2 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800b6dc: 4b5d ldr r3, [pc, #372] ; (800b854 <Display+0x54f8>)
800b6de: 681b ldr r3, [r3, #0]
800b6e0: 2b00 cmp r3, #0
800b6e2: d00b beq.n 800b6fc <Display+0x53a0>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b6e4: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b6e8: b2db uxtb r3, r3
800b6ea: 461a mov r2, r3
800b6ec: 4b57 ldr r3, [pc, #348] ; (800b84c <Display+0x54f0>)
800b6ee: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b6f2: 2303 movs r3, #3
800b6f4: 2164 movs r1, #100 ; 0x64
800b6f6: 20a1 movs r0, #161 ; 0xa1
800b6f8: f7f9 fda2 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b6fc: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b700: b2db uxtb r3, r3
800b702: 461a mov r2, r3
800b704: 4b51 ldr r3, [pc, #324] ; (800b84c <Display+0x54f0>)
800b706: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b70a: 2303 movs r3, #3
800b70c: 2164 movs r1, #100 ; 0x64
800b70e: 20a8 movs r0, #168 ; 0xa8
800b710: f7f9 fd96 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b714: f001 bdc7 b.w 800d2a6 <Display+0x6f4a>
if(ipt3 == 1)
800b718: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b71c: b2db uxtb r3, r3
800b71e: 2b01 cmp r3, #1
800b720: d147 bne.n 800b7b2 <Display+0x5456>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b722: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b726: b2db uxtb r3, r3
800b728: 461a mov r2, r3
800b72a: 4b48 ldr r3, [pc, #288] ; (800b84c <Display+0x54f0>)
800b72c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b730: 2303 movs r3, #3
800b732: 2164 movs r1, #100 ; 0x64
800b734: 208c movs r0, #140 ; 0x8c
800b736: f7f9 fd83 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b73a: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b73e: b2db uxtb r3, r3
800b740: 461a mov r2, r3
800b742: 4b42 ldr r3, [pc, #264] ; (800b84c <Display+0x54f0>)
800b744: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b748: 2303 movs r3, #3
800b74a: 2164 movs r1, #100 ; 0x64
800b74c: 2093 movs r0, #147 ; 0x93
800b74e: f7f9 fd77 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b752: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b756: b2db uxtb r3, r3
800b758: 461a mov r2, r3
800b75a: 4b3c ldr r3, [pc, #240] ; (800b84c <Display+0x54f0>)
800b75c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b760: 2303 movs r3, #3
800b762: 2164 movs r1, #100 ; 0x64
800b764: 209a movs r0, #154 ; 0x9a
800b766: f7f9 fd6b bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800b76a: 4b3a ldr r3, [pc, #232] ; (800b854 <Display+0x54f8>)
800b76c: 681b ldr r3, [r3, #0]
800b76e: 2b00 cmp r3, #0
800b770: d00b beq.n 800b78a <Display+0x542e>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b772: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b776: b2db uxtb r3, r3
800b778: 461a mov r2, r3
800b77a: 4b34 ldr r3, [pc, #208] ; (800b84c <Display+0x54f0>)
800b77c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b780: 2303 movs r3, #3
800b782: 2164 movs r1, #100 ; 0x64
800b784: 20a1 movs r0, #161 ; 0xa1
800b786: f7f9 fd5b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE);
800b78a: 2303 movs r3, #3
800b78c: 4a30 ldr r2, [pc, #192] ; (800b850 <Display+0x54f4>)
800b78e: 2164 movs r1, #100 ; 0x64
800b790: 20a8 movs r0, #168 ; 0xa8
800b792: f7f9 fd55 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b796: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b79a: b2db uxtb r3, r3
800b79c: 461a mov r2, r3
800b79e: 4b2b ldr r3, [pc, #172] ; (800b84c <Display+0x54f0>)
800b7a0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b7a4: 2303 movs r3, #3
800b7a6: 2164 movs r1, #100 ; 0x64
800b7a8: 20af movs r0, #175 ; 0xaf
800b7aa: f7f9 fd49 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b7ae: f001 bd7a b.w 800d2a6 <Display+0x6f4a>
if(ipt3 == 2)
800b7b2: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b7b6: b2db uxtb r3, r3
800b7b8: 2b02 cmp r3, #2
800b7ba: d14f bne.n 800b85c <Display+0x5500>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b7bc: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b7c0: b2db uxtb r3, r3
800b7c2: 461a mov r2, r3
800b7c4: 4b21 ldr r3, [pc, #132] ; (800b84c <Display+0x54f0>)
800b7c6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b7ca: 2303 movs r3, #3
800b7cc: 2164 movs r1, #100 ; 0x64
800b7ce: 208c movs r0, #140 ; 0x8c
800b7d0: f7f9 fd36 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b7d4: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b7d8: b2db uxtb r3, r3
800b7da: 461a mov r2, r3
800b7dc: 4b1b ldr r3, [pc, #108] ; (800b84c <Display+0x54f0>)
800b7de: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b7e2: 2303 movs r3, #3
800b7e4: 2164 movs r1, #100 ; 0x64
800b7e6: 2093 movs r0, #147 ; 0x93
800b7e8: f7f9 fd2a bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b7ec: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b7f0: b2db uxtb r3, r3
800b7f2: 461a mov r2, r3
800b7f4: 4b15 ldr r3, [pc, #84] ; (800b84c <Display+0x54f0>)
800b7f6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b7fa: 2303 movs r3, #3
800b7fc: 2164 movs r1, #100 ; 0x64
800b7fe: 209a movs r0, #154 ; 0x9a
800b800: f7f9 fd1e bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE);
800b804: 2303 movs r3, #3
800b806: 4a12 ldr r2, [pc, #72] ; (800b850 <Display+0x54f4>)
800b808: 2164 movs r1, #100 ; 0x64
800b80a: 20a1 movs r0, #161 ; 0xa1
800b80c: f7f9 fd18 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800b810: 4b10 ldr r3, [pc, #64] ; (800b854 <Display+0x54f8>)
800b812: 681b ldr r3, [r3, #0]
800b814: 2b00 cmp r3, #0
800b816: d00b beq.n 800b830 <Display+0x54d4>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b818: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b81c: b2db uxtb r3, r3
800b81e: 461a mov r2, r3
800b820: 4b0a ldr r3, [pc, #40] ; (800b84c <Display+0x54f0>)
800b822: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b826: 2303 movs r3, #3
800b828: 2164 movs r1, #100 ; 0x64
800b82a: 20a8 movs r0, #168 ; 0xa8
800b82c: f7f9 fd08 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b830: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b834: b2db uxtb r3, r3
800b836: 461a mov r2, r3
800b838: 4b04 ldr r3, [pc, #16] ; (800b84c <Display+0x54f0>)
800b83a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b83e: 2303 movs r3, #3
800b840: 2164 movs r1, #100 ; 0x64
800b842: 20af movs r0, #175 ; 0xaf
800b844: f7f9 fcfc bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b848: f001 bd2d b.w 800d2a6 <Display+0x6f4a>
800b84c: 2002084c .word 0x2002084c
800b850: 080183cc .word 0x080183cc
800b854: 2006b958 .word 0x2006b958
800b858: 20020010 .word 0x20020010
if(ipt3 == 3)
800b85c: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b860: b2db uxtb r3, r3
800b862: 2b03 cmp r3, #3
800b864: d147 bne.n 800b8f6 <Display+0x559a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b866: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b86a: b2db uxtb r3, r3
800b86c: 461a mov r2, r3
800b86e: 4bc1 ldr r3, [pc, #772] ; (800bb74 <Display+0x5818>)
800b870: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b874: 2303 movs r3, #3
800b876: 2164 movs r1, #100 ; 0x64
800b878: 208c movs r0, #140 ; 0x8c
800b87a: f7f9 fce1 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b87e: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b882: b2db uxtb r3, r3
800b884: 461a mov r2, r3
800b886: 4bbb ldr r3, [pc, #748] ; (800bb74 <Display+0x5818>)
800b888: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b88c: 2303 movs r3, #3
800b88e: 2164 movs r1, #100 ; 0x64
800b890: 2093 movs r0, #147 ; 0x93
800b892: f7f9 fcd5 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE);
800b896: 2303 movs r3, #3
800b898: 4ab7 ldr r2, [pc, #732] ; (800bb78 <Display+0x581c>)
800b89a: 2164 movs r1, #100 ; 0x64
800b89c: 209a movs r0, #154 ; 0x9a
800b89e: f7f9 fccf bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b8a2: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b8a6: b2db uxtb r3, r3
800b8a8: 461a mov r2, r3
800b8aa: 4bb2 ldr r3, [pc, #712] ; (800bb74 <Display+0x5818>)
800b8ac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b8b0: 2303 movs r3, #3
800b8b2: 2164 movs r1, #100 ; 0x64
800b8b4: 20a1 movs r0, #161 ; 0xa1
800b8b6: f7f9 fcc3 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800b8ba: 4bb0 ldr r3, [pc, #704] ; (800bb7c <Display+0x5820>)
800b8bc: 681b ldr r3, [r3, #0]
800b8be: 2b00 cmp r3, #0
800b8c0: d00b beq.n 800b8da <Display+0x557e>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b8c2: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b8c6: b2db uxtb r3, r3
800b8c8: 461a mov r2, r3
800b8ca: 4baa ldr r3, [pc, #680] ; (800bb74 <Display+0x5818>)
800b8cc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b8d0: 2303 movs r3, #3
800b8d2: 2164 movs r1, #100 ; 0x64
800b8d4: 20a8 movs r0, #168 ; 0xa8
800b8d6: f7f9 fcb3 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b8da: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b8de: b2db uxtb r3, r3
800b8e0: 461a mov r2, r3
800b8e2: 4ba4 ldr r3, [pc, #656] ; (800bb74 <Display+0x5818>)
800b8e4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b8e8: 2303 movs r3, #3
800b8ea: 2164 movs r1, #100 ; 0x64
800b8ec: 20af movs r0, #175 ; 0xaf
800b8ee: f7f9 fca7 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b8f2: f001 bcd8 b.w 800d2a6 <Display+0x6f4a>
if(ipt3 == 4)
800b8f6: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b8fa: b2db uxtb r3, r3
800b8fc: 2b04 cmp r3, #4
800b8fe: f041 84d2 bne.w 800d2a6 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b902: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b906: b2db uxtb r3, r3
800b908: 461a mov r2, r3
800b90a: 4b9a ldr r3, [pc, #616] ; (800bb74 <Display+0x5818>)
800b90c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b910: 2303 movs r3, #3
800b912: 2164 movs r1, #100 ; 0x64
800b914: 208c movs r0, #140 ; 0x8c
800b916: f7f9 fc93 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE);
800b91a: 2303 movs r3, #3
800b91c: 4a96 ldr r2, [pc, #600] ; (800bb78 <Display+0x581c>)
800b91e: 2164 movs r1, #100 ; 0x64
800b920: 2093 movs r0, #147 ; 0x93
800b922: f7f9 fc8d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b926: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b92a: b2db uxtb r3, r3
800b92c: 461a mov r2, r3
800b92e: 4b91 ldr r3, [pc, #580] ; (800bb74 <Display+0x5818>)
800b930: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b934: 2303 movs r3, #3
800b936: 2164 movs r1, #100 ; 0x64
800b938: 209a movs r0, #154 ; 0x9a
800b93a: f7f9 fc81 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b93e: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b942: b2db uxtb r3, r3
800b944: 461a mov r2, r3
800b946: 4b8b ldr r3, [pc, #556] ; (800bb74 <Display+0x5818>)
800b948: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b94c: 2303 movs r3, #3
800b94e: 2164 movs r1, #100 ; 0x64
800b950: 20a1 movs r0, #161 ; 0xa1
800b952: f7f9 fc75 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800b956: 4b89 ldr r3, [pc, #548] ; (800bb7c <Display+0x5820>)
800b958: 681b ldr r3, [r3, #0]
800b95a: 2b00 cmp r3, #0
800b95c: d00b beq.n 800b976 <Display+0x561a>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b95e: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b962: b2db uxtb r3, r3
800b964: 461a mov r2, r3
800b966: 4b83 ldr r3, [pc, #524] ; (800bb74 <Display+0x5818>)
800b968: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b96c: 2303 movs r3, #3
800b96e: 2164 movs r1, #100 ; 0x64
800b970: 20a8 movs r0, #168 ; 0xa8
800b972: f7f9 fc65 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b976: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b97a: b2db uxtb r3, r3
800b97c: 461a mov r2, r3
800b97e: 4b7d ldr r3, [pc, #500] ; (800bb74 <Display+0x5818>)
800b980: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b984: 2303 movs r3, #3
800b986: 2164 movs r1, #100 ; 0x64
800b988: 20af movs r0, #175 ; 0xaf
800b98a: f7f9 fc59 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b98e: f001 bc8a b.w 800d2a6 <Display+0x6f4a>
if(menupos == Kike_3)
800b992: 4b7b ldr r3, [pc, #492] ; (800bb80 <Display+0x5824>)
800b994: 781b ldrb r3, [r3, #0]
800b996: b2db uxtb r3, r3
800b998: 2b16 cmp r3, #22
800b99a: f040 8190 bne.w 800bcbe <Display+0x5962>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800b99e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b9a2: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800b9a6: f7f9 fb85 bl 80050b4 <LCD_SetColors>
if(!ipt3)
800b9aa: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b9ae: b2db uxtb r3, r3
800b9b0: 2b00 cmp r3, #0
800b9b2: d142 bne.n 800ba3a <Display+0x56de>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b9b4: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b9b8: b2db uxtb r3, r3
800b9ba: 461a mov r2, r3
800b9bc: 4b6d ldr r3, [pc, #436] ; (800bb74 <Display+0x5818>)
800b9be: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b9c2: 2303 movs r3, #3
800b9c4: 2164 movs r1, #100 ; 0x64
800b9c6: 208c movs r0, #140 ; 0x8c
800b9c8: f7f9 fc3a bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b9cc: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b9d0: b2db uxtb r3, r3
800b9d2: 461a mov r2, r3
800b9d4: 4b67 ldr r3, [pc, #412] ; (800bb74 <Display+0x5818>)
800b9d6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b9da: 2303 movs r3, #3
800b9dc: 2164 movs r1, #100 ; 0x64
800b9de: 2093 movs r0, #147 ; 0x93
800b9e0: f7f9 fc2e bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b9e4: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b9e8: b2db uxtb r3, r3
800b9ea: 461a mov r2, r3
800b9ec: 4b61 ldr r3, [pc, #388] ; (800bb74 <Display+0x5818>)
800b9ee: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b9f2: 2303 movs r3, #3
800b9f4: 2164 movs r1, #100 ; 0x64
800b9f6: 209a movs r0, #154 ; 0x9a
800b9f8: f7f9 fc22 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b9fc: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800ba00: b2db uxtb r3, r3
800ba02: 461a mov r2, r3
800ba04: 4b5b ldr r3, [pc, #364] ; (800bb74 <Display+0x5818>)
800ba06: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ba0a: 2303 movs r3, #3
800ba0c: 2164 movs r1, #100 ; 0x64
800ba0e: 20a1 movs r0, #161 ; 0xa1
800ba10: f7f9 fc16 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800ba14: 4b59 ldr r3, [pc, #356] ; (800bb7c <Display+0x5820>)
800ba16: 681b ldr r3, [r3, #0]
800ba18: 2b00 cmp r3, #0
800ba1a: f001 8444 beq.w 800d2a6 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE);
800ba1e: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800ba22: b2db uxtb r3, r3
800ba24: 461a mov r2, r3
800ba26: 4b53 ldr r3, [pc, #332] ; (800bb74 <Display+0x5818>)
800ba28: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ba2c: 2303 movs r3, #3
800ba2e: 2164 movs r1, #100 ; 0x64
800ba30: 20a8 movs r0, #168 ; 0xa8
800ba32: f7f9 fc05 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800ba36: f001 bc36 b.w 800d2a6 <Display+0x6f4a>
if(ipt3 == 1)
800ba3a: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800ba3e: b2db uxtb r3, r3
800ba40: 2b01 cmp r3, #1
800ba42: d148 bne.n 800bad6 <Display+0x577a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800ba44: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800ba48: b2db uxtb r3, r3
800ba4a: 461a mov r2, r3
800ba4c: 4b49 ldr r3, [pc, #292] ; (800bb74 <Display+0x5818>)
800ba4e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ba52: 2303 movs r3, #3
800ba54: 2164 movs r1, #100 ; 0x64
800ba56: 208c movs r0, #140 ; 0x8c
800ba58: f7f9 fbf2 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800ba5c: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800ba60: b2db uxtb r3, r3
800ba62: 461a mov r2, r3
800ba64: 4b43 ldr r3, [pc, #268] ; (800bb74 <Display+0x5818>)
800ba66: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ba6a: 2303 movs r3, #3
800ba6c: 2164 movs r1, #100 ; 0x64
800ba6e: 2093 movs r0, #147 ; 0x93
800ba70: f7f9 fbe6 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800ba74: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800ba78: b2db uxtb r3, r3
800ba7a: 461a mov r2, r3
800ba7c: 4b3d ldr r3, [pc, #244] ; (800bb74 <Display+0x5818>)
800ba7e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ba82: 2303 movs r3, #3
800ba84: 2164 movs r1, #100 ; 0x64
800ba86: 209a movs r0, #154 ; 0x9a
800ba88: f7f9 fbda bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800ba8c: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800ba90: b2db uxtb r3, r3
800ba92: 461a mov r2, r3
800ba94: 4b37 ldr r3, [pc, #220] ; (800bb74 <Display+0x5818>)
800ba96: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ba9a: 2303 movs r3, #3
800ba9c: 2164 movs r1, #100 ; 0x64
800ba9e: 20a1 movs r0, #161 ; 0xa1
800baa0: f7f9 fbce bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE);
800baa4: 2303 movs r3, #3
800baa6: 4a34 ldr r2, [pc, #208] ; (800bb78 <Display+0x581c>)
800baa8: 2164 movs r1, #100 ; 0x64
800baaa: 20a8 movs r0, #168 ; 0xa8
800baac: f7f9 fbc8 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800bab0: 4b32 ldr r3, [pc, #200] ; (800bb7c <Display+0x5820>)
800bab2: 681b ldr r3, [r3, #0]
800bab4: 2b00 cmp r3, #0
800bab6: f001 83f6 beq.w 800d2a6 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800baba: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800babe: b2db uxtb r3, r3
800bac0: 461a mov r2, r3
800bac2: 4b2c ldr r3, [pc, #176] ; (800bb74 <Display+0x5818>)
800bac4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bac8: 2303 movs r3, #3
800baca: 2164 movs r1, #100 ; 0x64
800bacc: 20af movs r0, #175 ; 0xaf
800bace: f7f9 fbb7 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800bad2: f001 bbe8 b.w 800d2a6 <Display+0x6f4a>
if(ipt3 == 2)
800bad6: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800bada: b2db uxtb r3, r3
800badc: 2b02 cmp r3, #2
800bade: d151 bne.n 800bb84 <Display+0x5828>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800bae0: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800bae4: b2db uxtb r3, r3
800bae6: 461a mov r2, r3
800bae8: 4b22 ldr r3, [pc, #136] ; (800bb74 <Display+0x5818>)
800baea: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800baee: 2303 movs r3, #3
800baf0: 2164 movs r1, #100 ; 0x64
800baf2: 208c movs r0, #140 ; 0x8c
800baf4: f7f9 fba4 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800baf8: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800bafc: b2db uxtb r3, r3
800bafe: 461a mov r2, r3
800bb00: 4b1c ldr r3, [pc, #112] ; (800bb74 <Display+0x5818>)
800bb02: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bb06: 2303 movs r3, #3
800bb08: 2164 movs r1, #100 ; 0x64
800bb0a: 2093 movs r0, #147 ; 0x93
800bb0c: f7f9 fb98 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800bb10: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800bb14: b2db uxtb r3, r3
800bb16: 461a mov r2, r3
800bb18: 4b16 ldr r3, [pc, #88] ; (800bb74 <Display+0x5818>)
800bb1a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bb1e: 2303 movs r3, #3
800bb20: 2164 movs r1, #100 ; 0x64
800bb22: 209a movs r0, #154 ; 0x9a
800bb24: f7f9 fb8c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE);
800bb28: 2303 movs r3, #3
800bb2a: 4a13 ldr r2, [pc, #76] ; (800bb78 <Display+0x581c>)
800bb2c: 2164 movs r1, #100 ; 0x64
800bb2e: 20a1 movs r0, #161 ; 0xa1
800bb30: f7f9 fb86 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800bb34: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800bb38: b2db uxtb r3, r3
800bb3a: 461a mov r2, r3
800bb3c: 4b0d ldr r3, [pc, #52] ; (800bb74 <Display+0x5818>)
800bb3e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bb42: 2303 movs r3, #3
800bb44: 2164 movs r1, #100 ; 0x64
800bb46: 20a8 movs r0, #168 ; 0xa8
800bb48: f7f9 fb7a bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800bb4c: 4b0b ldr r3, [pc, #44] ; (800bb7c <Display+0x5820>)
800bb4e: 681b ldr r3, [r3, #0]
800bb50: 2b00 cmp r3, #0
800bb52: f001 83a8 beq.w 800d2a6 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800bb56: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800bb5a: b2db uxtb r3, r3
800bb5c: 461a mov r2, r3
800bb5e: 4b05 ldr r3, [pc, #20] ; (800bb74 <Display+0x5818>)
800bb60: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bb64: 2303 movs r3, #3
800bb66: 2164 movs r1, #100 ; 0x64
800bb68: 20af movs r0, #175 ; 0xaf
800bb6a: f7f9 fb69 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800bb6e: f001 bb9a b.w 800d2a6 <Display+0x6f4a>
800bb72: bf00 nop
800bb74: 2002084c .word 0x2002084c
800bb78: 080183cc .word 0x080183cc
800bb7c: 2006b958 .word 0x2006b958
800bb80: 20020010 .word 0x20020010
if(ipt3 == 3)
800bb84: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800bb88: b2db uxtb r3, r3
800bb8a: 2b03 cmp r3, #3
800bb8c: d148 bne.n 800bc20 <Display+0x58c4>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800bb8e: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800bb92: b2db uxtb r3, r3
800bb94: 461a mov r2, r3
800bb96: 4bc4 ldr r3, [pc, #784] ; (800bea8 <Display+0x5b4c>)
800bb98: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bb9c: 2303 movs r3, #3
800bb9e: 2164 movs r1, #100 ; 0x64
800bba0: 208c movs r0, #140 ; 0x8c
800bba2: f7f9 fb4d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800bba6: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800bbaa: b2db uxtb r3, r3
800bbac: 461a mov r2, r3
800bbae: 4bbe ldr r3, [pc, #760] ; (800bea8 <Display+0x5b4c>)
800bbb0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bbb4: 2303 movs r3, #3
800bbb6: 2164 movs r1, #100 ; 0x64
800bbb8: 2093 movs r0, #147 ; 0x93
800bbba: f7f9 fb41 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE);
800bbbe: 2303 movs r3, #3
800bbc0: 4aba ldr r2, [pc, #744] ; (800beac <Display+0x5b50>)
800bbc2: 2164 movs r1, #100 ; 0x64
800bbc4: 209a movs r0, #154 ; 0x9a
800bbc6: f7f9 fb3b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800bbca: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800bbce: b2db uxtb r3, r3
800bbd0: 461a mov r2, r3
800bbd2: 4bb5 ldr r3, [pc, #724] ; (800bea8 <Display+0x5b4c>)
800bbd4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bbd8: 2303 movs r3, #3
800bbda: 2164 movs r1, #100 ; 0x64
800bbdc: 20a1 movs r0, #161 ; 0xa1
800bbde: f7f9 fb2f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800bbe2: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800bbe6: b2db uxtb r3, r3
800bbe8: 461a mov r2, r3
800bbea: 4baf ldr r3, [pc, #700] ; (800bea8 <Display+0x5b4c>)
800bbec: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bbf0: 2303 movs r3, #3
800bbf2: 2164 movs r1, #100 ; 0x64
800bbf4: 20a8 movs r0, #168 ; 0xa8
800bbf6: f7f9 fb23 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800bbfa: 4bad ldr r3, [pc, #692] ; (800beb0 <Display+0x5b54>)
800bbfc: 681b ldr r3, [r3, #0]
800bbfe: 2b00 cmp r3, #0
800bc00: f001 8351 beq.w 800d2a6 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800bc04: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800bc08: b2db uxtb r3, r3
800bc0a: 461a mov r2, r3
800bc0c: 4ba6 ldr r3, [pc, #664] ; (800bea8 <Display+0x5b4c>)
800bc0e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bc12: 2303 movs r3, #3
800bc14: 2164 movs r1, #100 ; 0x64
800bc16: 20af movs r0, #175 ; 0xaf
800bc18: f7f9 fb12 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800bc1c: f001 bb43 b.w 800d2a6 <Display+0x6f4a>
if(ipt3 == 4)
800bc20: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800bc24: b2db uxtb r3, r3
800bc26: 2b04 cmp r3, #4
800bc28: f041 833d bne.w 800d2a6 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800bc2c: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800bc30: b2db uxtb r3, r3
800bc32: 461a mov r2, r3
800bc34: 4b9c ldr r3, [pc, #624] ; (800bea8 <Display+0x5b4c>)
800bc36: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bc3a: 2303 movs r3, #3
800bc3c: 2164 movs r1, #100 ; 0x64
800bc3e: 208c movs r0, #140 ; 0x8c
800bc40: f7f9 fafe bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE);
800bc44: 2303 movs r3, #3
800bc46: 4a99 ldr r2, [pc, #612] ; (800beac <Display+0x5b50>)
800bc48: 2164 movs r1, #100 ; 0x64
800bc4a: 2093 movs r0, #147 ; 0x93
800bc4c: f7f9 faf8 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE);
800bc50: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800bc54: b2db uxtb r3, r3
800bc56: 461a mov r2, r3
800bc58: 4b93 ldr r3, [pc, #588] ; (800bea8 <Display+0x5b4c>)
800bc5a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bc5e: 2303 movs r3, #3
800bc60: 2164 movs r1, #100 ; 0x64
800bc62: 209a movs r0, #154 ; 0x9a
800bc64: f7f9 faec bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800bc68: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800bc6c: b2db uxtb r3, r3
800bc6e: 461a mov r2, r3
800bc70: 4b8d ldr r3, [pc, #564] ; (800bea8 <Display+0x5b4c>)
800bc72: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bc76: 2303 movs r3, #3
800bc78: 2164 movs r1, #100 ; 0x64
800bc7a: 20a1 movs r0, #161 ; 0xa1
800bc7c: f7f9 fae0 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800bc80: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800bc84: b2db uxtb r3, r3
800bc86: 461a mov r2, r3
800bc88: 4b87 ldr r3, [pc, #540] ; (800bea8 <Display+0x5b4c>)
800bc8a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bc8e: 2303 movs r3, #3
800bc90: 2164 movs r1, #100 ; 0x64
800bc92: 20a8 movs r0, #168 ; 0xa8
800bc94: f7f9 fad4 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800bc98: 4b85 ldr r3, [pc, #532] ; (800beb0 <Display+0x5b54>)
800bc9a: 681b ldr r3, [r3, #0]
800bc9c: 2b00 cmp r3, #0
800bc9e: f001 8302 beq.w 800d2a6 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800bca2: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800bca6: b2db uxtb r3, r3
800bca8: 461a mov r2, r3
800bcaa: 4b7f ldr r3, [pc, #508] ; (800bea8 <Display+0x5b4c>)
800bcac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bcb0: 2303 movs r3, #3
800bcb2: 2164 movs r1, #100 ; 0x64
800bcb4: 20af movs r0, #175 ; 0xaf
800bcb6: f7f9 fac3 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800bcba: f001 baf4 b.w 800d2a6 <Display+0x6f4a>
if(menupos == Kpt_3)
800bcbe: 4b7d ldr r3, [pc, #500] ; (800beb4 <Display+0x5b58>)
800bcc0: 781b ldrb r3, [r3, #0]
800bcc2: b2db uxtb r3, r3
800bcc4: 2b17 cmp r3, #23
800bcc6: f041 82ee bne.w 800d2a6 <Display+0x6f4a>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800bcca: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800bcce: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800bcd2: f7f9 f9ef bl 80050b4 <LCD_SetColors>
if(!ipt3)
800bcd6: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800bcda: b2db uxtb r3, r3
800bcdc: 2b00 cmp r3, #0
800bcde: d148 bne.n 800bd72 <Display+0x5a16>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800bce0: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800bce4: b2db uxtb r3, r3
800bce6: 461a mov r2, r3
800bce8: 4b6f ldr r3, [pc, #444] ; (800bea8 <Display+0x5b4c>)
800bcea: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bcee: 2303 movs r3, #3
800bcf0: 2164 movs r1, #100 ; 0x64
800bcf2: 208c movs r0, #140 ; 0x8c
800bcf4: f7f9 faa4 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800bcf8: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800bcfc: b2db uxtb r3, r3
800bcfe: 461a mov r2, r3
800bd00: 4b69 ldr r3, [pc, #420] ; (800bea8 <Display+0x5b4c>)
800bd02: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bd06: 2303 movs r3, #3
800bd08: 2164 movs r1, #100 ; 0x64
800bd0a: 2093 movs r0, #147 ; 0x93
800bd0c: f7f9 fa98 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800bd10: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800bd14: b2db uxtb r3, r3
800bd16: 461a mov r2, r3
800bd18: 4b63 ldr r3, [pc, #396] ; (800bea8 <Display+0x5b4c>)
800bd1a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bd1e: 2303 movs r3, #3
800bd20: 2164 movs r1, #100 ; 0x64
800bd22: 209a movs r0, #154 ; 0x9a
800bd24: f7f9 fa8c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800bd28: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800bd2c: b2db uxtb r3, r3
800bd2e: 461a mov r2, r3
800bd30: 4b5d ldr r3, [pc, #372] ; (800bea8 <Display+0x5b4c>)
800bd32: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bd36: 2303 movs r3, #3
800bd38: 2164 movs r1, #100 ; 0x64
800bd3a: 20a1 movs r0, #161 ; 0xa1
800bd3c: f7f9 fa80 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE);
800bd40: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800bd44: b2db uxtb r3, r3
800bd46: 461a mov r2, r3
800bd48: 4b57 ldr r3, [pc, #348] ; (800bea8 <Display+0x5b4c>)
800bd4a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bd4e: 2303 movs r3, #3
800bd50: 2164 movs r1, #100 ; 0x64
800bd52: 20a8 movs r0, #168 ; 0xa8
800bd54: f7f9 fa74 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800bd58: 4b55 ldr r3, [pc, #340] ; (800beb0 <Display+0x5b54>)
800bd5a: 681b ldr r3, [r3, #0]
800bd5c: 2b00 cmp r3, #0
800bd5e: f001 82a2 beq.w 800d2a6 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140+35, 100, ".", LEFT_MODE);
800bd62: 2303 movs r3, #3
800bd64: 4a51 ldr r2, [pc, #324] ; (800beac <Display+0x5b50>)
800bd66: 2164 movs r1, #100 ; 0x64
800bd68: 20af movs r0, #175 ; 0xaf
800bd6a: f7f9 fa69 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800bd6e: f001 ba9a b.w 800d2a6 <Display+0x6f4a>
if(ipt3 == 1)
800bd72: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800bd76: b2db uxtb r3, r3
800bd78: 2b01 cmp r3, #1
800bd7a: d147 bne.n 800be0c <Display+0x5ab0>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800bd7c: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800bd80: b2db uxtb r3, r3
800bd82: 461a mov r2, r3
800bd84: 4b48 ldr r3, [pc, #288] ; (800bea8 <Display+0x5b4c>)
800bd86: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bd8a: 2303 movs r3, #3
800bd8c: 2164 movs r1, #100 ; 0x64
800bd8e: 208c movs r0, #140 ; 0x8c
800bd90: f7f9 fa56 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800bd94: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800bd98: b2db uxtb r3, r3
800bd9a: 461a mov r2, r3
800bd9c: 4b42 ldr r3, [pc, #264] ; (800bea8 <Display+0x5b4c>)
800bd9e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bda2: 2303 movs r3, #3
800bda4: 2164 movs r1, #100 ; 0x64
800bda6: 2093 movs r0, #147 ; 0x93
800bda8: f7f9 fa4a bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800bdac: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800bdb0: b2db uxtb r3, r3
800bdb2: 461a mov r2, r3
800bdb4: 4b3c ldr r3, [pc, #240] ; (800bea8 <Display+0x5b4c>)
800bdb6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bdba: 2303 movs r3, #3
800bdbc: 2164 movs r1, #100 ; 0x64
800bdbe: 209a movs r0, #154 ; 0x9a
800bdc0: f7f9 fa3e bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800bdc4: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800bdc8: b2db uxtb r3, r3
800bdca: 461a mov r2, r3
800bdcc: 4b36 ldr r3, [pc, #216] ; (800bea8 <Display+0x5b4c>)
800bdce: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bdd2: 2303 movs r3, #3
800bdd4: 2164 movs r1, #100 ; 0x64
800bdd6: 20a1 movs r0, #161 ; 0xa1
800bdd8: f7f9 fa32 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800bddc: 4b34 ldr r3, [pc, #208] ; (800beb0 <Display+0x5b54>)
800bdde: 681b ldr r3, [r3, #0]
800bde0: 2b00 cmp r3, #0
800bde2: d005 beq.n 800bdf0 <Display+0x5a94>
BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE);
800bde4: 2303 movs r3, #3
800bde6: 4a31 ldr r2, [pc, #196] ; (800beac <Display+0x5b50>)
800bde8: 2164 movs r1, #100 ; 0x64
800bdea: 20a8 movs r0, #168 ; 0xa8
800bdec: f7f9 fa28 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800bdf0: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800bdf4: b2db uxtb r3, r3
800bdf6: 461a mov r2, r3
800bdf8: 4b2b ldr r3, [pc, #172] ; (800bea8 <Display+0x5b4c>)
800bdfa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bdfe: 2303 movs r3, #3
800be00: 2164 movs r1, #100 ; 0x64
800be02: 20af movs r0, #175 ; 0xaf
800be04: f7f9 fa1c bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800be08: f001 ba4d b.w 800d2a6 <Display+0x6f4a>
if(ipt3 == 2)
800be0c: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800be10: b2db uxtb r3, r3
800be12: 2b02 cmp r3, #2
800be14: d150 bne.n 800beb8 <Display+0x5b5c>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800be16: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800be1a: b2db uxtb r3, r3
800be1c: 461a mov r2, r3
800be1e: 4b22 ldr r3, [pc, #136] ; (800bea8 <Display+0x5b4c>)
800be20: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800be24: 2303 movs r3, #3
800be26: 2164 movs r1, #100 ; 0x64
800be28: 208c movs r0, #140 ; 0x8c
800be2a: f7f9 fa09 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800be2e: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800be32: b2db uxtb r3, r3
800be34: 461a mov r2, r3
800be36: 4b1c ldr r3, [pc, #112] ; (800bea8 <Display+0x5b4c>)
800be38: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800be3c: 2303 movs r3, #3
800be3e: 2164 movs r1, #100 ; 0x64
800be40: 2093 movs r0, #147 ; 0x93
800be42: f7f9 f9fd bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800be46: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800be4a: b2db uxtb r3, r3
800be4c: 461a mov r2, r3
800be4e: 4b16 ldr r3, [pc, #88] ; (800bea8 <Display+0x5b4c>)
800be50: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800be54: 2303 movs r3, #3
800be56: 2164 movs r1, #100 ; 0x64
800be58: 209a movs r0, #154 ; 0x9a
800be5a: f7f9 f9f1 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800be5e: 4b14 ldr r3, [pc, #80] ; (800beb0 <Display+0x5b54>)
800be60: 681b ldr r3, [r3, #0]
800be62: 2b00 cmp r3, #0
800be64: d005 beq.n 800be72 <Display+0x5b16>
BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE);
800be66: 2303 movs r3, #3
800be68: 4a10 ldr r2, [pc, #64] ; (800beac <Display+0x5b50>)
800be6a: 2164 movs r1, #100 ; 0x64
800be6c: 20a1 movs r0, #161 ; 0xa1
800be6e: f7f9 f9e7 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800be72: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800be76: b2db uxtb r3, r3
800be78: 461a mov r2, r3
800be7a: 4b0b ldr r3, [pc, #44] ; (800bea8 <Display+0x5b4c>)
800be7c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800be80: 2303 movs r3, #3
800be82: 2164 movs r1, #100 ; 0x64
800be84: 20a8 movs r0, #168 ; 0xa8
800be86: f7f9 f9db bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800be8a: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800be8e: b2db uxtb r3, r3
800be90: 461a mov r2, r3
800be92: 4b05 ldr r3, [pc, #20] ; (800bea8 <Display+0x5b4c>)
800be94: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800be98: 2303 movs r3, #3
800be9a: 2164 movs r1, #100 ; 0x64
800be9c: 20af movs r0, #175 ; 0xaf
800be9e: f7f9 f9cf bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800bea2: f001 ba00 b.w 800d2a6 <Display+0x6f4a>
800bea6: bf00 nop
800bea8: 2002084c .word 0x2002084c
800beac: 080183cc .word 0x080183cc
800beb0: 2006b958 .word 0x2006b958
800beb4: 20020010 .word 0x20020010
if(ipt3 == 3)
800beb8: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800bebc: b2db uxtb r3, r3
800bebe: 2b03 cmp r3, #3
800bec0: d147 bne.n 800bf52 <Display+0x5bf6>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800bec2: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800bec6: b2db uxtb r3, r3
800bec8: 461a mov r2, r3
800beca: 4bc2 ldr r3, [pc, #776] ; (800c1d4 <Display+0x5e78>)
800becc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bed0: 2303 movs r3, #3
800bed2: 2164 movs r1, #100 ; 0x64
800bed4: 208c movs r0, #140 ; 0x8c
800bed6: f7f9 f9b3 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800beda: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800bede: b2db uxtb r3, r3
800bee0: 461a mov r2, r3
800bee2: 4bbc ldr r3, [pc, #752] ; (800c1d4 <Display+0x5e78>)
800bee4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bee8: 2303 movs r3, #3
800beea: 2164 movs r1, #100 ; 0x64
800beec: 2093 movs r0, #147 ; 0x93
800beee: f7f9 f9a7 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800bef2: 4bb9 ldr r3, [pc, #740] ; (800c1d8 <Display+0x5e7c>)
800bef4: 681b ldr r3, [r3, #0]
800bef6: 2b00 cmp r3, #0
800bef8: d005 beq.n 800bf06 <Display+0x5baa>
BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE);
800befa: 2303 movs r3, #3
800befc: 4ab7 ldr r2, [pc, #732] ; (800c1dc <Display+0x5e80>)
800befe: 2164 movs r1, #100 ; 0x64
800bf00: 209a movs r0, #154 ; 0x9a
800bf02: f7f9 f99d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800bf06: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800bf0a: b2db uxtb r3, r3
800bf0c: 461a mov r2, r3
800bf0e: 4bb1 ldr r3, [pc, #708] ; (800c1d4 <Display+0x5e78>)
800bf10: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bf14: 2303 movs r3, #3
800bf16: 2164 movs r1, #100 ; 0x64
800bf18: 20a1 movs r0, #161 ; 0xa1
800bf1a: f7f9 f991 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800bf1e: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800bf22: b2db uxtb r3, r3
800bf24: 461a mov r2, r3
800bf26: 4bab ldr r3, [pc, #684] ; (800c1d4 <Display+0x5e78>)
800bf28: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bf2c: 2303 movs r3, #3
800bf2e: 2164 movs r1, #100 ; 0x64
800bf30: 20a8 movs r0, #168 ; 0xa8
800bf32: f7f9 f985 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800bf36: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800bf3a: b2db uxtb r3, r3
800bf3c: 461a mov r2, r3
800bf3e: 4ba5 ldr r3, [pc, #660] ; (800c1d4 <Display+0x5e78>)
800bf40: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bf44: 2303 movs r3, #3
800bf46: 2164 movs r1, #100 ; 0x64
800bf48: 20af movs r0, #175 ; 0xaf
800bf4a: f7f9 f979 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800bf4e: f001 b9aa b.w 800d2a6 <Display+0x6f4a>
if(ipt3 == 4)
800bf52: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800bf56: b2db uxtb r3, r3
800bf58: 2b04 cmp r3, #4
800bf5a: f041 81a4 bne.w 800d2a6 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800bf5e: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800bf62: b2db uxtb r3, r3
800bf64: 461a mov r2, r3
800bf66: 4b9b ldr r3, [pc, #620] ; (800c1d4 <Display+0x5e78>)
800bf68: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bf6c: 2303 movs r3, #3
800bf6e: 2164 movs r1, #100 ; 0x64
800bf70: 208c movs r0, #140 ; 0x8c
800bf72: f7f9 f965 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800bf76: 4b98 ldr r3, [pc, #608] ; (800c1d8 <Display+0x5e7c>)
800bf78: 681b ldr r3, [r3, #0]
800bf7a: 2b00 cmp r3, #0
800bf7c: d005 beq.n 800bf8a <Display+0x5c2e>
BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE);
800bf7e: 2303 movs r3, #3
800bf80: 4a96 ldr r2, [pc, #600] ; (800c1dc <Display+0x5e80>)
800bf82: 2164 movs r1, #100 ; 0x64
800bf84: 2093 movs r0, #147 ; 0x93
800bf86: f7f9 f95b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE);
800bf8a: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800bf8e: b2db uxtb r3, r3
800bf90: 461a mov r2, r3
800bf92: 4b90 ldr r3, [pc, #576] ; (800c1d4 <Display+0x5e78>)
800bf94: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bf98: 2303 movs r3, #3
800bf9a: 2164 movs r1, #100 ; 0x64
800bf9c: 209a movs r0, #154 ; 0x9a
800bf9e: f7f9 f94f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800bfa2: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800bfa6: b2db uxtb r3, r3
800bfa8: 461a mov r2, r3
800bfaa: 4b8a ldr r3, [pc, #552] ; (800c1d4 <Display+0x5e78>)
800bfac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bfb0: 2303 movs r3, #3
800bfb2: 2164 movs r1, #100 ; 0x64
800bfb4: 20a1 movs r0, #161 ; 0xa1
800bfb6: f7f9 f943 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800bfba: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800bfbe: b2db uxtb r3, r3
800bfc0: 461a mov r2, r3
800bfc2: 4b84 ldr r3, [pc, #528] ; (800c1d4 <Display+0x5e78>)
800bfc4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bfc8: 2303 movs r3, #3
800bfca: 2164 movs r1, #100 ; 0x64
800bfcc: 20a8 movs r0, #168 ; 0xa8
800bfce: f7f9 f937 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800bfd2: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800bfd6: b2db uxtb r3, r3
800bfd8: 461a mov r2, r3
800bfda: 4b7e ldr r3, [pc, #504] ; (800c1d4 <Display+0x5e78>)
800bfdc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bfe0: 2303 movs r3, #3
800bfe2: 2164 movs r1, #100 ; 0x64
800bfe4: 20af movs r0, #175 ; 0xaf
800bfe6: f7f9 f92b bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800bfea: f001 b95c b.w 800d2a6 <Display+0x6f4a>
if(menupos >= Kikdt_4 && menupos <= Kpt_4)
800bfee: 4b7c ldr r3, [pc, #496] ; (800c1e0 <Display+0x5e84>)
800bff0: 781b ldrb r3, [r3, #0]
800bff2: b2db uxtb r3, r3
800bff4: 2b19 cmp r3, #25
800bff6: f241 8663 bls.w 800dcc0 <Display+0x7964>
800bffa: 4b79 ldr r3, [pc, #484] ; (800c1e0 <Display+0x5e84>)
800bffc: 781b ldrb r3, [r3, #0]
800bffe: b2db uxtb r3, r3
800c000: 2b1f cmp r3, #31
800c002: f201 865d bhi.w 800dcc0 <Display+0x7964>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800c006: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800c00a: 4876 ldr r0, [pc, #472] ; (800c1e4 <Display+0x5e88>)
800c00c: f7f9 f852 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
800c010: f507 728e add.w r2, r7, #284 ; 0x11c
800c014: 2303 movs r3, #3
800c016: 213c movs r1, #60 ; 0x3c
800c018: 208c movs r0, #140 ; 0x8c
800c01a: f7f9 f911 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
800c01e: f107 02e0 add.w r2, r7, #224 ; 0xe0
800c022: 2303 movs r3, #3
800c024: 2150 movs r1, #80 ; 0x50
800c026: 208c movs r0, #140 ; 0x8c
800c028: f7f9 f90a bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
800c02c: f107 02a4 add.w r2, r7, #164 ; 0xa4
800c030: 2303 movs r3, #3
800c032: 2164 movs r1, #100 ; 0x64
800c034: 208c movs r0, #140 ; 0x8c
800c036: f7f9 f903 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_4)
800c03a: 4b69 ldr r3, [pc, #420] ; (800c1e0 <Display+0x5e84>)
800c03c: 781b ldrb r3, [r3, #0]
800c03e: b2db uxtb r3, r3
800c040: 2b1a cmp r3, #26
800c042: f040 814c bne.w 800c2de <Display+0x5f82>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800c046: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800c04a: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800c04e: f7f9 f831 bl 80050b4 <LCD_SetColors>
if(blk)
800c052: 4b61 ldr r3, [pc, #388] ; (800c1d8 <Display+0x5e7c>)
800c054: 681b ldr r3, [r3, #0]
800c056: 2b00 cmp r3, #0
800c058: d00b beq.n 800c072 <Display+0x5d16>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c05a: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c05e: b2db uxtb r3, r3
800c060: 461a mov r2, r3
800c062: 4b5c ldr r3, [pc, #368] ; (800c1d4 <Display+0x5e78>)
800c064: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c068: 2303 movs r3, #3
800c06a: 2178 movs r1, #120 ; 0x78
800c06c: 208c movs r0, #140 ; 0x8c
800c06e: f7f9 f8e7 bl 8005240 <BSP_LCD_DisplayStringAt>
if(!ipt4)
800c072: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c076: b2db uxtb r3, r3
800c078: 2b00 cmp r3, #0
800c07a: d131 bne.n 800c0e0 <Display+0x5d84>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c07c: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c080: b2db uxtb r3, r3
800c082: 461a mov r2, r3
800c084: 4b53 ldr r3, [pc, #332] ; (800c1d4 <Display+0x5e78>)
800c086: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c08a: 2303 movs r3, #3
800c08c: 2178 movs r1, #120 ; 0x78
800c08e: 2093 movs r0, #147 ; 0x93
800c090: f7f9 f8d6 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c094: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c098: b2db uxtb r3, r3
800c09a: 461a mov r2, r3
800c09c: 4b4d ldr r3, [pc, #308] ; (800c1d4 <Display+0x5e78>)
800c09e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c0a2: 2303 movs r3, #3
800c0a4: 2178 movs r1, #120 ; 0x78
800c0a6: 209a movs r0, #154 ; 0x9a
800c0a8: f7f9 f8ca bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c0ac: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c0b0: b2db uxtb r3, r3
800c0b2: 461a mov r2, r3
800c0b4: 4b47 ldr r3, [pc, #284] ; (800c1d4 <Display+0x5e78>)
800c0b6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c0ba: 2303 movs r3, #3
800c0bc: 2178 movs r1, #120 ; 0x78
800c0be: 20a1 movs r0, #161 ; 0xa1
800c0c0: f7f9 f8be bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c0c4: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c0c8: b2db uxtb r3, r3
800c0ca: 461a mov r2, r3
800c0cc: 4b41 ldr r3, [pc, #260] ; (800c1d4 <Display+0x5e78>)
800c0ce: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c0d2: 2303 movs r3, #3
800c0d4: 2178 movs r1, #120 ; 0x78
800c0d6: 20a8 movs r0, #168 ; 0xa8
800c0d8: f7f9 f8b2 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800c0dc: f001 bdf0 b.w 800dcc0 <Display+0x7964>
if(ipt4 == 1)
800c0e0: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c0e4: b2db uxtb r3, r3
800c0e6: 2b01 cmp r3, #1
800c0e8: d137 bne.n 800c15a <Display+0x5dfe>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c0ea: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c0ee: b2db uxtb r3, r3
800c0f0: 461a mov r2, r3
800c0f2: 4b38 ldr r3, [pc, #224] ; (800c1d4 <Display+0x5e78>)
800c0f4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c0f8: 2303 movs r3, #3
800c0fa: 2178 movs r1, #120 ; 0x78
800c0fc: 2093 movs r0, #147 ; 0x93
800c0fe: f7f9 f89f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c102: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c106: b2db uxtb r3, r3
800c108: 461a mov r2, r3
800c10a: 4b32 ldr r3, [pc, #200] ; (800c1d4 <Display+0x5e78>)
800c10c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c110: 2303 movs r3, #3
800c112: 2178 movs r1, #120 ; 0x78
800c114: 209a movs r0, #154 ; 0x9a
800c116: f7f9 f893 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c11a: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c11e: b2db uxtb r3, r3
800c120: 461a mov r2, r3
800c122: 4b2c ldr r3, [pc, #176] ; (800c1d4 <Display+0x5e78>)
800c124: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c128: 2303 movs r3, #3
800c12a: 2178 movs r1, #120 ; 0x78
800c12c: 20a1 movs r0, #161 ; 0xa1
800c12e: f7f9 f887 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE);
800c132: 2303 movs r3, #3
800c134: 4a29 ldr r2, [pc, #164] ; (800c1dc <Display+0x5e80>)
800c136: 2178 movs r1, #120 ; 0x78
800c138: 20a8 movs r0, #168 ; 0xa8
800c13a: f7f9 f881 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c13e: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c142: b2db uxtb r3, r3
800c144: 461a mov r2, r3
800c146: 4b23 ldr r3, [pc, #140] ; (800c1d4 <Display+0x5e78>)
800c148: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c14c: 2303 movs r3, #3
800c14e: 2178 movs r1, #120 ; 0x78
800c150: 20af movs r0, #175 ; 0xaf
800c152: f7f9 f875 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800c156: f001 bdb3 b.w 800dcc0 <Display+0x7964>
if(ipt4 == 2)
800c15a: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c15e: b2db uxtb r3, r3
800c160: 2b02 cmp r3, #2
800c162: d141 bne.n 800c1e8 <Display+0x5e8c>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c164: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c168: b2db uxtb r3, r3
800c16a: 461a mov r2, r3
800c16c: 4b19 ldr r3, [pc, #100] ; (800c1d4 <Display+0x5e78>)
800c16e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c172: 2303 movs r3, #3
800c174: 2178 movs r1, #120 ; 0x78
800c176: 2093 movs r0, #147 ; 0x93
800c178: f7f9 f862 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c17c: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c180: b2db uxtb r3, r3
800c182: 461a mov r2, r3
800c184: 4b13 ldr r3, [pc, #76] ; (800c1d4 <Display+0x5e78>)
800c186: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c18a: 2303 movs r3, #3
800c18c: 2178 movs r1, #120 ; 0x78
800c18e: 209a movs r0, #154 ; 0x9a
800c190: f7f9 f856 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE);
800c194: 2303 movs r3, #3
800c196: 4a11 ldr r2, [pc, #68] ; (800c1dc <Display+0x5e80>)
800c198: 2178 movs r1, #120 ; 0x78
800c19a: 20a1 movs r0, #161 ; 0xa1
800c19c: f7f9 f850 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c1a0: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c1a4: b2db uxtb r3, r3
800c1a6: 461a mov r2, r3
800c1a8: 4b0a ldr r3, [pc, #40] ; (800c1d4 <Display+0x5e78>)
800c1aa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c1ae: 2303 movs r3, #3
800c1b0: 2178 movs r1, #120 ; 0x78
800c1b2: 20a8 movs r0, #168 ; 0xa8
800c1b4: f7f9 f844 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c1b8: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c1bc: b2db uxtb r3, r3
800c1be: 461a mov r2, r3
800c1c0: 4b04 ldr r3, [pc, #16] ; (800c1d4 <Display+0x5e78>)
800c1c2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c1c6: 2303 movs r3, #3
800c1c8: 2178 movs r1, #120 ; 0x78
800c1ca: 20af movs r0, #175 ; 0xaf
800c1cc: f7f9 f838 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800c1d0: f001 bd76 b.w 800dcc0 <Display+0x7964>
800c1d4: 2002084c .word 0x2002084c
800c1d8: 2006b958 .word 0x2006b958
800c1dc: 080183cc .word 0x080183cc
800c1e0: 20020010 .word 0x20020010
800c1e4: ffd8aa57 .word 0xffd8aa57
if(ipt4 == 3)
800c1e8: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c1ec: b2db uxtb r3, r3
800c1ee: 2b03 cmp r3, #3
800c1f0: d137 bne.n 800c262 <Display+0x5f06>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c1f2: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c1f6: b2db uxtb r3, r3
800c1f8: 461a mov r2, r3
800c1fa: 4baf ldr r3, [pc, #700] ; (800c4b8 <Display+0x615c>)
800c1fc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c200: 2303 movs r3, #3
800c202: 2178 movs r1, #120 ; 0x78
800c204: 2093 movs r0, #147 ; 0x93
800c206: f7f9 f81b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE);
800c20a: 2303 movs r3, #3
800c20c: 4aab ldr r2, [pc, #684] ; (800c4bc <Display+0x6160>)
800c20e: 2178 movs r1, #120 ; 0x78
800c210: 209a movs r0, #154 ; 0x9a
800c212: f7f9 f815 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c216: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c21a: b2db uxtb r3, r3
800c21c: 461a mov r2, r3
800c21e: 4ba6 ldr r3, [pc, #664] ; (800c4b8 <Display+0x615c>)
800c220: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c224: 2303 movs r3, #3
800c226: 2178 movs r1, #120 ; 0x78
800c228: 20a1 movs r0, #161 ; 0xa1
800c22a: f7f9 f809 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c22e: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c232: b2db uxtb r3, r3
800c234: 461a mov r2, r3
800c236: 4ba0 ldr r3, [pc, #640] ; (800c4b8 <Display+0x615c>)
800c238: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c23c: 2303 movs r3, #3
800c23e: 2178 movs r1, #120 ; 0x78
800c240: 20a8 movs r0, #168 ; 0xa8
800c242: f7f8 fffd bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c246: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c24a: b2db uxtb r3, r3
800c24c: 461a mov r2, r3
800c24e: 4b9a ldr r3, [pc, #616] ; (800c4b8 <Display+0x615c>)
800c250: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c254: 2303 movs r3, #3
800c256: 2178 movs r1, #120 ; 0x78
800c258: 20af movs r0, #175 ; 0xaf
800c25a: f7f8 fff1 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800c25e: f001 bd2f b.w 800dcc0 <Display+0x7964>
if(ipt4 == 4)
800c262: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c266: b2db uxtb r3, r3
800c268: 2b04 cmp r3, #4
800c26a: f041 8529 bne.w 800dcc0 <Display+0x7964>
BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE);
800c26e: 2303 movs r3, #3
800c270: 4a92 ldr r2, [pc, #584] ; (800c4bc <Display+0x6160>)
800c272: 2178 movs r1, #120 ; 0x78
800c274: 2093 movs r0, #147 ; 0x93
800c276: f7f8 ffe3 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c27a: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c27e: b2db uxtb r3, r3
800c280: 461a mov r2, r3
800c282: 4b8d ldr r3, [pc, #564] ; (800c4b8 <Display+0x615c>)
800c284: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c288: 2303 movs r3, #3
800c28a: 2178 movs r1, #120 ; 0x78
800c28c: 209a movs r0, #154 ; 0x9a
800c28e: f7f8 ffd7 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c292: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c296: b2db uxtb r3, r3
800c298: 461a mov r2, r3
800c29a: 4b87 ldr r3, [pc, #540] ; (800c4b8 <Display+0x615c>)
800c29c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c2a0: 2303 movs r3, #3
800c2a2: 2178 movs r1, #120 ; 0x78
800c2a4: 20a1 movs r0, #161 ; 0xa1
800c2a6: f7f8 ffcb bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c2aa: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c2ae: b2db uxtb r3, r3
800c2b0: 461a mov r2, r3
800c2b2: 4b81 ldr r3, [pc, #516] ; (800c4b8 <Display+0x615c>)
800c2b4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c2b8: 2303 movs r3, #3
800c2ba: 2178 movs r1, #120 ; 0x78
800c2bc: 20a8 movs r0, #168 ; 0xa8
800c2be: f7f8 ffbf bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c2c2: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c2c6: b2db uxtb r3, r3
800c2c8: 461a mov r2, r3
800c2ca: 4b7b ldr r3, [pc, #492] ; (800c4b8 <Display+0x615c>)
800c2cc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c2d0: 2303 movs r3, #3
800c2d2: 2178 movs r1, #120 ; 0x78
800c2d4: 20af movs r0, #175 ; 0xaf
800c2d6: f7f8 ffb3 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800c2da: f001 bcf1 b.w 800dcc0 <Display+0x7964>
if(menupos == Kikt_4)
800c2de: 4b78 ldr r3, [pc, #480] ; (800c4c0 <Display+0x6164>)
800c2e0: 781b ldrb r3, [r3, #0]
800c2e2: b2db uxtb r3, r3
800c2e4: 2b1b cmp r3, #27
800c2e6: f040 818a bne.w 800c5fe <Display+0x62a2>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800c2ea: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800c2ee: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800c2f2: f7f8 fedf bl 80050b4 <LCD_SetColors>
if(!ipt4)
800c2f6: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c2fa: b2db uxtb r3, r3
800c2fc: 2b00 cmp r3, #0
800c2fe: d141 bne.n 800c384 <Display+0x6028>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c300: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c304: b2db uxtb r3, r3
800c306: 461a mov r2, r3
800c308: 4b6b ldr r3, [pc, #428] ; (800c4b8 <Display+0x615c>)
800c30a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c30e: 2303 movs r3, #3
800c310: 2178 movs r1, #120 ; 0x78
800c312: 208c movs r0, #140 ; 0x8c
800c314: f7f8 ff94 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800c318: 4b6a ldr r3, [pc, #424] ; (800c4c4 <Display+0x6168>)
800c31a: 681b ldr r3, [r3, #0]
800c31c: 2b00 cmp r3, #0
800c31e: d00b beq.n 800c338 <Display+0x5fdc>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c320: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c324: b2db uxtb r3, r3
800c326: 461a mov r2, r3
800c328: 4b63 ldr r3, [pc, #396] ; (800c4b8 <Display+0x615c>)
800c32a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c32e: 2303 movs r3, #3
800c330: 2178 movs r1, #120 ; 0x78
800c332: 2093 movs r0, #147 ; 0x93
800c334: f7f8 ff84 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c338: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c33c: b2db uxtb r3, r3
800c33e: 461a mov r2, r3
800c340: 4b5d ldr r3, [pc, #372] ; (800c4b8 <Display+0x615c>)
800c342: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c346: 2303 movs r3, #3
800c348: 2178 movs r1, #120 ; 0x78
800c34a: 209a movs r0, #154 ; 0x9a
800c34c: f7f8 ff78 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c350: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c354: b2db uxtb r3, r3
800c356: 461a mov r2, r3
800c358: 4b57 ldr r3, [pc, #348] ; (800c4b8 <Display+0x615c>)
800c35a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c35e: 2303 movs r3, #3
800c360: 2178 movs r1, #120 ; 0x78
800c362: 20a1 movs r0, #161 ; 0xa1
800c364: f7f8 ff6c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c368: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c36c: b2db uxtb r3, r3
800c36e: 461a mov r2, r3
800c370: 4b51 ldr r3, [pc, #324] ; (800c4b8 <Display+0x615c>)
800c372: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c376: 2303 movs r3, #3
800c378: 2178 movs r1, #120 ; 0x78
800c37a: 20a8 movs r0, #168 ; 0xa8
800c37c: f7f8 ff60 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800c380: f001 bc9e b.w 800dcc0 <Display+0x7964>
if(ipt4 == 1)
800c384: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c388: b2db uxtb r3, r3
800c38a: 2b01 cmp r3, #1
800c38c: d147 bne.n 800c41e <Display+0x60c2>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c38e: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c392: b2db uxtb r3, r3
800c394: 461a mov r2, r3
800c396: 4b48 ldr r3, [pc, #288] ; (800c4b8 <Display+0x615c>)
800c398: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c39c: 2303 movs r3, #3
800c39e: 2178 movs r1, #120 ; 0x78
800c3a0: 208c movs r0, #140 ; 0x8c
800c3a2: f7f8 ff4d bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800c3a6: 4b47 ldr r3, [pc, #284] ; (800c4c4 <Display+0x6168>)
800c3a8: 681b ldr r3, [r3, #0]
800c3aa: 2b00 cmp r3, #0
800c3ac: d00b beq.n 800c3c6 <Display+0x606a>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c3ae: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c3b2: b2db uxtb r3, r3
800c3b4: 461a mov r2, r3
800c3b6: 4b40 ldr r3, [pc, #256] ; (800c4b8 <Display+0x615c>)
800c3b8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c3bc: 2303 movs r3, #3
800c3be: 2178 movs r1, #120 ; 0x78
800c3c0: 2093 movs r0, #147 ; 0x93
800c3c2: f7f8 ff3d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c3c6: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c3ca: b2db uxtb r3, r3
800c3cc: 461a mov r2, r3
800c3ce: 4b3a ldr r3, [pc, #232] ; (800c4b8 <Display+0x615c>)
800c3d0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c3d4: 2303 movs r3, #3
800c3d6: 2178 movs r1, #120 ; 0x78
800c3d8: 209a movs r0, #154 ; 0x9a
800c3da: f7f8 ff31 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c3de: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c3e2: b2db uxtb r3, r3
800c3e4: 461a mov r2, r3
800c3e6: 4b34 ldr r3, [pc, #208] ; (800c4b8 <Display+0x615c>)
800c3e8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c3ec: 2303 movs r3, #3
800c3ee: 2178 movs r1, #120 ; 0x78
800c3f0: 20a1 movs r0, #161 ; 0xa1
800c3f2: f7f8 ff25 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE);
800c3f6: 2303 movs r3, #3
800c3f8: 4a30 ldr r2, [pc, #192] ; (800c4bc <Display+0x6160>)
800c3fa: 2178 movs r1, #120 ; 0x78
800c3fc: 20a8 movs r0, #168 ; 0xa8
800c3fe: f7f8 ff1f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c402: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c406: b2db uxtb r3, r3
800c408: 461a mov r2, r3
800c40a: 4b2b ldr r3, [pc, #172] ; (800c4b8 <Display+0x615c>)
800c40c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c410: 2303 movs r3, #3
800c412: 2178 movs r1, #120 ; 0x78
800c414: 20af movs r0, #175 ; 0xaf
800c416: f7f8 ff13 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800c41a: f001 bc51 b.w 800dcc0 <Display+0x7964>
if(ipt4 == 2)
800c41e: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c422: b2db uxtb r3, r3
800c424: 2b02 cmp r3, #2
800c426: d14f bne.n 800c4c8 <Display+0x616c>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c428: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c42c: b2db uxtb r3, r3
800c42e: 461a mov r2, r3
800c430: 4b21 ldr r3, [pc, #132] ; (800c4b8 <Display+0x615c>)
800c432: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c436: 2303 movs r3, #3
800c438: 2178 movs r1, #120 ; 0x78
800c43a: 208c movs r0, #140 ; 0x8c
800c43c: f7f8 ff00 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800c440: 4b20 ldr r3, [pc, #128] ; (800c4c4 <Display+0x6168>)
800c442: 681b ldr r3, [r3, #0]
800c444: 2b00 cmp r3, #0
800c446: d00b beq.n 800c460 <Display+0x6104>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c448: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c44c: b2db uxtb r3, r3
800c44e: 461a mov r2, r3
800c450: 4b19 ldr r3, [pc, #100] ; (800c4b8 <Display+0x615c>)
800c452: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c456: 2303 movs r3, #3
800c458: 2178 movs r1, #120 ; 0x78
800c45a: 2093 movs r0, #147 ; 0x93
800c45c: f7f8 fef0 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c460: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c464: b2db uxtb r3, r3
800c466: 461a mov r2, r3
800c468: 4b13 ldr r3, [pc, #76] ; (800c4b8 <Display+0x615c>)
800c46a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c46e: 2303 movs r3, #3
800c470: 2178 movs r1, #120 ; 0x78
800c472: 209a movs r0, #154 ; 0x9a
800c474: f7f8 fee4 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE);
800c478: 2303 movs r3, #3
800c47a: 4a10 ldr r2, [pc, #64] ; (800c4bc <Display+0x6160>)
800c47c: 2178 movs r1, #120 ; 0x78
800c47e: 20a1 movs r0, #161 ; 0xa1
800c480: f7f8 fede bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c484: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c488: b2db uxtb r3, r3
800c48a: 461a mov r2, r3
800c48c: 4b0a ldr r3, [pc, #40] ; (800c4b8 <Display+0x615c>)
800c48e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c492: 2303 movs r3, #3
800c494: 2178 movs r1, #120 ; 0x78
800c496: 20a8 movs r0, #168 ; 0xa8
800c498: f7f8 fed2 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c49c: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c4a0: b2db uxtb r3, r3
800c4a2: 461a mov r2, r3
800c4a4: 4b04 ldr r3, [pc, #16] ; (800c4b8 <Display+0x615c>)
800c4a6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c4aa: 2303 movs r3, #3
800c4ac: 2178 movs r1, #120 ; 0x78
800c4ae: 20af movs r0, #175 ; 0xaf
800c4b0: f7f8 fec6 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800c4b4: f001 bc04 b.w 800dcc0 <Display+0x7964>
800c4b8: 2002084c .word 0x2002084c
800c4bc: 080183cc .word 0x080183cc
800c4c0: 20020010 .word 0x20020010
800c4c4: 2006b958 .word 0x2006b958
if(ipt4 == 3)
800c4c8: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c4cc: b2db uxtb r3, r3
800c4ce: 2b03 cmp r3, #3
800c4d0: d147 bne.n 800c562 <Display+0x6206>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c4d2: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c4d6: b2db uxtb r3, r3
800c4d8: 461a mov r2, r3
800c4da: 4bbf ldr r3, [pc, #764] ; (800c7d8 <Display+0x647c>)
800c4dc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c4e0: 2303 movs r3, #3
800c4e2: 2178 movs r1, #120 ; 0x78
800c4e4: 208c movs r0, #140 ; 0x8c
800c4e6: f7f8 feab bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800c4ea: 4bbc ldr r3, [pc, #752] ; (800c7dc <Display+0x6480>)
800c4ec: 681b ldr r3, [r3, #0]
800c4ee: 2b00 cmp r3, #0
800c4f0: d00b beq.n 800c50a <Display+0x61ae>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c4f2: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c4f6: b2db uxtb r3, r3
800c4f8: 461a mov r2, r3
800c4fa: 4bb7 ldr r3, [pc, #732] ; (800c7d8 <Display+0x647c>)
800c4fc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c500: 2303 movs r3, #3
800c502: 2178 movs r1, #120 ; 0x78
800c504: 2093 movs r0, #147 ; 0x93
800c506: f7f8 fe9b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE);
800c50a: 2303 movs r3, #3
800c50c: 4ab4 ldr r2, [pc, #720] ; (800c7e0 <Display+0x6484>)
800c50e: 2178 movs r1, #120 ; 0x78
800c510: 209a movs r0, #154 ; 0x9a
800c512: f7f8 fe95 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c516: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c51a: b2db uxtb r3, r3
800c51c: 461a mov r2, r3
800c51e: 4bae ldr r3, [pc, #696] ; (800c7d8 <Display+0x647c>)
800c520: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c524: 2303 movs r3, #3
800c526: 2178 movs r1, #120 ; 0x78
800c528: 20a1 movs r0, #161 ; 0xa1
800c52a: f7f8 fe89 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c52e: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c532: b2db uxtb r3, r3
800c534: 461a mov r2, r3
800c536: 4ba8 ldr r3, [pc, #672] ; (800c7d8 <Display+0x647c>)
800c538: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c53c: 2303 movs r3, #3
800c53e: 2178 movs r1, #120 ; 0x78
800c540: 20a8 movs r0, #168 ; 0xa8
800c542: f7f8 fe7d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c546: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c54a: b2db uxtb r3, r3
800c54c: 461a mov r2, r3
800c54e: 4ba2 ldr r3, [pc, #648] ; (800c7d8 <Display+0x647c>)
800c550: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c554: 2303 movs r3, #3
800c556: 2178 movs r1, #120 ; 0x78
800c558: 20af movs r0, #175 ; 0xaf
800c55a: f7f8 fe71 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800c55e: f001 bbaf b.w 800dcc0 <Display+0x7964>
if(ipt4 == 4)
800c562: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c566: b2db uxtb r3, r3
800c568: 2b04 cmp r3, #4
800c56a: f041 83a9 bne.w 800dcc0 <Display+0x7964>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c56e: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c572: b2db uxtb r3, r3
800c574: 461a mov r2, r3
800c576: 4b98 ldr r3, [pc, #608] ; (800c7d8 <Display+0x647c>)
800c578: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c57c: 2303 movs r3, #3
800c57e: 2178 movs r1, #120 ; 0x78
800c580: 208c movs r0, #140 ; 0x8c
800c582: f7f8 fe5d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE);
800c586: 2303 movs r3, #3
800c588: 4a95 ldr r2, [pc, #596] ; (800c7e0 <Display+0x6484>)
800c58a: 2178 movs r1, #120 ; 0x78
800c58c: 2093 movs r0, #147 ; 0x93
800c58e: f7f8 fe57 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800c592: 4b92 ldr r3, [pc, #584] ; (800c7dc <Display+0x6480>)
800c594: 681b ldr r3, [r3, #0]
800c596: 2b00 cmp r3, #0
800c598: d00b beq.n 800c5b2 <Display+0x6256>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c59a: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c59e: b2db uxtb r3, r3
800c5a0: 461a mov r2, r3
800c5a2: 4b8d ldr r3, [pc, #564] ; (800c7d8 <Display+0x647c>)
800c5a4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c5a8: 2303 movs r3, #3
800c5aa: 2178 movs r1, #120 ; 0x78
800c5ac: 209a movs r0, #154 ; 0x9a
800c5ae: f7f8 fe47 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c5b2: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c5b6: b2db uxtb r3, r3
800c5b8: 461a mov r2, r3
800c5ba: 4b87 ldr r3, [pc, #540] ; (800c7d8 <Display+0x647c>)
800c5bc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c5c0: 2303 movs r3, #3
800c5c2: 2178 movs r1, #120 ; 0x78
800c5c4: 20a1 movs r0, #161 ; 0xa1
800c5c6: f7f8 fe3b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c5ca: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c5ce: b2db uxtb r3, r3
800c5d0: 461a mov r2, r3
800c5d2: 4b81 ldr r3, [pc, #516] ; (800c7d8 <Display+0x647c>)
800c5d4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c5d8: 2303 movs r3, #3
800c5da: 2178 movs r1, #120 ; 0x78
800c5dc: 20a8 movs r0, #168 ; 0xa8
800c5de: f7f8 fe2f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c5e2: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c5e6: b2db uxtb r3, r3
800c5e8: 461a mov r2, r3
800c5ea: 4b7b ldr r3, [pc, #492] ; (800c7d8 <Display+0x647c>)
800c5ec: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c5f0: 2303 movs r3, #3
800c5f2: 2178 movs r1, #120 ; 0x78
800c5f4: 20af movs r0, #175 ; 0xaf
800c5f6: f7f8 fe23 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800c5fa: f001 bb61 b.w 800dcc0 <Display+0x7964>
if(menupos == Kiks_4)
800c5fe: 4b79 ldr r3, [pc, #484] ; (800c7e4 <Display+0x6488>)
800c600: 781b ldrb r3, [r3, #0]
800c602: b2db uxtb r3, r3
800c604: 2b1c cmp r3, #28
800c606: f040 818a bne.w 800c91e <Display+0x65c2>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800c60a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800c60e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800c612: f7f8 fd4f bl 80050b4 <LCD_SetColors>
if(!ipt4)
800c616: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c61a: b2db uxtb r3, r3
800c61c: 2b00 cmp r3, #0
800c61e: d141 bne.n 800c6a4 <Display+0x6348>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c620: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c624: b2db uxtb r3, r3
800c626: 461a mov r2, r3
800c628: 4b6b ldr r3, [pc, #428] ; (800c7d8 <Display+0x647c>)
800c62a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c62e: 2303 movs r3, #3
800c630: 2178 movs r1, #120 ; 0x78
800c632: 208c movs r0, #140 ; 0x8c
800c634: f7f8 fe04 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c638: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c63c: b2db uxtb r3, r3
800c63e: 461a mov r2, r3
800c640: 4b65 ldr r3, [pc, #404] ; (800c7d8 <Display+0x647c>)
800c642: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c646: 2303 movs r3, #3
800c648: 2178 movs r1, #120 ; 0x78
800c64a: 2093 movs r0, #147 ; 0x93
800c64c: f7f8 fdf8 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800c650: 4b62 ldr r3, [pc, #392] ; (800c7dc <Display+0x6480>)
800c652: 681b ldr r3, [r3, #0]
800c654: 2b00 cmp r3, #0
800c656: d00b beq.n 800c670 <Display+0x6314>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c658: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c65c: b2db uxtb r3, r3
800c65e: 461a mov r2, r3
800c660: 4b5d ldr r3, [pc, #372] ; (800c7d8 <Display+0x647c>)
800c662: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c666: 2303 movs r3, #3
800c668: 2178 movs r1, #120 ; 0x78
800c66a: 209a movs r0, #154 ; 0x9a
800c66c: f7f8 fde8 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c670: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c674: b2db uxtb r3, r3
800c676: 461a mov r2, r3
800c678: 4b57 ldr r3, [pc, #348] ; (800c7d8 <Display+0x647c>)
800c67a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c67e: 2303 movs r3, #3
800c680: 2178 movs r1, #120 ; 0x78
800c682: 20a1 movs r0, #161 ; 0xa1
800c684: f7f8 fddc bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c688: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c68c: b2db uxtb r3, r3
800c68e: 461a mov r2, r3
800c690: 4b51 ldr r3, [pc, #324] ; (800c7d8 <Display+0x647c>)
800c692: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c696: 2303 movs r3, #3
800c698: 2178 movs r1, #120 ; 0x78
800c69a: 20a8 movs r0, #168 ; 0xa8
800c69c: f7f8 fdd0 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800c6a0: f001 bb0e b.w 800dcc0 <Display+0x7964>
if(ipt4 == 1)
800c6a4: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c6a8: b2db uxtb r3, r3
800c6aa: 2b01 cmp r3, #1
800c6ac: d147 bne.n 800c73e <Display+0x63e2>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c6ae: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c6b2: b2db uxtb r3, r3
800c6b4: 461a mov r2, r3
800c6b6: 4b48 ldr r3, [pc, #288] ; (800c7d8 <Display+0x647c>)
800c6b8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c6bc: 2303 movs r3, #3
800c6be: 2178 movs r1, #120 ; 0x78
800c6c0: 208c movs r0, #140 ; 0x8c
800c6c2: f7f8 fdbd bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c6c6: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c6ca: b2db uxtb r3, r3
800c6cc: 461a mov r2, r3
800c6ce: 4b42 ldr r3, [pc, #264] ; (800c7d8 <Display+0x647c>)
800c6d0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c6d4: 2303 movs r3, #3
800c6d6: 2178 movs r1, #120 ; 0x78
800c6d8: 2093 movs r0, #147 ; 0x93
800c6da: f7f8 fdb1 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800c6de: 4b3f ldr r3, [pc, #252] ; (800c7dc <Display+0x6480>)
800c6e0: 681b ldr r3, [r3, #0]
800c6e2: 2b00 cmp r3, #0
800c6e4: d00b beq.n 800c6fe <Display+0x63a2>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c6e6: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c6ea: b2db uxtb r3, r3
800c6ec: 461a mov r2, r3
800c6ee: 4b3a ldr r3, [pc, #232] ; (800c7d8 <Display+0x647c>)
800c6f0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c6f4: 2303 movs r3, #3
800c6f6: 2178 movs r1, #120 ; 0x78
800c6f8: 209a movs r0, #154 ; 0x9a
800c6fa: f7f8 fda1 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c6fe: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c702: b2db uxtb r3, r3
800c704: 461a mov r2, r3
800c706: 4b34 ldr r3, [pc, #208] ; (800c7d8 <Display+0x647c>)
800c708: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c70c: 2303 movs r3, #3
800c70e: 2178 movs r1, #120 ; 0x78
800c710: 20a1 movs r0, #161 ; 0xa1
800c712: f7f8 fd95 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE);
800c716: 2303 movs r3, #3
800c718: 4a31 ldr r2, [pc, #196] ; (800c7e0 <Display+0x6484>)
800c71a: 2178 movs r1, #120 ; 0x78
800c71c: 20a8 movs r0, #168 ; 0xa8
800c71e: f7f8 fd8f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c722: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c726: b2db uxtb r3, r3
800c728: 461a mov r2, r3
800c72a: 4b2b ldr r3, [pc, #172] ; (800c7d8 <Display+0x647c>)
800c72c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c730: 2303 movs r3, #3
800c732: 2178 movs r1, #120 ; 0x78
800c734: 20af movs r0, #175 ; 0xaf
800c736: f7f8 fd83 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800c73a: f001 bac1 b.w 800dcc0 <Display+0x7964>
if(ipt4 == 2)
800c73e: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c742: b2db uxtb r3, r3
800c744: 2b02 cmp r3, #2
800c746: d14f bne.n 800c7e8 <Display+0x648c>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c748: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c74c: b2db uxtb r3, r3
800c74e: 461a mov r2, r3
800c750: 4b21 ldr r3, [pc, #132] ; (800c7d8 <Display+0x647c>)
800c752: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c756: 2303 movs r3, #3
800c758: 2178 movs r1, #120 ; 0x78
800c75a: 208c movs r0, #140 ; 0x8c
800c75c: f7f8 fd70 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c760: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c764: b2db uxtb r3, r3
800c766: 461a mov r2, r3
800c768: 4b1b ldr r3, [pc, #108] ; (800c7d8 <Display+0x647c>)
800c76a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c76e: 2303 movs r3, #3
800c770: 2178 movs r1, #120 ; 0x78
800c772: 2093 movs r0, #147 ; 0x93
800c774: f7f8 fd64 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800c778: 4b18 ldr r3, [pc, #96] ; (800c7dc <Display+0x6480>)
800c77a: 681b ldr r3, [r3, #0]
800c77c: 2b00 cmp r3, #0
800c77e: d00b beq.n 800c798 <Display+0x643c>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c780: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c784: b2db uxtb r3, r3
800c786: 461a mov r2, r3
800c788: 4b13 ldr r3, [pc, #76] ; (800c7d8 <Display+0x647c>)
800c78a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c78e: 2303 movs r3, #3
800c790: 2178 movs r1, #120 ; 0x78
800c792: 209a movs r0, #154 ; 0x9a
800c794: f7f8 fd54 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE);
800c798: 2303 movs r3, #3
800c79a: 4a11 ldr r2, [pc, #68] ; (800c7e0 <Display+0x6484>)
800c79c: 2178 movs r1, #120 ; 0x78
800c79e: 20a1 movs r0, #161 ; 0xa1
800c7a0: f7f8 fd4e bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c7a4: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c7a8: b2db uxtb r3, r3
800c7aa: 461a mov r2, r3
800c7ac: 4b0a ldr r3, [pc, #40] ; (800c7d8 <Display+0x647c>)
800c7ae: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c7b2: 2303 movs r3, #3
800c7b4: 2178 movs r1, #120 ; 0x78
800c7b6: 20a8 movs r0, #168 ; 0xa8
800c7b8: f7f8 fd42 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c7bc: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c7c0: b2db uxtb r3, r3
800c7c2: 461a mov r2, r3
800c7c4: 4b04 ldr r3, [pc, #16] ; (800c7d8 <Display+0x647c>)
800c7c6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c7ca: 2303 movs r3, #3
800c7cc: 2178 movs r1, #120 ; 0x78
800c7ce: 20af movs r0, #175 ; 0xaf
800c7d0: f7f8 fd36 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800c7d4: f001 ba74 b.w 800dcc0 <Display+0x7964>
800c7d8: 2002084c .word 0x2002084c
800c7dc: 2006b958 .word 0x2006b958
800c7e0: 080183cc .word 0x080183cc
800c7e4: 20020010 .word 0x20020010
if(ipt4 == 3)
800c7e8: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c7ec: b2db uxtb r3, r3
800c7ee: 2b03 cmp r3, #3
800c7f0: d147 bne.n 800c882 <Display+0x6526>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c7f2: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c7f6: b2db uxtb r3, r3
800c7f8: 461a mov r2, r3
800c7fa: 4bbf ldr r3, [pc, #764] ; (800caf8 <Display+0x679c>)
800c7fc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c800: 2303 movs r3, #3
800c802: 2178 movs r1, #120 ; 0x78
800c804: 208c movs r0, #140 ; 0x8c
800c806: f7f8 fd1b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c80a: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c80e: b2db uxtb r3, r3
800c810: 461a mov r2, r3
800c812: 4bb9 ldr r3, [pc, #740] ; (800caf8 <Display+0x679c>)
800c814: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c818: 2303 movs r3, #3
800c81a: 2178 movs r1, #120 ; 0x78
800c81c: 2093 movs r0, #147 ; 0x93
800c81e: f7f8 fd0f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE);
800c822: 2303 movs r3, #3
800c824: 4ab5 ldr r2, [pc, #724] ; (800cafc <Display+0x67a0>)
800c826: 2178 movs r1, #120 ; 0x78
800c828: 209a movs r0, #154 ; 0x9a
800c82a: f7f8 fd09 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800c82e: 4bb4 ldr r3, [pc, #720] ; (800cb00 <Display+0x67a4>)
800c830: 681b ldr r3, [r3, #0]
800c832: 2b00 cmp r3, #0
800c834: d00b beq.n 800c84e <Display+0x64f2>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c836: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c83a: b2db uxtb r3, r3
800c83c: 461a mov r2, r3
800c83e: 4bae ldr r3, [pc, #696] ; (800caf8 <Display+0x679c>)
800c840: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c844: 2303 movs r3, #3
800c846: 2178 movs r1, #120 ; 0x78
800c848: 20a1 movs r0, #161 ; 0xa1
800c84a: f7f8 fcf9 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c84e: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c852: b2db uxtb r3, r3
800c854: 461a mov r2, r3
800c856: 4ba8 ldr r3, [pc, #672] ; (800caf8 <Display+0x679c>)
800c858: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c85c: 2303 movs r3, #3
800c85e: 2178 movs r1, #120 ; 0x78
800c860: 20a8 movs r0, #168 ; 0xa8
800c862: f7f8 fced bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c866: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c86a: b2db uxtb r3, r3
800c86c: 461a mov r2, r3
800c86e: 4ba2 ldr r3, [pc, #648] ; (800caf8 <Display+0x679c>)
800c870: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c874: 2303 movs r3, #3
800c876: 2178 movs r1, #120 ; 0x78
800c878: 20af movs r0, #175 ; 0xaf
800c87a: f7f8 fce1 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800c87e: f001 ba1f b.w 800dcc0 <Display+0x7964>
if(ipt4 == 4)
800c882: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c886: b2db uxtb r3, r3
800c888: 2b04 cmp r3, #4
800c88a: f041 8219 bne.w 800dcc0 <Display+0x7964>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c88e: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c892: b2db uxtb r3, r3
800c894: 461a mov r2, r3
800c896: 4b98 ldr r3, [pc, #608] ; (800caf8 <Display+0x679c>)
800c898: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c89c: 2303 movs r3, #3
800c89e: 2178 movs r1, #120 ; 0x78
800c8a0: 208c movs r0, #140 ; 0x8c
800c8a2: f7f8 fccd bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE);
800c8a6: 2303 movs r3, #3
800c8a8: 4a94 ldr r2, [pc, #592] ; (800cafc <Display+0x67a0>)
800c8aa: 2178 movs r1, #120 ; 0x78
800c8ac: 2093 movs r0, #147 ; 0x93
800c8ae: f7f8 fcc7 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c8b2: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c8b6: b2db uxtb r3, r3
800c8b8: 461a mov r2, r3
800c8ba: 4b8f ldr r3, [pc, #572] ; (800caf8 <Display+0x679c>)
800c8bc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c8c0: 2303 movs r3, #3
800c8c2: 2178 movs r1, #120 ; 0x78
800c8c4: 209a movs r0, #154 ; 0x9a
800c8c6: f7f8 fcbb bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800c8ca: 4b8d ldr r3, [pc, #564] ; (800cb00 <Display+0x67a4>)
800c8cc: 681b ldr r3, [r3, #0]
800c8ce: 2b00 cmp r3, #0
800c8d0: d00b beq.n 800c8ea <Display+0x658e>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c8d2: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c8d6: b2db uxtb r3, r3
800c8d8: 461a mov r2, r3
800c8da: 4b87 ldr r3, [pc, #540] ; (800caf8 <Display+0x679c>)
800c8dc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c8e0: 2303 movs r3, #3
800c8e2: 2178 movs r1, #120 ; 0x78
800c8e4: 20a1 movs r0, #161 ; 0xa1
800c8e6: f7f8 fcab bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c8ea: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c8ee: b2db uxtb r3, r3
800c8f0: 461a mov r2, r3
800c8f2: 4b81 ldr r3, [pc, #516] ; (800caf8 <Display+0x679c>)
800c8f4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c8f8: 2303 movs r3, #3
800c8fa: 2178 movs r1, #120 ; 0x78
800c8fc: 20a8 movs r0, #168 ; 0xa8
800c8fe: f7f8 fc9f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c902: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c906: b2db uxtb r3, r3
800c908: 461a mov r2, r3
800c90a: 4b7b ldr r3, [pc, #492] ; (800caf8 <Display+0x679c>)
800c90c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c910: 2303 movs r3, #3
800c912: 2178 movs r1, #120 ; 0x78
800c914: 20af movs r0, #175 ; 0xaf
800c916: f7f8 fc93 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800c91a: f001 b9d1 b.w 800dcc0 <Display+0x7964>
if(menupos == Kikd_4)
800c91e: 4b79 ldr r3, [pc, #484] ; (800cb04 <Display+0x67a8>)
800c920: 781b ldrb r3, [r3, #0]
800c922: b2db uxtb r3, r3
800c924: 2b1d cmp r3, #29
800c926: f040 818a bne.w 800cc3e <Display+0x68e2>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800c92a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800c92e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800c932: f7f8 fbbf bl 80050b4 <LCD_SetColors>
if(!ipt4)
800c936: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c93a: b2db uxtb r3, r3
800c93c: 2b00 cmp r3, #0
800c93e: d141 bne.n 800c9c4 <Display+0x6668>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c940: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c944: b2db uxtb r3, r3
800c946: 461a mov r2, r3
800c948: 4b6b ldr r3, [pc, #428] ; (800caf8 <Display+0x679c>)
800c94a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c94e: 2303 movs r3, #3
800c950: 2178 movs r1, #120 ; 0x78
800c952: 208c movs r0, #140 ; 0x8c
800c954: f7f8 fc74 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c958: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c95c: b2db uxtb r3, r3
800c95e: 461a mov r2, r3
800c960: 4b65 ldr r3, [pc, #404] ; (800caf8 <Display+0x679c>)
800c962: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c966: 2303 movs r3, #3
800c968: 2178 movs r1, #120 ; 0x78
800c96a: 2093 movs r0, #147 ; 0x93
800c96c: f7f8 fc68 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c970: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c974: b2db uxtb r3, r3
800c976: 461a mov r2, r3
800c978: 4b5f ldr r3, [pc, #380] ; (800caf8 <Display+0x679c>)
800c97a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c97e: 2303 movs r3, #3
800c980: 2178 movs r1, #120 ; 0x78
800c982: 209a movs r0, #154 ; 0x9a
800c984: f7f8 fc5c bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800c988: 4b5d ldr r3, [pc, #372] ; (800cb00 <Display+0x67a4>)
800c98a: 681b ldr r3, [r3, #0]
800c98c: 2b00 cmp r3, #0
800c98e: d00b beq.n 800c9a8 <Display+0x664c>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c990: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c994: b2db uxtb r3, r3
800c996: 461a mov r2, r3
800c998: 4b57 ldr r3, [pc, #348] ; (800caf8 <Display+0x679c>)
800c99a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c99e: 2303 movs r3, #3
800c9a0: 2178 movs r1, #120 ; 0x78
800c9a2: 20a1 movs r0, #161 ; 0xa1
800c9a4: f7f8 fc4c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c9a8: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c9ac: b2db uxtb r3, r3
800c9ae: 461a mov r2, r3
800c9b0: 4b51 ldr r3, [pc, #324] ; (800caf8 <Display+0x679c>)
800c9b2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c9b6: 2303 movs r3, #3
800c9b8: 2178 movs r1, #120 ; 0x78
800c9ba: 20a8 movs r0, #168 ; 0xa8
800c9bc: f7f8 fc40 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800c9c0: f001 b97e b.w 800dcc0 <Display+0x7964>
if(ipt4 == 1)
800c9c4: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c9c8: b2db uxtb r3, r3
800c9ca: 2b01 cmp r3, #1
800c9cc: d147 bne.n 800ca5e <Display+0x6702>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c9ce: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c9d2: b2db uxtb r3, r3
800c9d4: 461a mov r2, r3
800c9d6: 4b48 ldr r3, [pc, #288] ; (800caf8 <Display+0x679c>)
800c9d8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c9dc: 2303 movs r3, #3
800c9de: 2178 movs r1, #120 ; 0x78
800c9e0: 208c movs r0, #140 ; 0x8c
800c9e2: f7f8 fc2d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c9e6: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c9ea: b2db uxtb r3, r3
800c9ec: 461a mov r2, r3
800c9ee: 4b42 ldr r3, [pc, #264] ; (800caf8 <Display+0x679c>)
800c9f0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c9f4: 2303 movs r3, #3
800c9f6: 2178 movs r1, #120 ; 0x78
800c9f8: 2093 movs r0, #147 ; 0x93
800c9fa: f7f8 fc21 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c9fe: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800ca02: b2db uxtb r3, r3
800ca04: 461a mov r2, r3
800ca06: 4b3c ldr r3, [pc, #240] ; (800caf8 <Display+0x679c>)
800ca08: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ca0c: 2303 movs r3, #3
800ca0e: 2178 movs r1, #120 ; 0x78
800ca10: 209a movs r0, #154 ; 0x9a
800ca12: f7f8 fc15 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800ca16: 4b3a ldr r3, [pc, #232] ; (800cb00 <Display+0x67a4>)
800ca18: 681b ldr r3, [r3, #0]
800ca1a: 2b00 cmp r3, #0
800ca1c: d00b beq.n 800ca36 <Display+0x66da>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800ca1e: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800ca22: b2db uxtb r3, r3
800ca24: 461a mov r2, r3
800ca26: 4b34 ldr r3, [pc, #208] ; (800caf8 <Display+0x679c>)
800ca28: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ca2c: 2303 movs r3, #3
800ca2e: 2178 movs r1, #120 ; 0x78
800ca30: 20a1 movs r0, #161 ; 0xa1
800ca32: f7f8 fc05 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE);
800ca36: 2303 movs r3, #3
800ca38: 4a30 ldr r2, [pc, #192] ; (800cafc <Display+0x67a0>)
800ca3a: 2178 movs r1, #120 ; 0x78
800ca3c: 20a8 movs r0, #168 ; 0xa8
800ca3e: f7f8 fbff bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800ca42: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800ca46: b2db uxtb r3, r3
800ca48: 461a mov r2, r3
800ca4a: 4b2b ldr r3, [pc, #172] ; (800caf8 <Display+0x679c>)
800ca4c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ca50: 2303 movs r3, #3
800ca52: 2178 movs r1, #120 ; 0x78
800ca54: 20af movs r0, #175 ; 0xaf
800ca56: f7f8 fbf3 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800ca5a: f001 b931 b.w 800dcc0 <Display+0x7964>
if(ipt4 == 2)
800ca5e: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800ca62: b2db uxtb r3, r3
800ca64: 2b02 cmp r3, #2
800ca66: d14f bne.n 800cb08 <Display+0x67ac>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800ca68: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800ca6c: b2db uxtb r3, r3
800ca6e: 461a mov r2, r3
800ca70: 4b21 ldr r3, [pc, #132] ; (800caf8 <Display+0x679c>)
800ca72: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ca76: 2303 movs r3, #3
800ca78: 2178 movs r1, #120 ; 0x78
800ca7a: 208c movs r0, #140 ; 0x8c
800ca7c: f7f8 fbe0 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800ca80: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800ca84: b2db uxtb r3, r3
800ca86: 461a mov r2, r3
800ca88: 4b1b ldr r3, [pc, #108] ; (800caf8 <Display+0x679c>)
800ca8a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ca8e: 2303 movs r3, #3
800ca90: 2178 movs r1, #120 ; 0x78
800ca92: 2093 movs r0, #147 ; 0x93
800ca94: f7f8 fbd4 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800ca98: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800ca9c: b2db uxtb r3, r3
800ca9e: 461a mov r2, r3
800caa0: 4b15 ldr r3, [pc, #84] ; (800caf8 <Display+0x679c>)
800caa2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800caa6: 2303 movs r3, #3
800caa8: 2178 movs r1, #120 ; 0x78
800caaa: 209a movs r0, #154 ; 0x9a
800caac: f7f8 fbc8 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE);
800cab0: 2303 movs r3, #3
800cab2: 4a12 ldr r2, [pc, #72] ; (800cafc <Display+0x67a0>)
800cab4: 2178 movs r1, #120 ; 0x78
800cab6: 20a1 movs r0, #161 ; 0xa1
800cab8: f7f8 fbc2 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800cabc: 4b10 ldr r3, [pc, #64] ; (800cb00 <Display+0x67a4>)
800cabe: 681b ldr r3, [r3, #0]
800cac0: 2b00 cmp r3, #0
800cac2: d00b beq.n 800cadc <Display+0x6780>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800cac4: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800cac8: b2db uxtb r3, r3
800caca: 461a mov r2, r3
800cacc: 4b0a ldr r3, [pc, #40] ; (800caf8 <Display+0x679c>)
800cace: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cad2: 2303 movs r3, #3
800cad4: 2178 movs r1, #120 ; 0x78
800cad6: 20a8 movs r0, #168 ; 0xa8
800cad8: f7f8 fbb2 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800cadc: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800cae0: b2db uxtb r3, r3
800cae2: 461a mov r2, r3
800cae4: 4b04 ldr r3, [pc, #16] ; (800caf8 <Display+0x679c>)
800cae6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800caea: 2303 movs r3, #3
800caec: 2178 movs r1, #120 ; 0x78
800caee: 20af movs r0, #175 ; 0xaf
800caf0: f7f8 fba6 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800caf4: f001 b8e4 b.w 800dcc0 <Display+0x7964>
800caf8: 2002084c .word 0x2002084c
800cafc: 080183cc .word 0x080183cc
800cb00: 2006b958 .word 0x2006b958
800cb04: 20020010 .word 0x20020010
if(ipt4 == 3)
800cb08: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800cb0c: b2db uxtb r3, r3
800cb0e: 2b03 cmp r3, #3
800cb10: d147 bne.n 800cba2 <Display+0x6846>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800cb12: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800cb16: b2db uxtb r3, r3
800cb18: 461a mov r2, r3
800cb1a: 4bc1 ldr r3, [pc, #772] ; (800ce20 <Display+0x6ac4>)
800cb1c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cb20: 2303 movs r3, #3
800cb22: 2178 movs r1, #120 ; 0x78
800cb24: 208c movs r0, #140 ; 0x8c
800cb26: f7f8 fb8b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800cb2a: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800cb2e: b2db uxtb r3, r3
800cb30: 461a mov r2, r3
800cb32: 4bbb ldr r3, [pc, #748] ; (800ce20 <Display+0x6ac4>)
800cb34: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cb38: 2303 movs r3, #3
800cb3a: 2178 movs r1, #120 ; 0x78
800cb3c: 2093 movs r0, #147 ; 0x93
800cb3e: f7f8 fb7f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE);
800cb42: 2303 movs r3, #3
800cb44: 4ab7 ldr r2, [pc, #732] ; (800ce24 <Display+0x6ac8>)
800cb46: 2178 movs r1, #120 ; 0x78
800cb48: 209a movs r0, #154 ; 0x9a
800cb4a: f7f8 fb79 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800cb4e: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800cb52: b2db uxtb r3, r3
800cb54: 461a mov r2, r3
800cb56: 4bb2 ldr r3, [pc, #712] ; (800ce20 <Display+0x6ac4>)
800cb58: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cb5c: 2303 movs r3, #3
800cb5e: 2178 movs r1, #120 ; 0x78
800cb60: 20a1 movs r0, #161 ; 0xa1
800cb62: f7f8 fb6d bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800cb66: 4bb0 ldr r3, [pc, #704] ; (800ce28 <Display+0x6acc>)
800cb68: 681b ldr r3, [r3, #0]
800cb6a: 2b00 cmp r3, #0
800cb6c: d00b beq.n 800cb86 <Display+0x682a>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800cb6e: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800cb72: b2db uxtb r3, r3
800cb74: 461a mov r2, r3
800cb76: 4baa ldr r3, [pc, #680] ; (800ce20 <Display+0x6ac4>)
800cb78: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cb7c: 2303 movs r3, #3
800cb7e: 2178 movs r1, #120 ; 0x78
800cb80: 20a8 movs r0, #168 ; 0xa8
800cb82: f7f8 fb5d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800cb86: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800cb8a: b2db uxtb r3, r3
800cb8c: 461a mov r2, r3
800cb8e: 4ba4 ldr r3, [pc, #656] ; (800ce20 <Display+0x6ac4>)
800cb90: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cb94: 2303 movs r3, #3
800cb96: 2178 movs r1, #120 ; 0x78
800cb98: 20af movs r0, #175 ; 0xaf
800cb9a: f7f8 fb51 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800cb9e: f001 b88f b.w 800dcc0 <Display+0x7964>
if(ipt4 == 4)
800cba2: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800cba6: b2db uxtb r3, r3
800cba8: 2b04 cmp r3, #4
800cbaa: f041 8089 bne.w 800dcc0 <Display+0x7964>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800cbae: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800cbb2: b2db uxtb r3, r3
800cbb4: 461a mov r2, r3
800cbb6: 4b9a ldr r3, [pc, #616] ; (800ce20 <Display+0x6ac4>)
800cbb8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cbbc: 2303 movs r3, #3
800cbbe: 2178 movs r1, #120 ; 0x78
800cbc0: 208c movs r0, #140 ; 0x8c
800cbc2: f7f8 fb3d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE);
800cbc6: 2303 movs r3, #3
800cbc8: 4a96 ldr r2, [pc, #600] ; (800ce24 <Display+0x6ac8>)
800cbca: 2178 movs r1, #120 ; 0x78
800cbcc: 2093 movs r0, #147 ; 0x93
800cbce: f7f8 fb37 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE);
800cbd2: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800cbd6: b2db uxtb r3, r3
800cbd8: 461a mov r2, r3
800cbda: 4b91 ldr r3, [pc, #580] ; (800ce20 <Display+0x6ac4>)
800cbdc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cbe0: 2303 movs r3, #3
800cbe2: 2178 movs r1, #120 ; 0x78
800cbe4: 209a movs r0, #154 ; 0x9a
800cbe6: f7f8 fb2b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800cbea: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800cbee: b2db uxtb r3, r3
800cbf0: 461a mov r2, r3
800cbf2: 4b8b ldr r3, [pc, #556] ; (800ce20 <Display+0x6ac4>)
800cbf4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cbf8: 2303 movs r3, #3
800cbfa: 2178 movs r1, #120 ; 0x78
800cbfc: 20a1 movs r0, #161 ; 0xa1
800cbfe: f7f8 fb1f bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800cc02: 4b89 ldr r3, [pc, #548] ; (800ce28 <Display+0x6acc>)
800cc04: 681b ldr r3, [r3, #0]
800cc06: 2b00 cmp r3, #0
800cc08: d00b beq.n 800cc22 <Display+0x68c6>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800cc0a: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800cc0e: b2db uxtb r3, r3
800cc10: 461a mov r2, r3
800cc12: 4b83 ldr r3, [pc, #524] ; (800ce20 <Display+0x6ac4>)
800cc14: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cc18: 2303 movs r3, #3
800cc1a: 2178 movs r1, #120 ; 0x78
800cc1c: 20a8 movs r0, #168 ; 0xa8
800cc1e: f7f8 fb0f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800cc22: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800cc26: b2db uxtb r3, r3
800cc28: 461a mov r2, r3
800cc2a: 4b7d ldr r3, [pc, #500] ; (800ce20 <Display+0x6ac4>)
800cc2c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cc30: 2303 movs r3, #3
800cc32: 2178 movs r1, #120 ; 0x78
800cc34: 20af movs r0, #175 ; 0xaf
800cc36: f7f8 fb03 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800cc3a: f001 b841 b.w 800dcc0 <Display+0x7964>
if(menupos == Kike_4)
800cc3e: 4b7b ldr r3, [pc, #492] ; (800ce2c <Display+0x6ad0>)
800cc40: 781b ldrb r3, [r3, #0]
800cc42: b2db uxtb r3, r3
800cc44: 2b1e cmp r3, #30
800cc46: f040 8190 bne.w 800cf6a <Display+0x6c0e>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800cc4a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800cc4e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800cc52: f7f8 fa2f bl 80050b4 <LCD_SetColors>
if(!ipt4)
800cc56: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800cc5a: b2db uxtb r3, r3
800cc5c: 2b00 cmp r3, #0
800cc5e: d142 bne.n 800cce6 <Display+0x698a>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800cc60: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800cc64: b2db uxtb r3, r3
800cc66: 461a mov r2, r3
800cc68: 4b6d ldr r3, [pc, #436] ; (800ce20 <Display+0x6ac4>)
800cc6a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cc6e: 2303 movs r3, #3
800cc70: 2178 movs r1, #120 ; 0x78
800cc72: 208c movs r0, #140 ; 0x8c
800cc74: f7f8 fae4 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800cc78: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800cc7c: b2db uxtb r3, r3
800cc7e: 461a mov r2, r3
800cc80: 4b67 ldr r3, [pc, #412] ; (800ce20 <Display+0x6ac4>)
800cc82: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cc86: 2303 movs r3, #3
800cc88: 2178 movs r1, #120 ; 0x78
800cc8a: 2093 movs r0, #147 ; 0x93
800cc8c: f7f8 fad8 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800cc90: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800cc94: b2db uxtb r3, r3
800cc96: 461a mov r2, r3
800cc98: 4b61 ldr r3, [pc, #388] ; (800ce20 <Display+0x6ac4>)
800cc9a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cc9e: 2303 movs r3, #3
800cca0: 2178 movs r1, #120 ; 0x78
800cca2: 209a movs r0, #154 ; 0x9a
800cca4: f7f8 facc bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800cca8: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800ccac: b2db uxtb r3, r3
800ccae: 461a mov r2, r3
800ccb0: 4b5b ldr r3, [pc, #364] ; (800ce20 <Display+0x6ac4>)
800ccb2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ccb6: 2303 movs r3, #3
800ccb8: 2178 movs r1, #120 ; 0x78
800ccba: 20a1 movs r0, #161 ; 0xa1
800ccbc: f7f8 fac0 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800ccc0: 4b59 ldr r3, [pc, #356] ; (800ce28 <Display+0x6acc>)
800ccc2: 681b ldr r3, [r3, #0]
800ccc4: 2b00 cmp r3, #0
800ccc6: f000 87fb beq.w 800dcc0 <Display+0x7964>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE);
800ccca: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800ccce: b2db uxtb r3, r3
800ccd0: 461a mov r2, r3
800ccd2: 4b53 ldr r3, [pc, #332] ; (800ce20 <Display+0x6ac4>)
800ccd4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ccd8: 2303 movs r3, #3
800ccda: 2178 movs r1, #120 ; 0x78
800ccdc: 20a8 movs r0, #168 ; 0xa8
800ccde: f7f8 faaf bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800cce2: f000 bfed b.w 800dcc0 <Display+0x7964>
if(ipt4 == 1)
800cce6: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800ccea: b2db uxtb r3, r3
800ccec: 2b01 cmp r3, #1
800ccee: d148 bne.n 800cd82 <Display+0x6a26>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800ccf0: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800ccf4: b2db uxtb r3, r3
800ccf6: 461a mov r2, r3
800ccf8: 4b49 ldr r3, [pc, #292] ; (800ce20 <Display+0x6ac4>)
800ccfa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ccfe: 2303 movs r3, #3
800cd00: 2178 movs r1, #120 ; 0x78
800cd02: 208c movs r0, #140 ; 0x8c
800cd04: f7f8 fa9c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800cd08: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800cd0c: b2db uxtb r3, r3
800cd0e: 461a mov r2, r3
800cd10: 4b43 ldr r3, [pc, #268] ; (800ce20 <Display+0x6ac4>)
800cd12: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cd16: 2303 movs r3, #3
800cd18: 2178 movs r1, #120 ; 0x78
800cd1a: 2093 movs r0, #147 ; 0x93
800cd1c: f7f8 fa90 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800cd20: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800cd24: b2db uxtb r3, r3
800cd26: 461a mov r2, r3
800cd28: 4b3d ldr r3, [pc, #244] ; (800ce20 <Display+0x6ac4>)
800cd2a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cd2e: 2303 movs r3, #3
800cd30: 2178 movs r1, #120 ; 0x78
800cd32: 209a movs r0, #154 ; 0x9a
800cd34: f7f8 fa84 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800cd38: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800cd3c: b2db uxtb r3, r3
800cd3e: 461a mov r2, r3
800cd40: 4b37 ldr r3, [pc, #220] ; (800ce20 <Display+0x6ac4>)
800cd42: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cd46: 2303 movs r3, #3
800cd48: 2178 movs r1, #120 ; 0x78
800cd4a: 20a1 movs r0, #161 ; 0xa1
800cd4c: f7f8 fa78 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE);
800cd50: 2303 movs r3, #3
800cd52: 4a34 ldr r2, [pc, #208] ; (800ce24 <Display+0x6ac8>)
800cd54: 2178 movs r1, #120 ; 0x78
800cd56: 20a8 movs r0, #168 ; 0xa8
800cd58: f7f8 fa72 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800cd5c: 4b32 ldr r3, [pc, #200] ; (800ce28 <Display+0x6acc>)
800cd5e: 681b ldr r3, [r3, #0]
800cd60: 2b00 cmp r3, #0
800cd62: f000 87ad beq.w 800dcc0 <Display+0x7964>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800cd66: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800cd6a: b2db uxtb r3, r3
800cd6c: 461a mov r2, r3
800cd6e: 4b2c ldr r3, [pc, #176] ; (800ce20 <Display+0x6ac4>)
800cd70: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cd74: 2303 movs r3, #3
800cd76: 2178 movs r1, #120 ; 0x78
800cd78: 20af movs r0, #175 ; 0xaf
800cd7a: f7f8 fa61 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800cd7e: f000 bf9f b.w 800dcc0 <Display+0x7964>
if(ipt4 == 2)
800cd82: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800cd86: b2db uxtb r3, r3
800cd88: 2b02 cmp r3, #2
800cd8a: d151 bne.n 800ce30 <Display+0x6ad4>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800cd8c: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800cd90: b2db uxtb r3, r3
800cd92: 461a mov r2, r3
800cd94: 4b22 ldr r3, [pc, #136] ; (800ce20 <Display+0x6ac4>)
800cd96: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cd9a: 2303 movs r3, #3
800cd9c: 2178 movs r1, #120 ; 0x78
800cd9e: 208c movs r0, #140 ; 0x8c
800cda0: f7f8 fa4e bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800cda4: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800cda8: b2db uxtb r3, r3
800cdaa: 461a mov r2, r3
800cdac: 4b1c ldr r3, [pc, #112] ; (800ce20 <Display+0x6ac4>)
800cdae: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cdb2: 2303 movs r3, #3
800cdb4: 2178 movs r1, #120 ; 0x78
800cdb6: 2093 movs r0, #147 ; 0x93
800cdb8: f7f8 fa42 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800cdbc: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800cdc0: b2db uxtb r3, r3
800cdc2: 461a mov r2, r3
800cdc4: 4b16 ldr r3, [pc, #88] ; (800ce20 <Display+0x6ac4>)
800cdc6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cdca: 2303 movs r3, #3
800cdcc: 2178 movs r1, #120 ; 0x78
800cdce: 209a movs r0, #154 ; 0x9a
800cdd0: f7f8 fa36 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE);
800cdd4: 2303 movs r3, #3
800cdd6: 4a13 ldr r2, [pc, #76] ; (800ce24 <Display+0x6ac8>)
800cdd8: 2178 movs r1, #120 ; 0x78
800cdda: 20a1 movs r0, #161 ; 0xa1
800cddc: f7f8 fa30 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800cde0: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800cde4: b2db uxtb r3, r3
800cde6: 461a mov r2, r3
800cde8: 4b0d ldr r3, [pc, #52] ; (800ce20 <Display+0x6ac4>)
800cdea: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cdee: 2303 movs r3, #3
800cdf0: 2178 movs r1, #120 ; 0x78
800cdf2: 20a8 movs r0, #168 ; 0xa8
800cdf4: f7f8 fa24 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800cdf8: 4b0b ldr r3, [pc, #44] ; (800ce28 <Display+0x6acc>)
800cdfa: 681b ldr r3, [r3, #0]
800cdfc: 2b00 cmp r3, #0
800cdfe: f000 875f beq.w 800dcc0 <Display+0x7964>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800ce02: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800ce06: b2db uxtb r3, r3
800ce08: 461a mov r2, r3
800ce0a: 4b05 ldr r3, [pc, #20] ; (800ce20 <Display+0x6ac4>)
800ce0c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ce10: 2303 movs r3, #3
800ce12: 2178 movs r1, #120 ; 0x78
800ce14: 20af movs r0, #175 ; 0xaf
800ce16: f7f8 fa13 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800ce1a: f000 bf51 b.w 800dcc0 <Display+0x7964>
800ce1e: bf00 nop
800ce20: 2002084c .word 0x2002084c
800ce24: 080183cc .word 0x080183cc
800ce28: 2006b958 .word 0x2006b958
800ce2c: 20020010 .word 0x20020010
if(ipt4 == 3)
800ce30: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800ce34: b2db uxtb r3, r3
800ce36: 2b03 cmp r3, #3
800ce38: d148 bne.n 800cecc <Display+0x6b70>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800ce3a: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800ce3e: b2db uxtb r3, r3
800ce40: 461a mov r2, r3
800ce42: 4bc4 ldr r3, [pc, #784] ; (800d154 <Display+0x6df8>)
800ce44: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ce48: 2303 movs r3, #3
800ce4a: 2178 movs r1, #120 ; 0x78
800ce4c: 208c movs r0, #140 ; 0x8c
800ce4e: f7f8 f9f7 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800ce52: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800ce56: b2db uxtb r3, r3
800ce58: 461a mov r2, r3
800ce5a: 4bbe ldr r3, [pc, #760] ; (800d154 <Display+0x6df8>)
800ce5c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ce60: 2303 movs r3, #3
800ce62: 2178 movs r1, #120 ; 0x78
800ce64: 2093 movs r0, #147 ; 0x93
800ce66: f7f8 f9eb bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE);
800ce6a: 2303 movs r3, #3
800ce6c: 4aba ldr r2, [pc, #744] ; (800d158 <Display+0x6dfc>)
800ce6e: 2178 movs r1, #120 ; 0x78
800ce70: 209a movs r0, #154 ; 0x9a
800ce72: f7f8 f9e5 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800ce76: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800ce7a: b2db uxtb r3, r3
800ce7c: 461a mov r2, r3
800ce7e: 4bb5 ldr r3, [pc, #724] ; (800d154 <Display+0x6df8>)
800ce80: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ce84: 2303 movs r3, #3
800ce86: 2178 movs r1, #120 ; 0x78
800ce88: 20a1 movs r0, #161 ; 0xa1
800ce8a: f7f8 f9d9 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800ce8e: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800ce92: b2db uxtb r3, r3
800ce94: 461a mov r2, r3
800ce96: 4baf ldr r3, [pc, #700] ; (800d154 <Display+0x6df8>)
800ce98: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ce9c: 2303 movs r3, #3
800ce9e: 2178 movs r1, #120 ; 0x78
800cea0: 20a8 movs r0, #168 ; 0xa8
800cea2: f7f8 f9cd bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800cea6: 4bad ldr r3, [pc, #692] ; (800d15c <Display+0x6e00>)
800cea8: 681b ldr r3, [r3, #0]
800ceaa: 2b00 cmp r3, #0
800ceac: f000 8708 beq.w 800dcc0 <Display+0x7964>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800ceb0: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800ceb4: b2db uxtb r3, r3
800ceb6: 461a mov r2, r3
800ceb8: 4ba6 ldr r3, [pc, #664] ; (800d154 <Display+0x6df8>)
800ceba: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cebe: 2303 movs r3, #3
800cec0: 2178 movs r1, #120 ; 0x78
800cec2: 20af movs r0, #175 ; 0xaf
800cec4: f7f8 f9bc bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800cec8: f000 befa b.w 800dcc0 <Display+0x7964>
if(ipt4 == 4)
800cecc: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800ced0: b2db uxtb r3, r3
800ced2: 2b04 cmp r3, #4
800ced4: f040 86f4 bne.w 800dcc0 <Display+0x7964>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800ced8: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800cedc: b2db uxtb r3, r3
800cede: 461a mov r2, r3
800cee0: 4b9c ldr r3, [pc, #624] ; (800d154 <Display+0x6df8>)
800cee2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cee6: 2303 movs r3, #3
800cee8: 2178 movs r1, #120 ; 0x78
800ceea: 208c movs r0, #140 ; 0x8c
800ceec: f7f8 f9a8 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE);
800cef0: 2303 movs r3, #3
800cef2: 4a99 ldr r2, [pc, #612] ; (800d158 <Display+0x6dfc>)
800cef4: 2178 movs r1, #120 ; 0x78
800cef6: 2093 movs r0, #147 ; 0x93
800cef8: f7f8 f9a2 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE);
800cefc: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800cf00: b2db uxtb r3, r3
800cf02: 461a mov r2, r3
800cf04: 4b93 ldr r3, [pc, #588] ; (800d154 <Display+0x6df8>)
800cf06: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cf0a: 2303 movs r3, #3
800cf0c: 2178 movs r1, #120 ; 0x78
800cf0e: 209a movs r0, #154 ; 0x9a
800cf10: f7f8 f996 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800cf14: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800cf18: b2db uxtb r3, r3
800cf1a: 461a mov r2, r3
800cf1c: 4b8d ldr r3, [pc, #564] ; (800d154 <Display+0x6df8>)
800cf1e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cf22: 2303 movs r3, #3
800cf24: 2178 movs r1, #120 ; 0x78
800cf26: 20a1 movs r0, #161 ; 0xa1
800cf28: f7f8 f98a bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800cf2c: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800cf30: b2db uxtb r3, r3
800cf32: 461a mov r2, r3
800cf34: 4b87 ldr r3, [pc, #540] ; (800d154 <Display+0x6df8>)
800cf36: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cf3a: 2303 movs r3, #3
800cf3c: 2178 movs r1, #120 ; 0x78
800cf3e: 20a8 movs r0, #168 ; 0xa8
800cf40: f7f8 f97e bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800cf44: 4b85 ldr r3, [pc, #532] ; (800d15c <Display+0x6e00>)
800cf46: 681b ldr r3, [r3, #0]
800cf48: 2b00 cmp r3, #0
800cf4a: f000 86b9 beq.w 800dcc0 <Display+0x7964>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800cf4e: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800cf52: b2db uxtb r3, r3
800cf54: 461a mov r2, r3
800cf56: 4b7f ldr r3, [pc, #508] ; (800d154 <Display+0x6df8>)
800cf58: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cf5c: 2303 movs r3, #3
800cf5e: 2178 movs r1, #120 ; 0x78
800cf60: 20af movs r0, #175 ; 0xaf
800cf62: f7f8 f96d bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800cf66: f000 beab b.w 800dcc0 <Display+0x7964>
if(menupos == Kpt_4)
800cf6a: 4b7d ldr r3, [pc, #500] ; (800d160 <Display+0x6e04>)
800cf6c: 781b ldrb r3, [r3, #0]
800cf6e: b2db uxtb r3, r3
800cf70: 2b1f cmp r3, #31
800cf72: f040 86a5 bne.w 800dcc0 <Display+0x7964>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800cf76: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800cf7a: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800cf7e: f7f8 f899 bl 80050b4 <LCD_SetColors>
if(!ipt4)
800cf82: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800cf86: b2db uxtb r3, r3
800cf88: 2b00 cmp r3, #0
800cf8a: d148 bne.n 800d01e <Display+0x6cc2>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800cf8c: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800cf90: b2db uxtb r3, r3
800cf92: 461a mov r2, r3
800cf94: 4b6f ldr r3, [pc, #444] ; (800d154 <Display+0x6df8>)
800cf96: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cf9a: 2303 movs r3, #3
800cf9c: 2178 movs r1, #120 ; 0x78
800cf9e: 208c movs r0, #140 ; 0x8c
800cfa0: f7f8 f94e bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800cfa4: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800cfa8: b2db uxtb r3, r3
800cfaa: 461a mov r2, r3
800cfac: 4b69 ldr r3, [pc, #420] ; (800d154 <Display+0x6df8>)
800cfae: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cfb2: 2303 movs r3, #3
800cfb4: 2178 movs r1, #120 ; 0x78
800cfb6: 2093 movs r0, #147 ; 0x93
800cfb8: f7f8 f942 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800cfbc: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800cfc0: b2db uxtb r3, r3
800cfc2: 461a mov r2, r3
800cfc4: 4b63 ldr r3, [pc, #396] ; (800d154 <Display+0x6df8>)
800cfc6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cfca: 2303 movs r3, #3
800cfcc: 2178 movs r1, #120 ; 0x78
800cfce: 209a movs r0, #154 ; 0x9a
800cfd0: f7f8 f936 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800cfd4: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800cfd8: b2db uxtb r3, r3
800cfda: 461a mov r2, r3
800cfdc: 4b5d ldr r3, [pc, #372] ; (800d154 <Display+0x6df8>)
800cfde: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cfe2: 2303 movs r3, #3
800cfe4: 2178 movs r1, #120 ; 0x78
800cfe6: 20a1 movs r0, #161 ; 0xa1
800cfe8: f7f8 f92a bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE);
800cfec: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800cff0: b2db uxtb r3, r3
800cff2: 461a mov r2, r3
800cff4: 4b57 ldr r3, [pc, #348] ; (800d154 <Display+0x6df8>)
800cff6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cffa: 2303 movs r3, #3
800cffc: 2178 movs r1, #120 ; 0x78
800cffe: 20a8 movs r0, #168 ; 0xa8
800d000: f7f8 f91e bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800d004: 4b55 ldr r3, [pc, #340] ; (800d15c <Display+0x6e00>)
800d006: 681b ldr r3, [r3, #0]
800d008: 2b00 cmp r3, #0
800d00a: f000 8659 beq.w 800dcc0 <Display+0x7964>
BSP_LCD_DisplayStringAt(140+35, 120, ".", LEFT_MODE);
800d00e: 2303 movs r3, #3
800d010: 4a51 ldr r2, [pc, #324] ; (800d158 <Display+0x6dfc>)
800d012: 2178 movs r1, #120 ; 0x78
800d014: 20af movs r0, #175 ; 0xaf
800d016: f7f8 f913 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800d01a: f000 be51 b.w 800dcc0 <Display+0x7964>
if(ipt4 == 1)
800d01e: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800d022: b2db uxtb r3, r3
800d024: 2b01 cmp r3, #1
800d026: d147 bne.n 800d0b8 <Display+0x6d5c>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800d028: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800d02c: b2db uxtb r3, r3
800d02e: 461a mov r2, r3
800d030: 4b48 ldr r3, [pc, #288] ; (800d154 <Display+0x6df8>)
800d032: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800d036: 2303 movs r3, #3
800d038: 2178 movs r1, #120 ; 0x78
800d03a: 208c movs r0, #140 ; 0x8c
800d03c: f7f8 f900 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800d040: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800d044: b2db uxtb r3, r3
800d046: 461a mov r2, r3
800d048: 4b42 ldr r3, [pc, #264] ; (800d154 <Display+0x6df8>)
800d04a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800d04e: 2303 movs r3, #3
800d050: 2178 movs r1, #120 ; 0x78
800d052: 2093 movs r0, #147 ; 0x93
800d054: f7f8 f8f4 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800d058: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800d05c: b2db uxtb r3, r3
800d05e: 461a mov r2, r3
800d060: 4b3c ldr r3, [pc, #240] ; (800d154 <Display+0x6df8>)
800d062: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800d066: 2303 movs r3, #3
800d068: 2178 movs r1, #120 ; 0x78
800d06a: 209a movs r0, #154 ; 0x9a
800d06c: f7f8 f8e8 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800d070: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800d074: b2db uxtb r3, r3
800d076: 461a mov r2, r3
800d078: 4b36 ldr r3, [pc, #216] ; (800d154 <Display+0x6df8>)
800d07a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800d07e: 2303 movs r3, #3
800d080: 2178 movs r1, #120 ; 0x78
800d082: 20a1 movs r0, #161 ; 0xa1
800d084: f7f8 f8dc bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800d088: 4b34 ldr r3, [pc, #208] ; (800d15c <Display+0x6e00>)
800d08a: 681b ldr r3, [r3, #0]
800d08c: 2b00 cmp r3, #0
800d08e: d005 beq.n 800d09c <Display+0x6d40>
BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE);
800d090: 2303 movs r3, #3
800d092: 4a31 ldr r2, [pc, #196] ; (800d158 <Display+0x6dfc>)
800d094: 2178 movs r1, #120 ; 0x78
800d096: 20a8 movs r0, #168 ; 0xa8
800d098: f7f8 f8d2 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800d09c: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800d0a0: b2db uxtb r3, r3
800d0a2: 461a mov r2, r3
800d0a4: 4b2b ldr r3, [pc, #172] ; (800d154 <Display+0x6df8>)
800d0a6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800d0aa: 2303 movs r3, #3
800d0ac: 2178 movs r1, #120 ; 0x78
800d0ae: 20af movs r0, #175 ; 0xaf
800d0b0: f7f8 f8c6 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800d0b4: f000 be04 b.w 800dcc0 <Display+0x7964>
if(ipt4 == 2)
800d0b8: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800d0bc: b2db uxtb r3, r3
800d0be: 2b02 cmp r3, #2
800d0c0: d150 bne.n 800d164 <Display+0x6e08>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800d0c2: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800d0c6: b2db uxtb r3, r3
800d0c8: 461a mov r2, r3
800d0ca: 4b22 ldr r3, [pc, #136] ; (800d154 <Display+0x6df8>)
800d0cc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800d0d0: 2303 movs r3, #3
800d0d2: 2178 movs r1, #120 ; 0x78
800d0d4: 208c movs r0, #140 ; 0x8c
800d0d6: f7f8 f8b3 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800d0da: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800d0de: b2db uxtb r3, r3
800d0e0: 461a mov r2, r3
800d0e2: 4b1c ldr r3, [pc, #112] ; (800d154 <Display+0x6df8>)
800d0e4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800d0e8: 2303 movs r3, #3
800d0ea: 2178 movs r1, #120 ; 0x78
800d0ec: 2093 movs r0, #147 ; 0x93
800d0ee: f7f8 f8a7 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800d0f2: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800d0f6: b2db uxtb r3, r3
800d0f8: 461a mov r2, r3
800d0fa: 4b16 ldr r3, [pc, #88] ; (800d154 <Display+0x6df8>)
800d0fc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800d100: 2303 movs r3, #3
800d102: 2178 movs r1, #120 ; 0x78
800d104: 209a movs r0, #154 ; 0x9a
800d106: f7f8 f89b bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800d10a: 4b14 ldr r3, [pc, #80] ; (800d15c <Display+0x6e00>)
800d10c: 681b ldr r3, [r3, #0]
800d10e: 2b00 cmp r3, #0
800d110: d005 beq.n 800d11e <Display+0x6dc2>
BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE);
800d112: 2303 movs r3, #3
800d114: 4a10 ldr r2, [pc, #64] ; (800d158 <Display+0x6dfc>)
800d116: 2178 movs r1, #120 ; 0x78
800d118: 20a1 movs r0, #161 ; 0xa1
800d11a: f7f8 f891 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800d11e: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800d122: b2db uxtb r3, r3
800d124: 461a mov r2, r3
800d126: 4b0b ldr r3, [pc, #44] ; (800d154 <Display+0x6df8>)
800d128: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800d12c: 2303 movs r3, #3
800d12e: 2178 movs r1, #120 ; 0x78
800d130: 20a8 movs r0, #168 ; 0xa8
800d132: f7f8 f885 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800d136: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800d13a: b2db uxtb r3, r3
800d13c: 461a mov r2, r3
800d13e: 4b05 ldr r3, [pc, #20] ; (800d154 <Display+0x6df8>)
800d140: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800d144: 2303 movs r3, #3
800d146: 2178 movs r1, #120 ; 0x78
800d148: 20af movs r0, #175 ; 0xaf
800d14a: f7f8 f879 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800d14e: f000 bdb7 b.w 800dcc0 <Display+0x7964>
800d152: bf00 nop
800d154: 2002084c .word 0x2002084c
800d158: 080183cc .word 0x080183cc
800d15c: 2006b958 .word 0x2006b958
800d160: 20020010 .word 0x20020010
if(ipt4 == 3)
800d164: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800d168: b2db uxtb r3, r3
800d16a: 2b03 cmp r3, #3
800d16c: d147 bne.n 800d1fe <Display+0x6ea2>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800d16e: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800d172: b2db uxtb r3, r3
800d174: 461a mov r2, r3
800d176: 4bc9 ldr r3, [pc, #804] ; (800d49c <Display+0x7140>)
800d178: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800d17c: 2303 movs r3, #3
800d17e: 2178 movs r1, #120 ; 0x78
800d180: 208c movs r0, #140 ; 0x8c
800d182: f7f8 f85d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800d186: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800d18a: b2db uxtb r3, r3
800d18c: 461a mov r2, r3
800d18e: 4bc3 ldr r3, [pc, #780] ; (800d49c <Display+0x7140>)
800d190: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800d194: 2303 movs r3, #3
800d196: 2178 movs r1, #120 ; 0x78
800d198: 2093 movs r0, #147 ; 0x93
800d19a: f7f8 f851 bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800d19e: 4bc0 ldr r3, [pc, #768] ; (800d4a0 <Display+0x7144>)
800d1a0: 681b ldr r3, [r3, #0]
800d1a2: 2b00 cmp r3, #0
800d1a4: d005 beq.n 800d1b2 <Display+0x6e56>
BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE);
800d1a6: 2303 movs r3, #3
800d1a8: 4abe ldr r2, [pc, #760] ; (800d4a4 <Display+0x7148>)
800d1aa: 2178 movs r1, #120 ; 0x78
800d1ac: 209a movs r0, #154 ; 0x9a
800d1ae: f7f8 f847 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800d1b2: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800d1b6: b2db uxtb r3, r3
800d1b8: 461a mov r2, r3
800d1ba: 4bb8 ldr r3, [pc, #736] ; (800d49c <Display+0x7140>)
800d1bc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800d1c0: 2303 movs r3, #3
800d1c2: 2178 movs r1, #120 ; 0x78
800d1c4: 20a1 movs r0, #161 ; 0xa1
800d1c6: f7f8 f83b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800d1ca: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800d1ce: b2db uxtb r3, r3
800d1d0: 461a mov r2, r3
800d1d2: 4bb2 ldr r3, [pc, #712] ; (800d49c <Display+0x7140>)
800d1d4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800d1d8: 2303 movs r3, #3
800d1da: 2178 movs r1, #120 ; 0x78
800d1dc: 20a8 movs r0, #168 ; 0xa8
800d1de: f7f8 f82f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800d1e2: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800d1e6: b2db uxtb r3, r3
800d1e8: 461a mov r2, r3
800d1ea: 4bac ldr r3, [pc, #688] ; (800d49c <Display+0x7140>)
800d1ec: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800d1f0: 2303 movs r3, #3
800d1f2: 2178 movs r1, #120 ; 0x78
800d1f4: 20af movs r0, #175 ; 0xaf
800d1f6: f7f8 f823 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800d1fa: f000 bd61 b.w 800dcc0 <Display+0x7964>
if(ipt4 == 4)
800d1fe: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800d202: b2db uxtb r3, r3
800d204: 2b04 cmp r3, #4
800d206: f040 855b bne.w 800dcc0 <Display+0x7964>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800d20a: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800d20e: b2db uxtb r3, r3
800d210: 461a mov r2, r3
800d212: 4ba2 ldr r3, [pc, #648] ; (800d49c <Display+0x7140>)
800d214: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800d218: 2303 movs r3, #3
800d21a: 2178 movs r1, #120 ; 0x78
800d21c: 208c movs r0, #140 ; 0x8c
800d21e: f7f8 f80f bl 8005240 <BSP_LCD_DisplayStringAt>
if(blk)
800d222: 4b9f ldr r3, [pc, #636] ; (800d4a0 <Display+0x7144>)
800d224: 681b ldr r3, [r3, #0]
800d226: 2b00 cmp r3, #0
800d228: d005 beq.n 800d236 <Display+0x6eda>
BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE);
800d22a: 2303 movs r3, #3
800d22c: 4a9d ldr r2, [pc, #628] ; (800d4a4 <Display+0x7148>)
800d22e: 2178 movs r1, #120 ; 0x78
800d230: 2093 movs r0, #147 ; 0x93
800d232: f7f8 f805 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE);
800d236: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800d23a: b2db uxtb r3, r3
800d23c: 461a mov r2, r3
800d23e: 4b97 ldr r3, [pc, #604] ; (800d49c <Display+0x7140>)
800d240: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800d244: 2303 movs r3, #3
800d246: 2178 movs r1, #120 ; 0x78
800d248: 209a movs r0, #154 ; 0x9a
800d24a: f7f7 fff9 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800d24e: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800d252: b2db uxtb r3, r3
800d254: 461a mov r2, r3
800d256: 4b91 ldr r3, [pc, #580] ; (800d49c <Display+0x7140>)
800d258: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800d25c: 2303 movs r3, #3
800d25e: 2178 movs r1, #120 ; 0x78
800d260: 20a1 movs r0, #161 ; 0xa1
800d262: f7f7 ffed bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800d266: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800d26a: b2db uxtb r3, r3
800d26c: 461a mov r2, r3
800d26e: 4b8b ldr r3, [pc, #556] ; (800d49c <Display+0x7140>)
800d270: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800d274: 2303 movs r3, #3
800d276: 2178 movs r1, #120 ; 0x78
800d278: 20a8 movs r0, #168 ; 0xa8
800d27a: f7f7 ffe1 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800d27e: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800d282: b2db uxtb r3, r3
800d284: 461a mov r2, r3
800d286: 4b85 ldr r3, [pc, #532] ; (800d49c <Display+0x7140>)
800d288: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800d28c: 2303 movs r3, #3
800d28e: 2178 movs r1, #120 ; 0x78
800d290: 20af movs r0, #175 ; 0xaf
800d292: f7f7 ffd5 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800d296: f000 bd13 b.w 800dcc0 <Display+0x7964>
if(menupos == Kikdt_1)
800d29a: bf00 nop
800d29c: f000 bd10 b.w 800dcc0 <Display+0x7964>
if(menupos == Kikdt_2)
800d2a0: bf00 nop
800d2a2: f000 bd0d b.w 800dcc0 <Display+0x7964>
if(menupos == Kikdt_3)
800d2a6: bf00 nop
break;
800d2a8: f000 bd0a b.w 800dcc0 <Display+0x7964>
case MAIN:
BSP_LCD_SetFont(&Font12);
800d2ac: 487e ldr r0, [pc, #504] ; (800d4a8 <Display+0x714c>)
800d2ae: f7f7 ff3d bl 800512c <BSP_LCD_SetFont>
if(CNT_CHANNELS < 5)
800d2b2: 4b7e ldr r3, [pc, #504] ; (800d4ac <Display+0x7150>)
800d2b4: 681b ldr r3, [r3, #0]
800d2b6: 2b04 cmp r3, #4
800d2b8: f200 8504 bhi.w 800dcc4 <Display+0x7968>
{
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800d2bc: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d2c0: f04f 30ff mov.w r0, #4294967295
800d2c4: f7f7 fef6 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillRect(0, 0, 158, 24);
800d2c8: 2318 movs r3, #24
800d2ca: 229e movs r2, #158 ; 0x9e
800d2cc: 2100 movs r1, #0
800d2ce: 2000 movs r0, #0
800d2d0: f7f8 fab2 bl 8005838 <BSP_LCD_FillRect>
BSP_LCD_FillRect(0, 120, 158, 24);
800d2d4: 2318 movs r3, #24
800d2d6: 229e movs r2, #158 ; 0x9e
800d2d8: 2178 movs r1, #120 ; 0x78
800d2da: 2000 movs r0, #0
800d2dc: f7f8 faac bl 8005838 <BSP_LCD_FillRect>
BSP_LCD_FillRect(161, 0, 158, 24);
800d2e0: 2318 movs r3, #24
800d2e2: 229e movs r2, #158 ; 0x9e
800d2e4: 2100 movs r1, #0
800d2e6: 20a1 movs r0, #161 ; 0xa1
800d2e8: f7f8 faa6 bl 8005838 <BSP_LCD_FillRect>
BSP_LCD_FillRect(161, 120, 158, 24);
800d2ec: 2318 movs r3, #24
800d2ee: 229e movs r2, #158 ; 0x9e
800d2f0: 2178 movs r1, #120 ; 0x78
800d2f2: 20a1 movs r0, #161 ; 0xa1
800d2f4: f7f8 faa0 bl 8005838 <BSP_LCD_FillRect>
BSP_LCD_DrawRect(0, 0, 318, 238);
800d2f8: 23ee movs r3, #238 ; 0xee
800d2fa: f44f 729f mov.w r2, #318 ; 0x13e
800d2fe: 2100 movs r1, #0
800d300: 2000 movs r0, #0
800d302: f7f8 f911 bl 8005528 <BSP_LCD_DrawRect>
BSP_LCD_DrawVLine(159, 0, 239);
800d306: 22ef movs r2, #239 ; 0xef
800d308: 2100 movs r1, #0
800d30a: 209f movs r0, #159 ; 0x9f
800d30c: f7f8 f8aa bl 8005464 <BSP_LCD_DrawVLine>
// 1-2 //
if(pardata.LANG == RUS)
800d310: 4b67 ldr r3, [pc, #412] ; (800d4b0 <Display+0x7154>)
800d312: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800d316: b29b uxth r3, r3
800d318: 2b00 cmp r3, #0
800d31a: f040 80bb bne.w 800d494 <Display+0x7138>
{
for(i = 0; i < 2; i++)
800d31e: 2300 movs r3, #0
800d320: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d324: e045 b.n 800d3b2 <Display+0x7056>
{
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800d326: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d32a: 4862 ldr r0, [pc, #392] ; (800d4b4 <Display+0x7158>)
800d32c: f7f7 fec2 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(4, 27 + 120*i, "<22><><C2><D5>:", LEFT_MODE);
800d330: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d334: b29b uxth r3, r3
800d336: 461a mov r2, r3
800d338: 0112 lsls r2, r2, #4
800d33a: 1ad3 subs r3, r2, r3
800d33c: 00db lsls r3, r3, #3
800d33e: b29b uxth r3, r3
800d340: 331b adds r3, #27
800d342: b299 uxth r1, r3
800d344: 2303 movs r3, #3
800d346: 4a5c ldr r2, [pc, #368] ; (800d4b8 <Display+0x715c>)
800d348: 2004 movs r0, #4
800d34a: f7f7 ff79 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(3, 46+6 + 120*i, "<22><><D4>:", LEFT_MODE);
800d34e: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d352: b29b uxth r3, r3
800d354: 461a mov r2, r3
800d356: 0112 lsls r2, r2, #4
800d358: 1ad3 subs r3, r2, r3
800d35a: 00db lsls r3, r3, #3
800d35c: b29b uxth r3, r3
800d35e: 3334 adds r3, #52 ; 0x34
800d360: b299 uxth r1, r3
800d362: 2303 movs r3, #3
800d364: 4a55 ldr r2, [pc, #340] ; (800d4bc <Display+0x7160>)
800d366: 2003 movs r0, #3
800d368: f7f7 ff6a bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(3, 65+6 + 120*i, "<22><><D4>:", LEFT_MODE);
800d36c: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d370: b29b uxth r3, r3
800d372: 461a mov r2, r3
800d374: 0112 lsls r2, r2, #4
800d376: 1ad3 subs r3, r2, r3
800d378: 00db lsls r3, r3, #3
800d37a: b29b uxth r3, r3
800d37c: 3347 adds r3, #71 ; 0x47
800d37e: b299 uxth r1, r3
800d380: 2303 movs r3, #3
800d382: 4a4f ldr r2, [pc, #316] ; (800d4c0 <Display+0x7164>)
800d384: 2003 movs r0, #3
800d386: f7f7 ff5b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(4, 84+6 + 120*i, "<22><><C2><DB><D5>:", LEFT_MODE);
800d38a: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d38e: b29b uxth r3, r3
800d390: 461a mov r2, r3
800d392: 0112 lsls r2, r2, #4
800d394: 1ad3 subs r3, r2, r3
800d396: 00db lsls r3, r3, #3
800d398: b29b uxth r3, r3
800d39a: 335a adds r3, #90 ; 0x5a
800d39c: b299 uxth r1, r3
800d39e: 2303 movs r3, #3
800d3a0: 4a48 ldr r2, [pc, #288] ; (800d4c4 <Display+0x7168>)
800d3a2: 2004 movs r0, #4
800d3a4: f7f7 ff4c bl 8005240 <BSP_LCD_DisplayStringAt>
for(i = 0; i < 2; i++)
800d3a8: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d3ac: 3301 adds r3, #1
800d3ae: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d3b2: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d3b6: 2b01 cmp r3, #1
800d3b8: d9b5 bls.n 800d326 <Display+0x6fca>
}
// 3-4 //
for(i = 0; i < 2; i++)
800d3ba: 2300 movs r3, #0
800d3bc: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d3c0: e045 b.n 800d44e <Display+0x70f2>
{
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800d3c2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d3c6: 483b ldr r0, [pc, #236] ; (800d4b4 <Display+0x7158>)
800d3c8: f7f7 fe74 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(164, 27 + 120*i, "<22><><C2><D5>:", LEFT_MODE);
800d3cc: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d3d0: b29b uxth r3, r3
800d3d2: 461a mov r2, r3
800d3d4: 0112 lsls r2, r2, #4
800d3d6: 1ad3 subs r3, r2, r3
800d3d8: 00db lsls r3, r3, #3
800d3da: b29b uxth r3, r3
800d3dc: 331b adds r3, #27
800d3de: b299 uxth r1, r3
800d3e0: 2303 movs r3, #3
800d3e2: 4a35 ldr r2, [pc, #212] ; (800d4b8 <Display+0x715c>)
800d3e4: 20a4 movs r0, #164 ; 0xa4
800d3e6: f7f7 ff2b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(163, 46+6 + 120*i, "<22><><D4>:", LEFT_MODE);
800d3ea: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d3ee: b29b uxth r3, r3
800d3f0: 461a mov r2, r3
800d3f2: 0112 lsls r2, r2, #4
800d3f4: 1ad3 subs r3, r2, r3
800d3f6: 00db lsls r3, r3, #3
800d3f8: b29b uxth r3, r3
800d3fa: 3334 adds r3, #52 ; 0x34
800d3fc: b299 uxth r1, r3
800d3fe: 2303 movs r3, #3
800d400: 4a2e ldr r2, [pc, #184] ; (800d4bc <Display+0x7160>)
800d402: 20a3 movs r0, #163 ; 0xa3
800d404: f7f7 ff1c bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(163, 65+6 + 120*i, "<22><><D4>:", LEFT_MODE);
800d408: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d40c: b29b uxth r3, r3
800d40e: 461a mov r2, r3
800d410: 0112 lsls r2, r2, #4
800d412: 1ad3 subs r3, r2, r3
800d414: 00db lsls r3, r3, #3
800d416: b29b uxth r3, r3
800d418: 3347 adds r3, #71 ; 0x47
800d41a: b299 uxth r1, r3
800d41c: 2303 movs r3, #3
800d41e: 4a28 ldr r2, [pc, #160] ; (800d4c0 <Display+0x7164>)
800d420: 20a3 movs r0, #163 ; 0xa3
800d422: f7f7 ff0d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(164, 84+6 + 120*i, "<22><><C2><DB><D5>:", LEFT_MODE);
800d426: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d42a: b29b uxth r3, r3
800d42c: 461a mov r2, r3
800d42e: 0112 lsls r2, r2, #4
800d430: 1ad3 subs r3, r2, r3
800d432: 00db lsls r3, r3, #3
800d434: b29b uxth r3, r3
800d436: 335a adds r3, #90 ; 0x5a
800d438: b299 uxth r1, r3
800d43a: 2303 movs r3, #3
800d43c: 4a21 ldr r2, [pc, #132] ; (800d4c4 <Display+0x7168>)
800d43e: 20a4 movs r0, #164 ; 0xa4
800d440: f7f7 fefe bl 8005240 <BSP_LCD_DisplayStringAt>
for(i = 0; i < 2; i++)
800d444: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d448: 3301 adds r3, #1
800d44a: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d44e: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d452: 2b01 cmp r3, #1
800d454: d9b5 bls.n 800d3c2 <Display+0x7066>
}
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800d456: f04f 31ff mov.w r1, #4294967295
800d45a: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800d45e: f7f7 fe29 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(79, 8, "<22><><CA><C0><CD> 1", CENTER_MODE);
800d462: 2301 movs r3, #1
800d464: 4a18 ldr r2, [pc, #96] ; (800d4c8 <Display+0x716c>)
800d466: 2108 movs r1, #8
800d468: 204f movs r0, #79 ; 0x4f
800d46a: f7f7 fee9 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(79, 128, "<22><><CA><C0><CD> 2", CENTER_MODE);
800d46e: 2301 movs r3, #1
800d470: 4a16 ldr r2, [pc, #88] ; (800d4cc <Display+0x7170>)
800d472: 2180 movs r1, #128 ; 0x80
800d474: 204f movs r0, #79 ; 0x4f
800d476: f7f7 fee3 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(239, 8, "<22><><CA><C0><CD> 3", CENTER_MODE);
800d47a: 2301 movs r3, #1
800d47c: 4a14 ldr r2, [pc, #80] ; (800d4d0 <Display+0x7174>)
800d47e: 2108 movs r1, #8
800d480: 20ef movs r0, #239 ; 0xef
800d482: f7f7 fedd bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(239, 128, "<22><><CA><C0><CD> 4", CENTER_MODE);
800d486: 2301 movs r3, #1
800d488: 4a12 ldr r2, [pc, #72] ; (800d4d4 <Display+0x7178>)
800d48a: 2180 movs r1, #128 ; 0x80
800d48c: 20ef movs r0, #239 ; 0xef
800d48e: f7f7 fed7 bl 8005240 <BSP_LCD_DisplayStringAt>
800d492: e0d7 b.n 800d644 <Display+0x72e8>
}
else
{
for(i = 0; i < 2; i++)
800d494: 2300 movs r3, #0
800d496: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d49a: e063 b.n 800d564 <Display+0x7208>
800d49c: 2002084c .word 0x2002084c
800d4a0: 2006b958 .word 0x2006b958
800d4a4: 080183cc .word 0x080183cc
800d4a8: 20020000 .word 0x20020000
800d4ac: 2006b94c .word 0x2006b94c
800d4b0: 2006bb88 .word 0x2006bb88
800d4b4: ffd3d3d3 .word 0xffd3d3d3
800d4b8: 080183d0 .word 0x080183d0
800d4bc: 080183d8 .word 0x080183d8
800d4c0: 080183e0 .word 0x080183e0
800d4c4: 080183e8 .word 0x080183e8
800d4c8: 080183f0 .word 0x080183f0
800d4cc: 080183f8 .word 0x080183f8
800d4d0: 08018400 .word 0x08018400
800d4d4: 08018408 .word 0x08018408
{
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800d4d8: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d4dc: 48c6 ldr r0, [pc, #792] ; (800d7f8 <Display+0x749c>)
800d4de: f7f7 fde9 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(4, 27 + 120*i, "INPUT:", LEFT_MODE);
800d4e2: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d4e6: b29b uxth r3, r3
800d4e8: 461a mov r2, r3
800d4ea: 0112 lsls r2, r2, #4
800d4ec: 1ad3 subs r3, r2, r3
800d4ee: 00db lsls r3, r3, #3
800d4f0: b29b uxth r3, r3
800d4f2: 331b adds r3, #27
800d4f4: b299 uxth r1, r3
800d4f6: 2303 movs r3, #3
800d4f8: 4ac0 ldr r2, [pc, #768] ; (800d7fc <Display+0x74a0>)
800d4fa: 2004 movs r0, #4
800d4fc: f7f7 fea0 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(3, 46+6 + 120*i, "HPF:", LEFT_MODE);
800d500: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d504: b29b uxth r3, r3
800d506: 461a mov r2, r3
800d508: 0112 lsls r2, r2, #4
800d50a: 1ad3 subs r3, r2, r3
800d50c: 00db lsls r3, r3, #3
800d50e: b29b uxth r3, r3
800d510: 3334 adds r3, #52 ; 0x34
800d512: b299 uxth r1, r3
800d514: 2303 movs r3, #3
800d516: 4aba ldr r2, [pc, #744] ; (800d800 <Display+0x74a4>)
800d518: 2003 movs r0, #3
800d51a: f7f7 fe91 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(3, 65+6 + 120*i, "LPF:", LEFT_MODE);
800d51e: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d522: b29b uxth r3, r3
800d524: 461a mov r2, r3
800d526: 0112 lsls r2, r2, #4
800d528: 1ad3 subs r3, r2, r3
800d52a: 00db lsls r3, r3, #3
800d52c: b29b uxth r3, r3
800d52e: 3347 adds r3, #71 ; 0x47
800d530: b299 uxth r1, r3
800d532: 2303 movs r3, #3
800d534: 4ab3 ldr r2, [pc, #716] ; (800d804 <Display+0x74a8>)
800d536: 2003 movs r0, #3
800d538: f7f7 fe82 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(4, 84+6 + 120*i, "OUT:", LEFT_MODE);
800d53c: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d540: b29b uxth r3, r3
800d542: 461a mov r2, r3
800d544: 0112 lsls r2, r2, #4
800d546: 1ad3 subs r3, r2, r3
800d548: 00db lsls r3, r3, #3
800d54a: b29b uxth r3, r3
800d54c: 335a adds r3, #90 ; 0x5a
800d54e: b299 uxth r1, r3
800d550: 2303 movs r3, #3
800d552: 4aad ldr r2, [pc, #692] ; (800d808 <Display+0x74ac>)
800d554: 2004 movs r0, #4
800d556: f7f7 fe73 bl 8005240 <BSP_LCD_DisplayStringAt>
for(i = 0; i < 2; i++)
800d55a: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d55e: 3301 adds r3, #1
800d560: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d564: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d568: 2b01 cmp r3, #1
800d56a: d9b5 bls.n 800d4d8 <Display+0x717c>
}
// 3-4 //
for(i = 0; i < 2; i++)
800d56c: 2300 movs r3, #0
800d56e: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d572: e045 b.n 800d600 <Display+0x72a4>
{
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800d574: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d578: 489f ldr r0, [pc, #636] ; (800d7f8 <Display+0x749c>)
800d57a: f7f7 fd9b bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(164, 27 + 120*i, "INPUT:", LEFT_MODE);
800d57e: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d582: b29b uxth r3, r3
800d584: 461a mov r2, r3
800d586: 0112 lsls r2, r2, #4
800d588: 1ad3 subs r3, r2, r3
800d58a: 00db lsls r3, r3, #3
800d58c: b29b uxth r3, r3
800d58e: 331b adds r3, #27
800d590: b299 uxth r1, r3
800d592: 2303 movs r3, #3
800d594: 4a99 ldr r2, [pc, #612] ; (800d7fc <Display+0x74a0>)
800d596: 20a4 movs r0, #164 ; 0xa4
800d598: f7f7 fe52 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(163, 46+6 + 120*i, "HPF:", LEFT_MODE);
800d59c: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d5a0: b29b uxth r3, r3
800d5a2: 461a mov r2, r3
800d5a4: 0112 lsls r2, r2, #4
800d5a6: 1ad3 subs r3, r2, r3
800d5a8: 00db lsls r3, r3, #3
800d5aa: b29b uxth r3, r3
800d5ac: 3334 adds r3, #52 ; 0x34
800d5ae: b299 uxth r1, r3
800d5b0: 2303 movs r3, #3
800d5b2: 4a93 ldr r2, [pc, #588] ; (800d800 <Display+0x74a4>)
800d5b4: 20a3 movs r0, #163 ; 0xa3
800d5b6: f7f7 fe43 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(163, 65+6 + 120*i, "LPF:", LEFT_MODE);
800d5ba: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d5be: b29b uxth r3, r3
800d5c0: 461a mov r2, r3
800d5c2: 0112 lsls r2, r2, #4
800d5c4: 1ad3 subs r3, r2, r3
800d5c6: 00db lsls r3, r3, #3
800d5c8: b29b uxth r3, r3
800d5ca: 3347 adds r3, #71 ; 0x47
800d5cc: b299 uxth r1, r3
800d5ce: 2303 movs r3, #3
800d5d0: 4a8c ldr r2, [pc, #560] ; (800d804 <Display+0x74a8>)
800d5d2: 20a3 movs r0, #163 ; 0xa3
800d5d4: f7f7 fe34 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(164, 84+6 + 120*i, "OUT::", LEFT_MODE);
800d5d8: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d5dc: b29b uxth r3, r3
800d5de: 461a mov r2, r3
800d5e0: 0112 lsls r2, r2, #4
800d5e2: 1ad3 subs r3, r2, r3
800d5e4: 00db lsls r3, r3, #3
800d5e6: b29b uxth r3, r3
800d5e8: 335a adds r3, #90 ; 0x5a
800d5ea: b299 uxth r1, r3
800d5ec: 2303 movs r3, #3
800d5ee: 4a87 ldr r2, [pc, #540] ; (800d80c <Display+0x74b0>)
800d5f0: 20a4 movs r0, #164 ; 0xa4
800d5f2: f7f7 fe25 bl 8005240 <BSP_LCD_DisplayStringAt>
for(i = 0; i < 2; i++)
800d5f6: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d5fa: 3301 adds r3, #1
800d5fc: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d600: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d604: 2b01 cmp r3, #1
800d606: d9b5 bls.n 800d574 <Display+0x7218>
}
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800d608: f04f 31ff mov.w r1, #4294967295
800d60c: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800d610: f7f7 fd50 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(79, 8, "CHANNEL 1", CENTER_MODE);
800d614: 2301 movs r3, #1
800d616: 4a7e ldr r2, [pc, #504] ; (800d810 <Display+0x74b4>)
800d618: 2108 movs r1, #8
800d61a: 204f movs r0, #79 ; 0x4f
800d61c: f7f7 fe10 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(79, 128, "CHANNEL 2", CENTER_MODE);
800d620: 2301 movs r3, #1
800d622: 4a7c ldr r2, [pc, #496] ; (800d814 <Display+0x74b8>)
800d624: 2180 movs r1, #128 ; 0x80
800d626: 204f movs r0, #79 ; 0x4f
800d628: f7f7 fe0a bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(239, 8, "CHANNEL 3", CENTER_MODE);
800d62c: 2301 movs r3, #1
800d62e: 4a7a ldr r2, [pc, #488] ; (800d818 <Display+0x74bc>)
800d630: 2108 movs r1, #8
800d632: 20ef movs r0, #239 ; 0xef
800d634: f7f7 fe04 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(239, 128, "CHANNEL 4", CENTER_MODE);
800d638: 2301 movs r3, #1
800d63a: 4a78 ldr r2, [pc, #480] ; (800d81c <Display+0x74c0>)
800d63c: 2180 movs r1, #128 ; 0x80
800d63e: 20ef movs r0, #239 ; 0xef
800d640: f7f7 fdfe bl 8005240 <BSP_LCD_DisplayStringAt>
}
for(i = 0; i < 4; i++)
800d644: 2300 movs r3, #0
800d646: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d64a: e018 b.n 800d67e <Display+0x7322>
{
if(MASK_CHANNELS & (1 << i)) {
800d64c: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d650: 2201 movs r2, #1
800d652: fa02 f303 lsl.w r3, r2, r3
800d656: 461a mov r2, r3
800d658: 4b71 ldr r3, [pc, #452] ; (800d820 <Display+0x74c4>)
800d65a: 681b ldr r3, [r3, #0]
800d65c: 4013 ands r3, r2
800d65e: 2b00 cmp r3, #0
800d660: d008 beq.n 800d674 <Display+0x7318>
DrawChannel_4(i, blk);
800d662: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d666: b2da uxtb r2, r3
800d668: 4b6e ldr r3, [pc, #440] ; (800d824 <Display+0x74c8>)
800d66a: 681b ldr r3, [r3, #0]
800d66c: 4619 mov r1, r3
800d66e: 4610 mov r0, r2
800d670: f000 fea4 bl 800e3bc <DrawChannel_4>
for(i = 0; i < 4; i++)
800d674: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d678: 3301 adds r3, #1
800d67a: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d67e: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d682: 2b03 cmp r3, #3
800d684: d9e2 bls.n 800d64c <Display+0x72f0>
}
else
{
}
break;
800d686: e31d b.n 800dcc4 <Display+0x7968>
case CALIBR_00:
BSP_LCD_SetFont(&Font12);
800d688: 4867 ldr r0, [pc, #412] ; (800d828 <Display+0x74cc>)
800d68a: f7f7 fd4f bl 800512c <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 fd0d bl 80050b4 <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);
800d69a: 2301 movs r3, #1
800d69c: 4a63 ldr r2, [pc, #396] ; (800d82c <Display+0x74d0>)
800d69e: 2118 movs r1, #24
800d6a0: 20a0 movs r0, #160 ; 0xa0
800d6a2: f7f7 fdcd bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos != Ch1)
800d6a6: 4b62 ldr r3, [pc, #392] ; (800d830 <Display+0x74d4>)
800d6a8: 781b ldrb r3, [r3, #0]
800d6aa: b2db uxtb r3, r3
800d6ac: 2b00 cmp r3, #0
800d6ae: d006 beq.n 800d6be <Display+0x7362>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800d6b0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d6b4: f04f 30ff mov.w r0, #4294967295
800d6b8: f7f7 fcfc bl 80050b4 <LCD_SetColors>
800d6bc: e005 b.n 800d6ca <Display+0x736e>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800d6be: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d6c2: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800d6c6: f7f7 fcf5 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 48+64, "<22><><CA><C0><CD> 1", CENTER_MODE);
800d6ca: 2301 movs r3, #1
800d6cc: 4a59 ldr r2, [pc, #356] ; (800d834 <Display+0x74d8>)
800d6ce: 2170 movs r1, #112 ; 0x70
800d6d0: 20a0 movs r0, #160 ; 0xa0
800d6d2: f7f7 fdb5 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos != Ch2)
800d6d6: 4b56 ldr r3, [pc, #344] ; (800d830 <Display+0x74d4>)
800d6d8: 781b ldrb r3, [r3, #0]
800d6da: b2db uxtb r3, r3
800d6dc: 2b01 cmp r3, #1
800d6de: d006 beq.n 800d6ee <Display+0x7392>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800d6e0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d6e4: f04f 30ff mov.w r0, #4294967295
800d6e8: f7f7 fce4 bl 80050b4 <LCD_SetColors>
800d6ec: e005 b.n 800d6fa <Display+0x739e>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800d6ee: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d6f2: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800d6f6: f7f7 fcdd bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 72+64, "<22><><CA><C0><CD> 2", CENTER_MODE);
800d6fa: 2301 movs r3, #1
800d6fc: 4a4e ldr r2, [pc, #312] ; (800d838 <Display+0x74dc>)
800d6fe: 2188 movs r1, #136 ; 0x88
800d700: 20a0 movs r0, #160 ; 0xa0
800d702: f7f7 fd9d bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos != Ch3)
800d706: 4b4a ldr r3, [pc, #296] ; (800d830 <Display+0x74d4>)
800d708: 781b ldrb r3, [r3, #0]
800d70a: b2db uxtb r3, r3
800d70c: 2b02 cmp r3, #2
800d70e: d006 beq.n 800d71e <Display+0x73c2>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800d710: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d714: f04f 30ff mov.w r0, #4294967295
800d718: f7f7 fccc bl 80050b4 <LCD_SetColors>
800d71c: e005 b.n 800d72a <Display+0x73ce>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800d71e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d722: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800d726: f7f7 fcc5 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 96+64, "<22><><CA><C0><CD> 3", CENTER_MODE);
800d72a: 2301 movs r3, #1
800d72c: 4a43 ldr r2, [pc, #268] ; (800d83c <Display+0x74e0>)
800d72e: 21a0 movs r1, #160 ; 0xa0
800d730: 20a0 movs r0, #160 ; 0xa0
800d732: f7f7 fd85 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos != Ch4)
800d736: 4b3e ldr r3, [pc, #248] ; (800d830 <Display+0x74d4>)
800d738: 781b ldrb r3, [r3, #0]
800d73a: b2db uxtb r3, r3
800d73c: 2b03 cmp r3, #3
800d73e: d006 beq.n 800d74e <Display+0x73f2>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800d740: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d744: f04f 30ff mov.w r0, #4294967295
800d748: f7f7 fcb4 bl 80050b4 <LCD_SetColors>
800d74c: e005 b.n 800d75a <Display+0x73fe>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800d74e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d752: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800d756: f7f7 fcad bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 120+64, "<22><><CA><C0><CD> 4", CENTER_MODE);
800d75a: 2301 movs r3, #1
800d75c: 4a38 ldr r2, [pc, #224] ; (800d840 <Display+0x74e4>)
800d75e: 21b8 movs r1, #184 ; 0xb8
800d760: 20a0 movs r0, #160 ; 0xa0
800d762: f7f7 fd6d bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos != Ch5)
800d766: 4b32 ldr r3, [pc, #200] ; (800d830 <Display+0x74d4>)
800d768: 781b ldrb r3, [r3, #0]
800d76a: b2db uxtb r3, r3
800d76c: 2b04 cmp r3, #4
800d76e: d006 beq.n 800d77e <Display+0x7422>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800d770: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d774: f04f 30ff mov.w r0, #4294967295
800d778: f7f7 fc9c bl 80050b4 <LCD_SetColors>
800d77c: e005 b.n 800d78a <Display+0x742e>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800d77e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d782: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800d786: f7f7 fc95 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 144+64, "<22><><C2><DB><D5>", CENTER_MODE);
800d78a: 2301 movs r3, #1
800d78c: 4a2d ldr r2, [pc, #180] ; (800d844 <Display+0x74e8>)
800d78e: 21d0 movs r1, #208 ; 0xd0
800d790: 20a0 movs r0, #160 ; 0xa0
800d792: f7f7 fd55 bl 8005240 <BSP_LCD_DisplayStringAt>
break;
800d796: e296 b.n 800dcc6 <Display+0x796a>
case CALIBR_0: // [CHARGE x1] + KU_1
BSP_LCD_SetFont(&Font12);
800d798: 4823 ldr r0, [pc, #140] ; (800d828 <Display+0x74cc>)
800d79a: f7f7 fcc7 bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d79e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d7a2: f06f 00ff mvn.w r0, #255 ; 0xff
800d7a6: f7f7 fc85 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x0.1]:", CENTER_MODE);
800d7aa: 2301 movs r3, #1
800d7ac: 4a26 ldr r2, [pc, #152] ; (800d848 <Display+0x74ec>)
800d7ae: 210a movs r1, #10
800d7b0: 20a0 movs r0, #160 ; 0xa0
800d7b2: f7f7 fd45 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5000<30><30>", CENTER_MODE);
800d7b6: 2301 movs r3, #1
800d7b8: 4a24 ldr r2, [pc, #144] ; (800d84c <Display+0x74f0>)
800d7ba: 2118 movs r1, #24
800d7bc: 20a0 movs r0, #160 ; 0xa0
800d7be: f7f7 fd3f bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d7c2: f001 ffb7 bl 800f734 <DrawButtons>
break;
800d7c6: e27e b.n 800dcc6 <Display+0x796a>
case CALIBR_1: // CHARGE x1 + [KU_2]
BSP_LCD_SetFont(&Font12);
800d7c8: 4817 ldr r0, [pc, #92] ; (800d828 <Display+0x74cc>)
800d7ca: f7f7 fcaf bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d7ce: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d7d2: f06f 00ff mvn.w r0, #255 ; 0xff
800d7d6: f7f7 fc6d bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x0.2]:", CENTER_MODE);
800d7da: 2301 movs r3, #1
800d7dc: 4a1c ldr r2, [pc, #112] ; (800d850 <Display+0x74f4>)
800d7de: 210a movs r1, #10
800d7e0: 20a0 movs r0, #160 ; 0xa0
800d7e2: f7f7 fd2d bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5000<30><30>", CENTER_MODE);
800d7e6: 2301 movs r3, #1
800d7e8: 4a18 ldr r2, [pc, #96] ; (800d84c <Display+0x74f0>)
800d7ea: 2118 movs r1, #24
800d7ec: 20a0 movs r0, #160 ; 0xa0
800d7ee: f7f7 fd27 bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d7f2: f001 ff9f bl 800f734 <DrawButtons>
break;
800d7f6: e266 b.n 800dcc6 <Display+0x796a>
800d7f8: ffd3d3d3 .word 0xffd3d3d3
800d7fc: 08018410 .word 0x08018410
800d800: 08018418 .word 0x08018418
800d804: 08018420 .word 0x08018420
800d808: 08018428 .word 0x08018428
800d80c: 08018430 .word 0x08018430
800d810: 08018438 .word 0x08018438
800d814: 08018444 .word 0x08018444
800d818: 08018450 .word 0x08018450
800d81c: 0801845c .word 0x0801845c
800d820: 2002002c .word 0x2002002c
800d824: 2006b958 .word 0x2006b958
800d828: 20020000 .word 0x20020000
800d82c: 08018468 .word 0x08018468
800d830: 20020010 .word 0x20020010
800d834: 080183f0 .word 0x080183f0
800d838: 080183f8 .word 0x080183f8
800d83c: 08018400 .word 0x08018400
800d840: 08018408 .word 0x08018408
800d844: 08018488 .word 0x08018488
800d848: 08018490 .word 0x08018490
800d84c: 080184a8 .word 0x080184a8
800d850: 080184c0 .word 0x080184c0
case CALIBR_2: // CHARGE x1 + [KU_5]
BSP_LCD_SetFont(&Font12);
800d854: 48d7 ldr r0, [pc, #860] ; (800dbb4 <Display+0x7858>)
800d856: f7f7 fc69 bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d85a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d85e: f06f 00ff mvn.w r0, #255 ; 0xff
800d862: f7f7 fc27 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x0.5]:", CENTER_MODE);
800d866: 2301 movs r3, #1
800d868: 4ad3 ldr r2, [pc, #844] ; (800dbb8 <Display+0x785c>)
800d86a: 210a movs r1, #10
800d86c: 20a0 movs r0, #160 ; 0xa0
800d86e: f7f7 fce7 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5000<30><30>", CENTER_MODE);
800d872: 2301 movs r3, #1
800d874: 4ad1 ldr r2, [pc, #836] ; (800dbbc <Display+0x7860>)
800d876: 2118 movs r1, #24
800d878: 20a0 movs r0, #160 ; 0xa0
800d87a: f7f7 fce1 bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d87e: f001 ff59 bl 800f734 <DrawButtons>
break;
800d882: e220 b.n 800dcc6 <Display+0x796a>
case CALIBR_3: // CHARGE x1 + [KU_10]
BSP_LCD_SetFont(&Font12);
800d884: 48cb ldr r0, [pc, #812] ; (800dbb4 <Display+0x7858>)
800d886: f7f7 fc51 bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d88a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d88e: f06f 00ff mvn.w r0, #255 ; 0xff
800d892: f7f7 fc0f bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x1]:", CENTER_MODE);
800d896: 2301 movs r3, #1
800d898: 4ac9 ldr r2, [pc, #804] ; (800dbc0 <Display+0x7864>)
800d89a: 210a movs r1, #10
800d89c: 20a0 movs r0, #160 ; 0xa0
800d89e: f7f7 fccf bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5000<30><30>", CENTER_MODE);
800d8a2: 2301 movs r3, #1
800d8a4: 4ac5 ldr r2, [pc, #788] ; (800dbbc <Display+0x7860>)
800d8a6: 2118 movs r1, #24
800d8a8: 20a0 movs r0, #160 ; 0xa0
800d8aa: f7f7 fcc9 bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d8ae: f001 ff41 bl 800f734 <DrawButtons>
break;
800d8b2: e208 b.n 800dcc6 <Display+0x796a>
case CALIBR_4: // CHARGE x1 + [KU_x10]
BSP_LCD_SetFont(&Font12);
800d8b4: 48bf ldr r0, [pc, #764] ; (800dbb4 <Display+0x7858>)
800d8b6: f7f7 fc39 bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d8ba: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d8be: f06f 00ff mvn.w r0, #255 ; 0xff
800d8c2: f7f7 fbf7 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x2]:", CENTER_MODE);
800d8c6: 2301 movs r3, #1
800d8c8: 4abe ldr r2, [pc, #760] ; (800dbc4 <Display+0x7868>)
800d8ca: 210a movs r1, #10
800d8cc: 20a0 movs r0, #160 ; 0xa0
800d8ce: f7f7 fcb7 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 2500<30><30>", CENTER_MODE);
800d8d2: 2301 movs r3, #1
800d8d4: 4abc ldr r2, [pc, #752] ; (800dbc8 <Display+0x786c>)
800d8d6: 2118 movs r1, #24
800d8d8: 20a0 movs r0, #160 ; 0xa0
800d8da: f7f7 fcb1 bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d8de: f001 ff29 bl 800f734 <DrawButtons>
break;
800d8e2: e1f0 b.n 800dcc6 <Display+0x796a>
case CALIBR_5: // [CHARGE x10] + KU_1
BSP_LCD_SetFont(&Font12);
800d8e4: 48b3 ldr r0, [pc, #716] ; (800dbb4 <Display+0x7858>)
800d8e6: f7f7 fc21 bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d8ea: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d8ee: f06f 00ff mvn.w r0, #255 ; 0xff
800d8f2: f7f7 fbdf bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x5]:", CENTER_MODE);
800d8f6: 2301 movs r3, #1
800d8f8: 4ab4 ldr r2, [pc, #720] ; (800dbcc <Display+0x7870>)
800d8fa: 210a movs r1, #10
800d8fc: 20a0 movs r0, #160 ; 0xa0
800d8fe: f7f7 fc9f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 1000<30><30>", CENTER_MODE);
800d902: 2301 movs r3, #1
800d904: 4ab2 ldr r2, [pc, #712] ; (800dbd0 <Display+0x7874>)
800d906: 2118 movs r1, #24
800d908: 20a0 movs r0, #160 ; 0xa0
800d90a: f7f7 fc99 bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d90e: f001 ff11 bl 800f734 <DrawButtons>
break;
800d912: e1d8 b.n 800dcc6 <Display+0x796a>
case CALIBR_6: // [CHARGE x0.1] + KU_1
BSP_LCD_SetFont(&Font12);
800d914: 48a7 ldr r0, [pc, #668] ; (800dbb4 <Display+0x7858>)
800d916: f7f7 fc09 bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d91a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d91e: f06f 00ff mvn.w r0, #255 ; 0xff
800d922: f7f7 fbc7 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x10]:", CENTER_MODE);
800d926: 2301 movs r3, #1
800d928: 4aaa ldr r2, [pc, #680] ; (800dbd4 <Display+0x7878>)
800d92a: 210a movs r1, #10
800d92c: 20a0 movs r0, #160 ; 0xa0
800d92e: f7f7 fc87 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 500<30><30>", CENTER_MODE);
800d932: 2301 movs r3, #1
800d934: 4aa8 ldr r2, [pc, #672] ; (800dbd8 <Display+0x787c>)
800d936: 2118 movs r1, #24
800d938: 20a0 movs r0, #160 ; 0xa0
800d93a: f7f7 fc81 bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d93e: f001 fef9 bl 800f734 <DrawButtons>
break;
800d942: e1c0 b.n 800dcc6 <Display+0x796a>
case CALIBR_7: // [ICP x1] + KU_1
BSP_LCD_SetFont(&Font12);
800d944: 489b ldr r0, [pc, #620] ; (800dbb4 <Display+0x7858>)
800d946: f7f7 fbf1 bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d94a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d94e: f06f 00ff mvn.w r0, #255 ; 0xff
800d952: f7f7 fbaf bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x20]:", CENTER_MODE);
800d956: 2301 movs r3, #1
800d958: 4aa0 ldr r2, [pc, #640] ; (800dbdc <Display+0x7880>)
800d95a: 210a movs r1, #10
800d95c: 20a0 movs r0, #160 ; 0xa0
800d95e: f7f7 fc6f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 250<35><30>", CENTER_MODE);
800d962: 2301 movs r3, #1
800d964: 4a9e ldr r2, [pc, #632] ; (800dbe0 <Display+0x7884>)
800d966: 2118 movs r1, #24
800d968: 20a0 movs r0, #160 ; 0xa0
800d96a: f7f7 fc69 bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d96e: f001 fee1 bl 800f734 <DrawButtons>
break;
800d972: e1a8 b.n 800dcc6 <Display+0x796a>
case CALIBR_8: // [ICP x10] + KU_1
BSP_LCD_SetFont(&Font12);
800d974: 488f ldr r0, [pc, #572] ; (800dbb4 <Display+0x7858>)
800d976: f7f7 fbd9 bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d97a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d97e: f06f 00ff mvn.w r0, #255 ; 0xff
800d982: f7f7 fb97 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x50]:", CENTER_MODE);
800d986: 2301 movs r3, #1
800d988: 4a96 ldr r2, [pc, #600] ; (800dbe4 <Display+0x7888>)
800d98a: 210a movs r1, #10
800d98c: 20a0 movs r0, #160 ; 0xa0
800d98e: f7f7 fc57 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 100<30><30>", CENTER_MODE);
800d992: 2301 movs r3, #1
800d994: 4a94 ldr r2, [pc, #592] ; (800dbe8 <Display+0x788c>)
800d996: 2118 movs r1, #24
800d998: 20a0 movs r0, #160 ; 0xa0
800d99a: f7f7 fc51 bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d99e: f001 fec9 bl 800f734 <DrawButtons>
break;
800d9a2: e190 b.n 800dcc6 <Display+0x796a>
case CALIBR_9: // [CHARGE x10 + KU_2 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d9a4: 4883 ldr r0, [pc, #524] ; (800dbb4 <Display+0x7858>)
800d9a6: f7f7 fbc1 bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d9aa: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d9ae: f06f 00ff mvn.w r0, #255 ; 0xff
800d9b2: f7f7 fb7f bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x100]:", CENTER_MODE);
800d9b6: 2301 movs r3, #1
800d9b8: 4a8c ldr r2, [pc, #560] ; (800dbec <Display+0x7890>)
800d9ba: 210a movs r1, #10
800d9bc: 20a0 movs r0, #160 ; 0xa0
800d9be: f7f7 fc3f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 50<35><30>", CENTER_MODE);
800d9c2: 2301 movs r3, #1
800d9c4: 4a8a ldr r2, [pc, #552] ; (800dbf0 <Display+0x7894>)
800d9c6: 2118 movs r1, #24
800d9c8: 20a0 movs r0, #160 ; 0xa0
800d9ca: f7f7 fc39 bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d9ce: f001 feb1 bl 800f734 <DrawButtons>
break;
800d9d2: e178 b.n 800dcc6 <Display+0x796a>
case CALIBR_10: // [CHARGE x10 + KU_5 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d9d4: 4877 ldr r0, [pc, #476] ; (800dbb4 <Display+0x7858>)
800d9d6: f7f7 fba9 bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d9da: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d9de: f06f 00ff mvn.w r0, #255 ; 0xff
800d9e2: f7f7 fb67 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x200]:", CENTER_MODE);
800d9e6: 2301 movs r3, #1
800d9e8: 4a82 ldr r2, [pc, #520] ; (800dbf4 <Display+0x7898>)
800d9ea: 210a movs r1, #10
800d9ec: 20a0 movs r0, #160 ; 0xa0
800d9ee: f7f7 fc27 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 25<32><35>", CENTER_MODE);
800d9f2: 2301 movs r3, #1
800d9f4: 4a80 ldr r2, [pc, #512] ; (800dbf8 <Display+0x789c>)
800d9f6: 2118 movs r1, #24
800d9f8: 20a0 movs r0, #160 ; 0xa0
800d9fa: f7f7 fc21 bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d9fe: f001 fe99 bl 800f734 <DrawButtons>
break;
800da02: e160 b.n 800dcc6 <Display+0x796a>
case CALIBR_11: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800da04: 486b ldr r0, [pc, #428] ; (800dbb4 <Display+0x7858>)
800da06: f7f7 fb91 bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800da0a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800da0e: f06f 00ff mvn.w r0, #255 ; 0xff
800da12: f7f7 fb4f bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x500]:", CENTER_MODE);
800da16: 2301 movs r3, #1
800da18: 4a78 ldr r2, [pc, #480] ; (800dbfc <Display+0x78a0>)
800da1a: 210a movs r1, #10
800da1c: 20a0 movs r0, #160 ; 0xa0
800da1e: f7f7 fc0f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 10<31><30>", CENTER_MODE);
800da22: 2301 movs r3, #1
800da24: 4a76 ldr r2, [pc, #472] ; (800dc00 <Display+0x78a4>)
800da26: 2118 movs r1, #24
800da28: 20a0 movs r0, #160 ; 0xa0
800da2a: f7f7 fc09 bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800da2e: f001 fe81 bl 800f734 <DrawButtons>
break;
800da32: e148 b.n 800dcc6 <Display+0x796a>
case CALIBR_12: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800da34: 485f ldr r0, [pc, #380] ; (800dbb4 <Display+0x7858>)
800da36: f7f7 fb79 bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800da3a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800da3e: f06f 00ff mvn.w r0, #255 ; 0xff
800da42: f7f7 fb37 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x1000]:", CENTER_MODE);
800da46: 2301 movs r3, #1
800da48: 4a6e ldr r2, [pc, #440] ; (800dc04 <Display+0x78a8>)
800da4a: 210a movs r1, #10
800da4c: 20a0 movs r0, #160 ; 0xa0
800da4e: f7f7 fbf7 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5<><35>", CENTER_MODE);
800da52: 2301 movs r3, #1
800da54: 4a6c ldr r2, [pc, #432] ; (800dc08 <Display+0x78ac>)
800da56: 2118 movs r1, #24
800da58: 20a0 movs r0, #160 ; 0xa0
800da5a: f7f7 fbf1 bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800da5e: f001 fe69 bl 800f734 <DrawButtons>
break;
800da62: e130 b.n 800dcc6 <Display+0x796a>
case CALIBR_13: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800da64: 4853 ldr r0, [pc, #332] ; (800dbb4 <Display+0x7858>)
800da66: f7f7 fb61 bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800da6a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800da6e: f06f 00ff mvn.w r0, #255 ; 0xff
800da72: f7f7 fb1f bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx1]:", CENTER_MODE);
800da76: 2301 movs r3, #1
800da78: 4a64 ldr r2, [pc, #400] ; (800dc0c <Display+0x78b0>)
800da7a: 210a movs r1, #10
800da7c: 20a0 movs r0, #160 ; 0xa0
800da7e: f7f7 fbdf bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5000<30><30>", CENTER_MODE);
800da82: 2301 movs r3, #1
800da84: 4a4d ldr r2, [pc, #308] ; (800dbbc <Display+0x7860>)
800da86: 2118 movs r1, #24
800da88: 20a0 movs r0, #160 ; 0xa0
800da8a: f7f7 fbd9 bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800da8e: f001 fe51 bl 800f734 <DrawButtons>
break;
800da92: e118 b.n 800dcc6 <Display+0x796a>
case CALIBR_14: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800da94: 4847 ldr r0, [pc, #284] ; (800dbb4 <Display+0x7858>)
800da96: f7f7 fb49 bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800da9a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800da9e: f06f 00ff mvn.w r0, #255 ; 0xff
800daa2: f7f7 fb07 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx2]:", CENTER_MODE);
800daa6: 2301 movs r3, #1
800daa8: 4a59 ldr r2, [pc, #356] ; (800dc10 <Display+0x78b4>)
800daaa: 210a movs r1, #10
800daac: 20a0 movs r0, #160 ; 0xa0
800daae: f7f7 fbc7 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 2500<30><30>", CENTER_MODE);
800dab2: 2301 movs r3, #1
800dab4: 4a44 ldr r2, [pc, #272] ; (800dbc8 <Display+0x786c>)
800dab6: 2118 movs r1, #24
800dab8: 20a0 movs r0, #160 ; 0xa0
800daba: f7f7 fbc1 bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800dabe: f001 fe39 bl 800f734 <DrawButtons>
break;
800dac2: e100 b.n 800dcc6 <Display+0x796a>
case CALIBR_15: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800dac4: 483b ldr r0, [pc, #236] ; (800dbb4 <Display+0x7858>)
800dac6: f7f7 fb31 bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800daca: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dace: f06f 00ff mvn.w r0, #255 ; 0xff
800dad2: f7f7 faef bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx5]:", CENTER_MODE);
800dad6: 2301 movs r3, #1
800dad8: 4a4e ldr r2, [pc, #312] ; (800dc14 <Display+0x78b8>)
800dada: 210a movs r1, #10
800dadc: 20a0 movs r0, #160 ; 0xa0
800dade: f7f7 fbaf bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 1000<30><30>", CENTER_MODE);
800dae2: 2301 movs r3, #1
800dae4: 4a3a ldr r2, [pc, #232] ; (800dbd0 <Display+0x7874>)
800dae6: 2118 movs r1, #24
800dae8: 20a0 movs r0, #160 ; 0xa0
800daea: f7f7 fba9 bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800daee: f001 fe21 bl 800f734 <DrawButtons>
break;
800daf2: e0e8 b.n 800dcc6 <Display+0x796a>
case CALIBR_16: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800daf4: 482f ldr r0, [pc, #188] ; (800dbb4 <Display+0x7858>)
800daf6: f7f7 fb19 bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800dafa: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dafe: f06f 00ff mvn.w r0, #255 ; 0xff
800db02: f7f7 fad7 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx10]:", CENTER_MODE);
800db06: 2301 movs r3, #1
800db08: 4a43 ldr r2, [pc, #268] ; (800dc18 <Display+0x78bc>)
800db0a: 210a movs r1, #10
800db0c: 20a0 movs r0, #160 ; 0xa0
800db0e: f7f7 fb97 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 500<30><30>", CENTER_MODE);
800db12: 2301 movs r3, #1
800db14: 4a30 ldr r2, [pc, #192] ; (800dbd8 <Display+0x787c>)
800db16: 2118 movs r1, #24
800db18: 20a0 movs r0, #160 ; 0xa0
800db1a: f7f7 fb91 bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800db1e: f001 fe09 bl 800f734 <DrawButtons>
break;
800db22: e0d0 b.n 800dcc6 <Display+0x796a>
case CALIBR_17: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800db24: 4823 ldr r0, [pc, #140] ; (800dbb4 <Display+0x7858>)
800db26: f7f7 fb01 bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800db2a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800db2e: f06f 00ff mvn.w r0, #255 ; 0xff
800db32: f7f7 fabf bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx20]:", CENTER_MODE);
800db36: 2301 movs r3, #1
800db38: 4a38 ldr r2, [pc, #224] ; (800dc1c <Display+0x78c0>)
800db3a: 210a movs r1, #10
800db3c: 20a0 movs r0, #160 ; 0xa0
800db3e: f7f7 fb7f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 250<35><30>", CENTER_MODE);
800db42: 2301 movs r3, #1
800db44: 4a26 ldr r2, [pc, #152] ; (800dbe0 <Display+0x7884>)
800db46: 2118 movs r1, #24
800db48: 20a0 movs r0, #160 ; 0xa0
800db4a: f7f7 fb79 bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800db4e: f001 fdf1 bl 800f734 <DrawButtons>
break;
800db52: e0b8 b.n 800dcc6 <Display+0x796a>
case CALIBR_18: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800db54: 4817 ldr r0, [pc, #92] ; (800dbb4 <Display+0x7858>)
800db56: f7f7 fae9 bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800db5a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800db5e: f06f 00ff mvn.w r0, #255 ; 0xff
800db62: f7f7 faa7 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx50]:", CENTER_MODE);
800db66: 2301 movs r3, #1
800db68: 4a2d ldr r2, [pc, #180] ; (800dc20 <Display+0x78c4>)
800db6a: 210a movs r1, #10
800db6c: 20a0 movs r0, #160 ; 0xa0
800db6e: f7f7 fb67 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 100<30><30>", CENTER_MODE);
800db72: 2301 movs r3, #1
800db74: 4a1c ldr r2, [pc, #112] ; (800dbe8 <Display+0x788c>)
800db76: 2118 movs r1, #24
800db78: 20a0 movs r0, #160 ; 0xa0
800db7a: f7f7 fb61 bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800db7e: f001 fdd9 bl 800f734 <DrawButtons>
break;
800db82: e0a0 b.n 800dcc6 <Display+0x796a>
case CALIBR_19: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800db84: 480b ldr r0, [pc, #44] ; (800dbb4 <Display+0x7858>)
800db86: f7f7 fad1 bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800db8a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800db8e: f06f 00ff mvn.w r0, #255 ; 0xff
800db92: f7f7 fa8f bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx100]:", CENTER_MODE);
800db96: 2301 movs r3, #1
800db98: 4a22 ldr r2, [pc, #136] ; (800dc24 <Display+0x78c8>)
800db9a: 210a movs r1, #10
800db9c: 20a0 movs r0, #160 ; 0xa0
800db9e: f7f7 fb4f bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 50<35><30>", CENTER_MODE);
800dba2: 2301 movs r3, #1
800dba4: 4a12 ldr r2, [pc, #72] ; (800dbf0 <Display+0x7894>)
800dba6: 2118 movs r1, #24
800dba8: 20a0 movs r0, #160 ; 0xa0
800dbaa: f7f7 fb49 bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800dbae: f001 fdc1 bl 800f734 <DrawButtons>
break;
800dbb2: e088 b.n 800dcc6 <Display+0x796a>
800dbb4: 20020000 .word 0x20020000
800dbb8: 080184d8 .word 0x080184d8
800dbbc: 080184a8 .word 0x080184a8
800dbc0: 080184f0 .word 0x080184f0
800dbc4: 08018508 .word 0x08018508
800dbc8: 08018520 .word 0x08018520
800dbcc: 08018538 .word 0x08018538
800dbd0: 08018550 .word 0x08018550
800dbd4: 08018568 .word 0x08018568
800dbd8: 08018580 .word 0x08018580
800dbdc: 08018598 .word 0x08018598
800dbe0: 080185b0 .word 0x080185b0
800dbe4: 080185c8 .word 0x080185c8
800dbe8: 080185e0 .word 0x080185e0
800dbec: 080185f8 .word 0x080185f8
800dbf0: 08018610 .word 0x08018610
800dbf4: 08018628 .word 0x08018628
800dbf8: 08018640 .word 0x08018640
800dbfc: 08018658 .word 0x08018658
800dc00: 08018670 .word 0x08018670
800dc04: 08018688 .word 0x08018688
800dc08: 080186a0 .word 0x080186a0
800dc0c: 080186b8 .word 0x080186b8
800dc10: 080186cc .word 0x080186cc
800dc14: 080186e0 .word 0x080186e0
800dc18: 080186f4 .word 0x080186f4
800dc1c: 0801870c .word 0x0801870c
800dc20: 08018724 .word 0x08018724
800dc24: 0801873c .word 0x0801873c
case CALIBR_20: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800dc28: 482e ldr r0, [pc, #184] ; (800dce4 <Display+0x7988>)
800dc2a: f7f7 fa7f bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800dc2e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dc32: f06f 00ff mvn.w r0, #255 ; 0xff
800dc36: f7f7 fa3d bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx200]:", CENTER_MODE);
800dc3a: 2301 movs r3, #1
800dc3c: 4a2a ldr r2, [pc, #168] ; (800dce8 <Display+0x798c>)
800dc3e: 210a movs r1, #10
800dc40: 20a0 movs r0, #160 ; 0xa0
800dc42: f7f7 fafd bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 25<32><35>", CENTER_MODE);
800dc46: 2301 movs r3, #1
800dc48: 4a28 ldr r2, [pc, #160] ; (800dcec <Display+0x7990>)
800dc4a: 2118 movs r1, #24
800dc4c: 20a0 movs r0, #160 ; 0xa0
800dc4e: f7f7 faf7 bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800dc52: f001 fd6f bl 800f734 <DrawButtons>
break;
800dc56: e036 b.n 800dcc6 <Display+0x796a>
case CALIBR_21: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800dc58: 4822 ldr r0, [pc, #136] ; (800dce4 <Display+0x7988>)
800dc5a: f7f7 fa67 bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800dc5e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dc62: f06f 00ff mvn.w r0, #255 ; 0xff
800dc66: f7f7 fa25 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx500]:", CENTER_MODE);
800dc6a: 2301 movs r3, #1
800dc6c: 4a20 ldr r2, [pc, #128] ; (800dcf0 <Display+0x7994>)
800dc6e: 210a movs r1, #10
800dc70: 20a0 movs r0, #160 ; 0xa0
800dc72: f7f7 fae5 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 10<31><30>", CENTER_MODE);
800dc76: 2301 movs r3, #1
800dc78: 4a1e ldr r2, [pc, #120] ; (800dcf4 <Display+0x7998>)
800dc7a: 2118 movs r1, #24
800dc7c: 20a0 movs r0, #160 ; 0xa0
800dc7e: f7f7 fadf bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800dc82: f001 fd57 bl 800f734 <DrawButtons>
break;
800dc86: e01e b.n 800dcc6 <Display+0x796a>
case CALIBR_22: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800dc88: 4816 ldr r0, [pc, #88] ; (800dce4 <Display+0x7988>)
800dc8a: f7f7 fa4f bl 800512c <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800dc8e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dc92: f06f 00ff mvn.w r0, #255 ; 0xff
800dc96: f7f7 fa0d bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx1000]:", CENTER_MODE);
800dc9a: 2301 movs r3, #1
800dc9c: 4a16 ldr r2, [pc, #88] ; (800dcf8 <Display+0x799c>)
800dc9e: 210a movs r1, #10
800dca0: 20a0 movs r0, #160 ; 0xa0
800dca2: f7f7 facd bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5<><35>", CENTER_MODE);
800dca6: 2301 movs r3, #1
800dca8: 4a14 ldr r2, [pc, #80] ; (800dcfc <Display+0x79a0>)
800dcaa: 2118 movs r1, #24
800dcac: 20a0 movs r0, #160 ; 0xa0
800dcae: f7f7 fac7 bl 8005240 <BSP_LCD_DisplayStringAt>
DrawButtons();
800dcb2: f001 fd3f bl 800f734 <DrawButtons>
break;
800dcb6: e006 b.n 800dcc6 <Display+0x796a>
break;
800dcb8: bf00 nop
800dcba: e004 b.n 800dcc6 <Display+0x796a>
break;
800dcbc: bf00 nop
800dcbe: e002 b.n 800dcc6 <Display+0x796a>
break;
800dcc0: bf00 nop
800dcc2: e000 b.n 800dcc6 <Display+0x796a>
break;
800dcc4: bf00 nop
Redrawing = false;
800dcc6: 4b0e ldr r3, [pc, #56] ; (800dd00 <Display+0x79a4>)
800dcc8: 2200 movs r2, #0
800dcca: 701a strb r2, [r3, #0]
RefreshScreen = true;
800dccc: 4b0d ldr r3, [pc, #52] ; (800dd04 <Display+0x79a8>)
800dcce: 2201 movs r2, #1
800dcd0: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0);
800dcd2: 2100 movs r1, #0
800dcd4: 480c ldr r0, [pc, #48] ; (800dd08 <Display+0x79ac>)
800dcd6: f005 fc53 bl 8013580 <HAL_LTDC_ProgramLineEvent>
//**************************************************************************************************************
//**************************************************************************************************************
}
800dcda: bf00 nop
800dcdc: f507 7752 add.w r7, r7, #840 ; 0x348
800dce0: 46bd mov sp, r7
800dce2: bd80 pop {r7, pc}
800dce4: 20020000 .word 0x20020000
800dce8: 08018754 .word 0x08018754
800dcec: 08018640 .word 0x08018640
800dcf0: 0801876c .word 0x0801876c
800dcf4: 08018670 .word 0x08018670
800dcf8: 08018784 .word 0x08018784
800dcfc: 080186a0 .word 0x080186a0
800dd00: 2006b954 .word 0x2006b954
800dd04: 2006b940 .word 0x2006b940
800dd08: 2006c054 .word 0x2006c054
0800dd0c <DrawMySpinner>:
void DrawMySpinner(uint16_t x, uint16_t y) //
{
800dd0c: b580 push {r7, lr}
800dd0e: b082 sub sp, #8
800dd10: af00 add r7, sp, #0
800dd12: 4603 mov r3, r0
800dd14: 460a mov r2, r1
800dd16: 80fb strh r3, [r7, #6]
800dd18: 4613 mov r3, r2
800dd1a: 80bb strh r3, [r7, #4]
static uint32_t rotate = 0;
switch(rotate)
800dd1c: 4b98 ldr r3, [pc, #608] ; (800df80 <DrawMySpinner+0x274>)
800dd1e: 681b ldr r3, [r3, #0]
800dd20: 2b07 cmp r3, #7
800dd22: f200 8311 bhi.w 800e348 <DrawMySpinner+0x63c>
800dd26: a201 add r2, pc, #4 ; (adr r2, 800dd2c <DrawMySpinner+0x20>)
800dd28: f852 f023 ldr.w pc, [r2, r3, lsl #2]
800dd2c: 0800dd4d .word 0x0800dd4d
800dd30: 0800de09 .word 0x0800de09
800dd34: 0800dec5 .word 0x0800dec5
800dd38: 0800df91 .word 0x0800df91
800dd3c: 0800e04d .word 0x0800e04d
800dd40: 0800e109 .word 0x0800e109
800dd44: 0800e1c5 .word 0x0800e1c5
800dd48: 0800e28d .word 0x0800e28d
{
case 0:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800dd4c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dd50: f04f 30ff mov.w r0, #4294967295
800dd54: f7f7 f9ae bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800dd58: 88bb ldrh r3, [r7, #4]
800dd5a: 330a adds r3, #10
800dd5c: b299 uxth r1, r3
800dd5e: 88fb ldrh r3, [r7, #6]
800dd60: 2203 movs r2, #3
800dd62: 4618 mov r0, r3
800dd64: f7f7 fde2 bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800dd68: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dd6c: 4885 ldr r0, [pc, #532] ; (800df84 <DrawMySpinner+0x278>)
800dd6e: f7f7 f9a1 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800dd72: 88fb ldrh r3, [r7, #6]
800dd74: 3307 adds r3, #7
800dd76: b298 uxth r0, r3
800dd78: 88bb ldrh r3, [r7, #4]
800dd7a: 3307 adds r3, #7
800dd7c: b29b uxth r3, r3
800dd7e: 2203 movs r2, #3
800dd80: 4619 mov r1, r3
800dd82: f7f7 fdd3 bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800dd86: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dd8a: 487f ldr r0, [pc, #508] ; (800df88 <DrawMySpinner+0x27c>)
800dd8c: f7f7 f992 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800dd90: 88fb ldrh r3, [r7, #6]
800dd92: 330a adds r3, #10
800dd94: b29b uxth r3, r3
800dd96: 88b9 ldrh r1, [r7, #4]
800dd98: 2203 movs r2, #3
800dd9a: 4618 mov r0, r3
800dd9c: f7f7 fdc6 bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800dda0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dda4: 4879 ldr r0, [pc, #484] ; (800df8c <DrawMySpinner+0x280>)
800dda6: f7f7 f985 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800ddaa: 88fb ldrh r3, [r7, #6]
800ddac: 3b07 subs r3, #7
800ddae: b298 uxth r0, r3
800ddb0: 88bb ldrh r3, [r7, #4]
800ddb2: 3307 adds r3, #7
800ddb4: b29b uxth r3, r3
800ddb6: 2203 movs r2, #3
800ddb8: 4619 mov r1, r3
800ddba: f7f7 fdb7 bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800ddbe: 88fb ldrh r3, [r7, #6]
800ddc0: 3b0a subs r3, #10
800ddc2: b29b uxth r3, r3
800ddc4: 88b9 ldrh r1, [r7, #4]
800ddc6: 2203 movs r2, #3
800ddc8: 4618 mov r0, r3
800ddca: f7f7 fdaf bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800ddce: 88fb ldrh r3, [r7, #6]
800ddd0: 3b07 subs r3, #7
800ddd2: b298 uxth r0, r3
800ddd4: 88bb ldrh r3, [r7, #4]
800ddd6: 3b07 subs r3, #7
800ddd8: b29b uxth r3, r3
800ddda: 2203 movs r2, #3
800dddc: 4619 mov r1, r3
800ddde: f7f7 fda5 bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800dde2: 88bb ldrh r3, [r7, #4]
800dde4: 3b0a subs r3, #10
800dde6: b299 uxth r1, r3
800dde8: 88fb ldrh r3, [r7, #6]
800ddea: 2203 movs r2, #3
800ddec: 4618 mov r0, r3
800ddee: f7f7 fd9d bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800ddf2: 88fb ldrh r3, [r7, #6]
800ddf4: 3307 adds r3, #7
800ddf6: b298 uxth r0, r3
800ddf8: 88bb ldrh r3, [r7, #4]
800ddfa: 3b07 subs r3, #7
800ddfc: b29b uxth r3, r3
800ddfe: 2203 movs r2, #3
800de00: 4619 mov r1, r3
800de02: f7f7 fd93 bl 800592c <BSP_LCD_FillCircle>
break;
800de06: e29f b.n 800e348 <DrawMySpinner+0x63c>
case 1:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800de08: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800de0c: f04f 30ff mov.w r0, #4294967295
800de10: f7f7 f950 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800de14: 88fb ldrh r3, [r7, #6]
800de16: 3b07 subs r3, #7
800de18: b298 uxth r0, r3
800de1a: 88bb ldrh r3, [r7, #4]
800de1c: 3307 adds r3, #7
800de1e: b29b uxth r3, r3
800de20: 2203 movs r2, #3
800de22: 4619 mov r1, r3
800de24: f7f7 fd82 bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800de28: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800de2c: 4855 ldr r0, [pc, #340] ; (800df84 <DrawMySpinner+0x278>)
800de2e: f7f7 f941 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800de32: 88bb ldrh r3, [r7, #4]
800de34: 330a adds r3, #10
800de36: b299 uxth r1, r3
800de38: 88fb ldrh r3, [r7, #6]
800de3a: 2203 movs r2, #3
800de3c: 4618 mov r0, r3
800de3e: f7f7 fd75 bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800de42: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800de46: 4850 ldr r0, [pc, #320] ; (800df88 <DrawMySpinner+0x27c>)
800de48: f7f7 f934 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800de4c: 88fb ldrh r3, [r7, #6]
800de4e: 3307 adds r3, #7
800de50: b298 uxth r0, r3
800de52: 88bb ldrh r3, [r7, #4]
800de54: 3307 adds r3, #7
800de56: b29b uxth r3, r3
800de58: 2203 movs r2, #3
800de5a: 4619 mov r1, r3
800de5c: f7f7 fd66 bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800de60: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800de64: 4849 ldr r0, [pc, #292] ; (800df8c <DrawMySpinner+0x280>)
800de66: f7f7 f925 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800de6a: 88fb ldrh r3, [r7, #6]
800de6c: 3b0a subs r3, #10
800de6e: b29b uxth r3, r3
800de70: 88b9 ldrh r1, [r7, #4]
800de72: 2203 movs r2, #3
800de74: 4618 mov r0, r3
800de76: f7f7 fd59 bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800de7a: 88fb ldrh r3, [r7, #6]
800de7c: 3b07 subs r3, #7
800de7e: b298 uxth r0, r3
800de80: 88bb ldrh r3, [r7, #4]
800de82: 3b07 subs r3, #7
800de84: b29b uxth r3, r3
800de86: 2203 movs r2, #3
800de88: 4619 mov r1, r3
800de8a: f7f7 fd4f bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800de8e: 88bb ldrh r3, [r7, #4]
800de90: 3b0a subs r3, #10
800de92: b299 uxth r1, r3
800de94: 88fb ldrh r3, [r7, #6]
800de96: 2203 movs r2, #3
800de98: 4618 mov r0, r3
800de9a: f7f7 fd47 bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800de9e: 88fb ldrh r3, [r7, #6]
800dea0: 3307 adds r3, #7
800dea2: b298 uxth r0, r3
800dea4: 88bb ldrh r3, [r7, #4]
800dea6: 3b07 subs r3, #7
800dea8: b29b uxth r3, r3
800deaa: 2203 movs r2, #3
800deac: 4619 mov r1, r3
800deae: f7f7 fd3d bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800deb2: 88fb ldrh r3, [r7, #6]
800deb4: 330a adds r3, #10
800deb6: b29b uxth r3, r3
800deb8: 88b9 ldrh r1, [r7, #4]
800deba: 2203 movs r2, #3
800debc: 4618 mov r0, r3
800debe: f7f7 fd35 bl 800592c <BSP_LCD_FillCircle>
break;
800dec2: e241 b.n 800e348 <DrawMySpinner+0x63c>
case 2:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800dec4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dec8: f04f 30ff mov.w r0, #4294967295
800decc: f7f7 f8f2 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800ded0: 88fb ldrh r3, [r7, #6]
800ded2: 3b0a subs r3, #10
800ded4: b29b uxth r3, r3
800ded6: 88b9 ldrh r1, [r7, #4]
800ded8: 2203 movs r2, #3
800deda: 4618 mov r0, r3
800dedc: f7f7 fd26 bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800dee0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dee4: 4827 ldr r0, [pc, #156] ; (800df84 <DrawMySpinner+0x278>)
800dee6: f7f7 f8e5 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800deea: 88fb ldrh r3, [r7, #6]
800deec: 3b07 subs r3, #7
800deee: b298 uxth r0, r3
800def0: 88bb ldrh r3, [r7, #4]
800def2: 3307 adds r3, #7
800def4: b29b uxth r3, r3
800def6: 2203 movs r2, #3
800def8: 4619 mov r1, r3
800defa: f7f7 fd17 bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800defe: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800df02: 4821 ldr r0, [pc, #132] ; (800df88 <DrawMySpinner+0x27c>)
800df04: f7f7 f8d6 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800df08: 88bb ldrh r3, [r7, #4]
800df0a: 330a adds r3, #10
800df0c: b299 uxth r1, r3
800df0e: 88fb ldrh r3, [r7, #6]
800df10: 2203 movs r2, #3
800df12: 4618 mov r0, r3
800df14: f7f7 fd0a bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800df18: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800df1c: 481b ldr r0, [pc, #108] ; (800df8c <DrawMySpinner+0x280>)
800df1e: f7f7 f8c9 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800df22: 88fb ldrh r3, [r7, #6]
800df24: 3b07 subs r3, #7
800df26: b298 uxth r0, r3
800df28: 88bb ldrh r3, [r7, #4]
800df2a: 3b07 subs r3, #7
800df2c: b29b uxth r3, r3
800df2e: 2203 movs r2, #3
800df30: 4619 mov r1, r3
800df32: f7f7 fcfb bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800df36: 88bb ldrh r3, [r7, #4]
800df38: 3b0a subs r3, #10
800df3a: b299 uxth r1, r3
800df3c: 88fb ldrh r3, [r7, #6]
800df3e: 2203 movs r2, #3
800df40: 4618 mov r0, r3
800df42: f7f7 fcf3 bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800df46: 88fb ldrh r3, [r7, #6]
800df48: 3307 adds r3, #7
800df4a: b298 uxth r0, r3
800df4c: 88bb ldrh r3, [r7, #4]
800df4e: 3b07 subs r3, #7
800df50: b29b uxth r3, r3
800df52: 2203 movs r2, #3
800df54: 4619 mov r1, r3
800df56: f7f7 fce9 bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800df5a: 88fb ldrh r3, [r7, #6]
800df5c: 330a adds r3, #10
800df5e: b29b uxth r3, r3
800df60: 88b9 ldrh r1, [r7, #4]
800df62: 2203 movs r2, #3
800df64: 4618 mov r0, r3
800df66: f7f7 fce1 bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800df6a: 88fb ldrh r3, [r7, #6]
800df6c: 3307 adds r3, #7
800df6e: b298 uxth r0, r3
800df70: 88bb ldrh r3, [r7, #4]
800df72: 3307 adds r3, #7
800df74: b29b uxth r3, r3
800df76: 2203 movs r2, #3
800df78: 4619 mov r1, r3
800df7a: f7f7 fcd7 bl 800592c <BSP_LCD_FillCircle>
break;
800df7e: e1e3 b.n 800e348 <DrawMySpinner+0x63c>
800df80: 2006b960 .word 0x2006b960
800df84: ffd3d3d3 .word 0xffd3d3d3
800df88: ff808080 .word 0xff808080
800df8c: ff404040 .word 0xff404040
case 3:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800df90: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800df94: f04f 30ff mov.w r0, #4294967295
800df98: f7f7 f88c bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800df9c: 88fb ldrh r3, [r7, #6]
800df9e: 3b07 subs r3, #7
800dfa0: b298 uxth r0, r3
800dfa2: 88bb ldrh r3, [r7, #4]
800dfa4: 3b07 subs r3, #7
800dfa6: b29b uxth r3, r3
800dfa8: 2203 movs r2, #3
800dfaa: 4619 mov r1, r3
800dfac: f7f7 fcbe bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800dfb0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dfb4: 48b2 ldr r0, [pc, #712] ; (800e280 <DrawMySpinner+0x574>)
800dfb6: f7f7 f87d bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800dfba: 88fb ldrh r3, [r7, #6]
800dfbc: 3b0a subs r3, #10
800dfbe: b29b uxth r3, r3
800dfc0: 88b9 ldrh r1, [r7, #4]
800dfc2: 2203 movs r2, #3
800dfc4: 4618 mov r0, r3
800dfc6: f7f7 fcb1 bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800dfca: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dfce: 48ad ldr r0, [pc, #692] ; (800e284 <DrawMySpinner+0x578>)
800dfd0: f7f7 f870 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800dfd4: 88fb ldrh r3, [r7, #6]
800dfd6: 3b07 subs r3, #7
800dfd8: b298 uxth r0, r3
800dfda: 88bb ldrh r3, [r7, #4]
800dfdc: 3307 adds r3, #7
800dfde: b29b uxth r3, r3
800dfe0: 2203 movs r2, #3
800dfe2: 4619 mov r1, r3
800dfe4: f7f7 fca2 bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800dfe8: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dfec: 48a6 ldr r0, [pc, #664] ; (800e288 <DrawMySpinner+0x57c>)
800dfee: f7f7 f861 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800dff2: 88bb ldrh r3, [r7, #4]
800dff4: 3b0a subs r3, #10
800dff6: b299 uxth r1, r3
800dff8: 88fb ldrh r3, [r7, #6]
800dffa: 2203 movs r2, #3
800dffc: 4618 mov r0, r3
800dffe: f7f7 fc95 bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800e002: 88fb ldrh r3, [r7, #6]
800e004: 3307 adds r3, #7
800e006: b298 uxth r0, r3
800e008: 88bb ldrh r3, [r7, #4]
800e00a: 3b07 subs r3, #7
800e00c: b29b uxth r3, r3
800e00e: 2203 movs r2, #3
800e010: 4619 mov r1, r3
800e012: f7f7 fc8b bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800e016: 88fb ldrh r3, [r7, #6]
800e018: 330a adds r3, #10
800e01a: b29b uxth r3, r3
800e01c: 88b9 ldrh r1, [r7, #4]
800e01e: 2203 movs r2, #3
800e020: 4618 mov r0, r3
800e022: f7f7 fc83 bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800e026: 88fb ldrh r3, [r7, #6]
800e028: 3307 adds r3, #7
800e02a: b298 uxth r0, r3
800e02c: 88bb ldrh r3, [r7, #4]
800e02e: 3307 adds r3, #7
800e030: b29b uxth r3, r3
800e032: 2203 movs r2, #3
800e034: 4619 mov r1, r3
800e036: f7f7 fc79 bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800e03a: 88bb ldrh r3, [r7, #4]
800e03c: 330a adds r3, #10
800e03e: b299 uxth r1, r3
800e040: 88fb ldrh r3, [r7, #6]
800e042: 2203 movs r2, #3
800e044: 4618 mov r0, r3
800e046: f7f7 fc71 bl 800592c <BSP_LCD_FillCircle>
break;
800e04a: e17d b.n 800e348 <DrawMySpinner+0x63c>
case 4:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800e04c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e050: f04f 30ff mov.w r0, #4294967295
800e054: f7f7 f82e bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800e058: 88bb ldrh r3, [r7, #4]
800e05a: 3b0a subs r3, #10
800e05c: b299 uxth r1, r3
800e05e: 88fb ldrh r3, [r7, #6]
800e060: 2203 movs r2, #3
800e062: 4618 mov r0, r3
800e064: f7f7 fc62 bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800e068: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e06c: 4884 ldr r0, [pc, #528] ; (800e280 <DrawMySpinner+0x574>)
800e06e: f7f7 f821 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800e072: 88fb ldrh r3, [r7, #6]
800e074: 3b07 subs r3, #7
800e076: b298 uxth r0, r3
800e078: 88bb ldrh r3, [r7, #4]
800e07a: 3b07 subs r3, #7
800e07c: b29b uxth r3, r3
800e07e: 2203 movs r2, #3
800e080: 4619 mov r1, r3
800e082: f7f7 fc53 bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800e086: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e08a: 487e ldr r0, [pc, #504] ; (800e284 <DrawMySpinner+0x578>)
800e08c: f7f7 f812 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800e090: 88fb ldrh r3, [r7, #6]
800e092: 3b0a subs r3, #10
800e094: b29b uxth r3, r3
800e096: 88b9 ldrh r1, [r7, #4]
800e098: 2203 movs r2, #3
800e09a: 4618 mov r0, r3
800e09c: f7f7 fc46 bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800e0a0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e0a4: 4878 ldr r0, [pc, #480] ; (800e288 <DrawMySpinner+0x57c>)
800e0a6: f7f7 f805 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800e0aa: 88fb ldrh r3, [r7, #6]
800e0ac: 3307 adds r3, #7
800e0ae: b298 uxth r0, r3
800e0b0: 88bb ldrh r3, [r7, #4]
800e0b2: 3b07 subs r3, #7
800e0b4: b29b uxth r3, r3
800e0b6: 2203 movs r2, #3
800e0b8: 4619 mov r1, r3
800e0ba: f7f7 fc37 bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800e0be: 88fb ldrh r3, [r7, #6]
800e0c0: 330a adds r3, #10
800e0c2: b29b uxth r3, r3
800e0c4: 88b9 ldrh r1, [r7, #4]
800e0c6: 2203 movs r2, #3
800e0c8: 4618 mov r0, r3
800e0ca: f7f7 fc2f bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800e0ce: 88fb ldrh r3, [r7, #6]
800e0d0: 3307 adds r3, #7
800e0d2: b298 uxth r0, r3
800e0d4: 88bb ldrh r3, [r7, #4]
800e0d6: 3307 adds r3, #7
800e0d8: b29b uxth r3, r3
800e0da: 2203 movs r2, #3
800e0dc: 4619 mov r1, r3
800e0de: f7f7 fc25 bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800e0e2: 88bb ldrh r3, [r7, #4]
800e0e4: 330a adds r3, #10
800e0e6: b299 uxth r1, r3
800e0e8: 88fb ldrh r3, [r7, #6]
800e0ea: 2203 movs r2, #3
800e0ec: 4618 mov r0, r3
800e0ee: f7f7 fc1d bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800e0f2: 88fb ldrh r3, [r7, #6]
800e0f4: 3b07 subs r3, #7
800e0f6: b298 uxth r0, r3
800e0f8: 88bb ldrh r3, [r7, #4]
800e0fa: 3307 adds r3, #7
800e0fc: b29b uxth r3, r3
800e0fe: 2203 movs r2, #3
800e100: 4619 mov r1, r3
800e102: f7f7 fc13 bl 800592c <BSP_LCD_FillCircle>
break;
800e106: e11f b.n 800e348 <DrawMySpinner+0x63c>
case 5:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800e108: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e10c: f04f 30ff mov.w r0, #4294967295
800e110: f7f6 ffd0 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800e114: 88fb ldrh r3, [r7, #6]
800e116: 3307 adds r3, #7
800e118: b298 uxth r0, r3
800e11a: 88bb ldrh r3, [r7, #4]
800e11c: 3b07 subs r3, #7
800e11e: b29b uxth r3, r3
800e120: 2203 movs r2, #3
800e122: 4619 mov r1, r3
800e124: f7f7 fc02 bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800e128: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e12c: 4854 ldr r0, [pc, #336] ; (800e280 <DrawMySpinner+0x574>)
800e12e: f7f6 ffc1 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800e132: 88bb ldrh r3, [r7, #4]
800e134: 3b0a subs r3, #10
800e136: b299 uxth r1, r3
800e138: 88fb ldrh r3, [r7, #6]
800e13a: 2203 movs r2, #3
800e13c: 4618 mov r0, r3
800e13e: f7f7 fbf5 bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800e142: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e146: 484f ldr r0, [pc, #316] ; (800e284 <DrawMySpinner+0x578>)
800e148: f7f6 ffb4 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800e14c: 88fb ldrh r3, [r7, #6]
800e14e: 3b07 subs r3, #7
800e150: b298 uxth r0, r3
800e152: 88bb ldrh r3, [r7, #4]
800e154: 3b07 subs r3, #7
800e156: b29b uxth r3, r3
800e158: 2203 movs r2, #3
800e15a: 4619 mov r1, r3
800e15c: f7f7 fbe6 bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800e160: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e164: 4848 ldr r0, [pc, #288] ; (800e288 <DrawMySpinner+0x57c>)
800e166: f7f6 ffa5 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800e16a: 88fb ldrh r3, [r7, #6]
800e16c: 330a adds r3, #10
800e16e: b29b uxth r3, r3
800e170: 88b9 ldrh r1, [r7, #4]
800e172: 2203 movs r2, #3
800e174: 4618 mov r0, r3
800e176: f7f7 fbd9 bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800e17a: 88fb ldrh r3, [r7, #6]
800e17c: 3307 adds r3, #7
800e17e: b298 uxth r0, r3
800e180: 88bb ldrh r3, [r7, #4]
800e182: 3307 adds r3, #7
800e184: b29b uxth r3, r3
800e186: 2203 movs r2, #3
800e188: 4619 mov r1, r3
800e18a: f7f7 fbcf bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800e18e: 88bb ldrh r3, [r7, #4]
800e190: 330a adds r3, #10
800e192: b299 uxth r1, r3
800e194: 88fb ldrh r3, [r7, #6]
800e196: 2203 movs r2, #3
800e198: 4618 mov r0, r3
800e19a: f7f7 fbc7 bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800e19e: 88fb ldrh r3, [r7, #6]
800e1a0: 3b07 subs r3, #7
800e1a2: b298 uxth r0, r3
800e1a4: 88bb ldrh r3, [r7, #4]
800e1a6: 3307 adds r3, #7
800e1a8: b29b uxth r3, r3
800e1aa: 2203 movs r2, #3
800e1ac: 4619 mov r1, r3
800e1ae: f7f7 fbbd bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800e1b2: 88fb ldrh r3, [r7, #6]
800e1b4: 3b0a subs r3, #10
800e1b6: b29b uxth r3, r3
800e1b8: 88b9 ldrh r1, [r7, #4]
800e1ba: 2203 movs r2, #3
800e1bc: 4618 mov r0, r3
800e1be: f7f7 fbb5 bl 800592c <BSP_LCD_FillCircle>
break;
800e1c2: e0c1 b.n 800e348 <DrawMySpinner+0x63c>
case 6:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800e1c4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e1c8: f04f 30ff mov.w r0, #4294967295
800e1cc: f7f6 ff72 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800e1d0: 88fb ldrh r3, [r7, #6]
800e1d2: 330a adds r3, #10
800e1d4: b29b uxth r3, r3
800e1d6: 88b9 ldrh r1, [r7, #4]
800e1d8: 2203 movs r2, #3
800e1da: 4618 mov r0, r3
800e1dc: f7f7 fba6 bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800e1e0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e1e4: 4826 ldr r0, [pc, #152] ; (800e280 <DrawMySpinner+0x574>)
800e1e6: f7f6 ff65 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800e1ea: 88fb ldrh r3, [r7, #6]
800e1ec: 3307 adds r3, #7
800e1ee: b298 uxth r0, r3
800e1f0: 88bb ldrh r3, [r7, #4]
800e1f2: 3b07 subs r3, #7
800e1f4: b29b uxth r3, r3
800e1f6: 2203 movs r2, #3
800e1f8: 4619 mov r1, r3
800e1fa: f7f7 fb97 bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800e1fe: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e202: 4820 ldr r0, [pc, #128] ; (800e284 <DrawMySpinner+0x578>)
800e204: f7f6 ff56 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800e208: 88bb ldrh r3, [r7, #4]
800e20a: 3b0a subs r3, #10
800e20c: b299 uxth r1, r3
800e20e: 88fb ldrh r3, [r7, #6]
800e210: 2203 movs r2, #3
800e212: 4618 mov r0, r3
800e214: f7f7 fb8a bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800e218: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e21c: 481a ldr r0, [pc, #104] ; (800e288 <DrawMySpinner+0x57c>)
800e21e: f7f6 ff49 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800e222: 88fb ldrh r3, [r7, #6]
800e224: 3307 adds r3, #7
800e226: b298 uxth r0, r3
800e228: 88bb ldrh r3, [r7, #4]
800e22a: 3307 adds r3, #7
800e22c: b29b uxth r3, r3
800e22e: 2203 movs r2, #3
800e230: 4619 mov r1, r3
800e232: f7f7 fb7b bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800e236: 88bb ldrh r3, [r7, #4]
800e238: 330a adds r3, #10
800e23a: b299 uxth r1, r3
800e23c: 88fb ldrh r3, [r7, #6]
800e23e: 2203 movs r2, #3
800e240: 4618 mov r0, r3
800e242: f7f7 fb73 bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800e246: 88fb ldrh r3, [r7, #6]
800e248: 3b07 subs r3, #7
800e24a: b298 uxth r0, r3
800e24c: 88bb ldrh r3, [r7, #4]
800e24e: 3307 adds r3, #7
800e250: b29b uxth r3, r3
800e252: 2203 movs r2, #3
800e254: 4619 mov r1, r3
800e256: f7f7 fb69 bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800e25a: 88fb ldrh r3, [r7, #6]
800e25c: 3b0a subs r3, #10
800e25e: b29b uxth r3, r3
800e260: 88b9 ldrh r1, [r7, #4]
800e262: 2203 movs r2, #3
800e264: 4618 mov r0, r3
800e266: f7f7 fb61 bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800e26a: 88fb ldrh r3, [r7, #6]
800e26c: 3b07 subs r3, #7
800e26e: b298 uxth r0, r3
800e270: 88bb ldrh r3, [r7, #4]
800e272: 3b07 subs r3, #7
800e274: b29b uxth r3, r3
800e276: 2203 movs r2, #3
800e278: 4619 mov r1, r3
800e27a: f7f7 fb57 bl 800592c <BSP_LCD_FillCircle>
break;
800e27e: e063 b.n 800e348 <DrawMySpinner+0x63c>
800e280: ffd3d3d3 .word 0xffd3d3d3
800e284: ff808080 .word 0xff808080
800e288: ff404040 .word 0xff404040
case 7:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800e28c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e290: f04f 30ff mov.w r0, #4294967295
800e294: f7f6 ff0e bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800e298: 88fb ldrh r3, [r7, #6]
800e29a: 3307 adds r3, #7
800e29c: b298 uxth r0, r3
800e29e: 88bb ldrh r3, [r7, #4]
800e2a0: 3307 adds r3, #7
800e2a2: b29b uxth r3, r3
800e2a4: 2203 movs r2, #3
800e2a6: 4619 mov r1, r3
800e2a8: f7f7 fb40 bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800e2ac: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e2b0: 482d ldr r0, [pc, #180] ; (800e368 <DrawMySpinner+0x65c>)
800e2b2: f7f6 feff bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800e2b6: 88fb ldrh r3, [r7, #6]
800e2b8: 330a adds r3, #10
800e2ba: b29b uxth r3, r3
800e2bc: 88b9 ldrh r1, [r7, #4]
800e2be: 2203 movs r2, #3
800e2c0: 4618 mov r0, r3
800e2c2: f7f7 fb33 bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800e2c6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e2ca: 4828 ldr r0, [pc, #160] ; (800e36c <DrawMySpinner+0x660>)
800e2cc: f7f6 fef2 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800e2d0: 88fb ldrh r3, [r7, #6]
800e2d2: 3307 adds r3, #7
800e2d4: b298 uxth r0, r3
800e2d6: 88bb ldrh r3, [r7, #4]
800e2d8: 3b07 subs r3, #7
800e2da: b29b uxth r3, r3
800e2dc: 2203 movs r2, #3
800e2de: 4619 mov r1, r3
800e2e0: f7f7 fb24 bl 800592c <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800e2e4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e2e8: 4821 ldr r0, [pc, #132] ; (800e370 <DrawMySpinner+0x664>)
800e2ea: f7f6 fee3 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800e2ee: 88bb ldrh r3, [r7, #4]
800e2f0: 330a adds r3, #10
800e2f2: b299 uxth r1, r3
800e2f4: 88fb ldrh r3, [r7, #6]
800e2f6: 2203 movs r2, #3
800e2f8: 4618 mov r0, r3
800e2fa: f7f7 fb17 bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800e2fe: 88fb ldrh r3, [r7, #6]
800e300: 3b07 subs r3, #7
800e302: b298 uxth r0, r3
800e304: 88bb ldrh r3, [r7, #4]
800e306: 3307 adds r3, #7
800e308: b29b uxth r3, r3
800e30a: 2203 movs r2, #3
800e30c: 4619 mov r1, r3
800e30e: f7f7 fb0d bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800e312: 88fb ldrh r3, [r7, #6]
800e314: 3b0a subs r3, #10
800e316: b29b uxth r3, r3
800e318: 88b9 ldrh r1, [r7, #4]
800e31a: 2203 movs r2, #3
800e31c: 4618 mov r0, r3
800e31e: f7f7 fb05 bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800e322: 88fb ldrh r3, [r7, #6]
800e324: 3b07 subs r3, #7
800e326: b298 uxth r0, r3
800e328: 88bb ldrh r3, [r7, #4]
800e32a: 3b07 subs r3, #7
800e32c: b29b uxth r3, r3
800e32e: 2203 movs r2, #3
800e330: 4619 mov r1, r3
800e332: f7f7 fafb bl 800592c <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800e336: 88bb ldrh r3, [r7, #4]
800e338: 3b0a subs r3, #10
800e33a: b299 uxth r1, r3
800e33c: 88fb ldrh r3, [r7, #6]
800e33e: 2203 movs r2, #3
800e340: 4618 mov r0, r3
800e342: f7f7 faf3 bl 800592c <BSP_LCD_FillCircle>
break;
800e346: bf00 nop
}
rotate++;
800e348: 4b0a ldr r3, [pc, #40] ; (800e374 <DrawMySpinner+0x668>)
800e34a: 681b ldr r3, [r3, #0]
800e34c: 3301 adds r3, #1
800e34e: 4a09 ldr r2, [pc, #36] ; (800e374 <DrawMySpinner+0x668>)
800e350: 6013 str r3, [r2, #0]
if(rotate >= 8)
800e352: 4b08 ldr r3, [pc, #32] ; (800e374 <DrawMySpinner+0x668>)
800e354: 681b ldr r3, [r3, #0]
800e356: 2b07 cmp r3, #7
800e358: d902 bls.n 800e360 <DrawMySpinner+0x654>
rotate = 0;
800e35a: 4b06 ldr r3, [pc, #24] ; (800e374 <DrawMySpinner+0x668>)
800e35c: 2200 movs r2, #0
800e35e: 601a str r2, [r3, #0]
}
800e360: bf00 nop
800e362: 3708 adds r7, #8
800e364: 46bd mov sp, r7
800e366: bd80 pop {r7, pc}
800e368: ffd3d3d3 .word 0xffd3d3d3
800e36c: ff808080 .word 0xff808080
800e370: ff404040 .word 0xff404040
800e374: 2006b960 .word 0x2006b960
0800e378 <DrawSpinner>:
void DrawSpinner(uint16_t x, uint16_t y)
{
800e378: b580 push {r7, lr}
800e37a: b082 sub sp, #8
800e37c: af00 add r7, sp, #0
800e37e: 4603 mov r3, r0
800e380: 460a mov r2, r1
800e382: 80fb strh r3, [r7, #6]
800e384: 4613 mov r3, r2
800e386: 80bb strh r3, [r7, #4]
//if(!clbr)
//{
spinner++;
800e388: 4b0b ldr r3, [pc, #44] ; (800e3b8 <DrawSpinner+0x40>)
800e38a: 781b ldrb r3, [r3, #0]
800e38c: 3301 adds r3, #1
800e38e: b2da uxtb r2, r3
800e390: 4b09 ldr r3, [pc, #36] ; (800e3b8 <DrawSpinner+0x40>)
800e392: 701a strb r2, [r3, #0]
if(spinner >= 10)
800e394: 4b08 ldr r3, [pc, #32] ; (800e3b8 <DrawSpinner+0x40>)
800e396: 781b ldrb r3, [r3, #0]
800e398: 2b09 cmp r3, #9
800e39a: d902 bls.n 800e3a2 <DrawSpinner+0x2a>
spinner = 0;
800e39c: 4b06 ldr r3, [pc, #24] ; (800e3b8 <DrawSpinner+0x40>)
800e39e: 2200 movs r2, #0
800e3a0: 701a strb r2, [r3, #0]
DrawMySpinner(x, y);
800e3a2: 88ba ldrh r2, [r7, #4]
800e3a4: 88fb ldrh r3, [r7, #6]
800e3a6: 4611 mov r1, r2
800e3a8: 4618 mov r0, r3
800e3aa: f7ff fcaf bl 800dd0c <DrawMySpinner>
//}
}
800e3ae: bf00 nop
800e3b0: 3708 adds r7, #8
800e3b2: 46bd mov sp, r7
800e3b4: bd80 pop {r7, pc}
800e3b6: bf00 nop
800e3b8: 2006b955 .word 0x2006b955
0800e3bc <DrawChannel_4>:
void DrawChannel_4(uint8_t ch, uint32_t blk)
{
800e3bc: b5b0 push {r4, r5, r7, lr}
800e3be: b08e sub sp, #56 ; 0x38
800e3c0: af00 add r7, sp, #0
800e3c2: 4603 mov r3, r0
800e3c4: 6039 str r1, [r7, #0]
800e3c6: 71fb strb r3, [r7, #7]
char *p8;
if(pardata.amplif[ch].SENS <= 0.0f) {
800e3c8: 79fb ldrb r3, [r7, #7]
800e3ca: 4ac1 ldr r2, [pc, #772] ; (800e6d0 <DrawChannel_4+0x314>)
800e3cc: 015b lsls r3, r3, #5
800e3ce: 4413 add r3, r2
800e3d0: 3318 adds r3, #24
800e3d2: edd3 7a00 vldr s15, [r3]
800e3d6: eef5 7ac0 vcmpe.f32 s15, #0.0
800e3da: eef1 fa10 vmrs APSR_nzcv, fpscr
800e3de: d80a bhi.n 800e3f6 <DrawChannel_4+0x3a>
pardata.amplif[ch].SENS = 1.0f;
800e3e0: 79fb ldrb r3, [r7, #7]
800e3e2: 4abb ldr r2, [pc, #748] ; (800e6d0 <DrawChannel_4+0x314>)
800e3e4: 015b lsls r3, r3, #5
800e3e6: 4413 add r3, r2
800e3e8: 3318 adds r3, #24
800e3ea: f04f 527e mov.w r2, #1065353216 ; 0x3f800000
800e3ee: 601a str r2, [r3, #0]
s = 10000;
800e3f0: f242 7310 movw r3, #10000 ; 0x2710
800e3f4: 637b str r3, [r7, #52] ; 0x34
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10.0f) {
800e3f6: 4bb7 ldr r3, [pc, #732] ; (800e6d4 <DrawChannel_4+0x318>)
800e3f8: 681b ldr r3, [r3, #0]
800e3fa: 4ab5 ldr r2, [pc, #724] ; (800e6d0 <DrawChannel_4+0x314>)
800e3fc: 015b lsls r3, r3, #5
800e3fe: 4413 add r3, r2
800e400: 3318 adds r3, #24
800e402: edd3 7a00 vldr s15, [r3]
800e406: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800e40a: eef4 7ac7 vcmpe.f32 s15, s14
800e40e: eef1 fa10 vmrs APSR_nzcv, fpscr
800e412: d517 bpl.n 800e444 <DrawChannel_4+0x88>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10000.0f) + 0.5f);
800e414: 4baf ldr r3, [pc, #700] ; (800e6d4 <DrawChannel_4+0x318>)
800e416: 681b ldr r3, [r3, #0]
800e418: 4aad ldr r2, [pc, #692] ; (800e6d0 <DrawChannel_4+0x314>)
800e41a: 015b lsls r3, r3, #5
800e41c: 4413 add r3, r2
800e41e: 3318 adds r3, #24
800e420: edd3 7a00 vldr s15, [r3]
800e424: ed9f 7aac vldr s14, [pc, #688] ; 800e6d8 <DrawChannel_4+0x31c>
800e428: ee67 7a87 vmul.f32 s15, s15, s14
800e42c: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800e430: ee77 7a87 vadd.f32 s15, s15, s14
800e434: eefc 7ae7 vcvt.u32.f32 s15, s15
800e438: ee17 3a90 vmov r3, s15
800e43c: 637b str r3, [r7, #52] ; 0x34
ipt = 4;
800e43e: 2304 movs r3, #4
800e440: 62bb str r3, [r7, #40] ; 0x28
800e442: e0b2 b.n 800e5aa <DrawChannel_4+0x1ee>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100.0f) {
800e444: 4ba3 ldr r3, [pc, #652] ; (800e6d4 <DrawChannel_4+0x318>)
800e446: 681b ldr r3, [r3, #0]
800e448: 4aa1 ldr r2, [pc, #644] ; (800e6d0 <DrawChannel_4+0x314>)
800e44a: 015b lsls r3, r3, #5
800e44c: 4413 add r3, r2
800e44e: 3318 adds r3, #24
800e450: edd3 7a00 vldr s15, [r3]
800e454: ed9f 7aa1 vldr s14, [pc, #644] ; 800e6dc <DrawChannel_4+0x320>
800e458: eef4 7ac7 vcmpe.f32 s15, s14
800e45c: eef1 fa10 vmrs APSR_nzcv, fpscr
800e460: d517 bpl.n 800e492 <DrawChannel_4+0xd6>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 1000.0f) + 0.5f);
800e462: 4b9c ldr r3, [pc, #624] ; (800e6d4 <DrawChannel_4+0x318>)
800e464: 681b ldr r3, [r3, #0]
800e466: 4a9a ldr r2, [pc, #616] ; (800e6d0 <DrawChannel_4+0x314>)
800e468: 015b lsls r3, r3, #5
800e46a: 4413 add r3, r2
800e46c: 3318 adds r3, #24
800e46e: edd3 7a00 vldr s15, [r3]
800e472: ed9f 7a9b vldr s14, [pc, #620] ; 800e6e0 <DrawChannel_4+0x324>
800e476: ee67 7a87 vmul.f32 s15, s15, s14
800e47a: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800e47e: ee77 7a87 vadd.f32 s15, s15, s14
800e482: eefc 7ae7 vcvt.u32.f32 s15, s15
800e486: ee17 3a90 vmov r3, s15
800e48a: 637b str r3, [r7, #52] ; 0x34
ipt = 3;
800e48c: 2303 movs r3, #3
800e48e: 62bb str r3, [r7, #40] ; 0x28
800e490: e08b b.n 800e5aa <DrawChannel_4+0x1ee>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 1000.0f) {
800e492: 4b90 ldr r3, [pc, #576] ; (800e6d4 <DrawChannel_4+0x318>)
800e494: 681b ldr r3, [r3, #0]
800e496: 4a8e ldr r2, [pc, #568] ; (800e6d0 <DrawChannel_4+0x314>)
800e498: 015b lsls r3, r3, #5
800e49a: 4413 add r3, r2
800e49c: 3318 adds r3, #24
800e49e: edd3 7a00 vldr s15, [r3]
800e4a2: ed9f 7a8f vldr s14, [pc, #572] ; 800e6e0 <DrawChannel_4+0x324>
800e4a6: eef4 7ac7 vcmpe.f32 s15, s14
800e4aa: eef1 fa10 vmrs APSR_nzcv, fpscr
800e4ae: d517 bpl.n 800e4e0 <DrawChannel_4+0x124>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 100.0f) + 0.5f);
800e4b0: 4b88 ldr r3, [pc, #544] ; (800e6d4 <DrawChannel_4+0x318>)
800e4b2: 681b ldr r3, [r3, #0]
800e4b4: 4a86 ldr r2, [pc, #536] ; (800e6d0 <DrawChannel_4+0x314>)
800e4b6: 015b lsls r3, r3, #5
800e4b8: 4413 add r3, r2
800e4ba: 3318 adds r3, #24
800e4bc: edd3 7a00 vldr s15, [r3]
800e4c0: ed9f 7a86 vldr s14, [pc, #536] ; 800e6dc <DrawChannel_4+0x320>
800e4c4: ee67 7a87 vmul.f32 s15, s15, s14
800e4c8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800e4cc: ee77 7a87 vadd.f32 s15, s15, s14
800e4d0: eefc 7ae7 vcvt.u32.f32 s15, s15
800e4d4: ee17 3a90 vmov r3, s15
800e4d8: 637b str r3, [r7, #52] ; 0x34
ipt = 2;
800e4da: 2302 movs r3, #2
800e4dc: 62bb str r3, [r7, #40] ; 0x28
800e4de: e064 b.n 800e5aa <DrawChannel_4+0x1ee>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10000.0f) {
800e4e0: 4b7c ldr r3, [pc, #496] ; (800e6d4 <DrawChannel_4+0x318>)
800e4e2: 681b ldr r3, [r3, #0]
800e4e4: 4a7a ldr r2, [pc, #488] ; (800e6d0 <DrawChannel_4+0x314>)
800e4e6: 015b lsls r3, r3, #5
800e4e8: 4413 add r3, r2
800e4ea: 3318 adds r3, #24
800e4ec: edd3 7a00 vldr s15, [r3]
800e4f0: ed9f 7a79 vldr s14, [pc, #484] ; 800e6d8 <DrawChannel_4+0x31c>
800e4f4: eef4 7ac7 vcmpe.f32 s15, s14
800e4f8: eef1 fa10 vmrs APSR_nzcv, fpscr
800e4fc: d517 bpl.n 800e52e <DrawChannel_4+0x172>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10.0f) + 0.5f);
800e4fe: 4b75 ldr r3, [pc, #468] ; (800e6d4 <DrawChannel_4+0x318>)
800e500: 681b ldr r3, [r3, #0]
800e502: 4a73 ldr r2, [pc, #460] ; (800e6d0 <DrawChannel_4+0x314>)
800e504: 015b lsls r3, r3, #5
800e506: 4413 add r3, r2
800e508: 3318 adds r3, #24
800e50a: edd3 7a00 vldr s15, [r3]
800e50e: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800e512: ee67 7a87 vmul.f32 s15, s15, s14
800e516: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800e51a: ee77 7a87 vadd.f32 s15, s15, s14
800e51e: eefc 7ae7 vcvt.u32.f32 s15, s15
800e522: ee17 3a90 vmov r3, s15
800e526: 637b str r3, [r7, #52] ; 0x34
ipt = 1;
800e528: 2301 movs r3, #1
800e52a: 62bb str r3, [r7, #40] ; 0x28
800e52c: e03d b.n 800e5aa <DrawChannel_4+0x1ee>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) {
800e52e: 4b69 ldr r3, [pc, #420] ; (800e6d4 <DrawChannel_4+0x318>)
800e530: 681b ldr r3, [r3, #0]
800e532: 4a67 ldr r2, [pc, #412] ; (800e6d0 <DrawChannel_4+0x314>)
800e534: 015b lsls r3, r3, #5
800e536: 4413 add r3, r2
800e538: 3318 adds r3, #24
800e53a: edd3 7a00 vldr s15, [r3]
800e53e: ed9f 7a69 vldr s14, [pc, #420] ; 800e6e4 <DrawChannel_4+0x328>
800e542: eef4 7ac7 vcmpe.f32 s15, s14
800e546: eef1 fa10 vmrs APSR_nzcv, fpscr
800e54a: d513 bpl.n 800e574 <DrawChannel_4+0x1b8>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS) + 0.5f);
800e54c: 4b61 ldr r3, [pc, #388] ; (800e6d4 <DrawChannel_4+0x318>)
800e54e: 681b ldr r3, [r3, #0]
800e550: 4a5f ldr r2, [pc, #380] ; (800e6d0 <DrawChannel_4+0x314>)
800e552: 015b lsls r3, r3, #5
800e554: 4413 add r3, r2
800e556: 3318 adds r3, #24
800e558: edd3 7a00 vldr s15, [r3]
800e55c: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800e560: ee77 7a87 vadd.f32 s15, s15, s14
800e564: eefc 7ae7 vcvt.u32.f32 s15, s15
800e568: ee17 3a90 vmov r3, s15
800e56c: 637b str r3, [r7, #52] ; 0x34
ipt = 0;
800e56e: 2300 movs r3, #0
800e570: 62bb str r3, [r7, #40] ; 0x28
800e572: e01a b.n 800e5aa <DrawChannel_4+0x1ee>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
800e574: 4b57 ldr r3, [pc, #348] ; (800e6d4 <DrawChannel_4+0x318>)
800e576: 681b ldr r3, [r3, #0]
800e578: 4a55 ldr r2, [pc, #340] ; (800e6d0 <DrawChannel_4+0x314>)
800e57a: 015b lsls r3, r3, #5
800e57c: 4413 add r3, r2
800e57e: 3318 adds r3, #24
800e580: edd3 7a00 vldr s15, [r3]
800e584: ed9f 7a57 vldr s14, [pc, #348] ; 800e6e4 <DrawChannel_4+0x328>
800e588: eef4 7ac7 vcmpe.f32 s15, s14
800e58c: eef1 fa10 vmrs APSR_nzcv, fpscr
800e590: db0b blt.n 800e5aa <DrawChannel_4+0x1ee>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
800e592: 4b50 ldr r3, [pc, #320] ; (800e6d4 <DrawChannel_4+0x318>)
800e594: 681b ldr r3, [r3, #0]
800e596: 4a4e ldr r2, [pc, #312] ; (800e6d0 <DrawChannel_4+0x314>)
800e598: 015b lsls r3, r3, #5
800e59a: 4413 add r3, r2
800e59c: 3318 adds r3, #24
800e59e: 4a52 ldr r2, [pc, #328] ; (800e6e8 <DrawChannel_4+0x32c>)
800e5a0: 601a str r2, [r3, #0]
s = 99999;
800e5a2: 4b52 ldr r3, [pc, #328] ; (800e6ec <DrawChannel_4+0x330>)
800e5a4: 637b str r3, [r7, #52] ; 0x34
ipt = 0;
800e5a6: 2300 movs r3, #0
800e5a8: 62bb str r3, [r7, #40] ; 0x28
}
ikdt = (s / 10000);
800e5aa: 6b7b ldr r3, [r7, #52] ; 0x34
800e5ac: 4a50 ldr r2, [pc, #320] ; (800e6f0 <DrawChannel_4+0x334>)
800e5ae: fba2 2303 umull r2, r3, r2, r3
800e5b2: 0b5b lsrs r3, r3, #13
800e5b4: 627b str r3, [r7, #36] ; 0x24
ikt = (s % 10000 / 1000);
800e5b6: 6b7a ldr r2, [r7, #52] ; 0x34
800e5b8: 4b4d ldr r3, [pc, #308] ; (800e6f0 <DrawChannel_4+0x334>)
800e5ba: fba3 1302 umull r1, r3, r3, r2
800e5be: 0b5b lsrs r3, r3, #13
800e5c0: f242 7110 movw r1, #10000 ; 0x2710
800e5c4: fb01 f303 mul.w r3, r1, r3
800e5c8: 1ad3 subs r3, r2, r3
800e5ca: 4a4a ldr r2, [pc, #296] ; (800e6f4 <DrawChannel_4+0x338>)
800e5cc: fba2 2303 umull r2, r3, r2, r3
800e5d0: 099b lsrs r3, r3, #6
800e5d2: 623b str r3, [r7, #32]
iks = (s % 10000 % 1000 / 100);
800e5d4: 6b7a ldr r2, [r7, #52] ; 0x34
800e5d6: 4b46 ldr r3, [pc, #280] ; (800e6f0 <DrawChannel_4+0x334>)
800e5d8: fba3 1302 umull r1, r3, r3, r2
800e5dc: 0b5b lsrs r3, r3, #13
800e5de: f242 7110 movw r1, #10000 ; 0x2710
800e5e2: fb01 f303 mul.w r3, r1, r3
800e5e6: 1ad3 subs r3, r2, r3
800e5e8: 4a42 ldr r2, [pc, #264] ; (800e6f4 <DrawChannel_4+0x338>)
800e5ea: fba2 1203 umull r1, r2, r2, r3
800e5ee: 0992 lsrs r2, r2, #6
800e5f0: f44f 717a mov.w r1, #1000 ; 0x3e8
800e5f4: fb01 f202 mul.w r2, r1, r2
800e5f8: 1a9a subs r2, r3, r2
800e5fa: 4b3f ldr r3, [pc, #252] ; (800e6f8 <DrawChannel_4+0x33c>)
800e5fc: fba3 2302 umull r2, r3, r3, r2
800e600: 095b lsrs r3, r3, #5
800e602: 61fb str r3, [r7, #28]
ikd = (s % 10000 % 1000 % 100 / 10);
800e604: 6b7b ldr r3, [r7, #52] ; 0x34
800e606: 4a3a ldr r2, [pc, #232] ; (800e6f0 <DrawChannel_4+0x334>)
800e608: fba2 1203 umull r1, r2, r2, r3
800e60c: 0b52 lsrs r2, r2, #13
800e60e: f242 7110 movw r1, #10000 ; 0x2710
800e612: fb01 f202 mul.w r2, r1, r2
800e616: 1a9a subs r2, r3, r2
800e618: 4b36 ldr r3, [pc, #216] ; (800e6f4 <DrawChannel_4+0x338>)
800e61a: fba3 1302 umull r1, r3, r3, r2
800e61e: 099b lsrs r3, r3, #6
800e620: f44f 717a mov.w r1, #1000 ; 0x3e8
800e624: fb01 f303 mul.w r3, r1, r3
800e628: 1ad3 subs r3, r2, r3
800e62a: 4a33 ldr r2, [pc, #204] ; (800e6f8 <DrawChannel_4+0x33c>)
800e62c: fba2 1203 umull r1, r2, r2, r3
800e630: 0952 lsrs r2, r2, #5
800e632: 2164 movs r1, #100 ; 0x64
800e634: fb01 f202 mul.w r2, r1, r2
800e638: 1a9a subs r2, r3, r2
800e63a: 4b30 ldr r3, [pc, #192] ; (800e6fc <DrawChannel_4+0x340>)
800e63c: fba3 2302 umull r2, r3, r3, r2
800e640: 08db lsrs r3, r3, #3
800e642: 61bb str r3, [r7, #24]
ike = (s % 10000 % 1000 % 100 % 10);
800e644: 6b7b ldr r3, [r7, #52] ; 0x34
800e646: 4a2a ldr r2, [pc, #168] ; (800e6f0 <DrawChannel_4+0x334>)
800e648: fba2 1203 umull r1, r2, r2, r3
800e64c: 0b52 lsrs r2, r2, #13
800e64e: f242 7110 movw r1, #10000 ; 0x2710
800e652: fb01 f202 mul.w r2, r1, r2
800e656: 1a9a subs r2, r3, r2
800e658: 4b26 ldr r3, [pc, #152] ; (800e6f4 <DrawChannel_4+0x338>)
800e65a: fba3 1302 umull r1, r3, r3, r2
800e65e: 099b lsrs r3, r3, #6
800e660: f44f 717a mov.w r1, #1000 ; 0x3e8
800e664: fb01 f303 mul.w r3, r1, r3
800e668: 1ad3 subs r3, r2, r3
800e66a: 4a23 ldr r2, [pc, #140] ; (800e6f8 <DrawChannel_4+0x33c>)
800e66c: fba2 1203 umull r1, r2, r2, r3
800e670: 0952 lsrs r2, r2, #5
800e672: 2164 movs r1, #100 ; 0x64
800e674: fb01 f202 mul.w r2, r1, r2
800e678: 1a9a subs r2, r3, r2
800e67a: 4b20 ldr r3, [pc, #128] ; (800e6fc <DrawChannel_4+0x340>)
800e67c: fba3 1302 umull r1, r3, r3, r2
800e680: 08d9 lsrs r1, r3, #3
800e682: 460b mov r3, r1
800e684: 009b lsls r3, r3, #2
800e686: 440b add r3, r1
800e688: 005b lsls r3, r3, #1
800e68a: 1ad3 subs r3, r2, r3
800e68c: 617b str r3, [r7, #20]
p8 = str;
800e68e: f107 0308 add.w r3, r7, #8
800e692: 62fb str r3, [r7, #44] ; 0x2c
if(pardata.amplif[ch].SENS < 10.0f) {
800e694: 79fb ldrb r3, [r7, #7]
800e696: 4a0e ldr r2, [pc, #56] ; (800e6d0 <DrawChannel_4+0x314>)
800e698: 015b lsls r3, r3, #5
800e69a: 4413 add r3, r2
800e69c: 3318 adds r3, #24
800e69e: edd3 7a00 vldr s15, [r3]
800e6a2: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800e6a6: eef4 7ac7 vcmpe.f32 s15, s14
800e6aa: eef1 fa10 vmrs APSR_nzcv, fpscr
800e6ae: d527 bpl.n 800e700 <DrawChannel_4+0x344>
p8 = FloatToASCII(pardata.amplif[ch].SENS, -4);
800e6b0: 79fb ldrb r3, [r7, #7]
800e6b2: 4a07 ldr r2, [pc, #28] ; (800e6d0 <DrawChannel_4+0x314>)
800e6b4: 015b lsls r3, r3, #5
800e6b6: 4413 add r3, r2
800e6b8: 3318 adds r3, #24
800e6ba: edd3 7a00 vldr s15, [r3]
800e6be: f06f 0003 mvn.w r0, #3
800e6c2: eeb0 0a67 vmov.f32 s0, s15
800e6c6: f001 f98d bl 800f9e4 <FloatToASCII>
800e6ca: 62f8 str r0, [r7, #44] ; 0x2c
800e6cc: e08a b.n 800e7e4 <DrawChannel_4+0x428>
800e6ce: bf00 nop
800e6d0: 2006bb88 .word 0x2006bb88
800e6d4: 2006b948 .word 0x2006b948
800e6d8: 461c4000 .word 0x461c4000
800e6dc: 42c80000 .word 0x42c80000
800e6e0: 447a0000 .word 0x447a0000
800e6e4: 47c35000 .word 0x47c35000
800e6e8: 47c34f80 .word 0x47c34f80
800e6ec: 0001869f .word 0x0001869f
800e6f0: d1b71759 .word 0xd1b71759
800e6f4: 10624dd3 .word 0x10624dd3
800e6f8: 51eb851f .word 0x51eb851f
800e6fc: cccccccd .word 0xcccccccd
}
else if(pardata.amplif[ch].SENS < 100.0f) {
800e700: 79fb ldrb r3, [r7, #7]
800e702: 4abf ldr r2, [pc, #764] ; (800ea00 <DrawChannel_4+0x644>)
800e704: 015b lsls r3, r3, #5
800e706: 4413 add r3, r2
800e708: 3318 adds r3, #24
800e70a: edd3 7a00 vldr s15, [r3]
800e70e: ed9f 7abd vldr s14, [pc, #756] ; 800ea04 <DrawChannel_4+0x648>
800e712: eef4 7ac7 vcmpe.f32 s15, s14
800e716: eef1 fa10 vmrs APSR_nzcv, fpscr
800e71a: d50e bpl.n 800e73a <DrawChannel_4+0x37e>
p8 = FloatToASCII(pardata.amplif[ch].SENS, -3);
800e71c: 79fb ldrb r3, [r7, #7]
800e71e: 4ab8 ldr r2, [pc, #736] ; (800ea00 <DrawChannel_4+0x644>)
800e720: 015b lsls r3, r3, #5
800e722: 4413 add r3, r2
800e724: 3318 adds r3, #24
800e726: edd3 7a00 vldr s15, [r3]
800e72a: f06f 0002 mvn.w r0, #2
800e72e: eeb0 0a67 vmov.f32 s0, s15
800e732: f001 f957 bl 800f9e4 <FloatToASCII>
800e736: 62f8 str r0, [r7, #44] ; 0x2c
800e738: e054 b.n 800e7e4 <DrawChannel_4+0x428>
}
else if(pardata.amplif[ch].SENS < 1000.0f) {
800e73a: 79fb ldrb r3, [r7, #7]
800e73c: 4ab0 ldr r2, [pc, #704] ; (800ea00 <DrawChannel_4+0x644>)
800e73e: 015b lsls r3, r3, #5
800e740: 4413 add r3, r2
800e742: 3318 adds r3, #24
800e744: edd3 7a00 vldr s15, [r3]
800e748: ed9f 7aaf vldr s14, [pc, #700] ; 800ea08 <DrawChannel_4+0x64c>
800e74c: eef4 7ac7 vcmpe.f32 s15, s14
800e750: eef1 fa10 vmrs APSR_nzcv, fpscr
800e754: d50e bpl.n 800e774 <DrawChannel_4+0x3b8>
p8 = FloatToASCII(pardata.amplif[ch].SENS, -2);
800e756: 79fb ldrb r3, [r7, #7]
800e758: 4aa9 ldr r2, [pc, #676] ; (800ea00 <DrawChannel_4+0x644>)
800e75a: 015b lsls r3, r3, #5
800e75c: 4413 add r3, r2
800e75e: 3318 adds r3, #24
800e760: edd3 7a00 vldr s15, [r3]
800e764: f06f 0001 mvn.w r0, #1
800e768: eeb0 0a67 vmov.f32 s0, s15
800e76c: f001 f93a bl 800f9e4 <FloatToASCII>
800e770: 62f8 str r0, [r7, #44] ; 0x2c
800e772: e037 b.n 800e7e4 <DrawChannel_4+0x428>
}
else if(pardata.amplif[ch].SENS < 10000.0f) {
800e774: 79fb ldrb r3, [r7, #7]
800e776: 4aa2 ldr r2, [pc, #648] ; (800ea00 <DrawChannel_4+0x644>)
800e778: 015b lsls r3, r3, #5
800e77a: 4413 add r3, r2
800e77c: 3318 adds r3, #24
800e77e: edd3 7a00 vldr s15, [r3]
800e782: ed9f 7aa2 vldr s14, [pc, #648] ; 800ea0c <DrawChannel_4+0x650>
800e786: eef4 7ac7 vcmpe.f32 s15, s14
800e78a: eef1 fa10 vmrs APSR_nzcv, fpscr
800e78e: d50e bpl.n 800e7ae <DrawChannel_4+0x3f2>
p8 = FloatToASCII(pardata.amplif[ch].SENS, -1);
800e790: 79fb ldrb r3, [r7, #7]
800e792: 4a9b ldr r2, [pc, #620] ; (800ea00 <DrawChannel_4+0x644>)
800e794: 015b lsls r3, r3, #5
800e796: 4413 add r3, r2
800e798: 3318 adds r3, #24
800e79a: edd3 7a00 vldr s15, [r3]
800e79e: f04f 30ff mov.w r0, #4294967295
800e7a2: eeb0 0a67 vmov.f32 s0, s15
800e7a6: f001 f91d bl 800f9e4 <FloatToASCII>
800e7aa: 62f8 str r0, [r7, #44] ; 0x2c
800e7ac: e01a b.n 800e7e4 <DrawChannel_4+0x428>
}
else if(pardata.amplif[ch].SENS < 100000.0f) {
800e7ae: 79fb ldrb r3, [r7, #7]
800e7b0: 4a93 ldr r2, [pc, #588] ; (800ea00 <DrawChannel_4+0x644>)
800e7b2: 015b lsls r3, r3, #5
800e7b4: 4413 add r3, r2
800e7b6: 3318 adds r3, #24
800e7b8: edd3 7a00 vldr s15, [r3]
800e7bc: ed9f 7a94 vldr s14, [pc, #592] ; 800ea10 <DrawChannel_4+0x654>
800e7c0: eef4 7ac7 vcmpe.f32 s15, s14
800e7c4: eef1 fa10 vmrs APSR_nzcv, fpscr
800e7c8: d50c bpl.n 800e7e4 <DrawChannel_4+0x428>
p8 = FloatToASCII(pardata.amplif[ch].SENS, 0);
800e7ca: 79fb ldrb r3, [r7, #7]
800e7cc: 4a8c ldr r2, [pc, #560] ; (800ea00 <DrawChannel_4+0x644>)
800e7ce: 015b lsls r3, r3, #5
800e7d0: 4413 add r3, r2
800e7d2: 3318 adds r3, #24
800e7d4: edd3 7a00 vldr s15, [r3]
800e7d8: 2000 movs r0, #0
800e7da: eeb0 0a67 vmov.f32 s0, s15
800e7de: f001 f901 bl 800f9e4 <FloatToASCII>
800e7e2: 62f8 str r0, [r7, #44] ; 0x2c
}
strcpy((void *) str, (void *) p8);
800e7e4: f107 0308 add.w r3, r7, #8
800e7e8: 6af9 ldr r1, [r7, #44] ; 0x2c
800e7ea: 4618 mov r0, r3
800e7ec: f008 f91f bl 8016a2e <strcpy>
//////////////////////////////////////////////////////////////////////////////////////
if(pardata.amplif[ch].SENS <= 0.0010f) //0.001
800e7f0: 79fb ldrb r3, [r7, #7]
800e7f2: 4a83 ldr r2, [pc, #524] ; (800ea00 <DrawChannel_4+0x644>)
800e7f4: 015b lsls r3, r3, #5
800e7f6: 4413 add r3, r2
800e7f8: 3318 adds r3, #24
800e7fa: edd3 7a00 vldr s15, [r3]
800e7fe: ed9f 7a85 vldr s14, [pc, #532] ; 800ea14 <DrawChannel_4+0x658>
800e802: eef4 7ac7 vcmpe.f32 s15, s14
800e806: eef1 fa10 vmrs APSR_nzcv, fpscr
800e80a: d808 bhi.n 800e81e <DrawChannel_4+0x462>
{
out = pardata.amplif[ch].IKU;
800e80c: 79fb ldrb r3, [r7, #7]
800e80e: 4a7c ldr r2, [pc, #496] ; (800ea00 <DrawChannel_4+0x644>)
800e810: 015b lsls r3, r3, #5
800e812: 4413 add r3, r2
800e814: 3306 adds r3, #6
800e816: 881b ldrh r3, [r3, #0]
800e818: b29b uxth r3, r3
800e81a: 633b str r3, [r7, #48] ; 0x30
800e81c: e26f b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 0.0011f && */pardata.amplif[ch].SENS <= 0.0020f) //0.002
800e81e: 79fb ldrb r3, [r7, #7]
800e820: 4a77 ldr r2, [pc, #476] ; (800ea00 <DrawChannel_4+0x644>)
800e822: 015b lsls r3, r3, #5
800e824: 4413 add r3, r2
800e826: 3318 adds r3, #24
800e828: edd3 7a00 vldr s15, [r3]
800e82c: ed9f 7a7a vldr s14, [pc, #488] ; 800ea18 <DrawChannel_4+0x65c>
800e830: eef4 7ac7 vcmpe.f32 s15, s14
800e834: eef1 fa10 vmrs APSR_nzcv, fpscr
800e838: d809 bhi.n 800e84e <DrawChannel_4+0x492>
{
out = pardata.amplif[ch].IKU + 1;
800e83a: 79fb ldrb r3, [r7, #7]
800e83c: 4a70 ldr r2, [pc, #448] ; (800ea00 <DrawChannel_4+0x644>)
800e83e: 015b lsls r3, r3, #5
800e840: 4413 add r3, r2
800e842: 3306 adds r3, #6
800e844: 881b ldrh r3, [r3, #0]
800e846: b29b uxth r3, r3
800e848: 3301 adds r3, #1
800e84a: 633b str r3, [r7, #48] ; 0x30
800e84c: e257 b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 0.0021f && */pardata.amplif[ch].SENS <= 0.0050f) //0.005
800e84e: 79fb ldrb r3, [r7, #7]
800e850: 4a6b ldr r2, [pc, #428] ; (800ea00 <DrawChannel_4+0x644>)
800e852: 015b lsls r3, r3, #5
800e854: 4413 add r3, r2
800e856: 3318 adds r3, #24
800e858: edd3 7a00 vldr s15, [r3]
800e85c: ed9f 7a6f vldr s14, [pc, #444] ; 800ea1c <DrawChannel_4+0x660>
800e860: eef4 7ac7 vcmpe.f32 s15, s14
800e864: eef1 fa10 vmrs APSR_nzcv, fpscr
800e868: d809 bhi.n 800e87e <DrawChannel_4+0x4c2>
{
out = pardata.amplif[ch].IKU + 2;
800e86a: 79fb ldrb r3, [r7, #7]
800e86c: 4a64 ldr r2, [pc, #400] ; (800ea00 <DrawChannel_4+0x644>)
800e86e: 015b lsls r3, r3, #5
800e870: 4413 add r3, r2
800e872: 3306 adds r3, #6
800e874: 881b ldrh r3, [r3, #0]
800e876: b29b uxth r3, r3
800e878: 3302 adds r3, #2
800e87a: 633b str r3, [r7, #48] ; 0x30
800e87c: e23f b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 0.0051f && */pardata.amplif[ch].SENS <= 0.0100f) //0.01
800e87e: 79fb ldrb r3, [r7, #7]
800e880: 4a5f ldr r2, [pc, #380] ; (800ea00 <DrawChannel_4+0x644>)
800e882: 015b lsls r3, r3, #5
800e884: 4413 add r3, r2
800e886: 3318 adds r3, #24
800e888: edd3 7a00 vldr s15, [r3]
800e88c: ed9f 7a64 vldr s14, [pc, #400] ; 800ea20 <DrawChannel_4+0x664>
800e890: eef4 7ac7 vcmpe.f32 s15, s14
800e894: eef1 fa10 vmrs APSR_nzcv, fpscr
800e898: d809 bhi.n 800e8ae <DrawChannel_4+0x4f2>
{
out = pardata.amplif[ch].IKU + 3;
800e89a: 79fb ldrb r3, [r7, #7]
800e89c: 4a58 ldr r2, [pc, #352] ; (800ea00 <DrawChannel_4+0x644>)
800e89e: 015b lsls r3, r3, #5
800e8a0: 4413 add r3, r2
800e8a2: 3306 adds r3, #6
800e8a4: 881b ldrh r3, [r3, #0]
800e8a6: b29b uxth r3, r3
800e8a8: 3303 adds r3, #3
800e8aa: 633b str r3, [r7, #48] ; 0x30
800e8ac: e227 b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 0.0101f && */pardata.amplif[ch].SENS <= 0.0200f) //0.02
800e8ae: 79fb ldrb r3, [r7, #7]
800e8b0: 4a53 ldr r2, [pc, #332] ; (800ea00 <DrawChannel_4+0x644>)
800e8b2: 015b lsls r3, r3, #5
800e8b4: 4413 add r3, r2
800e8b6: 3318 adds r3, #24
800e8b8: edd3 7a00 vldr s15, [r3]
800e8bc: ed9f 7a59 vldr s14, [pc, #356] ; 800ea24 <DrawChannel_4+0x668>
800e8c0: eef4 7ac7 vcmpe.f32 s15, s14
800e8c4: eef1 fa10 vmrs APSR_nzcv, fpscr
800e8c8: d809 bhi.n 800e8de <DrawChannel_4+0x522>
{
out = pardata.amplif[ch].IKU + 4;
800e8ca: 79fb ldrb r3, [r7, #7]
800e8cc: 4a4c ldr r2, [pc, #304] ; (800ea00 <DrawChannel_4+0x644>)
800e8ce: 015b lsls r3, r3, #5
800e8d0: 4413 add r3, r2
800e8d2: 3306 adds r3, #6
800e8d4: 881b ldrh r3, [r3, #0]
800e8d6: b29b uxth r3, r3
800e8d8: 3304 adds r3, #4
800e8da: 633b str r3, [r7, #48] ; 0x30
800e8dc: e20f b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 0.0201f && */pardata.amplif[ch].SENS <= 0.0500f) //0.05
800e8de: 79fb ldrb r3, [r7, #7]
800e8e0: 4a47 ldr r2, [pc, #284] ; (800ea00 <DrawChannel_4+0x644>)
800e8e2: 015b lsls r3, r3, #5
800e8e4: 4413 add r3, r2
800e8e6: 3318 adds r3, #24
800e8e8: edd3 7a00 vldr s15, [r3]
800e8ec: ed9f 7a4e vldr s14, [pc, #312] ; 800ea28 <DrawChannel_4+0x66c>
800e8f0: eef4 7ac7 vcmpe.f32 s15, s14
800e8f4: eef1 fa10 vmrs APSR_nzcv, fpscr
800e8f8: d809 bhi.n 800e90e <DrawChannel_4+0x552>
{
out = pardata.amplif[ch].IKU + 5;
800e8fa: 79fb ldrb r3, [r7, #7]
800e8fc: 4a40 ldr r2, [pc, #256] ; (800ea00 <DrawChannel_4+0x644>)
800e8fe: 015b lsls r3, r3, #5
800e900: 4413 add r3, r2
800e902: 3306 adds r3, #6
800e904: 881b ldrh r3, [r3, #0]
800e906: b29b uxth r3, r3
800e908: 3305 adds r3, #5
800e90a: 633b str r3, [r7, #48] ; 0x30
800e90c: e1f7 b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 0.0501f && */pardata.amplif[ch].SENS <= 0.1000f) //0.1
800e90e: 79fb ldrb r3, [r7, #7]
800e910: 4a3b ldr r2, [pc, #236] ; (800ea00 <DrawChannel_4+0x644>)
800e912: 015b lsls r3, r3, #5
800e914: 4413 add r3, r2
800e916: 3318 adds r3, #24
800e918: edd3 7a00 vldr s15, [r3]
800e91c: ed9f 7a43 vldr s14, [pc, #268] ; 800ea2c <DrawChannel_4+0x670>
800e920: eef4 7ac7 vcmpe.f32 s15, s14
800e924: eef1 fa10 vmrs APSR_nzcv, fpscr
800e928: d809 bhi.n 800e93e <DrawChannel_4+0x582>
{
out = pardata.amplif[ch].IKU + 6;
800e92a: 79fb ldrb r3, [r7, #7]
800e92c: 4a34 ldr r2, [pc, #208] ; (800ea00 <DrawChannel_4+0x644>)
800e92e: 015b lsls r3, r3, #5
800e930: 4413 add r3, r2
800e932: 3306 adds r3, #6
800e934: 881b ldrh r3, [r3, #0]
800e936: b29b uxth r3, r3
800e938: 3306 adds r3, #6
800e93a: 633b str r3, [r7, #48] ; 0x30
800e93c: e1df b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 0.1001f && */pardata.amplif[ch].SENS <= 0.2000f) //0.2
800e93e: 79fb ldrb r3, [r7, #7]
800e940: 4a2f ldr r2, [pc, #188] ; (800ea00 <DrawChannel_4+0x644>)
800e942: 015b lsls r3, r3, #5
800e944: 4413 add r3, r2
800e946: 3318 adds r3, #24
800e948: edd3 7a00 vldr s15, [r3]
800e94c: ed9f 7a38 vldr s14, [pc, #224] ; 800ea30 <DrawChannel_4+0x674>
800e950: eef4 7ac7 vcmpe.f32 s15, s14
800e954: eef1 fa10 vmrs APSR_nzcv, fpscr
800e958: d809 bhi.n 800e96e <DrawChannel_4+0x5b2>
{
out = pardata.amplif[ch].IKU + 7;
800e95a: 79fb ldrb r3, [r7, #7]
800e95c: 4a28 ldr r2, [pc, #160] ; (800ea00 <DrawChannel_4+0x644>)
800e95e: 015b lsls r3, r3, #5
800e960: 4413 add r3, r2
800e962: 3306 adds r3, #6
800e964: 881b ldrh r3, [r3, #0]
800e966: b29b uxth r3, r3
800e968: 3307 adds r3, #7
800e96a: 633b str r3, [r7, #48] ; 0x30
800e96c: e1c7 b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 0.2001f && */pardata.amplif[ch].SENS <= 0.5000f) //0.5
800e96e: 79fb ldrb r3, [r7, #7]
800e970: 4a23 ldr r2, [pc, #140] ; (800ea00 <DrawChannel_4+0x644>)
800e972: 015b lsls r3, r3, #5
800e974: 4413 add r3, r2
800e976: 3318 adds r3, #24
800e978: edd3 7a00 vldr s15, [r3]
800e97c: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800e980: eef4 7ac7 vcmpe.f32 s15, s14
800e984: eef1 fa10 vmrs APSR_nzcv, fpscr
800e988: d809 bhi.n 800e99e <DrawChannel_4+0x5e2>
{
out = pardata.amplif[ch].IKU + 8;
800e98a: 79fb ldrb r3, [r7, #7]
800e98c: 4a1c ldr r2, [pc, #112] ; (800ea00 <DrawChannel_4+0x644>)
800e98e: 015b lsls r3, r3, #5
800e990: 4413 add r3, r2
800e992: 3306 adds r3, #6
800e994: 881b ldrh r3, [r3, #0]
800e996: b29b uxth r3, r3
800e998: 3308 adds r3, #8
800e99a: 633b str r3, [r7, #48] ; 0x30
800e99c: e1af b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 0.5001f && */pardata.amplif[ch].SENS <= 1.0000f) //1
800e99e: 79fb ldrb r3, [r7, #7]
800e9a0: 4a17 ldr r2, [pc, #92] ; (800ea00 <DrawChannel_4+0x644>)
800e9a2: 015b lsls r3, r3, #5
800e9a4: 4413 add r3, r2
800e9a6: 3318 adds r3, #24
800e9a8: edd3 7a00 vldr s15, [r3]
800e9ac: eeb7 7a00 vmov.f32 s14, #112 ; 0x3f800000 1.0
800e9b0: eef4 7ac7 vcmpe.f32 s15, s14
800e9b4: eef1 fa10 vmrs APSR_nzcv, fpscr
800e9b8: d809 bhi.n 800e9ce <DrawChannel_4+0x612>
{
out = pardata.amplif[ch].IKU + 9;
800e9ba: 79fb ldrb r3, [r7, #7]
800e9bc: 4a10 ldr r2, [pc, #64] ; (800ea00 <DrawChannel_4+0x644>)
800e9be: 015b lsls r3, r3, #5
800e9c0: 4413 add r3, r2
800e9c2: 3306 adds r3, #6
800e9c4: 881b ldrh r3, [r3, #0]
800e9c6: b29b uxth r3, r3
800e9c8: 3309 adds r3, #9
800e9ca: 633b str r3, [r7, #48] ; 0x30
800e9cc: e197 b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 1.0001f && */pardata.amplif[ch].SENS <= 2.0000f) //2
800e9ce: 79fb ldrb r3, [r7, #7]
800e9d0: 4a0b ldr r2, [pc, #44] ; (800ea00 <DrawChannel_4+0x644>)
800e9d2: 015b lsls r3, r3, #5
800e9d4: 4413 add r3, r2
800e9d6: 3318 adds r3, #24
800e9d8: edd3 7a00 vldr s15, [r3]
800e9dc: eeb0 7a00 vmov.f32 s14, #0 ; 0x40000000 2.0
800e9e0: eef4 7ac7 vcmpe.f32 s15, s14
800e9e4: eef1 fa10 vmrs APSR_nzcv, fpscr
800e9e8: d824 bhi.n 800ea34 <DrawChannel_4+0x678>
{
out = pardata.amplif[ch].IKU + 10;
800e9ea: 79fb ldrb r3, [r7, #7]
800e9ec: 4a04 ldr r2, [pc, #16] ; (800ea00 <DrawChannel_4+0x644>)
800e9ee: 015b lsls r3, r3, #5
800e9f0: 4413 add r3, r2
800e9f2: 3306 adds r3, #6
800e9f4: 881b ldrh r3, [r3, #0]
800e9f6: b29b uxth r3, r3
800e9f8: 330a adds r3, #10
800e9fa: 633b str r3, [r7, #48] ; 0x30
800e9fc: e17f b.n 800ecfe <DrawChannel_4+0x942>
800e9fe: bf00 nop
800ea00: 2006bb88 .word 0x2006bb88
800ea04: 42c80000 .word 0x42c80000
800ea08: 447a0000 .word 0x447a0000
800ea0c: 461c4000 .word 0x461c4000
800ea10: 47c35000 .word 0x47c35000
800ea14: 3a83126f .word 0x3a83126f
800ea18: 3b03126f .word 0x3b03126f
800ea1c: 3ba3d70a .word 0x3ba3d70a
800ea20: 3c23d70a .word 0x3c23d70a
800ea24: 3ca3d70a .word 0x3ca3d70a
800ea28: 3d4ccccd .word 0x3d4ccccd
800ea2c: 3dcccccd .word 0x3dcccccd
800ea30: 3e4ccccd .word 0x3e4ccccd
}
else
if(/*pardata.amplif[ch].SENS >= 2.0001f && */pardata.amplif[ch].SENS <= 5.0000f) //5
800ea34: 79fb ldrb r3, [r7, #7]
800ea36: 4a9b ldr r2, [pc, #620] ; (800eca4 <DrawChannel_4+0x8e8>)
800ea38: 015b lsls r3, r3, #5
800ea3a: 4413 add r3, r2
800ea3c: 3318 adds r3, #24
800ea3e: edd3 7a00 vldr s15, [r3]
800ea42: eeb1 7a04 vmov.f32 s14, #20 ; 0x40a00000 5.0
800ea46: eef4 7ac7 vcmpe.f32 s15, s14
800ea4a: eef1 fa10 vmrs APSR_nzcv, fpscr
800ea4e: d809 bhi.n 800ea64 <DrawChannel_4+0x6a8>
{
out = pardata.amplif[ch].IKU + 11;
800ea50: 79fb ldrb r3, [r7, #7]
800ea52: 4a94 ldr r2, [pc, #592] ; (800eca4 <DrawChannel_4+0x8e8>)
800ea54: 015b lsls r3, r3, #5
800ea56: 4413 add r3, r2
800ea58: 3306 adds r3, #6
800ea5a: 881b ldrh r3, [r3, #0]
800ea5c: b29b uxth r3, r3
800ea5e: 330b adds r3, #11
800ea60: 633b str r3, [r7, #48] ; 0x30
800ea62: e14c b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 5.0001f && */pardata.amplif[ch].SENS <= 10.000f) //10
800ea64: 79fb ldrb r3, [r7, #7]
800ea66: 4a8f ldr r2, [pc, #572] ; (800eca4 <DrawChannel_4+0x8e8>)
800ea68: 015b lsls r3, r3, #5
800ea6a: 4413 add r3, r2
800ea6c: 3318 adds r3, #24
800ea6e: edd3 7a00 vldr s15, [r3]
800ea72: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800ea76: eef4 7ac7 vcmpe.f32 s15, s14
800ea7a: eef1 fa10 vmrs APSR_nzcv, fpscr
800ea7e: d809 bhi.n 800ea94 <DrawChannel_4+0x6d8>
{
out = pardata.amplif[ch].IKU + 12;
800ea80: 79fb ldrb r3, [r7, #7]
800ea82: 4a88 ldr r2, [pc, #544] ; (800eca4 <DrawChannel_4+0x8e8>)
800ea84: 015b lsls r3, r3, #5
800ea86: 4413 add r3, r2
800ea88: 3306 adds r3, #6
800ea8a: 881b ldrh r3, [r3, #0]
800ea8c: b29b uxth r3, r3
800ea8e: 330c adds r3, #12
800ea90: 633b str r3, [r7, #48] ; 0x30
800ea92: e134 b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 10.001f && */pardata.amplif[ch].SENS <= 20.000f) //20
800ea94: 79fb ldrb r3, [r7, #7]
800ea96: 4a83 ldr r2, [pc, #524] ; (800eca4 <DrawChannel_4+0x8e8>)
800ea98: 015b lsls r3, r3, #5
800ea9a: 4413 add r3, r2
800ea9c: 3318 adds r3, #24
800ea9e: edd3 7a00 vldr s15, [r3]
800eaa2: eeb3 7a04 vmov.f32 s14, #52 ; 0x41a00000 20.0
800eaa6: eef4 7ac7 vcmpe.f32 s15, s14
800eaaa: eef1 fa10 vmrs APSR_nzcv, fpscr
800eaae: d809 bhi.n 800eac4 <DrawChannel_4+0x708>
{
out = pardata.amplif[ch].IKU + 13;
800eab0: 79fb ldrb r3, [r7, #7]
800eab2: 4a7c ldr r2, [pc, #496] ; (800eca4 <DrawChannel_4+0x8e8>)
800eab4: 015b lsls r3, r3, #5
800eab6: 4413 add r3, r2
800eab8: 3306 adds r3, #6
800eaba: 881b ldrh r3, [r3, #0]
800eabc: b29b uxth r3, r3
800eabe: 330d adds r3, #13
800eac0: 633b str r3, [r7, #48] ; 0x30
800eac2: e11c b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 20.001f && */pardata.amplif[ch].SENS <= 50.000f) //50
800eac4: 79fb ldrb r3, [r7, #7]
800eac6: 4a77 ldr r2, [pc, #476] ; (800eca4 <DrawChannel_4+0x8e8>)
800eac8: 015b lsls r3, r3, #5
800eaca: 4413 add r3, r2
800eacc: 3318 adds r3, #24
800eace: edd3 7a00 vldr s15, [r3]
800ead2: ed9f 7a75 vldr s14, [pc, #468] ; 800eca8 <DrawChannel_4+0x8ec>
800ead6: eef4 7ac7 vcmpe.f32 s15, s14
800eada: eef1 fa10 vmrs APSR_nzcv, fpscr
800eade: d809 bhi.n 800eaf4 <DrawChannel_4+0x738>
{
out = pardata.amplif[ch].IKU + 14;
800eae0: 79fb ldrb r3, [r7, #7]
800eae2: 4a70 ldr r2, [pc, #448] ; (800eca4 <DrawChannel_4+0x8e8>)
800eae4: 015b lsls r3, r3, #5
800eae6: 4413 add r3, r2
800eae8: 3306 adds r3, #6
800eaea: 881b ldrh r3, [r3, #0]
800eaec: b29b uxth r3, r3
800eaee: 330e adds r3, #14
800eaf0: 633b str r3, [r7, #48] ; 0x30
800eaf2: e104 b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 50.001f && */pardata.amplif[ch].SENS <= 100.00f) //100
800eaf4: 79fb ldrb r3, [r7, #7]
800eaf6: 4a6b ldr r2, [pc, #428] ; (800eca4 <DrawChannel_4+0x8e8>)
800eaf8: 015b lsls r3, r3, #5
800eafa: 4413 add r3, r2
800eafc: 3318 adds r3, #24
800eafe: edd3 7a00 vldr s15, [r3]
800eb02: ed9f 7a6a vldr s14, [pc, #424] ; 800ecac <DrawChannel_4+0x8f0>
800eb06: eef4 7ac7 vcmpe.f32 s15, s14
800eb0a: eef1 fa10 vmrs APSR_nzcv, fpscr
800eb0e: d809 bhi.n 800eb24 <DrawChannel_4+0x768>
{
out = pardata.amplif[ch].IKU + 15;
800eb10: 79fb ldrb r3, [r7, #7]
800eb12: 4a64 ldr r2, [pc, #400] ; (800eca4 <DrawChannel_4+0x8e8>)
800eb14: 015b lsls r3, r3, #5
800eb16: 4413 add r3, r2
800eb18: 3306 adds r3, #6
800eb1a: 881b ldrh r3, [r3, #0]
800eb1c: b29b uxth r3, r3
800eb1e: 330f adds r3, #15
800eb20: 633b str r3, [r7, #48] ; 0x30
800eb22: e0ec b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 100.01f && */pardata.amplif[ch].SENS <= 200.00f) //200
800eb24: 79fb ldrb r3, [r7, #7]
800eb26: 4a5f ldr r2, [pc, #380] ; (800eca4 <DrawChannel_4+0x8e8>)
800eb28: 015b lsls r3, r3, #5
800eb2a: 4413 add r3, r2
800eb2c: 3318 adds r3, #24
800eb2e: edd3 7a00 vldr s15, [r3]
800eb32: ed9f 7a5f vldr s14, [pc, #380] ; 800ecb0 <DrawChannel_4+0x8f4>
800eb36: eef4 7ac7 vcmpe.f32 s15, s14
800eb3a: eef1 fa10 vmrs APSR_nzcv, fpscr
800eb3e: d809 bhi.n 800eb54 <DrawChannel_4+0x798>
{
out = pardata.amplif[ch].IKU + 16;
800eb40: 79fb ldrb r3, [r7, #7]
800eb42: 4a58 ldr r2, [pc, #352] ; (800eca4 <DrawChannel_4+0x8e8>)
800eb44: 015b lsls r3, r3, #5
800eb46: 4413 add r3, r2
800eb48: 3306 adds r3, #6
800eb4a: 881b ldrh r3, [r3, #0]
800eb4c: b29b uxth r3, r3
800eb4e: 3310 adds r3, #16
800eb50: 633b str r3, [r7, #48] ; 0x30
800eb52: e0d4 b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 200.01f && */pardata.amplif[ch].SENS <= 500.00f) //500
800eb54: 79fb ldrb r3, [r7, #7]
800eb56: 4a53 ldr r2, [pc, #332] ; (800eca4 <DrawChannel_4+0x8e8>)
800eb58: 015b lsls r3, r3, #5
800eb5a: 4413 add r3, r2
800eb5c: 3318 adds r3, #24
800eb5e: edd3 7a00 vldr s15, [r3]
800eb62: ed9f 7a54 vldr s14, [pc, #336] ; 800ecb4 <DrawChannel_4+0x8f8>
800eb66: eef4 7ac7 vcmpe.f32 s15, s14
800eb6a: eef1 fa10 vmrs APSR_nzcv, fpscr
800eb6e: d809 bhi.n 800eb84 <DrawChannel_4+0x7c8>
{
out = pardata.amplif[ch].IKU + 17;
800eb70: 79fb ldrb r3, [r7, #7]
800eb72: 4a4c ldr r2, [pc, #304] ; (800eca4 <DrawChannel_4+0x8e8>)
800eb74: 015b lsls r3, r3, #5
800eb76: 4413 add r3, r2
800eb78: 3306 adds r3, #6
800eb7a: 881b ldrh r3, [r3, #0]
800eb7c: b29b uxth r3, r3
800eb7e: 3311 adds r3, #17
800eb80: 633b str r3, [r7, #48] ; 0x30
800eb82: e0bc b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 500.01f && */pardata.amplif[ch].SENS <= 1000.0f) //1000
800eb84: 79fb ldrb r3, [r7, #7]
800eb86: 4a47 ldr r2, [pc, #284] ; (800eca4 <DrawChannel_4+0x8e8>)
800eb88: 015b lsls r3, r3, #5
800eb8a: 4413 add r3, r2
800eb8c: 3318 adds r3, #24
800eb8e: edd3 7a00 vldr s15, [r3]
800eb92: ed9f 7a49 vldr s14, [pc, #292] ; 800ecb8 <DrawChannel_4+0x8fc>
800eb96: eef4 7ac7 vcmpe.f32 s15, s14
800eb9a: eef1 fa10 vmrs APSR_nzcv, fpscr
800eb9e: d809 bhi.n 800ebb4 <DrawChannel_4+0x7f8>
{
out = pardata.amplif[ch].IKU + 18;
800eba0: 79fb ldrb r3, [r7, #7]
800eba2: 4a40 ldr r2, [pc, #256] ; (800eca4 <DrawChannel_4+0x8e8>)
800eba4: 015b lsls r3, r3, #5
800eba6: 4413 add r3, r2
800eba8: 3306 adds r3, #6
800ebaa: 881b ldrh r3, [r3, #0]
800ebac: b29b uxth r3, r3
800ebae: 3312 adds r3, #18
800ebb0: 633b str r3, [r7, #48] ; 0x30
800ebb2: e0a4 b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 1000.1f && */pardata.amplif[ch].SENS <= 2000.0f) //2000
800ebb4: 79fb ldrb r3, [r7, #7]
800ebb6: 4a3b ldr r2, [pc, #236] ; (800eca4 <DrawChannel_4+0x8e8>)
800ebb8: 015b lsls r3, r3, #5
800ebba: 4413 add r3, r2
800ebbc: 3318 adds r3, #24
800ebbe: edd3 7a00 vldr s15, [r3]
800ebc2: ed9f 7a3e vldr s14, [pc, #248] ; 800ecbc <DrawChannel_4+0x900>
800ebc6: eef4 7ac7 vcmpe.f32 s15, s14
800ebca: eef1 fa10 vmrs APSR_nzcv, fpscr
800ebce: d809 bhi.n 800ebe4 <DrawChannel_4+0x828>
{
out = pardata.amplif[ch].IKU + 19;
800ebd0: 79fb ldrb r3, [r7, #7]
800ebd2: 4a34 ldr r2, [pc, #208] ; (800eca4 <DrawChannel_4+0x8e8>)
800ebd4: 015b lsls r3, r3, #5
800ebd6: 4413 add r3, r2
800ebd8: 3306 adds r3, #6
800ebda: 881b ldrh r3, [r3, #0]
800ebdc: b29b uxth r3, r3
800ebde: 3313 adds r3, #19
800ebe0: 633b str r3, [r7, #48] ; 0x30
800ebe2: e08c b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 2000.1f && */pardata.amplif[ch].SENS <= 5000.0f) //2000
800ebe4: 79fb ldrb r3, [r7, #7]
800ebe6: 4a2f ldr r2, [pc, #188] ; (800eca4 <DrawChannel_4+0x8e8>)
800ebe8: 015b lsls r3, r3, #5
800ebea: 4413 add r3, r2
800ebec: 3318 adds r3, #24
800ebee: edd3 7a00 vldr s15, [r3]
800ebf2: ed9f 7a33 vldr s14, [pc, #204] ; 800ecc0 <DrawChannel_4+0x904>
800ebf6: eef4 7ac7 vcmpe.f32 s15, s14
800ebfa: eef1 fa10 vmrs APSR_nzcv, fpscr
800ebfe: d809 bhi.n 800ec14 <DrawChannel_4+0x858>
{
out = pardata.amplif[ch].IKU + 20;
800ec00: 79fb ldrb r3, [r7, #7]
800ec02: 4a28 ldr r2, [pc, #160] ; (800eca4 <DrawChannel_4+0x8e8>)
800ec04: 015b lsls r3, r3, #5
800ec06: 4413 add r3, r2
800ec08: 3306 adds r3, #6
800ec0a: 881b ldrh r3, [r3, #0]
800ec0c: b29b uxth r3, r3
800ec0e: 3314 adds r3, #20
800ec10: 633b str r3, [r7, #48] ; 0x30
800ec12: e074 b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 5000.1f && */pardata.amplif[ch].SENS <= 10000.0f) //10000
800ec14: 79fb ldrb r3, [r7, #7]
800ec16: 4a23 ldr r2, [pc, #140] ; (800eca4 <DrawChannel_4+0x8e8>)
800ec18: 015b lsls r3, r3, #5
800ec1a: 4413 add r3, r2
800ec1c: 3318 adds r3, #24
800ec1e: edd3 7a00 vldr s15, [r3]
800ec22: ed9f 7a28 vldr s14, [pc, #160] ; 800ecc4 <DrawChannel_4+0x908>
800ec26: eef4 7ac7 vcmpe.f32 s15, s14
800ec2a: eef1 fa10 vmrs APSR_nzcv, fpscr
800ec2e: d809 bhi.n 800ec44 <DrawChannel_4+0x888>
{
out = pardata.amplif[ch].IKU + 21;
800ec30: 79fb ldrb r3, [r7, #7]
800ec32: 4a1c ldr r2, [pc, #112] ; (800eca4 <DrawChannel_4+0x8e8>)
800ec34: 015b lsls r3, r3, #5
800ec36: 4413 add r3, r2
800ec38: 3306 adds r3, #6
800ec3a: 881b ldrh r3, [r3, #0]
800ec3c: b29b uxth r3, r3
800ec3e: 3315 adds r3, #21
800ec40: 633b str r3, [r7, #48] ; 0x30
800ec42: e05c b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 10001 && */pardata.amplif[ch].SENS <= 20000.0f) //20000
800ec44: 79fb ldrb r3, [r7, #7]
800ec46: 4a17 ldr r2, [pc, #92] ; (800eca4 <DrawChannel_4+0x8e8>)
800ec48: 015b lsls r3, r3, #5
800ec4a: 4413 add r3, r2
800ec4c: 3318 adds r3, #24
800ec4e: edd3 7a00 vldr s15, [r3]
800ec52: ed9f 7a1d vldr s14, [pc, #116] ; 800ecc8 <DrawChannel_4+0x90c>
800ec56: eef4 7ac7 vcmpe.f32 s15, s14
800ec5a: eef1 fa10 vmrs APSR_nzcv, fpscr
800ec5e: d809 bhi.n 800ec74 <DrawChannel_4+0x8b8>
{
out = pardata.amplif[ch].IKU + 22;
800ec60: 79fb ldrb r3, [r7, #7]
800ec62: 4a10 ldr r2, [pc, #64] ; (800eca4 <DrawChannel_4+0x8e8>)
800ec64: 015b lsls r3, r3, #5
800ec66: 4413 add r3, r2
800ec68: 3306 adds r3, #6
800ec6a: 881b ldrh r3, [r3, #0]
800ec6c: b29b uxth r3, r3
800ec6e: 3316 adds r3, #22
800ec70: 633b str r3, [r7, #48] ; 0x30
800ec72: e044 b.n 800ecfe <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 20001 && */pardata.amplif[ch].SENS <= 50000.0f) //50000
800ec74: 79fb ldrb r3, [r7, #7]
800ec76: 4a0b ldr r2, [pc, #44] ; (800eca4 <DrawChannel_4+0x8e8>)
800ec78: 015b lsls r3, r3, #5
800ec7a: 4413 add r3, r2
800ec7c: 3318 adds r3, #24
800ec7e: edd3 7a00 vldr s15, [r3]
800ec82: ed9f 7a12 vldr s14, [pc, #72] ; 800eccc <DrawChannel_4+0x910>
800ec86: eef4 7ac7 vcmpe.f32 s15, s14
800ec8a: eef1 fa10 vmrs APSR_nzcv, fpscr
800ec8e: d81f bhi.n 800ecd0 <DrawChannel_4+0x914>
{
out = pardata.amplif[ch].IKU + 23;
800ec90: 79fb ldrb r3, [r7, #7]
800ec92: 4a04 ldr r2, [pc, #16] ; (800eca4 <DrawChannel_4+0x8e8>)
800ec94: 015b lsls r3, r3, #5
800ec96: 4413 add r3, r2
800ec98: 3306 adds r3, #6
800ec9a: 881b ldrh r3, [r3, #0]
800ec9c: b29b uxth r3, r3
800ec9e: 3317 adds r3, #23
800eca0: 633b str r3, [r7, #48] ; 0x30
800eca2: e02c b.n 800ecfe <DrawChannel_4+0x942>
800eca4: 2006bb88 .word 0x2006bb88
800eca8: 42480000 .word 0x42480000
800ecac: 42c80000 .word 0x42c80000
800ecb0: 43480000 .word 0x43480000
800ecb4: 43fa0000 .word 0x43fa0000
800ecb8: 447a0000 .word 0x447a0000
800ecbc: 44fa0000 .word 0x44fa0000
800ecc0: 459c4000 .word 0x459c4000
800ecc4: 461c4000 .word 0x461c4000
800ecc8: 469c4000 .word 0x469c4000
800eccc: 47435000 .word 0x47435000
}
else
if(/*pardata.amplif[ch].SENS >= 50001 && */pardata.amplif[ch].SENS <= 100000) //100000
800ecd0: 79fb ldrb r3, [r7, #7]
800ecd2: 4aaf ldr r2, [pc, #700] ; (800ef90 <DrawChannel_4+0xbd4>)
800ecd4: 015b lsls r3, r3, #5
800ecd6: 4413 add r3, r2
800ecd8: 3318 adds r3, #24
800ecda: edd3 7a00 vldr s15, [r3]
800ecde: ed9f 7aad vldr s14, [pc, #692] ; 800ef94 <DrawChannel_4+0xbd8>
800ece2: eef4 7ac7 vcmpe.f32 s15, s14
800ece6: eef1 fa10 vmrs APSR_nzcv, fpscr
800ecea: d808 bhi.n 800ecfe <DrawChannel_4+0x942>
{
out = pardata.amplif[ch].IKU + 24;
800ecec: 79fb ldrb r3, [r7, #7]
800ecee: 4aa8 ldr r2, [pc, #672] ; (800ef90 <DrawChannel_4+0xbd4>)
800ecf0: 015b lsls r3, r3, #5
800ecf2: 4413 add r3, r2
800ecf4: 3306 adds r3, #6
800ecf6: 881b ldrh r3, [r3, #0]
800ecf8: b29b uxth r3, r3
800ecfa: 3318 adds r3, #24
800ecfc: 633b str r3, [r7, #48] ; 0x30
}
LCD_SetColors(LCD_COLOR_ORANGE, LCD_COLOR_BLACK);
800ecfe: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800ed02: 48a5 ldr r0, [pc, #660] ; (800ef98 <DrawChannel_4+0xbdc>)
800ed04: f7f6 f9d6 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_INPUT_4[ch], str, LEFT_MODE);
800ed08: 79fb ldrb r3, [r7, #7]
800ed0a: 4aa4 ldr r2, [pc, #656] ; (800ef9c <DrawChannel_4+0xbe0>)
800ed0c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ed10: 3305 adds r3, #5
800ed12: b298 uxth r0, r3
800ed14: 79fb ldrb r3, [r7, #7]
800ed16: 4aa2 ldr r2, [pc, #648] ; (800efa0 <DrawChannel_4+0xbe4>)
800ed18: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800ed1c: f107 0208 add.w r2, r7, #8
800ed20: 2303 movs r3, #3
800ed22: f7f6 fa8d bl 8005240 <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);
800ed26: 79fb ldrb r3, [r7, #7]
800ed28: 4a9c ldr r2, [pc, #624] ; (800ef9c <DrawChannel_4+0xbe0>)
800ed2a: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ed2e: 3332 adds r3, #50 ; 0x32
800ed30: b298 uxth r0, r3
800ed32: 79fb ldrb r3, [r7, #7]
800ed34: 4a9a ldr r2, [pc, #616] ; (800efa0 <DrawChannel_4+0xbe4>)
800ed36: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ed3a: 4b95 ldr r3, [pc, #596] ; (800ef90 <DrawChannel_4+0xbd4>)
800ed3c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ed40: b29b uxth r3, r3
800ed42: 461d mov r5, r3
800ed44: 79fb ldrb r3, [r7, #7]
800ed46: 4a92 ldr r2, [pc, #584] ; (800ef90 <DrawChannel_4+0xbd4>)
800ed48: 015b lsls r3, r3, #5
800ed4a: 4413 add r3, r2
800ed4c: 3312 adds r3, #18
800ed4e: 881b ldrh r3, [r3, #0]
800ed50: b29b uxth r3, r3
800ed52: 005b lsls r3, r3, #1
800ed54: 79fa ldrb r2, [r7, #7]
800ed56: 498e ldr r1, [pc, #568] ; (800ef90 <DrawChannel_4+0xbd4>)
800ed58: 0152 lsls r2, r2, #5
800ed5a: 440a add r2, r1
800ed5c: 8812 ldrh r2, [r2, #0]
800ed5e: b292 uxth r2, r2
800ed60: 4413 add r3, r2
800ed62: 4990 ldr r1, [pc, #576] ; (800efa4 <DrawChannel_4+0xbe8>)
800ed64: 012a lsls r2, r5, #4
800ed66: 4413 add r3, r2
800ed68: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800ed6c: 2303 movs r3, #3
800ed6e: 4621 mov r1, r4
800ed70: f7f6 fa66 bl 8005240 <BSP_LCD_DisplayStringAt>
//////////////////////////////////////////////////////////////////////////////////////////////
LCD_SetColors(LCD_COLOR_DARKCYAN, LCD_COLOR_BLACK);
800ed74: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800ed78: 488b ldr r0, [pc, #556] ; (800efa8 <DrawChannel_4+0xbec>)
800ed7a: f7f6 f99b bl 80050b4 <LCD_SetColors>
if(ch < Ch3)
800ed7e: 79fb ldrb r3, [r7, #7]
800ed80: 2b01 cmp r3, #1
800ed82: d81f bhi.n 800edc4 <DrawChannel_4+0xa08>
{
if(pardata.amplif[ch].IIN == CHARGE)
800ed84: 79fb ldrb r3, [r7, #7]
800ed86: 4a82 ldr r2, [pc, #520] ; (800ef90 <DrawChannel_4+0xbd4>)
800ed88: 015b lsls r3, r3, #5
800ed8a: 4413 add r3, r2
800ed8c: 881b ldrh r3, [r3, #0]
800ed8e: b29b uxth r3, r3
800ed90: 2b00 cmp r3, #0
800ed92: d10b bne.n 800edac <DrawChannel_4+0x9f0>
BSP_LCD_DisplayStringAt(155, YPOS_KN_4[ch] + 3, "PE", RIGHT_MODE);
800ed94: 79fb ldrb r3, [r7, #7]
800ed96: 4a85 ldr r2, [pc, #532] ; (800efac <DrawChannel_4+0xbf0>)
800ed98: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ed9c: 3303 adds r3, #3
800ed9e: b299 uxth r1, r3
800eda0: 2302 movs r3, #2
800eda2: 4a83 ldr r2, [pc, #524] ; (800efb0 <DrawChannel_4+0xbf4>)
800eda4: 209b movs r0, #155 ; 0x9b
800eda6: f7f6 fa4b bl 8005240 <BSP_LCD_DisplayStringAt>
800edaa: e02c b.n 800ee06 <DrawChannel_4+0xa4a>
else BSP_LCD_DisplayStringAt(155, YPOS_KN_4[ch] + 3, "IEPE", RIGHT_MODE);
800edac: 79fb ldrb r3, [r7, #7]
800edae: 4a7f ldr r2, [pc, #508] ; (800efac <DrawChannel_4+0xbf0>)
800edb0: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800edb4: 3303 adds r3, #3
800edb6: b299 uxth r1, r3
800edb8: 2302 movs r3, #2
800edba: 4a7e ldr r2, [pc, #504] ; (800efb4 <DrawChannel_4+0xbf8>)
800edbc: 209b movs r0, #155 ; 0x9b
800edbe: f7f6 fa3f bl 8005240 <BSP_LCD_DisplayStringAt>
800edc2: e020 b.n 800ee06 <DrawChannel_4+0xa4a>
}
else
{
if(pardata.amplif[ch].IIN == CHARGE)
800edc4: 79fb ldrb r3, [r7, #7]
800edc6: 4a72 ldr r2, [pc, #456] ; (800ef90 <DrawChannel_4+0xbd4>)
800edc8: 015b lsls r3, r3, #5
800edca: 4413 add r3, r2
800edcc: 881b ldrh r3, [r3, #0]
800edce: b29b uxth r3, r3
800edd0: 2b00 cmp r3, #0
800edd2: d10c bne.n 800edee <DrawChannel_4+0xa32>
BSP_LCD_DisplayStringAt(155 + 160, YPOS_KN_4[ch] + 3, "PE", RIGHT_MODE);
800edd4: 79fb ldrb r3, [r7, #7]
800edd6: 4a75 ldr r2, [pc, #468] ; (800efac <DrawChannel_4+0xbf0>)
800edd8: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800eddc: 3303 adds r3, #3
800edde: b299 uxth r1, r3
800ede0: 2302 movs r3, #2
800ede2: 4a73 ldr r2, [pc, #460] ; (800efb0 <DrawChannel_4+0xbf4>)
800ede4: f240 103b movw r0, #315 ; 0x13b
800ede8: f7f6 fa2a bl 8005240 <BSP_LCD_DisplayStringAt>
800edec: e00b b.n 800ee06 <DrawChannel_4+0xa4a>
else BSP_LCD_DisplayStringAt(155 + 160, YPOS_KN_4[ch] + 3, "IEPE", RIGHT_MODE);
800edee: 79fb ldrb r3, [r7, #7]
800edf0: 4a6e ldr r2, [pc, #440] ; (800efac <DrawChannel_4+0xbf0>)
800edf2: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800edf6: 3303 adds r3, #3
800edf8: b299 uxth r1, r3
800edfa: 2302 movs r3, #2
800edfc: 4a6d ldr r2, [pc, #436] ; (800efb4 <DrawChannel_4+0xbf8>)
800edfe: f240 103b movw r0, #315 ; 0x13b
800ee02: f7f6 fa1d bl 8005240 <BSP_LCD_DisplayStringAt>
}
if(menupos == Hp)
800ee06: 4b6c ldr r3, [pc, #432] ; (800efb8 <DrawChannel_4+0xbfc>)
800ee08: 781b ldrb r3, [r3, #0]
800ee0a: b2db uxtb r3, r3
800ee0c: 2b00 cmp r3, #0
800ee0e: f040 8177 bne.w 800f100 <DrawChannel_4+0xd44>
{
if(ACTIVE_CHANNEL == ch)
800ee12: 79fa ldrb r2, [r7, #7]
800ee14: 4b69 ldr r3, [pc, #420] ; (800efbc <DrawChannel_4+0xc00>)
800ee16: 681b ldr r3, [r3, #0]
800ee18: 429a cmp r2, r3
800ee1a: f040 80e7 bne.w 800efec <DrawChannel_4+0xc30>
{
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800ee1e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800ee22: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800ee26: f7f6 f945 bl 80050b4 <LCD_SetColors>
if(focused)
800ee2a: 4b65 ldr r3, [pc, #404] ; (800efc0 <DrawChannel_4+0xc04>)
800ee2c: 781b ldrb r3, [r3, #0]
800ee2e: b2db uxtb r3, r3
800ee30: 2b00 cmp r3, #0
800ee32: d023 beq.n 800ee7c <DrawChannel_4+0xac0>
{
if(blk)
800ee34: 683b ldr r3, [r7, #0]
800ee36: 2b00 cmp r3, #0
800ee38: d040 beq.n 800eebc <DrawChannel_4+0xb00>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800ee3a: 79fb ldrb r3, [r7, #7]
800ee3c: 4a61 ldr r2, [pc, #388] ; (800efc4 <DrawChannel_4+0xc08>)
800ee3e: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800ee42: 79fb ldrb r3, [r7, #7]
800ee44: 4a60 ldr r2, [pc, #384] ; (800efc8 <DrawChannel_4+0xc0c>)
800ee46: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ee4a: 4b51 ldr r3, [pc, #324] ; (800ef90 <DrawChannel_4+0xbd4>)
800ee4c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ee50: b29b uxth r3, r3
800ee52: 4619 mov r1, r3
800ee54: 79fb ldrb r3, [r7, #7]
800ee56: 4a4e ldr r2, [pc, #312] ; (800ef90 <DrawChannel_4+0xbd4>)
800ee58: 015b lsls r3, r3, #5
800ee5a: 4413 add r3, r2
800ee5c: 3302 adds r3, #2
800ee5e: 881b ldrh r3, [r3, #0]
800ee60: b29b uxth r3, r3
800ee62: 461d mov r5, r3
800ee64: 4a59 ldr r2, [pc, #356] ; (800efcc <DrawChannel_4+0xc10>)
800ee66: 460b mov r3, r1
800ee68: 009b lsls r3, r3, #2
800ee6a: 440b add r3, r1
800ee6c: 442b add r3, r5
800ee6e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800ee72: 2303 movs r3, #3
800ee74: 4621 mov r1, r4
800ee76: f7f6 f9e3 bl 8005240 <BSP_LCD_DisplayStringAt>
800ee7a: e01f b.n 800eebc <DrawChannel_4+0xb00>
}
else
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800ee7c: 79fb ldrb r3, [r7, #7]
800ee7e: 4a51 ldr r2, [pc, #324] ; (800efc4 <DrawChannel_4+0xc08>)
800ee80: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800ee84: 79fb ldrb r3, [r7, #7]
800ee86: 4a50 ldr r2, [pc, #320] ; (800efc8 <DrawChannel_4+0xc0c>)
800ee88: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ee8c: 4b40 ldr r3, [pc, #256] ; (800ef90 <DrawChannel_4+0xbd4>)
800ee8e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ee92: b29b uxth r3, r3
800ee94: 4619 mov r1, r3
800ee96: 79fb ldrb r3, [r7, #7]
800ee98: 4a3d ldr r2, [pc, #244] ; (800ef90 <DrawChannel_4+0xbd4>)
800ee9a: 015b lsls r3, r3, #5
800ee9c: 4413 add r3, r2
800ee9e: 3302 adds r3, #2
800eea0: 881b ldrh r3, [r3, #0]
800eea2: b29b uxth r3, r3
800eea4: 461d mov r5, r3
800eea6: 4a49 ldr r2, [pc, #292] ; (800efcc <DrawChannel_4+0xc10>)
800eea8: 460b mov r3, r1
800eeaa: 009b lsls r3, r3, #2
800eeac: 440b add r3, r1
800eeae: 442b add r3, r5
800eeb0: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800eeb4: 2303 movs r3, #3
800eeb6: 4621 mov r1, r4
800eeb8: f7f6 f9c2 bl 8005240 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800eebc: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800eec0: 4843 ldr r0, [pc, #268] ; (800efd0 <DrawChannel_4+0xc14>)
800eec2: f7f6 f8f7 bl 80050b4 <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);
800eec6: 79fb ldrb r3, [r7, #7]
800eec8: 4a42 ldr r2, [pc, #264] ; (800efd4 <DrawChannel_4+0xc18>)
800eeca: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800eece: 79fb ldrb r3, [r7, #7]
800eed0: 4a41 ldr r2, [pc, #260] ; (800efd8 <DrawChannel_4+0xc1c>)
800eed2: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800eed6: 4b2e ldr r3, [pc, #184] ; (800ef90 <DrawChannel_4+0xbd4>)
800eed8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800eedc: b29b uxth r3, r3
800eede: 461d mov r5, r3
800eee0: 79fb ldrb r3, [r7, #7]
800eee2: 4a2b ldr r2, [pc, #172] ; (800ef90 <DrawChannel_4+0xbd4>)
800eee4: 015b lsls r3, r3, #5
800eee6: 4413 add r3, r2
800eee8: 3304 adds r3, #4
800eeea: 881b ldrh r3, [r3, #0]
800eeec: b29b uxth r3, r3
800eeee: 461c mov r4, r3
800eef0: 4a3a ldr r2, [pc, #232] ; (800efdc <DrawChannel_4+0xc20>)
800eef2: 00eb lsls r3, r5, #3
800eef4: 4423 add r3, r4
800eef6: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800eefa: 2303 movs r3, #3
800eefc: f7f6 f9a0 bl 8005240 <BSP_LCD_DisplayStringAt>
if(pardata.LANG == RUS)
800ef00: 4b23 ldr r3, [pc, #140] ; (800ef90 <DrawChannel_4+0xbd4>)
800ef02: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ef06: b29b uxth r3, r3
800ef08: 2b00 cmp r3, #0
800ef0a: d120 bne.n 800ef4e <DrawChannel_4+0xb92>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800ef0c: 79fb ldrb r3, [r7, #7]
800ef0e: 4a23 ldr r2, [pc, #140] ; (800ef9c <DrawChannel_4+0xbe0>)
800ef10: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ef14: 3305 adds r3, #5
800ef16: b298 uxth r0, r3
800ef18: 79fb ldrb r3, [r7, #7]
800ef1a: 4a31 ldr r2, [pc, #196] ; (800efe0 <DrawChannel_4+0xc24>)
800ef1c: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ef20: 79fb ldrb r3, [r7, #7]
800ef22: 4a1b ldr r2, [pc, #108] ; (800ef90 <DrawChannel_4+0xbd4>)
800ef24: 015b lsls r3, r3, #5
800ef26: 4413 add r3, r2
800ef28: 3312 adds r3, #18
800ef2a: 881b ldrh r3, [r3, #0]
800ef2c: b29b uxth r3, r3
800ef2e: 461a mov r2, r3
800ef30: 492c ldr r1, [pc, #176] ; (800efe4 <DrawChannel_4+0xc28>)
800ef32: 4613 mov r3, r2
800ef34: 009b lsls r3, r3, #2
800ef36: 4413 add r3, r2
800ef38: 009a lsls r2, r3, #2
800ef3a: 4413 add r3, r2
800ef3c: 6b3a ldr r2, [r7, #48] ; 0x30
800ef3e: 4413 add r3, r2
800ef40: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800ef44: 2303 movs r3, #3
800ef46: 4621 mov r1, r4
800ef48: f7f6 f97a bl 8005240 <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);
}
}
}
800ef4c: e3d6 b.n 800f6fc <DrawChannel_4+0x1340>
else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE);
800ef4e: 79fb ldrb r3, [r7, #7]
800ef50: 4a12 ldr r2, [pc, #72] ; (800ef9c <DrawChannel_4+0xbe0>)
800ef52: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ef56: 3b09 subs r3, #9
800ef58: b298 uxth r0, r3
800ef5a: 79fb ldrb r3, [r7, #7]
800ef5c: 4a20 ldr r2, [pc, #128] ; (800efe0 <DrawChannel_4+0xc24>)
800ef5e: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ef62: 79fb ldrb r3, [r7, #7]
800ef64: 4a0a ldr r2, [pc, #40] ; (800ef90 <DrawChannel_4+0xbd4>)
800ef66: 015b lsls r3, r3, #5
800ef68: 4413 add r3, r2
800ef6a: 3312 adds r3, #18
800ef6c: 881b ldrh r3, [r3, #0]
800ef6e: b29b uxth r3, r3
800ef70: 461a mov r2, r3
800ef72: 491d ldr r1, [pc, #116] ; (800efe8 <DrawChannel_4+0xc2c>)
800ef74: 4613 mov r3, r2
800ef76: 009b lsls r3, r3, #2
800ef78: 4413 add r3, r2
800ef7a: 009a lsls r2, r3, #2
800ef7c: 4413 add r3, r2
800ef7e: 6b3a ldr r2, [r7, #48] ; 0x30
800ef80: 4413 add r3, r2
800ef82: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800ef86: 2303 movs r3, #3
800ef88: 4621 mov r1, r4
800ef8a: f7f6 f959 bl 8005240 <BSP_LCD_DisplayStringAt>
}
800ef8e: e3b5 b.n 800f6fc <DrawChannel_4+0x1340>
800ef90: 2006bb88 .word 0x2006bb88
800ef94: 47c35000 .word 0x47c35000
800ef98: ffffa500 .word 0xffffa500
800ef9c: 0801b014 .word 0x0801b014
800efa0: 0801b01c .word 0x0801b01c
800efa4: 200200bc .word 0x200200bc
800efa8: ff008080 .word 0xff008080
800efac: 0801b04c .word 0x0801b04c
800efb0: 08018360 .word 0x08018360
800efb4: 08018364 .word 0x08018364
800efb8: 20020010 .word 0x20020010
800efbc: 2006b948 .word 0x2006b948
800efc0: 200208c4 .word 0x200208c4
800efc4: 0801b024 .word 0x0801b024
800efc8: 0801b02c .word 0x0801b02c
800efcc: 20020054 .word 0x20020054
800efd0: ffd8aa57 .word 0xffd8aa57
800efd4: 0801b034 .word 0x0801b034
800efd8: 0801b03c .word 0x0801b03c
800efdc: 2002007c .word 0x2002007c
800efe0: 0801b044 .word 0x0801b044
800efe4: 2002013c .word 0x2002013c
800efe8: 200204c0 .word 0x200204c0
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800efec: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800eff0: 48a4 ldr r0, [pc, #656] ; (800f284 <DrawChannel_4+0xec8>)
800eff2: f7f6 f85f bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800eff6: 79fb ldrb r3, [r7, #7]
800eff8: 4aa3 ldr r2, [pc, #652] ; (800f288 <DrawChannel_4+0xecc>)
800effa: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800effe: 79fb ldrb r3, [r7, #7]
800f000: 4aa2 ldr r2, [pc, #648] ; (800f28c <DrawChannel_4+0xed0>)
800f002: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f006: 4ba2 ldr r3, [pc, #648] ; (800f290 <DrawChannel_4+0xed4>)
800f008: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f00c: b29b uxth r3, r3
800f00e: 4619 mov r1, r3
800f010: 79fb ldrb r3, [r7, #7]
800f012: 4a9f ldr r2, [pc, #636] ; (800f290 <DrawChannel_4+0xed4>)
800f014: 015b lsls r3, r3, #5
800f016: 4413 add r3, r2
800f018: 3302 adds r3, #2
800f01a: 881b ldrh r3, [r3, #0]
800f01c: b29b uxth r3, r3
800f01e: 461d mov r5, r3
800f020: 4a9c ldr r2, [pc, #624] ; (800f294 <DrawChannel_4+0xed8>)
800f022: 460b mov r3, r1
800f024: 009b lsls r3, r3, #2
800f026: 440b add r3, r1
800f028: 442b add r3, r5
800f02a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800f02e: 2303 movs r3, #3
800f030: 4621 mov r1, r4
800f032: f7f6 f905 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800f036: 79fb ldrb r3, [r7, #7]
800f038: 4a97 ldr r2, [pc, #604] ; (800f298 <DrawChannel_4+0xedc>)
800f03a: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800f03e: 79fb ldrb r3, [r7, #7]
800f040: 4a96 ldr r2, [pc, #600] ; (800f29c <DrawChannel_4+0xee0>)
800f042: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800f046: 4b92 ldr r3, [pc, #584] ; (800f290 <DrawChannel_4+0xed4>)
800f048: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f04c: b29b uxth r3, r3
800f04e: 461d mov r5, r3
800f050: 79fb ldrb r3, [r7, #7]
800f052: 4a8f ldr r2, [pc, #572] ; (800f290 <DrawChannel_4+0xed4>)
800f054: 015b lsls r3, r3, #5
800f056: 4413 add r3, r2
800f058: 3304 adds r3, #4
800f05a: 881b ldrh r3, [r3, #0]
800f05c: b29b uxth r3, r3
800f05e: 461c mov r4, r3
800f060: 4a8f ldr r2, [pc, #572] ; (800f2a0 <DrawChannel_4+0xee4>)
800f062: 00eb lsls r3, r5, #3
800f064: 4423 add r3, r4
800f066: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800f06a: 2303 movs r3, #3
800f06c: f7f6 f8e8 bl 8005240 <BSP_LCD_DisplayStringAt>
if(pardata.LANG == RUS)
800f070: 4b87 ldr r3, [pc, #540] ; (800f290 <DrawChannel_4+0xed4>)
800f072: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f076: b29b uxth r3, r3
800f078: 2b00 cmp r3, #0
800f07a: d120 bne.n 800f0be <DrawChannel_4+0xd02>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800f07c: 79fb ldrb r3, [r7, #7]
800f07e: 4a89 ldr r2, [pc, #548] ; (800f2a4 <DrawChannel_4+0xee8>)
800f080: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800f084: 3305 adds r3, #5
800f086: b298 uxth r0, r3
800f088: 79fb ldrb r3, [r7, #7]
800f08a: 4a87 ldr r2, [pc, #540] ; (800f2a8 <DrawChannel_4+0xeec>)
800f08c: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f090: 79fb ldrb r3, [r7, #7]
800f092: 4a7f ldr r2, [pc, #508] ; (800f290 <DrawChannel_4+0xed4>)
800f094: 015b lsls r3, r3, #5
800f096: 4413 add r3, r2
800f098: 3312 adds r3, #18
800f09a: 881b ldrh r3, [r3, #0]
800f09c: b29b uxth r3, r3
800f09e: 461a mov r2, r3
800f0a0: 4982 ldr r1, [pc, #520] ; (800f2ac <DrawChannel_4+0xef0>)
800f0a2: 4613 mov r3, r2
800f0a4: 009b lsls r3, r3, #2
800f0a6: 4413 add r3, r2
800f0a8: 009a lsls r2, r3, #2
800f0aa: 4413 add r3, r2
800f0ac: 6b3a ldr r2, [r7, #48] ; 0x30
800f0ae: 4413 add r3, r2
800f0b0: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800f0b4: 2303 movs r3, #3
800f0b6: 4621 mov r1, r4
800f0b8: f7f6 f8c2 bl 8005240 <BSP_LCD_DisplayStringAt>
}
800f0bc: e31e b.n 800f6fc <DrawChannel_4+0x1340>
else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE);
800f0be: 79fb ldrb r3, [r7, #7]
800f0c0: 4a78 ldr r2, [pc, #480] ; (800f2a4 <DrawChannel_4+0xee8>)
800f0c2: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800f0c6: 3b09 subs r3, #9
800f0c8: b298 uxth r0, r3
800f0ca: 79fb ldrb r3, [r7, #7]
800f0cc: 4a76 ldr r2, [pc, #472] ; (800f2a8 <DrawChannel_4+0xeec>)
800f0ce: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f0d2: 79fb ldrb r3, [r7, #7]
800f0d4: 4a6e ldr r2, [pc, #440] ; (800f290 <DrawChannel_4+0xed4>)
800f0d6: 015b lsls r3, r3, #5
800f0d8: 4413 add r3, r2
800f0da: 3312 adds r3, #18
800f0dc: 881b ldrh r3, [r3, #0]
800f0de: b29b uxth r3, r3
800f0e0: 461a mov r2, r3
800f0e2: 4973 ldr r1, [pc, #460] ; (800f2b0 <DrawChannel_4+0xef4>)
800f0e4: 4613 mov r3, r2
800f0e6: 009b lsls r3, r3, #2
800f0e8: 4413 add r3, r2
800f0ea: 009a lsls r2, r3, #2
800f0ec: 4413 add r3, r2
800f0ee: 6b3a ldr r2, [r7, #48] ; 0x30
800f0f0: 4413 add r3, r2
800f0f2: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800f0f6: 2303 movs r3, #3
800f0f8: 4621 mov r1, r4
800f0fa: f7f6 f8a1 bl 8005240 <BSP_LCD_DisplayStringAt>
}
800f0fe: e2fd b.n 800f6fc <DrawChannel_4+0x1340>
if(menupos == Lp)
800f100: 4b6c ldr r3, [pc, #432] ; (800f2b4 <DrawChannel_4+0xef8>)
800f102: 781b ldrb r3, [r3, #0]
800f104: b2db uxtb r3, r3
800f106: 2b01 cmp r3, #1
800f108: f040 8164 bne.w 800f3d4 <DrawChannel_4+0x1018>
if(ACTIVE_CHANNEL == ch)
800f10c: 79fa ldrb r2, [r7, #7]
800f10e: 4b6a ldr r3, [pc, #424] ; (800f2b8 <DrawChannel_4+0xefc>)
800f110: 681b ldr r3, [r3, #0]
800f112: 429a cmp r2, r3
800f114: f040 80d4 bne.w 800f2c0 <DrawChannel_4+0xf04>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800f118: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f11c: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800f120: f7f5 ffc8 bl 80050b4 <LCD_SetColors>
if(focused)
800f124: 4b65 ldr r3, [pc, #404] ; (800f2bc <DrawChannel_4+0xf00>)
800f126: 781b ldrb r3, [r3, #0]
800f128: b2db uxtb r3, r3
800f12a: 2b00 cmp r3, #0
800f12c: d020 beq.n 800f170 <DrawChannel_4+0xdb4>
if(blk)
800f12e: 683b ldr r3, [r7, #0]
800f130: 2b00 cmp r3, #0
800f132: d03a beq.n 800f1aa <DrawChannel_4+0xdee>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800f134: 79fb ldrb r3, [r7, #7]
800f136: 4a58 ldr r2, [pc, #352] ; (800f298 <DrawChannel_4+0xedc>)
800f138: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800f13c: 79fb ldrb r3, [r7, #7]
800f13e: 4a57 ldr r2, [pc, #348] ; (800f29c <DrawChannel_4+0xee0>)
800f140: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800f144: 4b52 ldr r3, [pc, #328] ; (800f290 <DrawChannel_4+0xed4>)
800f146: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f14a: b29b uxth r3, r3
800f14c: 461d mov r5, r3
800f14e: 79fb ldrb r3, [r7, #7]
800f150: 4a4f ldr r2, [pc, #316] ; (800f290 <DrawChannel_4+0xed4>)
800f152: 015b lsls r3, r3, #5
800f154: 4413 add r3, r2
800f156: 3304 adds r3, #4
800f158: 881b ldrh r3, [r3, #0]
800f15a: b29b uxth r3, r3
800f15c: 461c mov r4, r3
800f15e: 4a50 ldr r2, [pc, #320] ; (800f2a0 <DrawChannel_4+0xee4>)
800f160: 00eb lsls r3, r5, #3
800f162: 4423 add r3, r4
800f164: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800f168: 2303 movs r3, #3
800f16a: f7f6 f869 bl 8005240 <BSP_LCD_DisplayStringAt>
800f16e: e01c b.n 800f1aa <DrawChannel_4+0xdee>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800f170: 79fb ldrb r3, [r7, #7]
800f172: 4a49 ldr r2, [pc, #292] ; (800f298 <DrawChannel_4+0xedc>)
800f174: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800f178: 79fb ldrb r3, [r7, #7]
800f17a: 4a48 ldr r2, [pc, #288] ; (800f29c <DrawChannel_4+0xee0>)
800f17c: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800f180: 4b43 ldr r3, [pc, #268] ; (800f290 <DrawChannel_4+0xed4>)
800f182: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f186: b29b uxth r3, r3
800f188: 461d mov r5, r3
800f18a: 79fb ldrb r3, [r7, #7]
800f18c: 4a40 ldr r2, [pc, #256] ; (800f290 <DrawChannel_4+0xed4>)
800f18e: 015b lsls r3, r3, #5
800f190: 4413 add r3, r2
800f192: 3304 adds r3, #4
800f194: 881b ldrh r3, [r3, #0]
800f196: b29b uxth r3, r3
800f198: 461c mov r4, r3
800f19a: 4a41 ldr r2, [pc, #260] ; (800f2a0 <DrawChannel_4+0xee4>)
800f19c: 00eb lsls r3, r5, #3
800f19e: 4423 add r3, r4
800f1a0: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800f1a4: 2303 movs r3, #3
800f1a6: f7f6 f84b bl 8005240 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800f1aa: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f1ae: 4835 ldr r0, [pc, #212] ; (800f284 <DrawChannel_4+0xec8>)
800f1b0: f7f5 ff80 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800f1b4: 79fb ldrb r3, [r7, #7]
800f1b6: 4a34 ldr r2, [pc, #208] ; (800f288 <DrawChannel_4+0xecc>)
800f1b8: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800f1bc: 79fb ldrb r3, [r7, #7]
800f1be: 4a33 ldr r2, [pc, #204] ; (800f28c <DrawChannel_4+0xed0>)
800f1c0: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f1c4: 4b32 ldr r3, [pc, #200] ; (800f290 <DrawChannel_4+0xed4>)
800f1c6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f1ca: b29b uxth r3, r3
800f1cc: 4619 mov r1, r3
800f1ce: 79fb ldrb r3, [r7, #7]
800f1d0: 4a2f ldr r2, [pc, #188] ; (800f290 <DrawChannel_4+0xed4>)
800f1d2: 015b lsls r3, r3, #5
800f1d4: 4413 add r3, r2
800f1d6: 3302 adds r3, #2
800f1d8: 881b ldrh r3, [r3, #0]
800f1da: b29b uxth r3, r3
800f1dc: 461d mov r5, r3
800f1de: 4a2d ldr r2, [pc, #180] ; (800f294 <DrawChannel_4+0xed8>)
800f1e0: 460b mov r3, r1
800f1e2: 009b lsls r3, r3, #2
800f1e4: 440b add r3, r1
800f1e6: 442b add r3, r5
800f1e8: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800f1ec: 2303 movs r3, #3
800f1ee: 4621 mov r1, r4
800f1f0: f7f6 f826 bl 8005240 <BSP_LCD_DisplayStringAt>
if(pardata.LANG == RUS)
800f1f4: 4b26 ldr r3, [pc, #152] ; (800f290 <DrawChannel_4+0xed4>)
800f1f6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f1fa: b29b uxth r3, r3
800f1fc: 2b00 cmp r3, #0
800f1fe: d120 bne.n 800f242 <DrawChannel_4+0xe86>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800f200: 79fb ldrb r3, [r7, #7]
800f202: 4a28 ldr r2, [pc, #160] ; (800f2a4 <DrawChannel_4+0xee8>)
800f204: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800f208: 3305 adds r3, #5
800f20a: b298 uxth r0, r3
800f20c: 79fb ldrb r3, [r7, #7]
800f20e: 4a26 ldr r2, [pc, #152] ; (800f2a8 <DrawChannel_4+0xeec>)
800f210: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f214: 79fb ldrb r3, [r7, #7]
800f216: 4a1e ldr r2, [pc, #120] ; (800f290 <DrawChannel_4+0xed4>)
800f218: 015b lsls r3, r3, #5
800f21a: 4413 add r3, r2
800f21c: 3312 adds r3, #18
800f21e: 881b ldrh r3, [r3, #0]
800f220: b29b uxth r3, r3
800f222: 461a mov r2, r3
800f224: 4921 ldr r1, [pc, #132] ; (800f2ac <DrawChannel_4+0xef0>)
800f226: 4613 mov r3, r2
800f228: 009b lsls r3, r3, #2
800f22a: 4413 add r3, r2
800f22c: 009a lsls r2, r3, #2
800f22e: 4413 add r3, r2
800f230: 6b3a ldr r2, [r7, #48] ; 0x30
800f232: 4413 add r3, r2
800f234: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800f238: 2303 movs r3, #3
800f23a: 4621 mov r1, r4
800f23c: f7f6 f800 bl 8005240 <BSP_LCD_DisplayStringAt>
}
800f240: e25c b.n 800f6fc <DrawChannel_4+0x1340>
else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE);
800f242: 79fb ldrb r3, [r7, #7]
800f244: 4a17 ldr r2, [pc, #92] ; (800f2a4 <DrawChannel_4+0xee8>)
800f246: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800f24a: 3b09 subs r3, #9
800f24c: b298 uxth r0, r3
800f24e: 79fb ldrb r3, [r7, #7]
800f250: 4a15 ldr r2, [pc, #84] ; (800f2a8 <DrawChannel_4+0xeec>)
800f252: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f256: 79fb ldrb r3, [r7, #7]
800f258: 4a0d ldr r2, [pc, #52] ; (800f290 <DrawChannel_4+0xed4>)
800f25a: 015b lsls r3, r3, #5
800f25c: 4413 add r3, r2
800f25e: 3312 adds r3, #18
800f260: 881b ldrh r3, [r3, #0]
800f262: b29b uxth r3, r3
800f264: 461a mov r2, r3
800f266: 4912 ldr r1, [pc, #72] ; (800f2b0 <DrawChannel_4+0xef4>)
800f268: 4613 mov r3, r2
800f26a: 009b lsls r3, r3, #2
800f26c: 4413 add r3, r2
800f26e: 009a lsls r2, r3, #2
800f270: 4413 add r3, r2
800f272: 6b3a ldr r2, [r7, #48] ; 0x30
800f274: 4413 add r3, r2
800f276: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800f27a: 2303 movs r3, #3
800f27c: 4621 mov r1, r4
800f27e: f7f5 ffdf bl 8005240 <BSP_LCD_DisplayStringAt>
}
800f282: e23b b.n 800f6fc <DrawChannel_4+0x1340>
800f284: ffd8aa57 .word 0xffd8aa57
800f288: 0801b024 .word 0x0801b024
800f28c: 0801b02c .word 0x0801b02c
800f290: 2006bb88 .word 0x2006bb88
800f294: 20020054 .word 0x20020054
800f298: 0801b034 .word 0x0801b034
800f29c: 0801b03c .word 0x0801b03c
800f2a0: 2002007c .word 0x2002007c
800f2a4: 0801b014 .word 0x0801b014
800f2a8: 0801b044 .word 0x0801b044
800f2ac: 2002013c .word 0x2002013c
800f2b0: 200204c0 .word 0x200204c0
800f2b4: 20020010 .word 0x20020010
800f2b8: 2006b948 .word 0x2006b948
800f2bc: 200208c4 .word 0x200208c4
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800f2c0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f2c4: 4888 ldr r0, [pc, #544] ; (800f4e8 <DrawChannel_4+0x112c>)
800f2c6: f7f5 fef5 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800f2ca: 79fb ldrb r3, [r7, #7]
800f2cc: 4a87 ldr r2, [pc, #540] ; (800f4ec <DrawChannel_4+0x1130>)
800f2ce: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800f2d2: 79fb ldrb r3, [r7, #7]
800f2d4: 4a86 ldr r2, [pc, #536] ; (800f4f0 <DrawChannel_4+0x1134>)
800f2d6: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f2da: 4b86 ldr r3, [pc, #536] ; (800f4f4 <DrawChannel_4+0x1138>)
800f2dc: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f2e0: b29b uxth r3, r3
800f2e2: 4619 mov r1, r3
800f2e4: 79fb ldrb r3, [r7, #7]
800f2e6: 4a83 ldr r2, [pc, #524] ; (800f4f4 <DrawChannel_4+0x1138>)
800f2e8: 015b lsls r3, r3, #5
800f2ea: 4413 add r3, r2
800f2ec: 3302 adds r3, #2
800f2ee: 881b ldrh r3, [r3, #0]
800f2f0: b29b uxth r3, r3
800f2f2: 461d mov r5, r3
800f2f4: 4a80 ldr r2, [pc, #512] ; (800f4f8 <DrawChannel_4+0x113c>)
800f2f6: 460b mov r3, r1
800f2f8: 009b lsls r3, r3, #2
800f2fa: 440b add r3, r1
800f2fc: 442b add r3, r5
800f2fe: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800f302: 2303 movs r3, #3
800f304: 4621 mov r1, r4
800f306: f7f5 ff9b bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800f30a: 79fb ldrb r3, [r7, #7]
800f30c: 4a7b ldr r2, [pc, #492] ; (800f4fc <DrawChannel_4+0x1140>)
800f30e: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800f312: 79fb ldrb r3, [r7, #7]
800f314: 4a7a ldr r2, [pc, #488] ; (800f500 <DrawChannel_4+0x1144>)
800f316: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800f31a: 4b76 ldr r3, [pc, #472] ; (800f4f4 <DrawChannel_4+0x1138>)
800f31c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f320: b29b uxth r3, r3
800f322: 461d mov r5, r3
800f324: 79fb ldrb r3, [r7, #7]
800f326: 4a73 ldr r2, [pc, #460] ; (800f4f4 <DrawChannel_4+0x1138>)
800f328: 015b lsls r3, r3, #5
800f32a: 4413 add r3, r2
800f32c: 3304 adds r3, #4
800f32e: 881b ldrh r3, [r3, #0]
800f330: b29b uxth r3, r3
800f332: 461c mov r4, r3
800f334: 4a73 ldr r2, [pc, #460] ; (800f504 <DrawChannel_4+0x1148>)
800f336: 00eb lsls r3, r5, #3
800f338: 4423 add r3, r4
800f33a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800f33e: 2303 movs r3, #3
800f340: f7f5 ff7e bl 8005240 <BSP_LCD_DisplayStringAt>
if(pardata.LANG == RUS)
800f344: 4b6b ldr r3, [pc, #428] ; (800f4f4 <DrawChannel_4+0x1138>)
800f346: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f34a: b29b uxth r3, r3
800f34c: 2b00 cmp r3, #0
800f34e: d120 bne.n 800f392 <DrawChannel_4+0xfd6>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800f350: 79fb ldrb r3, [r7, #7]
800f352: 4a6d ldr r2, [pc, #436] ; (800f508 <DrawChannel_4+0x114c>)
800f354: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800f358: 3305 adds r3, #5
800f35a: b298 uxth r0, r3
800f35c: 79fb ldrb r3, [r7, #7]
800f35e: 4a6b ldr r2, [pc, #428] ; (800f50c <DrawChannel_4+0x1150>)
800f360: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f364: 79fb ldrb r3, [r7, #7]
800f366: 4a63 ldr r2, [pc, #396] ; (800f4f4 <DrawChannel_4+0x1138>)
800f368: 015b lsls r3, r3, #5
800f36a: 4413 add r3, r2
800f36c: 3312 adds r3, #18
800f36e: 881b ldrh r3, [r3, #0]
800f370: b29b uxth r3, r3
800f372: 461a mov r2, r3
800f374: 4966 ldr r1, [pc, #408] ; (800f510 <DrawChannel_4+0x1154>)
800f376: 4613 mov r3, r2
800f378: 009b lsls r3, r3, #2
800f37a: 4413 add r3, r2
800f37c: 009a lsls r2, r3, #2
800f37e: 4413 add r3, r2
800f380: 6b3a ldr r2, [r7, #48] ; 0x30
800f382: 4413 add r3, r2
800f384: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800f388: 2303 movs r3, #3
800f38a: 4621 mov r1, r4
800f38c: f7f5 ff58 bl 8005240 <BSP_LCD_DisplayStringAt>
}
800f390: e1b4 b.n 800f6fc <DrawChannel_4+0x1340>
else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE);
800f392: 79fb ldrb r3, [r7, #7]
800f394: 4a5c ldr r2, [pc, #368] ; (800f508 <DrawChannel_4+0x114c>)
800f396: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800f39a: 3b09 subs r3, #9
800f39c: b298 uxth r0, r3
800f39e: 79fb ldrb r3, [r7, #7]
800f3a0: 4a5a ldr r2, [pc, #360] ; (800f50c <DrawChannel_4+0x1150>)
800f3a2: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f3a6: 79fb ldrb r3, [r7, #7]
800f3a8: 4a52 ldr r2, [pc, #328] ; (800f4f4 <DrawChannel_4+0x1138>)
800f3aa: 015b lsls r3, r3, #5
800f3ac: 4413 add r3, r2
800f3ae: 3312 adds r3, #18
800f3b0: 881b ldrh r3, [r3, #0]
800f3b2: b29b uxth r3, r3
800f3b4: 461a mov r2, r3
800f3b6: 4957 ldr r1, [pc, #348] ; (800f514 <DrawChannel_4+0x1158>)
800f3b8: 4613 mov r3, r2
800f3ba: 009b lsls r3, r3, #2
800f3bc: 4413 add r3, r2
800f3be: 009a lsls r2, r3, #2
800f3c0: 4413 add r3, r2
800f3c2: 6b3a ldr r2, [r7, #48] ; 0x30
800f3c4: 4413 add r3, r2
800f3c6: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800f3ca: 2303 movs r3, #3
800f3cc: 4621 mov r1, r4
800f3ce: f7f5 ff37 bl 8005240 <BSP_LCD_DisplayStringAt>
}
800f3d2: e193 b.n 800f6fc <DrawChannel_4+0x1340>
if(menupos == Out)
800f3d4: 4b50 ldr r3, [pc, #320] ; (800f518 <DrawChannel_4+0x115c>)
800f3d6: 781b ldrb r3, [r3, #0]
800f3d8: b2db uxtb r3, r3
800f3da: 2b02 cmp r3, #2
800f3dc: f040 818e bne.w 800f6fc <DrawChannel_4+0x1340>
if(ACTIVE_CHANNEL == ch)
800f3e0: 79fa ldrb r2, [r7, #7]
800f3e2: 4b4e ldr r3, [pc, #312] ; (800f51c <DrawChannel_4+0x1160>)
800f3e4: 681b ldr r3, [r3, #0]
800f3e6: 429a cmp r2, r3
800f3e8: f040 80ff bne.w 800f5ea <DrawChannel_4+0x122e>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800f3ec: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f3f0: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800f3f4: f7f5 fe5e bl 80050b4 <LCD_SetColors>
if(focused)
800f3f8: 4b49 ldr r3, [pc, #292] ; (800f520 <DrawChannel_4+0x1164>)
800f3fa: 781b ldrb r3, [r3, #0]
800f3fc: b2db uxtb r3, r3
800f3fe: 2b00 cmp r3, #0
800f400: d04b beq.n 800f49a <DrawChannel_4+0x10de>
if(blk)
800f402: 683b ldr r3, [r7, #0]
800f404: 2b00 cmp r3, #0
800f406: f000 80ad beq.w 800f564 <DrawChannel_4+0x11a8>
if(pardata.LANG == RUS)
800f40a: 4b3a ldr r3, [pc, #232] ; (800f4f4 <DrawChannel_4+0x1138>)
800f40c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f410: b29b uxth r3, r3
800f412: 2b00 cmp r3, #0
800f414: d120 bne.n 800f458 <DrawChannel_4+0x109c>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800f416: 79fb ldrb r3, [r7, #7]
800f418: 4a3b ldr r2, [pc, #236] ; (800f508 <DrawChannel_4+0x114c>)
800f41a: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800f41e: 3305 adds r3, #5
800f420: b298 uxth r0, r3
800f422: 79fb ldrb r3, [r7, #7]
800f424: 4a39 ldr r2, [pc, #228] ; (800f50c <DrawChannel_4+0x1150>)
800f426: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f42a: 79fb ldrb r3, [r7, #7]
800f42c: 4a31 ldr r2, [pc, #196] ; (800f4f4 <DrawChannel_4+0x1138>)
800f42e: 015b lsls r3, r3, #5
800f430: 4413 add r3, r2
800f432: 3312 adds r3, #18
800f434: 881b ldrh r3, [r3, #0]
800f436: b29b uxth r3, r3
800f438: 461a mov r2, r3
800f43a: 4935 ldr r1, [pc, #212] ; (800f510 <DrawChannel_4+0x1154>)
800f43c: 4613 mov r3, r2
800f43e: 009b lsls r3, r3, #2
800f440: 4413 add r3, r2
800f442: 009a lsls r2, r3, #2
800f444: 4413 add r3, r2
800f446: 6b3a ldr r2, [r7, #48] ; 0x30
800f448: 4413 add r3, r2
800f44a: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800f44e: 2303 movs r3, #3
800f450: 4621 mov r1, r4
800f452: f7f5 fef5 bl 8005240 <BSP_LCD_DisplayStringAt>
800f456: e085 b.n 800f564 <DrawChannel_4+0x11a8>
else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE);
800f458: 79fb ldrb r3, [r7, #7]
800f45a: 4a2b ldr r2, [pc, #172] ; (800f508 <DrawChannel_4+0x114c>)
800f45c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800f460: 3b09 subs r3, #9
800f462: b298 uxth r0, r3
800f464: 79fb ldrb r3, [r7, #7]
800f466: 4a29 ldr r2, [pc, #164] ; (800f50c <DrawChannel_4+0x1150>)
800f468: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f46c: 79fb ldrb r3, [r7, #7]
800f46e: 4a21 ldr r2, [pc, #132] ; (800f4f4 <DrawChannel_4+0x1138>)
800f470: 015b lsls r3, r3, #5
800f472: 4413 add r3, r2
800f474: 3312 adds r3, #18
800f476: 881b ldrh r3, [r3, #0]
800f478: b29b uxth r3, r3
800f47a: 461a mov r2, r3
800f47c: 4925 ldr r1, [pc, #148] ; (800f514 <DrawChannel_4+0x1158>)
800f47e: 4613 mov r3, r2
800f480: 009b lsls r3, r3, #2
800f482: 4413 add r3, r2
800f484: 009a lsls r2, r3, #2
800f486: 4413 add r3, r2
800f488: 6b3a ldr r2, [r7, #48] ; 0x30
800f48a: 4413 add r3, r2
800f48c: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800f490: 2303 movs r3, #3
800f492: 4621 mov r1, r4
800f494: f7f5 fed4 bl 8005240 <BSP_LCD_DisplayStringAt>
800f498: e064 b.n 800f564 <DrawChannel_4+0x11a8>
if(pardata.LANG == RUS)
800f49a: 4b16 ldr r3, [pc, #88] ; (800f4f4 <DrawChannel_4+0x1138>)
800f49c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f4a0: b29b uxth r3, r3
800f4a2: 2b00 cmp r3, #0
800f4a4: d13e bne.n 800f524 <DrawChannel_4+0x1168>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800f4a6: 79fb ldrb r3, [r7, #7]
800f4a8: 4a17 ldr r2, [pc, #92] ; (800f508 <DrawChannel_4+0x114c>)
800f4aa: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800f4ae: 3305 adds r3, #5
800f4b0: b298 uxth r0, r3
800f4b2: 79fb ldrb r3, [r7, #7]
800f4b4: 4a15 ldr r2, [pc, #84] ; (800f50c <DrawChannel_4+0x1150>)
800f4b6: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f4ba: 79fb ldrb r3, [r7, #7]
800f4bc: 4a0d ldr r2, [pc, #52] ; (800f4f4 <DrawChannel_4+0x1138>)
800f4be: 015b lsls r3, r3, #5
800f4c0: 4413 add r3, r2
800f4c2: 3312 adds r3, #18
800f4c4: 881b ldrh r3, [r3, #0]
800f4c6: b29b uxth r3, r3
800f4c8: 461a mov r2, r3
800f4ca: 4911 ldr r1, [pc, #68] ; (800f510 <DrawChannel_4+0x1154>)
800f4cc: 4613 mov r3, r2
800f4ce: 009b lsls r3, r3, #2
800f4d0: 4413 add r3, r2
800f4d2: 009a lsls r2, r3, #2
800f4d4: 4413 add r3, r2
800f4d6: 6b3a ldr r2, [r7, #48] ; 0x30
800f4d8: 4413 add r3, r2
800f4da: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800f4de: 2303 movs r3, #3
800f4e0: 4621 mov r1, r4
800f4e2: f7f5 fead bl 8005240 <BSP_LCD_DisplayStringAt>
800f4e6: e03d b.n 800f564 <DrawChannel_4+0x11a8>
800f4e8: ffd8aa57 .word 0xffd8aa57
800f4ec: 0801b024 .word 0x0801b024
800f4f0: 0801b02c .word 0x0801b02c
800f4f4: 2006bb88 .word 0x2006bb88
800f4f8: 20020054 .word 0x20020054
800f4fc: 0801b034 .word 0x0801b034
800f500: 0801b03c .word 0x0801b03c
800f504: 2002007c .word 0x2002007c
800f508: 0801b014 .word 0x0801b014
800f50c: 0801b044 .word 0x0801b044
800f510: 2002013c .word 0x2002013c
800f514: 200204c0 .word 0x200204c0
800f518: 20020010 .word 0x20020010
800f51c: 2006b948 .word 0x2006b948
800f520: 200208c4 .word 0x200208c4
else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE);
800f524: 79fb ldrb r3, [r7, #7]
800f526: 4a77 ldr r2, [pc, #476] ; (800f704 <DrawChannel_4+0x1348>)
800f528: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800f52c: 3b09 subs r3, #9
800f52e: b298 uxth r0, r3
800f530: 79fb ldrb r3, [r7, #7]
800f532: 4a75 ldr r2, [pc, #468] ; (800f708 <DrawChannel_4+0x134c>)
800f534: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f538: 79fb ldrb r3, [r7, #7]
800f53a: 4a74 ldr r2, [pc, #464] ; (800f70c <DrawChannel_4+0x1350>)
800f53c: 015b lsls r3, r3, #5
800f53e: 4413 add r3, r2
800f540: 3312 adds r3, #18
800f542: 881b ldrh r3, [r3, #0]
800f544: b29b uxth r3, r3
800f546: 461a mov r2, r3
800f548: 4971 ldr r1, [pc, #452] ; (800f710 <DrawChannel_4+0x1354>)
800f54a: 4613 mov r3, r2
800f54c: 009b lsls r3, r3, #2
800f54e: 4413 add r3, r2
800f550: 009a lsls r2, r3, #2
800f552: 4413 add r3, r2
800f554: 6b3a ldr r2, [r7, #48] ; 0x30
800f556: 4413 add r3, r2
800f558: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800f55c: 2303 movs r3, #3
800f55e: 4621 mov r1, r4
800f560: f7f5 fe6e bl 8005240 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800f564: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f568: 486a ldr r0, [pc, #424] ; (800f714 <DrawChannel_4+0x1358>)
800f56a: f7f5 fda3 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800f56e: 79fb ldrb r3, [r7, #7]
800f570: 4a69 ldr r2, [pc, #420] ; (800f718 <DrawChannel_4+0x135c>)
800f572: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800f576: 79fb ldrb r3, [r7, #7]
800f578: 4a68 ldr r2, [pc, #416] ; (800f71c <DrawChannel_4+0x1360>)
800f57a: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f57e: 4b63 ldr r3, [pc, #396] ; (800f70c <DrawChannel_4+0x1350>)
800f580: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f584: b29b uxth r3, r3
800f586: 4619 mov r1, r3
800f588: 79fb ldrb r3, [r7, #7]
800f58a: 4a60 ldr r2, [pc, #384] ; (800f70c <DrawChannel_4+0x1350>)
800f58c: 015b lsls r3, r3, #5
800f58e: 4413 add r3, r2
800f590: 3302 adds r3, #2
800f592: 881b ldrh r3, [r3, #0]
800f594: b29b uxth r3, r3
800f596: 461d mov r5, r3
800f598: 4a61 ldr r2, [pc, #388] ; (800f720 <DrawChannel_4+0x1364>)
800f59a: 460b mov r3, r1
800f59c: 009b lsls r3, r3, #2
800f59e: 440b add r3, r1
800f5a0: 442b add r3, r5
800f5a2: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800f5a6: 2303 movs r3, #3
800f5a8: 4621 mov r1, r4
800f5aa: f7f5 fe49 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800f5ae: 79fb ldrb r3, [r7, #7]
800f5b0: 4a5c ldr r2, [pc, #368] ; (800f724 <DrawChannel_4+0x1368>)
800f5b2: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800f5b6: 79fb ldrb r3, [r7, #7]
800f5b8: 4a5b ldr r2, [pc, #364] ; (800f728 <DrawChannel_4+0x136c>)
800f5ba: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800f5be: 4b53 ldr r3, [pc, #332] ; (800f70c <DrawChannel_4+0x1350>)
800f5c0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f5c4: b29b uxth r3, r3
800f5c6: 461d mov r5, r3
800f5c8: 79fb ldrb r3, [r7, #7]
800f5ca: 4a50 ldr r2, [pc, #320] ; (800f70c <DrawChannel_4+0x1350>)
800f5cc: 015b lsls r3, r3, #5
800f5ce: 4413 add r3, r2
800f5d0: 3304 adds r3, #4
800f5d2: 881b ldrh r3, [r3, #0]
800f5d4: b29b uxth r3, r3
800f5d6: 461c mov r4, r3
800f5d8: 4a54 ldr r2, [pc, #336] ; (800f72c <DrawChannel_4+0x1370>)
800f5da: 00eb lsls r3, r5, #3
800f5dc: 4423 add r3, r4
800f5de: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800f5e2: 2303 movs r3, #3
800f5e4: f7f5 fe2c bl 8005240 <BSP_LCD_DisplayStringAt>
}
800f5e8: e088 b.n 800f6fc <DrawChannel_4+0x1340>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800f5ea: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f5ee: 4849 ldr r0, [pc, #292] ; (800f714 <DrawChannel_4+0x1358>)
800f5f0: f7f5 fd60 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800f5f4: 79fb ldrb r3, [r7, #7]
800f5f6: 4a48 ldr r2, [pc, #288] ; (800f718 <DrawChannel_4+0x135c>)
800f5f8: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800f5fc: 79fb ldrb r3, [r7, #7]
800f5fe: 4a47 ldr r2, [pc, #284] ; (800f71c <DrawChannel_4+0x1360>)
800f600: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f604: 4b41 ldr r3, [pc, #260] ; (800f70c <DrawChannel_4+0x1350>)
800f606: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f60a: b29b uxth r3, r3
800f60c: 4619 mov r1, r3
800f60e: 79fb ldrb r3, [r7, #7]
800f610: 4a3e ldr r2, [pc, #248] ; (800f70c <DrawChannel_4+0x1350>)
800f612: 015b lsls r3, r3, #5
800f614: 4413 add r3, r2
800f616: 3302 adds r3, #2
800f618: 881b ldrh r3, [r3, #0]
800f61a: b29b uxth r3, r3
800f61c: 461d mov r5, r3
800f61e: 4a40 ldr r2, [pc, #256] ; (800f720 <DrawChannel_4+0x1364>)
800f620: 460b mov r3, r1
800f622: 009b lsls r3, r3, #2
800f624: 440b add r3, r1
800f626: 442b add r3, r5
800f628: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800f62c: 2303 movs r3, #3
800f62e: 4621 mov r1, r4
800f630: f7f5 fe06 bl 8005240 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800f634: 79fb ldrb r3, [r7, #7]
800f636: 4a3b ldr r2, [pc, #236] ; (800f724 <DrawChannel_4+0x1368>)
800f638: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800f63c: 79fb ldrb r3, [r7, #7]
800f63e: 4a3a ldr r2, [pc, #232] ; (800f728 <DrawChannel_4+0x136c>)
800f640: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800f644: 4b31 ldr r3, [pc, #196] ; (800f70c <DrawChannel_4+0x1350>)
800f646: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f64a: b29b uxth r3, r3
800f64c: 461d mov r5, r3
800f64e: 79fb ldrb r3, [r7, #7]
800f650: 4a2e ldr r2, [pc, #184] ; (800f70c <DrawChannel_4+0x1350>)
800f652: 015b lsls r3, r3, #5
800f654: 4413 add r3, r2
800f656: 3304 adds r3, #4
800f658: 881b ldrh r3, [r3, #0]
800f65a: b29b uxth r3, r3
800f65c: 461c mov r4, r3
800f65e: 4a33 ldr r2, [pc, #204] ; (800f72c <DrawChannel_4+0x1370>)
800f660: 00eb lsls r3, r5, #3
800f662: 4423 add r3, r4
800f664: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800f668: 2303 movs r3, #3
800f66a: f7f5 fde9 bl 8005240 <BSP_LCD_DisplayStringAt>
if(pardata.LANG == RUS)
800f66e: 4b27 ldr r3, [pc, #156] ; (800f70c <DrawChannel_4+0x1350>)
800f670: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f674: b29b uxth r3, r3
800f676: 2b00 cmp r3, #0
800f678: d120 bne.n 800f6bc <DrawChannel_4+0x1300>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800f67a: 79fb ldrb r3, [r7, #7]
800f67c: 4a21 ldr r2, [pc, #132] ; (800f704 <DrawChannel_4+0x1348>)
800f67e: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800f682: 3305 adds r3, #5
800f684: b298 uxth r0, r3
800f686: 79fb ldrb r3, [r7, #7]
800f688: 4a1f ldr r2, [pc, #124] ; (800f708 <DrawChannel_4+0x134c>)
800f68a: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f68e: 79fb ldrb r3, [r7, #7]
800f690: 4a1e ldr r2, [pc, #120] ; (800f70c <DrawChannel_4+0x1350>)
800f692: 015b lsls r3, r3, #5
800f694: 4413 add r3, r2
800f696: 3312 adds r3, #18
800f698: 881b ldrh r3, [r3, #0]
800f69a: b29b uxth r3, r3
800f69c: 461a mov r2, r3
800f69e: 4924 ldr r1, [pc, #144] ; (800f730 <DrawChannel_4+0x1374>)
800f6a0: 4613 mov r3, r2
800f6a2: 009b lsls r3, r3, #2
800f6a4: 4413 add r3, r2
800f6a6: 009a lsls r2, r3, #2
800f6a8: 4413 add r3, r2
800f6aa: 6b3a ldr r2, [r7, #48] ; 0x30
800f6ac: 4413 add r3, r2
800f6ae: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800f6b2: 2303 movs r3, #3
800f6b4: 4621 mov r1, r4
800f6b6: f7f5 fdc3 bl 8005240 <BSP_LCD_DisplayStringAt>
}
800f6ba: e01f b.n 800f6fc <DrawChannel_4+0x1340>
else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE);
800f6bc: 79fb ldrb r3, [r7, #7]
800f6be: 4a11 ldr r2, [pc, #68] ; (800f704 <DrawChannel_4+0x1348>)
800f6c0: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800f6c4: 3b09 subs r3, #9
800f6c6: b298 uxth r0, r3
800f6c8: 79fb ldrb r3, [r7, #7]
800f6ca: 4a0f ldr r2, [pc, #60] ; (800f708 <DrawChannel_4+0x134c>)
800f6cc: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f6d0: 79fb ldrb r3, [r7, #7]
800f6d2: 4a0e ldr r2, [pc, #56] ; (800f70c <DrawChannel_4+0x1350>)
800f6d4: 015b lsls r3, r3, #5
800f6d6: 4413 add r3, r2
800f6d8: 3312 adds r3, #18
800f6da: 881b ldrh r3, [r3, #0]
800f6dc: b29b uxth r3, r3
800f6de: 461a mov r2, r3
800f6e0: 490b ldr r1, [pc, #44] ; (800f710 <DrawChannel_4+0x1354>)
800f6e2: 4613 mov r3, r2
800f6e4: 009b lsls r3, r3, #2
800f6e6: 4413 add r3, r2
800f6e8: 009a lsls r2, r3, #2
800f6ea: 4413 add r3, r2
800f6ec: 6b3a ldr r2, [r7, #48] ; 0x30
800f6ee: 4413 add r3, r2
800f6f0: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800f6f4: 2303 movs r3, #3
800f6f6: 4621 mov r1, r4
800f6f8: f7f5 fda2 bl 8005240 <BSP_LCD_DisplayStringAt>
}
800f6fc: bf00 nop
800f6fe: 3738 adds r7, #56 ; 0x38
800f700: 46bd mov sp, r7
800f702: bdb0 pop {r4, r5, r7, pc}
800f704: 0801b014 .word 0x0801b014
800f708: 0801b044 .word 0x0801b044
800f70c: 2006bb88 .word 0x2006bb88
800f710: 200204c0 .word 0x200204c0
800f714: ffd8aa57 .word 0xffd8aa57
800f718: 0801b024 .word 0x0801b024
800f71c: 0801b02c .word 0x0801b02c
800f720: 20020054 .word 0x20020054
800f724: 0801b034 .word 0x0801b034
800f728: 0801b03c .word 0x0801b03c
800f72c: 2002007c .word 0x2002007c
800f730: 2002013c .word 0x2002013c
0800f734 <DrawButtons>:
void DrawButtons(void)
{
800f734: b580 push {r7, lr}
800f736: af00 add r7, sp, #0
if(menupos == Set100)
800f738: 4ba1 ldr r3, [pc, #644] ; (800f9c0 <DrawButtons+0x28c>)
800f73a: 781b ldrb r3, [r3, #0]
800f73c: b2db uxtb r3, r3
800f73e: 2b00 cmp r3, #0
800f740: d106 bne.n 800f750 <DrawButtons+0x1c>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800f742: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f746: f04f 30ff mov.w r0, #4294967295
800f74a: f7f5 fcb3 bl 80050b4 <LCD_SetColors>
800f74e: e004 b.n 800f75a <DrawButtons+0x26>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800f750: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f754: 489b ldr r0, [pc, #620] ; (800f9c4 <DrawButtons+0x290>)
800f756: f7f5 fcad bl 80050b4 <LCD_SetColors>
BSP_LCD_FillRect(120, 40, 80, 20); //+100
800f75a: 2314 movs r3, #20
800f75c: 2250 movs r2, #80 ; 0x50
800f75e: 2128 movs r1, #40 ; 0x28
800f760: 2078 movs r0, #120 ; 0x78
800f762: f7f6 f869 bl 8005838 <BSP_LCD_FillRect>
if(menupos == Set_100)
800f766: 4b96 ldr r3, [pc, #600] ; (800f9c0 <DrawButtons+0x28c>)
800f768: 781b ldrb r3, [r3, #0]
800f76a: b2db uxtb r3, r3
800f76c: 2b01 cmp r3, #1
800f76e: d106 bne.n 800f77e <DrawButtons+0x4a>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800f770: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f774: f04f 30ff mov.w r0, #4294967295
800f778: f7f5 fc9c bl 80050b4 <LCD_SetColors>
800f77c: e004 b.n 800f788 <DrawButtons+0x54>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800f77e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f782: 4890 ldr r0, [pc, #576] ; (800f9c4 <DrawButtons+0x290>)
800f784: f7f5 fc96 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillRect(120, 65, 80, 20); //-100
800f788: 2314 movs r3, #20
800f78a: 2250 movs r2, #80 ; 0x50
800f78c: 2141 movs r1, #65 ; 0x41
800f78e: 2078 movs r0, #120 ; 0x78
800f790: f7f6 f852 bl 8005838 <BSP_LCD_FillRect>
if(menupos == Set10)
800f794: 4b8a ldr r3, [pc, #552] ; (800f9c0 <DrawButtons+0x28c>)
800f796: 781b ldrb r3, [r3, #0]
800f798: b2db uxtb r3, r3
800f79a: 2b02 cmp r3, #2
800f79c: d106 bne.n 800f7ac <DrawButtons+0x78>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800f79e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f7a2: f04f 30ff mov.w r0, #4294967295
800f7a6: f7f5 fc85 bl 80050b4 <LCD_SetColors>
800f7aa: e004 b.n 800f7b6 <DrawButtons+0x82>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800f7ac: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f7b0: 4884 ldr r0, [pc, #528] ; (800f9c4 <DrawButtons+0x290>)
800f7b2: f7f5 fc7f bl 80050b4 <LCD_SetColors>
BSP_LCD_FillRect(120, 90, 80, 20); //+10
800f7b6: 2314 movs r3, #20
800f7b8: 2250 movs r2, #80 ; 0x50
800f7ba: 215a movs r1, #90 ; 0x5a
800f7bc: 2078 movs r0, #120 ; 0x78
800f7be: f7f6 f83b bl 8005838 <BSP_LCD_FillRect>
if(menupos == Set_10)
800f7c2: 4b7f ldr r3, [pc, #508] ; (800f9c0 <DrawButtons+0x28c>)
800f7c4: 781b ldrb r3, [r3, #0]
800f7c6: b2db uxtb r3, r3
800f7c8: 2b03 cmp r3, #3
800f7ca: d106 bne.n 800f7da <DrawButtons+0xa6>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800f7cc: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f7d0: f04f 30ff mov.w r0, #4294967295
800f7d4: f7f5 fc6e bl 80050b4 <LCD_SetColors>
800f7d8: e004 b.n 800f7e4 <DrawButtons+0xb0>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800f7da: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f7de: 4879 ldr r0, [pc, #484] ; (800f9c4 <DrawButtons+0x290>)
800f7e0: f7f5 fc68 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillRect(120, 115, 80, 20); //-10
800f7e4: 2314 movs r3, #20
800f7e6: 2250 movs r2, #80 ; 0x50
800f7e8: 2173 movs r1, #115 ; 0x73
800f7ea: 2078 movs r0, #120 ; 0x78
800f7ec: f7f6 f824 bl 8005838 <BSP_LCD_FillRect>
if(menupos == Set1)
800f7f0: 4b73 ldr r3, [pc, #460] ; (800f9c0 <DrawButtons+0x28c>)
800f7f2: 781b ldrb r3, [r3, #0]
800f7f4: b2db uxtb r3, r3
800f7f6: 2b04 cmp r3, #4
800f7f8: d106 bne.n 800f808 <DrawButtons+0xd4>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800f7fa: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f7fe: f04f 30ff mov.w r0, #4294967295
800f802: f7f5 fc57 bl 80050b4 <LCD_SetColors>
800f806: e004 b.n 800f812 <DrawButtons+0xde>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800f808: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f80c: 486d ldr r0, [pc, #436] ; (800f9c4 <DrawButtons+0x290>)
800f80e: f7f5 fc51 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillRect(120, 140, 80, 20); //+1
800f812: 2314 movs r3, #20
800f814: 2250 movs r2, #80 ; 0x50
800f816: 218c movs r1, #140 ; 0x8c
800f818: 2078 movs r0, #120 ; 0x78
800f81a: f7f6 f80d bl 8005838 <BSP_LCD_FillRect>
if(menupos == Set_1)
800f81e: 4b68 ldr r3, [pc, #416] ; (800f9c0 <DrawButtons+0x28c>)
800f820: 781b ldrb r3, [r3, #0]
800f822: b2db uxtb r3, r3
800f824: 2b05 cmp r3, #5
800f826: d106 bne.n 800f836 <DrawButtons+0x102>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800f828: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f82c: f04f 30ff mov.w r0, #4294967295
800f830: f7f5 fc40 bl 80050b4 <LCD_SetColors>
800f834: e004 b.n 800f840 <DrawButtons+0x10c>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800f836: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f83a: 4862 ldr r0, [pc, #392] ; (800f9c4 <DrawButtons+0x290>)
800f83c: f7f5 fc3a bl 80050b4 <LCD_SetColors>
BSP_LCD_FillRect(120, 165, 80, 20); //-1
800f840: 2314 movs r3, #20
800f842: 2250 movs r2, #80 ; 0x50
800f844: 21a5 movs r1, #165 ; 0xa5
800f846: 2078 movs r0, #120 ; 0x78
800f848: f7f5 fff6 bl 8005838 <BSP_LCD_FillRect>
if(menupos == Next)
800f84c: 4b5c ldr r3, [pc, #368] ; (800f9c0 <DrawButtons+0x28c>)
800f84e: 781b ldrb r3, [r3, #0]
800f850: b2db uxtb r3, r3
800f852: 2b06 cmp r3, #6
800f854: d106 bne.n 800f864 <DrawButtons+0x130>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800f856: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f85a: f04f 30ff mov.w r0, #4294967295
800f85e: f7f5 fc29 bl 80050b4 <LCD_SetColors>
800f862: e004 b.n 800f86e <DrawButtons+0x13a>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800f864: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f868: 4856 ldr r0, [pc, #344] ; (800f9c4 <DrawButtons+0x290>)
800f86a: f7f5 fc23 bl 80050b4 <LCD_SetColors>
BSP_LCD_FillRect(120, 190, 80, 20); //Next
800f86e: 2314 movs r3, #20
800f870: 2250 movs r2, #80 ; 0x50
800f872: 21be movs r1, #190 ; 0xbe
800f874: 2078 movs r0, #120 ; 0x78
800f876: f7f5 ffdf bl 8005838 <BSP_LCD_FillRect>
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
if(menupos == Set100)
800f87a: 4b51 ldr r3, [pc, #324] ; (800f9c0 <DrawButtons+0x28c>)
800f87c: 781b ldrb r3, [r3, #0]
800f87e: b2db uxtb r3, r3
800f880: 2b00 cmp r3, #0
800f882: d106 bne.n 800f892 <DrawButtons+0x15e>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800f884: f04f 31ff mov.w r1, #4294967295
800f888: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f88c: f7f5 fc12 bl 80050b4 <LCD_SetColors>
800f890: e004 b.n 800f89c <DrawButtons+0x168>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800f892: 494c ldr r1, [pc, #304] ; (800f9c4 <DrawButtons+0x290>)
800f894: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f898: f7f5 fc0c bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 40+5, "+100", CENTER_MODE);
800f89c: 2301 movs r3, #1
800f89e: 4a4a ldr r2, [pc, #296] ; (800f9c8 <DrawButtons+0x294>)
800f8a0: 212d movs r1, #45 ; 0x2d
800f8a2: 20a0 movs r0, #160 ; 0xa0
800f8a4: f7f5 fccc bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Set_100)
800f8a8: 4b45 ldr r3, [pc, #276] ; (800f9c0 <DrawButtons+0x28c>)
800f8aa: 781b ldrb r3, [r3, #0]
800f8ac: b2db uxtb r3, r3
800f8ae: 2b01 cmp r3, #1
800f8b0: d106 bne.n 800f8c0 <DrawButtons+0x18c>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800f8b2: f04f 31ff mov.w r1, #4294967295
800f8b6: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f8ba: f7f5 fbfb bl 80050b4 <LCD_SetColors>
800f8be: e004 b.n 800f8ca <DrawButtons+0x196>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800f8c0: 4940 ldr r1, [pc, #256] ; (800f9c4 <DrawButtons+0x290>)
800f8c2: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f8c6: f7f5 fbf5 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 65+5, "-100", CENTER_MODE);
800f8ca: 2301 movs r3, #1
800f8cc: 4a3f ldr r2, [pc, #252] ; (800f9cc <DrawButtons+0x298>)
800f8ce: 2146 movs r1, #70 ; 0x46
800f8d0: 20a0 movs r0, #160 ; 0xa0
800f8d2: f7f5 fcb5 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Set10)
800f8d6: 4b3a ldr r3, [pc, #232] ; (800f9c0 <DrawButtons+0x28c>)
800f8d8: 781b ldrb r3, [r3, #0]
800f8da: b2db uxtb r3, r3
800f8dc: 2b02 cmp r3, #2
800f8de: d106 bne.n 800f8ee <DrawButtons+0x1ba>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800f8e0: f04f 31ff mov.w r1, #4294967295
800f8e4: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f8e8: f7f5 fbe4 bl 80050b4 <LCD_SetColors>
800f8ec: e004 b.n 800f8f8 <DrawButtons+0x1c4>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800f8ee: 4935 ldr r1, [pc, #212] ; (800f9c4 <DrawButtons+0x290>)
800f8f0: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f8f4: f7f5 fbde bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 90+5, "+10", CENTER_MODE);
800f8f8: 2301 movs r3, #1
800f8fa: 4a35 ldr r2, [pc, #212] ; (800f9d0 <DrawButtons+0x29c>)
800f8fc: 215f movs r1, #95 ; 0x5f
800f8fe: 20a0 movs r0, #160 ; 0xa0
800f900: f7f5 fc9e bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Set_10)
800f904: 4b2e ldr r3, [pc, #184] ; (800f9c0 <DrawButtons+0x28c>)
800f906: 781b ldrb r3, [r3, #0]
800f908: b2db uxtb r3, r3
800f90a: 2b03 cmp r3, #3
800f90c: d106 bne.n 800f91c <DrawButtons+0x1e8>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800f90e: f04f 31ff mov.w r1, #4294967295
800f912: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f916: f7f5 fbcd bl 80050b4 <LCD_SetColors>
800f91a: e004 b.n 800f926 <DrawButtons+0x1f2>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800f91c: 4929 ldr r1, [pc, #164] ; (800f9c4 <DrawButtons+0x290>)
800f91e: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f922: f7f5 fbc7 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 115+5, "-10", CENTER_MODE);
800f926: 2301 movs r3, #1
800f928: 4a2a ldr r2, [pc, #168] ; (800f9d4 <DrawButtons+0x2a0>)
800f92a: 2178 movs r1, #120 ; 0x78
800f92c: 20a0 movs r0, #160 ; 0xa0
800f92e: f7f5 fc87 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Set1)
800f932: 4b23 ldr r3, [pc, #140] ; (800f9c0 <DrawButtons+0x28c>)
800f934: 781b ldrb r3, [r3, #0]
800f936: b2db uxtb r3, r3
800f938: 2b04 cmp r3, #4
800f93a: d106 bne.n 800f94a <DrawButtons+0x216>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800f93c: f04f 31ff mov.w r1, #4294967295
800f940: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f944: f7f5 fbb6 bl 80050b4 <LCD_SetColors>
800f948: e004 b.n 800f954 <DrawButtons+0x220>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800f94a: 491e ldr r1, [pc, #120] ; (800f9c4 <DrawButtons+0x290>)
800f94c: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f950: f7f5 fbb0 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 140+5, "+1", CENTER_MODE);
800f954: 2301 movs r3, #1
800f956: 4a20 ldr r2, [pc, #128] ; (800f9d8 <DrawButtons+0x2a4>)
800f958: 2191 movs r1, #145 ; 0x91
800f95a: 20a0 movs r0, #160 ; 0xa0
800f95c: f7f5 fc70 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Set_1)
800f960: 4b17 ldr r3, [pc, #92] ; (800f9c0 <DrawButtons+0x28c>)
800f962: 781b ldrb r3, [r3, #0]
800f964: b2db uxtb r3, r3
800f966: 2b05 cmp r3, #5
800f968: d106 bne.n 800f978 <DrawButtons+0x244>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800f96a: f04f 31ff mov.w r1, #4294967295
800f96e: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f972: f7f5 fb9f bl 80050b4 <LCD_SetColors>
800f976: e004 b.n 800f982 <DrawButtons+0x24e>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800f978: 4912 ldr r1, [pc, #72] ; (800f9c4 <DrawButtons+0x290>)
800f97a: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f97e: f7f5 fb99 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 165+5, "-1", CENTER_MODE);
800f982: 2301 movs r3, #1
800f984: 4a15 ldr r2, [pc, #84] ; (800f9dc <DrawButtons+0x2a8>)
800f986: 21aa movs r1, #170 ; 0xaa
800f988: 20a0 movs r0, #160 ; 0xa0
800f98a: f7f5 fc59 bl 8005240 <BSP_LCD_DisplayStringAt>
if(menupos == Next)
800f98e: 4b0c ldr r3, [pc, #48] ; (800f9c0 <DrawButtons+0x28c>)
800f990: 781b ldrb r3, [r3, #0]
800f992: b2db uxtb r3, r3
800f994: 2b06 cmp r3, #6
800f996: d106 bne.n 800f9a6 <DrawButtons+0x272>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800f998: f04f 31ff mov.w r1, #4294967295
800f99c: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f9a0: f7f5 fb88 bl 80050b4 <LCD_SetColors>
800f9a4: e004 b.n 800f9b0 <DrawButtons+0x27c>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800f9a6: 4907 ldr r1, [pc, #28] ; (800f9c4 <DrawButtons+0x290>)
800f9a8: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f9ac: f7f5 fb82 bl 80050b4 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 190+5, "<22><><C4><E0><EB>", CENTER_MODE);
800f9b0: 2301 movs r3, #1
800f9b2: 4a0b ldr r2, [pc, #44] ; (800f9e0 <DrawButtons+0x2ac>)
800f9b4: 21c3 movs r1, #195 ; 0xc3
800f9b6: 20a0 movs r0, #160 ; 0xa0
800f9b8: f7f5 fc42 bl 8005240 <BSP_LCD_DisplayStringAt>
}
800f9bc: bf00 nop
800f9be: bd80 pop {r7, pc}
800f9c0: 20020010 .word 0x20020010
800f9c4: ff808080 .word 0xff808080
800f9c8: 0801879c .word 0x0801879c
800f9cc: 080187a4 .word 0x080187a4
800f9d0: 080187ac .word 0x080187ac
800f9d4: 080187b0 .word 0x080187b0
800f9d8: 080187b4 .word 0x080187b4
800f9dc: 080187b8 .word 0x080187b8
800f9e0: 080187bc .word 0x080187bc
0800f9e4 <FloatToASCII>:
char * FloatToASCII(float32_t Val, int32_t RoundTo)
{
800f9e4: b580 push {r7, lr}
800f9e6: b098 sub sp, #96 ; 0x60
800f9e8: af00 add r7, sp, #0
800f9ea: ed87 0a01 vstr s0, [r7, #4]
800f9ee: 6038 str r0, [r7, #0]
uint8_t idx = 0;
800f9f0: 2300 movs r3, #0
800f9f2: f887 305f strb.w r3, [r7, #95] ; 0x5f
int32_t i;
float32_t value, F, I;
uint32_t rnd = 0;
800f9f6: 2300 movs r3, #0
800f9f8: 653b str r3, [r7, #80] ; 0x50
uint32_t Tmp32 = 0;
800f9fa: 2300 movs r3, #0
800f9fc: 63fb str r3, [r7, #60] ; 0x3c
uint32_t Int32 = 0;
800f9fe: 2300 movs r3, #0
800fa00: 64fb str r3, [r7, #76] ; 0x4c
uint32_t Frac32 = 0;
800fa02: 2300 movs r3, #0
800fa04: 64bb str r3, [r7, #72] ; 0x48
uint32_t _I32 = 0;
800fa06: 2300 movs r3, #0
800fa08: 63bb str r3, [r7, #56] ; 0x38
uint32_t _F32 = 0;
800fa0a: 2300 movs r3, #0
800fa0c: 637b str r3, [r7, #52] ; 0x34
uint32_t d = 0, dd = 0;
800fa0e: 2300 movs r3, #0
800fa10: 647b str r3, [r7, #68] ; 0x44
800fa12: 2300 movs r3, #0
800fa14: 643b str r3, [r7, #64] ; 0x40
char tmparray[32];
volatile bool minus = false;
800fa16: 2300 movs r3, #0
800fa18: 72fb strb r3, [r7, #11]
memset(tmparray, 0, 32);
800fa1a: f107 030c add.w r3, r7, #12
800fa1e: 2220 movs r2, #32
800fa20: 2100 movs r1, #0
800fa22: 4618 mov r0, r3
800fa24: f006 fffb bl 8016a1e <memset>
memset(pString, 0, 16);
800fa28: 2210 movs r2, #16
800fa2a: 2100 movs r1, #0
800fa2c: 48b7 ldr r0, [pc, #732] ; (800fd0c <FloatToASCII+0x328>)
800fa2e: f006 fff6 bl 8016a1e <memset>
value = Val;
800fa32: 687b ldr r3, [r7, #4]
800fa34: 633b str r3, [r7, #48] ; 0x30
if(value < 0)
800fa36: edd7 7a0c vldr s15, [r7, #48] ; 0x30
800fa3a: eef5 7ac0 vcmpe.f32 s15, #0.0
800fa3e: eef1 fa10 vmrs APSR_nzcv, fpscr
800fa42: d501 bpl.n 800fa48 <FloatToASCII+0x64>
minus = true;
800fa44: 2301 movs r3, #1
800fa46: 72fb strb r3, [r7, #11]
if(Val > 99999.0)
800fa48: edd7 7a01 vldr s15, [r7, #4]
800fa4c: ed9f 7ab0 vldr s14, [pc, #704] ; 800fd10 <FloatToASCII+0x32c>
800fa50: eef4 7ac7 vcmpe.f32 s15, s14
800fa54: eef1 fa10 vmrs APSR_nzcv, fpscr
800fa58: dd30 ble.n 800fabc <FloatToASCII+0xd8>
{
if(Val < 0)
800fa5a: edd7 7a01 vldr s15, [r7, #4]
800fa5e: eef5 7ac0 vcmpe.f32 s15, #0.0
800fa62: eef1 fa10 vmrs APSR_nzcv, fpscr
800fa66: d515 bpl.n 800fa94 <FloatToASCII+0xb0>
{
pString[0] = '1';
800fa68: 4ba8 ldr r3, [pc, #672] ; (800fd0c <FloatToASCII+0x328>)
800fa6a: 2231 movs r2, #49 ; 0x31
800fa6c: 701a strb r2, [r3, #0]
pString[1] = '.';
800fa6e: 4ba7 ldr r3, [pc, #668] ; (800fd0c <FloatToASCII+0x328>)
800fa70: 222e movs r2, #46 ; 0x2e
800fa72: 705a strb r2, [r3, #1]
pString[2] = '0';
800fa74: 4ba5 ldr r3, [pc, #660] ; (800fd0c <FloatToASCII+0x328>)
800fa76: 2230 movs r2, #48 ; 0x30
800fa78: 709a strb r2, [r3, #2]
pString[3] = '0';
800fa7a: 4ba4 ldr r3, [pc, #656] ; (800fd0c <FloatToASCII+0x328>)
800fa7c: 2230 movs r2, #48 ; 0x30
800fa7e: 70da strb r2, [r3, #3]
pString[4] = '0';
800fa80: 4ba2 ldr r3, [pc, #648] ; (800fd0c <FloatToASCII+0x328>)
800fa82: 2230 movs r2, #48 ; 0x30
800fa84: 711a strb r2, [r3, #4]
pString[5] = '0';
800fa86: 4ba1 ldr r3, [pc, #644] ; (800fd0c <FloatToASCII+0x328>)
800fa88: 2230 movs r2, #48 ; 0x30
800fa8a: 715a strb r2, [r3, #5]
pString[6] = '\0';
800fa8c: 4b9f ldr r3, [pc, #636] ; (800fd0c <FloatToASCII+0x328>)
800fa8e: 2200 movs r2, #0
800fa90: 719a strb r2, [r3, #6]
800fa92: e011 b.n 800fab8 <FloatToASCII+0xd4>
}
else
{
pString[0] = '9';
800fa94: 4b9d ldr r3, [pc, #628] ; (800fd0c <FloatToASCII+0x328>)
800fa96: 2239 movs r2, #57 ; 0x39
800fa98: 701a strb r2, [r3, #0]
pString[1] = '9';
800fa9a: 4b9c ldr r3, [pc, #624] ; (800fd0c <FloatToASCII+0x328>)
800fa9c: 2239 movs r2, #57 ; 0x39
800fa9e: 705a strb r2, [r3, #1]
pString[2] = '9';
800faa0: 4b9a ldr r3, [pc, #616] ; (800fd0c <FloatToASCII+0x328>)
800faa2: 2239 movs r2, #57 ; 0x39
800faa4: 709a strb r2, [r3, #2]
pString[3] = '9';
800faa6: 4b99 ldr r3, [pc, #612] ; (800fd0c <FloatToASCII+0x328>)
800faa8: 2239 movs r2, #57 ; 0x39
800faaa: 70da strb r2, [r3, #3]
pString[4] = '9';
800faac: 4b97 ldr r3, [pc, #604] ; (800fd0c <FloatToASCII+0x328>)
800faae: 2239 movs r2, #57 ; 0x39
800fab0: 711a strb r2, [r3, #4]
pString[5] = '\0';
800fab2: 4b96 ldr r3, [pc, #600] ; (800fd0c <FloatToASCII+0x328>)
800fab4: 2200 movs r2, #0
800fab6: 715a strb r2, [r3, #5]
}
return pString;
800fab8: 4b94 ldr r3, [pc, #592] ; (800fd0c <FloatToASCII+0x328>)
800faba: e168 b.n 800fd8e <FloatToASCII+0x3aa>
}
value = ABS(Val);
800fabc: edd7 7a01 vldr s15, [r7, #4]
800fac0: eef5 7ac0 vcmpe.f32 s15, #0.0
800fac4: eef1 fa10 vmrs APSR_nzcv, fpscr
800fac8: dd02 ble.n 800fad0 <FloatToASCII+0xec>
800faca: edd7 7a01 vldr s15, [r7, #4]
800face: e003 b.n 800fad8 <FloatToASCII+0xf4>
800fad0: edd7 7a01 vldr s15, [r7, #4]
800fad4: eef1 7a67 vneg.f32 s15, s15
800fad8: edc7 7a0c vstr s15, [r7, #48] ; 0x30
rnd = ABS(RoundTo);
800fadc: 683b ldr r3, [r7, #0]
800fade: 2b00 cmp r3, #0
800fae0: bfb8 it lt
800fae2: 425b neglt r3, r3
800fae4: 653b str r3, [r7, #80] ; 0x50
if(RoundTo < 0)
800fae6: 683b ldr r3, [r7, #0]
800fae8: 2b00 cmp r3, #0
800faea: da47 bge.n 800fb7c <FloatToASCII+0x198>
{
F = modff(value, &I);
800faec: f107 032c add.w r3, r7, #44 ; 0x2c
800faf0: 4618 mov r0, r3
800faf2: ed97 0a0c vldr s0, [r7, #48] ; 0x30
800faf6: f006 ff15 bl 8016924 <modff>
800fafa: ed87 0a15 vstr s0, [r7, #84] ; 0x54
while(rnd)
800fafe: e00d b.n 800fb1c <FloatToASCII+0x138>
{
F *= 10.0f;
800fb00: edd7 7a15 vldr s15, [r7, #84] ; 0x54
800fb04: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800fb08: ee67 7a87 vmul.f32 s15, s15, s14
800fb0c: edc7 7a15 vstr s15, [r7, #84] ; 0x54
rnd--;
800fb10: 6d3b ldr r3, [r7, #80] ; 0x50
800fb12: 3b01 subs r3, #1
800fb14: 653b str r3, [r7, #80] ; 0x50
d++;
800fb16: 6c7b ldr r3, [r7, #68] ; 0x44
800fb18: 3301 adds r3, #1
800fb1a: 647b str r3, [r7, #68] ; 0x44
while(rnd)
800fb1c: 6d3b ldr r3, [r7, #80] ; 0x50
800fb1e: 2b00 cmp r3, #0
800fb20: d1ee bne.n 800fb00 <FloatToASCII+0x11c>
}
F = roundf(F);
800fb22: ed97 0a15 vldr s0, [r7, #84] ; 0x54
800fb26: f006 ff25 bl 8016974 <roundf>
800fb2a: ed87 0a15 vstr s0, [r7, #84] ; 0x54
dd = 1;
800fb2e: 2301 movs r3, #1
800fb30: 643b str r3, [r7, #64] ; 0x40
for(i = 0; i < d; i++)
800fb32: 2300 movs r3, #0
800fb34: 65bb str r3, [r7, #88] ; 0x58
800fb36: e008 b.n 800fb4a <FloatToASCII+0x166>
dd *= 10;
800fb38: 6c3a ldr r2, [r7, #64] ; 0x40
800fb3a: 4613 mov r3, r2
800fb3c: 009b lsls r3, r3, #2
800fb3e: 4413 add r3, r2
800fb40: 005b lsls r3, r3, #1
800fb42: 643b str r3, [r7, #64] ; 0x40
for(i = 0; i < d; i++)
800fb44: 6dbb ldr r3, [r7, #88] ; 0x58
800fb46: 3301 adds r3, #1
800fb48: 65bb str r3, [r7, #88] ; 0x58
800fb4a: 6dba ldr r2, [r7, #88] ; 0x58
800fb4c: 6c7b ldr r3, [r7, #68] ; 0x44
800fb4e: 429a cmp r2, r3
800fb50: d3f2 bcc.n 800fb38 <FloatToASCII+0x154>
if((uint32_t) F == dd)
800fb52: edd7 7a15 vldr s15, [r7, #84] ; 0x54
800fb56: eefc 7ae7 vcvt.u32.f32 s15, s15
800fb5a: ee17 2a90 vmov r2, s15
800fb5e: 6c3b ldr r3, [r7, #64] ; 0x40
800fb60: 429a cmp r2, r3
800fb62: d116 bne.n 800fb92 <FloatToASCII+0x1ae>
{
F = 0;
800fb64: f04f 0300 mov.w r3, #0
800fb68: 657b str r3, [r7, #84] ; 0x54
I += 1;
800fb6a: edd7 7a0b vldr s15, [r7, #44] ; 0x2c
800fb6e: eeb7 7a00 vmov.f32 s14, #112 ; 0x3f800000 1.0
800fb72: ee77 7a87 vadd.f32 s15, s15, s14
800fb76: edc7 7a0b vstr s15, [r7, #44] ; 0x2c
800fb7a: e00a b.n 800fb92 <FloatToASCII+0x1ae>
}
}
else
{
I = roundf(value);
800fb7c: ed97 0a0c vldr s0, [r7, #48] ; 0x30
800fb80: f006 fef8 bl 8016974 <roundf>
800fb84: eef0 7a40 vmov.f32 s15, s0
800fb88: edc7 7a0b vstr s15, [r7, #44] ; 0x2c
F = 0.0f;
800fb8c: f04f 0300 mov.w r3, #0
800fb90: 657b str r3, [r7, #84] ; 0x54
}
Int32 = (uint32_t) I;
800fb92: edd7 7a0b vldr s15, [r7, #44] ; 0x2c
800fb96: eefc 7ae7 vcvt.u32.f32 s15, s15
800fb9a: ee17 3a90 vmov r3, s15
800fb9e: 64fb str r3, [r7, #76] ; 0x4c
Frac32 = (uint32_t) F;
800fba0: edd7 7a15 vldr s15, [r7, #84] ; 0x54
800fba4: eefc 7ae7 vcvt.u32.f32 s15, s15
800fba8: ee17 3a90 vmov r3, s15
800fbac: 64bb str r3, [r7, #72] ; 0x48
_I32 = Int32;
800fbae: 6cfb ldr r3, [r7, #76] ; 0x4c
800fbb0: 63bb str r3, [r7, #56] ; 0x38
_F32 = Frac32;
800fbb2: 6cbb ldr r3, [r7, #72] ; 0x48
800fbb4: 637b str r3, [r7, #52] ; 0x34
idx = 0;
800fbb6: 2300 movs r3, #0
800fbb8: f887 305f strb.w r3, [r7, #95] ; 0x5f
tmparray[idx++] = '\0';
800fbbc: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800fbc0: 1c5a adds r2, r3, #1
800fbc2: f887 205f strb.w r2, [r7, #95] ; 0x5f
800fbc6: f107 0260 add.w r2, r7, #96 ; 0x60
800fbca: 4413 add r3, r2
800fbcc: 2200 movs r2, #0
800fbce: f803 2c54 strb.w r2, [r3, #-84]
if((Int32 == 0) && (Frac32 == 0))
800fbd2: 6cfb ldr r3, [r7, #76] ; 0x4c
800fbd4: 2b00 cmp r3, #0
800fbd6: d135 bne.n 800fc44 <FloatToASCII+0x260>
800fbd8: 6cbb ldr r3, [r7, #72] ; 0x48
800fbda: 2b00 cmp r3, #0
800fbdc: d132 bne.n 800fc44 <FloatToASCII+0x260>
{
if(RoundTo < 0)
800fbde: 683b ldr r3, [r7, #0]
800fbe0: 2b00 cmp r3, #0
800fbe2: da23 bge.n 800fc2c <FloatToASCII+0x248>
{
for(i = 0; i < ABS(RoundTo); i++)
800fbe4: 2300 movs r3, #0
800fbe6: 65bb str r3, [r7, #88] ; 0x58
800fbe8: e00d b.n 800fc06 <FloatToASCII+0x222>
tmparray[idx++] = '0';
800fbea: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800fbee: 1c5a adds r2, r3, #1
800fbf0: f887 205f strb.w r2, [r7, #95] ; 0x5f
800fbf4: f107 0260 add.w r2, r7, #96 ; 0x60
800fbf8: 4413 add r3, r2
800fbfa: 2230 movs r2, #48 ; 0x30
800fbfc: f803 2c54 strb.w r2, [r3, #-84]
for(i = 0; i < ABS(RoundTo); i++)
800fc00: 6dbb ldr r3, [r7, #88] ; 0x58
800fc02: 3301 adds r3, #1
800fc04: 65bb str r3, [r7, #88] ; 0x58
800fc06: 683b ldr r3, [r7, #0]
800fc08: ea83 72e3 eor.w r2, r3, r3, asr #31
800fc0c: eba2 72e3 sub.w r2, r2, r3, asr #31
800fc10: 6dbb ldr r3, [r7, #88] ; 0x58
800fc12: 429a cmp r2, r3
800fc14: dce9 bgt.n 800fbea <FloatToASCII+0x206>
tmparray[idx++] = '.';
800fc16: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800fc1a: 1c5a adds r2, r3, #1
800fc1c: f887 205f strb.w r2, [r7, #95] ; 0x5f
800fc20: f107 0260 add.w r2, r7, #96 ; 0x60
800fc24: 4413 add r3, r2
800fc26: 222e movs r2, #46 ; 0x2e
800fc28: f803 2c54 strb.w r2, [r3, #-84]
}
tmparray[idx++] = '0';
800fc2c: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800fc30: 1c5a adds r2, r3, #1
800fc32: f887 205f strb.w r2, [r7, #95] ; 0x5f
800fc36: f107 0260 add.w r2, r7, #96 ; 0x60
800fc3a: 4413 add r3, r2
800fc3c: 2230 movs r2, #48 ; 0x30
800fc3e: f803 2c54 strb.w r2, [r3, #-84]
800fc42: e089 b.n 800fd58 <FloatToASCII+0x374>
}
else
{
if(RoundTo < 0)
800fc44: 683b ldr r3, [r7, #0]
800fc46: 2b00 cmp r3, #0
800fc48: da38 bge.n 800fcbc <FloatToASCII+0x2d8>
{
for(i = 0; i < ABS(RoundTo); i++)
800fc4a: 2300 movs r3, #0
800fc4c: 65bb str r3, [r7, #88] ; 0x58
800fc4e: e022 b.n 800fc96 <FloatToASCII+0x2b2>
{
Tmp32 = Frac32;
800fc50: 6cbb ldr r3, [r7, #72] ; 0x48
800fc52: 63fb str r3, [r7, #60] ; 0x3c
Frac32 /= 10;
800fc54: 6cbb ldr r3, [r7, #72] ; 0x48
800fc56: 4a2f ldr r2, [pc, #188] ; (800fd14 <FloatToASCII+0x330>)
800fc58: fba2 2303 umull r2, r3, r2, r3
800fc5c: 08db lsrs r3, r3, #3
800fc5e: 64bb str r3, [r7, #72] ; 0x48
Tmp32 = Tmp32 - Frac32 * 10;
800fc60: 6cba ldr r2, [r7, #72] ; 0x48
800fc62: 4613 mov r3, r2
800fc64: 009b lsls r3, r3, #2
800fc66: 4413 add r3, r2
800fc68: 005b lsls r3, r3, #1
800fc6a: 461a mov r2, r3
800fc6c: 6bfb ldr r3, [r7, #60] ; 0x3c
800fc6e: 1a9b subs r3, r3, r2
800fc70: 63fb str r3, [r7, #60] ; 0x3c
tmparray[idx++] = '0' + Tmp32;
800fc72: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800fc76: 1c5a adds r2, r3, #1
800fc78: f887 205f strb.w r2, [r7, #95] ; 0x5f
800fc7c: 4619 mov r1, r3
800fc7e: 6bfb ldr r3, [r7, #60] ; 0x3c
800fc80: b2db uxtb r3, r3
800fc82: 3330 adds r3, #48 ; 0x30
800fc84: b2da uxtb r2, r3
800fc86: f107 0360 add.w r3, r7, #96 ; 0x60
800fc8a: 440b add r3, r1
800fc8c: f803 2c54 strb.w r2, [r3, #-84]
for(i = 0; i < ABS(RoundTo); i++)
800fc90: 6dbb ldr r3, [r7, #88] ; 0x58
800fc92: 3301 adds r3, #1
800fc94: 65bb str r3, [r7, #88] ; 0x58
800fc96: 683b ldr r3, [r7, #0]
800fc98: ea83 72e3 eor.w r2, r3, r3, asr #31
800fc9c: eba2 72e3 sub.w r2, r2, r3, asr #31
800fca0: 6dbb ldr r3, [r7, #88] ; 0x58
800fca2: 429a cmp r2, r3
800fca4: dcd4 bgt.n 800fc50 <FloatToASCII+0x26c>
}
tmparray[idx++] = '.';
800fca6: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800fcaa: 1c5a adds r2, r3, #1
800fcac: f887 205f strb.w r2, [r7, #95] ; 0x5f
800fcb0: f107 0260 add.w r2, r7, #96 ; 0x60
800fcb4: 4413 add r3, r2
800fcb6: 222e movs r2, #46 ; 0x2e
800fcb8: f803 2c54 strb.w r2, [r3, #-84]
}
if(Int32 != 0)
800fcbc: 6cfb ldr r3, [r7, #76] ; 0x4c
800fcbe: 2b00 cmp r3, #0
800fcc0: d02a beq.n 800fd18 <FloatToASCII+0x334>
{
while(Int32)
800fcc2: e01f b.n 800fd04 <FloatToASCII+0x320>
{
Tmp32 = Int32;
800fcc4: 6cfb ldr r3, [r7, #76] ; 0x4c
800fcc6: 63fb str r3, [r7, #60] ; 0x3c
Int32 /= 10;
800fcc8: 6cfb ldr r3, [r7, #76] ; 0x4c
800fcca: 4a12 ldr r2, [pc, #72] ; (800fd14 <FloatToASCII+0x330>)
800fccc: fba2 2303 umull r2, r3, r2, r3
800fcd0: 08db lsrs r3, r3, #3
800fcd2: 64fb str r3, [r7, #76] ; 0x4c
Tmp32 = Tmp32 - Int32 * 10;
800fcd4: 6cfa ldr r2, [r7, #76] ; 0x4c
800fcd6: 4613 mov r3, r2
800fcd8: 009b lsls r3, r3, #2
800fcda: 4413 add r3, r2
800fcdc: 005b lsls r3, r3, #1
800fcde: 461a mov r2, r3
800fce0: 6bfb ldr r3, [r7, #60] ; 0x3c
800fce2: 1a9b subs r3, r3, r2
800fce4: 63fb str r3, [r7, #60] ; 0x3c
tmparray[idx++] = '0' + Tmp32;
800fce6: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800fcea: 1c5a adds r2, r3, #1
800fcec: f887 205f strb.w r2, [r7, #95] ; 0x5f
800fcf0: 4619 mov r1, r3
800fcf2: 6bfb ldr r3, [r7, #60] ; 0x3c
800fcf4: b2db uxtb r3, r3
800fcf6: 3330 adds r3, #48 ; 0x30
800fcf8: b2da uxtb r2, r3
800fcfa: f107 0360 add.w r3, r7, #96 ; 0x60
800fcfe: 440b add r3, r1
800fd00: f803 2c54 strb.w r2, [r3, #-84]
while(Int32)
800fd04: 6cfb ldr r3, [r7, #76] ; 0x4c
800fd06: 2b00 cmp r3, #0
800fd08: d1dc bne.n 800fcc4 <FloatToASCII+0x2e0>
800fd0a: e010 b.n 800fd2e <FloatToASCII+0x34a>
800fd0c: 2006c12c .word 0x2006c12c
800fd10: 47c34f80 .word 0x47c34f80
800fd14: cccccccd .word 0xcccccccd
}
}
else
tmparray[idx++] = '0';
800fd18: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800fd1c: 1c5a adds r2, r3, #1
800fd1e: f887 205f strb.w r2, [r7, #95] ; 0x5f
800fd22: f107 0260 add.w r2, r7, #96 ; 0x60
800fd26: 4413 add r3, r2
800fd28: 2230 movs r2, #48 ; 0x30
800fd2a: f803 2c54 strb.w r2, [r3, #-84]
if(minus)
800fd2e: 7afb ldrb r3, [r7, #11]
800fd30: b2db uxtb r3, r3
800fd32: 2b00 cmp r3, #0
800fd34: d010 beq.n 800fd58 <FloatToASCII+0x374>
{
if((_I32 != 0) || (_F32 != 0))
800fd36: 6bbb ldr r3, [r7, #56] ; 0x38
800fd38: 2b00 cmp r3, #0
800fd3a: d102 bne.n 800fd42 <FloatToASCII+0x35e>
800fd3c: 6b7b ldr r3, [r7, #52] ; 0x34
800fd3e: 2b00 cmp r3, #0
800fd40: d00a beq.n 800fd58 <FloatToASCII+0x374>
tmparray[idx++] = '-';
800fd42: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800fd46: 1c5a adds r2, r3, #1
800fd48: f887 205f strb.w r2, [r7, #95] ; 0x5f
800fd4c: f107 0260 add.w r2, r7, #96 ; 0x60
800fd50: 4413 add r3, r2
800fd52: 222d movs r2, #45 ; 0x2d
800fd54: f803 2c54 strb.w r2, [r3, #-84]
}
}
for(i = 0; i < idx; i++)
800fd58: 2300 movs r3, #0
800fd5a: 65bb str r3, [r7, #88] ; 0x58
800fd5c: e011 b.n 800fd82 <FloatToASCII+0x39e>
pString[i] = tmparray[idx - i - 1];
800fd5e: f897 205f ldrb.w r2, [r7, #95] ; 0x5f
800fd62: 6dbb ldr r3, [r7, #88] ; 0x58
800fd64: 1ad3 subs r3, r2, r3
800fd66: 3b01 subs r3, #1
800fd68: f107 0260 add.w r2, r7, #96 ; 0x60
800fd6c: 4413 add r3, r2
800fd6e: f813 1c54 ldrb.w r1, [r3, #-84]
800fd72: 4a09 ldr r2, [pc, #36] ; (800fd98 <FloatToASCII+0x3b4>)
800fd74: 6dbb ldr r3, [r7, #88] ; 0x58
800fd76: 4413 add r3, r2
800fd78: 460a mov r2, r1
800fd7a: 701a strb r2, [r3, #0]
for(i = 0; i < idx; i++)
800fd7c: 6dbb ldr r3, [r7, #88] ; 0x58
800fd7e: 3301 adds r3, #1
800fd80: 65bb str r3, [r7, #88] ; 0x58
800fd82: f897 205f ldrb.w r2, [r7, #95] ; 0x5f
800fd86: 6dbb ldr r3, [r7, #88] ; 0x58
800fd88: 429a cmp r2, r3
800fd8a: dce8 bgt.n 800fd5e <FloatToASCII+0x37a>
return pString;
800fd8c: 4b02 ldr r3, [pc, #8] ; (800fd98 <FloatToASCII+0x3b4>)
}
800fd8e: 4618 mov r0, r3
800fd90: 3760 adds r7, #96 ; 0x60
800fd92: 46bd mov sp, r7
800fd94: bd80 pop {r7, pc}
800fd96: bf00 nop
800fd98: 2006c12c .word 0x2006c12c
0800fd9c <HAL_MspInit>:
/* USER CODE END 0 */
/**
* Initializes the Global MSP.
*/
void HAL_MspInit(void)
{
800fd9c: b480 push {r7}
800fd9e: b083 sub sp, #12
800fda0: af00 add r7, sp, #0
/* USER CODE BEGIN MspInit 0 */
/* USER CODE END MspInit 0 */
__HAL_RCC_PWR_CLK_ENABLE();
800fda2: 4a0f ldr r2, [pc, #60] ; (800fde0 <HAL_MspInit+0x44>)
800fda4: 4b0e ldr r3, [pc, #56] ; (800fde0 <HAL_MspInit+0x44>)
800fda6: 6c1b ldr r3, [r3, #64] ; 0x40
800fda8: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
800fdac: 6413 str r3, [r2, #64] ; 0x40
800fdae: 4b0c ldr r3, [pc, #48] ; (800fde0 <HAL_MspInit+0x44>)
800fdb0: 6c1b ldr r3, [r3, #64] ; 0x40
800fdb2: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
800fdb6: 607b str r3, [r7, #4]
800fdb8: 687b ldr r3, [r7, #4]
__HAL_RCC_SYSCFG_CLK_ENABLE();
800fdba: 4a09 ldr r2, [pc, #36] ; (800fde0 <HAL_MspInit+0x44>)
800fdbc: 4b08 ldr r3, [pc, #32] ; (800fde0 <HAL_MspInit+0x44>)
800fdbe: 6c5b ldr r3, [r3, #68] ; 0x44
800fdc0: f443 4380 orr.w r3, r3, #16384 ; 0x4000
800fdc4: 6453 str r3, [r2, #68] ; 0x44
800fdc6: 4b06 ldr r3, [pc, #24] ; (800fde0 <HAL_MspInit+0x44>)
800fdc8: 6c5b ldr r3, [r3, #68] ; 0x44
800fdca: f403 4380 and.w r3, r3, #16384 ; 0x4000
800fdce: 603b str r3, [r7, #0]
800fdd0: 683b ldr r3, [r7, #0]
/* System interrupt init*/
/* USER CODE BEGIN MspInit 1 */
/* USER CODE END MspInit 1 */
}
800fdd2: bf00 nop
800fdd4: 370c adds r7, #12
800fdd6: 46bd mov sp, r7
800fdd8: f85d 7b04 ldr.w r7, [sp], #4
800fddc: 4770 bx lr
800fdde: bf00 nop
800fde0: 40023800 .word 0x40023800
0800fde4 <NMI_Handler>:
/******************************************************************************/
/**
* @brief This function handles Non maskable interrupt.
*/
void NMI_Handler(void)
{
800fde4: b480 push {r7}
800fde6: 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)
800fde8: e7fe b.n 800fde8 <NMI_Handler+0x4>
0800fdea <HardFault_Handler>:
/**
* @brief This function handles Hard fault interrupt.
*/
void HardFault_Handler(void)
{
800fdea: b480 push {r7}
800fdec: af00 add r7, sp, #0
/* USER CODE BEGIN HardFault_IRQn 0 */
/* USER CODE END HardFault_IRQn 0 */
while (1)
800fdee: e7fe b.n 800fdee <HardFault_Handler+0x4>
0800fdf0 <MemManage_Handler>:
/**
* @brief This function handles Memory management fault.
*/
void MemManage_Handler(void)
{
800fdf0: b480 push {r7}
800fdf2: af00 add r7, sp, #0
/* USER CODE BEGIN MemoryManagement_IRQn 0 */
/* USER CODE END MemoryManagement_IRQn 0 */
while (1)
800fdf4: e7fe b.n 800fdf4 <MemManage_Handler+0x4>
0800fdf6 <BusFault_Handler>:
/**
* @brief This function handles Pre-fetch fault, memory access fault.
*/
void BusFault_Handler(void)
{
800fdf6: b480 push {r7}
800fdf8: af00 add r7, sp, #0
/* USER CODE BEGIN BusFault_IRQn 0 */
/* USER CODE END BusFault_IRQn 0 */
while (1)
800fdfa: e7fe b.n 800fdfa <BusFault_Handler+0x4>
0800fdfc <UsageFault_Handler>:
/**
* @brief This function handles Undefined instruction or illegal state.
*/
void UsageFault_Handler(void)
{
800fdfc: b480 push {r7}
800fdfe: af00 add r7, sp, #0
/* USER CODE BEGIN UsageFault_IRQn 0 */
/* USER CODE END UsageFault_IRQn 0 */
while (1)
800fe00: e7fe b.n 800fe00 <UsageFault_Handler+0x4>
0800fe02 <SVC_Handler>:
/**
* @brief This function handles System service call via SWI instruction.
*/
void SVC_Handler(void)
{
800fe02: b480 push {r7}
800fe04: af00 add r7, sp, #0
/* USER CODE END SVCall_IRQn 0 */
/* USER CODE BEGIN SVCall_IRQn 1 */
/* USER CODE END SVCall_IRQn 1 */
}
800fe06: bf00 nop
800fe08: 46bd mov sp, r7
800fe0a: f85d 7b04 ldr.w r7, [sp], #4
800fe0e: 4770 bx lr
0800fe10 <DebugMon_Handler>:
/**
* @brief This function handles Debug monitor.
*/
void DebugMon_Handler(void)
{
800fe10: b480 push {r7}
800fe12: af00 add r7, sp, #0
/* USER CODE END DebugMonitor_IRQn 0 */
/* USER CODE BEGIN DebugMonitor_IRQn 1 */
/* USER CODE END DebugMonitor_IRQn 1 */
}
800fe14: bf00 nop
800fe16: 46bd mov sp, r7
800fe18: f85d 7b04 ldr.w r7, [sp], #4
800fe1c: 4770 bx lr
0800fe1e <PendSV_Handler>:
/**
* @brief This function handles Pendable request for system service.
*/
void PendSV_Handler(void)
{
800fe1e: b480 push {r7}
800fe20: af00 add r7, sp, #0
/* USER CODE END PendSV_IRQn 0 */
/* USER CODE BEGIN PendSV_IRQn 1 */
/* USER CODE END PendSV_IRQn 1 */
}
800fe22: bf00 nop
800fe24: 46bd mov sp, r7
800fe26: f85d 7b04 ldr.w r7, [sp], #4
800fe2a: 4770 bx lr
0800fe2c <SysTick_Handler>:
/**
* @brief This function handles System tick timer.
*/
void SysTick_Handler(void)
{
800fe2c: b580 push {r7, lr}
800fe2e: af00 add r7, sp, #0
/* USER CODE BEGIN SysTick_IRQn 0 */
/* USER CODE END SysTick_IRQn 0 */
HAL_IncTick();
800fe30: f001 fe62 bl 8011af8 <HAL_IncTick>
/* USER CODE BEGIN SysTick_IRQn 1 */
/* USER CODE END SysTick_IRQn 1 */
}
800fe34: bf00 nop
800fe36: bd80 pop {r7, pc}
0800fe38 <EXTI2_IRQHandler>:
/**
* @brief This function handles EXTI line2 interrupt.
*/
void EXTI2_IRQHandler(void)
{
800fe38: b580 push {r7, lr}
800fe3a: af00 add r7, sp, #0
/* USER CODE BEGIN EXTI2_IRQn 0 */
/* USER CODE END EXTI2_IRQn 0 */
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2);
800fe3c: 2004 movs r0, #4
800fe3e: f003 f9c1 bl 80131c4 <HAL_GPIO_EXTI_IRQHandler>
/* USER CODE BEGIN EXTI2_IRQn 1 */
/* USER CODE END EXTI2_IRQn 1 */
}
800fe42: bf00 nop
800fe44: bd80 pop {r7, pc}
0800fe46 <EXTI3_IRQHandler>:
/**
* @brief This function handles EXTI line3 interrupt.
*/
void EXTI3_IRQHandler(void)
{
800fe46: b580 push {r7, lr}
800fe48: af00 add r7, sp, #0
/* USER CODE BEGIN EXTI3_IRQn 0 */
/* USER CODE END EXTI3_IRQn 0 */
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_3);
800fe4a: 2008 movs r0, #8
800fe4c: f003 f9ba bl 80131c4 <HAL_GPIO_EXTI_IRQHandler>
/* USER CODE BEGIN EXTI3_IRQn 1 */
/* USER CODE END EXTI3_IRQn 1 */
}
800fe50: bf00 nop
800fe52: bd80 pop {r7, pc}
0800fe54 <TIM7_IRQHandler>:
/**
* @brief This function handles TIM7 global interrupt.
*/
void TIM7_IRQHandler(void)
{
800fe54: b580 push {r7, lr}
800fe56: af00 add r7, sp, #0
/* USER CODE BEGIN TIM7_IRQn 0 */
/* USER CODE END TIM7_IRQn 0 */
HAL_TIM_IRQHandler(&htim7);
800fe58: 4802 ldr r0, [pc, #8] ; (800fe64 <TIM7_IRQHandler+0x10>)
800fe5a: f004 ff15 bl 8014c88 <HAL_TIM_IRQHandler>
/* USER CODE BEGIN TIM7_IRQn 1 */
/* USER CODE END TIM7_IRQn 1 */
}
800fe5e: bf00 nop
800fe60: bd80 pop {r7, pc}
800fe62: bf00 nop
800fe64: 2006c2c8 .word 0x2006c2c8
0800fe68 <DMA2_Stream1_IRQHandler>:
* @brief This function handles DMA2 stream3 global interrupt.
*/
void DMA2_Stream1_IRQHandler(void)
{
800fe68: b580 push {r7, lr}
800fe6a: af00 add r7, sp, #0
/* USER CODE BEGIN DMA2_Stream3_IRQn 0 */
/* USER CODE END DMA2_Stream3_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_adc3);
800fe6c: 4802 ldr r0, [pc, #8] ; (800fe78 <DMA2_Stream1_IRQHandler+0x10>)
800fe6e: f002 f857 bl 8011f20 <HAL_DMA_IRQHandler>
/* USER CODE BEGIN DMA2_Stream3_IRQn 1 */
/* USER CODE END DMA2_Stream3_IRQn 1 */
}
800fe72: bf00 nop
800fe74: bd80 pop {r7, pc}
800fe76: bf00 nop
800fe78: 2006b9c0 .word 0x2006b9c0
0800fe7c <DMA2_Stream4_IRQHandler>:
/**
* @brief This function handles DMA2 stream4 global interrupt.
*/
void DMA2_Stream4_IRQHandler(void)
{
800fe7c: b580 push {r7, lr}
800fe7e: af00 add r7, sp, #0
/* USER CODE BEGIN DMA2_Stream4_IRQn 0 */
/* USER CODE END DMA2_Stream4_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_adc1);
800fe80: 4802 ldr r0, [pc, #8] ; (800fe8c <DMA2_Stream4_IRQHandler+0x10>)
800fe82: f002 f84d bl 8011f20 <HAL_DMA_IRQHandler>
/* USER CODE BEGIN DMA2_Stream4_IRQn 1 */
/* USER CODE END DMA2_Stream4_IRQn 1 */
}
800fe86: bf00 nop
800fe88: bd80 pop {r7, pc}
800fe8a: bf00 nop
800fe8c: 2006bab0 .word 0x2006bab0
0800fe90 <LTDC_IRQHandler>:
/**
* @brief This function handles LTDC global interrupt.
*/
void LTDC_IRQHandler(void)
{
800fe90: b580 push {r7, lr}
800fe92: af00 add r7, sp, #0
/* USER CODE BEGIN LTDC_IRQn 0 */
/* USER CODE END LTDC_IRQn 0 */
HAL_LTDC_IRQHandler(&hLtdcHandler);
800fe94: 4802 ldr r0, [pc, #8] ; (800fea0 <LTDC_IRQHandler+0x10>)
800fe96: f003 fa7d bl 8013394 <HAL_LTDC_IRQHandler>
/* USER CODE BEGIN LTDC_IRQn 1 */
/* USER CODE END LTDC_IRQn 1 */
}
800fe9a: bf00 nop
800fe9c: bd80 pop {r7, pc}
800fe9e: bf00 nop
800fea0: 2006c054 .word 0x2006c054
0800fea4 <LTDC_ER_IRQHandler>:
/**
* @brief This function handles LTDC global error interrupt.
*/
void LTDC_ER_IRQHandler(void)
{
800fea4: b580 push {r7, lr}
800fea6: af00 add r7, sp, #0
/* USER CODE BEGIN LTDC_ER_IRQn 0 */
/* USER CODE END LTDC_ER_IRQn 0 */
HAL_LTDC_IRQHandler(&hLtdcHandler);
800fea8: 4802 ldr r0, [pc, #8] ; (800feb4 <LTDC_ER_IRQHandler+0x10>)
800feaa: f003 fa73 bl 8013394 <HAL_LTDC_IRQHandler>
/* USER CODE BEGIN LTDC_ER_IRQn 1 */
/* USER CODE END LTDC_ER_IRQn 1 */
}
800feae: bf00 nop
800feb0: bd80 pop {r7, pc}
800feb2: bf00 nop
800feb4: 2006c054 .word 0x2006c054
0800feb8 <SystemInit>:
* SystemFrequency variable.
* @param None
* @retval None
*/
void SystemInit(void)
{
800feb8: b480 push {r7}
800feba: 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 */
800febc: 4a06 ldr r2, [pc, #24] ; (800fed8 <SystemInit+0x20>)
800febe: 4b06 ldr r3, [pc, #24] ; (800fed8 <SystemInit+0x20>)
800fec0: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
800fec4: f443 0370 orr.w r3, r3, #15728640 ; 0xf00000
800fec8: 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 */
}
800fecc: bf00 nop
800fece: 46bd mov sp, r7
800fed0: f85d 7b04 ldr.w r7, [sp], #4
800fed4: 4770 bx lr
800fed6: bf00 nop
800fed8: e000ed00 .word 0xe000ed00
0800fedc <MX_TIM7_Init>:
}
/* TIM7 init function */
void MX_TIM7_Init(void)
{
800fedc: b580 push {r7, lr}
800fede: b084 sub sp, #16
800fee0: af00 add r7, sp, #0
TIM_MasterConfigTypeDef sMasterConfig;
htim7.Instance = TIM7;
800fee2: 4b16 ldr r3, [pc, #88] ; (800ff3c <MX_TIM7_Init+0x60>)
800fee4: 4a16 ldr r2, [pc, #88] ; (800ff40 <MX_TIM7_Init+0x64>)
800fee6: 601a str r2, [r3, #0]
htim7.Init.Prescaler = (10 - 1);
800fee8: 4b14 ldr r3, [pc, #80] ; (800ff3c <MX_TIM7_Init+0x60>)
800feea: 2209 movs r2, #9
800feec: 605a str r2, [r3, #4]
htim7.Init.CounterMode = TIM_COUNTERMODE_UP;
800feee: 4b13 ldr r3, [pc, #76] ; (800ff3c <MX_TIM7_Init+0x60>)
800fef0: 2200 movs r2, #0
800fef2: 609a str r2, [r3, #8]
htim7.Init.Period = (54000 - 1);
800fef4: 4b11 ldr r3, [pc, #68] ; (800ff3c <MX_TIM7_Init+0x60>)
800fef6: f24d 22ef movw r2, #53999 ; 0xd2ef
800fefa: 60da str r2, [r3, #12]
htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
800fefc: 4b0f ldr r3, [pc, #60] ; (800ff3c <MX_TIM7_Init+0x60>)
800fefe: 2200 movs r2, #0
800ff00: 619a str r2, [r3, #24]
if(HAL_TIM_Base_Init(&htim7) != HAL_OK) {
800ff02: 480e ldr r0, [pc, #56] ; (800ff3c <MX_TIM7_Init+0x60>)
800ff04: f004 fdf0 bl 8014ae8 <HAL_TIM_Base_Init>
800ff08: 4603 mov r3, r0
800ff0a: 2b00 cmp r3, #0
800ff0c: d001 beq.n 800ff12 <MX_TIM7_Init+0x36>
Error_Handler();
800ff0e: f7f6 f91f bl 8006150 <Error_Handler>
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
800ff12: 2300 movs r3, #0
800ff14: 607b str r3, [r7, #4]
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
800ff16: 2300 movs r3, #0
800ff18: 60fb str r3, [r7, #12]
if (HAL_TIMEx_MasterConfigSynchronization(&htim7, &sMasterConfig) != HAL_OK) {
800ff1a: 1d3b adds r3, r7, #4
800ff1c: 4619 mov r1, r3
800ff1e: 4807 ldr r0, [pc, #28] ; (800ff3c <MX_TIM7_Init+0x60>)
800ff20: f005 f89a bl 8015058 <HAL_TIMEx_MasterConfigSynchronization>
800ff24: 4603 mov r3, r0
800ff26: 2b00 cmp r3, #0
800ff28: d001 beq.n 800ff2e <MX_TIM7_Init+0x52>
Error_Handler();
800ff2a: f7f6 f911 bl 8006150 <Error_Handler>
}
HAL_TIM_Base_Start_IT(&htim7);
800ff2e: 4803 ldr r0, [pc, #12] ; (800ff3c <MX_TIM7_Init+0x60>)
800ff30: f004 fe32 bl 8014b98 <HAL_TIM_Base_Start_IT>
}
800ff34: bf00 nop
800ff36: 3710 adds r7, #16
800ff38: 46bd mov sp, r7
800ff3a: bd80 pop {r7, pc}
800ff3c: 2006c2c8 .word 0x2006c2c8
800ff40: 40001400 .word 0x40001400
0800ff44 <HAL_TIM_Base_MspInit>:
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
{
800ff44: b580 push {r7, lr}
800ff46: b086 sub sp, #24
800ff48: af00 add r7, sp, #0
800ff4a: 6078 str r0, [r7, #4]
if(tim_baseHandle->Instance == TIM1)
800ff4c: 687b ldr r3, [r7, #4]
800ff4e: 681b ldr r3, [r3, #0]
800ff50: 4a1f ldr r2, [pc, #124] ; (800ffd0 <HAL_TIM_Base_MspInit+0x8c>)
800ff52: 4293 cmp r3, r2
800ff54: d10c bne.n 800ff70 <HAL_TIM_Base_MspInit+0x2c>
{
__HAL_RCC_TIM1_CLK_ENABLE();
800ff56: 4a1f ldr r2, [pc, #124] ; (800ffd4 <HAL_TIM_Base_MspInit+0x90>)
800ff58: 4b1e ldr r3, [pc, #120] ; (800ffd4 <HAL_TIM_Base_MspInit+0x90>)
800ff5a: 6c5b ldr r3, [r3, #68] ; 0x44
800ff5c: f043 0301 orr.w r3, r3, #1
800ff60: 6453 str r3, [r2, #68] ; 0x44
800ff62: 4b1c ldr r3, [pc, #112] ; (800ffd4 <HAL_TIM_Base_MspInit+0x90>)
800ff64: 6c5b ldr r3, [r3, #68] ; 0x44
800ff66: f003 0301 and.w r3, r3, #1
800ff6a: 617b str r3, [r7, #20]
800ff6c: 697b ldr r3, [r7, #20]
{
__HAL_RCC_TIM7_CLK_ENABLE();
HAL_NVIC_SetPriority(TIM7_IRQn, 3, 0);
HAL_NVIC_EnableIRQ(TIM7_IRQn);
}
}
800ff6e: e02a b.n 800ffc6 <HAL_TIM_Base_MspInit+0x82>
if(tim_baseHandle->Instance == TIM5)
800ff70: 687b ldr r3, [r7, #4]
800ff72: 681b ldr r3, [r3, #0]
800ff74: 4a18 ldr r2, [pc, #96] ; (800ffd8 <HAL_TIM_Base_MspInit+0x94>)
800ff76: 4293 cmp r3, r2
800ff78: d10c bne.n 800ff94 <HAL_TIM_Base_MspInit+0x50>
__HAL_RCC_TIM5_CLK_ENABLE();
800ff7a: 4a16 ldr r2, [pc, #88] ; (800ffd4 <HAL_TIM_Base_MspInit+0x90>)
800ff7c: 4b15 ldr r3, [pc, #84] ; (800ffd4 <HAL_TIM_Base_MspInit+0x90>)
800ff7e: 6c1b ldr r3, [r3, #64] ; 0x40
800ff80: f043 0308 orr.w r3, r3, #8
800ff84: 6413 str r3, [r2, #64] ; 0x40
800ff86: 4b13 ldr r3, [pc, #76] ; (800ffd4 <HAL_TIM_Base_MspInit+0x90>)
800ff88: 6c1b ldr r3, [r3, #64] ; 0x40
800ff8a: f003 0308 and.w r3, r3, #8
800ff8e: 613b str r3, [r7, #16]
800ff90: 693b ldr r3, [r7, #16]
}
800ff92: e018 b.n 800ffc6 <HAL_TIM_Base_MspInit+0x82>
if(tim_baseHandle->Instance == TIM7)
800ff94: 687b ldr r3, [r7, #4]
800ff96: 681b ldr r3, [r3, #0]
800ff98: 4a10 ldr r2, [pc, #64] ; (800ffdc <HAL_TIM_Base_MspInit+0x98>)
800ff9a: 4293 cmp r3, r2
800ff9c: d113 bne.n 800ffc6 <HAL_TIM_Base_MspInit+0x82>
__HAL_RCC_TIM7_CLK_ENABLE();
800ff9e: 4a0d ldr r2, [pc, #52] ; (800ffd4 <HAL_TIM_Base_MspInit+0x90>)
800ffa0: 4b0c ldr r3, [pc, #48] ; (800ffd4 <HAL_TIM_Base_MspInit+0x90>)
800ffa2: 6c1b ldr r3, [r3, #64] ; 0x40
800ffa4: f043 0320 orr.w r3, r3, #32
800ffa8: 6413 str r3, [r2, #64] ; 0x40
800ffaa: 4b0a ldr r3, [pc, #40] ; (800ffd4 <HAL_TIM_Base_MspInit+0x90>)
800ffac: 6c1b ldr r3, [r3, #64] ; 0x40
800ffae: f003 0320 and.w r3, r3, #32
800ffb2: 60fb str r3, [r7, #12]
800ffb4: 68fb ldr r3, [r7, #12]
HAL_NVIC_SetPriority(TIM7_IRQn, 3, 0);
800ffb6: 2200 movs r2, #0
800ffb8: 2103 movs r1, #3
800ffba: 2037 movs r0, #55 ; 0x37
800ffbc: f001 fed9 bl 8011d72 <HAL_NVIC_SetPriority>
HAL_NVIC_EnableIRQ(TIM7_IRQn);
800ffc0: 2037 movs r0, #55 ; 0x37
800ffc2: f001 fef2 bl 8011daa <HAL_NVIC_EnableIRQ>
}
800ffc6: bf00 nop
800ffc8: 3718 adds r7, #24
800ffca: 46bd mov sp, r7
800ffcc: bd80 pop {r7, pc}
800ffce: bf00 nop
800ffd0: 40010000 .word 0x40010000
800ffd4: 40023800 .word 0x40023800
800ffd8: 40000c00 .word 0x40000c00
800ffdc: 40001400 .word 0x40001400
0800ffe0 <HAL_TIM_PeriodElapsedCallback>:
__IO uint32_t maxtime = 0;
/* USER CODE BEGIN 1 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
800ffe0: b580 push {r7, lr}
800ffe2: b084 sub sp, #16
800ffe4: af00 add r7, sp, #0
800ffe6: 6078 str r0, [r7, #4]
__IO uint16_t Data32, i;
switch((uint32_t) htim->Instance)
800ffe8: 687b ldr r3, [r7, #4]
800ffea: 681b ldr r3, [r3, #0]
800ffec: 461a mov r2, r3
800ffee: 4b3c ldr r3, [pc, #240] ; (80100e0 <HAL_TIM_PeriodElapsedCallback+0x100>)
800fff0: 429a cmp r2, r3
800fff2: d000 beq.n 800fff6 <HAL_TIM_PeriodElapsedCallback+0x16>
if(repeat)
repeat--;
break;
}
}
800fff4: e070 b.n 80100d8 <HAL_TIM_PeriodElapsedCallback+0xf8>
__HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE);
800fff6: 687b ldr r3, [r7, #4]
800fff8: 681b ldr r3, [r3, #0]
800fffa: f06f 0201 mvn.w r2, #1
800fffe: 611a str r2, [r3, #16]
if((--timerAsk) == 0)
8010000: 4b38 ldr r3, [pc, #224] ; (80100e4 <HAL_TIM_PeriodElapsedCallback+0x104>)
8010002: 881b ldrh r3, [r3, #0]
8010004: b29b uxth r3, r3
8010006: 3b01 subs r3, #1
8010008: b29b uxth r3, r3
801000a: 4a36 ldr r2, [pc, #216] ; (80100e4 <HAL_TIM_PeriodElapsedCallback+0x104>)
801000c: 4619 mov r1, r3
801000e: 8011 strh r1, [r2, #0]
8010010: 2b00 cmp r3, #0
8010012: d105 bne.n 8010020 <HAL_TIM_PeriodElapsedCallback+0x40>
timerAsk = msec1900;
8010014: 4b33 ldr r3, [pc, #204] ; (80100e4 <HAL_TIM_PeriodElapsedCallback+0x104>)
8010016: 22be movs r2, #190 ; 0xbe
8010018: 801a strh r2, [r3, #0]
FlagAsk = true;
801001a: 4b33 ldr r3, [pc, #204] ; (80100e8 <HAL_TIM_PeriodElapsedCallback+0x108>)
801001c: 2201 movs r2, #1
801001e: 701a strb r2, [r3, #0]
if(timerKeys)
8010020: 4b32 ldr r3, [pc, #200] ; (80100ec <HAL_TIM_PeriodElapsedCallback+0x10c>)
8010022: 881b ldrh r3, [r3, #0]
8010024: b29b uxth r3, r3
8010026: 2b00 cmp r3, #0
8010028: d007 beq.n 801003a <HAL_TIM_PeriodElapsedCallback+0x5a>
timerKeys--;
801002a: 4b30 ldr r3, [pc, #192] ; (80100ec <HAL_TIM_PeriodElapsedCallback+0x10c>)
801002c: 881b ldrh r3, [r3, #0]
801002e: b29b uxth r3, r3
8010030: 3b01 subs r3, #1
8010032: b29a uxth r2, r3
8010034: 4b2d ldr r3, [pc, #180] ; (80100ec <HAL_TIM_PeriodElapsedCallback+0x10c>)
8010036: 801a strh r2, [r3, #0]
8010038: e00b b.n 8010052 <HAL_TIM_PeriodElapsedCallback+0x72>
timerKeys = 2;
801003a: 4b2c ldr r3, [pc, #176] ; (80100ec <HAL_TIM_PeriodElapsedCallback+0x10c>)
801003c: 2202 movs r2, #2
801003e: 801a strh r2, [r3, #0]
if(!KEY_STATE)
8010040: 4b2b ldr r3, [pc, #172] ; (80100f0 <HAL_TIM_PeriodElapsedCallback+0x110>)
8010042: 681b ldr r3, [r3, #0]
8010044: 2b00 cmp r3, #0
8010046: d104 bne.n 8010052 <HAL_TIM_PeriodElapsedCallback+0x72>
KEY_STATE = kbhit();
8010048: f7f0 fd28 bl 8000a9c <kbhit>
801004c: 4602 mov r2, r0
801004e: 4b28 ldr r3, [pc, #160] ; (80100f0 <HAL_TIM_PeriodElapsedCallback+0x110>)
8010050: 601a str r2, [r3, #0]
if(timerRefreshScreen)
8010052: 4b28 ldr r3, [pc, #160] ; (80100f4 <HAL_TIM_PeriodElapsedCallback+0x114>)
8010054: 881b ldrh r3, [r3, #0]
8010056: b29b uxth r3, r3
8010058: 2b00 cmp r3, #0
801005a: d007 beq.n 801006c <HAL_TIM_PeriodElapsedCallback+0x8c>
timerRefreshScreen--;
801005c: 4b25 ldr r3, [pc, #148] ; (80100f4 <HAL_TIM_PeriodElapsedCallback+0x114>)
801005e: 881b ldrh r3, [r3, #0]
8010060: b29b uxth r3, r3
8010062: 3b01 subs r3, #1
8010064: b29a uxth r2, r3
8010066: 4b23 ldr r3, [pc, #140] ; (80100f4 <HAL_TIM_PeriodElapsedCallback+0x114>)
8010068: 801a strh r2, [r3, #0]
801006a: e028 b.n 80100be <HAL_TIM_PeriodElapsedCallback+0xde>
timerRefreshScreen = MSEC_REFRESH[0];
801006c: 220a movs r2, #10
801006e: 4b21 ldr r3, [pc, #132] ; (80100f4 <HAL_TIM_PeriodElapsedCallback+0x114>)
8010070: 801a strh r2, [r3, #0]
Cursorblink ^= 1;
8010072: 4b21 ldr r3, [pc, #132] ; (80100f8 <HAL_TIM_PeriodElapsedCallback+0x118>)
8010074: 781b ldrb r3, [r3, #0]
8010076: b2db uxtb r3, r3
8010078: f083 0301 eor.w r3, r3, #1
801007c: b2da uxtb r2, r3
801007e: 4b1e ldr r3, [pc, #120] ; (80100f8 <HAL_TIM_PeriodElapsedCallback+0x118>)
8010080: 701a strb r2, [r3, #0]
if(cntblink)
8010082: 4b1e ldr r3, [pc, #120] ; (80100fc <HAL_TIM_PeriodElapsedCallback+0x11c>)
8010084: 881b ldrh r3, [r3, #0]
8010086: b29b uxth r3, r3
8010088: 2b00 cmp r3, #0
801008a: d007 beq.n 801009c <HAL_TIM_PeriodElapsedCallback+0xbc>
cntblink--;
801008c: 4b1b ldr r3, [pc, #108] ; (80100fc <HAL_TIM_PeriodElapsedCallback+0x11c>)
801008e: 881b ldrh r3, [r3, #0]
8010090: b29b uxth r3, r3
8010092: 3b01 subs r3, #1
8010094: b29a uxth r2, r3
8010096: 4b19 ldr r3, [pc, #100] ; (80100fc <HAL_TIM_PeriodElapsedCallback+0x11c>)
8010098: 801a strh r2, [r3, #0]
801009a: e00d b.n 80100b8 <HAL_TIM_PeriodElapsedCallback+0xd8>
cntblink = 2;
801009c: 4b17 ldr r3, [pc, #92] ; (80100fc <HAL_TIM_PeriodElapsedCallback+0x11c>)
801009e: 2202 movs r2, #2
80100a0: 801a strh r2, [r3, #0]
blink ^= 1;
80100a2: 4b17 ldr r3, [pc, #92] ; (8010100 <HAL_TIM_PeriodElapsedCallback+0x120>)
80100a4: 781b ldrb r3, [r3, #0]
80100a6: b2db uxtb r3, r3
80100a8: f083 0301 eor.w r3, r3, #1
80100ac: b2da uxtb r2, r3
80100ae: 4b14 ldr r3, [pc, #80] ; (8010100 <HAL_TIM_PeriodElapsedCallback+0x120>)
80100b0: 701a strb r2, [r3, #0]
cntBat = 1;
80100b2: 4b14 ldr r3, [pc, #80] ; (8010104 <HAL_TIM_PeriodElapsedCallback+0x124>)
80100b4: 2201 movs r2, #1
80100b6: 701a strb r2, [r3, #0]
screen = true;
80100b8: 4b13 ldr r3, [pc, #76] ; (8010108 <HAL_TIM_PeriodElapsedCallback+0x128>)
80100ba: 2201 movs r2, #1
80100bc: 701a strb r2, [r3, #0]
if(repeat)
80100be: 4b13 ldr r3, [pc, #76] ; (801010c <HAL_TIM_PeriodElapsedCallback+0x12c>)
80100c0: 881b ldrh r3, [r3, #0]
80100c2: b29b uxth r3, r3
80100c4: 2b00 cmp r3, #0
80100c6: d006 beq.n 80100d6 <HAL_TIM_PeriodElapsedCallback+0xf6>
repeat--;
80100c8: 4b10 ldr r3, [pc, #64] ; (801010c <HAL_TIM_PeriodElapsedCallback+0x12c>)
80100ca: 881b ldrh r3, [r3, #0]
80100cc: b29b uxth r3, r3
80100ce: 3b01 subs r3, #1
80100d0: b29a uxth r2, r3
80100d2: 4b0e ldr r3, [pc, #56] ; (801010c <HAL_TIM_PeriodElapsedCallback+0x12c>)
80100d4: 801a strh r2, [r3, #0]
break;
80100d6: bf00 nop
}
80100d8: bf00 nop
80100da: 3710 adds r7, #16
80100dc: 46bd mov sp, r7
80100de: bd80 pop {r7, pc}
80100e0: 40001400 .word 0x40001400
80100e4: 2002087e .word 0x2002087e
80100e8: 2006b967 .word 0x2006b967
80100ec: 2002087a .word 0x2002087a
80100f0: 200208c0 .word 0x200208c0
80100f4: 2002087c .word 0x2002087c
80100f8: 2006b965 .word 0x2006b965
80100fc: 20020878 .word 0x20020878
8010100: 2006b964 .word 0x2006b964
8010104: 2006b966 .word 0x2006b966
8010108: 20020030 .word 0x20020030
801010c: 200208ba .word 0x200208ba
08010110 <MX_UART7_Init>:
void MX_UART7_Init(void)
{
8010110: b580 push {r7, lr}
8010112: af00 add r7, sp, #0
huart7.Instance = UART7;
8010114: 4b47 ldr r3, [pc, #284] ; (8010234 <MX_UART7_Init+0x124>)
8010116: 4a48 ldr r2, [pc, #288] ; (8010238 <MX_UART7_Init+0x128>)
8010118: 601a str r2, [r3, #0]
huart7.Init.BaudRate = BAUDRATE[pardata.BAUD];
801011a: 4b48 ldr r3, [pc, #288] ; (801023c <MX_UART7_Init+0x12c>)
801011c: f8b3 3202 ldrh.w r3, [r3, #514] ; 0x202
8010120: b29b uxth r3, r3
8010122: 461a mov r2, r3
8010124: 4b46 ldr r3, [pc, #280] ; (8010240 <MX_UART7_Init+0x130>)
8010126: f853 3022 ldr.w r3, [r3, r2, lsl #2]
801012a: 4a42 ldr r2, [pc, #264] ; (8010234 <MX_UART7_Init+0x124>)
801012c: 6053 str r3, [r2, #4]
switch(pardata.INFB)
801012e: 4b43 ldr r3, [pc, #268] ; (801023c <MX_UART7_Init+0x12c>)
8010130: f8b3 3204 ldrh.w r3, [r3, #516] ; 0x204
8010134: b29b uxth r3, r3
8010136: 2b01 cmp r3, #1
8010138: d00a beq.n 8010150 <MX_UART7_Init+0x40>
801013a: 2b02 cmp r3, #2
801013c: d011 beq.n 8010162 <MX_UART7_Init+0x52>
801013e: 2b00 cmp r3, #0
8010140: d118 bne.n 8010174 <MX_UART7_Init+0x64>
{
case 0: //NONE
huart7.Init.WordLength = UART_WORDLENGTH_8B;
8010142: 4b3c ldr r3, [pc, #240] ; (8010234 <MX_UART7_Init+0x124>)
8010144: 2200 movs r2, #0
8010146: 609a str r2, [r3, #8]
huart7.Init.Parity = UART_PARITY_NONE;
8010148: 4b3a ldr r3, [pc, #232] ; (8010234 <MX_UART7_Init+0x124>)
801014a: 2200 movs r2, #0
801014c: 611a str r2, [r3, #16]
break;
801014e: e011 b.n 8010174 <MX_UART7_Init+0x64>
case 1: //ODD
huart7.Init.WordLength = UART_WORDLENGTH_9B;
8010150: 4b38 ldr r3, [pc, #224] ; (8010234 <MX_UART7_Init+0x124>)
8010152: f44f 5280 mov.w r2, #4096 ; 0x1000
8010156: 609a str r2, [r3, #8]
huart7.Init.Parity = UART_PARITY_ODD;
8010158: 4b36 ldr r3, [pc, #216] ; (8010234 <MX_UART7_Init+0x124>)
801015a: f44f 62c0 mov.w r2, #1536 ; 0x600
801015e: 611a str r2, [r3, #16]
break;
8010160: e008 b.n 8010174 <MX_UART7_Init+0x64>
case 2: //EVEN
huart7.Init.WordLength = UART_WORDLENGTH_9B;
8010162: 4b34 ldr r3, [pc, #208] ; (8010234 <MX_UART7_Init+0x124>)
8010164: f44f 5280 mov.w r2, #4096 ; 0x1000
8010168: 609a str r2, [r3, #8]
huart7.Init.Parity = UART_PARITY_EVEN;
801016a: 4b32 ldr r3, [pc, #200] ; (8010234 <MX_UART7_Init+0x124>)
801016c: f44f 6280 mov.w r2, #1024 ; 0x400
8010170: 611a str r2, [r3, #16]
break;
8010172: bf00 nop
}
huart7.Init.StopBits = UART_STOPBITS_1;
8010174: 4b2f ldr r3, [pc, #188] ; (8010234 <MX_UART7_Init+0x124>)
8010176: 2200 movs r2, #0
8010178: 60da str r2, [r3, #12]
huart7.Init.Mode = UART_MODE_TX_RX;
801017a: 4b2e ldr r3, [pc, #184] ; (8010234 <MX_UART7_Init+0x124>)
801017c: 220c movs r2, #12
801017e: 615a str r2, [r3, #20]
huart7.Init.HwFlowCtl = UART_HWCONTROL_NONE;
8010180: 4b2c ldr r3, [pc, #176] ; (8010234 <MX_UART7_Init+0x124>)
8010182: 2200 movs r2, #0
8010184: 619a str r2, [r3, #24]
if(pardata.BAUD < 9)
8010186: 4b2d ldr r3, [pc, #180] ; (801023c <MX_UART7_Init+0x12c>)
8010188: f8b3 3202 ldrh.w r3, [r3, #514] ; 0x202
801018c: b29b uxth r3, r3
801018e: 2b08 cmp r3, #8
8010190: d803 bhi.n 801019a <MX_UART7_Init+0x8a>
huart7.Init.OverSampling = UART_OVERSAMPLING_16;
8010192: 4b28 ldr r3, [pc, #160] ; (8010234 <MX_UART7_Init+0x124>)
8010194: 2200 movs r2, #0
8010196: 61da str r2, [r3, #28]
8010198: e003 b.n 80101a2 <MX_UART7_Init+0x92>
else huart7.Init.OverSampling = UART_OVERSAMPLING_8;
801019a: 4b26 ldr r3, [pc, #152] ; (8010234 <MX_UART7_Init+0x124>)
801019c: f44f 4200 mov.w r2, #32768 ; 0x8000
80101a0: 61da str r2, [r3, #28]
huart7.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
80101a2: 4b24 ldr r3, [pc, #144] ; (8010234 <MX_UART7_Init+0x124>)
80101a4: 2200 movs r2, #0
80101a6: 621a str r2, [r3, #32]
huart7.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_SWAP_INIT;
80101a8: 4b22 ldr r3, [pc, #136] ; (8010234 <MX_UART7_Init+0x124>)
80101aa: 2208 movs r2, #8
80101ac: 625a str r2, [r3, #36] ; 0x24
huart7.AdvancedInit.Swap = UART_ADVFEATURE_SWAP_ENABLE;
80101ae: 4b21 ldr r3, [pc, #132] ; (8010234 <MX_UART7_Init+0x124>)
80101b0: f44f 4200 mov.w r2, #32768 ; 0x8000
80101b4: 635a str r2, [r3, #52] ; 0x34
if(HAL_UART_Init(&huart7) != HAL_OK) {
80101b6: 481f ldr r0, [pc, #124] ; (8010234 <MX_UART7_Init+0x124>)
80101b8: f004 fffa bl 80151b0 <HAL_UART_Init>
80101bc: 4603 mov r3, r0
80101be: 2b00 cmp r3, #0
80101c0: d001 beq.n 80101c6 <MX_UART7_Init+0xb6>
Error_Handler();
80101c2: f7f5 ffc5 bl 8006150 <Error_Handler>
}
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
80101c6: 4b1b ldr r3, [pc, #108] ; (8010234 <MX_UART7_Init+0x124>)
80101c8: 681b ldr r3, [r3, #0]
80101ca: 69db ldr r3, [r3, #28]
80101cc: f003 0308 and.w r3, r3, #8
80101d0: 2b08 cmp r3, #8
80101d2: d103 bne.n 80101dc <MX_UART7_Init+0xcc>
__HAL_UART_CLEAR_OREFLAG(&huart7);
80101d4: 4b17 ldr r3, [pc, #92] ; (8010234 <MX_UART7_Init+0x124>)
80101d6: 681b ldr r3, [r3, #0]
80101d8: 2208 movs r2, #8
80101da: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
80101dc: 4b15 ldr r3, [pc, #84] ; (8010234 <MX_UART7_Init+0x124>)
80101de: 681b ldr r3, [r3, #0]
80101e0: 69db ldr r3, [r3, #28]
80101e2: f003 0301 and.w r3, r3, #1
80101e6: 2b01 cmp r3, #1
80101e8: d103 bne.n 80101f2 <MX_UART7_Init+0xe2>
__HAL_UART_CLEAR_PEFLAG(&huart7);
80101ea: 4b12 ldr r3, [pc, #72] ; (8010234 <MX_UART7_Init+0x124>)
80101ec: 681b ldr r3, [r3, #0]
80101ee: 2201 movs r2, #1
80101f0: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
80101f2: 4b10 ldr r3, [pc, #64] ; (8010234 <MX_UART7_Init+0x124>)
80101f4: 681b ldr r3, [r3, #0]
80101f6: 69db ldr r3, [r3, #28]
80101f8: f003 0302 and.w r3, r3, #2
80101fc: 2b02 cmp r3, #2
80101fe: d103 bne.n 8010208 <MX_UART7_Init+0xf8>
__HAL_UART_CLEAR_FEFLAG(&huart7);
8010200: 4b0c ldr r3, [pc, #48] ; (8010234 <MX_UART7_Init+0x124>)
8010202: 681b ldr r3, [r3, #0]
8010204: 2202 movs r2, #2
8010206: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
8010208: 4b0a ldr r3, [pc, #40] ; (8010234 <MX_UART7_Init+0x124>)
801020a: 681b ldr r3, [r3, #0]
801020c: 69db ldr r3, [r3, #28]
801020e: f003 0304 and.w r3, r3, #4
8010212: 2b04 cmp r3, #4
8010214: d103 bne.n 801021e <MX_UART7_Init+0x10e>
__HAL_UART_CLEAR_NEFLAG(&huart7);
8010216: 4b07 ldr r3, [pc, #28] ; (8010234 <MX_UART7_Init+0x124>)
8010218: 681b ldr r3, [r3, #0]
801021a: 2204 movs r2, #4
801021c: 621a str r2, [r3, #32]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
801021e: 2200 movs r2, #0
8010220: f44f 7100 mov.w r1, #512 ; 0x200
8010224: 4807 ldr r0, [pc, #28] ; (8010244 <MX_UART7_Init+0x134>)
8010226: f002 ffb3 bl 8013190 <HAL_GPIO_WritePin>
HAL_Delay(1);
801022a: 2001 movs r0, #1
801022c: f001 fc84 bl 8011b38 <HAL_Delay>
//SET_BIT(huart7.Instance->CR1, /*USART_CR1_RXNEIE |*/ USART_CR1_PEIE);
}
8010230: bf00 nop
8010232: bd80 pop {r7, pc}
8010234: 2006c314 .word 0x2006c314
8010238: 40007800 .word 0x40007800
801023c: 2006bb88 .word 0x2006bb88
8010240: 0801b26c .word 0x0801b26c
8010244: 40021400 .word 0x40021400
08010248 <HAL_UART_MspInit>:
HAL_NVIC_DisableIRQ(UART7_IRQn);
}
void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
{
8010248: b580 push {r7, lr}
801024a: b08a sub sp, #40 ; 0x28
801024c: af00 add r7, sp, #0
801024e: 6078 str r0, [r7, #4]
GPIO_InitTypeDef GPIO_InitStruct = {0};
8010250: f107 0314 add.w r3, r7, #20
8010254: 2200 movs r2, #0
8010256: 601a str r2, [r3, #0]
8010258: 605a str r2, [r3, #4]
801025a: 609a str r2, [r3, #8]
801025c: 60da str r2, [r3, #12]
801025e: 611a str r2, [r3, #16]
if(uartHandle->Instance==UART7)
8010260: 687b ldr r3, [r7, #4]
8010262: 681b ldr r3, [r3, #0]
8010264: 4a1b ldr r2, [pc, #108] ; (80102d4 <HAL_UART_MspInit+0x8c>)
8010266: 4293 cmp r3, r2
8010268: d12f bne.n 80102ca <HAL_UART_MspInit+0x82>
{
__HAL_RCC_UART7_CLK_ENABLE();
801026a: 4a1b ldr r2, [pc, #108] ; (80102d8 <HAL_UART_MspInit+0x90>)
801026c: 4b1a ldr r3, [pc, #104] ; (80102d8 <HAL_UART_MspInit+0x90>)
801026e: 6c1b ldr r3, [r3, #64] ; 0x40
8010270: f043 4380 orr.w r3, r3, #1073741824 ; 0x40000000
8010274: 6413 str r3, [r2, #64] ; 0x40
8010276: 4b18 ldr r3, [pc, #96] ; (80102d8 <HAL_UART_MspInit+0x90>)
8010278: 6c1b ldr r3, [r3, #64] ; 0x40
801027a: f003 4380 and.w r3, r3, #1073741824 ; 0x40000000
801027e: 613b str r3, [r7, #16]
8010280: 693b ldr r3, [r7, #16]
__HAL_RCC_GPIOF_CLK_ENABLE();
8010282: 4a15 ldr r2, [pc, #84] ; (80102d8 <HAL_UART_MspInit+0x90>)
8010284: 4b14 ldr r3, [pc, #80] ; (80102d8 <HAL_UART_MspInit+0x90>)
8010286: 6b1b ldr r3, [r3, #48] ; 0x30
8010288: f043 0320 orr.w r3, r3, #32
801028c: 6313 str r3, [r2, #48] ; 0x30
801028e: 4b12 ldr r3, [pc, #72] ; (80102d8 <HAL_UART_MspInit+0x90>)
8010290: 6b1b ldr r3, [r3, #48] ; 0x30
8010292: f003 0320 and.w r3, r3, #32
8010296: 60fb str r3, [r7, #12]
8010298: 68fb ldr r3, [r7, #12]
/**UART7 GPIO Configuration
PF6 ------> UART7_RX
PF7 ------> UART7_TX
*/
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
801029a: 23c0 movs r3, #192 ; 0xc0
801029c: 617b str r3, [r7, #20]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
801029e: 2302 movs r3, #2
80102a0: 61bb str r3, [r7, #24]
GPIO_InitStruct.Pull = GPIO_NOPULL;
80102a2: 2300 movs r3, #0
80102a4: 61fb str r3, [r7, #28]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
80102a6: 2303 movs r3, #3
80102a8: 623b str r3, [r7, #32]
GPIO_InitStruct.Alternate = GPIO_AF8_UART7;
80102aa: 2308 movs r3, #8
80102ac: 627b str r3, [r7, #36] ; 0x24
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
80102ae: f107 0314 add.w r3, r7, #20
80102b2: 4619 mov r1, r3
80102b4: 4809 ldr r0, [pc, #36] ; (80102dc <HAL_UART_MspInit+0x94>)
80102b6: f002 fda9 bl 8012e0c <HAL_GPIO_Init>
/* UART7 interrupt Init */
HAL_NVIC_SetPriority(UART7_IRQn, 10, 0);
80102ba: 2200 movs r2, #0
80102bc: 210a movs r1, #10
80102be: 2052 movs r0, #82 ; 0x52
80102c0: f001 fd57 bl 8011d72 <HAL_NVIC_SetPriority>
HAL_NVIC_EnableIRQ(UART7_IRQn);
80102c4: 2052 movs r0, #82 ; 0x52
80102c6: f001 fd70 bl 8011daa <HAL_NVIC_EnableIRQ>
}
}
80102ca: bf00 nop
80102cc: 3728 adds r7, #40 ; 0x28
80102ce: 46bd mov sp, r7
80102d0: bd80 pop {r7, pc}
80102d2: bf00 nop
80102d4: 40007800 .word 0x40007800
80102d8: 40023800 .word 0x40023800
80102dc: 40021400 .word 0x40021400
080102e0 <UART7_IRQHandler>:
}
}
void UART7_IRQHandler(void)
{
80102e0: b580 push {r7, lr}
80102e2: af00 add r7, sp, #0
if((__HAL_UART_GET_IT_SOURCE(&huart7, UART_IT_RXNE)) && (__HAL_UART_GET_FLAG(&huart7, UART_FLAG_RXNE)))
80102e4: 4b26 ldr r3, [pc, #152] ; (8010380 <UART7_IRQHandler+0xa0>)
80102e6: 681b ldr r3, [r3, #0]
80102e8: 681b ldr r3, [r3, #0]
80102ea: f003 0320 and.w r3, r3, #32
80102ee: 2b00 cmp r3, #0
80102f0: d00a beq.n 8010308 <UART7_IRQHandler+0x28>
80102f2: 4b23 ldr r3, [pc, #140] ; (8010380 <UART7_IRQHandler+0xa0>)
80102f4: 681b ldr r3, [r3, #0]
80102f6: 69db ldr r3, [r3, #28]
80102f8: f003 0320 and.w r3, r3, #32
80102fc: 2b20 cmp r3, #32
80102fe: d103 bne.n 8010308 <UART7_IRQHandler+0x28>
{
HAL_UART_RxCpltCallback(&huart7);
8010300: 481f ldr r0, [pc, #124] ; (8010380 <UART7_IRQHandler+0xa0>)
8010302: f000 f8ad bl 8010460 <HAL_UART_RxCpltCallback>
8010306: e002 b.n 801030e <UART7_IRQHandler+0x2e>
}
else
{
HAL_UART_IRQHandler(&huart7);
8010308: 481d ldr r0, [pc, #116] ; (8010380 <UART7_IRQHandler+0xa0>)
801030a: f005 fa03 bl 8015714 <HAL_UART_IRQHandler>
}
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
801030e: 4b1c ldr r3, [pc, #112] ; (8010380 <UART7_IRQHandler+0xa0>)
8010310: 681b ldr r3, [r3, #0]
8010312: 69db ldr r3, [r3, #28]
8010314: f003 0308 and.w r3, r3, #8
8010318: 2b08 cmp r3, #8
801031a: d103 bne.n 8010324 <UART7_IRQHandler+0x44>
__HAL_UART_CLEAR_OREFLAG(&huart7);
801031c: 4b18 ldr r3, [pc, #96] ; (8010380 <UART7_IRQHandler+0xa0>)
801031e: 681b ldr r3, [r3, #0]
8010320: 2208 movs r2, #8
8010322: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
8010324: 4b16 ldr r3, [pc, #88] ; (8010380 <UART7_IRQHandler+0xa0>)
8010326: 681b ldr r3, [r3, #0]
8010328: 69db ldr r3, [r3, #28]
801032a: f003 0301 and.w r3, r3, #1
801032e: 2b01 cmp r3, #1
8010330: d103 bne.n 801033a <UART7_IRQHandler+0x5a>
__HAL_UART_CLEAR_PEFLAG(&huart7);
8010332: 4b13 ldr r3, [pc, #76] ; (8010380 <UART7_IRQHandler+0xa0>)
8010334: 681b ldr r3, [r3, #0]
8010336: 2201 movs r2, #1
8010338: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
801033a: 4b11 ldr r3, [pc, #68] ; (8010380 <UART7_IRQHandler+0xa0>)
801033c: 681b ldr r3, [r3, #0]
801033e: 69db ldr r3, [r3, #28]
8010340: f003 0302 and.w r3, r3, #2
8010344: 2b02 cmp r3, #2
8010346: d103 bne.n 8010350 <UART7_IRQHandler+0x70>
__HAL_UART_CLEAR_FEFLAG(&huart7);
8010348: 4b0d ldr r3, [pc, #52] ; (8010380 <UART7_IRQHandler+0xa0>)
801034a: 681b ldr r3, [r3, #0]
801034c: 2202 movs r2, #2
801034e: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
8010350: 4b0b ldr r3, [pc, #44] ; (8010380 <UART7_IRQHandler+0xa0>)
8010352: 681b ldr r3, [r3, #0]
8010354: 69db ldr r3, [r3, #28]
8010356: f003 0304 and.w r3, r3, #4
801035a: 2b04 cmp r3, #4
801035c: d103 bne.n 8010366 <UART7_IRQHandler+0x86>
__HAL_UART_CLEAR_NEFLAG(&huart7);
801035e: 4b08 ldr r3, [pc, #32] ; (8010380 <UART7_IRQHandler+0xa0>)
8010360: 681b ldr r3, [r3, #0]
8010362: 2204 movs r2, #4
8010364: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_IDLE))
8010366: 4b06 ldr r3, [pc, #24] ; (8010380 <UART7_IRQHandler+0xa0>)
8010368: 681b ldr r3, [r3, #0]
801036a: 69db ldr r3, [r3, #28]
801036c: f003 0310 and.w r3, r3, #16
8010370: 2b10 cmp r3, #16
8010372: d103 bne.n 801037c <UART7_IRQHandler+0x9c>
__HAL_UART_CLEAR_IDLEFLAG(&huart7);
8010374: 4b02 ldr r3, [pc, #8] ; (8010380 <UART7_IRQHandler+0xa0>)
8010376: 681b ldr r3, [r3, #0]
8010378: 2210 movs r2, #16
801037a: 621a str r2, [r3, #32]
}
801037c: bf00 nop
801037e: bd80 pop {r7, pc}
8010380: 2006c314 .word 0x2006c314
08010384 <Crc16>:
uint16_t Crc16(uint16_t len)
{
8010384: b480 push {r7}
8010386: b085 sub sp, #20
8010388: af00 add r7, sp, #0
801038a: 4603 mov r3, r0
801038c: 80fb strh r3, [r7, #6]
uint16_t i;
uint16_t crc = 0xFFFF;
801038e: f64f 73ff movw r3, #65535 ; 0xffff
8010392: 81bb strh r3, [r7, #12]
for(i = 0; i < len; i++) {
8010394: 2300 movs r3, #0
8010396: 81fb strh r3, [r7, #14]
8010398: e010 b.n 80103bc <Crc16+0x38>
crc = (crc >> 8) ^ Crc16Table[(crc & 0xFF) ^ iobuf[i]];
801039a: 89bb ldrh r3, [r7, #12]
801039c: 0a1b lsrs r3, r3, #8
801039e: b29a uxth r2, r3
80103a0: 89bb ldrh r3, [r7, #12]
80103a2: b2db uxtb r3, r3
80103a4: 89f9 ldrh r1, [r7, #14]
80103a6: 480b ldr r0, [pc, #44] ; (80103d4 <Crc16+0x50>)
80103a8: 5c41 ldrb r1, [r0, r1]
80103aa: 404b eors r3, r1
80103ac: 490a ldr r1, [pc, #40] ; (80103d8 <Crc16+0x54>)
80103ae: f831 3013 ldrh.w r3, [r1, r3, lsl #1]
80103b2: 4053 eors r3, r2
80103b4: 81bb strh r3, [r7, #12]
for(i = 0; i < len; i++) {
80103b6: 89fb ldrh r3, [r7, #14]
80103b8: 3301 adds r3, #1
80103ba: 81fb strh r3, [r7, #14]
80103bc: 89fa ldrh r2, [r7, #14]
80103be: 88fb ldrh r3, [r7, #6]
80103c0: 429a cmp r2, r3
80103c2: d3ea bcc.n 801039a <Crc16+0x16>
}
return crc;
80103c4: 89bb ldrh r3, [r7, #12]
}
80103c6: 4618 mov r0, r3
80103c8: 3714 adds r7, #20
80103ca: 46bd mov sp, r7
80103cc: f85d 7b04 ldr.w r7, [sp], #4
80103d0: 4770 bx lr
80103d2: bf00 nop
80103d4: 2006c4a4 .word 0x2006c4a4
80103d8: 0801b06c .word 0x0801b06c
080103dc <Crc16_RX>:
uint16_t Crc16_RX(uint16_t len)
{
80103dc: b480 push {r7}
80103de: b085 sub sp, #20
80103e0: af00 add r7, sp, #0
80103e2: 4603 mov r3, r0
80103e4: 80fb strh r3, [r7, #6]
uint16_t i;
uint16_t crc = 0xFFFF;
80103e6: f64f 73ff movw r3, #65535 ; 0xffff
80103ea: 81bb strh r3, [r7, #12]
for(i = 0; i < len; i++) {
80103ec: 2300 movs r3, #0
80103ee: 81fb strh r3, [r7, #14]
80103f0: e010 b.n 8010414 <Crc16_RX+0x38>
crc = (crc >> 8) ^ Crc16Table[(crc & 0xFF) ^ rx[i]];
80103f2: 89bb ldrh r3, [r7, #12]
80103f4: 0a1b lsrs r3, r3, #8
80103f6: b29a uxth r2, r3
80103f8: 89bb ldrh r3, [r7, #12]
80103fa: b2db uxtb r3, r3
80103fc: 89f9 ldrh r1, [r7, #14]
80103fe: 480b ldr r0, [pc, #44] ; (801042c <Crc16_RX+0x50>)
8010400: 5c41 ldrb r1, [r0, r1]
8010402: 404b eors r3, r1
8010404: 490a ldr r1, [pc, #40] ; (8010430 <Crc16_RX+0x54>)
8010406: f831 3013 ldrh.w r3, [r1, r3, lsl #1]
801040a: 4053 eors r3, r2
801040c: 81bb strh r3, [r7, #12]
for(i = 0; i < len; i++) {
801040e: 89fb ldrh r3, [r7, #14]
8010410: 3301 adds r3, #1
8010412: 81fb strh r3, [r7, #14]
8010414: 89fa ldrh r2, [r7, #14]
8010416: 88fb ldrh r3, [r7, #6]
8010418: 429a cmp r2, r3
801041a: d3ea bcc.n 80103f2 <Crc16_RX+0x16>
}
return crc;
801041c: 89bb ldrh r3, [r7, #12]
}
801041e: 4618 mov r0, r3
8010420: 3714 adds r7, #20
8010422: 46bd mov sp, r7
8010424: f85d 7b04 ldr.w r7, [sp], #4
8010428: 4770 bx lr
801042a: bf00 nop
801042c: 2006c39c .word 0x2006c39c
8010430: 0801b06c .word 0x0801b06c
08010434 <HAL_UART_TxCpltCallback>:
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
{
8010434: b580 push {r7, lr}
8010436: b082 sub sp, #8
8010438: af00 add r7, sp, #0
801043a: 6078 str r0, [r7, #4]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
801043c: 2200 movs r2, #0
801043e: f44f 7100 mov.w r1, #512 ; 0x200
8010442: 4805 ldr r0, [pc, #20] ; (8010458 <HAL_UART_TxCpltCallback+0x24>)
8010444: f002 fea4 bl 8013190 <HAL_GPIO_WritePin>
TX_OK = true;
8010448: 4b04 ldr r3, [pc, #16] ; (801045c <HAL_UART_TxCpltCallback+0x28>)
801044a: 2201 movs r2, #1
801044c: 701a strb r2, [r3, #0]
}
801044e: bf00 nop
8010450: 3708 adds r7, #8
8010452: 46bd mov sp, r7
8010454: bd80 pop {r7, pc}
8010456: bf00 nop
8010458: 40021400 .word 0x40021400
801045c: 2006b972 .word 0x2006b972
08010460 <HAL_UART_RxCpltCallback>:
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
8010460: b480 push {r7}
8010462: b083 sub sp, #12
8010464: af00 add r7, sp, #0
8010466: 6078 str r0, [r7, #4]
RX_OK = true;
8010468: 4b04 ldr r3, [pc, #16] ; (801047c <HAL_UART_RxCpltCallback+0x1c>)
801046a: 2201 movs r2, #1
801046c: 701a strb r2, [r3, #0]
}
801046e: bf00 nop
8010470: 370c adds r7, #12
8010472: 46bd mov sp, r7
8010474: f85d 7b04 ldr.w r7, [sp], #4
8010478: 4770 bx lr
801047a: bf00 nop
801047c: 2006b973 .word 0x2006b973
08010480 <HAL_UART_ErrorCallback>:
void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)
{
8010480: b580 push {r7, lr}
8010482: b082 sub sp, #8
8010484: af00 add r7, sp, #0
8010486: 6078 str r0, [r7, #4]
RX_OK = TX_OK = false;
8010488: 2100 movs r1, #0
801048a: 4b0b ldr r3, [pc, #44] ; (80104b8 <HAL_UART_ErrorCallback+0x38>)
801048c: 460a mov r2, r1
801048e: 701a strb r2, [r3, #0]
8010490: 4b0a ldr r3, [pc, #40] ; (80104bc <HAL_UART_ErrorCallback+0x3c>)
8010492: 460a mov r2, r1
8010494: 701a strb r2, [r3, #0]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010496: 2200 movs r2, #0
8010498: f44f 7100 mov.w r1, #512 ; 0x200
801049c: 4808 ldr r0, [pc, #32] ; (80104c0 <HAL_UART_ErrorCallback+0x40>)
801049e: f002 fe77 bl 8013190 <HAL_GPIO_WritePin>
HAL_UART_Abort_IT(&huart7);
80104a2: 4808 ldr r0, [pc, #32] ; (80104c4 <HAL_UART_ErrorCallback+0x44>)
80104a4: f005 f810 bl 80154c8 <HAL_UART_Abort_IT>
UART_ERROR = true;
80104a8: 4b07 ldr r3, [pc, #28] ; (80104c8 <HAL_UART_ErrorCallback+0x48>)
80104aa: 2201 movs r2, #1
80104ac: 701a strb r2, [r3, #0]
}
80104ae: bf00 nop
80104b0: 3708 adds r7, #8
80104b2: 46bd mov sp, r7
80104b4: bd80 pop {r7, pc}
80104b6: bf00 nop
80104b8: 2006b972 .word 0x2006b972
80104bc: 2006b973 .word 0x2006b973
80104c0: 40021400 .word 0x40021400
80104c4: 2006c314 .word 0x2006c314
80104c8: 2006b971 .word 0x2006b971
080104cc <ReadIP>:
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
int8_t ReadIP(void)
{
80104cc: b580 push {r7, lr}
80104ce: b084 sub sp, #16
80104d0: af00 add r7, sp, #0
int8_t res = -1;
80104d2: 23ff movs r3, #255 ; 0xff
80104d4: 73fb strb r3, [r7, #15]
uint16_t i, len = 0, cnt = 0;
80104d6: 2300 movs r3, #0
80104d8: 81bb strh r3, [r7, #12]
80104da: 2300 movs r3, #0
80104dc: 817b strh r3, [r7, #10]
uint16_t crc;
__IO uint32_t timeout;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
80104de: 4b82 ldr r3, [pc, #520] ; (80106e8 <ReadIP+0x21c>)
80104e0: 681b ldr r3, [r3, #0]
80104e2: 69db ldr r3, [r3, #28]
80104e4: f003 0308 and.w r3, r3, #8
80104e8: 2b08 cmp r3, #8
80104ea: d103 bne.n 80104f4 <ReadIP+0x28>
__HAL_UART_CLEAR_OREFLAG(&huart7);
80104ec: 4b7e ldr r3, [pc, #504] ; (80106e8 <ReadIP+0x21c>)
80104ee: 681b ldr r3, [r3, #0]
80104f0: 2208 movs r2, #8
80104f2: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
80104f4: 4b7c ldr r3, [pc, #496] ; (80106e8 <ReadIP+0x21c>)
80104f6: 681b ldr r3, [r3, #0]
80104f8: 69db ldr r3, [r3, #28]
80104fa: f003 0301 and.w r3, r3, #1
80104fe: 2b01 cmp r3, #1
8010500: d103 bne.n 801050a <ReadIP+0x3e>
__HAL_UART_CLEAR_PEFLAG(&huart7);
8010502: 4b79 ldr r3, [pc, #484] ; (80106e8 <ReadIP+0x21c>)
8010504: 681b ldr r3, [r3, #0]
8010506: 2201 movs r2, #1
8010508: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
801050a: 4b77 ldr r3, [pc, #476] ; (80106e8 <ReadIP+0x21c>)
801050c: 681b ldr r3, [r3, #0]
801050e: 69db ldr r3, [r3, #28]
8010510: f003 0302 and.w r3, r3, #2
8010514: 2b02 cmp r3, #2
8010516: d103 bne.n 8010520 <ReadIP+0x54>
__HAL_UART_CLEAR_FEFLAG(&huart7);
8010518: 4b73 ldr r3, [pc, #460] ; (80106e8 <ReadIP+0x21c>)
801051a: 681b ldr r3, [r3, #0]
801051c: 2202 movs r2, #2
801051e: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
8010520: 4b71 ldr r3, [pc, #452] ; (80106e8 <ReadIP+0x21c>)
8010522: 681b ldr r3, [r3, #0]
8010524: 69db ldr r3, [r3, #28]
8010526: f003 0304 and.w r3, r3, #4
801052a: 2b04 cmp r3, #4
801052c: d103 bne.n 8010536 <ReadIP+0x6a>
__HAL_UART_CLEAR_NEFLAG(&huart7);
801052e: 4b6e ldr r3, [pc, #440] ; (80106e8 <ReadIP+0x21c>)
8010530: 681b ldr r3, [r3, #0]
8010532: 2204 movs r2, #4
8010534: 621a str r2, [r3, #32]
HAL_Delay(20);
8010536: 2014 movs r0, #20
8010538: f001 fafe bl 8011b38 <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
801053c: 2200 movs r2, #0
801053e: 4b6b ldr r3, [pc, #428] ; (80106ec <ReadIP+0x220>)
8010540: 4611 mov r1, r2
8010542: 7019 strb r1, [r3, #0]
8010544: 4b6a ldr r3, [pc, #424] ; (80106f0 <ReadIP+0x224>)
8010546: 4611 mov r1, r2
8010548: 7019 strb r1, [r3, #0]
801054a: 4b6a ldr r3, [pc, #424] ; (80106f4 <ReadIP+0x228>)
801054c: 701a strb r2, [r3, #0]
len = 0;
801054e: 2300 movs r3, #0
8010550: 81bb strh r3, [r7, #12]
memset((void *) &rx, 0, sizeof(rx));
8010552: f44f 7280 mov.w r2, #256 ; 0x100
8010556: 2100 movs r1, #0
8010558: 4867 ldr r0, [pc, #412] ; (80106f8 <ReadIP+0x22c>)
801055a: f006 fa60 bl 8016a1e <memset>
iobuf[len++] = 17;
801055e: 89bb ldrh r3, [r7, #12]
8010560: 1c5a adds r2, r3, #1
8010562: 81ba strh r2, [r7, #12]
8010564: 461a mov r2, r3
8010566: 4b65 ldr r3, [pc, #404] ; (80106fc <ReadIP+0x230>)
8010568: 2111 movs r1, #17
801056a: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x03;
801056c: 89bb ldrh r3, [r7, #12]
801056e: 1c5a adds r2, r3, #1
8010570: 81ba strh r2, [r7, #12]
8010572: 461a mov r2, r3
8010574: 4b61 ldr r3, [pc, #388] ; (80106fc <ReadIP+0x230>)
8010576: 2103 movs r1, #3
8010578: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(4001);
801057a: 89bb ldrh r3, [r7, #12]
801057c: 1c5a adds r2, r3, #1
801057e: 81ba strh r2, [r7, #12]
8010580: 461a mov r2, r3
8010582: 4b5e ldr r3, [pc, #376] ; (80106fc <ReadIP+0x230>)
8010584: 210f movs r1, #15
8010586: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(4001);
8010588: 89bb ldrh r3, [r7, #12]
801058a: 1c5a adds r2, r3, #1
801058c: 81ba strh r2, [r7, #12]
801058e: 461a mov r2, r3
8010590: 4b5a ldr r3, [pc, #360] ; (80106fc <ReadIP+0x230>)
8010592: 21a1 movs r1, #161 ; 0xa1
8010594: 5499 strb r1, [r3, r2]
iobuf[len++] = 0; //
8010596: 89bb ldrh r3, [r7, #12]
8010598: 1c5a adds r2, r3, #1
801059a: 81ba strh r2, [r7, #12]
801059c: 461a mov r2, r3
801059e: 4b57 ldr r3, [pc, #348] ; (80106fc <ReadIP+0x230>)
80105a0: 2100 movs r1, #0
80105a2: 5499 strb r1, [r3, r2]
iobuf[len++] = 2; //
80105a4: 89bb ldrh r3, [r7, #12]
80105a6: 1c5a adds r2, r3, #1
80105a8: 81ba strh r2, [r7, #12]
80105aa: 461a mov r2, r3
80105ac: 4b53 ldr r3, [pc, #332] ; (80106fc <ReadIP+0x230>)
80105ae: 2102 movs r1, #2
80105b0: 5499 strb r1, [r3, r2]
crc = Crc16(len);
80105b2: 89bb ldrh r3, [r7, #12]
80105b4: 4618 mov r0, r3
80105b6: f7ff fee5 bl 8010384 <Crc16>
80105ba: 4603 mov r3, r0
80105bc: 813b strh r3, [r7, #8]
iobuf[len++] = LO(crc);
80105be: 89bb ldrh r3, [r7, #12]
80105c0: 1c5a adds r2, r3, #1
80105c2: 81ba strh r2, [r7, #12]
80105c4: 461a mov r2, r3
80105c6: 893b ldrh r3, [r7, #8]
80105c8: b2d9 uxtb r1, r3
80105ca: 4b4c ldr r3, [pc, #304] ; (80106fc <ReadIP+0x230>)
80105cc: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
80105ce: 89bb ldrh r3, [r7, #12]
80105d0: 1c5a adds r2, r3, #1
80105d2: 81ba strh r2, [r7, #12]
80105d4: 461a mov r2, r3
80105d6: 893b ldrh r3, [r7, #8]
80105d8: 0a1b lsrs r3, r3, #8
80105da: b29b uxth r3, r3
80105dc: b2d9 uxtb r1, r3
80105de: 4b47 ldr r3, [pc, #284] ; (80106fc <ReadIP+0x230>)
80105e0: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
80105e2: f001 fa9d bl 8011b20 <HAL_GetTick>
80105e6: 4603 mov r3, r0
80105e8: 607b str r3, [r7, #4]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
80105ea: 2201 movs r2, #1
80105ec: f44f 7100 mov.w r1, #512 ; 0x200
80105f0: 4843 ldr r0, [pc, #268] ; (8010700 <ReadIP+0x234>)
80105f2: f002 fdcd bl 8013190 <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
80105f6: 89bb ldrh r3, [r7, #12]
80105f8: 461a mov r2, r3
80105fa: 4940 ldr r1, [pc, #256] ; (80106fc <ReadIP+0x230>)
80105fc: 483a ldr r0, [pc, #232] ; (80106e8 <ReadIP+0x21c>)
80105fe: f004 fef5 bl 80153ec <HAL_UART_Transmit_IT>
8010602: 4603 mov r3, r0
8010604: 2b00 cmp r3, #0
8010606: d168 bne.n 80106da <ReadIP+0x20e>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 50));
8010608: bf00 nop
801060a: 4b3a ldr r3, [pc, #232] ; (80106f4 <ReadIP+0x228>)
801060c: 781b ldrb r3, [r3, #0]
801060e: b2db uxtb r3, r3
8010610: f083 0301 eor.w r3, r3, #1
8010614: b2db uxtb r3, r3
8010616: 2b00 cmp r3, #0
8010618: d006 beq.n 8010628 <ReadIP+0x15c>
801061a: f001 fa81 bl 8011b20 <HAL_GetTick>
801061e: 4602 mov r2, r0
8010620: 687b ldr r3, [r7, #4]
8010622: 1ad3 subs r3, r2, r3
8010624: 2b31 cmp r3, #49 ; 0x31
8010626: d9f0 bls.n 801060a <ReadIP+0x13e>
if(!TX_OK)
8010628: 4b32 ldr r3, [pc, #200] ; (80106f4 <ReadIP+0x228>)
801062a: 781b ldrb r3, [r3, #0]
801062c: b2db uxtb r3, r3
801062e: f083 0301 eor.w r3, r3, #1
8010632: b2db uxtb r3, r3
8010634: 2b00 cmp r3, #0
8010636: d00b beq.n 8010650 <ReadIP+0x184>
{
HAL_UART_Abort_IT(&huart7);
8010638: 482b ldr r0, [pc, #172] ; (80106e8 <ReadIP+0x21c>)
801063a: f004 ff45 bl 80154c8 <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
801063e: 2200 movs r2, #0
8010640: f44f 7100 mov.w r1, #512 ; 0x200
8010644: 482e ldr r0, [pc, #184] ; (8010700 <ReadIP+0x234>)
8010646: f002 fda3 bl 8013190 <HAL_GPIO_WritePin>
return (-1);
801064a: f04f 33ff mov.w r3, #4294967295
801064e: e046 b.n 80106de <ReadIP+0x212>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010650: 2200 movs r2, #0
8010652: f44f 7100 mov.w r1, #512 ; 0x200
8010656: 482a ldr r0, [pc, #168] ; (8010700 <ReadIP+0x234>)
8010658: f002 fd9a bl 8013190 <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
801065c: 2364 movs r3, #100 ; 0x64
801065e: 2201 movs r2, #1
8010660: 4925 ldr r1, [pc, #148] ; (80106f8 <ReadIP+0x22c>)
8010662: 4821 ldr r0, [pc, #132] ; (80106e8 <ReadIP+0x21c>)
8010664: f004 fdf2 bl 801524c <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 9, 100) == HAL_OK)
8010668: 2364 movs r3, #100 ; 0x64
801066a: 2209 movs r2, #9
801066c: 4922 ldr r1, [pc, #136] ; (80106f8 <ReadIP+0x22c>)
801066e: 481e ldr r0, [pc, #120] ; (80106e8 <ReadIP+0x21c>)
8010670: f004 fdec bl 801524c <HAL_UART_Receive>
8010674: 4603 mov r3, r0
8010676: 2b00 cmp r3, #0
8010678: d126 bne.n 80106c8 <ReadIP+0x1fc>
{
crc = (uint16_t) ((rx[8]) << 8 | rx[7]);
801067a: 4b1f ldr r3, [pc, #124] ; (80106f8 <ReadIP+0x22c>)
801067c: 7a1b ldrb r3, [r3, #8]
801067e: 021b lsls r3, r3, #8
8010680: b21a sxth r2, r3
8010682: 4b1d ldr r3, [pc, #116] ; (80106f8 <ReadIP+0x22c>)
8010684: 79db ldrb r3, [r3, #7]
8010686: b21b sxth r3, r3
8010688: 4313 orrs r3, r2
801068a: b21b sxth r3, r3
801068c: 813b strh r3, [r7, #8]
if(crc == Crc16_RX(7))
801068e: 2007 movs r0, #7
8010690: f7ff fea4 bl 80103dc <Crc16_RX>
8010694: 4603 mov r3, r0
8010696: 461a mov r2, r3
8010698: 893b ldrh r3, [r7, #8]
801069a: 4293 cmp r3, r2
801069c: d111 bne.n 80106c2 <ReadIP+0x1f6>
{
ip[0] = rx[3];
801069e: 4b16 ldr r3, [pc, #88] ; (80106f8 <ReadIP+0x22c>)
80106a0: 78da ldrb r2, [r3, #3]
80106a2: 4b18 ldr r3, [pc, #96] ; (8010704 <ReadIP+0x238>)
80106a4: 701a strb r2, [r3, #0]
ip[1] = rx[4];
80106a6: 4b14 ldr r3, [pc, #80] ; (80106f8 <ReadIP+0x22c>)
80106a8: 791a ldrb r2, [r3, #4]
80106aa: 4b16 ldr r3, [pc, #88] ; (8010704 <ReadIP+0x238>)
80106ac: 705a strb r2, [r3, #1]
ip[2] = rx[5];
80106ae: 4b12 ldr r3, [pc, #72] ; (80106f8 <ReadIP+0x22c>)
80106b0: 795a ldrb r2, [r3, #5]
80106b2: 4b14 ldr r3, [pc, #80] ; (8010704 <ReadIP+0x238>)
80106b4: 709a strb r2, [r3, #2]
ip[3] = rx[6];
80106b6: 4b10 ldr r3, [pc, #64] ; (80106f8 <ReadIP+0x22c>)
80106b8: 799a ldrb r2, [r3, #6]
80106ba: 4b12 ldr r3, [pc, #72] ; (8010704 <ReadIP+0x238>)
80106bc: 70da strb r2, [r3, #3]
return 0;
80106be: 2300 movs r3, #0
80106c0: e00d b.n 80106de <ReadIP+0x212>
}
else
{
return (-1);
80106c2: f04f 33ff mov.w r3, #4294967295
80106c6: e00a b.n 80106de <ReadIP+0x212>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
80106c8: 2200 movs r2, #0
80106ca: f44f 7100 mov.w r1, #512 ; 0x200
80106ce: 480c ldr r0, [pc, #48] ; (8010700 <ReadIP+0x234>)
80106d0: f002 fd5e bl 8013190 <HAL_GPIO_WritePin>
return (-1);
80106d4: f04f 33ff mov.w r3, #4294967295
80106d8: e001 b.n 80106de <ReadIP+0x212>
}
}
return res;
80106da: f997 300f ldrsb.w r3, [r7, #15]
}
80106de: 4618 mov r0, r3
80106e0: 3710 adds r7, #16
80106e2: 46bd mov sp, r7
80106e4: bd80 pop {r7, pc}
80106e6: bf00 nop
80106e8: 2006c314 .word 0x2006c314
80106ec: 2006b971 .word 0x2006b971
80106f0: 2006b973 .word 0x2006b973
80106f4: 2006b972 .word 0x2006b972
80106f8: 2006c39c .word 0x2006c39c
80106fc: 2006c4a4 .word 0x2006c4a4
8010700: 40021400 .word 0x40021400
8010704: 2006b96c .word 0x2006b96c
08010708 <ReadChannel>:
int8_t ReadChannel(uint8_t ch)
{
8010708: b580 push {r7, lr}
801070a: b086 sub sp, #24
801070c: af00 add r7, sp, #0
801070e: 4603 mov r3, r0
8010710: 71fb strb r3, [r7, #7]
int8_t res = -1;
8010712: 23ff movs r3, #255 ; 0xff
8010714: 75fb strb r3, [r7, #23]
uint16_t i, len = 0, cnt = 0;
8010716: 2300 movs r3, #0
8010718: 82bb strh r3, [r7, #20]
801071a: 2300 movs r3, #0
801071c: 827b strh r3, [r7, #18]
uint16_t crc;
__IO uint32_t timeout;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
801071e: 4b5e ldr r3, [pc, #376] ; (8010898 <ReadChannel+0x190>)
8010720: 681b ldr r3, [r3, #0]
8010722: 69db ldr r3, [r3, #28]
8010724: f003 0308 and.w r3, r3, #8
8010728: 2b08 cmp r3, #8
801072a: d103 bne.n 8010734 <ReadChannel+0x2c>
__HAL_UART_CLEAR_OREFLAG(&huart7);
801072c: 4b5a ldr r3, [pc, #360] ; (8010898 <ReadChannel+0x190>)
801072e: 681b ldr r3, [r3, #0]
8010730: 2208 movs r2, #8
8010732: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
8010734: 4b58 ldr r3, [pc, #352] ; (8010898 <ReadChannel+0x190>)
8010736: 681b ldr r3, [r3, #0]
8010738: 69db ldr r3, [r3, #28]
801073a: f003 0301 and.w r3, r3, #1
801073e: 2b01 cmp r3, #1
8010740: d103 bne.n 801074a <ReadChannel+0x42>
__HAL_UART_CLEAR_PEFLAG(&huart7);
8010742: 4b55 ldr r3, [pc, #340] ; (8010898 <ReadChannel+0x190>)
8010744: 681b ldr r3, [r3, #0]
8010746: 2201 movs r2, #1
8010748: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
801074a: 4b53 ldr r3, [pc, #332] ; (8010898 <ReadChannel+0x190>)
801074c: 681b ldr r3, [r3, #0]
801074e: 69db ldr r3, [r3, #28]
8010750: f003 0302 and.w r3, r3, #2
8010754: 2b02 cmp r3, #2
8010756: d103 bne.n 8010760 <ReadChannel+0x58>
__HAL_UART_CLEAR_FEFLAG(&huart7);
8010758: 4b4f ldr r3, [pc, #316] ; (8010898 <ReadChannel+0x190>)
801075a: 681b ldr r3, [r3, #0]
801075c: 2202 movs r2, #2
801075e: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
8010760: 4b4d ldr r3, [pc, #308] ; (8010898 <ReadChannel+0x190>)
8010762: 681b ldr r3, [r3, #0]
8010764: 69db ldr r3, [r3, #28]
8010766: f003 0304 and.w r3, r3, #4
801076a: 2b04 cmp r3, #4
801076c: d103 bne.n 8010776 <ReadChannel+0x6e>
__HAL_UART_CLEAR_NEFLAG(&huart7);
801076e: 4b4a ldr r3, [pc, #296] ; (8010898 <ReadChannel+0x190>)
8010770: 681b ldr r3, [r3, #0]
8010772: 2204 movs r2, #4
8010774: 621a str r2, [r3, #32]
HAL_Delay(20);
8010776: 2014 movs r0, #20
8010778: f001 f9de bl 8011b38 <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
801077c: 2200 movs r2, #0
801077e: 4b47 ldr r3, [pc, #284] ; (801089c <ReadChannel+0x194>)
8010780: 4611 mov r1, r2
8010782: 7019 strb r1, [r3, #0]
8010784: 4b46 ldr r3, [pc, #280] ; (80108a0 <ReadChannel+0x198>)
8010786: 4611 mov r1, r2
8010788: 7019 strb r1, [r3, #0]
801078a: 4b46 ldr r3, [pc, #280] ; (80108a4 <ReadChannel+0x19c>)
801078c: 701a strb r2, [r3, #0]
len = 0;
801078e: 2300 movs r3, #0
8010790: 82bb strh r3, [r7, #20]
memset((void *) &rx, 0, sizeof(rx));
8010792: f44f 7280 mov.w r2, #256 ; 0x100
8010796: 2100 movs r1, #0
8010798: 4843 ldr r0, [pc, #268] ; (80108a8 <ReadChannel+0x1a0>)
801079a: f006 f940 bl 8016a1e <memset>
iobuf[len++] = ch + 1;
801079e: 8abb ldrh r3, [r7, #20]
80107a0: 1c5a adds r2, r3, #1
80107a2: 82ba strh r2, [r7, #20]
80107a4: 461a mov r2, r3
80107a6: 79fb ldrb r3, [r7, #7]
80107a8: 3301 adds r3, #1
80107aa: b2d9 uxtb r1, r3
80107ac: 4b3f ldr r3, [pc, #252] ; (80108ac <ReadChannel+0x1a4>)
80107ae: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x03;
80107b0: 8abb ldrh r3, [r7, #20]
80107b2: 1c5a adds r2, r3, #1
80107b4: 82ba strh r2, [r7, #20]
80107b6: 461a mov r2, r3
80107b8: 4b3c ldr r3, [pc, #240] ; (80108ac <ReadChannel+0x1a4>)
80107ba: 2103 movs r1, #3
80107bc: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(5001);
80107be: 8abb ldrh r3, [r7, #20]
80107c0: 1c5a adds r2, r3, #1
80107c2: 82ba strh r2, [r7, #20]
80107c4: 461a mov r2, r3
80107c6: 4b39 ldr r3, [pc, #228] ; (80108ac <ReadChannel+0x1a4>)
80107c8: 2113 movs r1, #19
80107ca: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(5001);
80107cc: 8abb ldrh r3, [r7, #20]
80107ce: 1c5a adds r2, r3, #1
80107d0: 82ba strh r2, [r7, #20]
80107d2: 461a mov r2, r3
80107d4: 4b35 ldr r3, [pc, #212] ; (80108ac <ReadChannel+0x1a4>)
80107d6: 2189 movs r1, #137 ; 0x89
80107d8: 5499 strb r1, [r3, r2]
iobuf[len++] = 0; //
80107da: 8abb ldrh r3, [r7, #20]
80107dc: 1c5a adds r2, r3, #1
80107de: 82ba strh r2, [r7, #20]
80107e0: 461a mov r2, r3
80107e2: 4b32 ldr r3, [pc, #200] ; (80108ac <ReadChannel+0x1a4>)
80107e4: 2100 movs r1, #0
80107e6: 5499 strb r1, [r3, r2]
iobuf[len++] = 10; // IIN,IFV,IFN,IKU,IKE,IKD,IKS
80107e8: 8abb ldrh r3, [r7, #20]
80107ea: 1c5a adds r2, r3, #1
80107ec: 82ba strh r2, [r7, #20]
80107ee: 461a mov r2, r3
80107f0: 4b2e ldr r3, [pc, #184] ; (80108ac <ReadChannel+0x1a4>)
80107f2: 210a movs r1, #10
80107f4: 5499 strb r1, [r3, r2]
crc = Crc16(len);
80107f6: 8abb ldrh r3, [r7, #20]
80107f8: 4618 mov r0, r3
80107fa: f7ff fdc3 bl 8010384 <Crc16>
80107fe: 4603 mov r3, r0
8010800: 823b strh r3, [r7, #16]
iobuf[len++] = LO(crc);
8010802: 8abb ldrh r3, [r7, #20]
8010804: 1c5a adds r2, r3, #1
8010806: 82ba strh r2, [r7, #20]
8010808: 461a mov r2, r3
801080a: 8a3b ldrh r3, [r7, #16]
801080c: b2d9 uxtb r1, r3
801080e: 4b27 ldr r3, [pc, #156] ; (80108ac <ReadChannel+0x1a4>)
8010810: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
8010812: 8abb ldrh r3, [r7, #20]
8010814: 1c5a adds r2, r3, #1
8010816: 82ba strh r2, [r7, #20]
8010818: 461a mov r2, r3
801081a: 8a3b ldrh r3, [r7, #16]
801081c: 0a1b lsrs r3, r3, #8
801081e: b29b uxth r3, r3
8010820: b2d9 uxtb r1, r3
8010822: 4b22 ldr r3, [pc, #136] ; (80108ac <ReadChannel+0x1a4>)
8010824: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
8010826: f001 f97b bl 8011b20 <HAL_GetTick>
801082a: 4603 mov r3, r0
801082c: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
801082e: 2201 movs r2, #1
8010830: f44f 7100 mov.w r1, #512 ; 0x200
8010834: 481e ldr r0, [pc, #120] ; (80108b0 <ReadChannel+0x1a8>)
8010836: f002 fcab bl 8013190 <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
801083a: 8abb ldrh r3, [r7, #20]
801083c: 461a mov r2, r3
801083e: 491b ldr r1, [pc, #108] ; (80108ac <ReadChannel+0x1a4>)
8010840: 4815 ldr r0, [pc, #84] ; (8010898 <ReadChannel+0x190>)
8010842: f004 fdd3 bl 80153ec <HAL_UART_Transmit_IT>
8010846: 4603 mov r3, r0
8010848: 2b00 cmp r3, #0
801084a: f040 8113 bne.w 8010a74 <ReadChannel+0x36c>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 50));
801084e: bf00 nop
8010850: 4b14 ldr r3, [pc, #80] ; (80108a4 <ReadChannel+0x19c>)
8010852: 781b ldrb r3, [r3, #0]
8010854: b2db uxtb r3, r3
8010856: f083 0301 eor.w r3, r3, #1
801085a: b2db uxtb r3, r3
801085c: 2b00 cmp r3, #0
801085e: d006 beq.n 801086e <ReadChannel+0x166>
8010860: f001 f95e bl 8011b20 <HAL_GetTick>
8010864: 4602 mov r2, r0
8010866: 68fb ldr r3, [r7, #12]
8010868: 1ad3 subs r3, r2, r3
801086a: 2b31 cmp r3, #49 ; 0x31
801086c: d9f0 bls.n 8010850 <ReadChannel+0x148>
if(!TX_OK)
801086e: 4b0d ldr r3, [pc, #52] ; (80108a4 <ReadChannel+0x19c>)
8010870: 781b ldrb r3, [r3, #0]
8010872: b2db uxtb r3, r3
8010874: f083 0301 eor.w r3, r3, #1
8010878: b2db uxtb r3, r3
801087a: 2b00 cmp r3, #0
801087c: d01a beq.n 80108b4 <ReadChannel+0x1ac>
{
HAL_UART_Abort_IT(&huart7);
801087e: 4806 ldr r0, [pc, #24] ; (8010898 <ReadChannel+0x190>)
8010880: f004 fe22 bl 80154c8 <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010884: 2200 movs r2, #0
8010886: f44f 7100 mov.w r1, #512 ; 0x200
801088a: 4809 ldr r0, [pc, #36] ; (80108b0 <ReadChannel+0x1a8>)
801088c: f002 fc80 bl 8013190 <HAL_GPIO_WritePin>
return (-1);
8010890: f04f 33ff mov.w r3, #4294967295
8010894: e0f0 b.n 8010a78 <ReadChannel+0x370>
8010896: bf00 nop
8010898: 2006c314 .word 0x2006c314
801089c: 2006b971 .word 0x2006b971
80108a0: 2006b973 .word 0x2006b973
80108a4: 2006b972 .word 0x2006b972
80108a8: 2006c39c .word 0x2006c39c
80108ac: 2006c4a4 .word 0x2006c4a4
80108b0: 40021400 .word 0x40021400
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
80108b4: 2200 movs r2, #0
80108b6: f44f 7100 mov.w r1, #512 ; 0x200
80108ba: 4871 ldr r0, [pc, #452] ; (8010a80 <ReadChannel+0x378>)
80108bc: f002 fc68 bl 8013190 <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
80108c0: 2364 movs r3, #100 ; 0x64
80108c2: 2201 movs r2, #1
80108c4: 496f ldr r1, [pc, #444] ; (8010a84 <ReadChannel+0x37c>)
80108c6: 4870 ldr r0, [pc, #448] ; (8010a88 <ReadChannel+0x380>)
80108c8: f004 fcc0 bl 801524c <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 25, 100) == HAL_OK)
80108cc: 2364 movs r3, #100 ; 0x64
80108ce: 2219 movs r2, #25
80108d0: 496c ldr r1, [pc, #432] ; (8010a84 <ReadChannel+0x37c>)
80108d2: 486d ldr r0, [pc, #436] ; (8010a88 <ReadChannel+0x380>)
80108d4: f004 fcba bl 801524c <HAL_UART_Receive>
80108d8: 4603 mov r3, r0
80108da: 2b00 cmp r3, #0
80108dc: f040 80c1 bne.w 8010a62 <ReadChannel+0x35a>
{
crc = (uint16_t) ((rx[24]) << 8 | rx[23]);
80108e0: 4b68 ldr r3, [pc, #416] ; (8010a84 <ReadChannel+0x37c>)
80108e2: 7e1b ldrb r3, [r3, #24]
80108e4: 021b lsls r3, r3, #8
80108e6: b21a sxth r2, r3
80108e8: 4b66 ldr r3, [pc, #408] ; (8010a84 <ReadChannel+0x37c>)
80108ea: 7ddb ldrb r3, [r3, #23]
80108ec: b21b sxth r3, r3
80108ee: 4313 orrs r3, r2
80108f0: b21b sxth r3, r3
80108f2: 823b strh r3, [r7, #16]
if(crc == Crc16_RX(23))
80108f4: 2017 movs r0, #23
80108f6: f7ff fd71 bl 80103dc <Crc16_RX>
80108fa: 4603 mov r3, r0
80108fc: 461a mov r2, r3
80108fe: 8a3b ldrh r3, [r7, #16]
8010900: 4293 cmp r3, r2
8010902: f040 80ab bne.w 8010a5c <ReadChannel+0x354>
{
pardata.amplif[ch].IIN = (uint16_t) ((rx[3]) << 8 | rx[4]);
8010906: 79fb ldrb r3, [r7, #7]
8010908: 4a5e ldr r2, [pc, #376] ; (8010a84 <ReadChannel+0x37c>)
801090a: 78d2 ldrb r2, [r2, #3]
801090c: 0212 lsls r2, r2, #8
801090e: b211 sxth r1, r2
8010910: 4a5c ldr r2, [pc, #368] ; (8010a84 <ReadChannel+0x37c>)
8010912: 7912 ldrb r2, [r2, #4]
8010914: b212 sxth r2, r2
8010916: 430a orrs r2, r1
8010918: b212 sxth r2, r2
801091a: b291 uxth r1, r2
801091c: 4a5b ldr r2, [pc, #364] ; (8010a8c <ReadChannel+0x384>)
801091e: 015b lsls r3, r3, #5
8010920: 4413 add r3, r2
8010922: 460a mov r2, r1
8010924: 801a strh r2, [r3, #0]
pardata.amplif[ch].IFV = (uint16_t) ((rx[5]) << 8 | rx[6]);
8010926: 79fb ldrb r3, [r7, #7]
8010928: 4a56 ldr r2, [pc, #344] ; (8010a84 <ReadChannel+0x37c>)
801092a: 7952 ldrb r2, [r2, #5]
801092c: 0212 lsls r2, r2, #8
801092e: b211 sxth r1, r2
8010930: 4a54 ldr r2, [pc, #336] ; (8010a84 <ReadChannel+0x37c>)
8010932: 7992 ldrb r2, [r2, #6]
8010934: b212 sxth r2, r2
8010936: 430a orrs r2, r1
8010938: b212 sxth r2, r2
801093a: b291 uxth r1, r2
801093c: 4a53 ldr r2, [pc, #332] ; (8010a8c <ReadChannel+0x384>)
801093e: 015b lsls r3, r3, #5
8010940: 4413 add r3, r2
8010942: 3302 adds r3, #2
8010944: 460a mov r2, r1
8010946: 801a strh r2, [r3, #0]
pardata.amplif[ch].IFN = (uint16_t) ((rx[7]) << 8 | rx[8]);
8010948: 79fb ldrb r3, [r7, #7]
801094a: 4a4e ldr r2, [pc, #312] ; (8010a84 <ReadChannel+0x37c>)
801094c: 79d2 ldrb r2, [r2, #7]
801094e: 0212 lsls r2, r2, #8
8010950: b211 sxth r1, r2
8010952: 4a4c ldr r2, [pc, #304] ; (8010a84 <ReadChannel+0x37c>)
8010954: 7a12 ldrb r2, [r2, #8]
8010956: b212 sxth r2, r2
8010958: 430a orrs r2, r1
801095a: b212 sxth r2, r2
801095c: b291 uxth r1, r2
801095e: 4a4b ldr r2, [pc, #300] ; (8010a8c <ReadChannel+0x384>)
8010960: 015b lsls r3, r3, #5
8010962: 4413 add r3, r2
8010964: 3304 adds r3, #4
8010966: 460a mov r2, r1
8010968: 801a strh r2, [r3, #0]
pardata.amplif[ch].IKU = (uint16_t) ((rx[9]) << 8 | rx[10]);
801096a: 79fb ldrb r3, [r7, #7]
801096c: 4a45 ldr r2, [pc, #276] ; (8010a84 <ReadChannel+0x37c>)
801096e: 7a52 ldrb r2, [r2, #9]
8010970: 0212 lsls r2, r2, #8
8010972: b211 sxth r1, r2
8010974: 4a43 ldr r2, [pc, #268] ; (8010a84 <ReadChannel+0x37c>)
8010976: 7a92 ldrb r2, [r2, #10]
8010978: b212 sxth r2, r2
801097a: 430a orrs r2, r1
801097c: b212 sxth r2, r2
801097e: b291 uxth r1, r2
8010980: 4a42 ldr r2, [pc, #264] ; (8010a8c <ReadChannel+0x384>)
8010982: 015b lsls r3, r3, #5
8010984: 4413 add r3, r2
8010986: 3306 adds r3, #6
8010988: 460a mov r2, r1
801098a: 801a strh r2, [r3, #0]
pardata.amplif[ch].IKE = (uint16_t) ((rx[11]) << 8 | rx[12]);
801098c: 79fb ldrb r3, [r7, #7]
801098e: 4a3d ldr r2, [pc, #244] ; (8010a84 <ReadChannel+0x37c>)
8010990: 7ad2 ldrb r2, [r2, #11]
8010992: 0212 lsls r2, r2, #8
8010994: b211 sxth r1, r2
8010996: 4a3b ldr r2, [pc, #236] ; (8010a84 <ReadChannel+0x37c>)
8010998: 7b12 ldrb r2, [r2, #12]
801099a: b212 sxth r2, r2
801099c: 430a orrs r2, r1
801099e: b212 sxth r2, r2
80109a0: b291 uxth r1, r2
80109a2: 4a3a ldr r2, [pc, #232] ; (8010a8c <ReadChannel+0x384>)
80109a4: 015b lsls r3, r3, #5
80109a6: 4413 add r3, r2
80109a8: 3308 adds r3, #8
80109aa: 460a mov r2, r1
80109ac: 801a strh r2, [r3, #0]
pardata.amplif[ch].IKD = (uint16_t) ((rx[13]) << 8 | rx[14]);
80109ae: 79fb ldrb r3, [r7, #7]
80109b0: 4a34 ldr r2, [pc, #208] ; (8010a84 <ReadChannel+0x37c>)
80109b2: 7b52 ldrb r2, [r2, #13]
80109b4: 0212 lsls r2, r2, #8
80109b6: b211 sxth r1, r2
80109b8: 4a32 ldr r2, [pc, #200] ; (8010a84 <ReadChannel+0x37c>)
80109ba: 7b92 ldrb r2, [r2, #14]
80109bc: b212 sxth r2, r2
80109be: 430a orrs r2, r1
80109c0: b212 sxth r2, r2
80109c2: b291 uxth r1, r2
80109c4: 4a31 ldr r2, [pc, #196] ; (8010a8c <ReadChannel+0x384>)
80109c6: 015b lsls r3, r3, #5
80109c8: 4413 add r3, r2
80109ca: 330a adds r3, #10
80109cc: 460a mov r2, r1
80109ce: 801a strh r2, [r3, #0]
pardata.amplif[ch].IKS = (uint16_t) ((rx[15]) << 8 | rx[16]);
80109d0: 79fb ldrb r3, [r7, #7]
80109d2: 4a2c ldr r2, [pc, #176] ; (8010a84 <ReadChannel+0x37c>)
80109d4: 7bd2 ldrb r2, [r2, #15]
80109d6: 0212 lsls r2, r2, #8
80109d8: b211 sxth r1, r2
80109da: 4a2a ldr r2, [pc, #168] ; (8010a84 <ReadChannel+0x37c>)
80109dc: 7c12 ldrb r2, [r2, #16]
80109de: b212 sxth r2, r2
80109e0: 430a orrs r2, r1
80109e2: b212 sxth r2, r2
80109e4: b291 uxth r1, r2
80109e6: 4a29 ldr r2, [pc, #164] ; (8010a8c <ReadChannel+0x384>)
80109e8: 015b lsls r3, r3, #5
80109ea: 4413 add r3, r2
80109ec: 330c adds r3, #12
80109ee: 460a mov r2, r1
80109f0: 801a strh r2, [r3, #0]
pardata.amplif[ch].IPZ = (uint16_t) ((rx[17]) << 8 | rx[18]);
80109f2: 79fb ldrb r3, [r7, #7]
80109f4: 4a23 ldr r2, [pc, #140] ; (8010a84 <ReadChannel+0x37c>)
80109f6: 7c52 ldrb r2, [r2, #17]
80109f8: 0212 lsls r2, r2, #8
80109fa: b211 sxth r1, r2
80109fc: 4a21 ldr r2, [pc, #132] ; (8010a84 <ReadChannel+0x37c>)
80109fe: 7c92 ldrb r2, [r2, #18]
8010a00: b212 sxth r2, r2
8010a02: 430a orrs r2, r1
8010a04: b212 sxth r2, r2
8010a06: b291 uxth r1, r2
8010a08: 4a20 ldr r2, [pc, #128] ; (8010a8c <ReadChannel+0x384>)
8010a0a: 015b lsls r3, r3, #5
8010a0c: 4413 add r3, r2
8010a0e: 330e adds r3, #14
8010a10: 460a mov r2, r1
8010a12: 801a strh r2, [r3, #0]
pardata.amplif[ch].OPZ = (uint16_t) ((rx[19]) << 8 | rx[20]);
8010a14: 79fb ldrb r3, [r7, #7]
8010a16: 4a1b ldr r2, [pc, #108] ; (8010a84 <ReadChannel+0x37c>)
8010a18: 7cd2 ldrb r2, [r2, #19]
8010a1a: 0212 lsls r2, r2, #8
8010a1c: b211 sxth r1, r2
8010a1e: 4a19 ldr r2, [pc, #100] ; (8010a84 <ReadChannel+0x37c>)
8010a20: 7d12 ldrb r2, [r2, #20]
8010a22: b212 sxth r2, r2
8010a24: 430a orrs r2, r1
8010a26: b212 sxth r2, r2
8010a28: b291 uxth r1, r2
8010a2a: 4a18 ldr r2, [pc, #96] ; (8010a8c <ReadChannel+0x384>)
8010a2c: 015b lsls r3, r3, #5
8010a2e: 4413 add r3, r2
8010a30: 3310 adds r3, #16
8010a32: 460a mov r2, r1
8010a34: 801a strh r2, [r3, #0]
pardata.amplif[ch].VAL = (uint16_t) ((rx[21]) << 8 | rx[22]);
8010a36: 79fb ldrb r3, [r7, #7]
8010a38: 4a12 ldr r2, [pc, #72] ; (8010a84 <ReadChannel+0x37c>)
8010a3a: 7d52 ldrb r2, [r2, #21]
8010a3c: 0212 lsls r2, r2, #8
8010a3e: b211 sxth r1, r2
8010a40: 4a10 ldr r2, [pc, #64] ; (8010a84 <ReadChannel+0x37c>)
8010a42: 7d92 ldrb r2, [r2, #22]
8010a44: b212 sxth r2, r2
8010a46: 430a orrs r2, r1
8010a48: b212 sxth r2, r2
8010a4a: b291 uxth r1, r2
8010a4c: 4a0f ldr r2, [pc, #60] ; (8010a8c <ReadChannel+0x384>)
8010a4e: 015b lsls r3, r3, #5
8010a50: 4413 add r3, r2
8010a52: 3312 adds r3, #18
8010a54: 460a mov r2, r1
8010a56: 801a strh r2, [r3, #0]
return 0;
8010a58: 2300 movs r3, #0
8010a5a: e00d b.n 8010a78 <ReadChannel+0x370>
}
else
{
return (-1);
8010a5c: f04f 33ff mov.w r3, #4294967295
8010a60: e00a b.n 8010a78 <ReadChannel+0x370>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010a62: 2200 movs r2, #0
8010a64: f44f 7100 mov.w r1, #512 ; 0x200
8010a68: 4805 ldr r0, [pc, #20] ; (8010a80 <ReadChannel+0x378>)
8010a6a: f002 fb91 bl 8013190 <HAL_GPIO_WritePin>
return (-1);
8010a6e: f04f 33ff mov.w r3, #4294967295
8010a72: e001 b.n 8010a78 <ReadChannel+0x370>
}
}
return res;
8010a74: f997 3017 ldrsb.w r3, [r7, #23]
}
8010a78: 4618 mov r0, r3
8010a7a: 3718 adds r7, #24
8010a7c: 46bd mov sp, r7
8010a7e: bd80 pop {r7, pc}
8010a80: 40021400 .word 0x40021400
8010a84: 2006c39c .word 0x2006c39c
8010a88: 2006c314 .word 0x2006c314
8010a8c: 2006bb88 .word 0x2006bb88
08010a90 <WriteChannel>:
int8_t WriteChannel(uint8_t ch)
{
8010a90: b580 push {r7, lr}
8010a92: b086 sub sp, #24
8010a94: af00 add r7, sp, #0
8010a96: 4603 mov r3, r0
8010a98: 71fb strb r3, [r7, #7]
int8_t res = -1;
8010a9a: 23ff movs r3, #255 ; 0xff
8010a9c: 75fb strb r3, [r7, #23]
uint16_t i, len = 0;
8010a9e: 2300 movs r3, #0
8010aa0: 82bb strh r3, [r7, #20]
uint16_t crc;
__IO uint32_t timeout;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
8010aa2: 4ba8 ldr r3, [pc, #672] ; (8010d44 <WriteChannel+0x2b4>)
8010aa4: 681b ldr r3, [r3, #0]
8010aa6: 69db ldr r3, [r3, #28]
8010aa8: f003 0308 and.w r3, r3, #8
8010aac: 2b08 cmp r3, #8
8010aae: d103 bne.n 8010ab8 <WriteChannel+0x28>
__HAL_UART_CLEAR_OREFLAG(&huart7);
8010ab0: 4ba4 ldr r3, [pc, #656] ; (8010d44 <WriteChannel+0x2b4>)
8010ab2: 681b ldr r3, [r3, #0]
8010ab4: 2208 movs r2, #8
8010ab6: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
8010ab8: 4ba2 ldr r3, [pc, #648] ; (8010d44 <WriteChannel+0x2b4>)
8010aba: 681b ldr r3, [r3, #0]
8010abc: 69db ldr r3, [r3, #28]
8010abe: f003 0301 and.w r3, r3, #1
8010ac2: 2b01 cmp r3, #1
8010ac4: d103 bne.n 8010ace <WriteChannel+0x3e>
__HAL_UART_CLEAR_PEFLAG(&huart7);
8010ac6: 4b9f ldr r3, [pc, #636] ; (8010d44 <WriteChannel+0x2b4>)
8010ac8: 681b ldr r3, [r3, #0]
8010aca: 2201 movs r2, #1
8010acc: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
8010ace: 4b9d ldr r3, [pc, #628] ; (8010d44 <WriteChannel+0x2b4>)
8010ad0: 681b ldr r3, [r3, #0]
8010ad2: 69db ldr r3, [r3, #28]
8010ad4: f003 0302 and.w r3, r3, #2
8010ad8: 2b02 cmp r3, #2
8010ada: d103 bne.n 8010ae4 <WriteChannel+0x54>
__HAL_UART_CLEAR_FEFLAG(&huart7);
8010adc: 4b99 ldr r3, [pc, #612] ; (8010d44 <WriteChannel+0x2b4>)
8010ade: 681b ldr r3, [r3, #0]
8010ae0: 2202 movs r2, #2
8010ae2: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
8010ae4: 4b97 ldr r3, [pc, #604] ; (8010d44 <WriteChannel+0x2b4>)
8010ae6: 681b ldr r3, [r3, #0]
8010ae8: 69db ldr r3, [r3, #28]
8010aea: f003 0304 and.w r3, r3, #4
8010aee: 2b04 cmp r3, #4
8010af0: d103 bne.n 8010afa <WriteChannel+0x6a>
__HAL_UART_CLEAR_NEFLAG(&huart7);
8010af2: 4b94 ldr r3, [pc, #592] ; (8010d44 <WriteChannel+0x2b4>)
8010af4: 681b ldr r3, [r3, #0]
8010af6: 2204 movs r2, #4
8010af8: 621a str r2, [r3, #32]
HAL_Delay(20);
8010afa: 2014 movs r0, #20
8010afc: f001 f81c bl 8011b38 <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
8010b00: 2200 movs r2, #0
8010b02: 4b91 ldr r3, [pc, #580] ; (8010d48 <WriteChannel+0x2b8>)
8010b04: 4611 mov r1, r2
8010b06: 7019 strb r1, [r3, #0]
8010b08: 4b90 ldr r3, [pc, #576] ; (8010d4c <WriteChannel+0x2bc>)
8010b0a: 4611 mov r1, r2
8010b0c: 7019 strb r1, [r3, #0]
8010b0e: 4b90 ldr r3, [pc, #576] ; (8010d50 <WriteChannel+0x2c0>)
8010b10: 701a strb r2, [r3, #0]
len = 0;
8010b12: 2300 movs r3, #0
8010b14: 82bb strh r3, [r7, #20]
memset((void *) &rx, 0, sizeof(rx));
8010b16: f44f 7280 mov.w r2, #256 ; 0x100
8010b1a: 2100 movs r1, #0
8010b1c: 488d ldr r0, [pc, #564] ; (8010d54 <WriteChannel+0x2c4>)
8010b1e: f005 ff7e bl 8016a1e <memset>
iobuf[len++] = ch + 1;
8010b22: 8abb ldrh r3, [r7, #20]
8010b24: 1c5a adds r2, r3, #1
8010b26: 82ba strh r2, [r7, #20]
8010b28: 461a mov r2, r3
8010b2a: 79fb ldrb r3, [r7, #7]
8010b2c: 3301 adds r3, #1
8010b2e: b2d9 uxtb r1, r3
8010b30: 4b89 ldr r3, [pc, #548] ; (8010d58 <WriteChannel+0x2c8>)
8010b32: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x10;
8010b34: 8abb ldrh r3, [r7, #20]
8010b36: 1c5a adds r2, r3, #1
8010b38: 82ba strh r2, [r7, #20]
8010b3a: 461a mov r2, r3
8010b3c: 4b86 ldr r3, [pc, #536] ; (8010d58 <WriteChannel+0x2c8>)
8010b3e: 2110 movs r1, #16
8010b40: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(5001);
8010b42: 8abb ldrh r3, [r7, #20]
8010b44: 1c5a adds r2, r3, #1
8010b46: 82ba strh r2, [r7, #20]
8010b48: 461a mov r2, r3
8010b4a: 4b83 ldr r3, [pc, #524] ; (8010d58 <WriteChannel+0x2c8>)
8010b4c: 2113 movs r1, #19
8010b4e: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(5001);
8010b50: 8abb ldrh r3, [r7, #20]
8010b52: 1c5a adds r2, r3, #1
8010b54: 82ba strh r2, [r7, #20]
8010b56: 461a mov r2, r3
8010b58: 4b7f ldr r3, [pc, #508] ; (8010d58 <WriteChannel+0x2c8>)
8010b5a: 2189 movs r1, #137 ; 0x89
8010b5c: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
8010b5e: 8abb ldrh r3, [r7, #20]
8010b60: 1c5a adds r2, r3, #1
8010b62: 82ba strh r2, [r7, #20]
8010b64: 461a mov r2, r3
8010b66: 4b7c ldr r3, [pc, #496] ; (8010d58 <WriteChannel+0x2c8>)
8010b68: 2100 movs r1, #0
8010b6a: 5499 strb r1, [r3, r2]
iobuf[len++] = 10;
8010b6c: 8abb ldrh r3, [r7, #20]
8010b6e: 1c5a adds r2, r3, #1
8010b70: 82ba strh r2, [r7, #20]
8010b72: 461a mov r2, r3
8010b74: 4b78 ldr r3, [pc, #480] ; (8010d58 <WriteChannel+0x2c8>)
8010b76: 210a movs r1, #10
8010b78: 5499 strb r1, [r3, r2]
iobuf[len++] = 20;
8010b7a: 8abb ldrh r3, [r7, #20]
8010b7c: 1c5a adds r2, r3, #1
8010b7e: 82ba strh r2, [r7, #20]
8010b80: 461a mov r2, r3
8010b82: 4b75 ldr r3, [pc, #468] ; (8010d58 <WriteChannel+0x2c8>)
8010b84: 2114 movs r1, #20
8010b86: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
8010b88: 8abb ldrh r3, [r7, #20]
8010b8a: 1c5a adds r2, r3, #1
8010b8c: 82ba strh r2, [r7, #20]
8010b8e: 461a mov r2, r3
8010b90: 4b71 ldr r3, [pc, #452] ; (8010d58 <WriteChannel+0x2c8>)
8010b92: 2100 movs r1, #0
8010b94: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IIN;
8010b96: 8abb ldrh r3, [r7, #20]
8010b98: 1c5a adds r2, r3, #1
8010b9a: 82ba strh r2, [r7, #20]
8010b9c: 4619 mov r1, r3
8010b9e: 79fb ldrb r3, [r7, #7]
8010ba0: 4a6e ldr r2, [pc, #440] ; (8010d5c <WriteChannel+0x2cc>)
8010ba2: 015b lsls r3, r3, #5
8010ba4: 4413 add r3, r2
8010ba6: 881b ldrh r3, [r3, #0]
8010ba8: b29b uxth r3, r3
8010baa: b2da uxtb r2, r3
8010bac: 4b6a ldr r3, [pc, #424] ; (8010d58 <WriteChannel+0x2c8>)
8010bae: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
8010bb0: 8abb ldrh r3, [r7, #20]
8010bb2: 1c5a adds r2, r3, #1
8010bb4: 82ba strh r2, [r7, #20]
8010bb6: 461a mov r2, r3
8010bb8: 4b67 ldr r3, [pc, #412] ; (8010d58 <WriteChannel+0x2c8>)
8010bba: 2100 movs r1, #0
8010bbc: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IFV;
8010bbe: 8abb ldrh r3, [r7, #20]
8010bc0: 1c5a adds r2, r3, #1
8010bc2: 82ba strh r2, [r7, #20]
8010bc4: 4619 mov r1, r3
8010bc6: 79fb ldrb r3, [r7, #7]
8010bc8: 4a64 ldr r2, [pc, #400] ; (8010d5c <WriteChannel+0x2cc>)
8010bca: 015b lsls r3, r3, #5
8010bcc: 4413 add r3, r2
8010bce: 3302 adds r3, #2
8010bd0: 881b ldrh r3, [r3, #0]
8010bd2: b29b uxth r3, r3
8010bd4: b2da uxtb r2, r3
8010bd6: 4b60 ldr r3, [pc, #384] ; (8010d58 <WriteChannel+0x2c8>)
8010bd8: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
8010bda: 8abb ldrh r3, [r7, #20]
8010bdc: 1c5a adds r2, r3, #1
8010bde: 82ba strh r2, [r7, #20]
8010be0: 461a mov r2, r3
8010be2: 4b5d ldr r3, [pc, #372] ; (8010d58 <WriteChannel+0x2c8>)
8010be4: 2100 movs r1, #0
8010be6: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IFN;
8010be8: 8abb ldrh r3, [r7, #20]
8010bea: 1c5a adds r2, r3, #1
8010bec: 82ba strh r2, [r7, #20]
8010bee: 4619 mov r1, r3
8010bf0: 79fb ldrb r3, [r7, #7]
8010bf2: 4a5a ldr r2, [pc, #360] ; (8010d5c <WriteChannel+0x2cc>)
8010bf4: 015b lsls r3, r3, #5
8010bf6: 4413 add r3, r2
8010bf8: 3304 adds r3, #4
8010bfa: 881b ldrh r3, [r3, #0]
8010bfc: b29b uxth r3, r3
8010bfe: b2da uxtb r2, r3
8010c00: 4b55 ldr r3, [pc, #340] ; (8010d58 <WriteChannel+0x2c8>)
8010c02: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
8010c04: 8abb ldrh r3, [r7, #20]
8010c06: 1c5a adds r2, r3, #1
8010c08: 82ba strh r2, [r7, #20]
8010c0a: 461a mov r2, r3
8010c0c: 4b52 ldr r3, [pc, #328] ; (8010d58 <WriteChannel+0x2c8>)
8010c0e: 2100 movs r1, #0
8010c10: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IKU;
8010c12: 8abb ldrh r3, [r7, #20]
8010c14: 1c5a adds r2, r3, #1
8010c16: 82ba strh r2, [r7, #20]
8010c18: 4619 mov r1, r3
8010c1a: 79fb ldrb r3, [r7, #7]
8010c1c: 4a4f ldr r2, [pc, #316] ; (8010d5c <WriteChannel+0x2cc>)
8010c1e: 015b lsls r3, r3, #5
8010c20: 4413 add r3, r2
8010c22: 3306 adds r3, #6
8010c24: 881b ldrh r3, [r3, #0]
8010c26: b29b uxth r3, r3
8010c28: b2da uxtb r2, r3
8010c2a: 4b4b ldr r3, [pc, #300] ; (8010d58 <WriteChannel+0x2c8>)
8010c2c: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
8010c2e: 8abb ldrh r3, [r7, #20]
8010c30: 1c5a adds r2, r3, #1
8010c32: 82ba strh r2, [r7, #20]
8010c34: 461a mov r2, r3
8010c36: 4b48 ldr r3, [pc, #288] ; (8010d58 <WriteChannel+0x2c8>)
8010c38: 2100 movs r1, #0
8010c3a: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IKE;
8010c3c: 8abb ldrh r3, [r7, #20]
8010c3e: 1c5a adds r2, r3, #1
8010c40: 82ba strh r2, [r7, #20]
8010c42: 4619 mov r1, r3
8010c44: 79fb ldrb r3, [r7, #7]
8010c46: 4a45 ldr r2, [pc, #276] ; (8010d5c <WriteChannel+0x2cc>)
8010c48: 015b lsls r3, r3, #5
8010c4a: 4413 add r3, r2
8010c4c: 3308 adds r3, #8
8010c4e: 881b ldrh r3, [r3, #0]
8010c50: b29b uxth r3, r3
8010c52: b2da uxtb r2, r3
8010c54: 4b40 ldr r3, [pc, #256] ; (8010d58 <WriteChannel+0x2c8>)
8010c56: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
8010c58: 8abb ldrh r3, [r7, #20]
8010c5a: 1c5a adds r2, r3, #1
8010c5c: 82ba strh r2, [r7, #20]
8010c5e: 461a mov r2, r3
8010c60: 4b3d ldr r3, [pc, #244] ; (8010d58 <WriteChannel+0x2c8>)
8010c62: 2100 movs r1, #0
8010c64: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IKD;
8010c66: 8abb ldrh r3, [r7, #20]
8010c68: 1c5a adds r2, r3, #1
8010c6a: 82ba strh r2, [r7, #20]
8010c6c: 4619 mov r1, r3
8010c6e: 79fb ldrb r3, [r7, #7]
8010c70: 4a3a ldr r2, [pc, #232] ; (8010d5c <WriteChannel+0x2cc>)
8010c72: 015b lsls r3, r3, #5
8010c74: 4413 add r3, r2
8010c76: 330a adds r3, #10
8010c78: 881b ldrh r3, [r3, #0]
8010c7a: b29b uxth r3, r3
8010c7c: b2da uxtb r2, r3
8010c7e: 4b36 ldr r3, [pc, #216] ; (8010d58 <WriteChannel+0x2c8>)
8010c80: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
8010c82: 8abb ldrh r3, [r7, #20]
8010c84: 1c5a adds r2, r3, #1
8010c86: 82ba strh r2, [r7, #20]
8010c88: 461a mov r2, r3
8010c8a: 4b33 ldr r3, [pc, #204] ; (8010d58 <WriteChannel+0x2c8>)
8010c8c: 2100 movs r1, #0
8010c8e: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IKS;
8010c90: 8abb ldrh r3, [r7, #20]
8010c92: 1c5a adds r2, r3, #1
8010c94: 82ba strh r2, [r7, #20]
8010c96: 4619 mov r1, r3
8010c98: 79fb ldrb r3, [r7, #7]
8010c9a: 4a30 ldr r2, [pc, #192] ; (8010d5c <WriteChannel+0x2cc>)
8010c9c: 015b lsls r3, r3, #5
8010c9e: 4413 add r3, r2
8010ca0: 330c adds r3, #12
8010ca2: 881b ldrh r3, [r3, #0]
8010ca4: b29b uxth r3, r3
8010ca6: b2da uxtb r2, r3
8010ca8: 4b2b ldr r3, [pc, #172] ; (8010d58 <WriteChannel+0x2c8>)
8010caa: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
8010cac: 8abb ldrh r3, [r7, #20]
8010cae: 1c5a adds r2, r3, #1
8010cb0: 82ba strh r2, [r7, #20]
8010cb2: 461a mov r2, r3
8010cb4: 4b28 ldr r3, [pc, #160] ; (8010d58 <WriteChannel+0x2c8>)
8010cb6: 2100 movs r1, #0
8010cb8: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IPZ;
8010cba: 8abb ldrh r3, [r7, #20]
8010cbc: 1c5a adds r2, r3, #1
8010cbe: 82ba strh r2, [r7, #20]
8010cc0: 4619 mov r1, r3
8010cc2: 79fb ldrb r3, [r7, #7]
8010cc4: 4a25 ldr r2, [pc, #148] ; (8010d5c <WriteChannel+0x2cc>)
8010cc6: 015b lsls r3, r3, #5
8010cc8: 4413 add r3, r2
8010cca: 330e adds r3, #14
8010ccc: 881b ldrh r3, [r3, #0]
8010cce: b29b uxth r3, r3
8010cd0: b2da uxtb r2, r3
8010cd2: 4b21 ldr r3, [pc, #132] ; (8010d58 <WriteChannel+0x2c8>)
8010cd4: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
8010cd6: 8abb ldrh r3, [r7, #20]
8010cd8: 1c5a adds r2, r3, #1
8010cda: 82ba strh r2, [r7, #20]
8010cdc: 461a mov r2, r3
8010cde: 4b1e ldr r3, [pc, #120] ; (8010d58 <WriteChannel+0x2c8>)
8010ce0: 2100 movs r1, #0
8010ce2: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].OPZ;
8010ce4: 8abb ldrh r3, [r7, #20]
8010ce6: 1c5a adds r2, r3, #1
8010ce8: 82ba strh r2, [r7, #20]
8010cea: 4619 mov r1, r3
8010cec: 79fb ldrb r3, [r7, #7]
8010cee: 4a1b ldr r2, [pc, #108] ; (8010d5c <WriteChannel+0x2cc>)
8010cf0: 015b lsls r3, r3, #5
8010cf2: 4413 add r3, r2
8010cf4: 3310 adds r3, #16
8010cf6: 881b ldrh r3, [r3, #0]
8010cf8: b29b uxth r3, r3
8010cfa: b2da uxtb r2, r3
8010cfc: 4b16 ldr r3, [pc, #88] ; (8010d58 <WriteChannel+0x2c8>)
8010cfe: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
8010d00: 8abb ldrh r3, [r7, #20]
8010d02: 1c5a adds r2, r3, #1
8010d04: 82ba strh r2, [r7, #20]
8010d06: 461a mov r2, r3
8010d08: 4b13 ldr r3, [pc, #76] ; (8010d58 <WriteChannel+0x2c8>)
8010d0a: 2100 movs r1, #0
8010d0c: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].VAL;
8010d0e: 8abb ldrh r3, [r7, #20]
8010d10: 1c5a adds r2, r3, #1
8010d12: 82ba strh r2, [r7, #20]
8010d14: 4619 mov r1, r3
8010d16: 79fb ldrb r3, [r7, #7]
8010d18: 4a10 ldr r2, [pc, #64] ; (8010d5c <WriteChannel+0x2cc>)
8010d1a: 015b lsls r3, r3, #5
8010d1c: 4413 add r3, r2
8010d1e: 3312 adds r3, #18
8010d20: 881b ldrh r3, [r3, #0]
8010d22: b29b uxth r3, r3
8010d24: b2da uxtb r2, r3
8010d26: 4b0c ldr r3, [pc, #48] ; (8010d58 <WriteChannel+0x2c8>)
8010d28: 545a strb r2, [r3, r1]
crc = Crc16(len);
8010d2a: 8abb ldrh r3, [r7, #20]
8010d2c: 4618 mov r0, r3
8010d2e: f7ff fb29 bl 8010384 <Crc16>
8010d32: 4603 mov r3, r0
8010d34: 827b strh r3, [r7, #18]
iobuf[len++] = LO(crc);
8010d36: 8abb ldrh r3, [r7, #20]
8010d38: 1c5a adds r2, r3, #1
8010d3a: 82ba strh r2, [r7, #20]
8010d3c: 461a mov r2, r3
8010d3e: 8a7b ldrh r3, [r7, #18]
8010d40: b2d9 uxtb r1, r3
8010d42: e00d b.n 8010d60 <WriteChannel+0x2d0>
8010d44: 2006c314 .word 0x2006c314
8010d48: 2006b971 .word 0x2006b971
8010d4c: 2006b973 .word 0x2006b973
8010d50: 2006b972 .word 0x2006b972
8010d54: 2006c39c .word 0x2006c39c
8010d58: 2006c4a4 .word 0x2006c4a4
8010d5c: 2006bb88 .word 0x2006bb88
8010d60: 4b44 ldr r3, [pc, #272] ; (8010e74 <WriteChannel+0x3e4>)
8010d62: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
8010d64: 8abb ldrh r3, [r7, #20]
8010d66: 1c5a adds r2, r3, #1
8010d68: 82ba strh r2, [r7, #20]
8010d6a: 461a mov r2, r3
8010d6c: 8a7b ldrh r3, [r7, #18]
8010d6e: 0a1b lsrs r3, r3, #8
8010d70: b29b uxth r3, r3
8010d72: b2d9 uxtb r1, r3
8010d74: 4b3f ldr r3, [pc, #252] ; (8010e74 <WriteChannel+0x3e4>)
8010d76: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
8010d78: f000 fed2 bl 8011b20 <HAL_GetTick>
8010d7c: 4603 mov r3, r0
8010d7e: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
8010d80: 2201 movs r2, #1
8010d82: f44f 7100 mov.w r1, #512 ; 0x200
8010d86: 483c ldr r0, [pc, #240] ; (8010e78 <WriteChannel+0x3e8>)
8010d88: f002 fa02 bl 8013190 <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
8010d8c: 8abb ldrh r3, [r7, #20]
8010d8e: 461a mov r2, r3
8010d90: 4938 ldr r1, [pc, #224] ; (8010e74 <WriteChannel+0x3e4>)
8010d92: 483a ldr r0, [pc, #232] ; (8010e7c <WriteChannel+0x3ec>)
8010d94: f004 fb2a bl 80153ec <HAL_UART_Transmit_IT>
8010d98: 4603 mov r3, r0
8010d9a: 2b00 cmp r3, #0
8010d9c: d163 bne.n 8010e66 <WriteChannel+0x3d6>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 200));
8010d9e: bf00 nop
8010da0: 4b37 ldr r3, [pc, #220] ; (8010e80 <WriteChannel+0x3f0>)
8010da2: 781b ldrb r3, [r3, #0]
8010da4: b2db uxtb r3, r3
8010da6: f083 0301 eor.w r3, r3, #1
8010daa: b2db uxtb r3, r3
8010dac: 2b00 cmp r3, #0
8010dae: d006 beq.n 8010dbe <WriteChannel+0x32e>
8010db0: f000 feb6 bl 8011b20 <HAL_GetTick>
8010db4: 4602 mov r2, r0
8010db6: 68fb ldr r3, [r7, #12]
8010db8: 1ad3 subs r3, r2, r3
8010dba: 2bc7 cmp r3, #199 ; 0xc7
8010dbc: d9f0 bls.n 8010da0 <WriteChannel+0x310>
if(!TX_OK)
8010dbe: 4b30 ldr r3, [pc, #192] ; (8010e80 <WriteChannel+0x3f0>)
8010dc0: 781b ldrb r3, [r3, #0]
8010dc2: b2db uxtb r3, r3
8010dc4: f083 0301 eor.w r3, r3, #1
8010dc8: b2db uxtb r3, r3
8010dca: 2b00 cmp r3, #0
8010dcc: d00b beq.n 8010de6 <WriteChannel+0x356>
{
HAL_UART_Abort_IT(&huart7);
8010dce: 482b ldr r0, [pc, #172] ; (8010e7c <WriteChannel+0x3ec>)
8010dd0: f004 fb7a bl 80154c8 <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010dd4: 2200 movs r2, #0
8010dd6: f44f 7100 mov.w r1, #512 ; 0x200
8010dda: 4827 ldr r0, [pc, #156] ; (8010e78 <WriteChannel+0x3e8>)
8010ddc: f002 f9d8 bl 8013190 <HAL_GPIO_WritePin>
return (-1);
8010de0: f04f 33ff mov.w r3, #4294967295
8010de4: e041 b.n 8010e6a <WriteChannel+0x3da>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010de6: 2200 movs r2, #0
8010de8: f44f 7100 mov.w r1, #512 ; 0x200
8010dec: 4822 ldr r0, [pc, #136] ; (8010e78 <WriteChannel+0x3e8>)
8010dee: f002 f9cf bl 8013190 <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
8010df2: 2364 movs r3, #100 ; 0x64
8010df4: 2201 movs r2, #1
8010df6: 4923 ldr r1, [pc, #140] ; (8010e84 <WriteChannel+0x3f4>)
8010df8: 4820 ldr r0, [pc, #128] ; (8010e7c <WriteChannel+0x3ec>)
8010dfa: f004 fa27 bl 801524c <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK)
8010dfe: f44f 73fa mov.w r3, #500 ; 0x1f4
8010e02: 2208 movs r2, #8
8010e04: 491f ldr r1, [pc, #124] ; (8010e84 <WriteChannel+0x3f4>)
8010e06: 481d ldr r0, [pc, #116] ; (8010e7c <WriteChannel+0x3ec>)
8010e08: f004 fa20 bl 801524c <HAL_UART_Receive>
8010e0c: 4603 mov r3, r0
8010e0e: 2b00 cmp r3, #0
8010e10: d120 bne.n 8010e54 <WriteChannel+0x3c4>
{
crc = (uint16_t) ((rx[7]) << 8 | rx[6]);
8010e12: 4b1c ldr r3, [pc, #112] ; (8010e84 <WriteChannel+0x3f4>)
8010e14: 79db ldrb r3, [r3, #7]
8010e16: 021b lsls r3, r3, #8
8010e18: b21a sxth r2, r3
8010e1a: 4b1a ldr r3, [pc, #104] ; (8010e84 <WriteChannel+0x3f4>)
8010e1c: 799b ldrb r3, [r3, #6]
8010e1e: b21b sxth r3, r3
8010e20: 4313 orrs r3, r2
8010e22: b21b sxth r3, r3
8010e24: 827b strh r3, [r7, #18]
if(crc == Crc16_RX(6))
8010e26: 2006 movs r0, #6
8010e28: f7ff fad8 bl 80103dc <Crc16_RX>
8010e2c: 4603 mov r3, r0
8010e2e: 461a mov r2, r3
8010e30: 8a7b ldrh r3, [r7, #18]
8010e32: 4293 cmp r3, r2
8010e34: d10b bne.n 8010e4e <WriteChannel+0x3be>
{
if(rx[0] == (ch + 1))
8010e36: 4b13 ldr r3, [pc, #76] ; (8010e84 <WriteChannel+0x3f4>)
8010e38: 781b ldrb r3, [r3, #0]
8010e3a: 461a mov r2, r3
8010e3c: 79fb ldrb r3, [r7, #7]
8010e3e: 3301 adds r3, #1
8010e40: 429a cmp r2, r3
8010e42: d101 bne.n 8010e48 <WriteChannel+0x3b8>
return 0;
8010e44: 2300 movs r3, #0
8010e46: e010 b.n 8010e6a <WriteChannel+0x3da>
else return (-1);
8010e48: f04f 33ff mov.w r3, #4294967295
8010e4c: e00d b.n 8010e6a <WriteChannel+0x3da>
}
else
{
return (-1);
8010e4e: f04f 33ff mov.w r3, #4294967295
8010e52: e00a b.n 8010e6a <WriteChannel+0x3da>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010e54: 2200 movs r2, #0
8010e56: f44f 7100 mov.w r1, #512 ; 0x200
8010e5a: 4807 ldr r0, [pc, #28] ; (8010e78 <WriteChannel+0x3e8>)
8010e5c: f002 f998 bl 8013190 <HAL_GPIO_WritePin>
return (-1);
8010e60: f04f 33ff mov.w r3, #4294967295
8010e64: e001 b.n 8010e6a <WriteChannel+0x3da>
}
}
return res;
8010e66: f997 3017 ldrsb.w r3, [r7, #23]
}
8010e6a: 4618 mov r0, r3
8010e6c: 3718 adds r7, #24
8010e6e: 46bd mov sp, r7
8010e70: bd80 pop {r7, pc}
8010e72: bf00 nop
8010e74: 2006c4a4 .word 0x2006c4a4
8010e78: 40021400 .word 0x40021400
8010e7c: 2006c314 .word 0x2006c314
8010e80: 2006b972 .word 0x2006b972
8010e84: 2006c39c .word 0x2006c39c
08010e88 <ReadChannelSens>:
int8_t ReadChannelSens(uint8_t ch)
{
8010e88: b580 push {r7, lr}
8010e8a: b086 sub sp, #24
8010e8c: af00 add r7, sp, #0
8010e8e: 4603 mov r3, r0
8010e90: 71fb strb r3, [r7, #7]
int8_t res = -1;
8010e92: 23ff movs r3, #255 ; 0xff
8010e94: 75fb strb r3, [r7, #23]
uint16_t i, len = 0, cnt = 0;
8010e96: 2300 movs r3, #0
8010e98: 82bb strh r3, [r7, #20]
8010e9a: 2300 movs r3, #0
8010e9c: 827b strh r3, [r7, #18]
uint16_t crc;
__IO uint32_t timeout;
sfloat f;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
8010e9e: 4b8a ldr r3, [pc, #552] ; (80110c8 <ReadChannelSens+0x240>)
8010ea0: 681b ldr r3, [r3, #0]
8010ea2: 69db ldr r3, [r3, #28]
8010ea4: f003 0308 and.w r3, r3, #8
8010ea8: 2b08 cmp r3, #8
8010eaa: d103 bne.n 8010eb4 <ReadChannelSens+0x2c>
__HAL_UART_CLEAR_OREFLAG(&huart7);
8010eac: 4b86 ldr r3, [pc, #536] ; (80110c8 <ReadChannelSens+0x240>)
8010eae: 681b ldr r3, [r3, #0]
8010eb0: 2208 movs r2, #8
8010eb2: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
8010eb4: 4b84 ldr r3, [pc, #528] ; (80110c8 <ReadChannelSens+0x240>)
8010eb6: 681b ldr r3, [r3, #0]
8010eb8: 69db ldr r3, [r3, #28]
8010eba: f003 0301 and.w r3, r3, #1
8010ebe: 2b01 cmp r3, #1
8010ec0: d103 bne.n 8010eca <ReadChannelSens+0x42>
__HAL_UART_CLEAR_PEFLAG(&huart7);
8010ec2: 4b81 ldr r3, [pc, #516] ; (80110c8 <ReadChannelSens+0x240>)
8010ec4: 681b ldr r3, [r3, #0]
8010ec6: 2201 movs r2, #1
8010ec8: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
8010eca: 4b7f ldr r3, [pc, #508] ; (80110c8 <ReadChannelSens+0x240>)
8010ecc: 681b ldr r3, [r3, #0]
8010ece: 69db ldr r3, [r3, #28]
8010ed0: f003 0302 and.w r3, r3, #2
8010ed4: 2b02 cmp r3, #2
8010ed6: d103 bne.n 8010ee0 <ReadChannelSens+0x58>
__HAL_UART_CLEAR_FEFLAG(&huart7);
8010ed8: 4b7b ldr r3, [pc, #492] ; (80110c8 <ReadChannelSens+0x240>)
8010eda: 681b ldr r3, [r3, #0]
8010edc: 2202 movs r2, #2
8010ede: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
8010ee0: 4b79 ldr r3, [pc, #484] ; (80110c8 <ReadChannelSens+0x240>)
8010ee2: 681b ldr r3, [r3, #0]
8010ee4: 69db ldr r3, [r3, #28]
8010ee6: f003 0304 and.w r3, r3, #4
8010eea: 2b04 cmp r3, #4
8010eec: d103 bne.n 8010ef6 <ReadChannelSens+0x6e>
__HAL_UART_CLEAR_NEFLAG(&huart7);
8010eee: 4b76 ldr r3, [pc, #472] ; (80110c8 <ReadChannelSens+0x240>)
8010ef0: 681b ldr r3, [r3, #0]
8010ef2: 2204 movs r2, #4
8010ef4: 621a str r2, [r3, #32]
HAL_Delay(20);
8010ef6: 2014 movs r0, #20
8010ef8: f000 fe1e bl 8011b38 <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
8010efc: 2200 movs r2, #0
8010efe: 4b73 ldr r3, [pc, #460] ; (80110cc <ReadChannelSens+0x244>)
8010f00: 4611 mov r1, r2
8010f02: 7019 strb r1, [r3, #0]
8010f04: 4b72 ldr r3, [pc, #456] ; (80110d0 <ReadChannelSens+0x248>)
8010f06: 4611 mov r1, r2
8010f08: 7019 strb r1, [r3, #0]
8010f0a: 4b72 ldr r3, [pc, #456] ; (80110d4 <ReadChannelSens+0x24c>)
8010f0c: 701a strb r2, [r3, #0]
len = 0;
8010f0e: 2300 movs r3, #0
8010f10: 82bb strh r3, [r7, #20]
memset((void *) &rx, 0, sizeof(rx));
8010f12: f44f 7280 mov.w r2, #256 ; 0x100
8010f16: 2100 movs r1, #0
8010f18: 486f ldr r0, [pc, #444] ; (80110d8 <ReadChannelSens+0x250>)
8010f1a: f005 fd80 bl 8016a1e <memset>
iobuf[len++] = ch + 1;
8010f1e: 8abb ldrh r3, [r7, #20]
8010f20: 1c5a adds r2, r3, #1
8010f22: 82ba strh r2, [r7, #20]
8010f24: 461a mov r2, r3
8010f26: 79fb ldrb r3, [r7, #7]
8010f28: 3301 adds r3, #1
8010f2a: b2d9 uxtb r1, r3
8010f2c: 4b6b ldr r3, [pc, #428] ; (80110dc <ReadChannelSens+0x254>)
8010f2e: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x03;
8010f30: 8abb ldrh r3, [r7, #20]
8010f32: 1c5a adds r2, r3, #1
8010f34: 82ba strh r2, [r7, #20]
8010f36: 461a mov r2, r3
8010f38: 4b68 ldr r3, [pc, #416] ; (80110dc <ReadChannelSens+0x254>)
8010f3a: 2103 movs r1, #3
8010f3c: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(7502);
8010f3e: 8abb ldrh r3, [r7, #20]
8010f40: 1c5a adds r2, r3, #1
8010f42: 82ba strh r2, [r7, #20]
8010f44: 461a mov r2, r3
8010f46: 4b65 ldr r3, [pc, #404] ; (80110dc <ReadChannelSens+0x254>)
8010f48: 211d movs r1, #29
8010f4a: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(7502);
8010f4c: 8abb ldrh r3, [r7, #20]
8010f4e: 1c5a adds r2, r3, #1
8010f50: 82ba strh r2, [r7, #20]
8010f52: 461a mov r2, r3
8010f54: 4b61 ldr r3, [pc, #388] ; (80110dc <ReadChannelSens+0x254>)
8010f56: 214e movs r1, #78 ; 0x4e
8010f58: 5499 strb r1, [r3, r2]
iobuf[len++] = 0; //
8010f5a: 8abb ldrh r3, [r7, #20]
8010f5c: 1c5a adds r2, r3, #1
8010f5e: 82ba strh r2, [r7, #20]
8010f60: 461a mov r2, r3
8010f62: 4b5e ldr r3, [pc, #376] ; (80110dc <ReadChannelSens+0x254>)
8010f64: 2100 movs r1, #0
8010f66: 5499 strb r1, [r3, r2]
iobuf[len++] = 1; // SENS
8010f68: 8abb ldrh r3, [r7, #20]
8010f6a: 1c5a adds r2, r3, #1
8010f6c: 82ba strh r2, [r7, #20]
8010f6e: 461a mov r2, r3
8010f70: 4b5a ldr r3, [pc, #360] ; (80110dc <ReadChannelSens+0x254>)
8010f72: 2101 movs r1, #1
8010f74: 5499 strb r1, [r3, r2]
crc = Crc16(len);
8010f76: 8abb ldrh r3, [r7, #20]
8010f78: 4618 mov r0, r3
8010f7a: f7ff fa03 bl 8010384 <Crc16>
8010f7e: 4603 mov r3, r0
8010f80: 823b strh r3, [r7, #16]
iobuf[len++] = LO(crc);
8010f82: 8abb ldrh r3, [r7, #20]
8010f84: 1c5a adds r2, r3, #1
8010f86: 82ba strh r2, [r7, #20]
8010f88: 461a mov r2, r3
8010f8a: 8a3b ldrh r3, [r7, #16]
8010f8c: b2d9 uxtb r1, r3
8010f8e: 4b53 ldr r3, [pc, #332] ; (80110dc <ReadChannelSens+0x254>)
8010f90: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
8010f92: 8abb ldrh r3, [r7, #20]
8010f94: 1c5a adds r2, r3, #1
8010f96: 82ba strh r2, [r7, #20]
8010f98: 461a mov r2, r3
8010f9a: 8a3b ldrh r3, [r7, #16]
8010f9c: 0a1b lsrs r3, r3, #8
8010f9e: b29b uxth r3, r3
8010fa0: b2d9 uxtb r1, r3
8010fa2: 4b4e ldr r3, [pc, #312] ; (80110dc <ReadChannelSens+0x254>)
8010fa4: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
8010fa6: f000 fdbb bl 8011b20 <HAL_GetTick>
8010faa: 4603 mov r3, r0
8010fac: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
8010fae: 2201 movs r2, #1
8010fb0: f44f 7100 mov.w r1, #512 ; 0x200
8010fb4: 484a ldr r0, [pc, #296] ; (80110e0 <ReadChannelSens+0x258>)
8010fb6: f002 f8eb bl 8013190 <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
8010fba: 8abb ldrh r3, [r7, #20]
8010fbc: 461a mov r2, r3
8010fbe: 4947 ldr r1, [pc, #284] ; (80110dc <ReadChannelSens+0x254>)
8010fc0: 4841 ldr r0, [pc, #260] ; (80110c8 <ReadChannelSens+0x240>)
8010fc2: f004 fa13 bl 80153ec <HAL_UART_Transmit_IT>
8010fc6: 4603 mov r3, r0
8010fc8: 2b00 cmp r3, #0
8010fca: d177 bne.n 80110bc <ReadChannelSens+0x234>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 50));
8010fcc: bf00 nop
8010fce: 4b41 ldr r3, [pc, #260] ; (80110d4 <ReadChannelSens+0x24c>)
8010fd0: 781b ldrb r3, [r3, #0]
8010fd2: b2db uxtb r3, r3
8010fd4: f083 0301 eor.w r3, r3, #1
8010fd8: b2db uxtb r3, r3
8010fda: 2b00 cmp r3, #0
8010fdc: d006 beq.n 8010fec <ReadChannelSens+0x164>
8010fde: f000 fd9f bl 8011b20 <HAL_GetTick>
8010fe2: 4602 mov r2, r0
8010fe4: 68fb ldr r3, [r7, #12]
8010fe6: 1ad3 subs r3, r2, r3
8010fe8: 2b31 cmp r3, #49 ; 0x31
8010fea: d9f0 bls.n 8010fce <ReadChannelSens+0x146>
if(!TX_OK)
8010fec: 4b39 ldr r3, [pc, #228] ; (80110d4 <ReadChannelSens+0x24c>)
8010fee: 781b ldrb r3, [r3, #0]
8010ff0: b2db uxtb r3, r3
8010ff2: f083 0301 eor.w r3, r3, #1
8010ff6: b2db uxtb r3, r3
8010ff8: 2b00 cmp r3, #0
8010ffa: d00b beq.n 8011014 <ReadChannelSens+0x18c>
{
HAL_UART_Abort_IT(&huart7);
8010ffc: 4832 ldr r0, [pc, #200] ; (80110c8 <ReadChannelSens+0x240>)
8010ffe: f004 fa63 bl 80154c8 <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8011002: 2200 movs r2, #0
8011004: f44f 7100 mov.w r1, #512 ; 0x200
8011008: 4835 ldr r0, [pc, #212] ; (80110e0 <ReadChannelSens+0x258>)
801100a: f002 f8c1 bl 8013190 <HAL_GPIO_WritePin>
return (-1);
801100e: f04f 33ff mov.w r3, #4294967295
8011012: e055 b.n 80110c0 <ReadChannelSens+0x238>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8011014: 2200 movs r2, #0
8011016: f44f 7100 mov.w r1, #512 ; 0x200
801101a: 4831 ldr r0, [pc, #196] ; (80110e0 <ReadChannelSens+0x258>)
801101c: f002 f8b8 bl 8013190 <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
8011020: 2364 movs r3, #100 ; 0x64
8011022: 2201 movs r2, #1
8011024: 492c ldr r1, [pc, #176] ; (80110d8 <ReadChannelSens+0x250>)
8011026: 4828 ldr r0, [pc, #160] ; (80110c8 <ReadChannelSens+0x240>)
8011028: f004 f910 bl 801524c <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 9, 100) == HAL_OK)
801102c: 2364 movs r3, #100 ; 0x64
801102e: 2209 movs r2, #9
8011030: 4929 ldr r1, [pc, #164] ; (80110d8 <ReadChannelSens+0x250>)
8011032: 4825 ldr r0, [pc, #148] ; (80110c8 <ReadChannelSens+0x240>)
8011034: f004 f90a bl 801524c <HAL_UART_Receive>
8011038: 4603 mov r3, r0
801103a: 2b00 cmp r3, #0
801103c: d135 bne.n 80110aa <ReadChannelSens+0x222>
{
crc = (uint16_t) ((rx[8]) << 8 | rx[7]);
801103e: 4b26 ldr r3, [pc, #152] ; (80110d8 <ReadChannelSens+0x250>)
8011040: 7a1b ldrb r3, [r3, #8]
8011042: 021b lsls r3, r3, #8
8011044: b21a sxth r2, r3
8011046: 4b24 ldr r3, [pc, #144] ; (80110d8 <ReadChannelSens+0x250>)
8011048: 79db ldrb r3, [r3, #7]
801104a: b21b sxth r3, r3
801104c: 4313 orrs r3, r2
801104e: b21b sxth r3, r3
8011050: 823b strh r3, [r7, #16]
if(crc == Crc16_RX(7))
8011052: 2007 movs r0, #7
8011054: f7ff f9c2 bl 80103dc <Crc16_RX>
8011058: 4603 mov r3, r0
801105a: 461a mov r2, r3
801105c: 8a3b ldrh r3, [r7, #16]
801105e: 4293 cmp r3, r2
8011060: d120 bne.n 80110a4 <ReadChannelSens+0x21c>
{
f.ch[3] = rx[3];
8011062: 4b1d ldr r3, [pc, #116] ; (80110d8 <ReadChannelSens+0x250>)
8011064: 78db ldrb r3, [r3, #3]
8011066: 72fb strb r3, [r7, #11]
f.ch[2] = rx[4];
8011068: 4b1b ldr r3, [pc, #108] ; (80110d8 <ReadChannelSens+0x250>)
801106a: 791b ldrb r3, [r3, #4]
801106c: 72bb strb r3, [r7, #10]
f.ch[1] = rx[5];
801106e: 4b1a ldr r3, [pc, #104] ; (80110d8 <ReadChannelSens+0x250>)
8011070: 795b ldrb r3, [r3, #5]
8011072: 727b strb r3, [r7, #9]
f.ch[0] = rx[6];
8011074: 4b18 ldr r3, [pc, #96] ; (80110d8 <ReadChannelSens+0x250>)
8011076: 799b ldrb r3, [r3, #6]
8011078: 723b strb r3, [r7, #8]
if(f.fl < 0.0001f) {
801107a: edd7 7a02 vldr s15, [r7, #8]
801107e: ed9f 7a19 vldr s14, [pc, #100] ; 80110e4 <ReadChannelSens+0x25c>
8011082: eef4 7ac7 vcmpe.f32 s15, s14
8011086: eef1 fa10 vmrs APSR_nzcv, fpscr
801108a: d502 bpl.n 8011092 <ReadChannelSens+0x20a>
return (-1);
801108c: f04f 33ff mov.w r3, #4294967295
8011090: e016 b.n 80110c0 <ReadChannelSens+0x238>
}
else
{
pardata.amplif[ch].SENS = f.fl;
8011092: 79fb ldrb r3, [r7, #7]
8011094: 68ba ldr r2, [r7, #8]
8011096: 4914 ldr r1, [pc, #80] ; (80110e8 <ReadChannelSens+0x260>)
8011098: 015b lsls r3, r3, #5
801109a: 440b add r3, r1
801109c: 3318 adds r3, #24
801109e: 601a str r2, [r3, #0]
}
return 0;
80110a0: 2300 movs r3, #0
80110a2: e00d b.n 80110c0 <ReadChannelSens+0x238>
}
else
{
return (-1);
80110a4: f04f 33ff mov.w r3, #4294967295
80110a8: e00a b.n 80110c0 <ReadChannelSens+0x238>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
80110aa: 2200 movs r2, #0
80110ac: f44f 7100 mov.w r1, #512 ; 0x200
80110b0: 480b ldr r0, [pc, #44] ; (80110e0 <ReadChannelSens+0x258>)
80110b2: f002 f86d bl 8013190 <HAL_GPIO_WritePin>
return (-1);
80110b6: f04f 33ff mov.w r3, #4294967295
80110ba: e001 b.n 80110c0 <ReadChannelSens+0x238>
}
}
return res;
80110bc: f997 3017 ldrsb.w r3, [r7, #23]
}
80110c0: 4618 mov r0, r3
80110c2: 3718 adds r7, #24
80110c4: 46bd mov sp, r7
80110c6: bd80 pop {r7, pc}
80110c8: 2006c314 .word 0x2006c314
80110cc: 2006b971 .word 0x2006b971
80110d0: 2006b973 .word 0x2006b973
80110d4: 2006b972 .word 0x2006b972
80110d8: 2006c39c .word 0x2006c39c
80110dc: 2006c4a4 .word 0x2006c4a4
80110e0: 40021400 .word 0x40021400
80110e4: 38d1b717 .word 0x38d1b717
80110e8: 2006bb88 .word 0x2006bb88
080110ec <WriteChannelSens>:
int8_t WriteChannelSens(uint8_t ch)
{
80110ec: b580 push {r7, lr}
80110ee: b086 sub sp, #24
80110f0: af00 add r7, sp, #0
80110f2: 4603 mov r3, r0
80110f4: 71fb strb r3, [r7, #7]
int8_t res = -1;
80110f6: 23ff movs r3, #255 ; 0xff
80110f8: 75fb strb r3, [r7, #23]
uint16_t i, len = 0;
80110fa: 2300 movs r3, #0
80110fc: 82bb strh r3, [r7, #20]
uint16_t crc;
__IO uint32_t timeout;
sfloat f;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
80110fe: 4b95 ldr r3, [pc, #596] ; (8011354 <WriteChannelSens+0x268>)
8011100: 681b ldr r3, [r3, #0]
8011102: 69db ldr r3, [r3, #28]
8011104: f003 0308 and.w r3, r3, #8
8011108: 2b08 cmp r3, #8
801110a: d103 bne.n 8011114 <WriteChannelSens+0x28>
__HAL_UART_CLEAR_OREFLAG(&huart7);
801110c: 4b91 ldr r3, [pc, #580] ; (8011354 <WriteChannelSens+0x268>)
801110e: 681b ldr r3, [r3, #0]
8011110: 2208 movs r2, #8
8011112: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
8011114: 4b8f ldr r3, [pc, #572] ; (8011354 <WriteChannelSens+0x268>)
8011116: 681b ldr r3, [r3, #0]
8011118: 69db ldr r3, [r3, #28]
801111a: f003 0301 and.w r3, r3, #1
801111e: 2b01 cmp r3, #1
8011120: d103 bne.n 801112a <WriteChannelSens+0x3e>
__HAL_UART_CLEAR_PEFLAG(&huart7);
8011122: 4b8c ldr r3, [pc, #560] ; (8011354 <WriteChannelSens+0x268>)
8011124: 681b ldr r3, [r3, #0]
8011126: 2201 movs r2, #1
8011128: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
801112a: 4b8a ldr r3, [pc, #552] ; (8011354 <WriteChannelSens+0x268>)
801112c: 681b ldr r3, [r3, #0]
801112e: 69db ldr r3, [r3, #28]
8011130: f003 0302 and.w r3, r3, #2
8011134: 2b02 cmp r3, #2
8011136: d103 bne.n 8011140 <WriteChannelSens+0x54>
__HAL_UART_CLEAR_FEFLAG(&huart7);
8011138: 4b86 ldr r3, [pc, #536] ; (8011354 <WriteChannelSens+0x268>)
801113a: 681b ldr r3, [r3, #0]
801113c: 2202 movs r2, #2
801113e: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
8011140: 4b84 ldr r3, [pc, #528] ; (8011354 <WriteChannelSens+0x268>)
8011142: 681b ldr r3, [r3, #0]
8011144: 69db ldr r3, [r3, #28]
8011146: f003 0304 and.w r3, r3, #4
801114a: 2b04 cmp r3, #4
801114c: d103 bne.n 8011156 <WriteChannelSens+0x6a>
__HAL_UART_CLEAR_NEFLAG(&huart7);
801114e: 4b81 ldr r3, [pc, #516] ; (8011354 <WriteChannelSens+0x268>)
8011150: 681b ldr r3, [r3, #0]
8011152: 2204 movs r2, #4
8011154: 621a str r2, [r3, #32]
HAL_Delay(20);
8011156: 2014 movs r0, #20
8011158: f000 fcee bl 8011b38 <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
801115c: 2200 movs r2, #0
801115e: 4b7e ldr r3, [pc, #504] ; (8011358 <WriteChannelSens+0x26c>)
8011160: 4611 mov r1, r2
8011162: 7019 strb r1, [r3, #0]
8011164: 4b7d ldr r3, [pc, #500] ; (801135c <WriteChannelSens+0x270>)
8011166: 4611 mov r1, r2
8011168: 7019 strb r1, [r3, #0]
801116a: 4b7d ldr r3, [pc, #500] ; (8011360 <WriteChannelSens+0x274>)
801116c: 701a strb r2, [r3, #0]
len = 0;
801116e: 2300 movs r3, #0
8011170: 82bb strh r3, [r7, #20]
memset((void *) &rx, 0, sizeof(rx));
8011172: f44f 7280 mov.w r2, #256 ; 0x100
8011176: 2100 movs r1, #0
8011178: 487a ldr r0, [pc, #488] ; (8011364 <WriteChannelSens+0x278>)
801117a: f005 fc50 bl 8016a1e <memset>
iobuf[len++] = ch + 1;
801117e: 8abb ldrh r3, [r7, #20]
8011180: 1c5a adds r2, r3, #1
8011182: 82ba strh r2, [r7, #20]
8011184: 461a mov r2, r3
8011186: 79fb ldrb r3, [r7, #7]
8011188: 3301 adds r3, #1
801118a: b2d9 uxtb r1, r3
801118c: 4b76 ldr r3, [pc, #472] ; (8011368 <WriteChannelSens+0x27c>)
801118e: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x10;
8011190: 8abb ldrh r3, [r7, #20]
8011192: 1c5a adds r2, r3, #1
8011194: 82ba strh r2, [r7, #20]
8011196: 461a mov r2, r3
8011198: 4b73 ldr r3, [pc, #460] ; (8011368 <WriteChannelSens+0x27c>)
801119a: 2110 movs r1, #16
801119c: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(7502);
801119e: 8abb ldrh r3, [r7, #20]
80111a0: 1c5a adds r2, r3, #1
80111a2: 82ba strh r2, [r7, #20]
80111a4: 461a mov r2, r3
80111a6: 4b70 ldr r3, [pc, #448] ; (8011368 <WriteChannelSens+0x27c>)
80111a8: 211d movs r1, #29
80111aa: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(7502);
80111ac: 8abb ldrh r3, [r7, #20]
80111ae: 1c5a adds r2, r3, #1
80111b0: 82ba strh r2, [r7, #20]
80111b2: 461a mov r2, r3
80111b4: 4b6c ldr r3, [pc, #432] ; (8011368 <WriteChannelSens+0x27c>)
80111b6: 214e movs r1, #78 ; 0x4e
80111b8: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
80111ba: 8abb ldrh r3, [r7, #20]
80111bc: 1c5a adds r2, r3, #1
80111be: 82ba strh r2, [r7, #20]
80111c0: 461a mov r2, r3
80111c2: 4b69 ldr r3, [pc, #420] ; (8011368 <WriteChannelSens+0x27c>)
80111c4: 2100 movs r1, #0
80111c6: 5499 strb r1, [r3, r2]
iobuf[len++] = 1;
80111c8: 8abb ldrh r3, [r7, #20]
80111ca: 1c5a adds r2, r3, #1
80111cc: 82ba strh r2, [r7, #20]
80111ce: 461a mov r2, r3
80111d0: 4b65 ldr r3, [pc, #404] ; (8011368 <WriteChannelSens+0x27c>)
80111d2: 2101 movs r1, #1
80111d4: 5499 strb r1, [r3, r2]
iobuf[len++] = 4;
80111d6: 8abb ldrh r3, [r7, #20]
80111d8: 1c5a adds r2, r3, #1
80111da: 82ba strh r2, [r7, #20]
80111dc: 461a mov r2, r3
80111de: 4b62 ldr r3, [pc, #392] ; (8011368 <WriteChannelSens+0x27c>)
80111e0: 2104 movs r1, #4
80111e2: 5499 strb r1, [r3, r2]
f.fl = pardata.amplif[ch].SENS;
80111e4: 79fb ldrb r3, [r7, #7]
80111e6: 4a61 ldr r2, [pc, #388] ; (801136c <WriteChannelSens+0x280>)
80111e8: 015b lsls r3, r3, #5
80111ea: 4413 add r3, r2
80111ec: 3318 adds r3, #24
80111ee: 681b ldr r3, [r3, #0]
80111f0: 60bb str r3, [r7, #8]
iobuf[len++] = f.ch[3];
80111f2: 8abb ldrh r3, [r7, #20]
80111f4: 1c5a adds r2, r3, #1
80111f6: 82ba strh r2, [r7, #20]
80111f8: 461a mov r2, r3
80111fa: 7af9 ldrb r1, [r7, #11]
80111fc: 4b5a ldr r3, [pc, #360] ; (8011368 <WriteChannelSens+0x27c>)
80111fe: 5499 strb r1, [r3, r2]
iobuf[len++] = f.ch[2];
8011200: 8abb ldrh r3, [r7, #20]
8011202: 1c5a adds r2, r3, #1
8011204: 82ba strh r2, [r7, #20]
8011206: 461a mov r2, r3
8011208: 7ab9 ldrb r1, [r7, #10]
801120a: 4b57 ldr r3, [pc, #348] ; (8011368 <WriteChannelSens+0x27c>)
801120c: 5499 strb r1, [r3, r2]
iobuf[len++] = f.ch[1];
801120e: 8abb ldrh r3, [r7, #20]
8011210: 1c5a adds r2, r3, #1
8011212: 82ba strh r2, [r7, #20]
8011214: 461a mov r2, r3
8011216: 7a79 ldrb r1, [r7, #9]
8011218: 4b53 ldr r3, [pc, #332] ; (8011368 <WriteChannelSens+0x27c>)
801121a: 5499 strb r1, [r3, r2]
iobuf[len++] = f.ch[0];
801121c: 8abb ldrh r3, [r7, #20]
801121e: 1c5a adds r2, r3, #1
8011220: 82ba strh r2, [r7, #20]
8011222: 461a mov r2, r3
8011224: 7a39 ldrb r1, [r7, #8]
8011226: 4b50 ldr r3, [pc, #320] ; (8011368 <WriteChannelSens+0x27c>)
8011228: 5499 strb r1, [r3, r2]
crc = Crc16(len);
801122a: 8abb ldrh r3, [r7, #20]
801122c: 4618 mov r0, r3
801122e: f7ff f8a9 bl 8010384 <Crc16>
8011232: 4603 mov r3, r0
8011234: 827b strh r3, [r7, #18]
iobuf[len++] = LO(crc);
8011236: 8abb ldrh r3, [r7, #20]
8011238: 1c5a adds r2, r3, #1
801123a: 82ba strh r2, [r7, #20]
801123c: 461a mov r2, r3
801123e: 8a7b ldrh r3, [r7, #18]
8011240: b2d9 uxtb r1, r3
8011242: 4b49 ldr r3, [pc, #292] ; (8011368 <WriteChannelSens+0x27c>)
8011244: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
8011246: 8abb ldrh r3, [r7, #20]
8011248: 1c5a adds r2, r3, #1
801124a: 82ba strh r2, [r7, #20]
801124c: 461a mov r2, r3
801124e: 8a7b ldrh r3, [r7, #18]
8011250: 0a1b lsrs r3, r3, #8
8011252: b29b uxth r3, r3
8011254: b2d9 uxtb r1, r3
8011256: 4b44 ldr r3, [pc, #272] ; (8011368 <WriteChannelSens+0x27c>)
8011258: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
801125a: f000 fc61 bl 8011b20 <HAL_GetTick>
801125e: 4603 mov r3, r0
8011260: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
8011262: 2201 movs r2, #1
8011264: f44f 7100 mov.w r1, #512 ; 0x200
8011268: 4841 ldr r0, [pc, #260] ; (8011370 <WriteChannelSens+0x284>)
801126a: f001 ff91 bl 8013190 <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
801126e: 8abb ldrh r3, [r7, #20]
8011270: 461a mov r2, r3
8011272: 493d ldr r1, [pc, #244] ; (8011368 <WriteChannelSens+0x27c>)
8011274: 4837 ldr r0, [pc, #220] ; (8011354 <WriteChannelSens+0x268>)
8011276: f004 f8b9 bl 80153ec <HAL_UART_Transmit_IT>
801127a: 4603 mov r3, r0
801127c: 2b00 cmp r3, #0
801127e: d163 bne.n 8011348 <WriteChannelSens+0x25c>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 200));
8011280: bf00 nop
8011282: 4b37 ldr r3, [pc, #220] ; (8011360 <WriteChannelSens+0x274>)
8011284: 781b ldrb r3, [r3, #0]
8011286: b2db uxtb r3, r3
8011288: f083 0301 eor.w r3, r3, #1
801128c: b2db uxtb r3, r3
801128e: 2b00 cmp r3, #0
8011290: d006 beq.n 80112a0 <WriteChannelSens+0x1b4>
8011292: f000 fc45 bl 8011b20 <HAL_GetTick>
8011296: 4602 mov r2, r0
8011298: 68fb ldr r3, [r7, #12]
801129a: 1ad3 subs r3, r2, r3
801129c: 2bc7 cmp r3, #199 ; 0xc7
801129e: d9f0 bls.n 8011282 <WriteChannelSens+0x196>
if(!TX_OK)
80112a0: 4b2f ldr r3, [pc, #188] ; (8011360 <WriteChannelSens+0x274>)
80112a2: 781b ldrb r3, [r3, #0]
80112a4: b2db uxtb r3, r3
80112a6: f083 0301 eor.w r3, r3, #1
80112aa: b2db uxtb r3, r3
80112ac: 2b00 cmp r3, #0
80112ae: d00b beq.n 80112c8 <WriteChannelSens+0x1dc>
{
HAL_UART_Abort_IT(&huart7);
80112b0: 4828 ldr r0, [pc, #160] ; (8011354 <WriteChannelSens+0x268>)
80112b2: f004 f909 bl 80154c8 <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
80112b6: 2200 movs r2, #0
80112b8: f44f 7100 mov.w r1, #512 ; 0x200
80112bc: 482c ldr r0, [pc, #176] ; (8011370 <WriteChannelSens+0x284>)
80112be: f001 ff67 bl 8013190 <HAL_GPIO_WritePin>
return (-1);
80112c2: f04f 33ff mov.w r3, #4294967295
80112c6: e041 b.n 801134c <WriteChannelSens+0x260>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
80112c8: 2200 movs r2, #0
80112ca: f44f 7100 mov.w r1, #512 ; 0x200
80112ce: 4828 ldr r0, [pc, #160] ; (8011370 <WriteChannelSens+0x284>)
80112d0: f001 ff5e bl 8013190 <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
80112d4: 2364 movs r3, #100 ; 0x64
80112d6: 2201 movs r2, #1
80112d8: 4922 ldr r1, [pc, #136] ; (8011364 <WriteChannelSens+0x278>)
80112da: 481e ldr r0, [pc, #120] ; (8011354 <WriteChannelSens+0x268>)
80112dc: f003 ffb6 bl 801524c <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK)
80112e0: f44f 73fa mov.w r3, #500 ; 0x1f4
80112e4: 2208 movs r2, #8
80112e6: 491f ldr r1, [pc, #124] ; (8011364 <WriteChannelSens+0x278>)
80112e8: 481a ldr r0, [pc, #104] ; (8011354 <WriteChannelSens+0x268>)
80112ea: f003 ffaf bl 801524c <HAL_UART_Receive>
80112ee: 4603 mov r3, r0
80112f0: 2b00 cmp r3, #0
80112f2: d120 bne.n 8011336 <WriteChannelSens+0x24a>
{
crc = (uint16_t) ((rx[7]) << 8 | rx[6]);
80112f4: 4b1b ldr r3, [pc, #108] ; (8011364 <WriteChannelSens+0x278>)
80112f6: 79db ldrb r3, [r3, #7]
80112f8: 021b lsls r3, r3, #8
80112fa: b21a sxth r2, r3
80112fc: 4b19 ldr r3, [pc, #100] ; (8011364 <WriteChannelSens+0x278>)
80112fe: 799b ldrb r3, [r3, #6]
8011300: b21b sxth r3, r3
8011302: 4313 orrs r3, r2
8011304: b21b sxth r3, r3
8011306: 827b strh r3, [r7, #18]
if(crc == Crc16_RX(6))
8011308: 2006 movs r0, #6
801130a: f7ff f867 bl 80103dc <Crc16_RX>
801130e: 4603 mov r3, r0
8011310: 461a mov r2, r3
8011312: 8a7b ldrh r3, [r7, #18]
8011314: 4293 cmp r3, r2
8011316: d10b bne.n 8011330 <WriteChannelSens+0x244>
{
if(rx[0] == (ch + 1))
8011318: 4b12 ldr r3, [pc, #72] ; (8011364 <WriteChannelSens+0x278>)
801131a: 781b ldrb r3, [r3, #0]
801131c: 461a mov r2, r3
801131e: 79fb ldrb r3, [r7, #7]
8011320: 3301 adds r3, #1
8011322: 429a cmp r2, r3
8011324: d101 bne.n 801132a <WriteChannelSens+0x23e>
return 0;
8011326: 2300 movs r3, #0
8011328: e010 b.n 801134c <WriteChannelSens+0x260>
else return (-1);
801132a: f04f 33ff mov.w r3, #4294967295
801132e: e00d b.n 801134c <WriteChannelSens+0x260>
}
else
{
return (-1);
8011330: f04f 33ff mov.w r3, #4294967295
8011334: e00a b.n 801134c <WriteChannelSens+0x260>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8011336: 2200 movs r2, #0
8011338: f44f 7100 mov.w r1, #512 ; 0x200
801133c: 480c ldr r0, [pc, #48] ; (8011370 <WriteChannelSens+0x284>)
801133e: f001 ff27 bl 8013190 <HAL_GPIO_WritePin>
return (-1);
8011342: f04f 33ff mov.w r3, #4294967295
8011346: e001 b.n 801134c <WriteChannelSens+0x260>
}
}
return res;
8011348: f997 3017 ldrsb.w r3, [r7, #23]
}
801134c: 4618 mov r0, r3
801134e: 3718 adds r7, #24
8011350: 46bd mov sp, r7
8011352: bd80 pop {r7, pc}
8011354: 2006c314 .word 0x2006c314
8011358: 2006b971 .word 0x2006b971
801135c: 2006b973 .word 0x2006b973
8011360: 2006b972 .word 0x2006b972
8011364: 2006c39c .word 0x2006c39c
8011368: 2006c4a4 .word 0x2006c4a4
801136c: 2006bb88 .word 0x2006bb88
8011370: 40021400 .word 0x40021400
08011374 <Calibr>:
int8_t Calibr(uint8_t ch, uint8_t on)
{
8011374: b580 push {r7, lr}
8011376: b086 sub sp, #24
8011378: af00 add r7, sp, #0
801137a: 4603 mov r3, r0
801137c: 460a mov r2, r1
801137e: 71fb strb r3, [r7, #7]
8011380: 4613 mov r3, r2
8011382: 71bb strb r3, [r7, #6]
int8_t res = -1;
8011384: 23ff movs r3, #255 ; 0xff
8011386: 757b strb r3, [r7, #21]
uint16_t i, len = 0;
8011388: 2300 movs r3, #0
801138a: 82fb strh r3, [r7, #22]
uint16_t crc;
uint16_t reg;
__IO uint32_t timeout;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
801138c: 4b92 ldr r3, [pc, #584] ; (80115d8 <Calibr+0x264>)
801138e: 681b ldr r3, [r3, #0]
8011390: 69db ldr r3, [r3, #28]
8011392: f003 0308 and.w r3, r3, #8
8011396: 2b08 cmp r3, #8
8011398: d103 bne.n 80113a2 <Calibr+0x2e>
__HAL_UART_CLEAR_OREFLAG(&huart7);
801139a: 4b8f ldr r3, [pc, #572] ; (80115d8 <Calibr+0x264>)
801139c: 681b ldr r3, [r3, #0]
801139e: 2208 movs r2, #8
80113a0: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
80113a2: 4b8d ldr r3, [pc, #564] ; (80115d8 <Calibr+0x264>)
80113a4: 681b ldr r3, [r3, #0]
80113a6: 69db ldr r3, [r3, #28]
80113a8: f003 0301 and.w r3, r3, #1
80113ac: 2b01 cmp r3, #1
80113ae: d103 bne.n 80113b8 <Calibr+0x44>
__HAL_UART_CLEAR_PEFLAG(&huart7);
80113b0: 4b89 ldr r3, [pc, #548] ; (80115d8 <Calibr+0x264>)
80113b2: 681b ldr r3, [r3, #0]
80113b4: 2201 movs r2, #1
80113b6: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
80113b8: 4b87 ldr r3, [pc, #540] ; (80115d8 <Calibr+0x264>)
80113ba: 681b ldr r3, [r3, #0]
80113bc: 69db ldr r3, [r3, #28]
80113be: f003 0302 and.w r3, r3, #2
80113c2: 2b02 cmp r3, #2
80113c4: d103 bne.n 80113ce <Calibr+0x5a>
__HAL_UART_CLEAR_FEFLAG(&huart7);
80113c6: 4b84 ldr r3, [pc, #528] ; (80115d8 <Calibr+0x264>)
80113c8: 681b ldr r3, [r3, #0]
80113ca: 2202 movs r2, #2
80113cc: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
80113ce: 4b82 ldr r3, [pc, #520] ; (80115d8 <Calibr+0x264>)
80113d0: 681b ldr r3, [r3, #0]
80113d2: 69db ldr r3, [r3, #28]
80113d4: f003 0304 and.w r3, r3, #4
80113d8: 2b04 cmp r3, #4
80113da: d103 bne.n 80113e4 <Calibr+0x70>
__HAL_UART_CLEAR_NEFLAG(&huart7);
80113dc: 4b7e ldr r3, [pc, #504] ; (80115d8 <Calibr+0x264>)
80113de: 681b ldr r3, [r3, #0]
80113e0: 2204 movs r2, #4
80113e2: 621a str r2, [r3, #32]
HAL_Delay(20);
80113e4: 2014 movs r0, #20
80113e6: f000 fba7 bl 8011b38 <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
80113ea: 2200 movs r2, #0
80113ec: 4b7b ldr r3, [pc, #492] ; (80115dc <Calibr+0x268>)
80113ee: 4611 mov r1, r2
80113f0: 7019 strb r1, [r3, #0]
80113f2: 4b7b ldr r3, [pc, #492] ; (80115e0 <Calibr+0x26c>)
80113f4: 4611 mov r1, r2
80113f6: 7019 strb r1, [r3, #0]
80113f8: 4b7a ldr r3, [pc, #488] ; (80115e4 <Calibr+0x270>)
80113fa: 701a strb r2, [r3, #0]
len = 0;
80113fc: 2300 movs r3, #0
80113fe: 82fb strh r3, [r7, #22]
memset((void *) &rx, 0, sizeof(rx));
8011400: f44f 7280 mov.w r2, #256 ; 0x100
8011404: 2100 movs r1, #0
8011406: 4878 ldr r0, [pc, #480] ; (80115e8 <Calibr+0x274>)
8011408: f005 fb09 bl 8016a1e <memset>
iobuf[len++] = ch + 1;
801140c: 8afb ldrh r3, [r7, #22]
801140e: 1c5a adds r2, r3, #1
8011410: 82fa strh r2, [r7, #22]
8011412: 461a mov r2, r3
8011414: 79fb ldrb r3, [r7, #7]
8011416: 3301 adds r3, #1
8011418: b2d9 uxtb r1, r3
801141a: 4b74 ldr r3, [pc, #464] ; (80115ec <Calibr+0x278>)
801141c: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x10;
801141e: 8afb ldrh r3, [r7, #22]
8011420: 1c5a adds r2, r3, #1
8011422: 82fa strh r2, [r7, #22]
8011424: 461a mov r2, r3
8011426: 4b71 ldr r3, [pc, #452] ; (80115ec <Calibr+0x278>)
8011428: 2110 movs r1, #16
801142a: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(3000);
801142c: 8afb ldrh r3, [r7, #22]
801142e: 1c5a adds r2, r3, #1
8011430: 82fa strh r2, [r7, #22]
8011432: 461a mov r2, r3
8011434: 4b6d ldr r3, [pc, #436] ; (80115ec <Calibr+0x278>)
8011436: 210b movs r1, #11
8011438: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(3000);
801143a: 8afb ldrh r3, [r7, #22]
801143c: 1c5a adds r2, r3, #1
801143e: 82fa strh r2, [r7, #22]
8011440: 461a mov r2, r3
8011442: 4b6a ldr r3, [pc, #424] ; (80115ec <Calibr+0x278>)
8011444: 21b8 movs r1, #184 ; 0xb8
8011446: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
8011448: 8afb ldrh r3, [r7, #22]
801144a: 1c5a adds r2, r3, #1
801144c: 82fa strh r2, [r7, #22]
801144e: 461a mov r2, r3
8011450: 4b66 ldr r3, [pc, #408] ; (80115ec <Calibr+0x278>)
8011452: 2100 movs r1, #0
8011454: 5499 strb r1, [r3, r2]
iobuf[len++] = 1;
8011456: 8afb ldrh r3, [r7, #22]
8011458: 1c5a adds r2, r3, #1
801145a: 82fa strh r2, [r7, #22]
801145c: 461a mov r2, r3
801145e: 4b63 ldr r3, [pc, #396] ; (80115ec <Calibr+0x278>)
8011460: 2101 movs r1, #1
8011462: 5499 strb r1, [r3, r2]
iobuf[len++] = 2;
8011464: 8afb ldrh r3, [r7, #22]
8011466: 1c5a adds r2, r3, #1
8011468: 82fa strh r2, [r7, #22]
801146a: 461a mov r2, r3
801146c: 4b5f ldr r3, [pc, #380] ; (80115ec <Calibr+0x278>)
801146e: 2102 movs r1, #2
8011470: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
8011472: 8afb ldrh r3, [r7, #22]
8011474: 1c5a adds r2, r3, #1
8011476: 82fa strh r2, [r7, #22]
8011478: 461a mov r2, r3
801147a: 4b5c ldr r3, [pc, #368] ; (80115ec <Calibr+0x278>)
801147c: 2100 movs r1, #0
801147e: 5499 strb r1, [r3, r2]
if(on)
8011480: 79bb ldrb r3, [r7, #6]
8011482: 2b00 cmp r3, #0
8011484: d00b beq.n 801149e <Calibr+0x12a>
iobuf[len++] = menu - 1;
8011486: 8afb ldrh r3, [r7, #22]
8011488: 1c5a adds r2, r3, #1
801148a: 82fa strh r2, [r7, #22]
801148c: 461a mov r2, r3
801148e: 4b58 ldr r3, [pc, #352] ; (80115f0 <Calibr+0x27c>)
8011490: 781b ldrb r3, [r3, #0]
8011492: b2db uxtb r3, r3
8011494: 3b01 subs r3, #1
8011496: b2d9 uxtb r1, r3
8011498: 4b54 ldr r3, [pc, #336] ; (80115ec <Calibr+0x278>)
801149a: 5499 strb r1, [r3, r2]
801149c: e006 b.n 80114ac <Calibr+0x138>
else iobuf[len++] = 0;
801149e: 8afb ldrh r3, [r7, #22]
80114a0: 1c5a adds r2, r3, #1
80114a2: 82fa strh r2, [r7, #22]
80114a4: 461a mov r2, r3
80114a6: 4b51 ldr r3, [pc, #324] ; (80115ec <Calibr+0x278>)
80114a8: 2100 movs r1, #0
80114aa: 5499 strb r1, [r3, r2]
crc = Crc16(len);
80114ac: 8afb ldrh r3, [r7, #22]
80114ae: 4618 mov r0, r3
80114b0: f7fe ff68 bl 8010384 <Crc16>
80114b4: 4603 mov r3, r0
80114b6: 827b strh r3, [r7, #18]
iobuf[len++] = LO(crc);
80114b8: 8afb ldrh r3, [r7, #22]
80114ba: 1c5a adds r2, r3, #1
80114bc: 82fa strh r2, [r7, #22]
80114be: 461a mov r2, r3
80114c0: 8a7b ldrh r3, [r7, #18]
80114c2: b2d9 uxtb r1, r3
80114c4: 4b49 ldr r3, [pc, #292] ; (80115ec <Calibr+0x278>)
80114c6: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
80114c8: 8afb ldrh r3, [r7, #22]
80114ca: 1c5a adds r2, r3, #1
80114cc: 82fa strh r2, [r7, #22]
80114ce: 461a mov r2, r3
80114d0: 8a7b ldrh r3, [r7, #18]
80114d2: 0a1b lsrs r3, r3, #8
80114d4: b29b uxth r3, r3
80114d6: b2d9 uxtb r1, r3
80114d8: 4b44 ldr r3, [pc, #272] ; (80115ec <Calibr+0x278>)
80114da: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
80114dc: f000 fb20 bl 8011b20 <HAL_GetTick>
80114e0: 4603 mov r3, r0
80114e2: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
80114e4: 2201 movs r2, #1
80114e6: f44f 7100 mov.w r1, #512 ; 0x200
80114ea: 4842 ldr r0, [pc, #264] ; (80115f4 <Calibr+0x280>)
80114ec: f001 fe50 bl 8013190 <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
80114f0: 8afb ldrh r3, [r7, #22]
80114f2: 461a mov r2, r3
80114f4: 493d ldr r1, [pc, #244] ; (80115ec <Calibr+0x278>)
80114f6: 4838 ldr r0, [pc, #224] ; (80115d8 <Calibr+0x264>)
80114f8: f003 ff78 bl 80153ec <HAL_UART_Transmit_IT>
80114fc: 4603 mov r3, r0
80114fe: 2b00 cmp r3, #0
8011500: d163 bne.n 80115ca <Calibr+0x256>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 200));
8011502: bf00 nop
8011504: 4b37 ldr r3, [pc, #220] ; (80115e4 <Calibr+0x270>)
8011506: 781b ldrb r3, [r3, #0]
8011508: b2db uxtb r3, r3
801150a: f083 0301 eor.w r3, r3, #1
801150e: b2db uxtb r3, r3
8011510: 2b00 cmp r3, #0
8011512: d006 beq.n 8011522 <Calibr+0x1ae>
8011514: f000 fb04 bl 8011b20 <HAL_GetTick>
8011518: 4602 mov r2, r0
801151a: 68fb ldr r3, [r7, #12]
801151c: 1ad3 subs r3, r2, r3
801151e: 2bc7 cmp r3, #199 ; 0xc7
8011520: d9f0 bls.n 8011504 <Calibr+0x190>
if(!TX_OK)
8011522: 4b30 ldr r3, [pc, #192] ; (80115e4 <Calibr+0x270>)
8011524: 781b ldrb r3, [r3, #0]
8011526: b2db uxtb r3, r3
8011528: f083 0301 eor.w r3, r3, #1
801152c: b2db uxtb r3, r3
801152e: 2b00 cmp r3, #0
8011530: d00b beq.n 801154a <Calibr+0x1d6>
{
HAL_UART_Abort_IT(&huart7);
8011532: 4829 ldr r0, [pc, #164] ; (80115d8 <Calibr+0x264>)
8011534: f003 ffc8 bl 80154c8 <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8011538: 2200 movs r2, #0
801153a: f44f 7100 mov.w r1, #512 ; 0x200
801153e: 482d ldr r0, [pc, #180] ; (80115f4 <Calibr+0x280>)
8011540: f001 fe26 bl 8013190 <HAL_GPIO_WritePin>
return (-1);
8011544: f04f 33ff mov.w r3, #4294967295
8011548: e041 b.n 80115ce <Calibr+0x25a>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
801154a: 2200 movs r2, #0
801154c: f44f 7100 mov.w r1, #512 ; 0x200
8011550: 4828 ldr r0, [pc, #160] ; (80115f4 <Calibr+0x280>)
8011552: f001 fe1d bl 8013190 <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
8011556: 2364 movs r3, #100 ; 0x64
8011558: 2201 movs r2, #1
801155a: 4923 ldr r1, [pc, #140] ; (80115e8 <Calibr+0x274>)
801155c: 481e ldr r0, [pc, #120] ; (80115d8 <Calibr+0x264>)
801155e: f003 fe75 bl 801524c <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK)
8011562: f44f 73fa mov.w r3, #500 ; 0x1f4
8011566: 2208 movs r2, #8
8011568: 491f ldr r1, [pc, #124] ; (80115e8 <Calibr+0x274>)
801156a: 481b ldr r0, [pc, #108] ; (80115d8 <Calibr+0x264>)
801156c: f003 fe6e bl 801524c <HAL_UART_Receive>
8011570: 4603 mov r3, r0
8011572: 2b00 cmp r3, #0
8011574: d120 bne.n 80115b8 <Calibr+0x244>
{
crc = (uint16_t) ((rx[7]) << 8 | rx[6]);
8011576: 4b1c ldr r3, [pc, #112] ; (80115e8 <Calibr+0x274>)
8011578: 79db ldrb r3, [r3, #7]
801157a: 021b lsls r3, r3, #8
801157c: b21a sxth r2, r3
801157e: 4b1a ldr r3, [pc, #104] ; (80115e8 <Calibr+0x274>)
8011580: 799b ldrb r3, [r3, #6]
8011582: b21b sxth r3, r3
8011584: 4313 orrs r3, r2
8011586: b21b sxth r3, r3
8011588: 827b strh r3, [r7, #18]
if(crc == Crc16_RX(6))
801158a: 2006 movs r0, #6
801158c: f7fe ff26 bl 80103dc <Crc16_RX>
8011590: 4603 mov r3, r0
8011592: 461a mov r2, r3
8011594: 8a7b ldrh r3, [r7, #18]
8011596: 4293 cmp r3, r2
8011598: d10b bne.n 80115b2 <Calibr+0x23e>
{
if(rx[0] == (ch + 1))
801159a: 4b13 ldr r3, [pc, #76] ; (80115e8 <Calibr+0x274>)
801159c: 781b ldrb r3, [r3, #0]
801159e: 461a mov r2, r3
80115a0: 79fb ldrb r3, [r7, #7]
80115a2: 3301 adds r3, #1
80115a4: 429a cmp r2, r3
80115a6: d101 bne.n 80115ac <Calibr+0x238>
return 0;
80115a8: 2300 movs r3, #0
80115aa: e010 b.n 80115ce <Calibr+0x25a>
else return (-1);
80115ac: f04f 33ff mov.w r3, #4294967295
80115b0: e00d b.n 80115ce <Calibr+0x25a>
}
else
{
return (-1);
80115b2: f04f 33ff mov.w r3, #4294967295
80115b6: e00a b.n 80115ce <Calibr+0x25a>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
80115b8: 2200 movs r2, #0
80115ba: f44f 7100 mov.w r1, #512 ; 0x200
80115be: 480d ldr r0, [pc, #52] ; (80115f4 <Calibr+0x280>)
80115c0: f001 fde6 bl 8013190 <HAL_GPIO_WritePin>
return (-1);
80115c4: f04f 33ff mov.w r3, #4294967295
80115c8: e001 b.n 80115ce <Calibr+0x25a>
}
}
return res;
80115ca: f997 3015 ldrsb.w r3, [r7, #21]
}
80115ce: 4618 mov r0, r3
80115d0: 3718 adds r7, #24
80115d2: 46bd mov sp, r7
80115d4: bd80 pop {r7, pc}
80115d6: bf00 nop
80115d8: 2006c314 .word 0x2006c314
80115dc: 2006b971 .word 0x2006b971
80115e0: 2006b973 .word 0x2006b973
80115e4: 2006b972 .word 0x2006b972
80115e8: 2006c39c .word 0x2006c39c
80115ec: 2006c4a4 .word 0x2006c4a4
80115f0: 200208b9 .word 0x200208b9
80115f4: 40021400 .word 0x40021400
080115f8 <WriteCorr>:
int8_t WriteCorr(uint8_t ch, uint8_t fasecor, uint8_t up)
{
80115f8: b580 push {r7, lr}
80115fa: b086 sub sp, #24
80115fc: af00 add r7, sp, #0
80115fe: 4603 mov r3, r0
8011600: 71fb strb r3, [r7, #7]
8011602: 460b mov r3, r1
8011604: 71bb strb r3, [r7, #6]
8011606: 4613 mov r3, r2
8011608: 717b strb r3, [r7, #5]
int8_t res = -1;
801160a: 23ff movs r3, #255 ; 0xff
801160c: 75fb strb r3, [r7, #23]
uint16_t i, len = 0;
801160e: 2300 movs r3, #0
8011610: 82bb strh r3, [r7, #20]
uint16_t crc;
uint16_t reg;
__IO uint32_t timeout;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
8011612: 4b8e ldr r3, [pc, #568] ; (801184c <WriteCorr+0x254>)
8011614: 681b ldr r3, [r3, #0]
8011616: 69db ldr r3, [r3, #28]
8011618: f003 0308 and.w r3, r3, #8
801161c: 2b08 cmp r3, #8
801161e: d103 bne.n 8011628 <WriteCorr+0x30>
__HAL_UART_CLEAR_OREFLAG(&huart7);
8011620: 4b8a ldr r3, [pc, #552] ; (801184c <WriteCorr+0x254>)
8011622: 681b ldr r3, [r3, #0]
8011624: 2208 movs r2, #8
8011626: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
8011628: 4b88 ldr r3, [pc, #544] ; (801184c <WriteCorr+0x254>)
801162a: 681b ldr r3, [r3, #0]
801162c: 69db ldr r3, [r3, #28]
801162e: f003 0301 and.w r3, r3, #1
8011632: 2b01 cmp r3, #1
8011634: d103 bne.n 801163e <WriteCorr+0x46>
__HAL_UART_CLEAR_PEFLAG(&huart7);
8011636: 4b85 ldr r3, [pc, #532] ; (801184c <WriteCorr+0x254>)
8011638: 681b ldr r3, [r3, #0]
801163a: 2201 movs r2, #1
801163c: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
801163e: 4b83 ldr r3, [pc, #524] ; (801184c <WriteCorr+0x254>)
8011640: 681b ldr r3, [r3, #0]
8011642: 69db ldr r3, [r3, #28]
8011644: f003 0302 and.w r3, r3, #2
8011648: 2b02 cmp r3, #2
801164a: d103 bne.n 8011654 <WriteCorr+0x5c>
__HAL_UART_CLEAR_FEFLAG(&huart7);
801164c: 4b7f ldr r3, [pc, #508] ; (801184c <WriteCorr+0x254>)
801164e: 681b ldr r3, [r3, #0]
8011650: 2202 movs r2, #2
8011652: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
8011654: 4b7d ldr r3, [pc, #500] ; (801184c <WriteCorr+0x254>)
8011656: 681b ldr r3, [r3, #0]
8011658: 69db ldr r3, [r3, #28]
801165a: f003 0304 and.w r3, r3, #4
801165e: 2b04 cmp r3, #4
8011660: d103 bne.n 801166a <WriteCorr+0x72>
__HAL_UART_CLEAR_NEFLAG(&huart7);
8011662: 4b7a ldr r3, [pc, #488] ; (801184c <WriteCorr+0x254>)
8011664: 681b ldr r3, [r3, #0]
8011666: 2204 movs r2, #4
8011668: 621a str r2, [r3, #32]
HAL_Delay(20);
801166a: 2014 movs r0, #20
801166c: f000 fa64 bl 8011b38 <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
8011670: 2200 movs r2, #0
8011672: 4b77 ldr r3, [pc, #476] ; (8011850 <WriteCorr+0x258>)
8011674: 4611 mov r1, r2
8011676: 7019 strb r1, [r3, #0]
8011678: 4b76 ldr r3, [pc, #472] ; (8011854 <WriteCorr+0x25c>)
801167a: 4611 mov r1, r2
801167c: 7019 strb r1, [r3, #0]
801167e: 4b76 ldr r3, [pc, #472] ; (8011858 <WriteCorr+0x260>)
8011680: 701a strb r2, [r3, #0]
len = 0;
8011682: 2300 movs r3, #0
8011684: 82bb strh r3, [r7, #20]
memset((void *) &rx, 0, sizeof(rx));
8011686: f44f 7280 mov.w r2, #256 ; 0x100
801168a: 2100 movs r1, #0
801168c: 4873 ldr r0, [pc, #460] ; (801185c <WriteCorr+0x264>)
801168e: f005 f9c6 bl 8016a1e <memset>
/*if(fasecor == CALIBR_00) {
return (-1);
}*/
iobuf[len++] = ch + 1;
8011692: 8abb ldrh r3, [r7, #20]
8011694: 1c5a adds r2, r3, #1
8011696: 82ba strh r2, [r7, #20]
8011698: 461a mov r2, r3
801169a: 79fb ldrb r3, [r7, #7]
801169c: 3301 adds r3, #1
801169e: b2d9 uxtb r1, r3
80116a0: 4b6f ldr r3, [pc, #444] ; (8011860 <WriteCorr+0x268>)
80116a2: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x10;
80116a4: 8abb ldrh r3, [r7, #20]
80116a6: 1c5a adds r2, r3, #1
80116a8: 82ba strh r2, [r7, #20]
80116aa: 461a mov r2, r3
80116ac: 4b6c ldr r3, [pc, #432] ; (8011860 <WriteCorr+0x268>)
80116ae: 2110 movs r1, #16
80116b0: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(fasecor + 3001);
80116b2: 8abb ldrh r3, [r7, #20]
80116b4: 1c5a adds r2, r3, #1
80116b6: 82ba strh r2, [r7, #20]
80116b8: 461a mov r2, r3
80116ba: 79bb ldrb r3, [r7, #6]
80116bc: f603 33b9 addw r3, r3, #3001 ; 0xbb9
80116c0: 121b asrs r3, r3, #8
80116c2: b2d9 uxtb r1, r3
80116c4: 4b66 ldr r3, [pc, #408] ; (8011860 <WriteCorr+0x268>)
80116c6: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(fasecor + 3001);
80116c8: 8abb ldrh r3, [r7, #20]
80116ca: 1c5a adds r2, r3, #1
80116cc: 82ba strh r2, [r7, #20]
80116ce: 461a mov r2, r3
80116d0: 79bb ldrb r3, [r7, #6]
80116d2: 3b47 subs r3, #71 ; 0x47
80116d4: b2d9 uxtb r1, r3
80116d6: 4b62 ldr r3, [pc, #392] ; (8011860 <WriteCorr+0x268>)
80116d8: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
80116da: 8abb ldrh r3, [r7, #20]
80116dc: 1c5a adds r2, r3, #1
80116de: 82ba strh r2, [r7, #20]
80116e0: 461a mov r2, r3
80116e2: 4b5f ldr r3, [pc, #380] ; (8011860 <WriteCorr+0x268>)
80116e4: 2100 movs r1, #0
80116e6: 5499 strb r1, [r3, r2]
iobuf[len++] = 1;
80116e8: 8abb ldrh r3, [r7, #20]
80116ea: 1c5a adds r2, r3, #1
80116ec: 82ba strh r2, [r7, #20]
80116ee: 461a mov r2, r3
80116f0: 4b5b ldr r3, [pc, #364] ; (8011860 <WriteCorr+0x268>)
80116f2: 2101 movs r1, #1
80116f4: 5499 strb r1, [r3, r2]
iobuf[len++] = 2;
80116f6: 8abb ldrh r3, [r7, #20]
80116f8: 1c5a adds r2, r3, #1
80116fa: 82ba strh r2, [r7, #20]
80116fc: 461a mov r2, r3
80116fe: 4b58 ldr r3, [pc, #352] ; (8011860 <WriteCorr+0x268>)
8011700: 2102 movs r1, #2
8011702: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
8011704: 8abb ldrh r3, [r7, #20]
8011706: 1c5a adds r2, r3, #1
8011708: 82ba strh r2, [r7, #20]
801170a: 461a mov r2, r3
801170c: 4b54 ldr r3, [pc, #336] ; (8011860 <WriteCorr+0x268>)
801170e: 2100 movs r1, #0
8011710: 5499 strb r1, [r3, r2]
iobuf[len++] = up;
8011712: 8abb ldrh r3, [r7, #20]
8011714: 1c5a adds r2, r3, #1
8011716: 82ba strh r2, [r7, #20]
8011718: 4619 mov r1, r3
801171a: 4a51 ldr r2, [pc, #324] ; (8011860 <WriteCorr+0x268>)
801171c: 797b ldrb r3, [r7, #5]
801171e: 5453 strb r3, [r2, r1]
crc = Crc16(len);
8011720: 8abb ldrh r3, [r7, #20]
8011722: 4618 mov r0, r3
8011724: f7fe fe2e bl 8010384 <Crc16>
8011728: 4603 mov r3, r0
801172a: 827b strh r3, [r7, #18]
iobuf[len++] = LO(crc);
801172c: 8abb ldrh r3, [r7, #20]
801172e: 1c5a adds r2, r3, #1
8011730: 82ba strh r2, [r7, #20]
8011732: 461a mov r2, r3
8011734: 8a7b ldrh r3, [r7, #18]
8011736: b2d9 uxtb r1, r3
8011738: 4b49 ldr r3, [pc, #292] ; (8011860 <WriteCorr+0x268>)
801173a: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
801173c: 8abb ldrh r3, [r7, #20]
801173e: 1c5a adds r2, r3, #1
8011740: 82ba strh r2, [r7, #20]
8011742: 461a mov r2, r3
8011744: 8a7b ldrh r3, [r7, #18]
8011746: 0a1b lsrs r3, r3, #8
8011748: b29b uxth r3, r3
801174a: b2d9 uxtb r1, r3
801174c: 4b44 ldr r3, [pc, #272] ; (8011860 <WriteCorr+0x268>)
801174e: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
8011750: f000 f9e6 bl 8011b20 <HAL_GetTick>
8011754: 4603 mov r3, r0
8011756: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
8011758: 2201 movs r2, #1
801175a: f44f 7100 mov.w r1, #512 ; 0x200
801175e: 4841 ldr r0, [pc, #260] ; (8011864 <WriteCorr+0x26c>)
8011760: f001 fd16 bl 8013190 <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
8011764: 8abb ldrh r3, [r7, #20]
8011766: 461a mov r2, r3
8011768: 493d ldr r1, [pc, #244] ; (8011860 <WriteCorr+0x268>)
801176a: 4838 ldr r0, [pc, #224] ; (801184c <WriteCorr+0x254>)
801176c: f003 fe3e bl 80153ec <HAL_UART_Transmit_IT>
8011770: 4603 mov r3, r0
8011772: 2b00 cmp r3, #0
8011774: d163 bne.n 801183e <WriteCorr+0x246>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 200));
8011776: bf00 nop
8011778: 4b37 ldr r3, [pc, #220] ; (8011858 <WriteCorr+0x260>)
801177a: 781b ldrb r3, [r3, #0]
801177c: b2db uxtb r3, r3
801177e: f083 0301 eor.w r3, r3, #1
8011782: b2db uxtb r3, r3
8011784: 2b00 cmp r3, #0
8011786: d006 beq.n 8011796 <WriteCorr+0x19e>
8011788: f000 f9ca bl 8011b20 <HAL_GetTick>
801178c: 4602 mov r2, r0
801178e: 68fb ldr r3, [r7, #12]
8011790: 1ad3 subs r3, r2, r3
8011792: 2bc7 cmp r3, #199 ; 0xc7
8011794: d9f0 bls.n 8011778 <WriteCorr+0x180>
if(!TX_OK)
8011796: 4b30 ldr r3, [pc, #192] ; (8011858 <WriteCorr+0x260>)
8011798: 781b ldrb r3, [r3, #0]
801179a: b2db uxtb r3, r3
801179c: f083 0301 eor.w r3, r3, #1
80117a0: b2db uxtb r3, r3
80117a2: 2b00 cmp r3, #0
80117a4: d00b beq.n 80117be <WriteCorr+0x1c6>
{
HAL_UART_Abort_IT(&huart7);
80117a6: 4829 ldr r0, [pc, #164] ; (801184c <WriteCorr+0x254>)
80117a8: f003 fe8e bl 80154c8 <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
80117ac: 2200 movs r2, #0
80117ae: f44f 7100 mov.w r1, #512 ; 0x200
80117b2: 482c ldr r0, [pc, #176] ; (8011864 <WriteCorr+0x26c>)
80117b4: f001 fcec bl 8013190 <HAL_GPIO_WritePin>
return (-1);
80117b8: f04f 33ff mov.w r3, #4294967295
80117bc: e041 b.n 8011842 <WriteCorr+0x24a>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
80117be: 2200 movs r2, #0
80117c0: f44f 7100 mov.w r1, #512 ; 0x200
80117c4: 4827 ldr r0, [pc, #156] ; (8011864 <WriteCorr+0x26c>)
80117c6: f001 fce3 bl 8013190 <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
80117ca: 2364 movs r3, #100 ; 0x64
80117cc: 2201 movs r2, #1
80117ce: 4923 ldr r1, [pc, #140] ; (801185c <WriteCorr+0x264>)
80117d0: 481e ldr r0, [pc, #120] ; (801184c <WriteCorr+0x254>)
80117d2: f003 fd3b bl 801524c <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK)
80117d6: f44f 73fa mov.w r3, #500 ; 0x1f4
80117da: 2208 movs r2, #8
80117dc: 491f ldr r1, [pc, #124] ; (801185c <WriteCorr+0x264>)
80117de: 481b ldr r0, [pc, #108] ; (801184c <WriteCorr+0x254>)
80117e0: f003 fd34 bl 801524c <HAL_UART_Receive>
80117e4: 4603 mov r3, r0
80117e6: 2b00 cmp r3, #0
80117e8: d120 bne.n 801182c <WriteCorr+0x234>
{
crc = (uint16_t) ((rx[7]) << 8 | rx[6]);
80117ea: 4b1c ldr r3, [pc, #112] ; (801185c <WriteCorr+0x264>)
80117ec: 79db ldrb r3, [r3, #7]
80117ee: 021b lsls r3, r3, #8
80117f0: b21a sxth r2, r3
80117f2: 4b1a ldr r3, [pc, #104] ; (801185c <WriteCorr+0x264>)
80117f4: 799b ldrb r3, [r3, #6]
80117f6: b21b sxth r3, r3
80117f8: 4313 orrs r3, r2
80117fa: b21b sxth r3, r3
80117fc: 827b strh r3, [r7, #18]
if(crc == Crc16_RX(6))
80117fe: 2006 movs r0, #6
8011800: f7fe fdec bl 80103dc <Crc16_RX>
8011804: 4603 mov r3, r0
8011806: 461a mov r2, r3
8011808: 8a7b ldrh r3, [r7, #18]
801180a: 4293 cmp r3, r2
801180c: d10b bne.n 8011826 <WriteCorr+0x22e>
{
if(rx[0] == (ch + 1))
801180e: 4b13 ldr r3, [pc, #76] ; (801185c <WriteCorr+0x264>)
8011810: 781b ldrb r3, [r3, #0]
8011812: 461a mov r2, r3
8011814: 79fb ldrb r3, [r7, #7]
8011816: 3301 adds r3, #1
8011818: 429a cmp r2, r3
801181a: d101 bne.n 8011820 <WriteCorr+0x228>
return 0;
801181c: 2300 movs r3, #0
801181e: e010 b.n 8011842 <WriteCorr+0x24a>
else return (-1);
8011820: f04f 33ff mov.w r3, #4294967295
8011824: e00d b.n 8011842 <WriteCorr+0x24a>
}
else
{
return (-1);
8011826: f04f 33ff mov.w r3, #4294967295
801182a: e00a b.n 8011842 <WriteCorr+0x24a>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
801182c: 2200 movs r2, #0
801182e: f44f 7100 mov.w r1, #512 ; 0x200
8011832: 480c ldr r0, [pc, #48] ; (8011864 <WriteCorr+0x26c>)
8011834: f001 fcac bl 8013190 <HAL_GPIO_WritePin>
return (-1);
8011838: f04f 33ff mov.w r3, #4294967295
801183c: e001 b.n 8011842 <WriteCorr+0x24a>
}
}
return res;
801183e: f997 3017 ldrsb.w r3, [r7, #23]
}
8011842: 4618 mov r0, r3
8011844: 3718 adds r7, #24
8011846: 46bd mov sp, r7
8011848: bd80 pop {r7, pc}
801184a: bf00 nop
801184c: 2006c314 .word 0x2006c314
8011850: 2006b971 .word 0x2006b971
8011854: 2006b973 .word 0x2006b973
8011858: 2006b972 .word 0x2006b972
801185c: 2006c39c .word 0x2006c39c
8011860: 2006c4a4 .word 0x2006c4a4
8011864: 40021400 .word 0x40021400
08011868 <CalibrOFF>:
}
}
void CalibrOFF(void)
{
8011868: b580 push {r7, lr}
801186a: b084 sub sp, #16
801186c: af00 add r7, sp, #0
uint8_t i, ch;
uint32_t MASK_CHANNELS = 0;
801186e: 2300 movs r3, #0
8011870: 60bb str r3, [r7, #8]
uint32_t CNT_CHANNELS = 0;
8011872: 2300 movs r3, #0
8011874: 607b str r3, [r7, #4]
for(ch = 0; ch < 4; ch++)
8011876: 2300 movs r3, #0
8011878: 73bb strb r3, [r7, #14]
801187a: e01f b.n 80118bc <CalibrOFF+0x54>
{
for(i = 0; i < 3; i++)
801187c: 2300 movs r3, #0
801187e: 73fb strb r3, [r7, #15]
8011880: e016 b.n 80118b0 <CalibrOFF+0x48>
{
if(Calibr(ch, 0) == 0)
8011882: 7bbb ldrb r3, [r7, #14]
8011884: 2100 movs r1, #0
8011886: 4618 mov r0, r3
8011888: f7ff fd74 bl 8011374 <Calibr>
801188c: 4603 mov r3, r0
801188e: 2b00 cmp r3, #0
8011890: d10b bne.n 80118aa <CalibrOFF+0x42>
{
MASK_CHANNELS |= (1 << ch);
8011892: 7bbb ldrb r3, [r7, #14]
8011894: 2201 movs r2, #1
8011896: fa02 f303 lsl.w r3, r2, r3
801189a: 461a mov r2, r3
801189c: 68bb ldr r3, [r7, #8]
801189e: 4313 orrs r3, r2
80118a0: 60bb str r3, [r7, #8]
CNT_CHANNELS++;
80118a2: 687b ldr r3, [r7, #4]
80118a4: 3301 adds r3, #1
80118a6: 607b str r3, [r7, #4]
break;
80118a8: e005 b.n 80118b6 <CalibrOFF+0x4e>
for(i = 0; i < 3; i++)
80118aa: 7bfb ldrb r3, [r7, #15]
80118ac: 3301 adds r3, #1
80118ae: 73fb strb r3, [r7, #15]
80118b0: 7bfb ldrb r3, [r7, #15]
80118b2: 2b02 cmp r3, #2
80118b4: d9e5 bls.n 8011882 <CalibrOFF+0x1a>
for(ch = 0; ch < 4; ch++)
80118b6: 7bbb ldrb r3, [r7, #14]
80118b8: 3301 adds r3, #1
80118ba: 73bb strb r3, [r7, #14]
80118bc: 7bbb ldrb r3, [r7, #14]
80118be: 2b03 cmp r3, #3
80118c0: d9dc bls.n 801187c <CalibrOFF+0x14>
}
}
}
}
80118c2: bf00 nop
80118c4: 3710 adds r7, #16
80118c6: 46bd mov sp, r7
80118c8: bd80 pop {r7, pc}
...
080118cc <AskChannels>:
void AskChannels(void)
{
80118cc: b580 push {r7, lr}
80118ce: b082 sub sp, #8
80118d0: af00 add r7, sp, #0
uint8_t i, ch;
ASK_COMPLETE = false;
80118d2: 4b46 ldr r3, [pc, #280] ; (80119ec <AskChannels+0x120>)
80118d4: 2200 movs r2, #0
80118d6: 701a strb r2, [r3, #0]
for(i = 0; i < 100; i++)
80118d8: 2300 movs r3, #0
80118da: 71fb strb r3, [r7, #7]
80118dc: e007 b.n 80118ee <AskChannels+0x22>
{
RedrawScreen();
80118de: f7f4 fc8f bl 8006200 <RedrawScreen>
HAL_Delay(10);
80118e2: 200a movs r0, #10
80118e4: f000 f928 bl 8011b38 <HAL_Delay>
for(i = 0; i < 100; i++)
80118e8: 79fb ldrb r3, [r7, #7]
80118ea: 3301 adds r3, #1
80118ec: 71fb strb r3, [r7, #7]
80118ee: 79fb ldrb r3, [r7, #7]
80118f0: 2b63 cmp r3, #99 ; 0x63
80118f2: d9f4 bls.n 80118de <AskChannels+0x12>
}
ip_assigned = false;
80118f4: 4b3e ldr r3, [pc, #248] ; (80119f0 <AskChannels+0x124>)
80118f6: 2200 movs r2, #0
80118f8: 701a strb r2, [r3, #0]
for(i = 0; i < 2; i++)
80118fa: 2300 movs r3, #0
80118fc: 71fb strb r3, [r7, #7]
80118fe: e00e b.n 801191e <AskChannels+0x52>
{
if(ReadIP() == 0) {
8011900: f7fe fde4 bl 80104cc <ReadIP>
8011904: 4603 mov r3, r0
8011906: 2b00 cmp r3, #0
8011908: d103 bne.n 8011912 <AskChannels+0x46>
ip_assigned = true;
801190a: 4b39 ldr r3, [pc, #228] ; (80119f0 <AskChannels+0x124>)
801190c: 2201 movs r2, #1
801190e: 701a strb r2, [r3, #0]
break;
8011910: e008 b.n 8011924 <AskChannels+0x58>
}
HAL_Delay(50);
8011912: 2032 movs r0, #50 ; 0x32
8011914: f000 f910 bl 8011b38 <HAL_Delay>
for(i = 0; i < 2; i++)
8011918: 79fb ldrb r3, [r7, #7]
801191a: 3301 adds r3, #1
801191c: 71fb strb r3, [r7, #7]
801191e: 79fb ldrb r3, [r7, #7]
8011920: 2b01 cmp r3, #1
8011922: d9ed bls.n 8011900 <AskChannels+0x34>
}
memset((void *) &pardata.amplif[0], 0, sizeof(AmplifData_TypeDef) * 16u);
8011924: f44f 7200 mov.w r2, #512 ; 0x200
8011928: 2100 movs r1, #0
801192a: 4832 ldr r0, [pc, #200] ; (80119f4 <AskChannels+0x128>)
801192c: f005 f877 bl 8016a1e <memset>
MASK_CHANNELS = CNT_CHANNELS = ACTIVE_CHANNEL = 0;
8011930: 2300 movs r3, #0
8011932: 4a31 ldr r2, [pc, #196] ; (80119f8 <AskChannels+0x12c>)
8011934: 6013 str r3, [r2, #0]
8011936: 4a31 ldr r2, [pc, #196] ; (80119fc <AskChannels+0x130>)
8011938: 6013 str r3, [r2, #0]
801193a: 4a31 ldr r2, [pc, #196] ; (8011a00 <AskChannels+0x134>)
801193c: 6013 str r3, [r2, #0]
for(ch = 0; ch < 8; ch++)
801193e: 2300 movs r3, #0
8011940: 71bb strb r3, [r7, #6]
8011942: e02a b.n 801199a <AskChannels+0xce>
{
for(i = 0; i < 2; i++)
8011944: 2300 movs r3, #0
8011946: 71fb strb r3, [r7, #7]
8011948: e021 b.n 801198e <AskChannels+0xc2>
{
if(ReadChannel(ch) == 0)
801194a: 79bb ldrb r3, [r7, #6]
801194c: 4618 mov r0, r3
801194e: f7fe fedb bl 8010708 <ReadChannel>
8011952: 4603 mov r3, r0
8011954: 2b00 cmp r3, #0
8011956: d115 bne.n 8011984 <AskChannels+0xb8>
{
RedrawScreen();
8011958: f7f4 fc52 bl 8006200 <RedrawScreen>
MASK_CHANNELS |= (1 << ch);
801195c: 79bb ldrb r3, [r7, #6]
801195e: 2201 movs r2, #1
8011960: fa02 f303 lsl.w r3, r2, r3
8011964: 461a mov r2, r3
8011966: 4b26 ldr r3, [pc, #152] ; (8011a00 <AskChannels+0x134>)
8011968: 681b ldr r3, [r3, #0]
801196a: 4313 orrs r3, r2
801196c: 4a24 ldr r2, [pc, #144] ; (8011a00 <AskChannels+0x134>)
801196e: 6013 str r3, [r2, #0]
CNT_CHANNELS++;
8011970: 4b22 ldr r3, [pc, #136] ; (80119fc <AskChannels+0x130>)
8011972: 681b ldr r3, [r3, #0]
8011974: 3301 adds r3, #1
8011976: 4a21 ldr r2, [pc, #132] ; (80119fc <AskChannels+0x130>)
8011978: 6013 str r3, [r2, #0]
ReadChannelSens(ch);
801197a: 79bb ldrb r3, [r7, #6]
801197c: 4618 mov r0, r3
801197e: f7ff fa83 bl 8010e88 <ReadChannelSens>
break;
8011982: e007 b.n 8011994 <AskChannels+0xc8>
}
else
RedrawScreen();
8011984: f7f4 fc3c bl 8006200 <RedrawScreen>
for(i = 0; i < 2; i++)
8011988: 79fb ldrb r3, [r7, #7]
801198a: 3301 adds r3, #1
801198c: 71fb strb r3, [r7, #7]
801198e: 79fb ldrb r3, [r7, #7]
8011990: 2b01 cmp r3, #1
8011992: d9da bls.n 801194a <AskChannels+0x7e>
for(ch = 0; ch < 8; ch++)
8011994: 79bb ldrb r3, [r7, #6]
8011996: 3301 adds r3, #1
8011998: 71bb strb r3, [r7, #6]
801199a: 79bb ldrb r3, [r7, #6]
801199c: 2b07 cmp r3, #7
801199e: d9d1 bls.n 8011944 <AskChannels+0x78>
}
}
if(CNT_CHANNELS != 0)
80119a0: 4b16 ldr r3, [pc, #88] ; (80119fc <AskChannels+0x130>)
80119a2: 681b ldr r3, [r3, #0]
80119a4: 2b00 cmp r3, #0
80119a6: d019 beq.n 80119dc <AskChannels+0x110>
{
for(i = 0; i < 8; i++)
80119a8: 2300 movs r3, #0
80119aa: 71fb strb r3, [r7, #7]
80119ac: e010 b.n 80119d0 <AskChannels+0x104>
{
if(MASK_CHANNELS & (1 << i))
80119ae: 79fb ldrb r3, [r7, #7]
80119b0: 2201 movs r2, #1
80119b2: fa02 f303 lsl.w r3, r2, r3
80119b6: 461a mov r2, r3
80119b8: 4b11 ldr r3, [pc, #68] ; (8011a00 <AskChannels+0x134>)
80119ba: 681b ldr r3, [r3, #0]
80119bc: 4013 ands r3, r2
80119be: 2b00 cmp r3, #0
80119c0: d003 beq.n 80119ca <AskChannels+0xfe>
{
ACTIVE_CHANNEL = i;
80119c2: 79fb ldrb r3, [r7, #7]
80119c4: 4a0c ldr r2, [pc, #48] ; (80119f8 <AskChannels+0x12c>)
80119c6: 6013 str r3, [r2, #0]
break;
80119c8: e005 b.n 80119d6 <AskChannels+0x10a>
for(i = 0; i < 8; i++)
80119ca: 79fb ldrb r3, [r7, #7]
80119cc: 3301 adds r3, #1
80119ce: 71fb strb r3, [r7, #7]
80119d0: 79fb ldrb r3, [r7, #7]
80119d2: 2b07 cmp r3, #7
80119d4: d9eb bls.n 80119ae <AskChannels+0xe2>
}
}
ASK_COMPLETE = true;
80119d6: 4b05 ldr r3, [pc, #20] ; (80119ec <AskChannels+0x120>)
80119d8: 2201 movs r2, #1
80119da: 701a strb r2, [r3, #0]
{
//Off();
}
HAL_Delay(2000);
80119dc: f44f 60fa mov.w r0, #2000 ; 0x7d0
80119e0: f000 f8aa bl 8011b38 <HAL_Delay>
//MASK_CHANNELS = 0xf; //TODO Удалить
//CNT_CHANNELS = 4; //TODO Удалить
}
80119e4: bf00 nop
80119e6: 3708 adds r7, #8
80119e8: 46bd mov sp, r7
80119ea: bd80 pop {r7, pc}
80119ec: 2006b970 .word 0x2006b970
80119f0: 2006b974 .word 0x2006b974
80119f4: 2006bb88 .word 0x2006bb88
80119f8: 2006b948 .word 0x2006b948
80119fc: 2006b94c .word 0x2006b94c
8011a00: 2002002c .word 0x2002002c
08011a04 <AskPeriodic>:
void AskPeriodic(void)
{
8011a04: b580 push {r7, lr}
8011a06: b082 sub sp, #8
8011a08: af00 add r7, sp, #0
uint8_t ch;
for(ch = 0; ch < 8; ch++)
8011a0a: 2300 movs r3, #0
8011a0c: 71fb strb r3, [r7, #7]
8011a0e: e01c b.n 8011a4a <AskPeriodic+0x46>
{
if(MASK_CHANNELS & (1 << ch))
8011a10: 79fb ldrb r3, [r7, #7]
8011a12: 2201 movs r2, #1
8011a14: fa02 f303 lsl.w r3, r2, r3
8011a18: 461a mov r2, r3
8011a1a: 4b0f ldr r3, [pc, #60] ; (8011a58 <AskPeriodic+0x54>)
8011a1c: 681b ldr r3, [r3, #0]
8011a1e: 4013 ands r3, r2
8011a20: 2b00 cmp r3, #0
8011a22: d00f beq.n 8011a44 <AskPeriodic+0x40>
{
if(!focused)
8011a24: 4b0d ldr r3, [pc, #52] ; (8011a5c <AskPeriodic+0x58>)
8011a26: 781b ldrb r3, [r3, #0]
8011a28: b2db uxtb r3, r3
8011a2a: f083 0301 eor.w r3, r3, #1
8011a2e: b2db uxtb r3, r3
8011a30: 2b00 cmp r3, #0
8011a32: d007 beq.n 8011a44 <AskPeriodic+0x40>
{
ReadChannel(ch);
8011a34: 79fb ldrb r3, [r7, #7]
8011a36: 4618 mov r0, r3
8011a38: f7fe fe66 bl 8010708 <ReadChannel>
ReadChannelSens(ch);
8011a3c: 79fb ldrb r3, [r7, #7]
8011a3e: 4618 mov r0, r3
8011a40: f7ff fa22 bl 8010e88 <ReadChannelSens>
for(ch = 0; ch < 8; ch++)
8011a44: 79fb ldrb r3, [r7, #7]
8011a46: 3301 adds r3, #1
8011a48: 71fb strb r3, [r7, #7]
8011a4a: 79fb ldrb r3, [r7, #7]
8011a4c: 2b07 cmp r3, #7
8011a4e: d9df bls.n 8011a10 <AskPeriodic+0xc>
}
}
}
}
8011a50: bf00 nop
8011a52: 3708 adds r7, #8
8011a54: 46bd mov sp, r7
8011a56: bd80 pop {r7, pc}
8011a58: 2002002c .word 0x2002002c
8011a5c: 200208c4 .word 0x200208c4
08011a60 <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)
{
8011a60: b580 push {r7, lr}
8011a62: af00 add r7, sp, #0
/* Configure Instruction cache through ART accelerator */
#if (ART_ACCLERATOR_ENABLE != 0)
__HAL_FLASH_ART_ENABLE();
8011a64: 4a0b ldr r2, [pc, #44] ; (8011a94 <HAL_Init+0x34>)
8011a66: 4b0b ldr r3, [pc, #44] ; (8011a94 <HAL_Init+0x34>)
8011a68: 681b ldr r3, [r3, #0]
8011a6a: f443 7300 orr.w r3, r3, #512 ; 0x200
8011a6e: 6013 str r3, [r2, #0]
#endif /* ART_ACCLERATOR_ENABLE */
/* Configure Flash prefetch */
#if (PREFETCH_ENABLE != 0U)
__HAL_FLASH_PREFETCH_BUFFER_ENABLE();
8011a70: 4a08 ldr r2, [pc, #32] ; (8011a94 <HAL_Init+0x34>)
8011a72: 4b08 ldr r3, [pc, #32] ; (8011a94 <HAL_Init+0x34>)
8011a74: 681b ldr r3, [r3, #0]
8011a76: f443 7380 orr.w r3, r3, #256 ; 0x100
8011a7a: 6013 str r3, [r2, #0]
#endif /* PREFETCH_ENABLE */
/* Set Interrupt Group Priority */
HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
8011a7c: 2003 movs r0, #3
8011a7e: f000 f96d bl 8011d5c <HAL_NVIC_SetPriorityGrouping>
/* Use systick as time base source and configure 1ms tick (default clock after Reset is HSI) */
HAL_InitTick(TICK_INT_PRIORITY);
8011a82: 2000 movs r0, #0
8011a84: f000 f808 bl 8011a98 <HAL_InitTick>
/* Init the low level hardware */
HAL_MspInit();
8011a88: f7fe f988 bl 800fd9c <HAL_MspInit>
/* Return function status */
return HAL_OK;
8011a8c: 2300 movs r3, #0
}
8011a8e: 4618 mov r0, r3
8011a90: bd80 pop {r7, pc}
8011a92: bf00 nop
8011a94: 40023c00 .word 0x40023c00
08011a98 <HAL_InitTick>:
* implementation in user file.
* @param TickPriority Tick interrupt priority.
* @retval HAL status
*/
__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
{
8011a98: b580 push {r7, lr}
8011a9a: b082 sub sp, #8
8011a9c: af00 add r7, sp, #0
8011a9e: 6078 str r0, [r7, #4]
/* Configure the SysTick to have interrupt in 1ms time basis*/
if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U)
8011aa0: 4b12 ldr r3, [pc, #72] ; (8011aec <HAL_InitTick+0x54>)
8011aa2: 681a ldr r2, [r3, #0]
8011aa4: 4b12 ldr r3, [pc, #72] ; (8011af0 <HAL_InitTick+0x58>)
8011aa6: 781b ldrb r3, [r3, #0]
8011aa8: 4619 mov r1, r3
8011aaa: f44f 737a mov.w r3, #1000 ; 0x3e8
8011aae: fbb3 f3f1 udiv r3, r3, r1
8011ab2: fbb2 f3f3 udiv r3, r2, r3
8011ab6: 4618 mov r0, r3
8011ab8: f000 f993 bl 8011de2 <HAL_SYSTICK_Config>
8011abc: 4603 mov r3, r0
8011abe: 2b00 cmp r3, #0
8011ac0: d001 beq.n 8011ac6 <HAL_InitTick+0x2e>
{
return HAL_ERROR;
8011ac2: 2301 movs r3, #1
8011ac4: e00e b.n 8011ae4 <HAL_InitTick+0x4c>
}
/* Configure the SysTick IRQ priority */
if (TickPriority < (1UL << __NVIC_PRIO_BITS))
8011ac6: 687b ldr r3, [r7, #4]
8011ac8: 2b0f cmp r3, #15
8011aca: d80a bhi.n 8011ae2 <HAL_InitTick+0x4a>
{
HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U);
8011acc: 2200 movs r2, #0
8011ace: 6879 ldr r1, [r7, #4]
8011ad0: f04f 30ff mov.w r0, #4294967295
8011ad4: f000 f94d bl 8011d72 <HAL_NVIC_SetPriority>
uwTickPrio = TickPriority;
8011ad8: 4a06 ldr r2, [pc, #24] ; (8011af4 <HAL_InitTick+0x5c>)
8011ada: 687b ldr r3, [r7, #4]
8011adc: 6013 str r3, [r2, #0]
{
return HAL_ERROR;
}
/* Return function status */
return HAL_OK;
8011ade: 2300 movs r3, #0
8011ae0: e000 b.n 8011ae4 <HAL_InitTick+0x4c>
return HAL_ERROR;
8011ae2: 2301 movs r3, #1
}
8011ae4: 4618 mov r0, r3
8011ae6: 3708 adds r7, #8
8011ae8: 46bd mov sp, r7
8011aea: bd80 pop {r7, pc}
8011aec: 20020874 .word 0x20020874
8011af0: 20020884 .word 0x20020884
8011af4: 20020880 .word 0x20020880
08011af8 <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)
{
8011af8: b480 push {r7}
8011afa: af00 add r7, sp, #0
uwTick += uwTickFreq;
8011afc: 4b06 ldr r3, [pc, #24] ; (8011b18 <HAL_IncTick+0x20>)
8011afe: 781b ldrb r3, [r3, #0]
8011b00: 461a mov r2, r3
8011b02: 4b06 ldr r3, [pc, #24] ; (8011b1c <HAL_IncTick+0x24>)
8011b04: 681b ldr r3, [r3, #0]
8011b06: 4413 add r3, r2
8011b08: 4a04 ldr r2, [pc, #16] ; (8011b1c <HAL_IncTick+0x24>)
8011b0a: 6013 str r3, [r2, #0]
}
8011b0c: bf00 nop
8011b0e: 46bd mov sp, r7
8011b10: f85d 7b04 ldr.w r7, [sp], #4
8011b14: 4770 bx lr
8011b16: bf00 nop
8011b18: 20020884 .word 0x20020884
8011b1c: 2006c5a4 .word 0x2006c5a4
08011b20 <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)
{
8011b20: b480 push {r7}
8011b22: af00 add r7, sp, #0
return uwTick;
8011b24: 4b03 ldr r3, [pc, #12] ; (8011b34 <HAL_GetTick+0x14>)
8011b26: 681b ldr r3, [r3, #0]
}
8011b28: 4618 mov r0, r3
8011b2a: 46bd mov sp, r7
8011b2c: f85d 7b04 ldr.w r7, [sp], #4
8011b30: 4770 bx lr
8011b32: bf00 nop
8011b34: 2006c5a4 .word 0x2006c5a4
08011b38 <HAL_Delay>:
* implementations in user file.
* @param Delay specifies the delay time length, in milliseconds.
* @retval None
*/
__weak void HAL_Delay(uint32_t Delay)
{
8011b38: b580 push {r7, lr}
8011b3a: b084 sub sp, #16
8011b3c: af00 add r7, sp, #0
8011b3e: 6078 str r0, [r7, #4]
uint32_t tickstart = HAL_GetTick();
8011b40: f7ff ffee bl 8011b20 <HAL_GetTick>
8011b44: 60b8 str r0, [r7, #8]
uint32_t wait = Delay;
8011b46: 687b ldr r3, [r7, #4]
8011b48: 60fb str r3, [r7, #12]
/* Add a freq to guarantee minimum wait */
if (wait < HAL_MAX_DELAY)
8011b4a: 68fb ldr r3, [r7, #12]
8011b4c: f1b3 3fff cmp.w r3, #4294967295
8011b50: d005 beq.n 8011b5e <HAL_Delay+0x26>
{
wait += (uint32_t)(uwTickFreq);
8011b52: 4b09 ldr r3, [pc, #36] ; (8011b78 <HAL_Delay+0x40>)
8011b54: 781b ldrb r3, [r3, #0]
8011b56: 461a mov r2, r3
8011b58: 68fb ldr r3, [r7, #12]
8011b5a: 4413 add r3, r2
8011b5c: 60fb str r3, [r7, #12]
}
while ((HAL_GetTick() - tickstart) < wait)
8011b5e: bf00 nop
8011b60: f7ff ffde bl 8011b20 <HAL_GetTick>
8011b64: 4602 mov r2, r0
8011b66: 68bb ldr r3, [r7, #8]
8011b68: 1ad2 subs r2, r2, r3
8011b6a: 68fb ldr r3, [r7, #12]
8011b6c: 429a cmp r2, r3
8011b6e: d3f7 bcc.n 8011b60 <HAL_Delay+0x28>
{
}
}
8011b70: bf00 nop
8011b72: 3710 adds r7, #16
8011b74: 46bd mov sp, r7
8011b76: bd80 pop {r7, pc}
8011b78: 20020884 .word 0x20020884
08011b7c <__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)
{
8011b7c: b480 push {r7}
8011b7e: b085 sub sp, #20
8011b80: af00 add r7, sp, #0
8011b82: 6078 str r0, [r7, #4]
uint32_t reg_value;
uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
8011b84: 687b ldr r3, [r7, #4]
8011b86: f003 0307 and.w r3, r3, #7
8011b8a: 60fb str r3, [r7, #12]
reg_value = SCB->AIRCR; /* read old register configuration */
8011b8c: 4b0b ldr r3, [pc, #44] ; (8011bbc <__NVIC_SetPriorityGrouping+0x40>)
8011b8e: 68db ldr r3, [r3, #12]
8011b90: 60bb str r3, [r7, #8]
reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */
8011b92: 68ba ldr r2, [r7, #8]
8011b94: f64f 03ff movw r3, #63743 ; 0xf8ff
8011b98: 4013 ands r3, r2
8011b9a: 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 */
8011b9c: 68fb ldr r3, [r7, #12]
8011b9e: 021a lsls r2, r3, #8
((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
8011ba0: 68bb ldr r3, [r7, #8]
8011ba2: 431a orrs r2, r3
reg_value = (reg_value |
8011ba4: 4b06 ldr r3, [pc, #24] ; (8011bc0 <__NVIC_SetPriorityGrouping+0x44>)
8011ba6: 4313 orrs r3, r2
8011ba8: 60bb str r3, [r7, #8]
SCB->AIRCR = reg_value;
8011baa: 4a04 ldr r2, [pc, #16] ; (8011bbc <__NVIC_SetPriorityGrouping+0x40>)
8011bac: 68bb ldr r3, [r7, #8]
8011bae: 60d3 str r3, [r2, #12]
}
8011bb0: bf00 nop
8011bb2: 3714 adds r7, #20
8011bb4: 46bd mov sp, r7
8011bb6: f85d 7b04 ldr.w r7, [sp], #4
8011bba: 4770 bx lr
8011bbc: e000ed00 .word 0xe000ed00
8011bc0: 05fa0000 .word 0x05fa0000
08011bc4 <__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)
{
8011bc4: b480 push {r7}
8011bc6: af00 add r7, sp, #0
return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos));
8011bc8: 4b04 ldr r3, [pc, #16] ; (8011bdc <__NVIC_GetPriorityGrouping+0x18>)
8011bca: 68db ldr r3, [r3, #12]
8011bcc: 0a1b lsrs r3, r3, #8
8011bce: f003 0307 and.w r3, r3, #7
}
8011bd2: 4618 mov r0, r3
8011bd4: 46bd mov sp, r7
8011bd6: f85d 7b04 ldr.w r7, [sp], #4
8011bda: 4770 bx lr
8011bdc: e000ed00 .word 0xe000ed00
08011be0 <__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)
{
8011be0: b480 push {r7}
8011be2: b083 sub sp, #12
8011be4: af00 add r7, sp, #0
8011be6: 4603 mov r3, r0
8011be8: 71fb strb r3, [r7, #7]
if ((int32_t)(IRQn) >= 0)
8011bea: f997 3007 ldrsb.w r3, [r7, #7]
8011bee: 2b00 cmp r3, #0
8011bf0: db0b blt.n 8011c0a <__NVIC_EnableIRQ+0x2a>
{
NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
8011bf2: 4909 ldr r1, [pc, #36] ; (8011c18 <__NVIC_EnableIRQ+0x38>)
8011bf4: f997 3007 ldrsb.w r3, [r7, #7]
8011bf8: 095b lsrs r3, r3, #5
8011bfa: 79fa ldrb r2, [r7, #7]
8011bfc: f002 021f and.w r2, r2, #31
8011c00: 2001 movs r0, #1
8011c02: fa00 f202 lsl.w r2, r0, r2
8011c06: f841 2023 str.w r2, [r1, r3, lsl #2]
}
}
8011c0a: bf00 nop
8011c0c: 370c adds r7, #12
8011c0e: 46bd mov sp, r7
8011c10: f85d 7b04 ldr.w r7, [sp], #4
8011c14: 4770 bx lr
8011c16: bf00 nop
8011c18: e000e100 .word 0xe000e100
08011c1c <__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)
{
8011c1c: b480 push {r7}
8011c1e: b083 sub sp, #12
8011c20: af00 add r7, sp, #0
8011c22: 4603 mov r3, r0
8011c24: 71fb strb r3, [r7, #7]
if ((int32_t)(IRQn) >= 0)
8011c26: f997 3007 ldrsb.w r3, [r7, #7]
8011c2a: 2b00 cmp r3, #0
8011c2c: db10 blt.n 8011c50 <__NVIC_DisableIRQ+0x34>
{
NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
8011c2e: 490b ldr r1, [pc, #44] ; (8011c5c <__NVIC_DisableIRQ+0x40>)
8011c30: f997 3007 ldrsb.w r3, [r7, #7]
8011c34: 095b lsrs r3, r3, #5
8011c36: 79fa ldrb r2, [r7, #7]
8011c38: f002 021f and.w r2, r2, #31
8011c3c: 2001 movs r0, #1
8011c3e: fa00 f202 lsl.w r2, r0, r2
8011c42: 3320 adds r3, #32
8011c44: 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");
8011c48: f3bf 8f4f dsb sy
__ASM volatile ("isb 0xF":::"memory");
8011c4c: f3bf 8f6f isb sy
__DSB();
__ISB();
}
}
8011c50: bf00 nop
8011c52: 370c adds r7, #12
8011c54: 46bd mov sp, r7
8011c56: f85d 7b04 ldr.w r7, [sp], #4
8011c5a: 4770 bx lr
8011c5c: e000e100 .word 0xe000e100
08011c60 <__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)
{
8011c60: b480 push {r7}
8011c62: b083 sub sp, #12
8011c64: af00 add r7, sp, #0
8011c66: 4603 mov r3, r0
8011c68: 6039 str r1, [r7, #0]
8011c6a: 71fb strb r3, [r7, #7]
if ((int32_t)(IRQn) >= 0)
8011c6c: f997 3007 ldrsb.w r3, [r7, #7]
8011c70: 2b00 cmp r3, #0
8011c72: db0a blt.n 8011c8a <__NVIC_SetPriority+0x2a>
{
NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
8011c74: 490d ldr r1, [pc, #52] ; (8011cac <__NVIC_SetPriority+0x4c>)
8011c76: f997 3007 ldrsb.w r3, [r7, #7]
8011c7a: 683a ldr r2, [r7, #0]
8011c7c: b2d2 uxtb r2, r2
8011c7e: 0112 lsls r2, r2, #4
8011c80: b2d2 uxtb r2, r2
8011c82: 440b add r3, r1
8011c84: 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);
}
}
8011c88: e00a b.n 8011ca0 <__NVIC_SetPriority+0x40>
SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
8011c8a: 4909 ldr r1, [pc, #36] ; (8011cb0 <__NVIC_SetPriority+0x50>)
8011c8c: 79fb ldrb r3, [r7, #7]
8011c8e: f003 030f and.w r3, r3, #15
8011c92: 3b04 subs r3, #4
8011c94: 683a ldr r2, [r7, #0]
8011c96: b2d2 uxtb r2, r2
8011c98: 0112 lsls r2, r2, #4
8011c9a: b2d2 uxtb r2, r2
8011c9c: 440b add r3, r1
8011c9e: 761a strb r2, [r3, #24]
}
8011ca0: bf00 nop
8011ca2: 370c adds r7, #12
8011ca4: 46bd mov sp, r7
8011ca6: f85d 7b04 ldr.w r7, [sp], #4
8011caa: 4770 bx lr
8011cac: e000e100 .word 0xe000e100
8011cb0: e000ed00 .word 0xe000ed00
08011cb4 <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)
{
8011cb4: b480 push {r7}
8011cb6: b089 sub sp, #36 ; 0x24
8011cb8: af00 add r7, sp, #0
8011cba: 60f8 str r0, [r7, #12]
8011cbc: 60b9 str r1, [r7, #8]
8011cbe: 607a str r2, [r7, #4]
uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
8011cc0: 68fb ldr r3, [r7, #12]
8011cc2: f003 0307 and.w r3, r3, #7
8011cc6: 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);
8011cc8: 69fb ldr r3, [r7, #28]
8011cca: f1c3 0307 rsb r3, r3, #7
8011cce: 2b04 cmp r3, #4
8011cd0: bf28 it cs
8011cd2: 2304 movcs r3, #4
8011cd4: 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));
8011cd6: 69fb ldr r3, [r7, #28]
8011cd8: 3304 adds r3, #4
8011cda: 2b06 cmp r3, #6
8011cdc: d902 bls.n 8011ce4 <NVIC_EncodePriority+0x30>
8011cde: 69fb ldr r3, [r7, #28]
8011ce0: 3b03 subs r3, #3
8011ce2: e000 b.n 8011ce6 <NVIC_EncodePriority+0x32>
8011ce4: 2300 movs r3, #0
8011ce6: 617b str r3, [r7, #20]
return (
((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
8011ce8: 2201 movs r2, #1
8011cea: 69bb ldr r3, [r7, #24]
8011cec: fa02 f303 lsl.w r3, r2, r3
8011cf0: 1e5a subs r2, r3, #1
8011cf2: 68bb ldr r3, [r7, #8]
8011cf4: 401a ands r2, r3
8011cf6: 697b ldr r3, [r7, #20]
8011cf8: 409a lsls r2, r3
((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL)))
8011cfa: 2101 movs r1, #1
8011cfc: 697b ldr r3, [r7, #20]
8011cfe: fa01 f303 lsl.w r3, r1, r3
8011d02: 1e59 subs r1, r3, #1
8011d04: 687b ldr r3, [r7, #4]
8011d06: 400b ands r3, r1
((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
8011d08: 4313 orrs r3, r2
);
}
8011d0a: 4618 mov r0, r3
8011d0c: 3724 adds r7, #36 ; 0x24
8011d0e: 46bd mov sp, r7
8011d10: f85d 7b04 ldr.w r7, [sp], #4
8011d14: 4770 bx lr
...
08011d18 <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)
{
8011d18: b580 push {r7, lr}
8011d1a: b082 sub sp, #8
8011d1c: af00 add r7, sp, #0
8011d1e: 6078 str r0, [r7, #4]
if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk)
8011d20: 687b ldr r3, [r7, #4]
8011d22: 3b01 subs r3, #1
8011d24: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000
8011d28: d301 bcc.n 8011d2e <SysTick_Config+0x16>
{
return (1UL); /* Reload value impossible */
8011d2a: 2301 movs r3, #1
8011d2c: e00f b.n 8011d4e <SysTick_Config+0x36>
}
SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */
8011d2e: 4a0a ldr r2, [pc, #40] ; (8011d58 <SysTick_Config+0x40>)
8011d30: 687b ldr r3, [r7, #4]
8011d32: 3b01 subs r3, #1
8011d34: 6053 str r3, [r2, #4]
NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */
8011d36: 210f movs r1, #15
8011d38: f04f 30ff mov.w r0, #4294967295
8011d3c: f7ff ff90 bl 8011c60 <__NVIC_SetPriority>
SysTick->VAL = 0UL; /* Load the SysTick Counter Value */
8011d40: 4b05 ldr r3, [pc, #20] ; (8011d58 <SysTick_Config+0x40>)
8011d42: 2200 movs r2, #0
8011d44: 609a str r2, [r3, #8]
SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
8011d46: 4b04 ldr r3, [pc, #16] ; (8011d58 <SysTick_Config+0x40>)
8011d48: 2207 movs r2, #7
8011d4a: 601a str r2, [r3, #0]
SysTick_CTRL_TICKINT_Msk |
SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */
return (0UL); /* Function successful */
8011d4c: 2300 movs r3, #0
}
8011d4e: 4618 mov r0, r3
8011d50: 3708 adds r7, #8
8011d52: 46bd mov sp, r7
8011d54: bd80 pop {r7, pc}
8011d56: bf00 nop
8011d58: e000e010 .word 0xe000e010
08011d5c <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)
{
8011d5c: b580 push {r7, lr}
8011d5e: b082 sub sp, #8
8011d60: af00 add r7, sp, #0
8011d62: 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);
8011d64: 6878 ldr r0, [r7, #4]
8011d66: f7ff ff09 bl 8011b7c <__NVIC_SetPriorityGrouping>
}
8011d6a: bf00 nop
8011d6c: 3708 adds r7, #8
8011d6e: 46bd mov sp, r7
8011d70: bd80 pop {r7, pc}
08011d72 <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)
{
8011d72: b580 push {r7, lr}
8011d74: b086 sub sp, #24
8011d76: af00 add r7, sp, #0
8011d78: 4603 mov r3, r0
8011d7a: 60b9 str r1, [r7, #8]
8011d7c: 607a str r2, [r7, #4]
8011d7e: 73fb strb r3, [r7, #15]
uint32_t prioritygroup = 0x00;
8011d80: 2300 movs r3, #0
8011d82: 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();
8011d84: f7ff ff1e bl 8011bc4 <__NVIC_GetPriorityGrouping>
8011d88: 6178 str r0, [r7, #20]
NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority));
8011d8a: 687a ldr r2, [r7, #4]
8011d8c: 68b9 ldr r1, [r7, #8]
8011d8e: 6978 ldr r0, [r7, #20]
8011d90: f7ff ff90 bl 8011cb4 <NVIC_EncodePriority>
8011d94: 4602 mov r2, r0
8011d96: f997 300f ldrsb.w r3, [r7, #15]
8011d9a: 4611 mov r1, r2
8011d9c: 4618 mov r0, r3
8011d9e: f7ff ff5f bl 8011c60 <__NVIC_SetPriority>
}
8011da2: bf00 nop
8011da4: 3718 adds r7, #24
8011da6: 46bd mov sp, r7
8011da8: bd80 pop {r7, pc}
08011daa <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)
{
8011daa: b580 push {r7, lr}
8011dac: b082 sub sp, #8
8011dae: af00 add r7, sp, #0
8011db0: 4603 mov r3, r0
8011db2: 71fb strb r3, [r7, #7]
/* Check the parameters */
assert_param(IS_NVIC_DEVICE_IRQ(IRQn));
/* Enable interrupt */
NVIC_EnableIRQ(IRQn);
8011db4: f997 3007 ldrsb.w r3, [r7, #7]
8011db8: 4618 mov r0, r3
8011dba: f7ff ff11 bl 8011be0 <__NVIC_EnableIRQ>
}
8011dbe: bf00 nop
8011dc0: 3708 adds r7, #8
8011dc2: 46bd mov sp, r7
8011dc4: bd80 pop {r7, pc}
08011dc6 <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)
{
8011dc6: b580 push {r7, lr}
8011dc8: b082 sub sp, #8
8011dca: af00 add r7, sp, #0
8011dcc: 4603 mov r3, r0
8011dce: 71fb strb r3, [r7, #7]
/* Check the parameters */
assert_param(IS_NVIC_DEVICE_IRQ(IRQn));
/* Disable interrupt */
NVIC_DisableIRQ(IRQn);
8011dd0: f997 3007 ldrsb.w r3, [r7, #7]
8011dd4: 4618 mov r0, r3
8011dd6: f7ff ff21 bl 8011c1c <__NVIC_DisableIRQ>
}
8011dda: bf00 nop
8011ddc: 3708 adds r7, #8
8011dde: 46bd mov sp, r7
8011de0: bd80 pop {r7, pc}
08011de2 <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)
{
8011de2: b580 push {r7, lr}
8011de4: b082 sub sp, #8
8011de6: af00 add r7, sp, #0
8011de8: 6078 str r0, [r7, #4]
return SysTick_Config(TicksNumb);
8011dea: 6878 ldr r0, [r7, #4]
8011dec: f7ff ff94 bl 8011d18 <SysTick_Config>
8011df0: 4603 mov r3, r0
}
8011df2: 4618 mov r0, r3
8011df4: 3708 adds r7, #8
8011df6: 46bd mov sp, r7
8011df8: bd80 pop {r7, pc}
08011dfa <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)
{
8011dfa: b580 push {r7, lr}
8011dfc: b084 sub sp, #16
8011dfe: af00 add r7, sp, #0
8011e00: 6078 str r0, [r7, #4]
/* calculate DMA base and stream number */
DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress;
8011e02: 687b ldr r3, [r7, #4]
8011e04: 6d9b ldr r3, [r3, #88] ; 0x58
8011e06: 60fb str r3, [r7, #12]
uint32_t tickstart = HAL_GetTick();
8011e08: f7ff fe8a bl 8011b20 <HAL_GetTick>
8011e0c: 60b8 str r0, [r7, #8]
if(hdma->State != HAL_DMA_STATE_BUSY)
8011e0e: 687b ldr r3, [r7, #4]
8011e10: f893 3035 ldrb.w r3, [r3, #53] ; 0x35
8011e14: b2db uxtb r3, r3
8011e16: 2b02 cmp r3, #2
8011e18: d008 beq.n 8011e2c <HAL_DMA_Abort+0x32>
{
hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER;
8011e1a: 687b ldr r3, [r7, #4]
8011e1c: 2280 movs r2, #128 ; 0x80
8011e1e: 655a str r2, [r3, #84] ; 0x54
/* Process Unlocked */
__HAL_UNLOCK(hdma);
8011e20: 687b ldr r3, [r7, #4]
8011e22: 2200 movs r2, #0
8011e24: f883 2034 strb.w r2, [r3, #52] ; 0x34
return HAL_ERROR;
8011e28: 2301 movs r3, #1
8011e2a: e052 b.n 8011ed2 <HAL_DMA_Abort+0xd8>
}
else
{
/* Disable all the transfer interrupts */
hdma->Instance->CR &= ~(DMA_IT_TC | DMA_IT_TE | DMA_IT_DME);
8011e2c: 687b ldr r3, [r7, #4]
8011e2e: 681b ldr r3, [r3, #0]
8011e30: 687a ldr r2, [r7, #4]
8011e32: 6812 ldr r2, [r2, #0]
8011e34: 6812 ldr r2, [r2, #0]
8011e36: f022 0216 bic.w r2, r2, #22
8011e3a: 601a str r2, [r3, #0]
hdma->Instance->FCR &= ~(DMA_IT_FE);
8011e3c: 687b ldr r3, [r7, #4]
8011e3e: 681b ldr r3, [r3, #0]
8011e40: 687a ldr r2, [r7, #4]
8011e42: 6812 ldr r2, [r2, #0]
8011e44: 6952 ldr r2, [r2, #20]
8011e46: f022 0280 bic.w r2, r2, #128 ; 0x80
8011e4a: 615a str r2, [r3, #20]
if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL))
8011e4c: 687b ldr r3, [r7, #4]
8011e4e: 6c1b ldr r3, [r3, #64] ; 0x40
8011e50: 2b00 cmp r3, #0
8011e52: d103 bne.n 8011e5c <HAL_DMA_Abort+0x62>
8011e54: 687b ldr r3, [r7, #4]
8011e56: 6c9b ldr r3, [r3, #72] ; 0x48
8011e58: 2b00 cmp r3, #0
8011e5a: d007 beq.n 8011e6c <HAL_DMA_Abort+0x72>
{
hdma->Instance->CR &= ~(DMA_IT_HT);
8011e5c: 687b ldr r3, [r7, #4]
8011e5e: 681b ldr r3, [r3, #0]
8011e60: 687a ldr r2, [r7, #4]
8011e62: 6812 ldr r2, [r2, #0]
8011e64: 6812 ldr r2, [r2, #0]
8011e66: f022 0208 bic.w r2, r2, #8
8011e6a: 601a str r2, [r3, #0]
}
/* Disable the stream */
__HAL_DMA_DISABLE(hdma);
8011e6c: 687b ldr r3, [r7, #4]
8011e6e: 681b ldr r3, [r3, #0]
8011e70: 687a ldr r2, [r7, #4]
8011e72: 6812 ldr r2, [r2, #0]
8011e74: 6812 ldr r2, [r2, #0]
8011e76: f022 0201 bic.w r2, r2, #1
8011e7a: 601a str r2, [r3, #0]
/* Check if the DMA Stream is effectively disabled */
while((hdma->Instance->CR & DMA_SxCR_EN) != RESET)
8011e7c: e013 b.n 8011ea6 <HAL_DMA_Abort+0xac>
{
/* Check for the Timeout */
if((HAL_GetTick() - tickstart ) > HAL_TIMEOUT_DMA_ABORT)
8011e7e: f7ff fe4f bl 8011b20 <HAL_GetTick>
8011e82: 4602 mov r2, r0
8011e84: 68bb ldr r3, [r7, #8]
8011e86: 1ad3 subs r3, r2, r3
8011e88: 2b05 cmp r3, #5
8011e8a: d90c bls.n 8011ea6 <HAL_DMA_Abort+0xac>
{
/* Update error code */
hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT;
8011e8c: 687b ldr r3, [r7, #4]
8011e8e: 2220 movs r2, #32
8011e90: 655a str r2, [r3, #84] ; 0x54
/* Change the DMA state */
hdma->State = HAL_DMA_STATE_TIMEOUT;
8011e92: 687b ldr r3, [r7, #4]
8011e94: 2203 movs r2, #3
8011e96: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Process Unlocked */
__HAL_UNLOCK(hdma);
8011e9a: 687b ldr r3, [r7, #4]
8011e9c: 2200 movs r2, #0
8011e9e: f883 2034 strb.w r2, [r3, #52] ; 0x34
return HAL_TIMEOUT;
8011ea2: 2303 movs r3, #3
8011ea4: e015 b.n 8011ed2 <HAL_DMA_Abort+0xd8>
while((hdma->Instance->CR & DMA_SxCR_EN) != RESET)
8011ea6: 687b ldr r3, [r7, #4]
8011ea8: 681b ldr r3, [r3, #0]
8011eaa: 681b ldr r3, [r3, #0]
8011eac: f003 0301 and.w r3, r3, #1
8011eb0: 2b00 cmp r3, #0
8011eb2: d1e4 bne.n 8011e7e <HAL_DMA_Abort+0x84>
}
}
/* Clear all interrupt flags at correct offset within the register */
regs->IFCR = 0x3FU << hdma->StreamIndex;
8011eb4: 687b ldr r3, [r7, #4]
8011eb6: 6ddb ldr r3, [r3, #92] ; 0x5c
8011eb8: 223f movs r2, #63 ; 0x3f
8011eba: 409a lsls r2, r3
8011ebc: 68fb ldr r3, [r7, #12]
8011ebe: 609a str r2, [r3, #8]
/* Change the DMA state*/
hdma->State = HAL_DMA_STATE_READY;
8011ec0: 687b ldr r3, [r7, #4]
8011ec2: 2201 movs r2, #1
8011ec4: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Process Unlocked */
__HAL_UNLOCK(hdma);
8011ec8: 687b ldr r3, [r7, #4]
8011eca: 2200 movs r2, #0
8011ecc: f883 2034 strb.w r2, [r3, #52] ; 0x34
}
return HAL_OK;
8011ed0: 2300 movs r3, #0
}
8011ed2: 4618 mov r0, r3
8011ed4: 3710 adds r7, #16
8011ed6: 46bd mov sp, r7
8011ed8: bd80 pop {r7, pc}
08011eda <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)
{
8011eda: b480 push {r7}
8011edc: b083 sub sp, #12
8011ede: af00 add r7, sp, #0
8011ee0: 6078 str r0, [r7, #4]
if(hdma->State != HAL_DMA_STATE_BUSY)
8011ee2: 687b ldr r3, [r7, #4]
8011ee4: f893 3035 ldrb.w r3, [r3, #53] ; 0x35
8011ee8: b2db uxtb r3, r3
8011eea: 2b02 cmp r3, #2
8011eec: d004 beq.n 8011ef8 <HAL_DMA_Abort_IT+0x1e>
{
hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER;
8011eee: 687b ldr r3, [r7, #4]
8011ef0: 2280 movs r2, #128 ; 0x80
8011ef2: 655a str r2, [r3, #84] ; 0x54
return HAL_ERROR;
8011ef4: 2301 movs r3, #1
8011ef6: e00c b.n 8011f12 <HAL_DMA_Abort_IT+0x38>
}
else
{
/* Set Abort State */
hdma->State = HAL_DMA_STATE_ABORT;
8011ef8: 687b ldr r3, [r7, #4]
8011efa: 2205 movs r2, #5
8011efc: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Disable the stream */
__HAL_DMA_DISABLE(hdma);
8011f00: 687b ldr r3, [r7, #4]
8011f02: 681b ldr r3, [r3, #0]
8011f04: 687a ldr r2, [r7, #4]
8011f06: 6812 ldr r2, [r2, #0]
8011f08: 6812 ldr r2, [r2, #0]
8011f0a: f022 0201 bic.w r2, r2, #1
8011f0e: 601a str r2, [r3, #0]
}
return HAL_OK;
8011f10: 2300 movs r3, #0
}
8011f12: 4618 mov r0, r3
8011f14: 370c adds r7, #12
8011f16: 46bd mov sp, r7
8011f18: f85d 7b04 ldr.w r7, [sp], #4
8011f1c: 4770 bx lr
...
08011f20 <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)
{
8011f20: b580 push {r7, lr}
8011f22: b086 sub sp, #24
8011f24: af00 add r7, sp, #0
8011f26: 6078 str r0, [r7, #4]
uint32_t tmpisr;
__IO uint32_t count = 0;
8011f28: 2300 movs r3, #0
8011f2a: 60bb str r3, [r7, #8]
uint32_t timeout = SystemCoreClock / 9600;
8011f2c: 4b92 ldr r3, [pc, #584] ; (8012178 <HAL_DMA_IRQHandler+0x258>)
8011f2e: 681b ldr r3, [r3, #0]
8011f30: 4a92 ldr r2, [pc, #584] ; (801217c <HAL_DMA_IRQHandler+0x25c>)
8011f32: fba2 2303 umull r2, r3, r2, r3
8011f36: 0a9b lsrs r3, r3, #10
8011f38: 617b str r3, [r7, #20]
/* calculate DMA base and stream number */
DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress;
8011f3a: 687b ldr r3, [r7, #4]
8011f3c: 6d9b ldr r3, [r3, #88] ; 0x58
8011f3e: 613b str r3, [r7, #16]
tmpisr = regs->ISR;
8011f40: 693b ldr r3, [r7, #16]
8011f42: 681b ldr r3, [r3, #0]
8011f44: 60fb str r3, [r7, #12]
/* Transfer Error Interrupt management ***************************************/
if ((tmpisr & (DMA_FLAG_TEIF0_4 << hdma->StreamIndex)) != RESET)
8011f46: 687b ldr r3, [r7, #4]
8011f48: 6ddb ldr r3, [r3, #92] ; 0x5c
8011f4a: 2208 movs r2, #8
8011f4c: 409a lsls r2, r3
8011f4e: 68fb ldr r3, [r7, #12]
8011f50: 4013 ands r3, r2
8011f52: 2b00 cmp r3, #0
8011f54: d01a beq.n 8011f8c <HAL_DMA_IRQHandler+0x6c>
{
if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TE) != RESET)
8011f56: 687b ldr r3, [r7, #4]
8011f58: 681b ldr r3, [r3, #0]
8011f5a: 681b ldr r3, [r3, #0]
8011f5c: f003 0304 and.w r3, r3, #4
8011f60: 2b00 cmp r3, #0
8011f62: d013 beq.n 8011f8c <HAL_DMA_IRQHandler+0x6c>
{
/* Disable the transfer error interrupt */
hdma->Instance->CR &= ~(DMA_IT_TE);
8011f64: 687b ldr r3, [r7, #4]
8011f66: 681b ldr r3, [r3, #0]
8011f68: 687a ldr r2, [r7, #4]
8011f6a: 6812 ldr r2, [r2, #0]
8011f6c: 6812 ldr r2, [r2, #0]
8011f6e: f022 0204 bic.w r2, r2, #4
8011f72: 601a str r2, [r3, #0]
/* Clear the transfer error flag */
regs->IFCR = DMA_FLAG_TEIF0_4 << hdma->StreamIndex;
8011f74: 687b ldr r3, [r7, #4]
8011f76: 6ddb ldr r3, [r3, #92] ; 0x5c
8011f78: 2208 movs r2, #8
8011f7a: 409a lsls r2, r3
8011f7c: 693b ldr r3, [r7, #16]
8011f7e: 609a str r2, [r3, #8]
/* Update error code */
hdma->ErrorCode |= HAL_DMA_ERROR_TE;
8011f80: 687b ldr r3, [r7, #4]
8011f82: 6d5b ldr r3, [r3, #84] ; 0x54
8011f84: f043 0201 orr.w r2, r3, #1
8011f88: 687b ldr r3, [r7, #4]
8011f8a: 655a str r2, [r3, #84] ; 0x54
}
}
/* FIFO Error Interrupt management ******************************************/
if ((tmpisr & (DMA_FLAG_FEIF0_4 << hdma->StreamIndex)) != RESET)
8011f8c: 687b ldr r3, [r7, #4]
8011f8e: 6ddb ldr r3, [r3, #92] ; 0x5c
8011f90: 2201 movs r2, #1
8011f92: 409a lsls r2, r3
8011f94: 68fb ldr r3, [r7, #12]
8011f96: 4013 ands r3, r2
8011f98: 2b00 cmp r3, #0
8011f9a: d012 beq.n 8011fc2 <HAL_DMA_IRQHandler+0xa2>
{
if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_FE) != RESET)
8011f9c: 687b ldr r3, [r7, #4]
8011f9e: 681b ldr r3, [r3, #0]
8011fa0: 695b ldr r3, [r3, #20]
8011fa2: f003 0380 and.w r3, r3, #128 ; 0x80
8011fa6: 2b00 cmp r3, #0
8011fa8: d00b beq.n 8011fc2 <HAL_DMA_IRQHandler+0xa2>
{
/* Clear the FIFO error flag */
regs->IFCR = DMA_FLAG_FEIF0_4 << hdma->StreamIndex;
8011faa: 687b ldr r3, [r7, #4]
8011fac: 6ddb ldr r3, [r3, #92] ; 0x5c
8011fae: 2201 movs r2, #1
8011fb0: 409a lsls r2, r3
8011fb2: 693b ldr r3, [r7, #16]
8011fb4: 609a str r2, [r3, #8]
/* Update error code */
hdma->ErrorCode |= HAL_DMA_ERROR_FE;
8011fb6: 687b ldr r3, [r7, #4]
8011fb8: 6d5b ldr r3, [r3, #84] ; 0x54
8011fba: f043 0202 orr.w r2, r3, #2
8011fbe: 687b ldr r3, [r7, #4]
8011fc0: 655a str r2, [r3, #84] ; 0x54
}
}
/* Direct Mode Error Interrupt management ***********************************/
if ((tmpisr & (DMA_FLAG_DMEIF0_4 << hdma->StreamIndex)) != RESET)
8011fc2: 687b ldr r3, [r7, #4]
8011fc4: 6ddb ldr r3, [r3, #92] ; 0x5c
8011fc6: 2204 movs r2, #4
8011fc8: 409a lsls r2, r3
8011fca: 68fb ldr r3, [r7, #12]
8011fcc: 4013 ands r3, r2
8011fce: 2b00 cmp r3, #0
8011fd0: d012 beq.n 8011ff8 <HAL_DMA_IRQHandler+0xd8>
{
if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_DME) != RESET)
8011fd2: 687b ldr r3, [r7, #4]
8011fd4: 681b ldr r3, [r3, #0]
8011fd6: 681b ldr r3, [r3, #0]
8011fd8: f003 0302 and.w r3, r3, #2
8011fdc: 2b00 cmp r3, #0
8011fde: d00b beq.n 8011ff8 <HAL_DMA_IRQHandler+0xd8>
{
/* Clear the direct mode error flag */
regs->IFCR = DMA_FLAG_DMEIF0_4 << hdma->StreamIndex;
8011fe0: 687b ldr r3, [r7, #4]
8011fe2: 6ddb ldr r3, [r3, #92] ; 0x5c
8011fe4: 2204 movs r2, #4
8011fe6: 409a lsls r2, r3
8011fe8: 693b ldr r3, [r7, #16]
8011fea: 609a str r2, [r3, #8]
/* Update error code */
hdma->ErrorCode |= HAL_DMA_ERROR_DME;
8011fec: 687b ldr r3, [r7, #4]
8011fee: 6d5b ldr r3, [r3, #84] ; 0x54
8011ff0: f043 0204 orr.w r2, r3, #4
8011ff4: 687b ldr r3, [r7, #4]
8011ff6: 655a str r2, [r3, #84] ; 0x54
}
}
/* Half Transfer Complete Interrupt management ******************************/
if ((tmpisr & (DMA_FLAG_HTIF0_4 << hdma->StreamIndex)) != RESET)
8011ff8: 687b ldr r3, [r7, #4]
8011ffa: 6ddb ldr r3, [r3, #92] ; 0x5c
8011ffc: 2210 movs r2, #16
8011ffe: 409a lsls r2, r3
8012000: 68fb ldr r3, [r7, #12]
8012002: 4013 ands r3, r2
8012004: 2b00 cmp r3, #0
8012006: d043 beq.n 8012090 <HAL_DMA_IRQHandler+0x170>
{
if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_HT) != RESET)
8012008: 687b ldr r3, [r7, #4]
801200a: 681b ldr r3, [r3, #0]
801200c: 681b ldr r3, [r3, #0]
801200e: f003 0308 and.w r3, r3, #8
8012012: 2b00 cmp r3, #0
8012014: d03c beq.n 8012090 <HAL_DMA_IRQHandler+0x170>
{
/* Clear the half transfer complete flag */
regs->IFCR = DMA_FLAG_HTIF0_4 << hdma->StreamIndex;
8012016: 687b ldr r3, [r7, #4]
8012018: 6ddb ldr r3, [r3, #92] ; 0x5c
801201a: 2210 movs r2, #16
801201c: 409a lsls r2, r3
801201e: 693b ldr r3, [r7, #16]
8012020: 609a str r2, [r3, #8]
/* Multi_Buffering mode enabled */
if(((hdma->Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET)
8012022: 687b ldr r3, [r7, #4]
8012024: 681b ldr r3, [r3, #0]
8012026: 681b ldr r3, [r3, #0]
8012028: f403 2380 and.w r3, r3, #262144 ; 0x40000
801202c: 2b00 cmp r3, #0
801202e: d018 beq.n 8012062 <HAL_DMA_IRQHandler+0x142>
{
/* Current memory buffer used is Memory 0 */
if((hdma->Instance->CR & DMA_SxCR_CT) == RESET)
8012030: 687b ldr r3, [r7, #4]
8012032: 681b ldr r3, [r3, #0]
8012034: 681b ldr r3, [r3, #0]
8012036: f403 2300 and.w r3, r3, #524288 ; 0x80000
801203a: 2b00 cmp r3, #0
801203c: d108 bne.n 8012050 <HAL_DMA_IRQHandler+0x130>
{
if(hdma->XferHalfCpltCallback != NULL)
801203e: 687b ldr r3, [r7, #4]
8012040: 6c1b ldr r3, [r3, #64] ; 0x40
8012042: 2b00 cmp r3, #0
8012044: d024 beq.n 8012090 <HAL_DMA_IRQHandler+0x170>
{
/* Half transfer callback */
hdma->XferHalfCpltCallback(hdma);
8012046: 687b ldr r3, [r7, #4]
8012048: 6c1b ldr r3, [r3, #64] ; 0x40
801204a: 6878 ldr r0, [r7, #4]
801204c: 4798 blx r3
801204e: e01f b.n 8012090 <HAL_DMA_IRQHandler+0x170>
}
}
/* Current memory buffer used is Memory 1 */
else
{
if(hdma->XferM1HalfCpltCallback != NULL)
8012050: 687b ldr r3, [r7, #4]
8012052: 6c9b ldr r3, [r3, #72] ; 0x48
8012054: 2b00 cmp r3, #0
8012056: d01b beq.n 8012090 <HAL_DMA_IRQHandler+0x170>
{
/* Half transfer callback */
hdma->XferM1HalfCpltCallback(hdma);
8012058: 687b ldr r3, [r7, #4]
801205a: 6c9b ldr r3, [r3, #72] ; 0x48
801205c: 6878 ldr r0, [r7, #4]
801205e: 4798 blx r3
8012060: e016 b.n 8012090 <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)
8012062: 687b ldr r3, [r7, #4]
8012064: 681b ldr r3, [r3, #0]
8012066: 681b ldr r3, [r3, #0]
8012068: f403 7380 and.w r3, r3, #256 ; 0x100
801206c: 2b00 cmp r3, #0
801206e: d107 bne.n 8012080 <HAL_DMA_IRQHandler+0x160>
{
/* Disable the half transfer interrupt */
hdma->Instance->CR &= ~(DMA_IT_HT);
8012070: 687b ldr r3, [r7, #4]
8012072: 681b ldr r3, [r3, #0]
8012074: 687a ldr r2, [r7, #4]
8012076: 6812 ldr r2, [r2, #0]
8012078: 6812 ldr r2, [r2, #0]
801207a: f022 0208 bic.w r2, r2, #8
801207e: 601a str r2, [r3, #0]
}
if(hdma->XferHalfCpltCallback != NULL)
8012080: 687b ldr r3, [r7, #4]
8012082: 6c1b ldr r3, [r3, #64] ; 0x40
8012084: 2b00 cmp r3, #0
8012086: d003 beq.n 8012090 <HAL_DMA_IRQHandler+0x170>
{
/* Half transfer callback */
hdma->XferHalfCpltCallback(hdma);
8012088: 687b ldr r3, [r7, #4]
801208a: 6c1b ldr r3, [r3, #64] ; 0x40
801208c: 6878 ldr r0, [r7, #4]
801208e: 4798 blx r3
}
}
}
}
/* Transfer Complete Interrupt management ***********************************/
if ((tmpisr & (DMA_FLAG_TCIF0_4 << hdma->StreamIndex)) != RESET)
8012090: 687b ldr r3, [r7, #4]
8012092: 6ddb ldr r3, [r3, #92] ; 0x5c
8012094: 2220 movs r2, #32
8012096: 409a lsls r2, r3
8012098: 68fb ldr r3, [r7, #12]
801209a: 4013 ands r3, r2
801209c: 2b00 cmp r3, #0
801209e: f000 808e beq.w 80121be <HAL_DMA_IRQHandler+0x29e>
{
if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TC) != RESET)
80120a2: 687b ldr r3, [r7, #4]
80120a4: 681b ldr r3, [r3, #0]
80120a6: 681b ldr r3, [r3, #0]
80120a8: f003 0310 and.w r3, r3, #16
80120ac: 2b00 cmp r3, #0
80120ae: f000 8086 beq.w 80121be <HAL_DMA_IRQHandler+0x29e>
{
/* Clear the transfer complete flag */
regs->IFCR = DMA_FLAG_TCIF0_4 << hdma->StreamIndex;
80120b2: 687b ldr r3, [r7, #4]
80120b4: 6ddb ldr r3, [r3, #92] ; 0x5c
80120b6: 2220 movs r2, #32
80120b8: 409a lsls r2, r3
80120ba: 693b ldr r3, [r7, #16]
80120bc: 609a str r2, [r3, #8]
if(HAL_DMA_STATE_ABORT == hdma->State)
80120be: 687b ldr r3, [r7, #4]
80120c0: f893 3035 ldrb.w r3, [r3, #53] ; 0x35
80120c4: b2db uxtb r3, r3
80120c6: 2b05 cmp r3, #5
80120c8: d136 bne.n 8012138 <HAL_DMA_IRQHandler+0x218>
{
/* Disable all the transfer interrupts */
hdma->Instance->CR &= ~(DMA_IT_TC | DMA_IT_TE | DMA_IT_DME);
80120ca: 687b ldr r3, [r7, #4]
80120cc: 681b ldr r3, [r3, #0]
80120ce: 687a ldr r2, [r7, #4]
80120d0: 6812 ldr r2, [r2, #0]
80120d2: 6812 ldr r2, [r2, #0]
80120d4: f022 0216 bic.w r2, r2, #22
80120d8: 601a str r2, [r3, #0]
hdma->Instance->FCR &= ~(DMA_IT_FE);
80120da: 687b ldr r3, [r7, #4]
80120dc: 681b ldr r3, [r3, #0]
80120de: 687a ldr r2, [r7, #4]
80120e0: 6812 ldr r2, [r2, #0]
80120e2: 6952 ldr r2, [r2, #20]
80120e4: f022 0280 bic.w r2, r2, #128 ; 0x80
80120e8: 615a str r2, [r3, #20]
if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL))
80120ea: 687b ldr r3, [r7, #4]
80120ec: 6c1b ldr r3, [r3, #64] ; 0x40
80120ee: 2b00 cmp r3, #0
80120f0: d103 bne.n 80120fa <HAL_DMA_IRQHandler+0x1da>
80120f2: 687b ldr r3, [r7, #4]
80120f4: 6c9b ldr r3, [r3, #72] ; 0x48
80120f6: 2b00 cmp r3, #0
80120f8: d007 beq.n 801210a <HAL_DMA_IRQHandler+0x1ea>
{
hdma->Instance->CR &= ~(DMA_IT_HT);
80120fa: 687b ldr r3, [r7, #4]
80120fc: 681b ldr r3, [r3, #0]
80120fe: 687a ldr r2, [r7, #4]
8012100: 6812 ldr r2, [r2, #0]
8012102: 6812 ldr r2, [r2, #0]
8012104: f022 0208 bic.w r2, r2, #8
8012108: 601a str r2, [r3, #0]
}
/* Clear all interrupt flags at correct offset within the register */
regs->IFCR = 0x3FU << hdma->StreamIndex;
801210a: 687b ldr r3, [r7, #4]
801210c: 6ddb ldr r3, [r3, #92] ; 0x5c
801210e: 223f movs r2, #63 ; 0x3f
8012110: 409a lsls r2, r3
8012112: 693b ldr r3, [r7, #16]
8012114: 609a str r2, [r3, #8]
/* Change the DMA state */
hdma->State = HAL_DMA_STATE_READY;
8012116: 687b ldr r3, [r7, #4]
8012118: 2201 movs r2, #1
801211a: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Process Unlocked */
__HAL_UNLOCK(hdma);
801211e: 687b ldr r3, [r7, #4]
8012120: 2200 movs r2, #0
8012122: f883 2034 strb.w r2, [r3, #52] ; 0x34
if(hdma->XferAbortCallback != NULL)
8012126: 687b ldr r3, [r7, #4]
8012128: 6d1b ldr r3, [r3, #80] ; 0x50
801212a: 2b00 cmp r3, #0
801212c: d07d beq.n 801222a <HAL_DMA_IRQHandler+0x30a>
{
hdma->XferAbortCallback(hdma);
801212e: 687b ldr r3, [r7, #4]
8012130: 6d1b ldr r3, [r3, #80] ; 0x50
8012132: 6878 ldr r0, [r7, #4]
8012134: 4798 blx r3
}
return;
8012136: e078 b.n 801222a <HAL_DMA_IRQHandler+0x30a>
}
if(((hdma->Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET)
8012138: 687b ldr r3, [r7, #4]
801213a: 681b ldr r3, [r3, #0]
801213c: 681b ldr r3, [r3, #0]
801213e: f403 2380 and.w r3, r3, #262144 ; 0x40000
8012142: 2b00 cmp r3, #0
8012144: d01c beq.n 8012180 <HAL_DMA_IRQHandler+0x260>
{
/* Current memory buffer used is Memory 0 */
if((hdma->Instance->CR & DMA_SxCR_CT) == RESET)
8012146: 687b ldr r3, [r7, #4]
8012148: 681b ldr r3, [r3, #0]
801214a: 681b ldr r3, [r3, #0]
801214c: f403 2300 and.w r3, r3, #524288 ; 0x80000
8012150: 2b00 cmp r3, #0
8012152: d108 bne.n 8012166 <HAL_DMA_IRQHandler+0x246>
{
if(hdma->XferM1CpltCallback != NULL)
8012154: 687b ldr r3, [r7, #4]
8012156: 6c5b ldr r3, [r3, #68] ; 0x44
8012158: 2b00 cmp r3, #0
801215a: d030 beq.n 80121be <HAL_DMA_IRQHandler+0x29e>
{
/* Transfer complete Callback for memory1 */
hdma->XferM1CpltCallback(hdma);
801215c: 687b ldr r3, [r7, #4]
801215e: 6c5b ldr r3, [r3, #68] ; 0x44
8012160: 6878 ldr r0, [r7, #4]
8012162: 4798 blx r3
8012164: e02b b.n 80121be <HAL_DMA_IRQHandler+0x29e>
}
}
/* Current memory buffer used is Memory 1 */
else
{
if(hdma->XferCpltCallback != NULL)
8012166: 687b ldr r3, [r7, #4]
8012168: 6bdb ldr r3, [r3, #60] ; 0x3c
801216a: 2b00 cmp r3, #0
801216c: d027 beq.n 80121be <HAL_DMA_IRQHandler+0x29e>
{
/* Transfer complete Callback for memory0 */
hdma->XferCpltCallback(hdma);
801216e: 687b ldr r3, [r7, #4]
8012170: 6bdb ldr r3, [r3, #60] ; 0x3c
8012172: 6878 ldr r0, [r7, #4]
8012174: 4798 blx r3
8012176: e022 b.n 80121be <HAL_DMA_IRQHandler+0x29e>
8012178: 20020874 .word 0x20020874
801217c: 1b4e81b5 .word 0x1b4e81b5
}
}
/* Disable the transfer complete interrupt if the DMA mode is not CIRCULAR */
else
{
if((hdma->Instance->CR & DMA_SxCR_CIRC) == RESET)
8012180: 687b ldr r3, [r7, #4]
8012182: 681b ldr r3, [r3, #0]
8012184: 681b ldr r3, [r3, #0]
8012186: f403 7380 and.w r3, r3, #256 ; 0x100
801218a: 2b00 cmp r3, #0
801218c: d10f bne.n 80121ae <HAL_DMA_IRQHandler+0x28e>
{
/* Disable the transfer complete interrupt */
hdma->Instance->CR &= ~(DMA_IT_TC);
801218e: 687b ldr r3, [r7, #4]
8012190: 681b ldr r3, [r3, #0]
8012192: 687a ldr r2, [r7, #4]
8012194: 6812 ldr r2, [r2, #0]
8012196: 6812 ldr r2, [r2, #0]
8012198: f022 0210 bic.w r2, r2, #16
801219c: 601a str r2, [r3, #0]
/* Change the DMA state */
hdma->State = HAL_DMA_STATE_READY;
801219e: 687b ldr r3, [r7, #4]
80121a0: 2201 movs r2, #1
80121a2: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Process Unlocked */
__HAL_UNLOCK(hdma);
80121a6: 687b ldr r3, [r7, #4]
80121a8: 2200 movs r2, #0
80121aa: f883 2034 strb.w r2, [r3, #52] ; 0x34
}
if(hdma->XferCpltCallback != NULL)
80121ae: 687b ldr r3, [r7, #4]
80121b0: 6bdb ldr r3, [r3, #60] ; 0x3c
80121b2: 2b00 cmp r3, #0
80121b4: d003 beq.n 80121be <HAL_DMA_IRQHandler+0x29e>
{
/* Transfer complete callback */
hdma->XferCpltCallback(hdma);
80121b6: 687b ldr r3, [r7, #4]
80121b8: 6bdb ldr r3, [r3, #60] ; 0x3c
80121ba: 6878 ldr r0, [r7, #4]
80121bc: 4798 blx r3
}
}
}
/* manage error case */
if(hdma->ErrorCode != HAL_DMA_ERROR_NONE)
80121be: 687b ldr r3, [r7, #4]
80121c0: 6d5b ldr r3, [r3, #84] ; 0x54
80121c2: 2b00 cmp r3, #0
80121c4: d032 beq.n 801222c <HAL_DMA_IRQHandler+0x30c>
{
if((hdma->ErrorCode & HAL_DMA_ERROR_TE) != RESET)
80121c6: 687b ldr r3, [r7, #4]
80121c8: 6d5b ldr r3, [r3, #84] ; 0x54
80121ca: f003 0301 and.w r3, r3, #1
80121ce: 2b00 cmp r3, #0
80121d0: d022 beq.n 8012218 <HAL_DMA_IRQHandler+0x2f8>
{
hdma->State = HAL_DMA_STATE_ABORT;
80121d2: 687b ldr r3, [r7, #4]
80121d4: 2205 movs r2, #5
80121d6: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Disable the stream */
__HAL_DMA_DISABLE(hdma);
80121da: 687b ldr r3, [r7, #4]
80121dc: 681b ldr r3, [r3, #0]
80121de: 687a ldr r2, [r7, #4]
80121e0: 6812 ldr r2, [r2, #0]
80121e2: 6812 ldr r2, [r2, #0]
80121e4: f022 0201 bic.w r2, r2, #1
80121e8: 601a str r2, [r3, #0]
do
{
if (++count > timeout)
80121ea: 68bb ldr r3, [r7, #8]
80121ec: 3301 adds r3, #1
80121ee: 60bb str r3, [r7, #8]
80121f0: 697a ldr r2, [r7, #20]
80121f2: 4293 cmp r3, r2
80121f4: d807 bhi.n 8012206 <HAL_DMA_IRQHandler+0x2e6>
{
break;
}
}
while((hdma->Instance->CR & DMA_SxCR_EN) != RESET);
80121f6: 687b ldr r3, [r7, #4]
80121f8: 681b ldr r3, [r3, #0]
80121fa: 681b ldr r3, [r3, #0]
80121fc: f003 0301 and.w r3, r3, #1
8012200: 2b00 cmp r3, #0
8012202: d1f2 bne.n 80121ea <HAL_DMA_IRQHandler+0x2ca>
8012204: e000 b.n 8012208 <HAL_DMA_IRQHandler+0x2e8>
break;
8012206: bf00 nop
/* Change the DMA state */
hdma->State = HAL_DMA_STATE_READY;
8012208: 687b ldr r3, [r7, #4]
801220a: 2201 movs r2, #1
801220c: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Process Unlocked */
__HAL_UNLOCK(hdma);
8012210: 687b ldr r3, [r7, #4]
8012212: 2200 movs r2, #0
8012214: f883 2034 strb.w r2, [r3, #52] ; 0x34
}
if(hdma->XferErrorCallback != NULL)
8012218: 687b ldr r3, [r7, #4]
801221a: 6cdb ldr r3, [r3, #76] ; 0x4c
801221c: 2b00 cmp r3, #0
801221e: d005 beq.n 801222c <HAL_DMA_IRQHandler+0x30c>
{
/* Transfer error callback */
hdma->XferErrorCallback(hdma);
8012220: 687b ldr r3, [r7, #4]
8012222: 6cdb ldr r3, [r3, #76] ; 0x4c
8012224: 6878 ldr r0, [r7, #4]
8012226: 4798 blx r3
8012228: e000 b.n 801222c <HAL_DMA_IRQHandler+0x30c>
return;
801222a: bf00 nop
}
}
}
801222c: 3718 adds r7, #24
801222e: 46bd mov sp, r7
8012230: bd80 pop {r7, pc}
8012232: bf00 nop
08012234 <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)
{
8012234: b580 push {r7, lr}
8012236: b082 sub sp, #8
8012238: af00 add r7, sp, #0
801223a: 6078 str r0, [r7, #4]
/* Check the DMA2D peripheral state */
if (hdma2d == NULL)
801223c: 687b ldr r3, [r7, #4]
801223e: 2b00 cmp r3, #0
8012240: d101 bne.n 8012246 <HAL_DMA2D_Init+0x12>
{
return HAL_ERROR;
8012242: 2301 movs r3, #1
8012244: e049 b.n 80122da <HAL_DMA2D_Init+0xa6>
/* Init the low level hardware */
hdma2d->MspInitCallback(hdma2d);
}
#else
if (hdma2d->State == HAL_DMA2D_STATE_RESET)
8012246: 687b ldr r3, [r7, #4]
8012248: f893 3051 ldrb.w r3, [r3, #81] ; 0x51
801224c: b2db uxtb r3, r3
801224e: 2b00 cmp r3, #0
8012250: d106 bne.n 8012260 <HAL_DMA2D_Init+0x2c>
{
/* Allocate lock resource and initialize it */
hdma2d->Lock = HAL_UNLOCKED;
8012252: 687b ldr r3, [r7, #4]
8012254: 2200 movs r2, #0
8012256: f883 2050 strb.w r2, [r3, #80] ; 0x50
/* Init the low level hardware */
HAL_DMA2D_MspInit(hdma2d);
801225a: 6878 ldr r0, [r7, #4]
801225c: f7ee f9e2 bl 8000624 <HAL_DMA2D_MspInit>
}
#endif /* (USE_HAL_DMA2D_REGISTER_CALLBACKS) */
/* Change DMA2D peripheral state */
hdma2d->State = HAL_DMA2D_STATE_BUSY;
8012260: 687b ldr r3, [r7, #4]
8012262: 2202 movs r2, #2
8012264: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* DMA2D CR register configuration -------------------------------------------*/
MODIFY_REG(hdma2d->Instance->CR, DMA2D_CR_MODE, hdma2d->Init.Mode);
8012268: 687b ldr r3, [r7, #4]
801226a: 681b ldr r3, [r3, #0]
801226c: 687a ldr r2, [r7, #4]
801226e: 6812 ldr r2, [r2, #0]
8012270: 6812 ldr r2, [r2, #0]
8012272: f422 3140 bic.w r1, r2, #196608 ; 0x30000
8012276: 687a ldr r2, [r7, #4]
8012278: 6852 ldr r2, [r2, #4]
801227a: 430a orrs r2, r1
801227c: 601a str r2, [r3, #0]
/* DMA2D OPFCCR register configuration ---------------------------------------*/
MODIFY_REG(hdma2d->Instance->OPFCCR, DMA2D_OPFCCR_CM, hdma2d->Init.ColorMode);
801227e: 687b ldr r3, [r7, #4]
8012280: 681b ldr r3, [r3, #0]
8012282: 687a ldr r2, [r7, #4]
8012284: 6812 ldr r2, [r2, #0]
8012286: 6b52 ldr r2, [r2, #52] ; 0x34
8012288: f022 0107 bic.w r1, r2, #7
801228c: 687a ldr r2, [r7, #4]
801228e: 6892 ldr r2, [r2, #8]
8012290: 430a orrs r2, r1
8012292: 635a str r2, [r3, #52] ; 0x34
/* DMA2D OOR register configuration ------------------------------------------*/
MODIFY_REG(hdma2d->Instance->OOR, DMA2D_OOR_LO, hdma2d->Init.OutputOffset);
8012294: 687b ldr r3, [r7, #4]
8012296: 681a ldr r2, [r3, #0]
8012298: 687b ldr r3, [r7, #4]
801229a: 681b ldr r3, [r3, #0]
801229c: 6c19 ldr r1, [r3, #64] ; 0x40
801229e: 4b11 ldr r3, [pc, #68] ; (80122e4 <HAL_DMA2D_Init+0xb0>)
80122a0: 400b ands r3, r1
80122a2: 6879 ldr r1, [r7, #4]
80122a4: 68c9 ldr r1, [r1, #12]
80122a6: 430b orrs r3, r1
80122a8: 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),
80122aa: 687b ldr r3, [r7, #4]
80122ac: 681b ldr r3, [r3, #0]
80122ae: 687a ldr r2, [r7, #4]
80122b0: 6812 ldr r2, [r2, #0]
80122b2: 6b52 ldr r2, [r2, #52] ; 0x34
80122b4: f422 1140 bic.w r1, r2, #3145728 ; 0x300000
80122b8: 687a ldr r2, [r7, #4]
80122ba: 6912 ldr r2, [r2, #16]
80122bc: 0510 lsls r0, r2, #20
80122be: 687a ldr r2, [r7, #4]
80122c0: 6952 ldr r2, [r2, #20]
80122c2: 0552 lsls r2, r2, #21
80122c4: 4302 orrs r2, r0
80122c6: 430a orrs r2, r1
80122c8: 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;
80122ca: 687b ldr r3, [r7, #4]
80122cc: 2200 movs r2, #0
80122ce: 655a str r2, [r3, #84] ; 0x54
/* Initialize the DMA2D state*/
hdma2d->State = HAL_DMA2D_STATE_READY;
80122d0: 687b ldr r3, [r7, #4]
80122d2: 2201 movs r2, #1
80122d4: f883 2051 strb.w r2, [r3, #81] ; 0x51
return HAL_OK;
80122d8: 2300 movs r3, #0
}
80122da: 4618 mov r0, r3
80122dc: 3708 adds r7, #8
80122de: 46bd mov sp, r7
80122e0: bd80 pop {r7, pc}
80122e2: bf00 nop
80122e4: ffffc000 .word 0xffffc000
080122e8 <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)
{
80122e8: b580 push {r7, lr}
80122ea: b086 sub sp, #24
80122ec: af02 add r7, sp, #8
80122ee: 60f8 str r0, [r7, #12]
80122f0: 60b9 str r1, [r7, #8]
80122f2: 607a str r2, [r7, #4]
80122f4: 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);
80122f6: 68fb ldr r3, [r7, #12]
80122f8: f893 3050 ldrb.w r3, [r3, #80] ; 0x50
80122fc: 2b01 cmp r3, #1
80122fe: d101 bne.n 8012304 <HAL_DMA2D_Start+0x1c>
8012300: 2302 movs r3, #2
8012302: e018 b.n 8012336 <HAL_DMA2D_Start+0x4e>
8012304: 68fb ldr r3, [r7, #12]
8012306: 2201 movs r2, #1
8012308: f883 2050 strb.w r2, [r3, #80] ; 0x50
/* Change DMA2D peripheral state */
hdma2d->State = HAL_DMA2D_STATE_BUSY;
801230c: 68fb ldr r3, [r7, #12]
801230e: 2202 movs r2, #2
8012310: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Configure the source, destination address and the data size */
DMA2D_SetConfig(hdma2d, pdata, DstAddress, Width, Height);
8012314: 69bb ldr r3, [r7, #24]
8012316: 9300 str r3, [sp, #0]
8012318: 683b ldr r3, [r7, #0]
801231a: 687a ldr r2, [r7, #4]
801231c: 68b9 ldr r1, [r7, #8]
801231e: 68f8 ldr r0, [r7, #12]
8012320: f000 f992 bl 8012648 <DMA2D_SetConfig>
/* Enable the Peripheral */
__HAL_DMA2D_ENABLE(hdma2d);
8012324: 68fb ldr r3, [r7, #12]
8012326: 681b ldr r3, [r3, #0]
8012328: 68fa ldr r2, [r7, #12]
801232a: 6812 ldr r2, [r2, #0]
801232c: 6812 ldr r2, [r2, #0]
801232e: f042 0201 orr.w r2, r2, #1
8012332: 601a str r2, [r3, #0]
return HAL_OK;
8012334: 2300 movs r3, #0
}
8012336: 4618 mov r0, r3
8012338: 3710 adds r7, #16
801233a: 46bd mov sp, r7
801233c: bd80 pop {r7, pc}
0801233e <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)
{
801233e: b580 push {r7, lr}
8012340: b086 sub sp, #24
8012342: af00 add r7, sp, #0
8012344: 6078 str r0, [r7, #4]
8012346: 6039 str r1, [r7, #0]
uint32_t tickstart;
uint32_t layer_start;
__IO uint32_t isrflags = 0x0U;
8012348: 2300 movs r3, #0
801234a: 60fb str r3, [r7, #12]
/* Polling for DMA2D transfer */
if ((hdma2d->Instance->CR & DMA2D_CR_START) != 0U)
801234c: 687b ldr r3, [r7, #4]
801234e: 681b ldr r3, [r3, #0]
8012350: 681b ldr r3, [r3, #0]
8012352: f003 0301 and.w r3, r3, #1
8012356: 2b00 cmp r3, #0
8012358: d056 beq.n 8012408 <HAL_DMA2D_PollForTransfer+0xca>
{
/* Get tick */
tickstart = HAL_GetTick();
801235a: f7ff fbe1 bl 8011b20 <HAL_GetTick>
801235e: 6178 str r0, [r7, #20]
while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_TC) == 0U)
8012360: e04b b.n 80123fa <HAL_DMA2D_PollForTransfer+0xbc>
{
isrflags = READ_REG(hdma2d->Instance->ISR);
8012362: 687b ldr r3, [r7, #4]
8012364: 681b ldr r3, [r3, #0]
8012366: 685b ldr r3, [r3, #4]
8012368: 60fb str r3, [r7, #12]
if ((isrflags & (DMA2D_FLAG_CE | DMA2D_FLAG_TE)) != 0U)
801236a: 68fb ldr r3, [r7, #12]
801236c: f003 0321 and.w r3, r3, #33 ; 0x21
8012370: 2b00 cmp r3, #0
8012372: d023 beq.n 80123bc <HAL_DMA2D_PollForTransfer+0x7e>
{
if ((isrflags & DMA2D_FLAG_CE) != 0U)
8012374: 68fb ldr r3, [r7, #12]
8012376: f003 0320 and.w r3, r3, #32
801237a: 2b00 cmp r3, #0
801237c: d005 beq.n 801238a <HAL_DMA2D_PollForTransfer+0x4c>
{
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_CE;
801237e: 687b ldr r3, [r7, #4]
8012380: 6d5b ldr r3, [r3, #84] ; 0x54
8012382: f043 0202 orr.w r2, r3, #2
8012386: 687b ldr r3, [r7, #4]
8012388: 655a str r2, [r3, #84] ; 0x54
}
if ((isrflags & DMA2D_FLAG_TE) != 0U)
801238a: 68fb ldr r3, [r7, #12]
801238c: f003 0301 and.w r3, r3, #1
8012390: 2b00 cmp r3, #0
8012392: d005 beq.n 80123a0 <HAL_DMA2D_PollForTransfer+0x62>
{
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TE;
8012394: 687b ldr r3, [r7, #4]
8012396: 6d5b ldr r3, [r3, #84] ; 0x54
8012398: f043 0201 orr.w r2, r3, #1
801239c: 687b ldr r3, [r7, #4]
801239e: 655a str r2, [r3, #84] ; 0x54
}
/* Clear the transfer and configuration error flags */
__HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_CE | DMA2D_FLAG_TE);
80123a0: 687b ldr r3, [r7, #4]
80123a2: 681b ldr r3, [r3, #0]
80123a4: 2221 movs r2, #33 ; 0x21
80123a6: 609a str r2, [r3, #8]
/* Change DMA2D state */
hdma2d->State = HAL_DMA2D_STATE_ERROR;
80123a8: 687b ldr r3, [r7, #4]
80123aa: 2204 movs r2, #4
80123ac: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
80123b0: 687b ldr r3, [r7, #4]
80123b2: 2200 movs r2, #0
80123b4: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_ERROR;
80123b8: 2301 movs r3, #1
80123ba: e0a5 b.n 8012508 <HAL_DMA2D_PollForTransfer+0x1ca>
}
/* Check for the Timeout */
if (Timeout != HAL_MAX_DELAY)
80123bc: 683b ldr r3, [r7, #0]
80123be: f1b3 3fff cmp.w r3, #4294967295
80123c2: d01a beq.n 80123fa <HAL_DMA2D_PollForTransfer+0xbc>
{
if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
80123c4: f7ff fbac bl 8011b20 <HAL_GetTick>
80123c8: 4602 mov r2, r0
80123ca: 697b ldr r3, [r7, #20]
80123cc: 1ad2 subs r2, r2, r3
80123ce: 683b ldr r3, [r7, #0]
80123d0: 429a cmp r2, r3
80123d2: d802 bhi.n 80123da <HAL_DMA2D_PollForTransfer+0x9c>
80123d4: 683b ldr r3, [r7, #0]
80123d6: 2b00 cmp r3, #0
80123d8: d10f bne.n 80123fa <HAL_DMA2D_PollForTransfer+0xbc>
{
/* Update error code */
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TIMEOUT;
80123da: 687b ldr r3, [r7, #4]
80123dc: 6d5b ldr r3, [r3, #84] ; 0x54
80123de: f043 0220 orr.w r2, r3, #32
80123e2: 687b ldr r3, [r7, #4]
80123e4: 655a str r2, [r3, #84] ; 0x54
/* Change the DMA2D state */
hdma2d->State = HAL_DMA2D_STATE_TIMEOUT;
80123e6: 687b ldr r3, [r7, #4]
80123e8: 2203 movs r2, #3
80123ea: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
80123ee: 687b ldr r3, [r7, #4]
80123f0: 2200 movs r2, #0
80123f2: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_TIMEOUT;
80123f6: 2303 movs r3, #3
80123f8: e086 b.n 8012508 <HAL_DMA2D_PollForTransfer+0x1ca>
while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_TC) == 0U)
80123fa: 687b ldr r3, [r7, #4]
80123fc: 681b ldr r3, [r3, #0]
80123fe: 685b ldr r3, [r3, #4]
8012400: f003 0302 and.w r3, r3, #2
8012404: 2b00 cmp r3, #0
8012406: d0ac beq.n 8012362 <HAL_DMA2D_PollForTransfer+0x24>
}
}
}
}
/* Polling for CLUT loading (foreground or background) */
layer_start = hdma2d->Instance->FGPFCCR & DMA2D_FGPFCCR_START;
8012408: 687b ldr r3, [r7, #4]
801240a: 681b ldr r3, [r3, #0]
801240c: 69db ldr r3, [r3, #28]
801240e: f003 0320 and.w r3, r3, #32
8012412: 613b str r3, [r7, #16]
layer_start |= hdma2d->Instance->BGPFCCR & DMA2D_BGPFCCR_START;
8012414: 687b ldr r3, [r7, #4]
8012416: 681b ldr r3, [r3, #0]
8012418: 6a5b ldr r3, [r3, #36] ; 0x24
801241a: f003 0320 and.w r3, r3, #32
801241e: 693a ldr r2, [r7, #16]
8012420: 4313 orrs r3, r2
8012422: 613b str r3, [r7, #16]
if (layer_start != 0U)
8012424: 693b ldr r3, [r7, #16]
8012426: 2b00 cmp r3, #0
8012428: d061 beq.n 80124ee <HAL_DMA2D_PollForTransfer+0x1b0>
{
/* Get tick */
tickstart = HAL_GetTick();
801242a: f7ff fb79 bl 8011b20 <HAL_GetTick>
801242e: 6178 str r0, [r7, #20]
while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_CTC) == 0U)
8012430: e056 b.n 80124e0 <HAL_DMA2D_PollForTransfer+0x1a2>
{
isrflags = READ_REG(hdma2d->Instance->ISR);
8012432: 687b ldr r3, [r7, #4]
8012434: 681b ldr r3, [r3, #0]
8012436: 685b ldr r3, [r3, #4]
8012438: 60fb str r3, [r7, #12]
if ((isrflags & (DMA2D_FLAG_CAE | DMA2D_FLAG_CE | DMA2D_FLAG_TE)) != 0U)
801243a: 68fb ldr r3, [r7, #12]
801243c: f003 0329 and.w r3, r3, #41 ; 0x29
8012440: 2b00 cmp r3, #0
8012442: d02e beq.n 80124a2 <HAL_DMA2D_PollForTransfer+0x164>
{
if ((isrflags & DMA2D_FLAG_CAE) != 0U)
8012444: 68fb ldr r3, [r7, #12]
8012446: f003 0308 and.w r3, r3, #8
801244a: 2b00 cmp r3, #0
801244c: d005 beq.n 801245a <HAL_DMA2D_PollForTransfer+0x11c>
{
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_CAE;
801244e: 687b ldr r3, [r7, #4]
8012450: 6d5b ldr r3, [r3, #84] ; 0x54
8012452: f043 0204 orr.w r2, r3, #4
8012456: 687b ldr r3, [r7, #4]
8012458: 655a str r2, [r3, #84] ; 0x54
}
if ((isrflags & DMA2D_FLAG_CE) != 0U)
801245a: 68fb ldr r3, [r7, #12]
801245c: f003 0320 and.w r3, r3, #32
8012460: 2b00 cmp r3, #0
8012462: d005 beq.n 8012470 <HAL_DMA2D_PollForTransfer+0x132>
{
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_CE;
8012464: 687b ldr r3, [r7, #4]
8012466: 6d5b ldr r3, [r3, #84] ; 0x54
8012468: f043 0202 orr.w r2, r3, #2
801246c: 687b ldr r3, [r7, #4]
801246e: 655a str r2, [r3, #84] ; 0x54
}
if ((isrflags & DMA2D_FLAG_TE) != 0U)
8012470: 68fb ldr r3, [r7, #12]
8012472: f003 0301 and.w r3, r3, #1
8012476: 2b00 cmp r3, #0
8012478: d005 beq.n 8012486 <HAL_DMA2D_PollForTransfer+0x148>
{
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TE;
801247a: 687b ldr r3, [r7, #4]
801247c: 6d5b ldr r3, [r3, #84] ; 0x54
801247e: f043 0201 orr.w r2, r3, #1
8012482: 687b ldr r3, [r7, #4]
8012484: 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);
8012486: 687b ldr r3, [r7, #4]
8012488: 681b ldr r3, [r3, #0]
801248a: 2229 movs r2, #41 ; 0x29
801248c: 609a str r2, [r3, #8]
/* Change DMA2D state */
hdma2d->State = HAL_DMA2D_STATE_ERROR;
801248e: 687b ldr r3, [r7, #4]
8012490: 2204 movs r2, #4
8012492: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
8012496: 687b ldr r3, [r7, #4]
8012498: 2200 movs r2, #0
801249a: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_ERROR;
801249e: 2301 movs r3, #1
80124a0: e032 b.n 8012508 <HAL_DMA2D_PollForTransfer+0x1ca>
}
/* Check for the Timeout */
if (Timeout != HAL_MAX_DELAY)
80124a2: 683b ldr r3, [r7, #0]
80124a4: f1b3 3fff cmp.w r3, #4294967295
80124a8: d01a beq.n 80124e0 <HAL_DMA2D_PollForTransfer+0x1a2>
{
if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
80124aa: f7ff fb39 bl 8011b20 <HAL_GetTick>
80124ae: 4602 mov r2, r0
80124b0: 697b ldr r3, [r7, #20]
80124b2: 1ad2 subs r2, r2, r3
80124b4: 683b ldr r3, [r7, #0]
80124b6: 429a cmp r2, r3
80124b8: d802 bhi.n 80124c0 <HAL_DMA2D_PollForTransfer+0x182>
80124ba: 683b ldr r3, [r7, #0]
80124bc: 2b00 cmp r3, #0
80124be: d10f bne.n 80124e0 <HAL_DMA2D_PollForTransfer+0x1a2>
{
/* Update error code */
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TIMEOUT;
80124c0: 687b ldr r3, [r7, #4]
80124c2: 6d5b ldr r3, [r3, #84] ; 0x54
80124c4: f043 0220 orr.w r2, r3, #32
80124c8: 687b ldr r3, [r7, #4]
80124ca: 655a str r2, [r3, #84] ; 0x54
/* Change the DMA2D state */
hdma2d->State = HAL_DMA2D_STATE_TIMEOUT;
80124cc: 687b ldr r3, [r7, #4]
80124ce: 2203 movs r2, #3
80124d0: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
80124d4: 687b ldr r3, [r7, #4]
80124d6: 2200 movs r2, #0
80124d8: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_TIMEOUT;
80124dc: 2303 movs r3, #3
80124de: e013 b.n 8012508 <HAL_DMA2D_PollForTransfer+0x1ca>
while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_CTC) == 0U)
80124e0: 687b ldr r3, [r7, #4]
80124e2: 681b ldr r3, [r3, #0]
80124e4: 685b ldr r3, [r3, #4]
80124e6: f003 0310 and.w r3, r3, #16
80124ea: 2b00 cmp r3, #0
80124ec: d0a1 beq.n 8012432 <HAL_DMA2D_PollForTransfer+0xf4>
}
}
}
/* Clear the transfer complete and CLUT loading flags */
__HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_TC | DMA2D_FLAG_CTC);
80124ee: 687b ldr r3, [r7, #4]
80124f0: 681b ldr r3, [r3, #0]
80124f2: 2212 movs r2, #18
80124f4: 609a str r2, [r3, #8]
/* Change DMA2D state */
hdma2d->State = HAL_DMA2D_STATE_READY;
80124f6: 687b ldr r3, [r7, #4]
80124f8: 2201 movs r2, #1
80124fa: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
80124fe: 687b ldr r3, [r7, #4]
8012500: 2200 movs r2, #0
8012502: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_OK;
8012506: 2300 movs r3, #0
}
8012508: 4618 mov r0, r3
801250a: 3718 adds r7, #24
801250c: 46bd mov sp, r7
801250e: bd80 pop {r7, pc}
08012510 <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)
{
8012510: b480 push {r7}
8012512: b087 sub sp, #28
8012514: af00 add r7, sp, #0
8012516: 6078 str r0, [r7, #4]
8012518: 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)
801251a: 687b ldr r3, [r7, #4]
801251c: 685b ldr r3, [r3, #4]
801251e: 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);
8012522: 687b ldr r3, [r7, #4]
8012524: f893 3050 ldrb.w r3, [r3, #80] ; 0x50
8012528: 2b01 cmp r3, #1
801252a: d101 bne.n 8012530 <HAL_DMA2D_ConfigLayer+0x20>
801252c: 2302 movs r3, #2
801252e: e082 b.n 8012636 <HAL_DMA2D_ConfigLayer+0x126>
8012530: 687b ldr r3, [r7, #4]
8012532: 2201 movs r2, #1
8012534: f883 2050 strb.w r2, [r3, #80] ; 0x50
/* Change DMA2D peripheral state */
hdma2d->State = HAL_DMA2D_STATE_BUSY;
8012538: 687b ldr r3, [r7, #4]
801253a: 2202 movs r2, #2
801253c: f883 2051 strb.w r2, [r3, #81] ; 0x51
pLayerCfg = &hdma2d->LayerCfg[LayerIdx];
8012540: 683a ldr r2, [r7, #0]
8012542: 4613 mov r3, r2
8012544: 005b lsls r3, r3, #1
8012546: 4413 add r3, r2
8012548: 00db lsls r3, r3, #3
801254a: 3320 adds r3, #32
801254c: 687a ldr r2, [r7, #4]
801254e: 4413 add r3, r2
8012550: 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) | \
8012552: 693b ldr r3, [r7, #16]
8012554: 685a ldr r2, [r3, #4]
8012556: 693b ldr r3, [r7, #16]
8012558: 689b ldr r3, [r3, #8]
801255a: 041b lsls r3, r3, #16
801255c: 431a orrs r2, r3
(pLayerCfg->AlphaInverted << DMA2D_BGPFCCR_AI_Pos) | (pLayerCfg->RedBlueSwap << DMA2D_BGPFCCR_RBS_Pos);
801255e: 693b ldr r3, [r7, #16]
8012560: 691b ldr r3, [r3, #16]
8012562: 051b lsls r3, r3, #20
regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos) | \
8012564: 431a orrs r2, r3
(pLayerCfg->AlphaInverted << DMA2D_BGPFCCR_AI_Pos) | (pLayerCfg->RedBlueSwap << DMA2D_BGPFCCR_RBS_Pos);
8012566: 693b ldr r3, [r7, #16]
8012568: 695b ldr r3, [r3, #20]
801256a: 055b lsls r3, r3, #21
regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos) | \
801256c: 4313 orrs r3, r2
801256e: 617b str r3, [r7, #20]
regMask = (DMA2D_BGPFCCR_CM | DMA2D_BGPFCCR_AM | DMA2D_BGPFCCR_ALPHA | DMA2D_BGPFCCR_AI | DMA2D_BGPFCCR_RBS);
8012570: 4b34 ldr r3, [pc, #208] ; (8012644 <HAL_DMA2D_ConfigLayer+0x134>)
8012572: 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))
8012574: 693b ldr r3, [r7, #16]
8012576: 685b ldr r3, [r3, #4]
8012578: 2b0a cmp r3, #10
801257a: d003 beq.n 8012584 <HAL_DMA2D_ConfigLayer+0x74>
801257c: 693b ldr r3, [r7, #16]
801257e: 685b ldr r3, [r3, #4]
8012580: 2b09 cmp r3, #9
8012582: d107 bne.n 8012594 <HAL_DMA2D_ConfigLayer+0x84>
{
regValue |= (pLayerCfg->InputAlpha & DMA2D_BGPFCCR_ALPHA);
8012584: 693b ldr r3, [r7, #16]
8012586: 68db ldr r3, [r3, #12]
8012588: f003 437f and.w r3, r3, #4278190080 ; 0xff000000
801258c: 697a ldr r2, [r7, #20]
801258e: 4313 orrs r3, r2
8012590: 617b str r3, [r7, #20]
8012592: e005 b.n 80125a0 <HAL_DMA2D_ConfigLayer+0x90>
}
else
{
regValue |= (pLayerCfg->InputAlpha << DMA2D_BGPFCCR_ALPHA_Pos);
8012594: 693b ldr r3, [r7, #16]
8012596: 68db ldr r3, [r3, #12]
8012598: 061b lsls r3, r3, #24
801259a: 697a ldr r2, [r7, #20]
801259c: 4313 orrs r3, r2
801259e: 617b str r3, [r7, #20]
}
/* Configure the background DMA2D layer */
if (LayerIdx == DMA2D_BACKGROUND_LAYER)
80125a0: 683b ldr r3, [r7, #0]
80125a2: 2b00 cmp r3, #0
80125a4: d11f bne.n 80125e6 <HAL_DMA2D_ConfigLayer+0xd6>
{
/* Write DMA2D BGPFCCR register */
MODIFY_REG(hdma2d->Instance->BGPFCCR, regMask, regValue);
80125a6: 687b ldr r3, [r7, #4]
80125a8: 681b ldr r3, [r3, #0]
80125aa: 687a ldr r2, [r7, #4]
80125ac: 6812 ldr r2, [r2, #0]
80125ae: 6a51 ldr r1, [r2, #36] ; 0x24
80125b0: 68fa ldr r2, [r7, #12]
80125b2: 43d2 mvns r2, r2
80125b4: 4011 ands r1, r2
80125b6: 697a ldr r2, [r7, #20]
80125b8: 430a orrs r2, r1
80125ba: 625a str r2, [r3, #36] ; 0x24
/* DMA2D BGOR register configuration -------------------------------------*/
WRITE_REG(hdma2d->Instance->BGOR, pLayerCfg->InputOffset);
80125bc: 687b ldr r3, [r7, #4]
80125be: 681b ldr r3, [r3, #0]
80125c0: 693a ldr r2, [r7, #16]
80125c2: 6812 ldr r2, [r2, #0]
80125c4: 619a str r2, [r3, #24]
/* DMA2D BGCOLR register configuration -------------------------------------*/
if ((pLayerCfg->InputColorMode == DMA2D_INPUT_A4) || (pLayerCfg->InputColorMode == DMA2D_INPUT_A8))
80125c6: 693b ldr r3, [r7, #16]
80125c8: 685b ldr r3, [r3, #4]
80125ca: 2b0a cmp r3, #10
80125cc: d003 beq.n 80125d6 <HAL_DMA2D_ConfigLayer+0xc6>
80125ce: 693b ldr r3, [r7, #16]
80125d0: 685b ldr r3, [r3, #4]
80125d2: 2b09 cmp r3, #9
80125d4: d126 bne.n 8012624 <HAL_DMA2D_ConfigLayer+0x114>
{
WRITE_REG(hdma2d->Instance->BGCOLR, pLayerCfg->InputAlpha & (DMA2D_BGCOLR_BLUE | DMA2D_BGCOLR_GREEN | \
80125d6: 687b ldr r3, [r7, #4]
80125d8: 681b ldr r3, [r3, #0]
80125da: 693a ldr r2, [r7, #16]
80125dc: 68d2 ldr r2, [r2, #12]
80125de: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000
80125e2: 629a str r2, [r3, #40] ; 0x28
80125e4: e01e b.n 8012624 <HAL_DMA2D_ConfigLayer+0x114>
else
{
/* Write DMA2D FGPFCCR register */
MODIFY_REG(hdma2d->Instance->FGPFCCR, regMask, regValue);
80125e6: 687b ldr r3, [r7, #4]
80125e8: 681b ldr r3, [r3, #0]
80125ea: 687a ldr r2, [r7, #4]
80125ec: 6812 ldr r2, [r2, #0]
80125ee: 69d1 ldr r1, [r2, #28]
80125f0: 68fa ldr r2, [r7, #12]
80125f2: 43d2 mvns r2, r2
80125f4: 4011 ands r1, r2
80125f6: 697a ldr r2, [r7, #20]
80125f8: 430a orrs r2, r1
80125fa: 61da str r2, [r3, #28]
/* DMA2D FGOR register configuration -------------------------------------*/
WRITE_REG(hdma2d->Instance->FGOR, pLayerCfg->InputOffset);
80125fc: 687b ldr r3, [r7, #4]
80125fe: 681b ldr r3, [r3, #0]
8012600: 693a ldr r2, [r7, #16]
8012602: 6812 ldr r2, [r2, #0]
8012604: 611a str r2, [r3, #16]
/* DMA2D FGCOLR register configuration -------------------------------------*/
if ((pLayerCfg->InputColorMode == DMA2D_INPUT_A4) || (pLayerCfg->InputColorMode == DMA2D_INPUT_A8))
8012606: 693b ldr r3, [r7, #16]
8012608: 685b ldr r3, [r3, #4]
801260a: 2b0a cmp r3, #10
801260c: d003 beq.n 8012616 <HAL_DMA2D_ConfigLayer+0x106>
801260e: 693b ldr r3, [r7, #16]
8012610: 685b ldr r3, [r3, #4]
8012612: 2b09 cmp r3, #9
8012614: d106 bne.n 8012624 <HAL_DMA2D_ConfigLayer+0x114>
{
WRITE_REG(hdma2d->Instance->FGCOLR, pLayerCfg->InputAlpha & (DMA2D_FGCOLR_BLUE | DMA2D_FGCOLR_GREEN | \
8012616: 687b ldr r3, [r7, #4]
8012618: 681b ldr r3, [r3, #0]
801261a: 693a ldr r2, [r7, #16]
801261c: 68d2 ldr r2, [r2, #12]
801261e: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000
8012622: 621a str r2, [r3, #32]
DMA2D_FGCOLR_RED));
}
}
/* Initialize the DMA2D state*/
hdma2d->State = HAL_DMA2D_STATE_READY;
8012624: 687b ldr r3, [r7, #4]
8012626: 2201 movs r2, #1
8012628: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
801262c: 687b ldr r3, [r7, #4]
801262e: 2200 movs r2, #0
8012630: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_OK;
8012634: 2300 movs r3, #0
}
8012636: 4618 mov r0, r3
8012638: 371c adds r7, #28
801263a: 46bd mov sp, r7
801263c: f85d 7b04 ldr.w r7, [sp], #4
8012640: 4770 bx lr
8012642: bf00 nop
8012644: ff33000f .word 0xff33000f
08012648 <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)
{
8012648: b480 push {r7}
801264a: b08b sub sp, #44 ; 0x2c
801264c: af00 add r7, sp, #0
801264e: 60f8 str r0, [r7, #12]
8012650: 60b9 str r1, [r7, #8]
8012652: 607a str r2, [r7, #4]
8012654: 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)));
8012656: 68fb ldr r3, [r7, #12]
8012658: 681b ldr r3, [r3, #0]
801265a: 68fa ldr r2, [r7, #12]
801265c: 6812 ldr r2, [r2, #0]
801265e: 6c52 ldr r2, [r2, #68] ; 0x44
8012660: f002 4140 and.w r1, r2, #3221225472 ; 0xc0000000
8012664: 683a ldr r2, [r7, #0]
8012666: 0410 lsls r0, r2, #16
8012668: 6b3a ldr r2, [r7, #48] ; 0x30
801266a: 4302 orrs r2, r0
801266c: 430a orrs r2, r1
801266e: 645a str r2, [r3, #68] ; 0x44
/* Configure DMA2D destination address */
WRITE_REG(hdma2d->Instance->OMAR, DstAddress);
8012670: 68fb ldr r3, [r7, #12]
8012672: 681b ldr r3, [r3, #0]
8012674: 687a ldr r2, [r7, #4]
8012676: 63da str r2, [r3, #60] ; 0x3c
/* Register to memory DMA2D mode selected */
if (hdma2d->Init.Mode == DMA2D_R2M)
8012678: 68fb ldr r3, [r7, #12]
801267a: 685b ldr r3, [r3, #4]
801267c: f5b3 3f40 cmp.w r3, #196608 ; 0x30000
8012680: d174 bne.n 801276c <DMA2D_SetConfig+0x124>
{
tmp1 = pdata & DMA2D_OCOLR_ALPHA_1;
8012682: 68bb ldr r3, [r7, #8]
8012684: f003 437f and.w r3, r3, #4278190080 ; 0xff000000
8012688: 623b str r3, [r7, #32]
tmp2 = pdata & DMA2D_OCOLR_RED_1;
801268a: 68bb ldr r3, [r7, #8]
801268c: f403 037f and.w r3, r3, #16711680 ; 0xff0000
8012690: 61fb str r3, [r7, #28]
tmp3 = pdata & DMA2D_OCOLR_GREEN_1;
8012692: 68bb ldr r3, [r7, #8]
8012694: f403 437f and.w r3, r3, #65280 ; 0xff00
8012698: 61bb str r3, [r7, #24]
tmp4 = pdata & DMA2D_OCOLR_BLUE_1;
801269a: 68bb ldr r3, [r7, #8]
801269c: b2db uxtb r3, r3
801269e: 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)
80126a0: 68fb ldr r3, [r7, #12]
80126a2: 689b ldr r3, [r3, #8]
80126a4: 2b00 cmp r3, #0
80126a6: d108 bne.n 80126ba <DMA2D_SetConfig+0x72>
{
tmp = (tmp3 | tmp2 | tmp1 | tmp4);
80126a8: 69ba ldr r2, [r7, #24]
80126aa: 69fb ldr r3, [r7, #28]
80126ac: 431a orrs r2, r3
80126ae: 6a3b ldr r3, [r7, #32]
80126b0: 431a orrs r2, r3
80126b2: 697b ldr r3, [r7, #20]
80126b4: 4313 orrs r3, r2
80126b6: 627b str r3, [r7, #36] ; 0x24
80126b8: e053 b.n 8012762 <DMA2D_SetConfig+0x11a>
}
else if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_RGB888)
80126ba: 68fb ldr r3, [r7, #12]
80126bc: 689b ldr r3, [r3, #8]
80126be: 2b01 cmp r3, #1
80126c0: d106 bne.n 80126d0 <DMA2D_SetConfig+0x88>
{
tmp = (tmp3 | tmp2 | tmp4);
80126c2: 69ba ldr r2, [r7, #24]
80126c4: 69fb ldr r3, [r7, #28]
80126c6: 431a orrs r2, r3
80126c8: 697b ldr r3, [r7, #20]
80126ca: 4313 orrs r3, r2
80126cc: 627b str r3, [r7, #36] ; 0x24
80126ce: e048 b.n 8012762 <DMA2D_SetConfig+0x11a>
}
else if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_RGB565)
80126d0: 68fb ldr r3, [r7, #12]
80126d2: 689b ldr r3, [r3, #8]
80126d4: 2b02 cmp r3, #2
80126d6: d111 bne.n 80126fc <DMA2D_SetConfig+0xb4>
{
tmp2 = (tmp2 >> 19U);
80126d8: 69fb ldr r3, [r7, #28]
80126da: 0cdb lsrs r3, r3, #19
80126dc: 61fb str r3, [r7, #28]
tmp3 = (tmp3 >> 10U);
80126de: 69bb ldr r3, [r7, #24]
80126e0: 0a9b lsrs r3, r3, #10
80126e2: 61bb str r3, [r7, #24]
tmp4 = (tmp4 >> 3U);
80126e4: 697b ldr r3, [r7, #20]
80126e6: 08db lsrs r3, r3, #3
80126e8: 617b str r3, [r7, #20]
tmp = ((tmp3 << 5U) | (tmp2 << 11U) | tmp4);
80126ea: 69bb ldr r3, [r7, #24]
80126ec: 015a lsls r2, r3, #5
80126ee: 69fb ldr r3, [r7, #28]
80126f0: 02db lsls r3, r3, #11
80126f2: 431a orrs r2, r3
80126f4: 697b ldr r3, [r7, #20]
80126f6: 4313 orrs r3, r2
80126f8: 627b str r3, [r7, #36] ; 0x24
80126fa: e032 b.n 8012762 <DMA2D_SetConfig+0x11a>
}
else if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_ARGB1555)
80126fc: 68fb ldr r3, [r7, #12]
80126fe: 689b ldr r3, [r3, #8]
8012700: 2b03 cmp r3, #3
8012702: d117 bne.n 8012734 <DMA2D_SetConfig+0xec>
{
tmp1 = (tmp1 >> 31U);
8012704: 6a3b ldr r3, [r7, #32]
8012706: 0fdb lsrs r3, r3, #31
8012708: 623b str r3, [r7, #32]
tmp2 = (tmp2 >> 19U);
801270a: 69fb ldr r3, [r7, #28]
801270c: 0cdb lsrs r3, r3, #19
801270e: 61fb str r3, [r7, #28]
tmp3 = (tmp3 >> 11U);
8012710: 69bb ldr r3, [r7, #24]
8012712: 0adb lsrs r3, r3, #11
8012714: 61bb str r3, [r7, #24]
tmp4 = (tmp4 >> 3U);
8012716: 697b ldr r3, [r7, #20]
8012718: 08db lsrs r3, r3, #3
801271a: 617b str r3, [r7, #20]
tmp = ((tmp3 << 5U) | (tmp2 << 10U) | (tmp1 << 15U) | tmp4);
801271c: 69bb ldr r3, [r7, #24]
801271e: 015a lsls r2, r3, #5
8012720: 69fb ldr r3, [r7, #28]
8012722: 029b lsls r3, r3, #10
8012724: 431a orrs r2, r3
8012726: 6a3b ldr r3, [r7, #32]
8012728: 03db lsls r3, r3, #15
801272a: 431a orrs r2, r3
801272c: 697b ldr r3, [r7, #20]
801272e: 4313 orrs r3, r2
8012730: 627b str r3, [r7, #36] ; 0x24
8012732: e016 b.n 8012762 <DMA2D_SetConfig+0x11a>
}
else /* Dhdma2d->Init.ColorMode = DMA2D_OUTPUT_ARGB4444 */
{
tmp1 = (tmp1 >> 28U);
8012734: 6a3b ldr r3, [r7, #32]
8012736: 0f1b lsrs r3, r3, #28
8012738: 623b str r3, [r7, #32]
tmp2 = (tmp2 >> 20U);
801273a: 69fb ldr r3, [r7, #28]
801273c: 0d1b lsrs r3, r3, #20
801273e: 61fb str r3, [r7, #28]
tmp3 = (tmp3 >> 12U);
8012740: 69bb ldr r3, [r7, #24]
8012742: 0b1b lsrs r3, r3, #12
8012744: 61bb str r3, [r7, #24]
tmp4 = (tmp4 >> 4U);
8012746: 697b ldr r3, [r7, #20]
8012748: 091b lsrs r3, r3, #4
801274a: 617b str r3, [r7, #20]
tmp = ((tmp3 << 4U) | (tmp2 << 8U) | (tmp1 << 12U) | tmp4);
801274c: 69bb ldr r3, [r7, #24]
801274e: 011a lsls r2, r3, #4
8012750: 69fb ldr r3, [r7, #28]
8012752: 021b lsls r3, r3, #8
8012754: 431a orrs r2, r3
8012756: 6a3b ldr r3, [r7, #32]
8012758: 031b lsls r3, r3, #12
801275a: 431a orrs r2, r3
801275c: 697b ldr r3, [r7, #20]
801275e: 4313 orrs r3, r2
8012760: 627b str r3, [r7, #36] ; 0x24
}
/* Write to DMA2D OCOLR register */
WRITE_REG(hdma2d->Instance->OCOLR, tmp);
8012762: 68fb ldr r3, [r7, #12]
8012764: 681b ldr r3, [r3, #0]
8012766: 6a7a ldr r2, [r7, #36] ; 0x24
8012768: 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);
}
}
801276a: e003 b.n 8012774 <DMA2D_SetConfig+0x12c>
WRITE_REG(hdma2d->Instance->FGMAR, pdata);
801276c: 68fb ldr r3, [r7, #12]
801276e: 681b ldr r3, [r3, #0]
8012770: 68ba ldr r2, [r7, #8]
8012772: 60da str r2, [r3, #12]
}
8012774: bf00 nop
8012776: 372c adds r7, #44 ; 0x2c
8012778: 46bd mov sp, r7
801277a: f85d 7b04 ldr.w r7, [sp], #4
801277e: 4770 bx lr
08012780 <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)
{
8012780: b580 push {r7, lr}
8012782: b086 sub sp, #24
8012784: af00 add r7, sp, #0
8012786: 60f8 str r0, [r7, #12]
8012788: 60b9 str r1, [r7, #8]
801278a: e9c7 2300 strd r2, r3, [r7]
HAL_StatusTypeDef status = HAL_ERROR;
801278e: 2301 movs r3, #1
8012790: 75fb strb r3, [r7, #23]
/* Process Locked */
__HAL_LOCK(&pFlash);
8012792: 4b27 ldr r3, [pc, #156] ; (8012830 <HAL_FLASH_Program+0xb0>)
8012794: 7d1b ldrb r3, [r3, #20]
8012796: 2b01 cmp r3, #1
8012798: d101 bne.n 801279e <HAL_FLASH_Program+0x1e>
801279a: 2302 movs r3, #2
801279c: e043 b.n 8012826 <HAL_FLASH_Program+0xa6>
801279e: 4b24 ldr r3, [pc, #144] ; (8012830 <HAL_FLASH_Program+0xb0>)
80127a0: 2201 movs r2, #1
80127a2: 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);
80127a4: f24c 3050 movw r0, #50000 ; 0xc350
80127a8: f000 f878 bl 801289c <FLASH_WaitForLastOperation>
80127ac: 4603 mov r3, r0
80127ae: 75fb strb r3, [r7, #23]
if(status == HAL_OK)
80127b0: 7dfb ldrb r3, [r7, #23]
80127b2: 2b00 cmp r3, #0
80127b4: d133 bne.n 801281e <HAL_FLASH_Program+0x9e>
{
switch(TypeProgram)
80127b6: 68fb ldr r3, [r7, #12]
80127b8: 2b03 cmp r3, #3
80127ba: d823 bhi.n 8012804 <HAL_FLASH_Program+0x84>
80127bc: a201 add r2, pc, #4 ; (adr r2, 80127c4 <HAL_FLASH_Program+0x44>)
80127be: f852 f023 ldr.w pc, [r2, r3, lsl #2]
80127c2: bf00 nop
80127c4: 080127d5 .word 0x080127d5
80127c8: 080127e1 .word 0x080127e1
80127cc: 080127ed .word 0x080127ed
80127d0: 080127f9 .word 0x080127f9
{
case FLASH_TYPEPROGRAM_BYTE :
{
/*Program byte (8-bit) at a specified address.*/
FLASH_Program_Byte(Address, (uint8_t) Data);
80127d4: 783b ldrb r3, [r7, #0]
80127d6: 4619 mov r1, r3
80127d8: 68b8 ldr r0, [r7, #8]
80127da: f000 f919 bl 8012a10 <FLASH_Program_Byte>
break;
80127de: e012 b.n 8012806 <HAL_FLASH_Program+0x86>
}
case FLASH_TYPEPROGRAM_HALFWORD :
{
/*Program halfword (16-bit) at a specified address.*/
FLASH_Program_HalfWord(Address, (uint16_t) Data);
80127e0: 883b ldrh r3, [r7, #0]
80127e2: 4619 mov r1, r3
80127e4: 68b8 ldr r0, [r7, #8]
80127e6: f000 f8ed bl 80129c4 <FLASH_Program_HalfWord>
break;
80127ea: e00c b.n 8012806 <HAL_FLASH_Program+0x86>
}
case FLASH_TYPEPROGRAM_WORD :
{
/*Program word (32-bit) at a specified address.*/
FLASH_Program_Word(Address, (uint32_t) Data);
80127ec: 683b ldr r3, [r7, #0]
80127ee: 4619 mov r1, r3
80127f0: 68b8 ldr r0, [r7, #8]
80127f2: f000 f8c3 bl 801297c <FLASH_Program_Word>
break;
80127f6: e006 b.n 8012806 <HAL_FLASH_Program+0x86>
}
case FLASH_TYPEPROGRAM_DOUBLEWORD :
{
/*Program double word (64-bit) at a specified address.*/
FLASH_Program_DoubleWord(Address, Data);
80127f8: e9d7 2300 ldrd r2, r3, [r7]
80127fc: 68b8 ldr r0, [r7, #8]
80127fe: f000 f88d bl 801291c <FLASH_Program_DoubleWord>
break;
8012802: e000 b.n 8012806 <HAL_FLASH_Program+0x86>
}
default :
break;
8012804: bf00 nop
}
/* Wait for last operation to be completed */
status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
8012806: f24c 3050 movw r0, #50000 ; 0xc350
801280a: f000 f847 bl 801289c <FLASH_WaitForLastOperation>
801280e: 4603 mov r3, r0
8012810: 75fb strb r3, [r7, #23]
/* If the program operation is completed, disable the PG Bit */
FLASH->CR &= (~FLASH_CR_PG);
8012812: 4a08 ldr r2, [pc, #32] ; (8012834 <HAL_FLASH_Program+0xb4>)
8012814: 4b07 ldr r3, [pc, #28] ; (8012834 <HAL_FLASH_Program+0xb4>)
8012816: 691b ldr r3, [r3, #16]
8012818: f023 0301 bic.w r3, r3, #1
801281c: 6113 str r3, [r2, #16]
}
/* Process Unlocked */
__HAL_UNLOCK(&pFlash);
801281e: 4b04 ldr r3, [pc, #16] ; (8012830 <HAL_FLASH_Program+0xb0>)
8012820: 2200 movs r2, #0
8012822: 751a strb r2, [r3, #20]
return status;
8012824: 7dfb ldrb r3, [r7, #23]
}
8012826: 4618 mov r0, r3
8012828: 3718 adds r7, #24
801282a: 46bd mov sp, r7
801282c: bd80 pop {r7, pc}
801282e: bf00 nop
8012830: 2006c5a8 .word 0x2006c5a8
8012834: 40023c00 .word 0x40023c00
08012838 <HAL_FLASH_Unlock>:
/**
* @brief Unlock the FLASH control register access
* @retval HAL Status
*/
HAL_StatusTypeDef HAL_FLASH_Unlock(void)
{
8012838: b480 push {r7}
801283a: b083 sub sp, #12
801283c: af00 add r7, sp, #0
HAL_StatusTypeDef status = HAL_OK;
801283e: 2300 movs r3, #0
8012840: 71fb strb r3, [r7, #7]
if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
8012842: 4b0b ldr r3, [pc, #44] ; (8012870 <HAL_FLASH_Unlock+0x38>)
8012844: 691b ldr r3, [r3, #16]
8012846: 2b00 cmp r3, #0
8012848: da0b bge.n 8012862 <HAL_FLASH_Unlock+0x2a>
{
/* Authorize the FLASH Registers access */
WRITE_REG(FLASH->KEYR, FLASH_KEY1);
801284a: 4b09 ldr r3, [pc, #36] ; (8012870 <HAL_FLASH_Unlock+0x38>)
801284c: 4a09 ldr r2, [pc, #36] ; (8012874 <HAL_FLASH_Unlock+0x3c>)
801284e: 605a str r2, [r3, #4]
WRITE_REG(FLASH->KEYR, FLASH_KEY2);
8012850: 4b07 ldr r3, [pc, #28] ; (8012870 <HAL_FLASH_Unlock+0x38>)
8012852: 4a09 ldr r2, [pc, #36] ; (8012878 <HAL_FLASH_Unlock+0x40>)
8012854: 605a str r2, [r3, #4]
/* Verify Flash is unlocked */
if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
8012856: 4b06 ldr r3, [pc, #24] ; (8012870 <HAL_FLASH_Unlock+0x38>)
8012858: 691b ldr r3, [r3, #16]
801285a: 2b00 cmp r3, #0
801285c: da01 bge.n 8012862 <HAL_FLASH_Unlock+0x2a>
{
status = HAL_ERROR;
801285e: 2301 movs r3, #1
8012860: 71fb strb r3, [r7, #7]
}
}
return status;
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: 40023c00 .word 0x40023c00
8012874: 45670123 .word 0x45670123
8012878: cdef89ab .word 0xcdef89ab
0801287c <HAL_FLASH_Lock>:
/**
* @brief Locks the FLASH control register access
* @retval HAL Status
*/
HAL_StatusTypeDef HAL_FLASH_Lock(void)
{
801287c: b480 push {r7}
801287e: af00 add r7, sp, #0
/* Set the LOCK Bit to lock the FLASH Registers access */
FLASH->CR |= FLASH_CR_LOCK;
8012880: 4a05 ldr r2, [pc, #20] ; (8012898 <HAL_FLASH_Lock+0x1c>)
8012882: 4b05 ldr r3, [pc, #20] ; (8012898 <HAL_FLASH_Lock+0x1c>)
8012884: 691b ldr r3, [r3, #16]
8012886: f043 4300 orr.w r3, r3, #2147483648 ; 0x80000000
801288a: 6113 str r3, [r2, #16]
return HAL_OK;
801288c: 2300 movs r3, #0
}
801288e: 4618 mov r0, r3
8012890: 46bd mov sp, r7
8012892: f85d 7b04 ldr.w r7, [sp], #4
8012896: 4770 bx lr
8012898: 40023c00 .word 0x40023c00
0801289c <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)
{
801289c: b580 push {r7, lr}
801289e: b084 sub sp, #16
80128a0: af00 add r7, sp, #0
80128a2: 6078 str r0, [r7, #4]
uint32_t tickstart = 0;
80128a4: 2300 movs r3, #0
80128a6: 60fb str r3, [r7, #12]
/* Clear Error Code */
pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
80128a8: 4b1a ldr r3, [pc, #104] ; (8012914 <FLASH_WaitForLastOperation+0x78>)
80128aa: 2200 movs r2, #0
80128ac: 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();
80128ae: f7ff f937 bl 8011b20 <HAL_GetTick>
80128b2: 60f8 str r0, [r7, #12]
while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY) != RESET)
80128b4: e010 b.n 80128d8 <FLASH_WaitForLastOperation+0x3c>
{
if(Timeout != HAL_MAX_DELAY)
80128b6: 687b ldr r3, [r7, #4]
80128b8: f1b3 3fff cmp.w r3, #4294967295
80128bc: d00c beq.n 80128d8 <FLASH_WaitForLastOperation+0x3c>
{
if((Timeout == 0)||((HAL_GetTick() - tickstart ) > Timeout))
80128be: 687b ldr r3, [r7, #4]
80128c0: 2b00 cmp r3, #0
80128c2: d007 beq.n 80128d4 <FLASH_WaitForLastOperation+0x38>
80128c4: f7ff f92c bl 8011b20 <HAL_GetTick>
80128c8: 4602 mov r2, r0
80128ca: 68fb ldr r3, [r7, #12]
80128cc: 1ad2 subs r2, r2, r3
80128ce: 687b ldr r3, [r7, #4]
80128d0: 429a cmp r2, r3
80128d2: d901 bls.n 80128d8 <FLASH_WaitForLastOperation+0x3c>
{
return HAL_TIMEOUT;
80128d4: 2303 movs r3, #3
80128d6: e019 b.n 801290c <FLASH_WaitForLastOperation+0x70>
while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY) != RESET)
80128d8: 4b0f ldr r3, [pc, #60] ; (8012918 <FLASH_WaitForLastOperation+0x7c>)
80128da: 68db ldr r3, [r3, #12]
80128dc: f403 3380 and.w r3, r3, #65536 ; 0x10000
80128e0: 2b00 cmp r3, #0
80128e2: d1e8 bne.n 80128b6 <FLASH_WaitForLastOperation+0x1a>
}
}
}
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_ALL_ERRORS) != RESET)
80128e4: 4b0c ldr r3, [pc, #48] ; (8012918 <FLASH_WaitForLastOperation+0x7c>)
80128e6: 68db ldr r3, [r3, #12]
80128e8: f003 03f2 and.w r3, r3, #242 ; 0xf2
80128ec: 2b00 cmp r3, #0
80128ee: d003 beq.n 80128f8 <FLASH_WaitForLastOperation+0x5c>
{
/*Save the error code*/
FLASH_SetErrorCode();
80128f0: f000 f8b2 bl 8012a58 <FLASH_SetErrorCode>
return HAL_ERROR;
80128f4: 2301 movs r3, #1
80128f6: e009 b.n 801290c <FLASH_WaitForLastOperation+0x70>
}
/* Check FLASH End of Operation flag */
if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP) != RESET)
80128f8: 4b07 ldr r3, [pc, #28] ; (8012918 <FLASH_WaitForLastOperation+0x7c>)
80128fa: 68db ldr r3, [r3, #12]
80128fc: f003 0301 and.w r3, r3, #1
8012900: 2b00 cmp r3, #0
8012902: d002 beq.n 801290a <FLASH_WaitForLastOperation+0x6e>
{
/* Clear FLASH End of Operation pending bit */
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
8012904: 4b04 ldr r3, [pc, #16] ; (8012918 <FLASH_WaitForLastOperation+0x7c>)
8012906: 2201 movs r2, #1
8012908: 60da str r2, [r3, #12]
}
/* If there is an error flag set */
return HAL_OK;
801290a: 2300 movs r3, #0
}
801290c: 4618 mov r0, r3
801290e: 3710 adds r7, #16
8012910: 46bd mov sp, r7
8012912: bd80 pop {r7, pc}
8012914: 2006c5a8 .word 0x2006c5a8
8012918: 40023c00 .word 0x40023c00
0801291c <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)
{
801291c: b4f0 push {r4, r5, r6, r7}
801291e: b084 sub sp, #16
8012920: af00 add r7, sp, #0
8012922: 60f8 str r0, [r7, #12]
8012924: 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;
8012928: 4a13 ldr r2, [pc, #76] ; (8012978 <FLASH_Program_DoubleWord+0x5c>)
801292a: 4b13 ldr r3, [pc, #76] ; (8012978 <FLASH_Program_DoubleWord+0x5c>)
801292c: 691b ldr r3, [r3, #16]
801292e: f423 7340 bic.w r3, r3, #768 ; 0x300
8012932: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_PSIZE_DOUBLE_WORD;
8012934: 4a10 ldr r2, [pc, #64] ; (8012978 <FLASH_Program_DoubleWord+0x5c>)
8012936: 4b10 ldr r3, [pc, #64] ; (8012978 <FLASH_Program_DoubleWord+0x5c>)
8012938: 691b ldr r3, [r3, #16]
801293a: f443 7340 orr.w r3, r3, #768 ; 0x300
801293e: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_CR_PG;
8012940: 4a0d ldr r2, [pc, #52] ; (8012978 <FLASH_Program_DoubleWord+0x5c>)
8012942: 4b0d ldr r3, [pc, #52] ; (8012978 <FLASH_Program_DoubleWord+0x5c>)
8012944: 691b ldr r3, [r3, #16]
8012946: f043 0301 orr.w r3, r3, #1
801294a: 6113 str r3, [r2, #16]
/* Program first word */
*(__IO uint32_t*)Address = (uint32_t)Data;
801294c: 68fb ldr r3, [r7, #12]
801294e: 683a ldr r2, [r7, #0]
8012950: 601a str r2, [r3, #0]
8012952: 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);
8012956: 68fb ldr r3, [r7, #12]
8012958: 3304 adds r3, #4
801295a: 461a mov r2, r3
801295c: e897 0018 ldmia.w r7, {r3, r4}
8012960: 0025 movs r5, r4
8012962: 2600 movs r6, #0
8012964: 462b mov r3, r5
8012966: 6013 str r3, [r2, #0]
__ASM volatile ("dsb 0xF":::"memory");
8012968: 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();
}
801296c: bf00 nop
801296e: 3710 adds r7, #16
8012970: 46bd mov sp, r7
8012972: bcf0 pop {r4, r5, r6, r7}
8012974: 4770 bx lr
8012976: bf00 nop
8012978: 40023c00 .word 0x40023c00
0801297c <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)
{
801297c: b480 push {r7}
801297e: b083 sub sp, #12
8012980: af00 add r7, sp, #0
8012982: 6078 str r0, [r7, #4]
8012984: 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;
8012986: 4a0e ldr r2, [pc, #56] ; (80129c0 <FLASH_Program_Word+0x44>)
8012988: 4b0d ldr r3, [pc, #52] ; (80129c0 <FLASH_Program_Word+0x44>)
801298a: 691b ldr r3, [r3, #16]
801298c: f423 7340 bic.w r3, r3, #768 ; 0x300
8012990: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_PSIZE_WORD;
8012992: 4a0b ldr r2, [pc, #44] ; (80129c0 <FLASH_Program_Word+0x44>)
8012994: 4b0a ldr r3, [pc, #40] ; (80129c0 <FLASH_Program_Word+0x44>)
8012996: 691b ldr r3, [r3, #16]
8012998: f443 7300 orr.w r3, r3, #512 ; 0x200
801299c: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_CR_PG;
801299e: 4a08 ldr r2, [pc, #32] ; (80129c0 <FLASH_Program_Word+0x44>)
80129a0: 4b07 ldr r3, [pc, #28] ; (80129c0 <FLASH_Program_Word+0x44>)
80129a2: 691b ldr r3, [r3, #16]
80129a4: f043 0301 orr.w r3, r3, #1
80129a8: 6113 str r3, [r2, #16]
*(__IO uint32_t*)Address = Data;
80129aa: 687b ldr r3, [r7, #4]
80129ac: 683a ldr r2, [r7, #0]
80129ae: 601a str r2, [r3, #0]
80129b0: 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();
}
80129b4: bf00 nop
80129b6: 370c adds r7, #12
80129b8: 46bd mov sp, r7
80129ba: f85d 7b04 ldr.w r7, [sp], #4
80129be: 4770 bx lr
80129c0: 40023c00 .word 0x40023c00
080129c4 <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)
{
80129c4: b480 push {r7}
80129c6: b083 sub sp, #12
80129c8: af00 add r7, sp, #0
80129ca: 6078 str r0, [r7, #4]
80129cc: 460b mov r3, r1
80129ce: 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;
80129d0: 4a0e ldr r2, [pc, #56] ; (8012a0c <FLASH_Program_HalfWord+0x48>)
80129d2: 4b0e ldr r3, [pc, #56] ; (8012a0c <FLASH_Program_HalfWord+0x48>)
80129d4: 691b ldr r3, [r3, #16]
80129d6: f423 7340 bic.w r3, r3, #768 ; 0x300
80129da: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_PSIZE_HALF_WORD;
80129dc: 4a0b ldr r2, [pc, #44] ; (8012a0c <FLASH_Program_HalfWord+0x48>)
80129de: 4b0b ldr r3, [pc, #44] ; (8012a0c <FLASH_Program_HalfWord+0x48>)
80129e0: 691b ldr r3, [r3, #16]
80129e2: f443 7380 orr.w r3, r3, #256 ; 0x100
80129e6: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_CR_PG;
80129e8: 4a08 ldr r2, [pc, #32] ; (8012a0c <FLASH_Program_HalfWord+0x48>)
80129ea: 4b08 ldr r3, [pc, #32] ; (8012a0c <FLASH_Program_HalfWord+0x48>)
80129ec: 691b ldr r3, [r3, #16]
80129ee: f043 0301 orr.w r3, r3, #1
80129f2: 6113 str r3, [r2, #16]
*(__IO uint16_t*)Address = Data;
80129f4: 687b ldr r3, [r7, #4]
80129f6: 887a ldrh r2, [r7, #2]
80129f8: 801a strh r2, [r3, #0]
80129fa: 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();
}
80129fe: bf00 nop
8012a00: 370c adds r7, #12
8012a02: 46bd mov sp, r7
8012a04: f85d 7b04 ldr.w r7, [sp], #4
8012a08: 4770 bx lr
8012a0a: bf00 nop
8012a0c: 40023c00 .word 0x40023c00
08012a10 <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)
{
8012a10: b480 push {r7}
8012a12: b083 sub sp, #12
8012a14: af00 add r7, sp, #0
8012a16: 6078 str r0, [r7, #4]
8012a18: 460b mov r3, r1
8012a1a: 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;
8012a1c: 4a0d ldr r2, [pc, #52] ; (8012a54 <FLASH_Program_Byte+0x44>)
8012a1e: 4b0d ldr r3, [pc, #52] ; (8012a54 <FLASH_Program_Byte+0x44>)
8012a20: 691b ldr r3, [r3, #16]
8012a22: f423 7340 bic.w r3, r3, #768 ; 0x300
8012a26: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_PSIZE_BYTE;
8012a28: 4a0a ldr r2, [pc, #40] ; (8012a54 <FLASH_Program_Byte+0x44>)
8012a2a: 4b0a ldr r3, [pc, #40] ; (8012a54 <FLASH_Program_Byte+0x44>)
8012a2c: 691b ldr r3, [r3, #16]
8012a2e: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_CR_PG;
8012a30: 4a08 ldr r2, [pc, #32] ; (8012a54 <FLASH_Program_Byte+0x44>)
8012a32: 4b08 ldr r3, [pc, #32] ; (8012a54 <FLASH_Program_Byte+0x44>)
8012a34: 691b ldr r3, [r3, #16]
8012a36: f043 0301 orr.w r3, r3, #1
8012a3a: 6113 str r3, [r2, #16]
*(__IO uint8_t*)Address = Data;
8012a3c: 687b ldr r3, [r7, #4]
8012a3e: 78fa ldrb r2, [r7, #3]
8012a40: 701a strb r2, [r3, #0]
8012a42: 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();
}
8012a46: bf00 nop
8012a48: 370c adds r7, #12
8012a4a: 46bd mov sp, r7
8012a4c: f85d 7b04 ldr.w r7, [sp], #4
8012a50: 4770 bx lr
8012a52: bf00 nop
8012a54: 40023c00 .word 0x40023c00
08012a58 <FLASH_SetErrorCode>:
/**
* @brief Set the specific FLASH error flag.
* @retval None
*/
static void FLASH_SetErrorCode(void)
{
8012a58: b480 push {r7}
8012a5a: af00 add r7, sp, #0
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_OPERR) != RESET)
8012a5c: 4b21 ldr r3, [pc, #132] ; (8012ae4 <FLASH_SetErrorCode+0x8c>)
8012a5e: 68db ldr r3, [r3, #12]
8012a60: f003 0302 and.w r3, r3, #2
8012a64: 2b00 cmp r3, #0
8012a66: d005 beq.n 8012a74 <FLASH_SetErrorCode+0x1c>
{
pFlash.ErrorCode |= HAL_FLASH_ERROR_OPERATION;
8012a68: 4b1f ldr r3, [pc, #124] ; (8012ae8 <FLASH_SetErrorCode+0x90>)
8012a6a: 699b ldr r3, [r3, #24]
8012a6c: f043 0320 orr.w r3, r3, #32
8012a70: 4a1d ldr r2, [pc, #116] ; (8012ae8 <FLASH_SetErrorCode+0x90>)
8012a72: 6193 str r3, [r2, #24]
}
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) != RESET)
8012a74: 4b1b ldr r3, [pc, #108] ; (8012ae4 <FLASH_SetErrorCode+0x8c>)
8012a76: 68db ldr r3, [r3, #12]
8012a78: f003 0310 and.w r3, r3, #16
8012a7c: 2b00 cmp r3, #0
8012a7e: d005 beq.n 8012a8c <FLASH_SetErrorCode+0x34>
{
pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP;
8012a80: 4b19 ldr r3, [pc, #100] ; (8012ae8 <FLASH_SetErrorCode+0x90>)
8012a82: 699b ldr r3, [r3, #24]
8012a84: f043 0310 orr.w r3, r3, #16
8012a88: 4a17 ldr r2, [pc, #92] ; (8012ae8 <FLASH_SetErrorCode+0x90>)
8012a8a: 6193 str r3, [r2, #24]
}
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGAERR) != RESET)
8012a8c: 4b15 ldr r3, [pc, #84] ; (8012ae4 <FLASH_SetErrorCode+0x8c>)
8012a8e: 68db ldr r3, [r3, #12]
8012a90: f003 0320 and.w r3, r3, #32
8012a94: 2b00 cmp r3, #0
8012a96: d005 beq.n 8012aa4 <FLASH_SetErrorCode+0x4c>
{
pFlash.ErrorCode |= HAL_FLASH_ERROR_PGA;
8012a98: 4b13 ldr r3, [pc, #76] ; (8012ae8 <FLASH_SetErrorCode+0x90>)
8012a9a: 699b ldr r3, [r3, #24]
8012a9c: f043 0308 orr.w r3, r3, #8
8012aa0: 4a11 ldr r2, [pc, #68] ; (8012ae8 <FLASH_SetErrorCode+0x90>)
8012aa2: 6193 str r3, [r2, #24]
}
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGPERR) != RESET)
8012aa4: 4b0f ldr r3, [pc, #60] ; (8012ae4 <FLASH_SetErrorCode+0x8c>)
8012aa6: 68db ldr r3, [r3, #12]
8012aa8: f003 0340 and.w r3, r3, #64 ; 0x40
8012aac: 2b00 cmp r3, #0
8012aae: d005 beq.n 8012abc <FLASH_SetErrorCode+0x64>
{
pFlash.ErrorCode |= HAL_FLASH_ERROR_PGP;
8012ab0: 4b0d ldr r3, [pc, #52] ; (8012ae8 <FLASH_SetErrorCode+0x90>)
8012ab2: 699b ldr r3, [r3, #24]
8012ab4: f043 0304 orr.w r3, r3, #4
8012ab8: 4a0b ldr r2, [pc, #44] ; (8012ae8 <FLASH_SetErrorCode+0x90>)
8012aba: 6193 str r3, [r2, #24]
}
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_ERSERR) != RESET)
8012abc: 4b09 ldr r3, [pc, #36] ; (8012ae4 <FLASH_SetErrorCode+0x8c>)
8012abe: 68db ldr r3, [r3, #12]
8012ac0: f003 0380 and.w r3, r3, #128 ; 0x80
8012ac4: 2b00 cmp r3, #0
8012ac6: d005 beq.n 8012ad4 <FLASH_SetErrorCode+0x7c>
{
pFlash.ErrorCode |= HAL_FLASH_ERROR_ERS;
8012ac8: 4b07 ldr r3, [pc, #28] ; (8012ae8 <FLASH_SetErrorCode+0x90>)
8012aca: 699b ldr r3, [r3, #24]
8012acc: f043 0302 orr.w r3, r3, #2
8012ad0: 4a05 ldr r2, [pc, #20] ; (8012ae8 <FLASH_SetErrorCode+0x90>)
8012ad2: 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);
8012ad4: 4b03 ldr r3, [pc, #12] ; (8012ae4 <FLASH_SetErrorCode+0x8c>)
8012ad6: 22f2 movs r2, #242 ; 0xf2
8012ad8: 60da str r2, [r3, #12]
}
8012ada: bf00 nop
8012adc: 46bd mov sp, r7
8012ade: f85d 7b04 ldr.w r7, [sp], #4
8012ae2: 4770 bx lr
8012ae4: 40023c00 .word 0x40023c00
8012ae8: 2006c5a8 .word 0x2006c5a8
08012aec <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)
{
8012aec: b580 push {r7, lr}
8012aee: b084 sub sp, #16
8012af0: af00 add r7, sp, #0
8012af2: 6078 str r0, [r7, #4]
8012af4: 6039 str r1, [r7, #0]
HAL_StatusTypeDef status = HAL_ERROR;
8012af6: 2301 movs r3, #1
8012af8: 73fb strb r3, [r7, #15]
uint32_t index = 0;
8012afa: 2300 movs r3, #0
8012afc: 60bb str r3, [r7, #8]
/* Process Locked */
__HAL_LOCK(&pFlash);
8012afe: 4b30 ldr r3, [pc, #192] ; (8012bc0 <HAL_FLASHEx_Erase+0xd4>)
8012b00: 7d1b ldrb r3, [r3, #20]
8012b02: 2b01 cmp r3, #1
8012b04: d101 bne.n 8012b0a <HAL_FLASHEx_Erase+0x1e>
8012b06: 2302 movs r3, #2
8012b08: e056 b.n 8012bb8 <HAL_FLASHEx_Erase+0xcc>
8012b0a: 4b2d ldr r3, [pc, #180] ; (8012bc0 <HAL_FLASHEx_Erase+0xd4>)
8012b0c: 2201 movs r2, #1
8012b0e: 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);
8012b10: f24c 3050 movw r0, #50000 ; 0xc350
8012b14: f7ff fec2 bl 801289c <FLASH_WaitForLastOperation>
8012b18: 4603 mov r3, r0
8012b1a: 73fb strb r3, [r7, #15]
if(status == HAL_OK)
8012b1c: 7bfb ldrb r3, [r7, #15]
8012b1e: 2b00 cmp r3, #0
8012b20: d146 bne.n 8012bb0 <HAL_FLASHEx_Erase+0xc4>
{
/*Initialization of SectorError variable*/
*SectorError = 0xFFFFFFFFU;
8012b22: 683b ldr r3, [r7, #0]
8012b24: f04f 32ff mov.w r2, #4294967295
8012b28: 601a str r2, [r3, #0]
if(pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE)
8012b2a: 687b ldr r3, [r7, #4]
8012b2c: 681b ldr r3, [r3, #0]
8012b2e: 2b01 cmp r3, #1
8012b30: d115 bne.n 8012b5e <HAL_FLASHEx_Erase+0x72>
{
/*Mass erase to be done*/
#if defined (FLASH_OPTCR_nDBANK)
FLASH_MassErase((uint8_t) pEraseInit->VoltageRange, pEraseInit->Banks);
8012b32: 687b ldr r3, [r7, #4]
8012b34: 691b ldr r3, [r3, #16]
8012b36: b2da uxtb r2, r3
8012b38: 687b ldr r3, [r7, #4]
8012b3a: 685b ldr r3, [r3, #4]
8012b3c: 4619 mov r1, r3
8012b3e: 4610 mov r0, r2
8012b40: f000 f870 bl 8012c24 <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);
8012b44: f24c 3050 movw r0, #50000 ; 0xc350
8012b48: f7ff fea8 bl 801289c <FLASH_WaitForLastOperation>
8012b4c: 4603 mov r3, r0
8012b4e: 73fb strb r3, [r7, #15]
/* if the erase operation is completed, disable the MER Bit */
FLASH->CR &= (~FLASH_MER_BIT);
8012b50: 491c ldr r1, [pc, #112] ; (8012bc4 <HAL_FLASHEx_Erase+0xd8>)
8012b52: 4b1c ldr r3, [pc, #112] ; (8012bc4 <HAL_FLASHEx_Erase+0xd8>)
8012b54: 691a ldr r2, [r3, #16]
8012b56: 4b1c ldr r3, [pc, #112] ; (8012bc8 <HAL_FLASHEx_Erase+0xdc>)
8012b58: 4013 ands r3, r2
8012b5a: 610b str r3, [r1, #16]
8012b5c: e028 b.n 8012bb0 <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++)
8012b5e: 687b ldr r3, [r7, #4]
8012b60: 689b ldr r3, [r3, #8]
8012b62: 60bb str r3, [r7, #8]
8012b64: e01c b.n 8012ba0 <HAL_FLASHEx_Erase+0xb4>
{
FLASH_Erase_Sector(index, (uint8_t) pEraseInit->VoltageRange);
8012b66: 687b ldr r3, [r7, #4]
8012b68: 691b ldr r3, [r3, #16]
8012b6a: b2db uxtb r3, r3
8012b6c: 4619 mov r1, r3
8012b6e: 68b8 ldr r0, [r7, #8]
8012b70: f000 f892 bl 8012c98 <FLASH_Erase_Sector>
/* Wait for last operation to be completed */
status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
8012b74: f24c 3050 movw r0, #50000 ; 0xc350
8012b78: f7ff fe90 bl 801289c <FLASH_WaitForLastOperation>
8012b7c: 4603 mov r3, r0
8012b7e: 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));
8012b80: 4a10 ldr r2, [pc, #64] ; (8012bc4 <HAL_FLASHEx_Erase+0xd8>)
8012b82: 4b10 ldr r3, [pc, #64] ; (8012bc4 <HAL_FLASHEx_Erase+0xd8>)
8012b84: 691b ldr r3, [r3, #16]
8012b86: f023 03fa bic.w r3, r3, #250 ; 0xfa
8012b8a: 6113 str r3, [r2, #16]
if(status != HAL_OK)
8012b8c: 7bfb ldrb r3, [r7, #15]
8012b8e: 2b00 cmp r3, #0
8012b90: d003 beq.n 8012b9a <HAL_FLASHEx_Erase+0xae>
{
/* In case of error, stop erase procedure and return the faulty sector*/
*SectorError = index;
8012b92: 683b ldr r3, [r7, #0]
8012b94: 68ba ldr r2, [r7, #8]
8012b96: 601a str r2, [r3, #0]
break;
8012b98: e00a b.n 8012bb0 <HAL_FLASHEx_Erase+0xc4>
for(index = pEraseInit->Sector; index < (pEraseInit->NbSectors + pEraseInit->Sector); index++)
8012b9a: 68bb ldr r3, [r7, #8]
8012b9c: 3301 adds r3, #1
8012b9e: 60bb str r3, [r7, #8]
8012ba0: 687b ldr r3, [r7, #4]
8012ba2: 68da ldr r2, [r3, #12]
8012ba4: 687b ldr r3, [r7, #4]
8012ba6: 689b ldr r3, [r3, #8]
8012ba8: 441a add r2, r3
8012baa: 68bb ldr r3, [r7, #8]
8012bac: 429a cmp r2, r3
8012bae: d8da bhi.n 8012b66 <HAL_FLASHEx_Erase+0x7a>
}
}
}
/* Process Unlocked */
__HAL_UNLOCK(&pFlash);
8012bb0: 4b03 ldr r3, [pc, #12] ; (8012bc0 <HAL_FLASHEx_Erase+0xd4>)
8012bb2: 2200 movs r2, #0
8012bb4: 751a strb r2, [r3, #20]
return status;
8012bb6: 7bfb ldrb r3, [r7, #15]
}
8012bb8: 4618 mov r0, r3
8012bba: 3710 adds r7, #16
8012bbc: 46bd mov sp, r7
8012bbe: bd80 pop {r7, pc}
8012bc0: 2006c5a8 .word 0x2006c5a8
8012bc4: 40023c00 .word 0x40023c00
8012bc8: ffff7ffb .word 0xffff7ffb
08012bcc <HAL_FLASHEx_OBGetConfig>:
* contains the configuration information for the programming.
*
* @retval None
*/
void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit)
{
8012bcc: b580 push {r7, lr}
8012bce: b082 sub sp, #8
8012bd0: af00 add r7, sp, #0
8012bd2: 6078 str r0, [r7, #4]
pOBInit->OptionType = OPTIONBYTE_WRP | OPTIONBYTE_RDP | OPTIONBYTE_USER |\
8012bd4: 687b ldr r3, [r7, #4]
8012bd6: 223f movs r2, #63 ; 0x3f
8012bd8: 601a str r2, [r3, #0]
OPTIONBYTE_BOR | OPTIONBYTE_BOOTADDR_0 | OPTIONBYTE_BOOTADDR_1;
/*Get WRP*/
pOBInit->WRPSector = FLASH_OB_GetWRP();
8012bda: f000 f8ad bl 8012d38 <FLASH_OB_GetWRP>
8012bde: 4602 mov r2, r0
8012be0: 687b ldr r3, [r7, #4]
8012be2: 609a str r2, [r3, #8]
/*Get RDP Level*/
pOBInit->RDPLevel = FLASH_OB_GetRDP();
8012be4: f000 f8c8 bl 8012d78 <FLASH_OB_GetRDP>
8012be8: 4603 mov r3, r0
8012bea: 461a mov r2, r3
8012bec: 687b ldr r3, [r7, #4]
8012bee: 60da str r2, [r3, #12]
/*Get USER*/
pOBInit->USERConfig = FLASH_OB_GetUser();
8012bf0: f000 f8b2 bl 8012d58 <FLASH_OB_GetUser>
8012bf4: 4602 mov r2, r0
8012bf6: 687b ldr r3, [r7, #4]
8012bf8: 615a str r2, [r3, #20]
/*Get BOR Level*/
pOBInit->BORLevel = FLASH_OB_GetBOR();
8012bfa: f000 f8dd bl 8012db8 <FLASH_OB_GetBOR>
8012bfe: 4602 mov r2, r0
8012c00: 687b ldr r3, [r7, #4]
8012c02: 611a str r2, [r3, #16]
/*Get Boot Address when Boot pin = 0 */
pOBInit->BootAddr0 = FLASH_OB_GetBootAddress(OPTIONBYTE_BOOTADDR_0);
8012c04: 2010 movs r0, #16
8012c06: f000 f8e5 bl 8012dd4 <FLASH_OB_GetBootAddress>
8012c0a: 4602 mov r2, r0
8012c0c: 687b ldr r3, [r7, #4]
8012c0e: 619a str r2, [r3, #24]
/*Get Boot Address when Boot pin = 1 */
pOBInit->BootAddr1 = FLASH_OB_GetBootAddress(OPTIONBYTE_BOOTADDR_1);
8012c10: 2020 movs r0, #32
8012c12: f000 f8df bl 8012dd4 <FLASH_OB_GetBootAddress>
8012c16: 4602 mov r2, r0
8012c18: 687b ldr r3, [r7, #4]
8012c1a: 61da str r2, [r3, #28]
pOBInit->PCROPSector = FLASH_OB_GetPCROP();
/*Get PCROP_RDP Value */
pOBInit->PCROPRdp = FLASH_OB_GetPCROPRDP();
#endif /* FLASH_OPTCR2_PCROP */
}
8012c1c: bf00 nop
8012c1e: 3708 adds r7, #8
8012c20: 46bd mov sp, r7
8012c22: bd80 pop {r7, pc}
08012c24 <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)
{
8012c24: b480 push {r7}
8012c26: b083 sub sp, #12
8012c28: af00 add r7, sp, #0
8012c2a: 4603 mov r3, r0
8012c2c: 6039 str r1, [r7, #0]
8012c2e: 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;
8012c30: 4a18 ldr r2, [pc, #96] ; (8012c94 <FLASH_MassErase+0x70>)
8012c32: 4b18 ldr r3, [pc, #96] ; (8012c94 <FLASH_MassErase+0x70>)
8012c34: 691b ldr r3, [r3, #16]
8012c36: f423 7340 bic.w r3, r3, #768 ; 0x300
8012c3a: 6113 str r3, [r2, #16]
if(Banks == FLASH_BANK_BOTH)
8012c3c: 683b ldr r3, [r7, #0]
8012c3e: 2b03 cmp r3, #3
8012c40: d107 bne.n 8012c52 <FLASH_MassErase+0x2e>
{
/* bank1 & bank2 will be erased*/
FLASH->CR |= FLASH_MER_BIT;
8012c42: 4914 ldr r1, [pc, #80] ; (8012c94 <FLASH_MassErase+0x70>)
8012c44: 4b13 ldr r3, [pc, #76] ; (8012c94 <FLASH_MassErase+0x70>)
8012c46: 691a ldr r2, [r3, #16]
8012c48: f248 0304 movw r3, #32772 ; 0x8004
8012c4c: 4313 orrs r3, r2
8012c4e: 610b str r3, [r1, #16]
8012c50: e00f b.n 8012c72 <FLASH_MassErase+0x4e>
}
else if(Banks == FLASH_BANK_2)
8012c52: 683b ldr r3, [r7, #0]
8012c54: 2b02 cmp r3, #2
8012c56: d106 bne.n 8012c66 <FLASH_MassErase+0x42>
{
/*Only bank2 will be erased*/
FLASH->CR |= FLASH_CR_MER2;
8012c58: 4a0e ldr r2, [pc, #56] ; (8012c94 <FLASH_MassErase+0x70>)
8012c5a: 4b0e ldr r3, [pc, #56] ; (8012c94 <FLASH_MassErase+0x70>)
8012c5c: 691b ldr r3, [r3, #16]
8012c5e: f443 4300 orr.w r3, r3, #32768 ; 0x8000
8012c62: 6113 str r3, [r2, #16]
8012c64: e005 b.n 8012c72 <FLASH_MassErase+0x4e>
}
else
{
/*Only bank1 will be erased*/
FLASH->CR |= FLASH_CR_MER1;
8012c66: 4a0b ldr r2, [pc, #44] ; (8012c94 <FLASH_MassErase+0x70>)
8012c68: 4b0a ldr r3, [pc, #40] ; (8012c94 <FLASH_MassErase+0x70>)
8012c6a: 691b ldr r3, [r3, #16]
8012c6c: f043 0304 orr.w r3, r3, #4
8012c70: 6113 str r3, [r2, #16]
}
FLASH->CR |= FLASH_CR_STRT | ((uint32_t)VoltageRange <<8);
8012c72: 4908 ldr r1, [pc, #32] ; (8012c94 <FLASH_MassErase+0x70>)
8012c74: 4b07 ldr r3, [pc, #28] ; (8012c94 <FLASH_MassErase+0x70>)
8012c76: 691a ldr r2, [r3, #16]
8012c78: 79fb ldrb r3, [r7, #7]
8012c7a: 021b lsls r3, r3, #8
8012c7c: 4313 orrs r3, r2
8012c7e: f443 3380 orr.w r3, r3, #65536 ; 0x10000
8012c82: 610b str r3, [r1, #16]
8012c84: 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();
}
8012c88: bf00 nop
8012c8a: 370c adds r7, #12
8012c8c: 46bd mov sp, r7
8012c8e: f85d 7b04 ldr.w r7, [sp], #4
8012c92: 4770 bx lr
8012c94: 40023c00 .word 0x40023c00
08012c98 <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)
{
8012c98: b480 push {r7}
8012c9a: b085 sub sp, #20
8012c9c: af00 add r7, sp, #0
8012c9e: 6078 str r0, [r7, #4]
8012ca0: 460b mov r3, r1
8012ca2: 70fb strb r3, [r7, #3]
uint32_t tmp_psize = 0;
8012ca4: 2300 movs r3, #0
8012ca6: 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)
8012ca8: 78fb ldrb r3, [r7, #3]
8012caa: 2b00 cmp r3, #0
8012cac: d102 bne.n 8012cb4 <FLASH_Erase_Sector+0x1c>
{
tmp_psize = FLASH_PSIZE_BYTE;
8012cae: 2300 movs r3, #0
8012cb0: 60fb str r3, [r7, #12]
8012cb2: e010 b.n 8012cd6 <FLASH_Erase_Sector+0x3e>
}
else if(VoltageRange == FLASH_VOLTAGE_RANGE_2)
8012cb4: 78fb ldrb r3, [r7, #3]
8012cb6: 2b01 cmp r3, #1
8012cb8: d103 bne.n 8012cc2 <FLASH_Erase_Sector+0x2a>
{
tmp_psize = FLASH_PSIZE_HALF_WORD;
8012cba: f44f 7380 mov.w r3, #256 ; 0x100
8012cbe: 60fb str r3, [r7, #12]
8012cc0: e009 b.n 8012cd6 <FLASH_Erase_Sector+0x3e>
}
else if(VoltageRange == FLASH_VOLTAGE_RANGE_3)
8012cc2: 78fb ldrb r3, [r7, #3]
8012cc4: 2b02 cmp r3, #2
8012cc6: d103 bne.n 8012cd0 <FLASH_Erase_Sector+0x38>
{
tmp_psize = FLASH_PSIZE_WORD;
8012cc8: f44f 7300 mov.w r3, #512 ; 0x200
8012ccc: 60fb str r3, [r7, #12]
8012cce: e002 b.n 8012cd6 <FLASH_Erase_Sector+0x3e>
}
else
{
tmp_psize = FLASH_PSIZE_DOUBLE_WORD;
8012cd0: f44f 7340 mov.w r3, #768 ; 0x300
8012cd4: 60fb str r3, [r7, #12]
}
/* Need to add offset of 4 when sector higher than FLASH_SECTOR_11 */
if(Sector > FLASH_SECTOR_11)
8012cd6: 687b ldr r3, [r7, #4]
8012cd8: 2b0b cmp r3, #11
8012cda: d902 bls.n 8012ce2 <FLASH_Erase_Sector+0x4a>
{
Sector += 4;
8012cdc: 687b ldr r3, [r7, #4]
8012cde: 3304 adds r3, #4
8012ce0: 607b str r3, [r7, #4]
}
/* If the previous operation is completed, proceed to erase the sector */
FLASH->CR &= CR_PSIZE_MASK;
8012ce2: 4a14 ldr r2, [pc, #80] ; (8012d34 <FLASH_Erase_Sector+0x9c>)
8012ce4: 4b13 ldr r3, [pc, #76] ; (8012d34 <FLASH_Erase_Sector+0x9c>)
8012ce6: 691b ldr r3, [r3, #16]
8012ce8: f423 7340 bic.w r3, r3, #768 ; 0x300
8012cec: 6113 str r3, [r2, #16]
FLASH->CR |= tmp_psize;
8012cee: 4911 ldr r1, [pc, #68] ; (8012d34 <FLASH_Erase_Sector+0x9c>)
8012cf0: 4b10 ldr r3, [pc, #64] ; (8012d34 <FLASH_Erase_Sector+0x9c>)
8012cf2: 691a ldr r2, [r3, #16]
8012cf4: 68fb ldr r3, [r7, #12]
8012cf6: 4313 orrs r3, r2
8012cf8: 610b str r3, [r1, #16]
CLEAR_BIT(FLASH->CR, FLASH_CR_SNB);
8012cfa: 4a0e ldr r2, [pc, #56] ; (8012d34 <FLASH_Erase_Sector+0x9c>)
8012cfc: 4b0d ldr r3, [pc, #52] ; (8012d34 <FLASH_Erase_Sector+0x9c>)
8012cfe: 691b ldr r3, [r3, #16]
8012d00: f023 03f8 bic.w r3, r3, #248 ; 0xf8
8012d04: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_CR_SER | (Sector << FLASH_CR_SNB_Pos);
8012d06: 490b ldr r1, [pc, #44] ; (8012d34 <FLASH_Erase_Sector+0x9c>)
8012d08: 4b0a ldr r3, [pc, #40] ; (8012d34 <FLASH_Erase_Sector+0x9c>)
8012d0a: 691a ldr r2, [r3, #16]
8012d0c: 687b ldr r3, [r7, #4]
8012d0e: 00db lsls r3, r3, #3
8012d10: 4313 orrs r3, r2
8012d12: f043 0302 orr.w r3, r3, #2
8012d16: 610b str r3, [r1, #16]
FLASH->CR |= FLASH_CR_STRT;
8012d18: 4a06 ldr r2, [pc, #24] ; (8012d34 <FLASH_Erase_Sector+0x9c>)
8012d1a: 4b06 ldr r3, [pc, #24] ; (8012d34 <FLASH_Erase_Sector+0x9c>)
8012d1c: 691b ldr r3, [r3, #16]
8012d1e: f443 3380 orr.w r3, r3, #65536 ; 0x10000
8012d22: 6113 str r3, [r2, #16]
8012d24: 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();
}
8012d28: bf00 nop
8012d2a: 3714 adds r7, #20
8012d2c: 46bd mov sp, r7
8012d2e: f85d 7b04 ldr.w r7, [sp], #4
8012d32: 4770 bx lr
8012d34: 40023c00 .word 0x40023c00
08012d38 <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)
{
8012d38: b480 push {r7}
8012d3a: af00 add r7, sp, #0
/* Return the FLASH write protection Register value */
return ((uint32_t)(FLASH->OPTCR & 0x0FFF0000));
8012d3c: 4b04 ldr r3, [pc, #16] ; (8012d50 <FLASH_OB_GetWRP+0x18>)
8012d3e: 695a ldr r2, [r3, #20]
8012d40: 4b04 ldr r3, [pc, #16] ; (8012d54 <FLASH_OB_GetWRP+0x1c>)
8012d42: 4013 ands r3, r2
}
8012d44: 4618 mov r0, r3
8012d46: 46bd mov sp, r7
8012d48: f85d 7b04 ldr.w r7, [sp], #4
8012d4c: 4770 bx lr
8012d4e: bf00 nop
8012d50: 40023c00 .word 0x40023c00
8012d54: 0fff0000 .word 0x0fff0000
08012d58 <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)
{
8012d58: b480 push {r7}
8012d5a: af00 add r7, sp, #0
/* Return the User Option Byte */
return ((uint32_t)(FLASH->OPTCR & 0xF00000F0U));
8012d5c: 4b04 ldr r3, [pc, #16] ; (8012d70 <FLASH_OB_GetUser+0x18>)
8012d5e: 695a ldr r2, [r3, #20]
8012d60: 4b04 ldr r3, [pc, #16] ; (8012d74 <FLASH_OB_GetUser+0x1c>)
8012d62: 4013 ands r3, r2
}
8012d64: 4618 mov r0, r3
8012d66: 46bd mov sp, r7
8012d68: f85d 7b04 ldr.w r7, [sp], #4
8012d6c: 4770 bx lr
8012d6e: bf00 nop
8012d70: 40023c00 .word 0x40023c00
8012d74: f00000f0 .word 0xf00000f0
08012d78 <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)
{
8012d78: b480 push {r7}
8012d7a: b083 sub sp, #12
8012d7c: af00 add r7, sp, #0
uint8_t readstatus = OB_RDP_LEVEL_0;
8012d7e: 23aa movs r3, #170 ; 0xaa
8012d80: 71fb strb r3, [r7, #7]
if ((*(__IO uint8_t*)(OPTCR_BYTE1_ADDRESS)) == OB_RDP_LEVEL_0)
8012d82: 4b0c ldr r3, [pc, #48] ; (8012db4 <FLASH_OB_GetRDP+0x3c>)
8012d84: 781b ldrb r3, [r3, #0]
8012d86: b2db uxtb r3, r3
8012d88: 2baa cmp r3, #170 ; 0xaa
8012d8a: d102 bne.n 8012d92 <FLASH_OB_GetRDP+0x1a>
{
readstatus = OB_RDP_LEVEL_0;
8012d8c: 23aa movs r3, #170 ; 0xaa
8012d8e: 71fb strb r3, [r7, #7]
8012d90: e009 b.n 8012da6 <FLASH_OB_GetRDP+0x2e>
}
else if ((*(__IO uint8_t*)(OPTCR_BYTE1_ADDRESS)) == OB_RDP_LEVEL_2)
8012d92: 4b08 ldr r3, [pc, #32] ; (8012db4 <FLASH_OB_GetRDP+0x3c>)
8012d94: 781b ldrb r3, [r3, #0]
8012d96: b2db uxtb r3, r3
8012d98: 2bcc cmp r3, #204 ; 0xcc
8012d9a: d102 bne.n 8012da2 <FLASH_OB_GetRDP+0x2a>
{
readstatus = OB_RDP_LEVEL_2;
8012d9c: 23cc movs r3, #204 ; 0xcc
8012d9e: 71fb strb r3, [r7, #7]
8012da0: e001 b.n 8012da6 <FLASH_OB_GetRDP+0x2e>
}
else
{
readstatus = OB_RDP_LEVEL_1;
8012da2: 2355 movs r3, #85 ; 0x55
8012da4: 71fb strb r3, [r7, #7]
}
return readstatus;
8012da6: 79fb ldrb r3, [r7, #7]
}
8012da8: 4618 mov r0, r3
8012daa: 370c adds r7, #12
8012dac: 46bd mov sp, r7
8012dae: f85d 7b04 ldr.w r7, [sp], #4
8012db2: 4770 bx lr
8012db4: 40023c15 .word 0x40023c15
08012db8 <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)
{
8012db8: b480 push {r7}
8012dba: af00 add r7, sp, #0
/* Return the FLASH BOR level */
return ((uint32_t)(FLASH->OPTCR & 0x0C));
8012dbc: 4b04 ldr r3, [pc, #16] ; (8012dd0 <FLASH_OB_GetBOR+0x18>)
8012dbe: 695b ldr r3, [r3, #20]
8012dc0: f003 030c and.w r3, r3, #12
}
8012dc4: 4618 mov r0, r3
8012dc6: 46bd mov sp, r7
8012dc8: f85d 7b04 ldr.w r7, [sp], #4
8012dcc: 4770 bx lr
8012dce: bf00 nop
8012dd0: 40023c00 .word 0x40023c00
08012dd4 <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)
{
8012dd4: b480 push {r7}
8012dd6: b085 sub sp, #20
8012dd8: af00 add r7, sp, #0
8012dda: 6078 str r0, [r7, #4]
uint32_t Address = 0;
8012ddc: 2300 movs r3, #0
8012dde: 60fb str r3, [r7, #12]
/* Return the Boot base Address */
if(BootOption == OPTIONBYTE_BOOTADDR_0)
8012de0: 687b ldr r3, [r7, #4]
8012de2: 2b10 cmp r3, #16
8012de4: d104 bne.n 8012df0 <FLASH_OB_GetBootAddress+0x1c>
{
Address = FLASH->OPTCR1 & FLASH_OPTCR1_BOOT_ADD0;
8012de6: 4b08 ldr r3, [pc, #32] ; (8012e08 <FLASH_OB_GetBootAddress+0x34>)
8012de8: 699b ldr r3, [r3, #24]
8012dea: b29b uxth r3, r3
8012dec: 60fb str r3, [r7, #12]
8012dee: e004 b.n 8012dfa <FLASH_OB_GetBootAddress+0x26>
}
else
{
Address = ((FLASH->OPTCR1 & FLASH_OPTCR1_BOOT_ADD1) >> 16);
8012df0: 4b05 ldr r3, [pc, #20] ; (8012e08 <FLASH_OB_GetBootAddress+0x34>)
8012df2: 699b ldr r3, [r3, #24]
8012df4: 0c1b lsrs r3, r3, #16
8012df6: b29b uxth r3, r3
8012df8: 60fb str r3, [r7, #12]
}
return Address;
8012dfa: 68fb ldr r3, [r7, #12]
}
8012dfc: 4618 mov r0, r3
8012dfe: 3714 adds r7, #20
8012e00: 46bd mov sp, r7
8012e02: f85d 7b04 ldr.w r7, [sp], #4
8012e06: 4770 bx lr
8012e08: 40023c00 .word 0x40023c00
08012e0c <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)
{
8012e0c: b480 push {r7}
8012e0e: b089 sub sp, #36 ; 0x24
8012e10: af00 add r7, sp, #0
8012e12: 6078 str r0, [r7, #4]
8012e14: 6039 str r1, [r7, #0]
uint32_t position = 0x00;
8012e16: 2300 movs r3, #0
8012e18: 61fb str r3, [r7, #28]
uint32_t ioposition = 0x00;
8012e1a: 2300 movs r3, #0
8012e1c: 617b str r3, [r7, #20]
uint32_t iocurrent = 0x00;
8012e1e: 2300 movs r3, #0
8012e20: 613b str r3, [r7, #16]
uint32_t temp = 0x00;
8012e22: 2300 movs r3, #0
8012e24: 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++)
8012e26: 2300 movs r3, #0
8012e28: 61fb str r3, [r7, #28]
8012e2a: e175 b.n 8013118 <HAL_GPIO_Init+0x30c>
{
/* Get the IO position */
ioposition = ((uint32_t)0x01) << position;
8012e2c: 2201 movs r2, #1
8012e2e: 69fb ldr r3, [r7, #28]
8012e30: fa02 f303 lsl.w r3, r2, r3
8012e34: 617b str r3, [r7, #20]
/* Get the current IO position */
iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition;
8012e36: 683b ldr r3, [r7, #0]
8012e38: 681a ldr r2, [r3, #0]
8012e3a: 697b ldr r3, [r7, #20]
8012e3c: 4013 ands r3, r2
8012e3e: 613b str r3, [r7, #16]
if(iocurrent == ioposition)
8012e40: 693a ldr r2, [r7, #16]
8012e42: 697b ldr r3, [r7, #20]
8012e44: 429a cmp r2, r3
8012e46: f040 8164 bne.w 8013112 <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))
8012e4a: 683b ldr r3, [r7, #0]
8012e4c: 685b ldr r3, [r3, #4]
8012e4e: f003 0303 and.w r3, r3, #3
8012e52: 2b01 cmp r3, #1
8012e54: d005 beq.n 8012e62 <HAL_GPIO_Init+0x56>
8012e56: 683b ldr r3, [r7, #0]
8012e58: 685b ldr r3, [r3, #4]
8012e5a: f003 0303 and.w r3, r3, #3
8012e5e: 2b02 cmp r3, #2
8012e60: d130 bne.n 8012ec4 <HAL_GPIO_Init+0xb8>
{
/* Check the Speed parameter */
assert_param(IS_GPIO_SPEED(GPIO_Init->Speed));
/* Configure the IO Speed */
temp = GPIOx->OSPEEDR;
8012e62: 687b ldr r3, [r7, #4]
8012e64: 689b ldr r3, [r3, #8]
8012e66: 61bb str r3, [r7, #24]
temp &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2));
8012e68: 69fb ldr r3, [r7, #28]
8012e6a: 005b lsls r3, r3, #1
8012e6c: 2203 movs r2, #3
8012e6e: fa02 f303 lsl.w r3, r2, r3
8012e72: 43db mvns r3, r3
8012e74: 69ba ldr r2, [r7, #24]
8012e76: 4013 ands r3, r2
8012e78: 61bb str r3, [r7, #24]
temp |= (GPIO_Init->Speed << (position * 2));
8012e7a: 683b ldr r3, [r7, #0]
8012e7c: 68da ldr r2, [r3, #12]
8012e7e: 69fb ldr r3, [r7, #28]
8012e80: 005b lsls r3, r3, #1
8012e82: fa02 f303 lsl.w r3, r2, r3
8012e86: 69ba ldr r2, [r7, #24]
8012e88: 4313 orrs r3, r2
8012e8a: 61bb str r3, [r7, #24]
GPIOx->OSPEEDR = temp;
8012e8c: 687b ldr r3, [r7, #4]
8012e8e: 69ba ldr r2, [r7, #24]
8012e90: 609a str r2, [r3, #8]
/* Configure the IO Output Type */
temp = GPIOx->OTYPER;
8012e92: 687b ldr r3, [r7, #4]
8012e94: 685b ldr r3, [r3, #4]
8012e96: 61bb str r3, [r7, #24]
temp &= ~(GPIO_OTYPER_OT_0 << position) ;
8012e98: 2201 movs r2, #1
8012e9a: 69fb ldr r3, [r7, #28]
8012e9c: fa02 f303 lsl.w r3, r2, r3
8012ea0: 43db mvns r3, r3
8012ea2: 69ba ldr r2, [r7, #24]
8012ea4: 4013 ands r3, r2
8012ea6: 61bb str r3, [r7, #24]
temp |= (((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position);
8012ea8: 683b ldr r3, [r7, #0]
8012eaa: 685b ldr r3, [r3, #4]
8012eac: 091b lsrs r3, r3, #4
8012eae: f003 0201 and.w r2, r3, #1
8012eb2: 69fb ldr r3, [r7, #28]
8012eb4: fa02 f303 lsl.w r3, r2, r3
8012eb8: 69ba ldr r2, [r7, #24]
8012eba: 4313 orrs r3, r2
8012ebc: 61bb str r3, [r7, #24]
GPIOx->OTYPER = temp;
8012ebe: 687b ldr r3, [r7, #4]
8012ec0: 69ba ldr r2, [r7, #24]
8012ec2: 605a str r2, [r3, #4]
}
if((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG)
8012ec4: 683b ldr r3, [r7, #0]
8012ec6: 685b ldr r3, [r3, #4]
8012ec8: f003 0303 and.w r3, r3, #3
8012ecc: 2b03 cmp r3, #3
8012ece: d017 beq.n 8012f00 <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;
8012ed0: 687b ldr r3, [r7, #4]
8012ed2: 68db ldr r3, [r3, #12]
8012ed4: 61bb str r3, [r7, #24]
temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2));
8012ed6: 69fb ldr r3, [r7, #28]
8012ed8: 005b lsls r3, r3, #1
8012eda: 2203 movs r2, #3
8012edc: fa02 f303 lsl.w r3, r2, r3
8012ee0: 43db mvns r3, r3
8012ee2: 69ba ldr r2, [r7, #24]
8012ee4: 4013 ands r3, r2
8012ee6: 61bb str r3, [r7, #24]
temp |= ((GPIO_Init->Pull) << (position * 2));
8012ee8: 683b ldr r3, [r7, #0]
8012eea: 689a ldr r2, [r3, #8]
8012eec: 69fb ldr r3, [r7, #28]
8012eee: 005b lsls r3, r3, #1
8012ef0: fa02 f303 lsl.w r3, r2, r3
8012ef4: 69ba ldr r2, [r7, #24]
8012ef6: 4313 orrs r3, r2
8012ef8: 61bb str r3, [r7, #24]
GPIOx->PUPDR = temp;
8012efa: 687b ldr r3, [r7, #4]
8012efc: 69ba ldr r2, [r7, #24]
8012efe: 60da str r2, [r3, #12]
}
/* In case of Alternate function mode selection */
if((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)
8012f00: 683b ldr r3, [r7, #0]
8012f02: 685b ldr r3, [r3, #4]
8012f04: f003 0303 and.w r3, r3, #3
8012f08: 2b02 cmp r3, #2
8012f0a: d123 bne.n 8012f54 <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];
8012f0c: 69fb ldr r3, [r7, #28]
8012f0e: 08da lsrs r2, r3, #3
8012f10: 687b ldr r3, [r7, #4]
8012f12: 3208 adds r2, #8
8012f14: f853 3022 ldr.w r3, [r3, r2, lsl #2]
8012f18: 61bb str r3, [r7, #24]
temp &= ~((uint32_t)0xF << ((uint32_t)(position & (uint32_t)0x07) * 4)) ;
8012f1a: 69fb ldr r3, [r7, #28]
8012f1c: f003 0307 and.w r3, r3, #7
8012f20: 009b lsls r3, r3, #2
8012f22: 220f movs r2, #15
8012f24: fa02 f303 lsl.w r3, r2, r3
8012f28: 43db mvns r3, r3
8012f2a: 69ba ldr r2, [r7, #24]
8012f2c: 4013 ands r3, r2
8012f2e: 61bb str r3, [r7, #24]
temp |= ((uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & (uint32_t)0x07) * 4));
8012f30: 683b ldr r3, [r7, #0]
8012f32: 691a ldr r2, [r3, #16]
8012f34: 69fb ldr r3, [r7, #28]
8012f36: f003 0307 and.w r3, r3, #7
8012f3a: 009b lsls r3, r3, #2
8012f3c: fa02 f303 lsl.w r3, r2, r3
8012f40: 69ba ldr r2, [r7, #24]
8012f42: 4313 orrs r3, r2
8012f44: 61bb str r3, [r7, #24]
GPIOx->AFR[position >> 3] = temp;
8012f46: 69fb ldr r3, [r7, #28]
8012f48: 08da lsrs r2, r3, #3
8012f4a: 687b ldr r3, [r7, #4]
8012f4c: 3208 adds r2, #8
8012f4e: 69b9 ldr r1, [r7, #24]
8012f50: f843 1022 str.w r1, [r3, r2, lsl #2]
}
/* Configure IO Direction mode (Input, Output, Alternate or Analog) */
temp = GPIOx->MODER;
8012f54: 687b ldr r3, [r7, #4]
8012f56: 681b ldr r3, [r3, #0]
8012f58: 61bb str r3, [r7, #24]
temp &= ~(GPIO_MODER_MODER0 << (position * 2));
8012f5a: 69fb ldr r3, [r7, #28]
8012f5c: 005b lsls r3, r3, #1
8012f5e: 2203 movs r2, #3
8012f60: fa02 f303 lsl.w r3, r2, r3
8012f64: 43db mvns r3, r3
8012f66: 69ba ldr r2, [r7, #24]
8012f68: 4013 ands r3, r2
8012f6a: 61bb str r3, [r7, #24]
temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2));
8012f6c: 683b ldr r3, [r7, #0]
8012f6e: 685b ldr r3, [r3, #4]
8012f70: f003 0203 and.w r2, r3, #3
8012f74: 69fb ldr r3, [r7, #28]
8012f76: 005b lsls r3, r3, #1
8012f78: fa02 f303 lsl.w r3, r2, r3
8012f7c: 69ba ldr r2, [r7, #24]
8012f7e: 4313 orrs r3, r2
8012f80: 61bb str r3, [r7, #24]
GPIOx->MODER = temp;
8012f82: 687b ldr r3, [r7, #4]
8012f84: 69ba ldr r2, [r7, #24]
8012f86: 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)
8012f88: 683b ldr r3, [r7, #0]
8012f8a: 685b ldr r3, [r3, #4]
8012f8c: f403 3340 and.w r3, r3, #196608 ; 0x30000
8012f90: 2b00 cmp r3, #0
8012f92: f000 80be beq.w 8013112 <HAL_GPIO_Init+0x306>
{
/* Enable SYSCFG Clock */
__HAL_RCC_SYSCFG_CLK_ENABLE();
8012f96: 4a65 ldr r2, [pc, #404] ; (801312c <HAL_GPIO_Init+0x320>)
8012f98: 4b64 ldr r3, [pc, #400] ; (801312c <HAL_GPIO_Init+0x320>)
8012f9a: 6c5b ldr r3, [r3, #68] ; 0x44
8012f9c: f443 4380 orr.w r3, r3, #16384 ; 0x4000
8012fa0: 6453 str r3, [r2, #68] ; 0x44
8012fa2: 4b62 ldr r3, [pc, #392] ; (801312c <HAL_GPIO_Init+0x320>)
8012fa4: 6c5b ldr r3, [r3, #68] ; 0x44
8012fa6: f403 4380 and.w r3, r3, #16384 ; 0x4000
8012faa: 60fb str r3, [r7, #12]
8012fac: 68fb ldr r3, [r7, #12]
temp = SYSCFG->EXTICR[position >> 2];
8012fae: 4a60 ldr r2, [pc, #384] ; (8013130 <HAL_GPIO_Init+0x324>)
8012fb0: 69fb ldr r3, [r7, #28]
8012fb2: 089b lsrs r3, r3, #2
8012fb4: 3302 adds r3, #2
8012fb6: f852 3023 ldr.w r3, [r2, r3, lsl #2]
8012fba: 61bb str r3, [r7, #24]
temp &= ~(((uint32_t)0x0F) << (4 * (position & 0x03)));
8012fbc: 69fb ldr r3, [r7, #28]
8012fbe: f003 0303 and.w r3, r3, #3
8012fc2: 009b lsls r3, r3, #2
8012fc4: 220f movs r2, #15
8012fc6: fa02 f303 lsl.w r3, r2, r3
8012fca: 43db mvns r3, r3
8012fcc: 69ba ldr r2, [r7, #24]
8012fce: 4013 ands r3, r2
8012fd0: 61bb str r3, [r7, #24]
temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4 * (position & 0x03)));
8012fd2: 687b ldr r3, [r7, #4]
8012fd4: 4a57 ldr r2, [pc, #348] ; (8013134 <HAL_GPIO_Init+0x328>)
8012fd6: 4293 cmp r3, r2
8012fd8: d037 beq.n 801304a <HAL_GPIO_Init+0x23e>
8012fda: 687b ldr r3, [r7, #4]
8012fdc: 4a56 ldr r2, [pc, #344] ; (8013138 <HAL_GPIO_Init+0x32c>)
8012fde: 4293 cmp r3, r2
8012fe0: d031 beq.n 8013046 <HAL_GPIO_Init+0x23a>
8012fe2: 687b ldr r3, [r7, #4]
8012fe4: 4a55 ldr r2, [pc, #340] ; (801313c <HAL_GPIO_Init+0x330>)
8012fe6: 4293 cmp r3, r2
8012fe8: d02b beq.n 8013042 <HAL_GPIO_Init+0x236>
8012fea: 687b ldr r3, [r7, #4]
8012fec: 4a54 ldr r2, [pc, #336] ; (8013140 <HAL_GPIO_Init+0x334>)
8012fee: 4293 cmp r3, r2
8012ff0: d025 beq.n 801303e <HAL_GPIO_Init+0x232>
8012ff2: 687b ldr r3, [r7, #4]
8012ff4: 4a53 ldr r2, [pc, #332] ; (8013144 <HAL_GPIO_Init+0x338>)
8012ff6: 4293 cmp r3, r2
8012ff8: d01f beq.n 801303a <HAL_GPIO_Init+0x22e>
8012ffa: 687b ldr r3, [r7, #4]
8012ffc: 4a52 ldr r2, [pc, #328] ; (8013148 <HAL_GPIO_Init+0x33c>)
8012ffe: 4293 cmp r3, r2
8013000: d019 beq.n 8013036 <HAL_GPIO_Init+0x22a>
8013002: 687b ldr r3, [r7, #4]
8013004: 4a51 ldr r2, [pc, #324] ; (801314c <HAL_GPIO_Init+0x340>)
8013006: 4293 cmp r3, r2
8013008: d013 beq.n 8013032 <HAL_GPIO_Init+0x226>
801300a: 687b ldr r3, [r7, #4]
801300c: 4a50 ldr r2, [pc, #320] ; (8013150 <HAL_GPIO_Init+0x344>)
801300e: 4293 cmp r3, r2
8013010: d00d beq.n 801302e <HAL_GPIO_Init+0x222>
8013012: 687b ldr r3, [r7, #4]
8013014: 4a4f ldr r2, [pc, #316] ; (8013154 <HAL_GPIO_Init+0x348>)
8013016: 4293 cmp r3, r2
8013018: d007 beq.n 801302a <HAL_GPIO_Init+0x21e>
801301a: 687b ldr r3, [r7, #4]
801301c: 4a4e ldr r2, [pc, #312] ; (8013158 <HAL_GPIO_Init+0x34c>)
801301e: 4293 cmp r3, r2
8013020: d101 bne.n 8013026 <HAL_GPIO_Init+0x21a>
8013022: 2309 movs r3, #9
8013024: e012 b.n 801304c <HAL_GPIO_Init+0x240>
8013026: 230a movs r3, #10
8013028: e010 b.n 801304c <HAL_GPIO_Init+0x240>
801302a: 2308 movs r3, #8
801302c: e00e b.n 801304c <HAL_GPIO_Init+0x240>
801302e: 2307 movs r3, #7
8013030: e00c b.n 801304c <HAL_GPIO_Init+0x240>
8013032: 2306 movs r3, #6
8013034: e00a b.n 801304c <HAL_GPIO_Init+0x240>
8013036: 2305 movs r3, #5
8013038: e008 b.n 801304c <HAL_GPIO_Init+0x240>
801303a: 2304 movs r3, #4
801303c: e006 b.n 801304c <HAL_GPIO_Init+0x240>
801303e: 2303 movs r3, #3
8013040: e004 b.n 801304c <HAL_GPIO_Init+0x240>
8013042: 2302 movs r3, #2
8013044: e002 b.n 801304c <HAL_GPIO_Init+0x240>
8013046: 2301 movs r3, #1
8013048: e000 b.n 801304c <HAL_GPIO_Init+0x240>
801304a: 2300 movs r3, #0
801304c: 69fa ldr r2, [r7, #28]
801304e: f002 0203 and.w r2, r2, #3
8013052: 0092 lsls r2, r2, #2
8013054: 4093 lsls r3, r2
8013056: 69ba ldr r2, [r7, #24]
8013058: 4313 orrs r3, r2
801305a: 61bb str r3, [r7, #24]
SYSCFG->EXTICR[position >> 2] = temp;
801305c: 4934 ldr r1, [pc, #208] ; (8013130 <HAL_GPIO_Init+0x324>)
801305e: 69fb ldr r3, [r7, #28]
8013060: 089b lsrs r3, r3, #2
8013062: 3302 adds r3, #2
8013064: 69ba ldr r2, [r7, #24]
8013066: f841 2023 str.w r2, [r1, r3, lsl #2]
/* Clear Rising Falling edge configuration */
temp = EXTI->RTSR;
801306a: 4b3c ldr r3, [pc, #240] ; (801315c <HAL_GPIO_Init+0x350>)
801306c: 689b ldr r3, [r3, #8]
801306e: 61bb str r3, [r7, #24]
temp &= ~((uint32_t)iocurrent);
8013070: 693b ldr r3, [r7, #16]
8013072: 43db mvns r3, r3
8013074: 69ba ldr r2, [r7, #24]
8013076: 4013 ands r3, r2
8013078: 61bb str r3, [r7, #24]
if((GPIO_Init->Mode & TRIGGER_RISING) != 0x00u)
801307a: 683b ldr r3, [r7, #0]
801307c: 685b ldr r3, [r3, #4]
801307e: f403 1380 and.w r3, r3, #1048576 ; 0x100000
8013082: 2b00 cmp r3, #0
8013084: d003 beq.n 801308e <HAL_GPIO_Init+0x282>
{
temp |= iocurrent;
8013086: 69ba ldr r2, [r7, #24]
8013088: 693b ldr r3, [r7, #16]
801308a: 4313 orrs r3, r2
801308c: 61bb str r3, [r7, #24]
}
EXTI->RTSR = temp;
801308e: 4a33 ldr r2, [pc, #204] ; (801315c <HAL_GPIO_Init+0x350>)
8013090: 69bb ldr r3, [r7, #24]
8013092: 6093 str r3, [r2, #8]
temp = EXTI->FTSR;
8013094: 4b31 ldr r3, [pc, #196] ; (801315c <HAL_GPIO_Init+0x350>)
8013096: 68db ldr r3, [r3, #12]
8013098: 61bb str r3, [r7, #24]
temp &= ~((uint32_t)iocurrent);
801309a: 693b ldr r3, [r7, #16]
801309c: 43db mvns r3, r3
801309e: 69ba ldr r2, [r7, #24]
80130a0: 4013 ands r3, r2
80130a2: 61bb str r3, [r7, #24]
if((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00u)
80130a4: 683b ldr r3, [r7, #0]
80130a6: 685b ldr r3, [r3, #4]
80130a8: f403 1300 and.w r3, r3, #2097152 ; 0x200000
80130ac: 2b00 cmp r3, #0
80130ae: d003 beq.n 80130b8 <HAL_GPIO_Init+0x2ac>
{
temp |= iocurrent;
80130b0: 69ba ldr r2, [r7, #24]
80130b2: 693b ldr r3, [r7, #16]
80130b4: 4313 orrs r3, r2
80130b6: 61bb str r3, [r7, #24]
}
EXTI->FTSR = temp;
80130b8: 4a28 ldr r2, [pc, #160] ; (801315c <HAL_GPIO_Init+0x350>)
80130ba: 69bb ldr r3, [r7, #24]
80130bc: 60d3 str r3, [r2, #12]
temp = EXTI->EMR;
80130be: 4b27 ldr r3, [pc, #156] ; (801315c <HAL_GPIO_Init+0x350>)
80130c0: 685b ldr r3, [r3, #4]
80130c2: 61bb str r3, [r7, #24]
temp &= ~((uint32_t)iocurrent);
80130c4: 693b ldr r3, [r7, #16]
80130c6: 43db mvns r3, r3
80130c8: 69ba ldr r2, [r7, #24]
80130ca: 4013 ands r3, r2
80130cc: 61bb str r3, [r7, #24]
if((GPIO_Init->Mode & EXTI_EVT) != 0x00u)
80130ce: 683b ldr r3, [r7, #0]
80130d0: 685b ldr r3, [r3, #4]
80130d2: f403 3300 and.w r3, r3, #131072 ; 0x20000
80130d6: 2b00 cmp r3, #0
80130d8: d003 beq.n 80130e2 <HAL_GPIO_Init+0x2d6>
{
temp |= iocurrent;
80130da: 69ba ldr r2, [r7, #24]
80130dc: 693b ldr r3, [r7, #16]
80130de: 4313 orrs r3, r2
80130e0: 61bb str r3, [r7, #24]
}
EXTI->EMR = temp;
80130e2: 4a1e ldr r2, [pc, #120] ; (801315c <HAL_GPIO_Init+0x350>)
80130e4: 69bb ldr r3, [r7, #24]
80130e6: 6053 str r3, [r2, #4]
/* Clear EXTI line configuration */
temp = EXTI->IMR;
80130e8: 4b1c ldr r3, [pc, #112] ; (801315c <HAL_GPIO_Init+0x350>)
80130ea: 681b ldr r3, [r3, #0]
80130ec: 61bb str r3, [r7, #24]
temp &= ~((uint32_t)iocurrent);
80130ee: 693b ldr r3, [r7, #16]
80130f0: 43db mvns r3, r3
80130f2: 69ba ldr r2, [r7, #24]
80130f4: 4013 ands r3, r2
80130f6: 61bb str r3, [r7, #24]
if((GPIO_Init->Mode & EXTI_IT) != 0x00u)
80130f8: 683b ldr r3, [r7, #0]
80130fa: 685b ldr r3, [r3, #4]
80130fc: f403 3380 and.w r3, r3, #65536 ; 0x10000
8013100: 2b00 cmp r3, #0
8013102: d003 beq.n 801310c <HAL_GPIO_Init+0x300>
{
temp |= iocurrent;
8013104: 69ba ldr r2, [r7, #24]
8013106: 693b ldr r3, [r7, #16]
8013108: 4313 orrs r3, r2
801310a: 61bb str r3, [r7, #24]
}
EXTI->IMR = temp;
801310c: 4a13 ldr r2, [pc, #76] ; (801315c <HAL_GPIO_Init+0x350>)
801310e: 69bb ldr r3, [r7, #24]
8013110: 6013 str r3, [r2, #0]
for(position = 0; position < GPIO_NUMBER; position++)
8013112: 69fb ldr r3, [r7, #28]
8013114: 3301 adds r3, #1
8013116: 61fb str r3, [r7, #28]
8013118: 69fb ldr r3, [r7, #28]
801311a: 2b0f cmp r3, #15
801311c: f67f ae86 bls.w 8012e2c <HAL_GPIO_Init+0x20>
}
}
}
}
8013120: bf00 nop
8013122: 3724 adds r7, #36 ; 0x24
8013124: 46bd mov sp, r7
8013126: f85d 7b04 ldr.w r7, [sp], #4
801312a: 4770 bx lr
801312c: 40023800 .word 0x40023800
8013130: 40013800 .word 0x40013800
8013134: 40020000 .word 0x40020000
8013138: 40020400 .word 0x40020400
801313c: 40020800 .word 0x40020800
8013140: 40020c00 .word 0x40020c00
8013144: 40021000 .word 0x40021000
8013148: 40021400 .word 0x40021400
801314c: 40021800 .word 0x40021800
8013150: 40021c00 .word 0x40021c00
8013154: 40022000 .word 0x40022000
8013158: 40022400 .word 0x40022400
801315c: 40013c00 .word 0x40013c00
08013160 <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)
{
8013160: b480 push {r7}
8013162: b085 sub sp, #20
8013164: af00 add r7, sp, #0
8013166: 6078 str r0, [r7, #4]
8013168: 460b mov r3, r1
801316a: 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)
801316c: 687b ldr r3, [r7, #4]
801316e: 691a ldr r2, [r3, #16]
8013170: 887b ldrh r3, [r7, #2]
8013172: 4013 ands r3, r2
8013174: 2b00 cmp r3, #0
8013176: d002 beq.n 801317e <HAL_GPIO_ReadPin+0x1e>
{
bitstatus = GPIO_PIN_SET;
8013178: 2301 movs r3, #1
801317a: 73fb strb r3, [r7, #15]
801317c: e001 b.n 8013182 <HAL_GPIO_ReadPin+0x22>
}
else
{
bitstatus = GPIO_PIN_RESET;
801317e: 2300 movs r3, #0
8013180: 73fb strb r3, [r7, #15]
}
return bitstatus;
8013182: 7bfb ldrb r3, [r7, #15]
}
8013184: 4618 mov r0, r3
8013186: 3714 adds r7, #20
8013188: 46bd mov sp, r7
801318a: f85d 7b04 ldr.w r7, [sp], #4
801318e: 4770 bx lr
08013190 <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)
{
8013190: b480 push {r7}
8013192: b083 sub sp, #12
8013194: af00 add r7, sp, #0
8013196: 6078 str r0, [r7, #4]
8013198: 460b mov r3, r1
801319a: 807b strh r3, [r7, #2]
801319c: 4613 mov r3, r2
801319e: 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)
80131a0: 787b ldrb r3, [r7, #1]
80131a2: 2b00 cmp r3, #0
80131a4: d003 beq.n 80131ae <HAL_GPIO_WritePin+0x1e>
{
GPIOx->BSRR = GPIO_Pin;
80131a6: 887a ldrh r2, [r7, #2]
80131a8: 687b ldr r3, [r7, #4]
80131aa: 619a str r2, [r3, #24]
}
else
{
GPIOx->BSRR = (uint32_t)GPIO_Pin << 16;
}
}
80131ac: e003 b.n 80131b6 <HAL_GPIO_WritePin+0x26>
GPIOx->BSRR = (uint32_t)GPIO_Pin << 16;
80131ae: 887b ldrh r3, [r7, #2]
80131b0: 041a lsls r2, r3, #16
80131b2: 687b ldr r3, [r7, #4]
80131b4: 619a str r2, [r3, #24]
}
80131b6: bf00 nop
80131b8: 370c adds r7, #12
80131ba: 46bd mov sp, r7
80131bc: f85d 7b04 ldr.w r7, [sp], #4
80131c0: 4770 bx lr
...
080131c4 <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)
{
80131c4: b580 push {r7, lr}
80131c6: b082 sub sp, #8
80131c8: af00 add r7, sp, #0
80131ca: 4603 mov r3, r0
80131cc: 80fb strh r3, [r7, #6]
/* EXTI line interrupt detected */
if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET)
80131ce: 4b08 ldr r3, [pc, #32] ; (80131f0 <HAL_GPIO_EXTI_IRQHandler+0x2c>)
80131d0: 695a ldr r2, [r3, #20]
80131d2: 88fb ldrh r3, [r7, #6]
80131d4: 4013 ands r3, r2
80131d6: 2b00 cmp r3, #0
80131d8: d006 beq.n 80131e8 <HAL_GPIO_EXTI_IRQHandler+0x24>
{
__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
80131da: 4a05 ldr r2, [pc, #20] ; (80131f0 <HAL_GPIO_EXTI_IRQHandler+0x2c>)
80131dc: 88fb ldrh r3, [r7, #6]
80131de: 6153 str r3, [r2, #20]
HAL_GPIO_EXTI_Callback(GPIO_Pin);
80131e0: 88fb ldrh r3, [r7, #6]
80131e2: 4618 mov r0, r3
80131e4: f7f2 ffe4 bl 80061b0 <HAL_GPIO_EXTI_Callback>
}
}
80131e8: bf00 nop
80131ea: 3708 adds r7, #8
80131ec: 46bd mov sp, r7
80131ee: bd80 pop {r7, pc}
80131f0: 40013c00 .word 0x40013c00
080131f4 <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)
{
80131f4: b580 push {r7, lr}
80131f6: b084 sub sp, #16
80131f8: af00 add r7, sp, #0
80131fa: 6078 str r0, [r7, #4]
uint32_t tmp, tmp1;
/* Check the LTDC peripheral state */
if (hltdc == NULL)
80131fc: 687b ldr r3, [r7, #4]
80131fe: 2b00 cmp r3, #0
8013200: d101 bne.n 8013206 <HAL_LTDC_Init+0x12>
{
return HAL_ERROR;
8013202: 2301 movs r3, #1
8013204: e0bf b.n 8013386 <HAL_LTDC_Init+0x192>
}
/* Init the low level hardware */
hltdc->MspInitCallback(hltdc);
}
#else
if (hltdc->State == HAL_LTDC_STATE_RESET)
8013206: 687b ldr r3, [r7, #4]
8013208: f893 30a1 ldrb.w r3, [r3, #161] ; 0xa1
801320c: b2db uxtb r3, r3
801320e: 2b00 cmp r3, #0
8013210: d106 bne.n 8013220 <HAL_LTDC_Init+0x2c>
{
/* Allocate lock resource and initialize it */
hltdc->Lock = HAL_UNLOCKED;
8013212: 687b ldr r3, [r7, #4]
8013214: 2200 movs r2, #0
8013216: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
/* Init the low level hardware */
HAL_LTDC_MspInit(hltdc);
801321a: 6878 ldr r0, [r7, #4]
801321c: f7f1 fde4 bl 8004de8 <HAL_LTDC_MspInit>
}
#endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
/* Change LTDC peripheral state */
hltdc->State = HAL_LTDC_STATE_BUSY;
8013220: 687b ldr r3, [r7, #4]
8013222: 2202 movs r2, #2
8013224: 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);
8013228: 687b ldr r3, [r7, #4]
801322a: 681b ldr r3, [r3, #0]
801322c: 687a ldr r2, [r7, #4]
801322e: 6812 ldr r2, [r2, #0]
8013230: 6992 ldr r2, [r2, #24]
8013232: f022 4270 bic.w r2, r2, #4026531840 ; 0xf0000000
8013236: 619a str r2, [r3, #24]
hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \
8013238: 687b ldr r3, [r7, #4]
801323a: 681b ldr r3, [r3, #0]
801323c: 687a ldr r2, [r7, #4]
801323e: 6812 ldr r2, [r2, #0]
8013240: 6991 ldr r1, [r2, #24]
8013242: 687a ldr r2, [r7, #4]
8013244: 6850 ldr r0, [r2, #4]
8013246: 687a ldr r2, [r7, #4]
8013248: 6892 ldr r2, [r2, #8]
801324a: 4310 orrs r0, r2
hltdc->Init.DEPolarity | hltdc->Init.PCPolarity);
801324c: 687a ldr r2, [r7, #4]
801324e: 68d2 ldr r2, [r2, #12]
hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \
8013250: 4310 orrs r0, r2
hltdc->Init.DEPolarity | hltdc->Init.PCPolarity);
8013252: 687a ldr r2, [r7, #4]
8013254: 6912 ldr r2, [r2, #16]
8013256: 4302 orrs r2, r0
hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \
8013258: 430a orrs r2, r1
801325a: 619a str r2, [r3, #24]
/* Set Synchronization size */
hltdc->Instance->SSCR &= ~(LTDC_SSCR_VSH | LTDC_SSCR_HSW);
801325c: 687b ldr r3, [r7, #4]
801325e: 681a ldr r2, [r3, #0]
8013260: 687b ldr r3, [r7, #4]
8013262: 681b ldr r3, [r3, #0]
8013264: 6899 ldr r1, [r3, #8]
8013266: 4b4a ldr r3, [pc, #296] ; (8013390 <HAL_LTDC_Init+0x19c>)
8013268: 400b ands r3, r1
801326a: 6093 str r3, [r2, #8]
tmp = (hltdc->Init.HorizontalSync << 16U);
801326c: 687b ldr r3, [r7, #4]
801326e: 695b ldr r3, [r3, #20]
8013270: 041b lsls r3, r3, #16
8013272: 60fb str r3, [r7, #12]
hltdc->Instance->SSCR |= (tmp | hltdc->Init.VerticalSync);
8013274: 687b ldr r3, [r7, #4]
8013276: 681b ldr r3, [r3, #0]
8013278: 687a ldr r2, [r7, #4]
801327a: 6812 ldr r2, [r2, #0]
801327c: 6891 ldr r1, [r2, #8]
801327e: 687a ldr r2, [r7, #4]
8013280: 6990 ldr r0, [r2, #24]
8013282: 68fa ldr r2, [r7, #12]
8013284: 4302 orrs r2, r0
8013286: 430a orrs r2, r1
8013288: 609a str r2, [r3, #8]
/* Set Accumulated Back porch */
hltdc->Instance->BPCR &= ~(LTDC_BPCR_AVBP | LTDC_BPCR_AHBP);
801328a: 687b ldr r3, [r7, #4]
801328c: 681a ldr r2, [r3, #0]
801328e: 687b ldr r3, [r7, #4]
8013290: 681b ldr r3, [r3, #0]
8013292: 68d9 ldr r1, [r3, #12]
8013294: 4b3e ldr r3, [pc, #248] ; (8013390 <HAL_LTDC_Init+0x19c>)
8013296: 400b ands r3, r1
8013298: 60d3 str r3, [r2, #12]
tmp = (hltdc->Init.AccumulatedHBP << 16U);
801329a: 687b ldr r3, [r7, #4]
801329c: 69db ldr r3, [r3, #28]
801329e: 041b lsls r3, r3, #16
80132a0: 60fb str r3, [r7, #12]
hltdc->Instance->BPCR |= (tmp | hltdc->Init.AccumulatedVBP);
80132a2: 687b ldr r3, [r7, #4]
80132a4: 681b ldr r3, [r3, #0]
80132a6: 687a ldr r2, [r7, #4]
80132a8: 6812 ldr r2, [r2, #0]
80132aa: 68d1 ldr r1, [r2, #12]
80132ac: 687a ldr r2, [r7, #4]
80132ae: 6a10 ldr r0, [r2, #32]
80132b0: 68fa ldr r2, [r7, #12]
80132b2: 4302 orrs r2, r0
80132b4: 430a orrs r2, r1
80132b6: 60da str r2, [r3, #12]
/* Set Accumulated Active Width */
hltdc->Instance->AWCR &= ~(LTDC_AWCR_AAH | LTDC_AWCR_AAW);
80132b8: 687b ldr r3, [r7, #4]
80132ba: 681a ldr r2, [r3, #0]
80132bc: 687b ldr r3, [r7, #4]
80132be: 681b ldr r3, [r3, #0]
80132c0: 6919 ldr r1, [r3, #16]
80132c2: 4b33 ldr r3, [pc, #204] ; (8013390 <HAL_LTDC_Init+0x19c>)
80132c4: 400b ands r3, r1
80132c6: 6113 str r3, [r2, #16]
tmp = (hltdc->Init.AccumulatedActiveW << 16U);
80132c8: 687b ldr r3, [r7, #4]
80132ca: 6a5b ldr r3, [r3, #36] ; 0x24
80132cc: 041b lsls r3, r3, #16
80132ce: 60fb str r3, [r7, #12]
hltdc->Instance->AWCR |= (tmp | hltdc->Init.AccumulatedActiveH);
80132d0: 687b ldr r3, [r7, #4]
80132d2: 681b ldr r3, [r3, #0]
80132d4: 687a ldr r2, [r7, #4]
80132d6: 6812 ldr r2, [r2, #0]
80132d8: 6911 ldr r1, [r2, #16]
80132da: 687a ldr r2, [r7, #4]
80132dc: 6a90 ldr r0, [r2, #40] ; 0x28
80132de: 68fa ldr r2, [r7, #12]
80132e0: 4302 orrs r2, r0
80132e2: 430a orrs r2, r1
80132e4: 611a str r2, [r3, #16]
/* Set Total Width */
hltdc->Instance->TWCR &= ~(LTDC_TWCR_TOTALH | LTDC_TWCR_TOTALW);
80132e6: 687b ldr r3, [r7, #4]
80132e8: 681a ldr r2, [r3, #0]
80132ea: 687b ldr r3, [r7, #4]
80132ec: 681b ldr r3, [r3, #0]
80132ee: 6959 ldr r1, [r3, #20]
80132f0: 4b27 ldr r3, [pc, #156] ; (8013390 <HAL_LTDC_Init+0x19c>)
80132f2: 400b ands r3, r1
80132f4: 6153 str r3, [r2, #20]
tmp = (hltdc->Init.TotalWidth << 16U);
80132f6: 687b ldr r3, [r7, #4]
80132f8: 6adb ldr r3, [r3, #44] ; 0x2c
80132fa: 041b lsls r3, r3, #16
80132fc: 60fb str r3, [r7, #12]
hltdc->Instance->TWCR |= (tmp | hltdc->Init.TotalHeigh);
80132fe: 687b ldr r3, [r7, #4]
8013300: 681b ldr r3, [r3, #0]
8013302: 687a ldr r2, [r7, #4]
8013304: 6812 ldr r2, [r2, #0]
8013306: 6951 ldr r1, [r2, #20]
8013308: 687a ldr r2, [r7, #4]
801330a: 6b10 ldr r0, [r2, #48] ; 0x30
801330c: 68fa ldr r2, [r7, #12]
801330e: 4302 orrs r2, r0
8013310: 430a orrs r2, r1
8013312: 615a str r2, [r3, #20]
/* Set the background color value */
tmp = ((uint32_t)(hltdc->Init.Backcolor.Green) << 8U);
8013314: 687b ldr r3, [r7, #4]
8013316: f893 3035 ldrb.w r3, [r3, #53] ; 0x35
801331a: 021b lsls r3, r3, #8
801331c: 60fb str r3, [r7, #12]
tmp1 = ((uint32_t)(hltdc->Init.Backcolor.Red) << 16U);
801331e: 687b ldr r3, [r7, #4]
8013320: f893 3036 ldrb.w r3, [r3, #54] ; 0x36
8013324: 041b lsls r3, r3, #16
8013326: 60bb str r3, [r7, #8]
hltdc->Instance->BCCR &= ~(LTDC_BCCR_BCBLUE | LTDC_BCCR_BCGREEN | LTDC_BCCR_BCRED);
8013328: 687b ldr r3, [r7, #4]
801332a: 681b ldr r3, [r3, #0]
801332c: 687a ldr r2, [r7, #4]
801332e: 6812 ldr r2, [r2, #0]
8013330: 6ad2 ldr r2, [r2, #44] ; 0x2c
8013332: f002 427f and.w r2, r2, #4278190080 ; 0xff000000
8013336: 62da str r2, [r3, #44] ; 0x2c
hltdc->Instance->BCCR |= (tmp1 | tmp | hltdc->Init.Backcolor.Blue);
8013338: 687b ldr r3, [r7, #4]
801333a: 681b ldr r3, [r3, #0]
801333c: 687a ldr r2, [r7, #4]
801333e: 6812 ldr r2, [r2, #0]
8013340: 6ad1 ldr r1, [r2, #44] ; 0x2c
8013342: 68b8 ldr r0, [r7, #8]
8013344: 68fa ldr r2, [r7, #12]
8013346: 4302 orrs r2, r0
8013348: 6878 ldr r0, [r7, #4]
801334a: f890 0034 ldrb.w r0, [r0, #52] ; 0x34
801334e: 4302 orrs r2, r0
8013350: 430a orrs r2, r1
8013352: 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);
8013354: 687b ldr r3, [r7, #4]
8013356: 681b ldr r3, [r3, #0]
8013358: 687a ldr r2, [r7, #4]
801335a: 6812 ldr r2, [r2, #0]
801335c: 6b52 ldr r2, [r2, #52] ; 0x34
801335e: f042 0206 orr.w r2, r2, #6
8013362: 635a str r2, [r3, #52] ; 0x34
/* Enable LTDC by setting LTDCEN bit */
__HAL_LTDC_ENABLE(hltdc);
8013364: 687b ldr r3, [r7, #4]
8013366: 681b ldr r3, [r3, #0]
8013368: 687a ldr r2, [r7, #4]
801336a: 6812 ldr r2, [r2, #0]
801336c: 6992 ldr r2, [r2, #24]
801336e: f042 0201 orr.w r2, r2, #1
8013372: 619a str r2, [r3, #24]
/* Initialize the error code */
hltdc->ErrorCode = HAL_LTDC_ERROR_NONE;
8013374: 687b ldr r3, [r7, #4]
8013376: 2200 movs r2, #0
8013378: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4
/* Initialize the LTDC state*/
hltdc->State = HAL_LTDC_STATE_READY;
801337c: 687b ldr r3, [r7, #4]
801337e: 2201 movs r2, #1
8013380: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
return HAL_OK;
8013384: 2300 movs r3, #0
}
8013386: 4618 mov r0, r3
8013388: 3710 adds r7, #16
801338a: 46bd mov sp, r7
801338c: bd80 pop {r7, pc}
801338e: bf00 nop
8013390: f000f800 .word 0xf000f800
08013394 <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)
{
8013394: b580 push {r7, lr}
8013396: b084 sub sp, #16
8013398: af00 add r7, sp, #0
801339a: 6078 str r0, [r7, #4]
uint32_t isrflags = READ_REG(hltdc->Instance->ISR);
801339c: 687b ldr r3, [r7, #4]
801339e: 681b ldr r3, [r3, #0]
80133a0: 6b9b ldr r3, [r3, #56] ; 0x38
80133a2: 60fb str r3, [r7, #12]
uint32_t itsources = READ_REG(hltdc->Instance->IER);
80133a4: 687b ldr r3, [r7, #4]
80133a6: 681b ldr r3, [r3, #0]
80133a8: 6b5b ldr r3, [r3, #52] ; 0x34
80133aa: 60bb str r3, [r7, #8]
/* Transfer Error Interrupt management ***************************************/
if (((isrflags & LTDC_ISR_TERRIF) != 0U) && ((itsources & LTDC_IER_TERRIE) != 0U))
80133ac: 68fb ldr r3, [r7, #12]
80133ae: f003 0304 and.w r3, r3, #4
80133b2: 2b00 cmp r3, #0
80133b4: d023 beq.n 80133fe <HAL_LTDC_IRQHandler+0x6a>
80133b6: 68bb ldr r3, [r7, #8]
80133b8: f003 0304 and.w r3, r3, #4
80133bc: 2b00 cmp r3, #0
80133be: d01e beq.n 80133fe <HAL_LTDC_IRQHandler+0x6a>
{
/* Disable the transfer Error interrupt */
__HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_TE);
80133c0: 687b ldr r3, [r7, #4]
80133c2: 681b ldr r3, [r3, #0]
80133c4: 687a ldr r2, [r7, #4]
80133c6: 6812 ldr r2, [r2, #0]
80133c8: 6b52 ldr r2, [r2, #52] ; 0x34
80133ca: f022 0204 bic.w r2, r2, #4
80133ce: 635a str r2, [r3, #52] ; 0x34
/* Clear the transfer error flag */
__HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_TE);
80133d0: 687b ldr r3, [r7, #4]
80133d2: 681b ldr r3, [r3, #0]
80133d4: 2204 movs r2, #4
80133d6: 63da str r2, [r3, #60] ; 0x3c
/* Update error code */
hltdc->ErrorCode |= HAL_LTDC_ERROR_TE;
80133d8: 687b ldr r3, [r7, #4]
80133da: f8d3 30a4 ldr.w r3, [r3, #164] ; 0xa4
80133de: f043 0201 orr.w r2, r3, #1
80133e2: 687b ldr r3, [r7, #4]
80133e4: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4
/* Change LTDC state */
hltdc->State = HAL_LTDC_STATE_ERROR;
80133e8: 687b ldr r3, [r7, #4]
80133ea: 2204 movs r2, #4
80133ec: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
80133f0: 687b ldr r3, [r7, #4]
80133f2: 2200 movs r2, #0
80133f4: 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);
80133f8: 6878 ldr r0, [r7, #4]
80133fa: f000 f86f bl 80134dc <HAL_LTDC_ErrorCallback>
#endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
}
/* FIFO underrun Interrupt management ***************************************/
if (((isrflags & LTDC_ISR_FUIF) != 0U) && ((itsources & LTDC_IER_FUIE) != 0U))
80133fe: 68fb ldr r3, [r7, #12]
8013400: f003 0302 and.w r3, r3, #2
8013404: 2b00 cmp r3, #0
8013406: d023 beq.n 8013450 <HAL_LTDC_IRQHandler+0xbc>
8013408: 68bb ldr r3, [r7, #8]
801340a: f003 0302 and.w r3, r3, #2
801340e: 2b00 cmp r3, #0
8013410: d01e beq.n 8013450 <HAL_LTDC_IRQHandler+0xbc>
{
/* Disable the FIFO underrun interrupt */
__HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_FU);
8013412: 687b ldr r3, [r7, #4]
8013414: 681b ldr r3, [r3, #0]
8013416: 687a ldr r2, [r7, #4]
8013418: 6812 ldr r2, [r2, #0]
801341a: 6b52 ldr r2, [r2, #52] ; 0x34
801341c: f022 0202 bic.w r2, r2, #2
8013420: 635a str r2, [r3, #52] ; 0x34
/* Clear the FIFO underrun flag */
__HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_FU);
8013422: 687b ldr r3, [r7, #4]
8013424: 681b ldr r3, [r3, #0]
8013426: 2202 movs r2, #2
8013428: 63da str r2, [r3, #60] ; 0x3c
/* Update error code */
hltdc->ErrorCode |= HAL_LTDC_ERROR_FU;
801342a: 687b ldr r3, [r7, #4]
801342c: f8d3 30a4 ldr.w r3, [r3, #164] ; 0xa4
8013430: f043 0202 orr.w r2, r3, #2
8013434: 687b ldr r3, [r7, #4]
8013436: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4
/* Change LTDC state */
hltdc->State = HAL_LTDC_STATE_ERROR;
801343a: 687b ldr r3, [r7, #4]
801343c: 2204 movs r2, #4
801343e: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
8013442: 687b ldr r3, [r7, #4]
8013444: 2200 movs r2, #0
8013446: 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);
801344a: 6878 ldr r0, [r7, #4]
801344c: f000 f846 bl 80134dc <HAL_LTDC_ErrorCallback>
#endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
}
/* Line Interrupt management ************************************************/
if (((isrflags & LTDC_ISR_LIF) != 0U) && ((itsources & LTDC_IER_LIE) != 0U))
8013450: 68fb ldr r3, [r7, #12]
8013452: f003 0301 and.w r3, r3, #1
8013456: 2b00 cmp r3, #0
8013458: d01b beq.n 8013492 <HAL_LTDC_IRQHandler+0xfe>
801345a: 68bb ldr r3, [r7, #8]
801345c: f003 0301 and.w r3, r3, #1
8013460: 2b00 cmp r3, #0
8013462: d016 beq.n 8013492 <HAL_LTDC_IRQHandler+0xfe>
{
/* Disable the Line interrupt */
__HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_LI);
8013464: 687b ldr r3, [r7, #4]
8013466: 681b ldr r3, [r3, #0]
8013468: 687a ldr r2, [r7, #4]
801346a: 6812 ldr r2, [r2, #0]
801346c: 6b52 ldr r2, [r2, #52] ; 0x34
801346e: f022 0201 bic.w r2, r2, #1
8013472: 635a str r2, [r3, #52] ; 0x34
/* Clear the Line interrupt flag */
__HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_LI);
8013474: 687b ldr r3, [r7, #4]
8013476: 681b ldr r3, [r3, #0]
8013478: 2201 movs r2, #1
801347a: 63da str r2, [r3, #60] ; 0x3c
/* Change LTDC state */
hltdc->State = HAL_LTDC_STATE_READY;
801347c: 687b ldr r3, [r7, #4]
801347e: 2201 movs r2, #1
8013480: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
8013484: 687b ldr r3, [r7, #4]
8013486: 2200 movs r2, #0
8013488: 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);
801348c: 6878 ldr r0, [r7, #4]
801348e: f7f2 fcc5 bl 8005e1c <HAL_LTDC_LineEventCallback>
#endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
}
/* Register reload Interrupt management ***************************************/
if (((isrflags & LTDC_ISR_RRIF) != 0U) && ((itsources & LTDC_IER_RRIE) != 0U))
8013492: 68fb ldr r3, [r7, #12]
8013494: f003 0308 and.w r3, r3, #8
8013498: 2b00 cmp r3, #0
801349a: d01b beq.n 80134d4 <HAL_LTDC_IRQHandler+0x140>
801349c: 68bb ldr r3, [r7, #8]
801349e: f003 0308 and.w r3, r3, #8
80134a2: 2b00 cmp r3, #0
80134a4: d016 beq.n 80134d4 <HAL_LTDC_IRQHandler+0x140>
{
/* Disable the register reload interrupt */
__HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_RR);
80134a6: 687b ldr r3, [r7, #4]
80134a8: 681b ldr r3, [r3, #0]
80134aa: 687a ldr r2, [r7, #4]
80134ac: 6812 ldr r2, [r2, #0]
80134ae: 6b52 ldr r2, [r2, #52] ; 0x34
80134b0: f022 0208 bic.w r2, r2, #8
80134b4: 635a str r2, [r3, #52] ; 0x34
/* Clear the register reload flag */
__HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_RR);
80134b6: 687b ldr r3, [r7, #4]
80134b8: 681b ldr r3, [r3, #0]
80134ba: 2208 movs r2, #8
80134bc: 63da str r2, [r3, #60] ; 0x3c
/* Change LTDC state */
hltdc->State = HAL_LTDC_STATE_READY;
80134be: 687b ldr r3, [r7, #4]
80134c0: 2201 movs r2, #1
80134c2: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
80134c6: 687b ldr r3, [r7, #4]
80134c8: 2200 movs r2, #0
80134ca: 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);
80134ce: 6878 ldr r0, [r7, #4]
80134d0: f000 f80e bl 80134f0 <HAL_LTDC_ReloadEventCallback>
#endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
}
}
80134d4: bf00 nop
80134d6: 3710 adds r7, #16
80134d8: 46bd mov sp, r7
80134da: bd80 pop {r7, pc}
080134dc <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)
{
80134dc: b480 push {r7}
80134de: b083 sub sp, #12
80134e0: af00 add r7, sp, #0
80134e2: 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
*/
}
80134e4: bf00 nop
80134e6: 370c adds r7, #12
80134e8: 46bd mov sp, r7
80134ea: f85d 7b04 ldr.w r7, [sp], #4
80134ee: 4770 bx lr
080134f0 <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)
{
80134f0: b480 push {r7}
80134f2: b083 sub sp, #12
80134f4: af00 add r7, sp, #0
80134f6: 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
*/
}
80134f8: bf00 nop
80134fa: 370c adds r7, #12
80134fc: 46bd mov sp, r7
80134fe: f85d 7b04 ldr.w r7, [sp], #4
8013502: 4770 bx lr
08013504 <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)
{
8013504: b5b0 push {r4, r5, r7, lr}
8013506: b084 sub sp, #16
8013508: af00 add r7, sp, #0
801350a: 60f8 str r0, [r7, #12]
801350c: 60b9 str r1, [r7, #8]
801350e: 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);
8013510: 68fb ldr r3, [r7, #12]
8013512: f893 30a0 ldrb.w r3, [r3, #160] ; 0xa0
8013516: 2b01 cmp r3, #1
8013518: d101 bne.n 801351e <HAL_LTDC_ConfigLayer+0x1a>
801351a: 2302 movs r3, #2
801351c: e02c b.n 8013578 <HAL_LTDC_ConfigLayer+0x74>
801351e: 68fb ldr r3, [r7, #12]
8013520: 2201 movs r2, #1
8013522: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
/* Change LTDC peripheral state */
hltdc->State = HAL_LTDC_STATE_BUSY;
8013526: 68fb ldr r3, [r7, #12]
8013528: 2202 movs r2, #2
801352a: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Copy new layer configuration into handle structure */
hltdc->LayerCfg[LayerIdx] = *pLayerCfg;
801352e: 68fa ldr r2, [r7, #12]
8013530: 687b ldr r3, [r7, #4]
8013532: 2134 movs r1, #52 ; 0x34
8013534: fb01 f303 mul.w r3, r1, r3
8013538: 4413 add r3, r2
801353a: f103 0238 add.w r2, r3, #56 ; 0x38
801353e: 68bb ldr r3, [r7, #8]
8013540: 4614 mov r4, r2
8013542: 461d mov r5, r3
8013544: cd0f ldmia r5!, {r0, r1, r2, r3}
8013546: c40f stmia r4!, {r0, r1, r2, r3}
8013548: cd0f ldmia r5!, {r0, r1, r2, r3}
801354a: c40f stmia r4!, {r0, r1, r2, r3}
801354c: cd0f ldmia r5!, {r0, r1, r2, r3}
801354e: c40f stmia r4!, {r0, r1, r2, r3}
8013550: 682b ldr r3, [r5, #0]
8013552: 6023 str r3, [r4, #0]
/* Configure the LTDC Layer */
LTDC_SetConfig(hltdc, pLayerCfg, LayerIdx);
8013554: 687a ldr r2, [r7, #4]
8013556: 68b9 ldr r1, [r7, #8]
8013558: 68f8 ldr r0, [r7, #12]
801355a: f000 f879 bl 8013650 <LTDC_SetConfig>
/* Set the Immediate Reload type */
hltdc->Instance->SRCR = LTDC_SRCR_IMR;
801355e: 68fb ldr r3, [r7, #12]
8013560: 681b ldr r3, [r3, #0]
8013562: 2201 movs r2, #1
8013564: 625a str r2, [r3, #36] ; 0x24
/* Initialize the LTDC state*/
hltdc->State = HAL_LTDC_STATE_READY;
8013566: 68fb ldr r3, [r7, #12]
8013568: 2201 movs r2, #1
801356a: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
801356e: 68fb ldr r3, [r7, #12]
8013570: 2200 movs r2, #0
8013572: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
return HAL_OK;
8013576: 2300 movs r3, #0
}
8013578: 4618 mov r0, r3
801357a: 3710 adds r7, #16
801357c: 46bd mov sp, r7
801357e: bdb0 pop {r4, r5, r7, pc}
08013580 <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)
{
8013580: b480 push {r7}
8013582: b083 sub sp, #12
8013584: af00 add r7, sp, #0
8013586: 6078 str r0, [r7, #4]
8013588: 6039 str r1, [r7, #0]
/* Check the parameters */
assert_param(IS_LTDC_LIPOS(Line));
/* Process locked */
__HAL_LOCK(hltdc);
801358a: 687b ldr r3, [r7, #4]
801358c: f893 30a0 ldrb.w r3, [r3, #160] ; 0xa0
8013590: 2b01 cmp r3, #1
8013592: d101 bne.n 8013598 <HAL_LTDC_ProgramLineEvent+0x18>
8013594: 2302 movs r3, #2
8013596: e023 b.n 80135e0 <HAL_LTDC_ProgramLineEvent+0x60>
8013598: 687b ldr r3, [r7, #4]
801359a: 2201 movs r2, #1
801359c: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
/* Change LTDC peripheral state */
hltdc->State = HAL_LTDC_STATE_BUSY;
80135a0: 687b ldr r3, [r7, #4]
80135a2: 2202 movs r2, #2
80135a4: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Disable the Line interrupt */
__HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_LI);
80135a8: 687b ldr r3, [r7, #4]
80135aa: 681b ldr r3, [r3, #0]
80135ac: 687a ldr r2, [r7, #4]
80135ae: 6812 ldr r2, [r2, #0]
80135b0: 6b52 ldr r2, [r2, #52] ; 0x34
80135b2: f022 0201 bic.w r2, r2, #1
80135b6: 635a str r2, [r3, #52] ; 0x34
/* Set the Line Interrupt position */
LTDC->LIPCR = (uint32_t)Line;
80135b8: 4a0c ldr r2, [pc, #48] ; (80135ec <HAL_LTDC_ProgramLineEvent+0x6c>)
80135ba: 683b ldr r3, [r7, #0]
80135bc: 6413 str r3, [r2, #64] ; 0x40
/* Enable the Line interrupt */
__HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_LI);
80135be: 687b ldr r3, [r7, #4]
80135c0: 681b ldr r3, [r3, #0]
80135c2: 687a ldr r2, [r7, #4]
80135c4: 6812 ldr r2, [r2, #0]
80135c6: 6b52 ldr r2, [r2, #52] ; 0x34
80135c8: f042 0201 orr.w r2, r2, #1
80135cc: 635a str r2, [r3, #52] ; 0x34
/* Change the LTDC state*/
hltdc->State = HAL_LTDC_STATE_READY;
80135ce: 687b ldr r3, [r7, #4]
80135d0: 2201 movs r2, #1
80135d2: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
80135d6: 687b ldr r3, [r7, #4]
80135d8: 2200 movs r2, #0
80135da: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
return HAL_OK;
80135de: 2300 movs r3, #0
}
80135e0: 4618 mov r0, r3
80135e2: 370c adds r7, #12
80135e4: 46bd mov sp, r7
80135e6: f85d 7b04 ldr.w r7, [sp], #4
80135ea: 4770 bx lr
80135ec: 40016800 .word 0x40016800
080135f0 <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)
{
80135f0: b480 push {r7}
80135f2: b083 sub sp, #12
80135f4: af00 add r7, sp, #0
80135f6: 6078 str r0, [r7, #4]
80135f8: 6039 str r1, [r7, #0]
/* Check the parameters */
assert_param(IS_LTDC_RELOAD(ReloadType));
/* Process locked */
__HAL_LOCK(hltdc);
80135fa: 687b ldr r3, [r7, #4]
80135fc: f893 30a0 ldrb.w r3, [r3, #160] ; 0xa0
8013600: 2b01 cmp r3, #1
8013602: d101 bne.n 8013608 <HAL_LTDC_Reload+0x18>
8013604: 2302 movs r3, #2
8013606: e01c b.n 8013642 <HAL_LTDC_Reload+0x52>
8013608: 687b ldr r3, [r7, #4]
801360a: 2201 movs r2, #1
801360c: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
/* Change LTDC peripheral state */
hltdc->State = HAL_LTDC_STATE_BUSY;
8013610: 687b ldr r3, [r7, #4]
8013612: 2202 movs r2, #2
8013614: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Enable the Reload interrupt */
__HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_RR);
8013618: 687b ldr r3, [r7, #4]
801361a: 681b ldr r3, [r3, #0]
801361c: 687a ldr r2, [r7, #4]
801361e: 6812 ldr r2, [r2, #0]
8013620: 6b52 ldr r2, [r2, #52] ; 0x34
8013622: f042 0208 orr.w r2, r2, #8
8013626: 635a str r2, [r3, #52] ; 0x34
/* Apply Reload type */
hltdc->Instance->SRCR = ReloadType;
8013628: 687b ldr r3, [r7, #4]
801362a: 681b ldr r3, [r3, #0]
801362c: 683a ldr r2, [r7, #0]
801362e: 625a str r2, [r3, #36] ; 0x24
/* Change the LTDC state*/
hltdc->State = HAL_LTDC_STATE_READY;
8013630: 687b ldr r3, [r7, #4]
8013632: 2201 movs r2, #1
8013634: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
8013638: 687b ldr r3, [r7, #4]
801363a: 2200 movs r2, #0
801363c: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
return HAL_OK;
8013640: 2300 movs r3, #0
}
8013642: 4618 mov r0, r3
8013644: 370c adds r7, #12
8013646: 46bd mov sp, r7
8013648: f85d 7b04 ldr.w r7, [sp], #4
801364c: 4770 bx lr
...
08013650 <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)
{
8013650: b480 push {r7}
8013652: b089 sub sp, #36 ; 0x24
8013654: af00 add r7, sp, #0
8013656: 60f8 str r0, [r7, #12]
8013658: 60b9 str r1, [r7, #8]
801365a: 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);
801365c: 68bb ldr r3, [r7, #8]
801365e: 685a ldr r2, [r3, #4]
8013660: 68fb ldr r3, [r7, #12]
8013662: 681b ldr r3, [r3, #0]
8013664: 68db ldr r3, [r3, #12]
8013666: 0c1b lsrs r3, r3, #16
8013668: f3c3 030b ubfx r3, r3, #0, #12
801366c: 4413 add r3, r2
801366e: 041b lsls r3, r3, #16
8013670: 61fb str r3, [r7, #28]
LTDC_LAYER(hltdc, LayerIdx)->WHPCR &= ~(LTDC_LxWHPCR_WHSTPOS | LTDC_LxWHPCR_WHSPPOS);
8013672: 68fb ldr r3, [r7, #12]
8013674: 681b ldr r3, [r3, #0]
8013676: 461a mov r2, r3
8013678: 687b ldr r3, [r7, #4]
801367a: 01db lsls r3, r3, #7
801367c: 4413 add r3, r2
801367e: 3384 adds r3, #132 ; 0x84
8013680: 461a mov r2, r3
8013682: 68fb ldr r3, [r7, #12]
8013684: 681b ldr r3, [r3, #0]
8013686: 4619 mov r1, r3
8013688: 687b ldr r3, [r7, #4]
801368a: 01db lsls r3, r3, #7
801368c: 440b add r3, r1
801368e: 3384 adds r3, #132 ; 0x84
8013690: 685b ldr r3, [r3, #4]
8013692: f403 4370 and.w r3, r3, #61440 ; 0xf000
8013696: 6053 str r3, [r2, #4]
LTDC_LAYER(hltdc, LayerIdx)->WHPCR = ((pLayerCfg->WindowX0 + ((hltdc->Instance->BPCR & LTDC_BPCR_AHBP) >> 16U) + 1U) | tmp);
8013698: 68fb ldr r3, [r7, #12]
801369a: 681b ldr r3, [r3, #0]
801369c: 461a mov r2, r3
801369e: 687b ldr r3, [r7, #4]
80136a0: 01db lsls r3, r3, #7
80136a2: 4413 add r3, r2
80136a4: 3384 adds r3, #132 ; 0x84
80136a6: 4619 mov r1, r3
80136a8: 68bb ldr r3, [r7, #8]
80136aa: 681a ldr r2, [r3, #0]
80136ac: 68fb ldr r3, [r7, #12]
80136ae: 681b ldr r3, [r3, #0]
80136b0: 68db ldr r3, [r3, #12]
80136b2: 0c1b lsrs r3, r3, #16
80136b4: f3c3 030b ubfx r3, r3, #0, #12
80136b8: 4413 add r3, r2
80136ba: 1c5a adds r2, r3, #1
80136bc: 69fb ldr r3, [r7, #28]
80136be: 4313 orrs r3, r2
80136c0: 604b str r3, [r1, #4]
/* Configure the vertical start and stop position */
tmp = ((pLayerCfg->WindowY1 + (hltdc->Instance->BPCR & LTDC_BPCR_AVBP)) << 16U);
80136c2: 68bb ldr r3, [r7, #8]
80136c4: 68da ldr r2, [r3, #12]
80136c6: 68fb ldr r3, [r7, #12]
80136c8: 681b ldr r3, [r3, #0]
80136ca: 68db ldr r3, [r3, #12]
80136cc: f3c3 030a ubfx r3, r3, #0, #11
80136d0: 4413 add r3, r2
80136d2: 041b lsls r3, r3, #16
80136d4: 61fb str r3, [r7, #28]
LTDC_LAYER(hltdc, LayerIdx)->WVPCR &= ~(LTDC_LxWVPCR_WVSTPOS | LTDC_LxWVPCR_WVSPPOS);
80136d6: 68fb ldr r3, [r7, #12]
80136d8: 681b ldr r3, [r3, #0]
80136da: 461a mov r2, r3
80136dc: 687b ldr r3, [r7, #4]
80136de: 01db lsls r3, r3, #7
80136e0: 4413 add r3, r2
80136e2: 3384 adds r3, #132 ; 0x84
80136e4: 461a mov r2, r3
80136e6: 68fb ldr r3, [r7, #12]
80136e8: 681b ldr r3, [r3, #0]
80136ea: 4619 mov r1, r3
80136ec: 687b ldr r3, [r7, #4]
80136ee: 01db lsls r3, r3, #7
80136f0: 440b add r3, r1
80136f2: 3384 adds r3, #132 ; 0x84
80136f4: 689b ldr r3, [r3, #8]
80136f6: f403 4370 and.w r3, r3, #61440 ; 0xf000
80136fa: 6093 str r3, [r2, #8]
LTDC_LAYER(hltdc, LayerIdx)->WVPCR = ((pLayerCfg->WindowY0 + (hltdc->Instance->BPCR & LTDC_BPCR_AVBP) + 1U) | tmp);
80136fc: 68fb ldr r3, [r7, #12]
80136fe: 681b ldr r3, [r3, #0]
8013700: 461a mov r2, r3
8013702: 687b ldr r3, [r7, #4]
8013704: 01db lsls r3, r3, #7
8013706: 4413 add r3, r2
8013708: 3384 adds r3, #132 ; 0x84
801370a: 4619 mov r1, r3
801370c: 68bb ldr r3, [r7, #8]
801370e: 689a ldr r2, [r3, #8]
8013710: 68fb ldr r3, [r7, #12]
8013712: 681b ldr r3, [r3, #0]
8013714: 68db ldr r3, [r3, #12]
8013716: f3c3 030a ubfx r3, r3, #0, #11
801371a: 4413 add r3, r2
801371c: 1c5a adds r2, r3, #1
801371e: 69fb ldr r3, [r7, #28]
8013720: 4313 orrs r3, r2
8013722: 608b str r3, [r1, #8]
/* Specifies the pixel format */
LTDC_LAYER(hltdc, LayerIdx)->PFCR &= ~(LTDC_LxPFCR_PF);
8013724: 68fb ldr r3, [r7, #12]
8013726: 681b ldr r3, [r3, #0]
8013728: 461a mov r2, r3
801372a: 687b ldr r3, [r7, #4]
801372c: 01db lsls r3, r3, #7
801372e: 4413 add r3, r2
8013730: 3384 adds r3, #132 ; 0x84
8013732: 461a mov r2, r3
8013734: 68fb ldr r3, [r7, #12]
8013736: 681b ldr r3, [r3, #0]
8013738: 4619 mov r1, r3
801373a: 687b ldr r3, [r7, #4]
801373c: 01db lsls r3, r3, #7
801373e: 440b add r3, r1
8013740: 3384 adds r3, #132 ; 0x84
8013742: 691b ldr r3, [r3, #16]
8013744: f023 0307 bic.w r3, r3, #7
8013748: 6113 str r3, [r2, #16]
LTDC_LAYER(hltdc, LayerIdx)->PFCR = (pLayerCfg->PixelFormat);
801374a: 68fb ldr r3, [r7, #12]
801374c: 681b ldr r3, [r3, #0]
801374e: 461a mov r2, r3
8013750: 687b ldr r3, [r7, #4]
8013752: 01db lsls r3, r3, #7
8013754: 4413 add r3, r2
8013756: 3384 adds r3, #132 ; 0x84
8013758: 461a mov r2, r3
801375a: 68bb ldr r3, [r7, #8]
801375c: 691b ldr r3, [r3, #16]
801375e: 6113 str r3, [r2, #16]
/* Configure the default color values */
tmp = ((uint32_t)(pLayerCfg->Backcolor.Green) << 8U);
8013760: 68bb ldr r3, [r7, #8]
8013762: f893 3031 ldrb.w r3, [r3, #49] ; 0x31
8013766: 021b lsls r3, r3, #8
8013768: 61fb str r3, [r7, #28]
tmp1 = ((uint32_t)(pLayerCfg->Backcolor.Red) << 16U);
801376a: 68bb ldr r3, [r7, #8]
801376c: f893 3032 ldrb.w r3, [r3, #50] ; 0x32
8013770: 041b lsls r3, r3, #16
8013772: 61bb str r3, [r7, #24]
tmp2 = (pLayerCfg->Alpha0 << 24U);
8013774: 68bb ldr r3, [r7, #8]
8013776: 699b ldr r3, [r3, #24]
8013778: 061b lsls r3, r3, #24
801377a: 617b str r3, [r7, #20]
LTDC_LAYER(hltdc, LayerIdx)->DCCR &= ~(LTDC_LxDCCR_DCBLUE | LTDC_LxDCCR_DCGREEN | LTDC_LxDCCR_DCRED | LTDC_LxDCCR_DCALPHA);
801377c: 68fb ldr r3, [r7, #12]
801377e: 681b ldr r3, [r3, #0]
8013780: 461a mov r2, r3
8013782: 687b ldr r3, [r7, #4]
8013784: 01db lsls r3, r3, #7
8013786: 4413 add r3, r2
8013788: 3384 adds r3, #132 ; 0x84
801378a: 699b ldr r3, [r3, #24]
801378c: 68fb ldr r3, [r7, #12]
801378e: 681b ldr r3, [r3, #0]
8013790: 461a mov r2, r3
8013792: 687b ldr r3, [r7, #4]
8013794: 01db lsls r3, r3, #7
8013796: 4413 add r3, r2
8013798: 3384 adds r3, #132 ; 0x84
801379a: 461a mov r2, r3
801379c: 2300 movs r3, #0
801379e: 6193 str r3, [r2, #24]
LTDC_LAYER(hltdc, LayerIdx)->DCCR = (pLayerCfg->Backcolor.Blue | tmp | tmp1 | tmp2);
80137a0: 68fb ldr r3, [r7, #12]
80137a2: 681b ldr r3, [r3, #0]
80137a4: 461a mov r2, r3
80137a6: 687b ldr r3, [r7, #4]
80137a8: 01db lsls r3, r3, #7
80137aa: 4413 add r3, r2
80137ac: 3384 adds r3, #132 ; 0x84
80137ae: 4619 mov r1, r3
80137b0: 68bb ldr r3, [r7, #8]
80137b2: f893 3030 ldrb.w r3, [r3, #48] ; 0x30
80137b6: 461a mov r2, r3
80137b8: 69fb ldr r3, [r7, #28]
80137ba: 431a orrs r2, r3
80137bc: 69bb ldr r3, [r7, #24]
80137be: 431a orrs r2, r3
80137c0: 697b ldr r3, [r7, #20]
80137c2: 4313 orrs r3, r2
80137c4: 618b str r3, [r1, #24]
/* Specifies the constant alpha value */
LTDC_LAYER(hltdc, LayerIdx)->CACR &= ~(LTDC_LxCACR_CONSTA);
80137c6: 68fb ldr r3, [r7, #12]
80137c8: 681b ldr r3, [r3, #0]
80137ca: 461a mov r2, r3
80137cc: 687b ldr r3, [r7, #4]
80137ce: 01db lsls r3, r3, #7
80137d0: 4413 add r3, r2
80137d2: 3384 adds r3, #132 ; 0x84
80137d4: 461a mov r2, r3
80137d6: 68fb ldr r3, [r7, #12]
80137d8: 681b ldr r3, [r3, #0]
80137da: 4619 mov r1, r3
80137dc: 687b ldr r3, [r7, #4]
80137de: 01db lsls r3, r3, #7
80137e0: 440b add r3, r1
80137e2: 3384 adds r3, #132 ; 0x84
80137e4: 695b ldr r3, [r3, #20]
80137e6: f023 03ff bic.w r3, r3, #255 ; 0xff
80137ea: 6153 str r3, [r2, #20]
LTDC_LAYER(hltdc, LayerIdx)->CACR = (pLayerCfg->Alpha);
80137ec: 68fb ldr r3, [r7, #12]
80137ee: 681b ldr r3, [r3, #0]
80137f0: 461a mov r2, r3
80137f2: 687b ldr r3, [r7, #4]
80137f4: 01db lsls r3, r3, #7
80137f6: 4413 add r3, r2
80137f8: 3384 adds r3, #132 ; 0x84
80137fa: 461a mov r2, r3
80137fc: 68bb ldr r3, [r7, #8]
80137fe: 695b ldr r3, [r3, #20]
8013800: 6153 str r3, [r2, #20]
/* Specifies the blending factors */
LTDC_LAYER(hltdc, LayerIdx)->BFCR &= ~(LTDC_LxBFCR_BF2 | LTDC_LxBFCR_BF1);
8013802: 68fb ldr r3, [r7, #12]
8013804: 681b ldr r3, [r3, #0]
8013806: 461a mov r2, r3
8013808: 687b ldr r3, [r7, #4]
801380a: 01db lsls r3, r3, #7
801380c: 4413 add r3, r2
801380e: 3384 adds r3, #132 ; 0x84
8013810: 4619 mov r1, r3
8013812: 68fb ldr r3, [r7, #12]
8013814: 681b ldr r3, [r3, #0]
8013816: 461a mov r2, r3
8013818: 687b ldr r3, [r7, #4]
801381a: 01db lsls r3, r3, #7
801381c: 4413 add r3, r2
801381e: 3384 adds r3, #132 ; 0x84
8013820: 69da ldr r2, [r3, #28]
8013822: 4b5a ldr r3, [pc, #360] ; (801398c <LTDC_SetConfig+0x33c>)
8013824: 4013 ands r3, r2
8013826: 61cb str r3, [r1, #28]
LTDC_LAYER(hltdc, LayerIdx)->BFCR = (pLayerCfg->BlendingFactor1 | pLayerCfg->BlendingFactor2);
8013828: 68fb ldr r3, [r7, #12]
801382a: 681b ldr r3, [r3, #0]
801382c: 461a mov r2, r3
801382e: 687b ldr r3, [r7, #4]
8013830: 01db lsls r3, r3, #7
8013832: 4413 add r3, r2
8013834: 3384 adds r3, #132 ; 0x84
8013836: 4619 mov r1, r3
8013838: 68bb ldr r3, [r7, #8]
801383a: 69da ldr r2, [r3, #28]
801383c: 68bb ldr r3, [r7, #8]
801383e: 6a1b ldr r3, [r3, #32]
8013840: 4313 orrs r3, r2
8013842: 61cb str r3, [r1, #28]
/* Configure the color frame buffer start address */
LTDC_LAYER(hltdc, LayerIdx)->CFBAR &= ~(LTDC_LxCFBAR_CFBADD);
8013844: 68fb ldr r3, [r7, #12]
8013846: 681b ldr r3, [r3, #0]
8013848: 461a mov r2, r3
801384a: 687b ldr r3, [r7, #4]
801384c: 01db lsls r3, r3, #7
801384e: 4413 add r3, r2
8013850: 3384 adds r3, #132 ; 0x84
8013852: 6a9b ldr r3, [r3, #40] ; 0x28
8013854: 68fb ldr r3, [r7, #12]
8013856: 681b ldr r3, [r3, #0]
8013858: 461a mov r2, r3
801385a: 687b ldr r3, [r7, #4]
801385c: 01db lsls r3, r3, #7
801385e: 4413 add r3, r2
8013860: 3384 adds r3, #132 ; 0x84
8013862: 461a mov r2, r3
8013864: 2300 movs r3, #0
8013866: 6293 str r3, [r2, #40] ; 0x28
LTDC_LAYER(hltdc, LayerIdx)->CFBAR = (pLayerCfg->FBStartAdress);
8013868: 68fb ldr r3, [r7, #12]
801386a: 681b ldr r3, [r3, #0]
801386c: 461a mov r2, r3
801386e: 687b ldr r3, [r7, #4]
8013870: 01db lsls r3, r3, #7
8013872: 4413 add r3, r2
8013874: 3384 adds r3, #132 ; 0x84
8013876: 461a mov r2, r3
8013878: 68bb ldr r3, [r7, #8]
801387a: 6a5b ldr r3, [r3, #36] ; 0x24
801387c: 6293 str r3, [r2, #40] ; 0x28
if (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB8888)
801387e: 68bb ldr r3, [r7, #8]
8013880: 691b ldr r3, [r3, #16]
8013882: 2b00 cmp r3, #0
8013884: d102 bne.n 801388c <LTDC_SetConfig+0x23c>
{
tmp = 4U;
8013886: 2304 movs r3, #4
8013888: 61fb str r3, [r7, #28]
801388a: e01b b.n 80138c4 <LTDC_SetConfig+0x274>
}
else if (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_RGB888)
801388c: 68bb ldr r3, [r7, #8]
801388e: 691b ldr r3, [r3, #16]
8013890: 2b01 cmp r3, #1
8013892: d102 bne.n 801389a <LTDC_SetConfig+0x24a>
{
tmp = 3U;
8013894: 2303 movs r3, #3
8013896: 61fb str r3, [r7, #28]
8013898: e014 b.n 80138c4 <LTDC_SetConfig+0x274>
}
else if ((pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB4444) || \
801389a: 68bb ldr r3, [r7, #8]
801389c: 691b ldr r3, [r3, #16]
801389e: 2b04 cmp r3, #4
80138a0: d00b beq.n 80138ba <LTDC_SetConfig+0x26a>
(pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_RGB565) || \
80138a2: 68bb ldr r3, [r7, #8]
80138a4: 691b ldr r3, [r3, #16]
else if ((pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB4444) || \
80138a6: 2b02 cmp r3, #2
80138a8: d007 beq.n 80138ba <LTDC_SetConfig+0x26a>
(pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB1555) || \
80138aa: 68bb ldr r3, [r7, #8]
80138ac: 691b ldr r3, [r3, #16]
(pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_RGB565) || \
80138ae: 2b03 cmp r3, #3
80138b0: d003 beq.n 80138ba <LTDC_SetConfig+0x26a>
(pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_AL88))
80138b2: 68bb ldr r3, [r7, #8]
80138b4: 691b ldr r3, [r3, #16]
(pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB1555) || \
80138b6: 2b07 cmp r3, #7
80138b8: d102 bne.n 80138c0 <LTDC_SetConfig+0x270>
{
tmp = 2U;
80138ba: 2302 movs r3, #2
80138bc: 61fb str r3, [r7, #28]
80138be: e001 b.n 80138c4 <LTDC_SetConfig+0x274>
}
else
{
tmp = 1U;
80138c0: 2301 movs r3, #1
80138c2: 61fb str r3, [r7, #28]
}
/* Configure the color frame buffer pitch in byte */
LTDC_LAYER(hltdc, LayerIdx)->CFBLR &= ~(LTDC_LxCFBLR_CFBLL | LTDC_LxCFBLR_CFBP);
80138c4: 68fb ldr r3, [r7, #12]
80138c6: 681b ldr r3, [r3, #0]
80138c8: 461a mov r2, r3
80138ca: 687b ldr r3, [r7, #4]
80138cc: 01db lsls r3, r3, #7
80138ce: 4413 add r3, r2
80138d0: 3384 adds r3, #132 ; 0x84
80138d2: 461a mov r2, r3
80138d4: 68fb ldr r3, [r7, #12]
80138d6: 681b ldr r3, [r3, #0]
80138d8: 4619 mov r1, r3
80138da: 687b ldr r3, [r7, #4]
80138dc: 01db lsls r3, r3, #7
80138de: 440b add r3, r1
80138e0: 3384 adds r3, #132 ; 0x84
80138e2: 6adb ldr r3, [r3, #44] ; 0x2c
80138e4: f003 23e0 and.w r3, r3, #3758153728 ; 0xe000e000
80138e8: 62d3 str r3, [r2, #44] ; 0x2c
LTDC_LAYER(hltdc, LayerIdx)->CFBLR = (((pLayerCfg->ImageWidth * tmp) << 16U) | (((pLayerCfg->WindowX1 - pLayerCfg->WindowX0) * tmp) + 3U));
80138ea: 68fb ldr r3, [r7, #12]
80138ec: 681b ldr r3, [r3, #0]
80138ee: 461a mov r2, r3
80138f0: 687b ldr r3, [r7, #4]
80138f2: 01db lsls r3, r3, #7
80138f4: 4413 add r3, r2
80138f6: 3384 adds r3, #132 ; 0x84
80138f8: 4618 mov r0, r3
80138fa: 68bb ldr r3, [r7, #8]
80138fc: 6a9b ldr r3, [r3, #40] ; 0x28
80138fe: 69fa ldr r2, [r7, #28]
8013900: fb02 f303 mul.w r3, r2, r3
8013904: 041a lsls r2, r3, #16
8013906: 68bb ldr r3, [r7, #8]
8013908: 6859 ldr r1, [r3, #4]
801390a: 68bb ldr r3, [r7, #8]
801390c: 681b ldr r3, [r3, #0]
801390e: 1acb subs r3, r1, r3
8013910: 69f9 ldr r1, [r7, #28]
8013912: fb01 f303 mul.w r3, r1, r3
8013916: 3303 adds r3, #3
8013918: 4313 orrs r3, r2
801391a: 62c3 str r3, [r0, #44] ; 0x2c
/* Configure the frame buffer line number */
LTDC_LAYER(hltdc, LayerIdx)->CFBLNR &= ~(LTDC_LxCFBLNR_CFBLNBR);
801391c: 68fb ldr r3, [r7, #12]
801391e: 681b ldr r3, [r3, #0]
8013920: 461a mov r2, r3
8013922: 687b ldr r3, [r7, #4]
8013924: 01db lsls r3, r3, #7
8013926: 4413 add r3, r2
8013928: 3384 adds r3, #132 ; 0x84
801392a: 4619 mov r1, r3
801392c: 68fb ldr r3, [r7, #12]
801392e: 681b ldr r3, [r3, #0]
8013930: 461a mov r2, r3
8013932: 687b ldr r3, [r7, #4]
8013934: 01db lsls r3, r3, #7
8013936: 4413 add r3, r2
8013938: 3384 adds r3, #132 ; 0x84
801393a: 6b1a ldr r2, [r3, #48] ; 0x30
801393c: 4b14 ldr r3, [pc, #80] ; (8013990 <LTDC_SetConfig+0x340>)
801393e: 4013 ands r3, r2
8013940: 630b str r3, [r1, #48] ; 0x30
LTDC_LAYER(hltdc, LayerIdx)->CFBLNR = (pLayerCfg->ImageHeight);
8013942: 68fb ldr r3, [r7, #12]
8013944: 681b ldr r3, [r3, #0]
8013946: 461a mov r2, r3
8013948: 687b ldr r3, [r7, #4]
801394a: 01db lsls r3, r3, #7
801394c: 4413 add r3, r2
801394e: 3384 adds r3, #132 ; 0x84
8013950: 461a mov r2, r3
8013952: 68bb ldr r3, [r7, #8]
8013954: 6adb ldr r3, [r3, #44] ; 0x2c
8013956: 6313 str r3, [r2, #48] ; 0x30
/* Enable LTDC_Layer by setting LEN bit */
LTDC_LAYER(hltdc, LayerIdx)->CR |= (uint32_t)LTDC_LxCR_LEN;
8013958: 68fb ldr r3, [r7, #12]
801395a: 681b ldr r3, [r3, #0]
801395c: 461a mov r2, r3
801395e: 687b ldr r3, [r7, #4]
8013960: 01db lsls r3, r3, #7
8013962: 4413 add r3, r2
8013964: 3384 adds r3, #132 ; 0x84
8013966: 461a mov r2, r3
8013968: 68fb ldr r3, [r7, #12]
801396a: 681b ldr r3, [r3, #0]
801396c: 4619 mov r1, r3
801396e: 687b ldr r3, [r7, #4]
8013970: 01db lsls r3, r3, #7
8013972: 440b add r3, r1
8013974: 3384 adds r3, #132 ; 0x84
8013976: 681b ldr r3, [r3, #0]
8013978: f043 0301 orr.w r3, r3, #1
801397c: 6013 str r3, [r2, #0]
}
801397e: bf00 nop
8013980: 3724 adds r7, #36 ; 0x24
8013982: 46bd mov sp, r7
8013984: f85d 7b04 ldr.w r7, [sp], #4
8013988: 4770 bx lr
801398a: bf00 nop
801398c: fffff8f8 .word 0xfffff8f8
8013990: fffff800 .word 0xfffff800
08013994 <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)
{
8013994: b580 push {r7, lr}
8013996: b086 sub sp, #24
8013998: af00 add r7, sp, #0
801399a: 6078 str r0, [r7, #4]
uint32_t tickstart;
uint32_t pll_config;
FlagStatus pwrclkchanged = RESET;
801399c: 2300 movs r3, #0
801399e: 75fb strb r3, [r7, #23]
/* Check Null pointer */
if (RCC_OscInitStruct == NULL)
80139a0: 687b ldr r3, [r7, #4]
80139a2: 2b00 cmp r3, #0
80139a4: d101 bne.n 80139aa <HAL_RCC_OscConfig+0x16>
{
return HAL_ERROR;
80139a6: 2301 movs r3, #1
80139a8: e29b b.n 8013ee2 <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)
80139aa: 687b ldr r3, [r7, #4]
80139ac: 681b ldr r3, [r3, #0]
80139ae: f003 0301 and.w r3, r3, #1
80139b2: 2b00 cmp r3, #0
80139b4: f000 8087 beq.w 8013ac6 <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)
80139b8: 4b96 ldr r3, [pc, #600] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
80139ba: 689b ldr r3, [r3, #8]
80139bc: f003 030c and.w r3, r3, #12
80139c0: 2b04 cmp r3, #4
80139c2: d00c beq.n 80139de <HAL_RCC_OscConfig+0x4a>
|| ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSE)))
80139c4: 4b93 ldr r3, [pc, #588] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
80139c6: 689b ldr r3, [r3, #8]
80139c8: f003 030c and.w r3, r3, #12
80139cc: 2b08 cmp r3, #8
80139ce: d112 bne.n 80139f6 <HAL_RCC_OscConfig+0x62>
80139d0: 4b90 ldr r3, [pc, #576] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
80139d2: 685b ldr r3, [r3, #4]
80139d4: f403 0380 and.w r3, r3, #4194304 ; 0x400000
80139d8: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000
80139dc: d10b bne.n 80139f6 <HAL_RCC_OscConfig+0x62>
{
if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF))
80139de: 4b8d ldr r3, [pc, #564] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
80139e0: 681b ldr r3, [r3, #0]
80139e2: f403 3300 and.w r3, r3, #131072 ; 0x20000
80139e6: 2b00 cmp r3, #0
80139e8: d06c beq.n 8013ac4 <HAL_RCC_OscConfig+0x130>
80139ea: 687b ldr r3, [r7, #4]
80139ec: 685b ldr r3, [r3, #4]
80139ee: 2b00 cmp r3, #0
80139f0: d168 bne.n 8013ac4 <HAL_RCC_OscConfig+0x130>
{
return HAL_ERROR;
80139f2: 2301 movs r3, #1
80139f4: e275 b.n 8013ee2 <HAL_RCC_OscConfig+0x54e>
}
}
else
{
/* Set the new HSE configuration ---------------------------------------*/
__HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState);
80139f6: 687b ldr r3, [r7, #4]
80139f8: 685b ldr r3, [r3, #4]
80139fa: f5b3 3f80 cmp.w r3, #65536 ; 0x10000
80139fe: d106 bne.n 8013a0e <HAL_RCC_OscConfig+0x7a>
8013a00: 4a84 ldr r2, [pc, #528] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013a02: 4b84 ldr r3, [pc, #528] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013a04: 681b ldr r3, [r3, #0]
8013a06: f443 3380 orr.w r3, r3, #65536 ; 0x10000
8013a0a: 6013 str r3, [r2, #0]
8013a0c: e02e b.n 8013a6c <HAL_RCC_OscConfig+0xd8>
8013a0e: 687b ldr r3, [r7, #4]
8013a10: 685b ldr r3, [r3, #4]
8013a12: 2b00 cmp r3, #0
8013a14: d10c bne.n 8013a30 <HAL_RCC_OscConfig+0x9c>
8013a16: 4a7f ldr r2, [pc, #508] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013a18: 4b7e ldr r3, [pc, #504] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013a1a: 681b ldr r3, [r3, #0]
8013a1c: f423 3380 bic.w r3, r3, #65536 ; 0x10000
8013a20: 6013 str r3, [r2, #0]
8013a22: 4a7c ldr r2, [pc, #496] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013a24: 4b7b ldr r3, [pc, #492] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013a26: 681b ldr r3, [r3, #0]
8013a28: f423 2380 bic.w r3, r3, #262144 ; 0x40000
8013a2c: 6013 str r3, [r2, #0]
8013a2e: e01d b.n 8013a6c <HAL_RCC_OscConfig+0xd8>
8013a30: 687b ldr r3, [r7, #4]
8013a32: 685b ldr r3, [r3, #4]
8013a34: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000
8013a38: d10c bne.n 8013a54 <HAL_RCC_OscConfig+0xc0>
8013a3a: 4a76 ldr r2, [pc, #472] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013a3c: 4b75 ldr r3, [pc, #468] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013a3e: 681b ldr r3, [r3, #0]
8013a40: f443 2380 orr.w r3, r3, #262144 ; 0x40000
8013a44: 6013 str r3, [r2, #0]
8013a46: 4a73 ldr r2, [pc, #460] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013a48: 4b72 ldr r3, [pc, #456] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013a4a: 681b ldr r3, [r3, #0]
8013a4c: f443 3380 orr.w r3, r3, #65536 ; 0x10000
8013a50: 6013 str r3, [r2, #0]
8013a52: e00b b.n 8013a6c <HAL_RCC_OscConfig+0xd8>
8013a54: 4a6f ldr r2, [pc, #444] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013a56: 4b6f ldr r3, [pc, #444] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013a58: 681b ldr r3, [r3, #0]
8013a5a: f423 3380 bic.w r3, r3, #65536 ; 0x10000
8013a5e: 6013 str r3, [r2, #0]
8013a60: 4a6c ldr r2, [pc, #432] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013a62: 4b6c ldr r3, [pc, #432] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013a64: 681b ldr r3, [r3, #0]
8013a66: f423 2380 bic.w r3, r3, #262144 ; 0x40000
8013a6a: 6013 str r3, [r2, #0]
/* Check the HSE State */
if (RCC_OscInitStruct->HSEState != RCC_HSE_OFF)
8013a6c: 687b ldr r3, [r7, #4]
8013a6e: 685b ldr r3, [r3, #4]
8013a70: 2b00 cmp r3, #0
8013a72: d013 beq.n 8013a9c <HAL_RCC_OscConfig+0x108>
{
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013a74: f7fe f854 bl 8011b20 <HAL_GetTick>
8013a78: 6138 str r0, [r7, #16]
/* Wait till HSE is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET)
8013a7a: e008 b.n 8013a8e <HAL_RCC_OscConfig+0xfa>
{
if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE)
8013a7c: f7fe f850 bl 8011b20 <HAL_GetTick>
8013a80: 4602 mov r2, r0
8013a82: 693b ldr r3, [r7, #16]
8013a84: 1ad3 subs r3, r2, r3
8013a86: 2b64 cmp r3, #100 ; 0x64
8013a88: d901 bls.n 8013a8e <HAL_RCC_OscConfig+0xfa>
{
return HAL_TIMEOUT;
8013a8a: 2303 movs r3, #3
8013a8c: e229 b.n 8013ee2 <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET)
8013a8e: 4b61 ldr r3, [pc, #388] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013a90: 681b ldr r3, [r3, #0]
8013a92: f403 3300 and.w r3, r3, #131072 ; 0x20000
8013a96: 2b00 cmp r3, #0
8013a98: d0f0 beq.n 8013a7c <HAL_RCC_OscConfig+0xe8>
8013a9a: e014 b.n 8013ac6 <HAL_RCC_OscConfig+0x132>
}
}
else
{
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013a9c: f7fe f840 bl 8011b20 <HAL_GetTick>
8013aa0: 6138 str r0, [r7, #16]
/* Wait till HSE is bypassed or disabled */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET)
8013aa2: e008 b.n 8013ab6 <HAL_RCC_OscConfig+0x122>
{
if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE)
8013aa4: f7fe f83c bl 8011b20 <HAL_GetTick>
8013aa8: 4602 mov r2, r0
8013aaa: 693b ldr r3, [r7, #16]
8013aac: 1ad3 subs r3, r2, r3
8013aae: 2b64 cmp r3, #100 ; 0x64
8013ab0: d901 bls.n 8013ab6 <HAL_RCC_OscConfig+0x122>
{
return HAL_TIMEOUT;
8013ab2: 2303 movs r3, #3
8013ab4: e215 b.n 8013ee2 <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET)
8013ab6: 4b57 ldr r3, [pc, #348] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013ab8: 681b ldr r3, [r3, #0]
8013aba: f403 3300 and.w r3, r3, #131072 ; 0x20000
8013abe: 2b00 cmp r3, #0
8013ac0: d1f0 bne.n 8013aa4 <HAL_RCC_OscConfig+0x110>
8013ac2: e000 b.n 8013ac6 <HAL_RCC_OscConfig+0x132>
if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF))
8013ac4: bf00 nop
}
}
}
}
/*----------------------------- HSI Configuration --------------------------*/
if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI)
8013ac6: 687b ldr r3, [r7, #4]
8013ac8: 681b ldr r3, [r3, #0]
8013aca: f003 0302 and.w r3, r3, #2
8013ace: 2b00 cmp r3, #0
8013ad0: d069 beq.n 8013ba6 <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)
8013ad2: 4b50 ldr r3, [pc, #320] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013ad4: 689b ldr r3, [r3, #8]
8013ad6: f003 030c and.w r3, r3, #12
8013ada: 2b00 cmp r3, #0
8013adc: d00b beq.n 8013af6 <HAL_RCC_OscConfig+0x162>
|| ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSI)))
8013ade: 4b4d ldr r3, [pc, #308] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013ae0: 689b ldr r3, [r3, #8]
8013ae2: f003 030c and.w r3, r3, #12
8013ae6: 2b08 cmp r3, #8
8013ae8: d11c bne.n 8013b24 <HAL_RCC_OscConfig+0x190>
8013aea: 4b4a ldr r3, [pc, #296] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013aec: 685b ldr r3, [r3, #4]
8013aee: f403 0380 and.w r3, r3, #4194304 ; 0x400000
8013af2: 2b00 cmp r3, #0
8013af4: d116 bne.n 8013b24 <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))
8013af6: 4b47 ldr r3, [pc, #284] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013af8: 681b ldr r3, [r3, #0]
8013afa: f003 0302 and.w r3, r3, #2
8013afe: 2b00 cmp r3, #0
8013b00: d005 beq.n 8013b0e <HAL_RCC_OscConfig+0x17a>
8013b02: 687b ldr r3, [r7, #4]
8013b04: 68db ldr r3, [r3, #12]
8013b06: 2b01 cmp r3, #1
8013b08: d001 beq.n 8013b0e <HAL_RCC_OscConfig+0x17a>
{
return HAL_ERROR;
8013b0a: 2301 movs r3, #1
8013b0c: e1e9 b.n 8013ee2 <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);
8013b0e: 4941 ldr r1, [pc, #260] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013b10: 4b40 ldr r3, [pc, #256] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013b12: 681b ldr r3, [r3, #0]
8013b14: f023 02f8 bic.w r2, r3, #248 ; 0xf8
8013b18: 687b ldr r3, [r7, #4]
8013b1a: 691b ldr r3, [r3, #16]
8013b1c: 00db lsls r3, r3, #3
8013b1e: 4313 orrs r3, r2
8013b20: 600b str r3, [r1, #0]
if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON))
8013b22: e040 b.n 8013ba6 <HAL_RCC_OscConfig+0x212>
}
}
else
{
/* Check the HSI State */
if ((RCC_OscInitStruct->HSIState) != RCC_HSI_OFF)
8013b24: 687b ldr r3, [r7, #4]
8013b26: 68db ldr r3, [r3, #12]
8013b28: 2b00 cmp r3, #0
8013b2a: d023 beq.n 8013b74 <HAL_RCC_OscConfig+0x1e0>
{
/* Enable the Internal High Speed oscillator (HSI). */
__HAL_RCC_HSI_ENABLE();
8013b2c: 4a39 ldr r2, [pc, #228] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013b2e: 4b39 ldr r3, [pc, #228] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013b30: 681b ldr r3, [r3, #0]
8013b32: f043 0301 orr.w r3, r3, #1
8013b36: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013b38: f7fd fff2 bl 8011b20 <HAL_GetTick>
8013b3c: 6138 str r0, [r7, #16]
/* Wait till HSI is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET)
8013b3e: e008 b.n 8013b52 <HAL_RCC_OscConfig+0x1be>
{
if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE)
8013b40: f7fd ffee bl 8011b20 <HAL_GetTick>
8013b44: 4602 mov r2, r0
8013b46: 693b ldr r3, [r7, #16]
8013b48: 1ad3 subs r3, r2, r3
8013b4a: 2b02 cmp r3, #2
8013b4c: d901 bls.n 8013b52 <HAL_RCC_OscConfig+0x1be>
{
return HAL_TIMEOUT;
8013b4e: 2303 movs r3, #3
8013b50: e1c7 b.n 8013ee2 <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET)
8013b52: 4b30 ldr r3, [pc, #192] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013b54: 681b ldr r3, [r3, #0]
8013b56: f003 0302 and.w r3, r3, #2
8013b5a: 2b00 cmp r3, #0
8013b5c: d0f0 beq.n 8013b40 <HAL_RCC_OscConfig+0x1ac>
}
}
/* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/
__HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue);
8013b5e: 492d ldr r1, [pc, #180] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013b60: 4b2c ldr r3, [pc, #176] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013b62: 681b ldr r3, [r3, #0]
8013b64: f023 02f8 bic.w r2, r3, #248 ; 0xf8
8013b68: 687b ldr r3, [r7, #4]
8013b6a: 691b ldr r3, [r3, #16]
8013b6c: 00db lsls r3, r3, #3
8013b6e: 4313 orrs r3, r2
8013b70: 600b str r3, [r1, #0]
8013b72: e018 b.n 8013ba6 <HAL_RCC_OscConfig+0x212>
}
else
{
/* Disable the Internal High Speed oscillator (HSI). */
__HAL_RCC_HSI_DISABLE();
8013b74: 4a27 ldr r2, [pc, #156] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013b76: 4b27 ldr r3, [pc, #156] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013b78: 681b ldr r3, [r3, #0]
8013b7a: f023 0301 bic.w r3, r3, #1
8013b7e: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013b80: f7fd ffce bl 8011b20 <HAL_GetTick>
8013b84: 6138 str r0, [r7, #16]
/* Wait till HSI is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET)
8013b86: e008 b.n 8013b9a <HAL_RCC_OscConfig+0x206>
{
if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE)
8013b88: f7fd ffca bl 8011b20 <HAL_GetTick>
8013b8c: 4602 mov r2, r0
8013b8e: 693b ldr r3, [r7, #16]
8013b90: 1ad3 subs r3, r2, r3
8013b92: 2b02 cmp r3, #2
8013b94: d901 bls.n 8013b9a <HAL_RCC_OscConfig+0x206>
{
return HAL_TIMEOUT;
8013b96: 2303 movs r3, #3
8013b98: e1a3 b.n 8013ee2 <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET)
8013b9a: 4b1e ldr r3, [pc, #120] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013b9c: 681b ldr r3, [r3, #0]
8013b9e: f003 0302 and.w r3, r3, #2
8013ba2: 2b00 cmp r3, #0
8013ba4: d1f0 bne.n 8013b88 <HAL_RCC_OscConfig+0x1f4>
}
}
}
}
/*------------------------------ LSI Configuration -------------------------*/
if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI)
8013ba6: 687b ldr r3, [r7, #4]
8013ba8: 681b ldr r3, [r3, #0]
8013baa: f003 0308 and.w r3, r3, #8
8013bae: 2b00 cmp r3, #0
8013bb0: d038 beq.n 8013c24 <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)
8013bb2: 687b ldr r3, [r7, #4]
8013bb4: 695b ldr r3, [r3, #20]
8013bb6: 2b00 cmp r3, #0
8013bb8: d019 beq.n 8013bee <HAL_RCC_OscConfig+0x25a>
{
/* Enable the Internal Low Speed oscillator (LSI). */
__HAL_RCC_LSI_ENABLE();
8013bba: 4a16 ldr r2, [pc, #88] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013bbc: 4b15 ldr r3, [pc, #84] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013bbe: 6f5b ldr r3, [r3, #116] ; 0x74
8013bc0: f043 0301 orr.w r3, r3, #1
8013bc4: 6753 str r3, [r2, #116] ; 0x74
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013bc6: f7fd ffab bl 8011b20 <HAL_GetTick>
8013bca: 6138 str r0, [r7, #16]
/* Wait till LSI is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET)
8013bcc: e008 b.n 8013be0 <HAL_RCC_OscConfig+0x24c>
{
if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE)
8013bce: f7fd ffa7 bl 8011b20 <HAL_GetTick>
8013bd2: 4602 mov r2, r0
8013bd4: 693b ldr r3, [r7, #16]
8013bd6: 1ad3 subs r3, r2, r3
8013bd8: 2b02 cmp r3, #2
8013bda: d901 bls.n 8013be0 <HAL_RCC_OscConfig+0x24c>
{
return HAL_TIMEOUT;
8013bdc: 2303 movs r3, #3
8013bde: e180 b.n 8013ee2 <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET)
8013be0: 4b0c ldr r3, [pc, #48] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013be2: 6f5b ldr r3, [r3, #116] ; 0x74
8013be4: f003 0302 and.w r3, r3, #2
8013be8: 2b00 cmp r3, #0
8013bea: d0f0 beq.n 8013bce <HAL_RCC_OscConfig+0x23a>
8013bec: e01a b.n 8013c24 <HAL_RCC_OscConfig+0x290>
}
}
else
{
/* Disable the Internal Low Speed oscillator (LSI). */
__HAL_RCC_LSI_DISABLE();
8013bee: 4a09 ldr r2, [pc, #36] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013bf0: 4b08 ldr r3, [pc, #32] ; (8013c14 <HAL_RCC_OscConfig+0x280>)
8013bf2: 6f5b ldr r3, [r3, #116] ; 0x74
8013bf4: f023 0301 bic.w r3, r3, #1
8013bf8: 6753 str r3, [r2, #116] ; 0x74
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013bfa: f7fd ff91 bl 8011b20 <HAL_GetTick>
8013bfe: 6138 str r0, [r7, #16]
/* Wait till LSI is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET)
8013c00: e00a b.n 8013c18 <HAL_RCC_OscConfig+0x284>
{
if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE)
8013c02: f7fd ff8d bl 8011b20 <HAL_GetTick>
8013c06: 4602 mov r2, r0
8013c08: 693b ldr r3, [r7, #16]
8013c0a: 1ad3 subs r3, r2, r3
8013c0c: 2b02 cmp r3, #2
8013c0e: d903 bls.n 8013c18 <HAL_RCC_OscConfig+0x284>
{
return HAL_TIMEOUT;
8013c10: 2303 movs r3, #3
8013c12: e166 b.n 8013ee2 <HAL_RCC_OscConfig+0x54e>
8013c14: 40023800 .word 0x40023800
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET)
8013c18: 4b92 ldr r3, [pc, #584] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013c1a: 6f5b ldr r3, [r3, #116] ; 0x74
8013c1c: f003 0302 and.w r3, r3, #2
8013c20: 2b00 cmp r3, #0
8013c22: d1ee bne.n 8013c02 <HAL_RCC_OscConfig+0x26e>
}
}
}
}
/*------------------------------ LSE Configuration -------------------------*/
if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE)
8013c24: 687b ldr r3, [r7, #4]
8013c26: 681b ldr r3, [r3, #0]
8013c28: f003 0304 and.w r3, r3, #4
8013c2c: 2b00 cmp r3, #0
8013c2e: f000 80a4 beq.w 8013d7a <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())
8013c32: 4b8c ldr r3, [pc, #560] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013c34: 6c1b ldr r3, [r3, #64] ; 0x40
8013c36: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
8013c3a: 2b00 cmp r3, #0
8013c3c: d10d bne.n 8013c5a <HAL_RCC_OscConfig+0x2c6>
{
/* Enable Power Clock*/
__HAL_RCC_PWR_CLK_ENABLE();
8013c3e: 4a89 ldr r2, [pc, #548] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013c40: 4b88 ldr r3, [pc, #544] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013c42: 6c1b ldr r3, [r3, #64] ; 0x40
8013c44: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
8013c48: 6413 str r3, [r2, #64] ; 0x40
8013c4a: 4b86 ldr r3, [pc, #536] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013c4c: 6c1b ldr r3, [r3, #64] ; 0x40
8013c4e: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
8013c52: 60bb str r3, [r7, #8]
8013c54: 68bb ldr r3, [r7, #8]
pwrclkchanged = SET;
8013c56: 2301 movs r3, #1
8013c58: 75fb strb r3, [r7, #23]
}
if (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP))
8013c5a: 4b83 ldr r3, [pc, #524] ; (8013e68 <HAL_RCC_OscConfig+0x4d4>)
8013c5c: 681b ldr r3, [r3, #0]
8013c5e: f403 7380 and.w r3, r3, #256 ; 0x100
8013c62: 2b00 cmp r3, #0
8013c64: d118 bne.n 8013c98 <HAL_RCC_OscConfig+0x304>
{
/* Enable write access to Backup domain */
PWR->CR1 |= PWR_CR1_DBP;
8013c66: 4a80 ldr r2, [pc, #512] ; (8013e68 <HAL_RCC_OscConfig+0x4d4>)
8013c68: 4b7f ldr r3, [pc, #508] ; (8013e68 <HAL_RCC_OscConfig+0x4d4>)
8013c6a: 681b ldr r3, [r3, #0]
8013c6c: f443 7380 orr.w r3, r3, #256 ; 0x100
8013c70: 6013 str r3, [r2, #0]
/* Wait for Backup domain Write protection disable */
tickstart = HAL_GetTick();
8013c72: f7fd ff55 bl 8011b20 <HAL_GetTick>
8013c76: 6138 str r0, [r7, #16]
while (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP))
8013c78: e008 b.n 8013c8c <HAL_RCC_OscConfig+0x2f8>
{
if ((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE)
8013c7a: f7fd ff51 bl 8011b20 <HAL_GetTick>
8013c7e: 4602 mov r2, r0
8013c80: 693b ldr r3, [r7, #16]
8013c82: 1ad3 subs r3, r2, r3
8013c84: 2b64 cmp r3, #100 ; 0x64
8013c86: d901 bls.n 8013c8c <HAL_RCC_OscConfig+0x2f8>
{
return HAL_TIMEOUT;
8013c88: 2303 movs r3, #3
8013c8a: e12a b.n 8013ee2 <HAL_RCC_OscConfig+0x54e>
while (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP))
8013c8c: 4b76 ldr r3, [pc, #472] ; (8013e68 <HAL_RCC_OscConfig+0x4d4>)
8013c8e: 681b ldr r3, [r3, #0]
8013c90: f403 7380 and.w r3, r3, #256 ; 0x100
8013c94: 2b00 cmp r3, #0
8013c96: d0f0 beq.n 8013c7a <HAL_RCC_OscConfig+0x2e6>
}
}
}
/* Set the new LSE configuration -----------------------------------------*/
__HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState);
8013c98: 687b ldr r3, [r7, #4]
8013c9a: 689b ldr r3, [r3, #8]
8013c9c: 2b01 cmp r3, #1
8013c9e: d106 bne.n 8013cae <HAL_RCC_OscConfig+0x31a>
8013ca0: 4a70 ldr r2, [pc, #448] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013ca2: 4b70 ldr r3, [pc, #448] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013ca4: 6f1b ldr r3, [r3, #112] ; 0x70
8013ca6: f043 0301 orr.w r3, r3, #1
8013caa: 6713 str r3, [r2, #112] ; 0x70
8013cac: e02d b.n 8013d0a <HAL_RCC_OscConfig+0x376>
8013cae: 687b ldr r3, [r7, #4]
8013cb0: 689b ldr r3, [r3, #8]
8013cb2: 2b00 cmp r3, #0
8013cb4: d10c bne.n 8013cd0 <HAL_RCC_OscConfig+0x33c>
8013cb6: 4a6b ldr r2, [pc, #428] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013cb8: 4b6a ldr r3, [pc, #424] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013cba: 6f1b ldr r3, [r3, #112] ; 0x70
8013cbc: f023 0301 bic.w r3, r3, #1
8013cc0: 6713 str r3, [r2, #112] ; 0x70
8013cc2: 4a68 ldr r2, [pc, #416] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013cc4: 4b67 ldr r3, [pc, #412] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013cc6: 6f1b ldr r3, [r3, #112] ; 0x70
8013cc8: f023 0304 bic.w r3, r3, #4
8013ccc: 6713 str r3, [r2, #112] ; 0x70
8013cce: e01c b.n 8013d0a <HAL_RCC_OscConfig+0x376>
8013cd0: 687b ldr r3, [r7, #4]
8013cd2: 689b ldr r3, [r3, #8]
8013cd4: 2b05 cmp r3, #5
8013cd6: d10c bne.n 8013cf2 <HAL_RCC_OscConfig+0x35e>
8013cd8: 4a62 ldr r2, [pc, #392] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013cda: 4b62 ldr r3, [pc, #392] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013cdc: 6f1b ldr r3, [r3, #112] ; 0x70
8013cde: f043 0304 orr.w r3, r3, #4
8013ce2: 6713 str r3, [r2, #112] ; 0x70
8013ce4: 4a5f ldr r2, [pc, #380] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013ce6: 4b5f ldr r3, [pc, #380] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013ce8: 6f1b ldr r3, [r3, #112] ; 0x70
8013cea: f043 0301 orr.w r3, r3, #1
8013cee: 6713 str r3, [r2, #112] ; 0x70
8013cf0: e00b b.n 8013d0a <HAL_RCC_OscConfig+0x376>
8013cf2: 4a5c ldr r2, [pc, #368] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013cf4: 4b5b ldr r3, [pc, #364] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013cf6: 6f1b ldr r3, [r3, #112] ; 0x70
8013cf8: f023 0301 bic.w r3, r3, #1
8013cfc: 6713 str r3, [r2, #112] ; 0x70
8013cfe: 4a59 ldr r2, [pc, #356] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013d00: 4b58 ldr r3, [pc, #352] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013d02: 6f1b ldr r3, [r3, #112] ; 0x70
8013d04: f023 0304 bic.w r3, r3, #4
8013d08: 6713 str r3, [r2, #112] ; 0x70
/* Check the LSE State */
if ((RCC_OscInitStruct->LSEState) != RCC_LSE_OFF)
8013d0a: 687b ldr r3, [r7, #4]
8013d0c: 689b ldr r3, [r3, #8]
8013d0e: 2b00 cmp r3, #0
8013d10: d015 beq.n 8013d3e <HAL_RCC_OscConfig+0x3aa>
{
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013d12: f7fd ff05 bl 8011b20 <HAL_GetTick>
8013d16: 6138 str r0, [r7, #16]
/* Wait till LSE is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET)
8013d18: e00a b.n 8013d30 <HAL_RCC_OscConfig+0x39c>
{
if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE)
8013d1a: f7fd ff01 bl 8011b20 <HAL_GetTick>
8013d1e: 4602 mov r2, r0
8013d20: 693b ldr r3, [r7, #16]
8013d22: 1ad3 subs r3, r2, r3
8013d24: f241 3288 movw r2, #5000 ; 0x1388
8013d28: 4293 cmp r3, r2
8013d2a: d901 bls.n 8013d30 <HAL_RCC_OscConfig+0x39c>
{
return HAL_TIMEOUT;
8013d2c: 2303 movs r3, #3
8013d2e: e0d8 b.n 8013ee2 <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET)
8013d30: 4b4c ldr r3, [pc, #304] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013d32: 6f1b ldr r3, [r3, #112] ; 0x70
8013d34: f003 0302 and.w r3, r3, #2
8013d38: 2b00 cmp r3, #0
8013d3a: d0ee beq.n 8013d1a <HAL_RCC_OscConfig+0x386>
8013d3c: e014 b.n 8013d68 <HAL_RCC_OscConfig+0x3d4>
}
}
else
{
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013d3e: f7fd feef bl 8011b20 <HAL_GetTick>
8013d42: 6138 str r0, [r7, #16]
/* Wait till LSE is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET)
8013d44: e00a b.n 8013d5c <HAL_RCC_OscConfig+0x3c8>
{
if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE)
8013d46: f7fd feeb bl 8011b20 <HAL_GetTick>
8013d4a: 4602 mov r2, r0
8013d4c: 693b ldr r3, [r7, #16]
8013d4e: 1ad3 subs r3, r2, r3
8013d50: f241 3288 movw r2, #5000 ; 0x1388
8013d54: 4293 cmp r3, r2
8013d56: d901 bls.n 8013d5c <HAL_RCC_OscConfig+0x3c8>
{
return HAL_TIMEOUT;
8013d58: 2303 movs r3, #3
8013d5a: e0c2 b.n 8013ee2 <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET)
8013d5c: 4b41 ldr r3, [pc, #260] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013d5e: 6f1b ldr r3, [r3, #112] ; 0x70
8013d60: f003 0302 and.w r3, r3, #2
8013d64: 2b00 cmp r3, #0
8013d66: d1ee bne.n 8013d46 <HAL_RCC_OscConfig+0x3b2>
}
}
}
/* Restore clock configuration if changed */
if (pwrclkchanged == SET)
8013d68: 7dfb ldrb r3, [r7, #23]
8013d6a: 2b01 cmp r3, #1
8013d6c: d105 bne.n 8013d7a <HAL_RCC_OscConfig+0x3e6>
{
__HAL_RCC_PWR_CLK_DISABLE();
8013d6e: 4a3d ldr r2, [pc, #244] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013d70: 4b3c ldr r3, [pc, #240] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013d72: 6c1b ldr r3, [r3, #64] ; 0x40
8013d74: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000
8013d78: 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)
8013d7a: 687b ldr r3, [r7, #4]
8013d7c: 699b ldr r3, [r3, #24]
8013d7e: 2b00 cmp r3, #0
8013d80: f000 80ae beq.w 8013ee0 <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)
8013d84: 4b37 ldr r3, [pc, #220] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013d86: 689b ldr r3, [r3, #8]
8013d88: f003 030c and.w r3, r3, #12
8013d8c: 2b08 cmp r3, #8
8013d8e: d06d beq.n 8013e6c <HAL_RCC_OscConfig+0x4d8>
{
if ((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON)
8013d90: 687b ldr r3, [r7, #4]
8013d92: 699b ldr r3, [r3, #24]
8013d94: 2b02 cmp r3, #2
8013d96: d14b bne.n 8013e30 <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();
8013d98: 4a32 ldr r2, [pc, #200] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013d9a: 4b32 ldr r3, [pc, #200] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013d9c: 681b ldr r3, [r3, #0]
8013d9e: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000
8013da2: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013da4: f7fd febc bl 8011b20 <HAL_GetTick>
8013da8: 6138 str r0, [r7, #16]
/* Wait till PLL is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
8013daa: e008 b.n 8013dbe <HAL_RCC_OscConfig+0x42a>
{
if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE)
8013dac: f7fd feb8 bl 8011b20 <HAL_GetTick>
8013db0: 4602 mov r2, r0
8013db2: 693b ldr r3, [r7, #16]
8013db4: 1ad3 subs r3, r2, r3
8013db6: 2b02 cmp r3, #2
8013db8: d901 bls.n 8013dbe <HAL_RCC_OscConfig+0x42a>
{
return HAL_TIMEOUT;
8013dba: 2303 movs r3, #3
8013dbc: e091 b.n 8013ee2 <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
8013dbe: 4b29 ldr r3, [pc, #164] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013dc0: 681b ldr r3, [r3, #0]
8013dc2: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
8013dc6: 2b00 cmp r3, #0
8013dc8: d1f0 bne.n 8013dac <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,
8013dca: 4926 ldr r1, [pc, #152] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013dcc: 687b ldr r3, [r7, #4]
8013dce: 69da ldr r2, [r3, #28]
8013dd0: 687b ldr r3, [r7, #4]
8013dd2: 6a1b ldr r3, [r3, #32]
8013dd4: 431a orrs r2, r3
8013dd6: 687b ldr r3, [r7, #4]
8013dd8: 6a5b ldr r3, [r3, #36] ; 0x24
8013dda: 019b lsls r3, r3, #6
8013ddc: 431a orrs r2, r3
8013dde: 687b ldr r3, [r7, #4]
8013de0: 6a9b ldr r3, [r3, #40] ; 0x28
8013de2: 085b lsrs r3, r3, #1
8013de4: 3b01 subs r3, #1
8013de6: 041b lsls r3, r3, #16
8013de8: 431a orrs r2, r3
8013dea: 687b ldr r3, [r7, #4]
8013dec: 6adb ldr r3, [r3, #44] ; 0x2c
8013dee: 061b lsls r3, r3, #24
8013df0: 431a orrs r2, r3
8013df2: 687b ldr r3, [r7, #4]
8013df4: 6b1b ldr r3, [r3, #48] ; 0x30
8013df6: 071b lsls r3, r3, #28
8013df8: 4313 orrs r3, r2
8013dfa: 604b str r3, [r1, #4]
RCC_OscInitStruct->PLL.PLLP,
RCC_OscInitStruct->PLL.PLLQ);
#endif
/* Enable the main PLL. */
__HAL_RCC_PLL_ENABLE();
8013dfc: 4a19 ldr r2, [pc, #100] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013dfe: 4b19 ldr r3, [pc, #100] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013e00: 681b ldr r3, [r3, #0]
8013e02: f043 7380 orr.w r3, r3, #16777216 ; 0x1000000
8013e06: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013e08: f7fd fe8a bl 8011b20 <HAL_GetTick>
8013e0c: 6138 str r0, [r7, #16]
/* Wait till PLL is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET)
8013e0e: e008 b.n 8013e22 <HAL_RCC_OscConfig+0x48e>
{
if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE)
8013e10: f7fd fe86 bl 8011b20 <HAL_GetTick>
8013e14: 4602 mov r2, r0
8013e16: 693b ldr r3, [r7, #16]
8013e18: 1ad3 subs r3, r2, r3
8013e1a: 2b02 cmp r3, #2
8013e1c: d901 bls.n 8013e22 <HAL_RCC_OscConfig+0x48e>
{
return HAL_TIMEOUT;
8013e1e: 2303 movs r3, #3
8013e20: e05f b.n 8013ee2 <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET)
8013e22: 4b10 ldr r3, [pc, #64] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013e24: 681b ldr r3, [r3, #0]
8013e26: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
8013e2a: 2b00 cmp r3, #0
8013e2c: d0f0 beq.n 8013e10 <HAL_RCC_OscConfig+0x47c>
8013e2e: e057 b.n 8013ee0 <HAL_RCC_OscConfig+0x54c>
}
}
else
{
/* Disable the main PLL. */
__HAL_RCC_PLL_DISABLE();
8013e30: 4a0c ldr r2, [pc, #48] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013e32: 4b0c ldr r3, [pc, #48] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013e34: 681b ldr r3, [r3, #0]
8013e36: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000
8013e3a: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013e3c: f7fd fe70 bl 8011b20 <HAL_GetTick>
8013e40: 6138 str r0, [r7, #16]
/* Wait till PLL is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
8013e42: e008 b.n 8013e56 <HAL_RCC_OscConfig+0x4c2>
{
if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE)
8013e44: f7fd fe6c bl 8011b20 <HAL_GetTick>
8013e48: 4602 mov r2, r0
8013e4a: 693b ldr r3, [r7, #16]
8013e4c: 1ad3 subs r3, r2, r3
8013e4e: 2b02 cmp r3, #2
8013e50: d901 bls.n 8013e56 <HAL_RCC_OscConfig+0x4c2>
{
return HAL_TIMEOUT;
8013e52: 2303 movs r3, #3
8013e54: e045 b.n 8013ee2 <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
8013e56: 4b03 ldr r3, [pc, #12] ; (8013e64 <HAL_RCC_OscConfig+0x4d0>)
8013e58: 681b ldr r3, [r3, #0]
8013e5a: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
8013e5e: 2b00 cmp r3, #0
8013e60: d1f0 bne.n 8013e44 <HAL_RCC_OscConfig+0x4b0>
8013e62: e03d b.n 8013ee0 <HAL_RCC_OscConfig+0x54c>
8013e64: 40023800 .word 0x40023800
8013e68: 40007000 .word 0x40007000
}
}
else
{
/* Do not return HAL_ERROR if request repeats the current configuration */
pll_config = RCC->PLLCFGR;
8013e6c: 4b1f ldr r3, [pc, #124] ; (8013eec <HAL_RCC_OscConfig+0x558>)
8013e6e: 685b ldr r3, [r3, #4]
8013e70: 60fb str r3, [r7, #12]
#if defined (RCC_PLLCFGR_PLLR)
if (((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) ||
8013e72: 687b ldr r3, [r7, #4]
8013e74: 699b ldr r3, [r3, #24]
8013e76: 2b01 cmp r3, #1
8013e78: d030 beq.n 8013edc <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) ||
8013e7a: 68fb ldr r3, [r7, #12]
8013e7c: f403 0280 and.w r2, r3, #4194304 ; 0x400000
8013e80: 687b ldr r3, [r7, #4]
8013e82: 69db ldr r3, [r3, #28]
if (((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) ||
8013e84: 429a cmp r2, r3
8013e86: d129 bne.n 8013edc <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != RCC_OscInitStruct->PLL.PLLM) ||
8013e88: 68fb ldr r3, [r7, #12]
8013e8a: f003 023f and.w r2, r3, #63 ; 0x3f
8013e8e: 687b ldr r3, [r7, #4]
8013e90: 6a1b ldr r3, [r3, #32]
(READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) ||
8013e92: 429a cmp r2, r3
8013e94: d122 bne.n 8013edc <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) ||
8013e96: 68fa ldr r2, [r7, #12]
8013e98: f647 73c0 movw r3, #32704 ; 0x7fc0
8013e9c: 4013 ands r3, r2
8013e9e: 687a ldr r2, [r7, #4]
8013ea0: 6a52 ldr r2, [r2, #36] ; 0x24
8013ea2: 0192 lsls r2, r2, #6
(READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != RCC_OscInitStruct->PLL.PLLM) ||
8013ea4: 4293 cmp r3, r2
8013ea6: d119 bne.n 8013edc <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != ((((RCC_OscInitStruct->PLL.PLLP) >> 1U) - 1U) << RCC_PLLCFGR_PLLP_Pos)) ||
8013ea8: 68fb ldr r3, [r7, #12]
8013eaa: f403 3240 and.w r2, r3, #196608 ; 0x30000
8013eae: 687b ldr r3, [r7, #4]
8013eb0: 6a9b ldr r3, [r3, #40] ; 0x28
8013eb2: 085b lsrs r3, r3, #1
8013eb4: 3b01 subs r3, #1
8013eb6: 041b lsls r3, r3, #16
(READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) ||
8013eb8: 429a cmp r2, r3
8013eba: d10f bne.n 8013edc <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != (RCC_OscInitStruct->PLL.PLLQ << RCC_PLLCFGR_PLLQ_Pos)) ||
8013ebc: 68fb ldr r3, [r7, #12]
8013ebe: f003 6270 and.w r2, r3, #251658240 ; 0xf000000
8013ec2: 687b ldr r3, [r7, #4]
8013ec4: 6adb ldr r3, [r3, #44] ; 0x2c
8013ec6: 061b lsls r3, r3, #24
(READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != ((((RCC_OscInitStruct->PLL.PLLP) >> 1U) - 1U) << RCC_PLLCFGR_PLLP_Pos)) ||
8013ec8: 429a cmp r2, r3
8013eca: d107 bne.n 8013edc <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLR) != (RCC_OscInitStruct->PLL.PLLR << RCC_PLLCFGR_PLLR_Pos)))
8013ecc: 68fb ldr r3, [r7, #12]
8013ece: f003 42e0 and.w r2, r3, #1879048192 ; 0x70000000
8013ed2: 687b ldr r3, [r7, #4]
8013ed4: 6b1b ldr r3, [r3, #48] ; 0x30
8013ed6: 071b lsls r3, r3, #28
(READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != (RCC_OscInitStruct->PLL.PLLQ << RCC_PLLCFGR_PLLQ_Pos)) ||
8013ed8: 429a cmp r2, r3
8013eda: d001 beq.n 8013ee0 <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;
8013edc: 2301 movs r3, #1
8013ede: e000 b.n 8013ee2 <HAL_RCC_OscConfig+0x54e>
}
}
}
return HAL_OK;
8013ee0: 2300 movs r3, #0
}
8013ee2: 4618 mov r0, r3
8013ee4: 3718 adds r7, #24
8013ee6: 46bd mov sp, r7
8013ee8: bd80 pop {r7, pc}
8013eea: bf00 nop
8013eec: 40023800 .word 0x40023800
08013ef0 <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)
{
8013ef0: b580 push {r7, lr}
8013ef2: b084 sub sp, #16
8013ef4: af00 add r7, sp, #0
8013ef6: 6078 str r0, [r7, #4]
8013ef8: 6039 str r1, [r7, #0]
uint32_t tickstart = 0;
8013efa: 2300 movs r3, #0
8013efc: 60fb str r3, [r7, #12]
/* Check Null pointer */
if (RCC_ClkInitStruct == NULL)
8013efe: 687b ldr r3, [r7, #4]
8013f00: 2b00 cmp r3, #0
8013f02: d101 bne.n 8013f08 <HAL_RCC_ClockConfig+0x18>
{
return HAL_ERROR;
8013f04: 2301 movs r3, #1
8013f06: e0d0 b.n 80140aa <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())
8013f08: 4b6a ldr r3, [pc, #424] ; (80140b4 <HAL_RCC_ClockConfig+0x1c4>)
8013f0a: 681b ldr r3, [r3, #0]
8013f0c: f003 020f and.w r2, r3, #15
8013f10: 683b ldr r3, [r7, #0]
8013f12: 429a cmp r2, r3
8013f14: d210 bcs.n 8013f38 <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);
8013f16: 4967 ldr r1, [pc, #412] ; (80140b4 <HAL_RCC_ClockConfig+0x1c4>)
8013f18: 4b66 ldr r3, [pc, #408] ; (80140b4 <HAL_RCC_ClockConfig+0x1c4>)
8013f1a: 681b ldr r3, [r3, #0]
8013f1c: f023 020f bic.w r2, r3, #15
8013f20: 683b ldr r3, [r7, #0]
8013f22: 4313 orrs r3, r2
8013f24: 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)
8013f26: 4b63 ldr r3, [pc, #396] ; (80140b4 <HAL_RCC_ClockConfig+0x1c4>)
8013f28: 681b ldr r3, [r3, #0]
8013f2a: f003 020f and.w r2, r3, #15
8013f2e: 683b ldr r3, [r7, #0]
8013f30: 429a cmp r2, r3
8013f32: d001 beq.n 8013f38 <HAL_RCC_ClockConfig+0x48>
{
return HAL_ERROR;
8013f34: 2301 movs r3, #1
8013f36: e0b8 b.n 80140aa <HAL_RCC_ClockConfig+0x1ba>
}
}
/*-------------------------- HCLK Configuration --------------------------*/
if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK)
8013f38: 687b ldr r3, [r7, #4]
8013f3a: 681b ldr r3, [r3, #0]
8013f3c: f003 0302 and.w r3, r3, #2
8013f40: 2b00 cmp r3, #0
8013f42: d020 beq.n 8013f86 <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)
8013f44: 687b ldr r3, [r7, #4]
8013f46: 681b ldr r3, [r3, #0]
8013f48: f003 0304 and.w r3, r3, #4
8013f4c: 2b00 cmp r3, #0
8013f4e: d005 beq.n 8013f5c <HAL_RCC_ClockConfig+0x6c>
{
MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16);
8013f50: 4a59 ldr r2, [pc, #356] ; (80140b8 <HAL_RCC_ClockConfig+0x1c8>)
8013f52: 4b59 ldr r3, [pc, #356] ; (80140b8 <HAL_RCC_ClockConfig+0x1c8>)
8013f54: 689b ldr r3, [r3, #8]
8013f56: f443 53e0 orr.w r3, r3, #7168 ; 0x1c00
8013f5a: 6093 str r3, [r2, #8]
}
if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2)
8013f5c: 687b ldr r3, [r7, #4]
8013f5e: 681b ldr r3, [r3, #0]
8013f60: f003 0308 and.w r3, r3, #8
8013f64: 2b00 cmp r3, #0
8013f66: d005 beq.n 8013f74 <HAL_RCC_ClockConfig+0x84>
{
MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, (RCC_HCLK_DIV16 << 3));
8013f68: 4a53 ldr r2, [pc, #332] ; (80140b8 <HAL_RCC_ClockConfig+0x1c8>)
8013f6a: 4b53 ldr r3, [pc, #332] ; (80140b8 <HAL_RCC_ClockConfig+0x1c8>)
8013f6c: 689b ldr r3, [r3, #8]
8013f6e: f443 4360 orr.w r3, r3, #57344 ; 0xe000
8013f72: 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);
8013f74: 4950 ldr r1, [pc, #320] ; (80140b8 <HAL_RCC_ClockConfig+0x1c8>)
8013f76: 4b50 ldr r3, [pc, #320] ; (80140b8 <HAL_RCC_ClockConfig+0x1c8>)
8013f78: 689b ldr r3, [r3, #8]
8013f7a: f023 02f0 bic.w r2, r3, #240 ; 0xf0
8013f7e: 687b ldr r3, [r7, #4]
8013f80: 689b ldr r3, [r3, #8]
8013f82: 4313 orrs r3, r2
8013f84: 608b str r3, [r1, #8]
}
/*------------------------- SYSCLK Configuration ---------------------------*/
if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK)
8013f86: 687b ldr r3, [r7, #4]
8013f88: 681b ldr r3, [r3, #0]
8013f8a: f003 0301 and.w r3, r3, #1
8013f8e: 2b00 cmp r3, #0
8013f90: d040 beq.n 8014014 <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)
8013f92: 687b ldr r3, [r7, #4]
8013f94: 685b ldr r3, [r3, #4]
8013f96: 2b01 cmp r3, #1
8013f98: d107 bne.n 8013faa <HAL_RCC_ClockConfig+0xba>
{
/* Check the HSE ready flag */
if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET)
8013f9a: 4b47 ldr r3, [pc, #284] ; (80140b8 <HAL_RCC_ClockConfig+0x1c8>)
8013f9c: 681b ldr r3, [r3, #0]
8013f9e: f403 3300 and.w r3, r3, #131072 ; 0x20000
8013fa2: 2b00 cmp r3, #0
8013fa4: d115 bne.n 8013fd2 <HAL_RCC_ClockConfig+0xe2>
{
return HAL_ERROR;
8013fa6: 2301 movs r3, #1
8013fa8: e07f b.n 80140aa <HAL_RCC_ClockConfig+0x1ba>
}
}
/* PLL is selected as System Clock Source */
else if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK)
8013faa: 687b ldr r3, [r7, #4]
8013fac: 685b ldr r3, [r3, #4]
8013fae: 2b02 cmp r3, #2
8013fb0: d107 bne.n 8013fc2 <HAL_RCC_ClockConfig+0xd2>
{
/* Check the PLL ready flag */
if (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET)
8013fb2: 4b41 ldr r3, [pc, #260] ; (80140b8 <HAL_RCC_ClockConfig+0x1c8>)
8013fb4: 681b ldr r3, [r3, #0]
8013fb6: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
8013fba: 2b00 cmp r3, #0
8013fbc: d109 bne.n 8013fd2 <HAL_RCC_ClockConfig+0xe2>
{
return HAL_ERROR;
8013fbe: 2301 movs r3, #1
8013fc0: e073 b.n 80140aa <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)
8013fc2: 4b3d ldr r3, [pc, #244] ; (80140b8 <HAL_RCC_ClockConfig+0x1c8>)
8013fc4: 681b ldr r3, [r3, #0]
8013fc6: f003 0302 and.w r3, r3, #2
8013fca: 2b00 cmp r3, #0
8013fcc: d101 bne.n 8013fd2 <HAL_RCC_ClockConfig+0xe2>
{
return HAL_ERROR;
8013fce: 2301 movs r3, #1
8013fd0: e06b b.n 80140aa <HAL_RCC_ClockConfig+0x1ba>
}
}
__HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource);
8013fd2: 4939 ldr r1, [pc, #228] ; (80140b8 <HAL_RCC_ClockConfig+0x1c8>)
8013fd4: 4b38 ldr r3, [pc, #224] ; (80140b8 <HAL_RCC_ClockConfig+0x1c8>)
8013fd6: 689b ldr r3, [r3, #8]
8013fd8: f023 0203 bic.w r2, r3, #3
8013fdc: 687b ldr r3, [r7, #4]
8013fde: 685b ldr r3, [r3, #4]
8013fe0: 4313 orrs r3, r2
8013fe2: 608b str r3, [r1, #8]
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013fe4: f7fd fd9c bl 8011b20 <HAL_GetTick>
8013fe8: 60f8 str r0, [r7, #12]
while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos))
8013fea: e00a b.n 8014002 <HAL_RCC_ClockConfig+0x112>
{
if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE)
8013fec: f7fd fd98 bl 8011b20 <HAL_GetTick>
8013ff0: 4602 mov r2, r0
8013ff2: 68fb ldr r3, [r7, #12]
8013ff4: 1ad3 subs r3, r2, r3
8013ff6: f241 3288 movw r2, #5000 ; 0x1388
8013ffa: 4293 cmp r3, r2
8013ffc: d901 bls.n 8014002 <HAL_RCC_ClockConfig+0x112>
{
return HAL_TIMEOUT;
8013ffe: 2303 movs r3, #3
8014000: e053 b.n 80140aa <HAL_RCC_ClockConfig+0x1ba>
while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos))
8014002: 4b2d ldr r3, [pc, #180] ; (80140b8 <HAL_RCC_ClockConfig+0x1c8>)
8014004: 689b ldr r3, [r3, #8]
8014006: f003 020c and.w r2, r3, #12
801400a: 687b ldr r3, [r7, #4]
801400c: 685b ldr r3, [r3, #4]
801400e: 009b lsls r3, r3, #2
8014010: 429a cmp r2, r3
8014012: d1eb bne.n 8013fec <HAL_RCC_ClockConfig+0xfc>
}
}
}
/* Decreasing the number of wait states because of lower CPU frequency */
if (FLatency < __HAL_FLASH_GET_LATENCY())
8014014: 4b27 ldr r3, [pc, #156] ; (80140b4 <HAL_RCC_ClockConfig+0x1c4>)
8014016: 681b ldr r3, [r3, #0]
8014018: f003 020f and.w r2, r3, #15
801401c: 683b ldr r3, [r7, #0]
801401e: 429a cmp r2, r3
8014020: d910 bls.n 8014044 <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);
8014022: 4924 ldr r1, [pc, #144] ; (80140b4 <HAL_RCC_ClockConfig+0x1c4>)
8014024: 4b23 ldr r3, [pc, #140] ; (80140b4 <HAL_RCC_ClockConfig+0x1c4>)
8014026: 681b ldr r3, [r3, #0]
8014028: f023 020f bic.w r2, r3, #15
801402c: 683b ldr r3, [r7, #0]
801402e: 4313 orrs r3, r2
8014030: 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)
8014032: 4b20 ldr r3, [pc, #128] ; (80140b4 <HAL_RCC_ClockConfig+0x1c4>)
8014034: 681b ldr r3, [r3, #0]
8014036: f003 020f and.w r2, r3, #15
801403a: 683b ldr r3, [r7, #0]
801403c: 429a cmp r2, r3
801403e: d001 beq.n 8014044 <HAL_RCC_ClockConfig+0x154>
{
return HAL_ERROR;
8014040: 2301 movs r3, #1
8014042: e032 b.n 80140aa <HAL_RCC_ClockConfig+0x1ba>
}
}
/*-------------------------- PCLK1 Configuration ---------------------------*/
if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1)
8014044: 687b ldr r3, [r7, #4]
8014046: 681b ldr r3, [r3, #0]
8014048: f003 0304 and.w r3, r3, #4
801404c: 2b00 cmp r3, #0
801404e: d008 beq.n 8014062 <HAL_RCC_ClockConfig+0x172>
{
assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider));
MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider);
8014050: 4919 ldr r1, [pc, #100] ; (80140b8 <HAL_RCC_ClockConfig+0x1c8>)
8014052: 4b19 ldr r3, [pc, #100] ; (80140b8 <HAL_RCC_ClockConfig+0x1c8>)
8014054: 689b ldr r3, [r3, #8]
8014056: f423 52e0 bic.w r2, r3, #7168 ; 0x1c00
801405a: 687b ldr r3, [r7, #4]
801405c: 68db ldr r3, [r3, #12]
801405e: 4313 orrs r3, r2
8014060: 608b str r3, [r1, #8]
}
/*-------------------------- PCLK2 Configuration ---------------------------*/
if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2)
8014062: 687b ldr r3, [r7, #4]
8014064: 681b ldr r3, [r3, #0]
8014066: f003 0308 and.w r3, r3, #8
801406a: 2b00 cmp r3, #0
801406c: d009 beq.n 8014082 <HAL_RCC_ClockConfig+0x192>
{
assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider));
MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3));
801406e: 4912 ldr r1, [pc, #72] ; (80140b8 <HAL_RCC_ClockConfig+0x1c8>)
8014070: 4b11 ldr r3, [pc, #68] ; (80140b8 <HAL_RCC_ClockConfig+0x1c8>)
8014072: 689b ldr r3, [r3, #8]
8014074: f423 4260 bic.w r2, r3, #57344 ; 0xe000
8014078: 687b ldr r3, [r7, #4]
801407a: 691b ldr r3, [r3, #16]
801407c: 00db lsls r3, r3, #3
801407e: 4313 orrs r3, r2
8014080: 608b str r3, [r1, #8]
}
/* Update the SystemCoreClock global variable */
SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos];
8014082: f000 f821 bl 80140c8 <HAL_RCC_GetSysClockFreq>
8014086: 4601 mov r1, r0
8014088: 4b0b ldr r3, [pc, #44] ; (80140b8 <HAL_RCC_ClockConfig+0x1c8>)
801408a: 689b ldr r3, [r3, #8]
801408c: 091b lsrs r3, r3, #4
801408e: f003 030f and.w r3, r3, #15
8014092: 4a0a ldr r2, [pc, #40] ; (80140bc <HAL_RCC_ClockConfig+0x1cc>)
8014094: 5cd3 ldrb r3, [r2, r3]
8014096: fa21 f303 lsr.w r3, r1, r3
801409a: 4a09 ldr r2, [pc, #36] ; (80140c0 <HAL_RCC_ClockConfig+0x1d0>)
801409c: 6013 str r3, [r2, #0]
/* Configure the source of time base considering new system clocks settings*/
HAL_InitTick(uwTickPrio);
801409e: 4b09 ldr r3, [pc, #36] ; (80140c4 <HAL_RCC_ClockConfig+0x1d4>)
80140a0: 681b ldr r3, [r3, #0]
80140a2: 4618 mov r0, r3
80140a4: f7fd fcf8 bl 8011a98 <HAL_InitTick>
return HAL_OK;
80140a8: 2300 movs r3, #0
}
80140aa: 4618 mov r0, r3
80140ac: 3710 adds r7, #16
80140ae: 46bd mov sp, r7
80140b0: bd80 pop {r7, pc}
80140b2: bf00 nop
80140b4: 40023c00 .word 0x40023c00
80140b8: 40023800 .word 0x40023800
80140bc: 0801b054 .word 0x0801b054
80140c0: 20020874 .word 0x20020874
80140c4: 20020880 .word 0x20020880
080140c8 <HAL_RCC_GetSysClockFreq>:
*
*
* @retval SYSCLK frequency
*/
uint32_t HAL_RCC_GetSysClockFreq(void)
{
80140c8: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
80140cc: b087 sub sp, #28
80140ce: af00 add r7, sp, #0
uint32_t pllm = 0, pllvco = 0, pllp = 0;
80140d0: 2200 movs r2, #0
80140d2: 60fa str r2, [r7, #12]
80140d4: 2200 movs r2, #0
80140d6: 617a str r2, [r7, #20]
80140d8: 2200 movs r2, #0
80140da: 60ba str r2, [r7, #8]
uint32_t sysclockfreq = 0;
80140dc: 2200 movs r2, #0
80140de: 613a str r2, [r7, #16]
/* Get SYSCLK source -------------------------------------------------------*/
switch (RCC->CFGR & RCC_CFGR_SWS)
80140e0: 4a51 ldr r2, [pc, #324] ; (8014228 <HAL_RCC_GetSysClockFreq+0x160>)
80140e2: 6892 ldr r2, [r2, #8]
80140e4: f002 020c and.w r2, r2, #12
80140e8: 2a04 cmp r2, #4
80140ea: d007 beq.n 80140fc <HAL_RCC_GetSysClockFreq+0x34>
80140ec: 2a08 cmp r2, #8
80140ee: d008 beq.n 8014102 <HAL_RCC_GetSysClockFreq+0x3a>
80140f0: 2a00 cmp r2, #0
80140f2: f040 8090 bne.w 8014216 <HAL_RCC_GetSysClockFreq+0x14e>
{
case RCC_SYSCLKSOURCE_STATUS_HSI: /* HSI used as system clock source */
{
sysclockfreq = HSI_VALUE;
80140f6: 4b4d ldr r3, [pc, #308] ; (801422c <HAL_RCC_GetSysClockFreq+0x164>)
80140f8: 613b str r3, [r7, #16]
break;
80140fa: e08f b.n 801421c <HAL_RCC_GetSysClockFreq+0x154>
}
case RCC_SYSCLKSOURCE_STATUS_HSE: /* HSE used as system clock source */
{
sysclockfreq = HSE_VALUE;
80140fc: 4b4c ldr r3, [pc, #304] ; (8014230 <HAL_RCC_GetSysClockFreq+0x168>)
80140fe: 613b str r3, [r7, #16]
break;
8014100: e08c b.n 801421c <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;
8014102: 4a49 ldr r2, [pc, #292] ; (8014228 <HAL_RCC_GetSysClockFreq+0x160>)
8014104: 6852 ldr r2, [r2, #4]
8014106: f002 023f and.w r2, r2, #63 ; 0x3f
801410a: 60fa str r2, [r7, #12]
if (__HAL_RCC_GET_PLL_OSCSOURCE() != RCC_PLLCFGR_PLLSRC_HSI)
801410c: 4a46 ldr r2, [pc, #280] ; (8014228 <HAL_RCC_GetSysClockFreq+0x160>)
801410e: 6852 ldr r2, [r2, #4]
8014110: f402 0280 and.w r2, r2, #4194304 ; 0x400000
8014114: 2a00 cmp r2, #0
8014116: d023 beq.n 8014160 <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);
8014118: 4b43 ldr r3, [pc, #268] ; (8014228 <HAL_RCC_GetSysClockFreq+0x160>)
801411a: 685b ldr r3, [r3, #4]
801411c: 099b lsrs r3, r3, #6
801411e: f04f 0400 mov.w r4, #0
8014122: f240 11ff movw r1, #511 ; 0x1ff
8014126: f04f 0200 mov.w r2, #0
801412a: ea03 0301 and.w r3, r3, r1
801412e: ea04 0402 and.w r4, r4, r2
8014132: 4a3f ldr r2, [pc, #252] ; (8014230 <HAL_RCC_GetSysClockFreq+0x168>)
8014134: fb02 f104 mul.w r1, r2, r4
8014138: 2200 movs r2, #0
801413a: fb02 f203 mul.w r2, r2, r3
801413e: 440a add r2, r1
8014140: 493b ldr r1, [pc, #236] ; (8014230 <HAL_RCC_GetSysClockFreq+0x168>)
8014142: fba3 0101 umull r0, r1, r3, r1
8014146: 1853 adds r3, r2, r1
8014148: 4619 mov r1, r3
801414a: 68fb ldr r3, [r7, #12]
801414c: f04f 0400 mov.w r4, #0
8014150: 461a mov r2, r3
8014152: 4623 mov r3, r4
8014154: f7ec f878 bl 8000248 <__aeabi_uldivmod>
8014158: 4603 mov r3, r0
801415a: 460c mov r4, r1
801415c: 617b str r3, [r7, #20]
801415e: e04c b.n 80141fa <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);
8014160: 4a31 ldr r2, [pc, #196] ; (8014228 <HAL_RCC_GetSysClockFreq+0x160>)
8014162: 6852 ldr r2, [r2, #4]
8014164: 0992 lsrs r2, r2, #6
8014166: 4611 mov r1, r2
8014168: f04f 0200 mov.w r2, #0
801416c: f240 15ff movw r5, #511 ; 0x1ff
8014170: f04f 0600 mov.w r6, #0
8014174: ea05 0501 and.w r5, r5, r1
8014178: ea06 0602 and.w r6, r6, r2
801417c: 4629 mov r1, r5
801417e: 4632 mov r2, r6
8014180: ea4f 1b42 mov.w fp, r2, lsl #5
8014184: ea4b 6bd1 orr.w fp, fp, r1, lsr #27
8014188: ea4f 1a41 mov.w sl, r1, lsl #5
801418c: 4651 mov r1, sl
801418e: 465a mov r2, fp
8014190: 46aa mov sl, r5
8014192: 46b3 mov fp, r6
8014194: 4655 mov r5, sl
8014196: 465e mov r6, fp
8014198: 1b4d subs r5, r1, r5
801419a: eb62 0606 sbc.w r6, r2, r6
801419e: 4629 mov r1, r5
80141a0: 4632 mov r2, r6
80141a2: 0194 lsls r4, r2, #6
80141a4: ea44 6491 orr.w r4, r4, r1, lsr #26
80141a8: 018b lsls r3, r1, #6
80141aa: 1a5b subs r3, r3, r1
80141ac: eb64 0402 sbc.w r4, r4, r2
80141b0: ea4f 09c4 mov.w r9, r4, lsl #3
80141b4: ea49 7953 orr.w r9, r9, r3, lsr #29
80141b8: ea4f 08c3 mov.w r8, r3, lsl #3
80141bc: 4643 mov r3, r8
80141be: 464c mov r4, r9
80141c0: 4655 mov r5, sl
80141c2: 465e mov r6, fp
80141c4: 18ed adds r5, r5, r3
80141c6: eb46 0604 adc.w r6, r6, r4
80141ca: 462b mov r3, r5
80141cc: 4634 mov r4, r6
80141ce: 02a2 lsls r2, r4, #10
80141d0: 607a str r2, [r7, #4]
80141d2: 687a ldr r2, [r7, #4]
80141d4: ea42 5293 orr.w r2, r2, r3, lsr #22
80141d8: 607a str r2, [r7, #4]
80141da: 029b lsls r3, r3, #10
80141dc: 603b str r3, [r7, #0]
80141de: e897 0018 ldmia.w r7, {r3, r4}
80141e2: 4618 mov r0, r3
80141e4: 4621 mov r1, r4
80141e6: 68fb ldr r3, [r7, #12]
80141e8: f04f 0400 mov.w r4, #0
80141ec: 461a mov r2, r3
80141ee: 4623 mov r3, r4
80141f0: f7ec f82a bl 8000248 <__aeabi_uldivmod>
80141f4: 4603 mov r3, r0
80141f6: 460c mov r4, r1
80141f8: 617b str r3, [r7, #20]
}
pllp = ((((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >> RCC_PLLCFGR_PLLP_Pos) + 1) * 2);
80141fa: 4b0b ldr r3, [pc, #44] ; (8014228 <HAL_RCC_GetSysClockFreq+0x160>)
80141fc: 685b ldr r3, [r3, #4]
80141fe: 0c1b lsrs r3, r3, #16
8014200: f003 0303 and.w r3, r3, #3
8014204: 3301 adds r3, #1
8014206: 005b lsls r3, r3, #1
8014208: 60bb str r3, [r7, #8]
sysclockfreq = pllvco / pllp;
801420a: 697a ldr r2, [r7, #20]
801420c: 68bb ldr r3, [r7, #8]
801420e: fbb2 f3f3 udiv r3, r2, r3
8014212: 613b str r3, [r7, #16]
break;
8014214: e002 b.n 801421c <HAL_RCC_GetSysClockFreq+0x154>
}
default:
{
sysclockfreq = HSI_VALUE;
8014216: 4b05 ldr r3, [pc, #20] ; (801422c <HAL_RCC_GetSysClockFreq+0x164>)
8014218: 613b str r3, [r7, #16]
break;
801421a: bf00 nop
}
}
return sysclockfreq;
801421c: 693b ldr r3, [r7, #16]
}
801421e: 4618 mov r0, r3
8014220: 371c adds r7, #28
8014222: 46bd mov sp, r7
8014224: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
8014228: 40023800 .word 0x40023800
801422c: 00f42400 .word 0x00f42400
8014230: 017d7840 .word 0x017d7840
08014234 <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)
{
8014234: b480 push {r7}
8014236: af00 add r7, sp, #0
return SystemCoreClock;
8014238: 4b03 ldr r3, [pc, #12] ; (8014248 <HAL_RCC_GetHCLKFreq+0x14>)
801423a: 681b ldr r3, [r3, #0]
}
801423c: 4618 mov r0, r3
801423e: 46bd mov sp, r7
8014240: f85d 7b04 ldr.w r7, [sp], #4
8014244: 4770 bx lr
8014246: bf00 nop
8014248: 20020874 .word 0x20020874
0801424c <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)
{
801424c: b580 push {r7, lr}
801424e: 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]);
8014250: f7ff fff0 bl 8014234 <HAL_RCC_GetHCLKFreq>
8014254: 4601 mov r1, r0
8014256: 4b05 ldr r3, [pc, #20] ; (801426c <HAL_RCC_GetPCLK1Freq+0x20>)
8014258: 689b ldr r3, [r3, #8]
801425a: 0a9b lsrs r3, r3, #10
801425c: f003 0307 and.w r3, r3, #7
8014260: 4a03 ldr r2, [pc, #12] ; (8014270 <HAL_RCC_GetPCLK1Freq+0x24>)
8014262: 5cd3 ldrb r3, [r2, r3]
8014264: fa21 f303 lsr.w r3, r1, r3
}
8014268: 4618 mov r0, r3
801426a: bd80 pop {r7, pc}
801426c: 40023800 .word 0x40023800
8014270: 0801b064 .word 0x0801b064
08014274 <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)
{
8014274: b580 push {r7, lr}
8014276: 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]);
8014278: f7ff ffdc bl 8014234 <HAL_RCC_GetHCLKFreq>
801427c: 4601 mov r1, r0
801427e: 4b05 ldr r3, [pc, #20] ; (8014294 <HAL_RCC_GetPCLK2Freq+0x20>)
8014280: 689b ldr r3, [r3, #8]
8014282: 0b5b lsrs r3, r3, #13
8014284: f003 0307 and.w r3, r3, #7
8014288: 4a03 ldr r2, [pc, #12] ; (8014298 <HAL_RCC_GetPCLK2Freq+0x24>)
801428a: 5cd3 ldrb r3, [r2, r3]
801428c: fa21 f303 lsr.w r3, r1, r3
}
8014290: 4618 mov r0, r3
8014292: bd80 pop {r7, pc}
8014294: 40023800 .word 0x40023800
8014298: 0801b064 .word 0x0801b064
0801429c <HAL_RCCEx_PeriphCLKConfig>:
* the backup registers) are set to their reset values.
*
* @retval HAL status
*/
HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit)
{
801429c: b580 push {r7, lr}
801429e: b088 sub sp, #32
80142a0: af00 add r7, sp, #0
80142a2: 6078 str r0, [r7, #4]
uint32_t tickstart = 0;
80142a4: 2300 movs r3, #0
80142a6: 617b str r3, [r7, #20]
uint32_t tmpreg0 = 0;
80142a8: 2300 movs r3, #0
80142aa: 613b str r3, [r7, #16]
uint32_t tmpreg1 = 0;
80142ac: 2300 movs r3, #0
80142ae: 60fb str r3, [r7, #12]
uint32_t plli2sused = 0;
80142b0: 2300 movs r3, #0
80142b2: 61fb str r3, [r7, #28]
uint32_t pllsaiused = 0;
80142b4: 2300 movs r3, #0
80142b6: 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))
80142b8: 687b ldr r3, [r7, #4]
80142ba: 681b ldr r3, [r3, #0]
80142bc: f003 0301 and.w r3, r3, #1
80142c0: 2b00 cmp r3, #0
80142c2: d012 beq.n 80142ea <HAL_RCCEx_PeriphCLKConfig+0x4e>
{
/* Check the parameters */
assert_param(IS_RCC_I2SCLKSOURCE(PeriphClkInit->I2sClockSelection));
/* Configure I2S Clock source */
__HAL_RCC_I2S_CONFIG(PeriphClkInit->I2sClockSelection);
80142c4: 4a69 ldr r2, [pc, #420] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
80142c6: 4b69 ldr r3, [pc, #420] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
80142c8: 689b ldr r3, [r3, #8]
80142ca: f423 0300 bic.w r3, r3, #8388608 ; 0x800000
80142ce: 6093 str r3, [r2, #8]
80142d0: 4966 ldr r1, [pc, #408] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
80142d2: 4b66 ldr r3, [pc, #408] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
80142d4: 689a ldr r2, [r3, #8]
80142d6: 687b ldr r3, [r7, #4]
80142d8: 6b5b ldr r3, [r3, #52] ; 0x34
80142da: 4313 orrs r3, r2
80142dc: 608b str r3, [r1, #8]
/* Enable the PLLI2S when it's used as clock source for I2S */
if(PeriphClkInit->I2sClockSelection == RCC_I2SCLKSOURCE_PLLI2S)
80142de: 687b ldr r3, [r7, #4]
80142e0: 6b5b ldr r3, [r3, #52] ; 0x34
80142e2: 2b00 cmp r3, #0
80142e4: d101 bne.n 80142ea <HAL_RCCEx_PeriphCLKConfig+0x4e>
{
plli2sused = 1;
80142e6: 2301 movs r3, #1
80142e8: 61fb str r3, [r7, #28]
}
}
/*------------------------------------ SAI1 configuration --------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == (RCC_PERIPHCLK_SAI1))
80142ea: 687b ldr r3, [r7, #4]
80142ec: 681b ldr r3, [r3, #0]
80142ee: f403 2300 and.w r3, r3, #524288 ; 0x80000
80142f2: 2b00 cmp r3, #0
80142f4: d017 beq.n 8014326 <HAL_RCCEx_PeriphCLKConfig+0x8a>
{
/* Check the parameters */
assert_param(IS_RCC_SAI1CLKSOURCE(PeriphClkInit->Sai1ClockSelection));
/* Configure SAI1 Clock source */
__HAL_RCC_SAI1_CONFIG(PeriphClkInit->Sai1ClockSelection);
80142f6: 495d ldr r1, [pc, #372] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
80142f8: 4b5c ldr r3, [pc, #368] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
80142fa: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
80142fe: f423 1240 bic.w r2, r3, #3145728 ; 0x300000
8014302: 687b ldr r3, [r7, #4]
8014304: 6bdb ldr r3, [r3, #60] ; 0x3c
8014306: 4313 orrs r3, r2
8014308: 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)
801430c: 687b ldr r3, [r7, #4]
801430e: 6bdb ldr r3, [r3, #60] ; 0x3c
8014310: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000
8014314: d101 bne.n 801431a <HAL_RCCEx_PeriphCLKConfig+0x7e>
{
plli2sused = 1;
8014316: 2301 movs r3, #1
8014318: 61fb str r3, [r7, #28]
}
/* Enable the PLLSAI when it's used as clock source for SAI */
if(PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI)
801431a: 687b ldr r3, [r7, #4]
801431c: 6bdb ldr r3, [r3, #60] ; 0x3c
801431e: 2b00 cmp r3, #0
8014320: d101 bne.n 8014326 <HAL_RCCEx_PeriphCLKConfig+0x8a>
{
pllsaiused = 1;
8014322: 2301 movs r3, #1
8014324: 61bb str r3, [r7, #24]
}
}
/*------------------------------------ SAI2 configuration --------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == (RCC_PERIPHCLK_SAI2))
8014326: 687b ldr r3, [r7, #4]
8014328: 681b ldr r3, [r3, #0]
801432a: f403 1380 and.w r3, r3, #1048576 ; 0x100000
801432e: 2b00 cmp r3, #0
8014330: d017 beq.n 8014362 <HAL_RCCEx_PeriphCLKConfig+0xc6>
{
/* Check the parameters */
assert_param(IS_RCC_SAI2CLKSOURCE(PeriphClkInit->Sai2ClockSelection));
/* Configure SAI2 Clock source */
__HAL_RCC_SAI2_CONFIG(PeriphClkInit->Sai2ClockSelection);
8014332: 494e ldr r1, [pc, #312] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8014334: 4b4d ldr r3, [pc, #308] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8014336: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
801433a: f423 0240 bic.w r2, r3, #12582912 ; 0xc00000
801433e: 687b ldr r3, [r7, #4]
8014340: 6c1b ldr r3, [r3, #64] ; 0x40
8014342: 4313 orrs r3, r2
8014344: 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)
8014348: 687b ldr r3, [r7, #4]
801434a: 6c1b ldr r3, [r3, #64] ; 0x40
801434c: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000
8014350: d101 bne.n 8014356 <HAL_RCCEx_PeriphCLKConfig+0xba>
{
plli2sused = 1;
8014352: 2301 movs r3, #1
8014354: 61fb str r3, [r7, #28]
}
/* Enable the PLLSAI when it's used as clock source for SAI */
if(PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI)
8014356: 687b ldr r3, [r7, #4]
8014358: 6c1b ldr r3, [r3, #64] ; 0x40
801435a: 2b00 cmp r3, #0
801435c: d101 bne.n 8014362 <HAL_RCCEx_PeriphCLKConfig+0xc6>
{
pllsaiused = 1;
801435e: 2301 movs r3, #1
8014360: 61bb str r3, [r7, #24]
}
}
/*-------------------------------------- SPDIF-RX Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SPDIFRX) == RCC_PERIPHCLK_SPDIFRX)
8014362: 687b ldr r3, [r7, #4]
8014364: 681b ldr r3, [r3, #0]
8014366: f003 7380 and.w r3, r3, #16777216 ; 0x1000000
801436a: 2b00 cmp r3, #0
801436c: d001 beq.n 8014372 <HAL_RCCEx_PeriphCLKConfig+0xd6>
{
plli2sused = 1;
801436e: 2301 movs r3, #1
8014370: 61fb str r3, [r7, #28]
}
/*------------------------------------ RTC configuration --------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RTC) == (RCC_PERIPHCLK_RTC))
8014372: 687b ldr r3, [r7, #4]
8014374: 681b ldr r3, [r3, #0]
8014376: f003 0320 and.w r3, r3, #32
801437a: 2b00 cmp r3, #0
801437c: f000 808b beq.w 8014496 <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();
8014380: 4a3a ldr r2, [pc, #232] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8014382: 4b3a ldr r3, [pc, #232] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8014384: 6c1b ldr r3, [r3, #64] ; 0x40
8014386: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
801438a: 6413 str r3, [r2, #64] ; 0x40
801438c: 4b37 ldr r3, [pc, #220] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
801438e: 6c1b ldr r3, [r3, #64] ; 0x40
8014390: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
8014394: 60bb str r3, [r7, #8]
8014396: 68bb ldr r3, [r7, #8]
/* Enable write access to Backup domain */
PWR->CR1 |= PWR_CR1_DBP;
8014398: 4a35 ldr r2, [pc, #212] ; (8014470 <HAL_RCCEx_PeriphCLKConfig+0x1d4>)
801439a: 4b35 ldr r3, [pc, #212] ; (8014470 <HAL_RCCEx_PeriphCLKConfig+0x1d4>)
801439c: 681b ldr r3, [r3, #0]
801439e: f443 7380 orr.w r3, r3, #256 ; 0x100
80143a2: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
80143a4: f7fd fbbc bl 8011b20 <HAL_GetTick>
80143a8: 6178 str r0, [r7, #20]
/* Wait for Backup domain Write protection disable */
while((PWR->CR1 & PWR_CR1_DBP) == RESET)
80143aa: e008 b.n 80143be <HAL_RCCEx_PeriphCLKConfig+0x122>
{
if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE)
80143ac: f7fd fbb8 bl 8011b20 <HAL_GetTick>
80143b0: 4602 mov r2, r0
80143b2: 697b ldr r3, [r7, #20]
80143b4: 1ad3 subs r3, r2, r3
80143b6: 2b64 cmp r3, #100 ; 0x64
80143b8: d901 bls.n 80143be <HAL_RCCEx_PeriphCLKConfig+0x122>
{
return HAL_TIMEOUT;
80143ba: 2303 movs r3, #3
80143bc: e38d b.n 8014ada <HAL_RCCEx_PeriphCLKConfig+0x83e>
while((PWR->CR1 & PWR_CR1_DBP) == RESET)
80143be: 4b2c ldr r3, [pc, #176] ; (8014470 <HAL_RCCEx_PeriphCLKConfig+0x1d4>)
80143c0: 681b ldr r3, [r3, #0]
80143c2: f403 7380 and.w r3, r3, #256 ; 0x100
80143c6: 2b00 cmp r3, #0
80143c8: d0f0 beq.n 80143ac <HAL_RCCEx_PeriphCLKConfig+0x110>
}
}
/* Reset the Backup domain only if the RTC Clock source selection is modified */
tmpreg0 = (RCC->BDCR & RCC_BDCR_RTCSEL);
80143ca: 4b28 ldr r3, [pc, #160] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
80143cc: 6f1b ldr r3, [r3, #112] ; 0x70
80143ce: f403 7340 and.w r3, r3, #768 ; 0x300
80143d2: 613b str r3, [r7, #16]
if((tmpreg0 != 0x00000000U) && (tmpreg0 != (PeriphClkInit->RTCClockSelection & RCC_BDCR_RTCSEL)))
80143d4: 693b ldr r3, [r7, #16]
80143d6: 2b00 cmp r3, #0
80143d8: d035 beq.n 8014446 <HAL_RCCEx_PeriphCLKConfig+0x1aa>
80143da: 687b ldr r3, [r7, #4]
80143dc: 6b1b ldr r3, [r3, #48] ; 0x30
80143de: f403 7240 and.w r2, r3, #768 ; 0x300
80143e2: 693b ldr r3, [r7, #16]
80143e4: 429a cmp r2, r3
80143e6: d02e beq.n 8014446 <HAL_RCCEx_PeriphCLKConfig+0x1aa>
{
/* Store the content of BDCR register before the reset of Backup Domain */
tmpreg0 = (RCC->BDCR & ~(RCC_BDCR_RTCSEL));
80143e8: 4b20 ldr r3, [pc, #128] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
80143ea: 6f1b ldr r3, [r3, #112] ; 0x70
80143ec: f423 7340 bic.w r3, r3, #768 ; 0x300
80143f0: 613b str r3, [r7, #16]
/* RTC Clock selection can be changed only if the Backup Domain is reset */
__HAL_RCC_BACKUPRESET_FORCE();
80143f2: 4a1e ldr r2, [pc, #120] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
80143f4: 4b1d ldr r3, [pc, #116] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
80143f6: 6f1b ldr r3, [r3, #112] ; 0x70
80143f8: f443 3380 orr.w r3, r3, #65536 ; 0x10000
80143fc: 6713 str r3, [r2, #112] ; 0x70
__HAL_RCC_BACKUPRESET_RELEASE();
80143fe: 4a1b ldr r2, [pc, #108] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8014400: 4b1a ldr r3, [pc, #104] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8014402: 6f1b ldr r3, [r3, #112] ; 0x70
8014404: f423 3380 bic.w r3, r3, #65536 ; 0x10000
8014408: 6713 str r3, [r2, #112] ; 0x70
/* Restore the Content of BDCR register */
RCC->BDCR = tmpreg0;
801440a: 4a18 ldr r2, [pc, #96] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
801440c: 693b ldr r3, [r7, #16]
801440e: 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))
8014410: 4b16 ldr r3, [pc, #88] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8014412: 6f1b ldr r3, [r3, #112] ; 0x70
8014414: f003 0301 and.w r3, r3, #1
8014418: 2b01 cmp r3, #1
801441a: d114 bne.n 8014446 <HAL_RCCEx_PeriphCLKConfig+0x1aa>
{
/* Get Start Tick*/
tickstart = HAL_GetTick();
801441c: f7fd fb80 bl 8011b20 <HAL_GetTick>
8014420: 6178 str r0, [r7, #20]
/* Wait till LSE is ready */
while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET)
8014422: e00a b.n 801443a <HAL_RCCEx_PeriphCLKConfig+0x19e>
{
if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE)
8014424: f7fd fb7c bl 8011b20 <HAL_GetTick>
8014428: 4602 mov r2, r0
801442a: 697b ldr r3, [r7, #20]
801442c: 1ad3 subs r3, r2, r3
801442e: f241 3288 movw r2, #5000 ; 0x1388
8014432: 4293 cmp r3, r2
8014434: d901 bls.n 801443a <HAL_RCCEx_PeriphCLKConfig+0x19e>
{
return HAL_TIMEOUT;
8014436: 2303 movs r3, #3
8014438: e34f b.n 8014ada <HAL_RCCEx_PeriphCLKConfig+0x83e>
while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET)
801443a: 4b0c ldr r3, [pc, #48] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
801443c: 6f1b ldr r3, [r3, #112] ; 0x70
801443e: f003 0302 and.w r3, r3, #2
8014442: 2b00 cmp r3, #0
8014444: d0ee beq.n 8014424 <HAL_RCCEx_PeriphCLKConfig+0x188>
}
}
}
}
__HAL_RCC_RTC_CONFIG(PeriphClkInit->RTCClockSelection);
8014446: 687b ldr r3, [r7, #4]
8014448: 6b1b ldr r3, [r3, #48] ; 0x30
801444a: f403 7340 and.w r3, r3, #768 ; 0x300
801444e: f5b3 7f40 cmp.w r3, #768 ; 0x300
8014452: d111 bne.n 8014478 <HAL_RCCEx_PeriphCLKConfig+0x1dc>
8014454: 4805 ldr r0, [pc, #20] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8014456: 4b05 ldr r3, [pc, #20] ; (801446c <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8014458: 689b ldr r3, [r3, #8]
801445a: f423 12f8 bic.w r2, r3, #2031616 ; 0x1f0000
801445e: 687b ldr r3, [r7, #4]
8014460: 6b19 ldr r1, [r3, #48] ; 0x30
8014462: 4b04 ldr r3, [pc, #16] ; (8014474 <HAL_RCCEx_PeriphCLKConfig+0x1d8>)
8014464: 400b ands r3, r1
8014466: 4313 orrs r3, r2
8014468: 6083 str r3, [r0, #8]
801446a: e00b b.n 8014484 <HAL_RCCEx_PeriphCLKConfig+0x1e8>
801446c: 40023800 .word 0x40023800
8014470: 40007000 .word 0x40007000
8014474: 0ffffcff .word 0x0ffffcff
8014478: 4ab2 ldr r2, [pc, #712] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801447a: 4bb2 ldr r3, [pc, #712] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801447c: 689b ldr r3, [r3, #8]
801447e: f423 13f8 bic.w r3, r3, #2031616 ; 0x1f0000
8014482: 6093 str r3, [r2, #8]
8014484: 49af ldr r1, [pc, #700] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014486: 4baf ldr r3, [pc, #700] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014488: 6f1a ldr r2, [r3, #112] ; 0x70
801448a: 687b ldr r3, [r7, #4]
801448c: 6b1b ldr r3, [r3, #48] ; 0x30
801448e: f3c3 030b ubfx r3, r3, #0, #12
8014492: 4313 orrs r3, r2
8014494: 670b str r3, [r1, #112] ; 0x70
}
/*------------------------------------ TIM configuration --------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_TIM) == (RCC_PERIPHCLK_TIM))
8014496: 687b ldr r3, [r7, #4]
8014498: 681b ldr r3, [r3, #0]
801449a: f003 0310 and.w r3, r3, #16
801449e: 2b00 cmp r3, #0
80144a0: d010 beq.n 80144c4 <HAL_RCCEx_PeriphCLKConfig+0x228>
{
/* Check the parameters */
assert_param(IS_RCC_TIMPRES(PeriphClkInit->TIMPresSelection));
/* Configure Timer Prescaler */
__HAL_RCC_TIMCLKPRESCALER(PeriphClkInit->TIMPresSelection);
80144a2: 4aa8 ldr r2, [pc, #672] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80144a4: 4ba7 ldr r3, [pc, #668] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80144a6: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
80144aa: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000
80144ae: f8c2 308c str.w r3, [r2, #140] ; 0x8c
80144b2: 49a4 ldr r1, [pc, #656] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80144b4: 4ba3 ldr r3, [pc, #652] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80144b6: f8d3 208c ldr.w r2, [r3, #140] ; 0x8c
80144ba: 687b ldr r3, [r7, #4]
80144bc: 6b9b ldr r3, [r3, #56] ; 0x38
80144be: 4313 orrs r3, r2
80144c0: f8c1 308c str.w r3, [r1, #140] ; 0x8c
}
/*-------------------------------------- I2C1 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1)
80144c4: 687b ldr r3, [r7, #4]
80144c6: 681b ldr r3, [r3, #0]
80144c8: f403 4380 and.w r3, r3, #16384 ; 0x4000
80144cc: 2b00 cmp r3, #0
80144ce: d00a beq.n 80144e6 <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);
80144d0: 499c ldr r1, [pc, #624] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80144d2: 4b9c ldr r3, [pc, #624] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80144d4: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80144d8: f423 3240 bic.w r2, r3, #196608 ; 0x30000
80144dc: 687b ldr r3, [r7, #4]
80144de: 6e5b ldr r3, [r3, #100] ; 0x64
80144e0: 4313 orrs r3, r2
80144e2: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- I2C2 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2)
80144e6: 687b ldr r3, [r7, #4]
80144e8: 681b ldr r3, [r3, #0]
80144ea: f403 4300 and.w r3, r3, #32768 ; 0x8000
80144ee: 2b00 cmp r3, #0
80144f0: d00a beq.n 8014508 <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);
80144f2: 4994 ldr r1, [pc, #592] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80144f4: 4b93 ldr r3, [pc, #588] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80144f6: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80144fa: f423 2240 bic.w r2, r3, #786432 ; 0xc0000
80144fe: 687b ldr r3, [r7, #4]
8014500: 6e9b ldr r3, [r3, #104] ; 0x68
8014502: 4313 orrs r3, r2
8014504: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- I2C3 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3)
8014508: 687b ldr r3, [r7, #4]
801450a: 681b ldr r3, [r3, #0]
801450c: f403 3380 and.w r3, r3, #65536 ; 0x10000
8014510: 2b00 cmp r3, #0
8014512: d00a beq.n 801452a <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);
8014514: 498b ldr r1, [pc, #556] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014516: 4b8b ldr r3, [pc, #556] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014518: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
801451c: f423 1240 bic.w r2, r3, #3145728 ; 0x300000
8014520: 687b ldr r3, [r7, #4]
8014522: 6edb ldr r3, [r3, #108] ; 0x6c
8014524: 4313 orrs r3, r2
8014526: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- I2C4 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C4) == RCC_PERIPHCLK_I2C4)
801452a: 687b ldr r3, [r7, #4]
801452c: 681b ldr r3, [r3, #0]
801452e: f403 3300 and.w r3, r3, #131072 ; 0x20000
8014532: 2b00 cmp r3, #0
8014534: d00a beq.n 801454c <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);
8014536: 4983 ldr r1, [pc, #524] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014538: 4b82 ldr r3, [pc, #520] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801453a: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
801453e: f423 0240 bic.w r2, r3, #12582912 ; 0xc00000
8014542: 687b ldr r3, [r7, #4]
8014544: 6f1b ldr r3, [r3, #112] ; 0x70
8014546: 4313 orrs r3, r2
8014548: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- USART1 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1)
801454c: 687b ldr r3, [r7, #4]
801454e: 681b ldr r3, [r3, #0]
8014550: f003 0340 and.w r3, r3, #64 ; 0x40
8014554: 2b00 cmp r3, #0
8014556: d00a beq.n 801456e <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);
8014558: 497a ldr r1, [pc, #488] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801455a: 4b7a ldr r3, [pc, #488] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801455c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8014560: f023 0203 bic.w r2, r3, #3
8014564: 687b ldr r3, [r7, #4]
8014566: 6c5b ldr r3, [r3, #68] ; 0x44
8014568: 4313 orrs r3, r2
801456a: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- USART2 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2)
801456e: 687b ldr r3, [r7, #4]
8014570: 681b ldr r3, [r3, #0]
8014572: f003 0380 and.w r3, r3, #128 ; 0x80
8014576: 2b00 cmp r3, #0
8014578: d00a beq.n 8014590 <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);
801457a: 4972 ldr r1, [pc, #456] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801457c: 4b71 ldr r3, [pc, #452] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801457e: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8014582: f023 020c bic.w r2, r3, #12
8014586: 687b ldr r3, [r7, #4]
8014588: 6c9b ldr r3, [r3, #72] ; 0x48
801458a: 4313 orrs r3, r2
801458c: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- USART3 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART3) == RCC_PERIPHCLK_USART3)
8014590: 687b ldr r3, [r7, #4]
8014592: 681b ldr r3, [r3, #0]
8014594: f403 7380 and.w r3, r3, #256 ; 0x100
8014598: 2b00 cmp r3, #0
801459a: d00a beq.n 80145b2 <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);
801459c: 4969 ldr r1, [pc, #420] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801459e: 4b69 ldr r3, [pc, #420] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80145a0: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80145a4: f023 0230 bic.w r2, r3, #48 ; 0x30
80145a8: 687b ldr r3, [r7, #4]
80145aa: 6cdb ldr r3, [r3, #76] ; 0x4c
80145ac: 4313 orrs r3, r2
80145ae: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- UART4 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART4) == RCC_PERIPHCLK_UART4)
80145b2: 687b ldr r3, [r7, #4]
80145b4: 681b ldr r3, [r3, #0]
80145b6: f403 7300 and.w r3, r3, #512 ; 0x200
80145ba: 2b00 cmp r3, #0
80145bc: d00a beq.n 80145d4 <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);
80145be: 4961 ldr r1, [pc, #388] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80145c0: 4b60 ldr r3, [pc, #384] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80145c2: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80145c6: f023 02c0 bic.w r2, r3, #192 ; 0xc0
80145ca: 687b ldr r3, [r7, #4]
80145cc: 6d1b ldr r3, [r3, #80] ; 0x50
80145ce: 4313 orrs r3, r2
80145d0: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- UART5 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART5) == RCC_PERIPHCLK_UART5)
80145d4: 687b ldr r3, [r7, #4]
80145d6: 681b ldr r3, [r3, #0]
80145d8: f403 6380 and.w r3, r3, #1024 ; 0x400
80145dc: 2b00 cmp r3, #0
80145de: d00a beq.n 80145f6 <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);
80145e0: 4958 ldr r1, [pc, #352] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80145e2: 4b58 ldr r3, [pc, #352] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80145e4: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80145e8: f423 7240 bic.w r2, r3, #768 ; 0x300
80145ec: 687b ldr r3, [r7, #4]
80145ee: 6d5b ldr r3, [r3, #84] ; 0x54
80145f0: 4313 orrs r3, r2
80145f2: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- USART6 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART6) == RCC_PERIPHCLK_USART6)
80145f6: 687b ldr r3, [r7, #4]
80145f8: 681b ldr r3, [r3, #0]
80145fa: f403 6300 and.w r3, r3, #2048 ; 0x800
80145fe: 2b00 cmp r3, #0
8014600: d00a beq.n 8014618 <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);
8014602: 4950 ldr r1, [pc, #320] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014604: 4b4f ldr r3, [pc, #316] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014606: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
801460a: f423 6240 bic.w r2, r3, #3072 ; 0xc00
801460e: 687b ldr r3, [r7, #4]
8014610: 6d9b ldr r3, [r3, #88] ; 0x58
8014612: 4313 orrs r3, r2
8014614: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- UART7 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART7) == RCC_PERIPHCLK_UART7)
8014618: 687b ldr r3, [r7, #4]
801461a: 681b ldr r3, [r3, #0]
801461c: f403 5380 and.w r3, r3, #4096 ; 0x1000
8014620: 2b00 cmp r3, #0
8014622: d00a beq.n 801463a <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);
8014624: 4947 ldr r1, [pc, #284] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014626: 4b47 ldr r3, [pc, #284] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014628: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
801462c: f423 5240 bic.w r2, r3, #12288 ; 0x3000
8014630: 687b ldr r3, [r7, #4]
8014632: 6ddb ldr r3, [r3, #92] ; 0x5c
8014634: 4313 orrs r3, r2
8014636: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- UART8 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART8) == RCC_PERIPHCLK_UART8)
801463a: 687b ldr r3, [r7, #4]
801463c: 681b ldr r3, [r3, #0]
801463e: f403 5300 and.w r3, r3, #8192 ; 0x2000
8014642: 2b00 cmp r3, #0
8014644: d00a beq.n 801465c <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);
8014646: 493f ldr r1, [pc, #252] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014648: 4b3e ldr r3, [pc, #248] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801464a: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
801464e: f423 4240 bic.w r2, r3, #49152 ; 0xc000
8014652: 687b ldr r3, [r7, #4]
8014654: 6e1b ldr r3, [r3, #96] ; 0x60
8014656: 4313 orrs r3, r2
8014658: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*--------------------------------------- CEC Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CEC) == RCC_PERIPHCLK_CEC)
801465c: 687b ldr r3, [r7, #4]
801465e: 681b ldr r3, [r3, #0]
8014660: f403 0380 and.w r3, r3, #4194304 ; 0x400000
8014664: 2b00 cmp r3, #0
8014666: d00a beq.n 801467e <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);
8014668: 4936 ldr r1, [pc, #216] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801466a: 4b36 ldr r3, [pc, #216] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801466c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8014670: f023 6280 bic.w r2, r3, #67108864 ; 0x4000000
8014674: 687b ldr r3, [r7, #4]
8014676: 6f9b ldr r3, [r3, #120] ; 0x78
8014678: 4313 orrs r3, r2
801467a: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- CK48 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CLK48) == RCC_PERIPHCLK_CLK48)
801467e: 687b ldr r3, [r7, #4]
8014680: 681b ldr r3, [r3, #0]
8014682: f403 1300 and.w r3, r3, #2097152 ; 0x200000
8014686: 2b00 cmp r3, #0
8014688: d011 beq.n 80146ae <HAL_RCCEx_PeriphCLKConfig+0x412>
{
/* Check the parameters */
assert_param(IS_RCC_CLK48SOURCE(PeriphClkInit->Clk48ClockSelection));
/* Configure the CLK48 source */
__HAL_RCC_CLK48_CONFIG(PeriphClkInit->Clk48ClockSelection);
801468a: 492e ldr r1, [pc, #184] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801468c: 4b2d ldr r3, [pc, #180] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801468e: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8014692: f023 6200 bic.w r2, r3, #134217728 ; 0x8000000
8014696: 687b ldr r3, [r7, #4]
8014698: 6fdb ldr r3, [r3, #124] ; 0x7c
801469a: 4313 orrs r3, r2
801469c: 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)
80146a0: 687b ldr r3, [r7, #4]
80146a2: 6fdb ldr r3, [r3, #124] ; 0x7c
80146a4: f1b3 6f00 cmp.w r3, #134217728 ; 0x8000000
80146a8: d101 bne.n 80146ae <HAL_RCCEx_PeriphCLKConfig+0x412>
{
pllsaiused = 1;
80146aa: 2301 movs r3, #1
80146ac: 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)
80146ae: 687b ldr r3, [r7, #4]
80146b0: 681b ldr r3, [r3, #0]
80146b2: f003 0308 and.w r3, r3, #8
80146b6: 2b00 cmp r3, #0
80146b8: d001 beq.n 80146be <HAL_RCCEx_PeriphCLKConfig+0x422>
{
pllsaiused = 1;
80146ba: 2301 movs r3, #1
80146bc: 61bb str r3, [r7, #24]
}
#endif /* STM32F746xx || STM32F756xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx || STM32F750xx */
/*-------------------------------------- LPTIM1 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPTIM1) == RCC_PERIPHCLK_LPTIM1)
80146be: 687b ldr r3, [r7, #4]
80146c0: 681b ldr r3, [r3, #0]
80146c2: f403 2380 and.w r3, r3, #262144 ; 0x40000
80146c6: 2b00 cmp r3, #0
80146c8: d00a beq.n 80146e0 <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);
80146ca: 491e ldr r1, [pc, #120] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80146cc: 4b1d ldr r3, [pc, #116] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80146ce: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80146d2: f023 7240 bic.w r2, r3, #50331648 ; 0x3000000
80146d6: 687b ldr r3, [r7, #4]
80146d8: 6f5b ldr r3, [r3, #116] ; 0x74
80146da: 4313 orrs r3, r2
80146dc: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*------------------------------------- SDMMC1 Configuration ------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SDMMC1) == RCC_PERIPHCLK_SDMMC1)
80146e0: 687b ldr r3, [r7, #4]
80146e2: 681b ldr r3, [r3, #0]
80146e4: f403 0300 and.w r3, r3, #8388608 ; 0x800000
80146e8: 2b00 cmp r3, #0
80146ea: d00b beq.n 8014704 <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);
80146ec: 4915 ldr r1, [pc, #84] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80146ee: 4b15 ldr r3, [pc, #84] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80146f0: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80146f4: f023 5280 bic.w r2, r3, #268435456 ; 0x10000000
80146f8: 687b ldr r3, [r7, #4]
80146fa: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
80146fe: 4313 orrs r3, r2
8014700: 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)
8014704: 687b ldr r3, [r7, #4]
8014706: 681b ldr r3, [r3, #0]
8014708: f003 6380 and.w r3, r3, #67108864 ; 0x4000000
801470c: 2b00 cmp r3, #0
801470e: d00b beq.n 8014728 <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);
8014710: 490c ldr r1, [pc, #48] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014712: 4b0c ldr r3, [pc, #48] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014714: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8014718: f023 5200 bic.w r2, r3, #536870912 ; 0x20000000
801471c: 687b ldr r3, [r7, #4]
801471e: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
8014722: 4313 orrs r3, r2
8014724: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*------------------------------------- DFSDM1 Configuration -------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_DFSDM1) == RCC_PERIPHCLK_DFSDM1)
8014728: 687b ldr r3, [r7, #4]
801472a: 681b ldr r3, [r3, #0]
801472c: f003 6300 and.w r3, r3, #134217728 ; 0x8000000
8014730: 2b00 cmp r3, #0
8014732: d00e beq.n 8014752 <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);
8014734: 4903 ldr r1, [pc, #12] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014736: 4b03 ldr r3, [pc, #12] ; (8014744 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014738: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
801473c: f023 7200 bic.w r2, r3, #33554432 ; 0x2000000
8014740: 687b ldr r3, [r7, #4]
8014742: e001 b.n 8014748 <HAL_RCCEx_PeriphCLKConfig+0x4ac>
8014744: 40023800 .word 0x40023800
8014748: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
801474c: 4313 orrs r3, r2
801474e: f8c1 308c str.w r3, [r1, #140] ; 0x8c
}
/*------------------------------------- DFSDM AUDIO Configuration -------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_DFSDM1_AUDIO) == RCC_PERIPHCLK_DFSDM1_AUDIO)
8014752: 687b ldr r3, [r7, #4]
8014754: 681b ldr r3, [r3, #0]
8014756: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
801475a: 2b00 cmp r3, #0
801475c: d00b beq.n 8014776 <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);
801475e: 4981 ldr r1, [pc, #516] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014760: 4b80 ldr r3, [pc, #512] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014762: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
8014766: f023 6280 bic.w r2, r3, #67108864 ; 0x4000000
801476a: 687b ldr r3, [r7, #4]
801476c: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
8014770: 4313 orrs r3, r2
8014772: 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))
8014776: 69fb ldr r3, [r7, #28]
8014778: 2b01 cmp r3, #1
801477a: d006 beq.n 801478a <HAL_RCCEx_PeriphCLKConfig+0x4ee>
801477c: 687b ldr r3, [r7, #4]
801477e: 681b ldr r3, [r3, #0]
8014780: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
8014784: 2b00 cmp r3, #0
8014786: f000 80d6 beq.w 8014936 <HAL_RCCEx_PeriphCLKConfig+0x69a>
{
/* Disable the PLLI2S */
__HAL_RCC_PLLI2S_DISABLE();
801478a: 4a76 ldr r2, [pc, #472] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
801478c: 4b75 ldr r3, [pc, #468] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
801478e: 681b ldr r3, [r3, #0]
8014790: f023 6380 bic.w r3, r3, #67108864 ; 0x4000000
8014794: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
8014796: f7fd f9c3 bl 8011b20 <HAL_GetTick>
801479a: 6178 str r0, [r7, #20]
/* Wait till PLLI2S is disabled */
while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) != RESET)
801479c: e008 b.n 80147b0 <HAL_RCCEx_PeriphCLKConfig+0x514>
{
if((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE)
801479e: f7fd f9bf bl 8011b20 <HAL_GetTick>
80147a2: 4602 mov r2, r0
80147a4: 697b ldr r3, [r7, #20]
80147a6: 1ad3 subs r3, r2, r3
80147a8: 2b64 cmp r3, #100 ; 0x64
80147aa: d901 bls.n 80147b0 <HAL_RCCEx_PeriphCLKConfig+0x514>
{
/* return in case of Timeout detected */
return HAL_TIMEOUT;
80147ac: 2303 movs r3, #3
80147ae: e194 b.n 8014ada <HAL_RCCEx_PeriphCLKConfig+0x83e>
while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) != RESET)
80147b0: 4b6c ldr r3, [pc, #432] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80147b2: 681b ldr r3, [r3, #0]
80147b4: f003 6300 and.w r3, r3, #134217728 ; 0x8000000
80147b8: 2b00 cmp r3, #0
80147ba: d1f0 bne.n 801479e <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)))
80147bc: 687b ldr r3, [r7, #4]
80147be: 681b ldr r3, [r3, #0]
80147c0: f003 0301 and.w r3, r3, #1
80147c4: 2b00 cmp r3, #0
80147c6: d021 beq.n 801480c <HAL_RCCEx_PeriphCLKConfig+0x570>
80147c8: 687b ldr r3, [r7, #4]
80147ca: 6b5b ldr r3, [r3, #52] ; 0x34
80147cc: 2b00 cmp r3, #0
80147ce: d11d bne.n 801480c <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);
80147d0: 4b64 ldr r3, [pc, #400] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80147d2: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
80147d6: 0c1b lsrs r3, r3, #16
80147d8: f003 0303 and.w r3, r3, #3
80147dc: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SQ) >> RCC_PLLI2SCFGR_PLLI2SQ_Pos);
80147de: 4b61 ldr r3, [pc, #388] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80147e0: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
80147e4: 0e1b lsrs r3, r3, #24
80147e6: f003 030f and.w r3, r3, #15
80147ea: 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);
80147ec: 495d ldr r1, [pc, #372] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80147ee: 687b ldr r3, [r7, #4]
80147f0: 685b ldr r3, [r3, #4]
80147f2: 019a lsls r2, r3, #6
80147f4: 693b ldr r3, [r7, #16]
80147f6: 041b lsls r3, r3, #16
80147f8: 431a orrs r2, r3
80147fa: 68fb ldr r3, [r7, #12]
80147fc: 061b lsls r3, r3, #24
80147fe: 431a orrs r2, r3
8014800: 687b ldr r3, [r7, #4]
8014802: 689b ldr r3, [r3, #8]
8014804: 071b lsls r3, r3, #28
8014806: 4313 orrs r3, r2
8014808: 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)) ||
801480c: 687b ldr r3, [r7, #4]
801480e: 681b ldr r3, [r3, #0]
8014810: f403 2300 and.w r3, r3, #524288 ; 0x80000
8014814: 2b00 cmp r3, #0
8014816: d004 beq.n 8014822 <HAL_RCCEx_PeriphCLKConfig+0x586>
8014818: 687b ldr r3, [r7, #4]
801481a: 6bdb ldr r3, [r3, #60] ; 0x3c
801481c: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000
8014820: d00a beq.n 8014838 <HAL_RCCEx_PeriphCLKConfig+0x59c>
((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S)))
8014822: 687b ldr r3, [r7, #4]
8014824: 681b ldr r3, [r3, #0]
8014826: f403 1380 and.w r3, r3, #1048576 ; 0x100000
if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLI2S)) ||
801482a: 2b00 cmp r3, #0
801482c: d02e beq.n 801488c <HAL_RCCEx_PeriphCLKConfig+0x5f0>
((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S)))
801482e: 687b ldr r3, [r7, #4]
8014830: 6c1b ldr r3, [r3, #64] ; 0x40
8014832: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000
8014836: d129 bne.n 801488c <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);
8014838: 4b4a ldr r3, [pc, #296] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
801483a: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
801483e: 0c1b lsrs r3, r3, #16
8014840: f003 0303 and.w r3, r3, #3
8014844: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLI2SCFGR_PLLI2SR_Pos);
8014846: 4b47 ldr r3, [pc, #284] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014848: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
801484c: 0f1b lsrs r3, r3, #28
801484e: f003 0307 and.w r3, r3, #7
8014852: 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);
8014854: 4943 ldr r1, [pc, #268] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014856: 687b ldr r3, [r7, #4]
8014858: 685b ldr r3, [r3, #4]
801485a: 019a lsls r2, r3, #6
801485c: 693b ldr r3, [r7, #16]
801485e: 041b lsls r3, r3, #16
8014860: 431a orrs r2, r3
8014862: 687b ldr r3, [r7, #4]
8014864: 68db ldr r3, [r3, #12]
8014866: 061b lsls r3, r3, #24
8014868: 431a orrs r2, r3
801486a: 68fb ldr r3, [r7, #12]
801486c: 071b lsls r3, r3, #28
801486e: 4313 orrs r3, r2
8014870: f8c1 3084 str.w r3, [r1, #132] ; 0x84
/* SAI_CLK_x = SAI_CLK(first level)/PLLI2SDIVQ */
__HAL_RCC_PLLI2S_PLLSAICLKDIVQ_CONFIG(PeriphClkInit->PLLI2SDivQ);
8014874: 493b ldr r1, [pc, #236] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014876: 4b3b ldr r3, [pc, #236] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014878: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
801487c: f023 021f bic.w r2, r3, #31
8014880: 687b ldr r3, [r7, #4]
8014882: 6a5b ldr r3, [r3, #36] ; 0x24
8014884: 3b01 subs r3, #1
8014886: 4313 orrs r3, r2
8014888: 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)
801488c: 687b ldr r3, [r7, #4]
801488e: 681b ldr r3, [r3, #0]
8014890: f003 7380 and.w r3, r3, #16777216 ; 0x1000000
8014894: 2b00 cmp r3, #0
8014896: d01d beq.n 80148d4 <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);
8014898: 4b32 ldr r3, [pc, #200] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
801489a: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
801489e: 0e1b lsrs r3, r3, #24
80148a0: f003 030f and.w r3, r3, #15
80148a4: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLI2SCFGR_PLLI2SR_Pos);
80148a6: 4b2f ldr r3, [pc, #188] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80148a8: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
80148ac: 0f1b lsrs r3, r3, #28
80148ae: f003 0307 and.w r3, r3, #7
80148b2: 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);
80148b4: 492b ldr r1, [pc, #172] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80148b6: 687b ldr r3, [r7, #4]
80148b8: 685b ldr r3, [r3, #4]
80148ba: 019a lsls r2, r3, #6
80148bc: 687b ldr r3, [r7, #4]
80148be: 691b ldr r3, [r3, #16]
80148c0: 041b lsls r3, r3, #16
80148c2: 431a orrs r2, r3
80148c4: 693b ldr r3, [r7, #16]
80148c6: 061b lsls r3, r3, #24
80148c8: 431a orrs r2, r3
80148ca: 68fb ldr r3, [r7, #12]
80148cc: 071b lsls r3, r3, #28
80148ce: 4313 orrs r3, r2
80148d0: f8c1 3084 str.w r3, [r1, #132] ; 0x84
}
/*----------------- In Case of PLLI2S is just selected -----------------*/
if((PeriphClkInit->PeriphClockSelection & RCC_PERIPHCLK_PLLI2S) == RCC_PERIPHCLK_PLLI2S)
80148d4: 687b ldr r3, [r7, #4]
80148d6: 681b ldr r3, [r3, #0]
80148d8: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
80148dc: 2b00 cmp r3, #0
80148de: d011 beq.n 8014904 <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);
80148e0: 4920 ldr r1, [pc, #128] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80148e2: 687b ldr r3, [r7, #4]
80148e4: 685b ldr r3, [r3, #4]
80148e6: 019a lsls r2, r3, #6
80148e8: 687b ldr r3, [r7, #4]
80148ea: 691b ldr r3, [r3, #16]
80148ec: 041b lsls r3, r3, #16
80148ee: 431a orrs r2, r3
80148f0: 687b ldr r3, [r7, #4]
80148f2: 68db ldr r3, [r3, #12]
80148f4: 061b lsls r3, r3, #24
80148f6: 431a orrs r2, r3
80148f8: 687b ldr r3, [r7, #4]
80148fa: 689b ldr r3, [r3, #8]
80148fc: 071b lsls r3, r3, #28
80148fe: 4313 orrs r3, r2
8014900: f8c1 3084 str.w r3, [r1, #132] ; 0x84
}
/* Enable the PLLI2S */
__HAL_RCC_PLLI2S_ENABLE();
8014904: 4a17 ldr r2, [pc, #92] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014906: 4b17 ldr r3, [pc, #92] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014908: 681b ldr r3, [r3, #0]
801490a: f043 6380 orr.w r3, r3, #67108864 ; 0x4000000
801490e: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
8014910: f7fd f906 bl 8011b20 <HAL_GetTick>
8014914: 6178 str r0, [r7, #20]
/* Wait till PLLI2S is ready */
while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) == RESET)
8014916: e008 b.n 801492a <HAL_RCCEx_PeriphCLKConfig+0x68e>
{
if((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE)
8014918: f7fd f902 bl 8011b20 <HAL_GetTick>
801491c: 4602 mov r2, r0
801491e: 697b ldr r3, [r7, #20]
8014920: 1ad3 subs r3, r2, r3
8014922: 2b64 cmp r3, #100 ; 0x64
8014924: d901 bls.n 801492a <HAL_RCCEx_PeriphCLKConfig+0x68e>
{
/* return in case of Timeout detected */
return HAL_TIMEOUT;
8014926: 2303 movs r3, #3
8014928: e0d7 b.n 8014ada <HAL_RCCEx_PeriphCLKConfig+0x83e>
while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) == RESET)
801492a: 4b0e ldr r3, [pc, #56] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
801492c: 681b ldr r3, [r3, #0]
801492e: f003 6300 and.w r3, r3, #134217728 ; 0x8000000
8014932: 2b00 cmp r3, #0
8014934: d0f0 beq.n 8014918 <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)
8014936: 69bb ldr r3, [r7, #24]
8014938: 2b01 cmp r3, #1
801493a: f040 80cd bne.w 8014ad8 <HAL_RCCEx_PeriphCLKConfig+0x83c>
{
/* Disable PLLSAI Clock */
__HAL_RCC_PLLSAI_DISABLE();
801493e: 4a09 ldr r2, [pc, #36] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014940: 4b08 ldr r3, [pc, #32] ; (8014964 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014942: 681b ldr r3, [r3, #0]
8014944: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000
8014948: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
801494a: f7fd f8e9 bl 8011b20 <HAL_GetTick>
801494e: 6178 str r0, [r7, #20]
/* Wait till PLLSAI is disabled */
while(__HAL_RCC_PLLSAI_GET_FLAG() != RESET)
8014950: e00a b.n 8014968 <HAL_RCCEx_PeriphCLKConfig+0x6cc>
{
if((HAL_GetTick() - tickstart) > PLLSAI_TIMEOUT_VALUE)
8014952: f7fd f8e5 bl 8011b20 <HAL_GetTick>
8014956: 4602 mov r2, r0
8014958: 697b ldr r3, [r7, #20]
801495a: 1ad3 subs r3, r2, r3
801495c: 2b64 cmp r3, #100 ; 0x64
801495e: d903 bls.n 8014968 <HAL_RCCEx_PeriphCLKConfig+0x6cc>
{
/* return in case of Timeout detected */
return HAL_TIMEOUT;
8014960: 2303 movs r3, #3
8014962: e0ba b.n 8014ada <HAL_RCCEx_PeriphCLKConfig+0x83e>
8014964: 40023800 .word 0x40023800
while(__HAL_RCC_PLLSAI_GET_FLAG() != RESET)
8014968: 4b5e ldr r3, [pc, #376] ; (8014ae4 <HAL_RCCEx_PeriphCLKConfig+0x848>)
801496a: 681b ldr r3, [r3, #0]
801496c: f003 5300 and.w r3, r3, #536870912 ; 0x20000000
8014970: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000
8014974: d0ed beq.n 8014952 <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)) ||\
8014976: 687b ldr r3, [r7, #4]
8014978: 681b ldr r3, [r3, #0]
801497a: f403 2300 and.w r3, r3, #524288 ; 0x80000
801497e: 2b00 cmp r3, #0
8014980: d003 beq.n 801498a <HAL_RCCEx_PeriphCLKConfig+0x6ee>
8014982: 687b ldr r3, [r7, #4]
8014984: 6bdb ldr r3, [r3, #60] ; 0x3c
8014986: 2b00 cmp r3, #0
8014988: d009 beq.n 801499e <HAL_RCCEx_PeriphCLKConfig+0x702>
((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI)))
801498a: 687b ldr r3, [r7, #4]
801498c: 681b ldr r3, [r3, #0]
801498e: f403 1380 and.w r3, r3, #1048576 ; 0x100000
if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI)) ||\
8014992: 2b00 cmp r3, #0
8014994: d02e beq.n 80149f4 <HAL_RCCEx_PeriphCLKConfig+0x758>
((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI)))
8014996: 687b ldr r3, [r7, #4]
8014998: 6c1b ldr r3, [r3, #64] ; 0x40
801499a: 2b00 cmp r3, #0
801499c: d12a bne.n 80149f4 <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);
801499e: 4b51 ldr r3, [pc, #324] ; (8014ae4 <HAL_RCCEx_PeriphCLKConfig+0x848>)
80149a0: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
80149a4: 0c1b lsrs r3, r3, #16
80149a6: f003 0303 and.w r3, r3, #3
80149aa: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLSAICFGR_PLLSAIR_Pos);
80149ac: 4b4d ldr r3, [pc, #308] ; (8014ae4 <HAL_RCCEx_PeriphCLKConfig+0x848>)
80149ae: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
80149b2: 0f1b lsrs r3, r3, #28
80149b4: f003 0307 and.w r3, r3, #7
80149b8: 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);
80149ba: 494a ldr r1, [pc, #296] ; (8014ae4 <HAL_RCCEx_PeriphCLKConfig+0x848>)
80149bc: 687b ldr r3, [r7, #4]
80149be: 695b ldr r3, [r3, #20]
80149c0: 019a lsls r2, r3, #6
80149c2: 693b ldr r3, [r7, #16]
80149c4: 041b lsls r3, r3, #16
80149c6: 431a orrs r2, r3
80149c8: 687b ldr r3, [r7, #4]
80149ca: 699b ldr r3, [r3, #24]
80149cc: 061b lsls r3, r3, #24
80149ce: 431a orrs r2, r3
80149d0: 68fb ldr r3, [r7, #12]
80149d2: 071b lsls r3, r3, #28
80149d4: 4313 orrs r3, r2
80149d6: f8c1 3088 str.w r3, [r1, #136] ; 0x88
/* SAI_CLK_x = SAI_CLK(first level)/PLLSAIDIVQ */
__HAL_RCC_PLLSAI_PLLSAICLKDIVQ_CONFIG(PeriphClkInit->PLLSAIDivQ);
80149da: 4942 ldr r1, [pc, #264] ; (8014ae4 <HAL_RCCEx_PeriphCLKConfig+0x848>)
80149dc: 4b41 ldr r3, [pc, #260] ; (8014ae4 <HAL_RCCEx_PeriphCLKConfig+0x848>)
80149de: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
80149e2: f423 52f8 bic.w r2, r3, #7936 ; 0x1f00
80149e6: 687b ldr r3, [r7, #4]
80149e8: 6a9b ldr r3, [r3, #40] ; 0x28
80149ea: 3b01 subs r3, #1
80149ec: 021b lsls r3, r3, #8
80149ee: 4313 orrs r3, r2
80149f0: 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))
80149f4: 687b ldr r3, [r7, #4]
80149f6: 681b ldr r3, [r3, #0]
80149f8: f403 1300 and.w r3, r3, #2097152 ; 0x200000
80149fc: 2b00 cmp r3, #0
80149fe: d022 beq.n 8014a46 <HAL_RCCEx_PeriphCLKConfig+0x7aa>
8014a00: 687b ldr r3, [r7, #4]
8014a02: 6fdb ldr r3, [r3, #124] ; 0x7c
8014a04: f1b3 6f00 cmp.w r3, #134217728 ; 0x8000000
8014a08: d11d bne.n 8014a46 <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);
8014a0a: 4b36 ldr r3, [pc, #216] ; (8014ae4 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014a0c: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
8014a10: 0e1b lsrs r3, r3, #24
8014a12: f003 030f and.w r3, r3, #15
8014a16: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIR) >> RCC_PLLSAICFGR_PLLSAIR_Pos);
8014a18: 4b32 ldr r3, [pc, #200] ; (8014ae4 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014a1a: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
8014a1e: 0f1b lsrs r3, r3, #28
8014a20: f003 0307 and.w r3, r3, #7
8014a24: 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);
8014a26: 492f ldr r1, [pc, #188] ; (8014ae4 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014a28: 687b ldr r3, [r7, #4]
8014a2a: 695b ldr r3, [r3, #20]
8014a2c: 019a lsls r2, r3, #6
8014a2e: 687b ldr r3, [r7, #4]
8014a30: 6a1b ldr r3, [r3, #32]
8014a32: 041b lsls r3, r3, #16
8014a34: 431a orrs r2, r3
8014a36: 693b ldr r3, [r7, #16]
8014a38: 061b lsls r3, r3, #24
8014a3a: 431a orrs r2, r3
8014a3c: 68fb ldr r3, [r7, #12]
8014a3e: 071b lsls r3, r3, #28
8014a40: 4313 orrs r3, r2
8014a42: 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))
8014a46: 687b ldr r3, [r7, #4]
8014a48: 681b ldr r3, [r3, #0]
8014a4a: f003 0308 and.w r3, r3, #8
8014a4e: 2b00 cmp r3, #0
8014a50: d028 beq.n 8014aa4 <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);
8014a52: 4b24 ldr r3, [pc, #144] ; (8014ae4 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014a54: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
8014a58: 0e1b lsrs r3, r3, #24
8014a5a: f003 030f and.w r3, r3, #15
8014a5e: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIP) >> RCC_PLLSAICFGR_PLLSAIP_Pos);
8014a60: 4b20 ldr r3, [pc, #128] ; (8014ae4 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014a62: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
8014a66: 0c1b lsrs r3, r3, #16
8014a68: f003 0303 and.w r3, r3, #3
8014a6c: 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);
8014a6e: 491d ldr r1, [pc, #116] ; (8014ae4 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014a70: 687b ldr r3, [r7, #4]
8014a72: 695b ldr r3, [r3, #20]
8014a74: 019a lsls r2, r3, #6
8014a76: 68fb ldr r3, [r7, #12]
8014a78: 041b lsls r3, r3, #16
8014a7a: 431a orrs r2, r3
8014a7c: 693b ldr r3, [r7, #16]
8014a7e: 061b lsls r3, r3, #24
8014a80: 431a orrs r2, r3
8014a82: 687b ldr r3, [r7, #4]
8014a84: 69db ldr r3, [r3, #28]
8014a86: 071b lsls r3, r3, #28
8014a88: 4313 orrs r3, r2
8014a8a: f8c1 3088 str.w r3, [r1, #136] ; 0x88
/* LTDC_CLK = LTDC_CLK(first level)/PLLSAIDIVR */
__HAL_RCC_PLLSAI_PLLSAICLKDIVR_CONFIG(PeriphClkInit->PLLSAIDivR);
8014a8e: 4915 ldr r1, [pc, #84] ; (8014ae4 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014a90: 4b14 ldr r3, [pc, #80] ; (8014ae4 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014a92: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
8014a96: f423 3240 bic.w r2, r3, #196608 ; 0x30000
8014a9a: 687b ldr r3, [r7, #4]
8014a9c: 6adb ldr r3, [r3, #44] ; 0x2c
8014a9e: 4313 orrs r3, r2
8014aa0: f8c1 308c str.w r3, [r1, #140] ; 0x8c
}
#endif /* STM32F746xx || STM32F756xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx || STM32F750xx */
/* Enable PLLSAI Clock */
__HAL_RCC_PLLSAI_ENABLE();
8014aa4: 4a0f ldr r2, [pc, #60] ; (8014ae4 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014aa6: 4b0f ldr r3, [pc, #60] ; (8014ae4 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014aa8: 681b ldr r3, [r3, #0]
8014aaa: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
8014aae: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
8014ab0: f7fd f836 bl 8011b20 <HAL_GetTick>
8014ab4: 6178 str r0, [r7, #20]
/* Wait till PLLSAI is ready */
while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET)
8014ab6: e008 b.n 8014aca <HAL_RCCEx_PeriphCLKConfig+0x82e>
{
if((HAL_GetTick() - tickstart) > PLLSAI_TIMEOUT_VALUE)
8014ab8: f7fd f832 bl 8011b20 <HAL_GetTick>
8014abc: 4602 mov r2, r0
8014abe: 697b ldr r3, [r7, #20]
8014ac0: 1ad3 subs r3, r2, r3
8014ac2: 2b64 cmp r3, #100 ; 0x64
8014ac4: d901 bls.n 8014aca <HAL_RCCEx_PeriphCLKConfig+0x82e>
{
/* return in case of Timeout detected */
return HAL_TIMEOUT;
8014ac6: 2303 movs r3, #3
8014ac8: e007 b.n 8014ada <HAL_RCCEx_PeriphCLKConfig+0x83e>
while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET)
8014aca: 4b06 ldr r3, [pc, #24] ; (8014ae4 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014acc: 681b ldr r3, [r3, #0]
8014ace: f003 5300 and.w r3, r3, #536870912 ; 0x20000000
8014ad2: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000
8014ad6: d1ef bne.n 8014ab8 <HAL_RCCEx_PeriphCLKConfig+0x81c>
}
}
}
return HAL_OK;
8014ad8: 2300 movs r3, #0
}
8014ada: 4618 mov r0, r3
8014adc: 3720 adds r7, #32
8014ade: 46bd mov sp, r7
8014ae0: bd80 pop {r7, pc}
8014ae2: bf00 nop
8014ae4: 40023800 .word 0x40023800
08014ae8 <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)
{
8014ae8: b580 push {r7, lr}
8014aea: b082 sub sp, #8
8014aec: af00 add r7, sp, #0
8014aee: 6078 str r0, [r7, #4]
/* Check the TIM handle allocation */
if (htim == NULL)
8014af0: 687b ldr r3, [r7, #4]
8014af2: 2b00 cmp r3, #0
8014af4: d101 bne.n 8014afa <HAL_TIM_Base_Init+0x12>
{
return HAL_ERROR;
8014af6: 2301 movs r3, #1
8014af8: e049 b.n 8014b8e <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)
8014afa: 687b ldr r3, [r7, #4]
8014afc: f893 303d ldrb.w r3, [r3, #61] ; 0x3d
8014b00: b2db uxtb r3, r3
8014b02: 2b00 cmp r3, #0
8014b04: d106 bne.n 8014b14 <HAL_TIM_Base_Init+0x2c>
{
/* Allocate lock resource and initialize it */
htim->Lock = HAL_UNLOCKED;
8014b06: 687b ldr r3, [r7, #4]
8014b08: 2200 movs r2, #0
8014b0a: 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);
8014b0e: 6878 ldr r0, [r7, #4]
8014b10: f7fb fa18 bl 800ff44 <HAL_TIM_Base_MspInit>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
/* Set the TIM state */
htim->State = HAL_TIM_STATE_BUSY;
8014b14: 687b ldr r3, [r7, #4]
8014b16: 2202 movs r2, #2
8014b18: f883 203d strb.w r2, [r3, #61] ; 0x3d
/* Set the Time Base configuration */
TIM_Base_SetConfig(htim->Instance, &htim->Init);
8014b1c: 687b ldr r3, [r7, #4]
8014b1e: 681a ldr r2, [r3, #0]
8014b20: 687b ldr r3, [r7, #4]
8014b22: 3304 adds r3, #4
8014b24: 4619 mov r1, r3
8014b26: 4610 mov r0, r2
8014b28: f000 f9f6 bl 8014f18 <TIM_Base_SetConfig>
/* Initialize the DMA burst operation state */
htim->DMABurstState = HAL_DMA_BURST_STATE_READY;
8014b2c: 687b ldr r3, [r7, #4]
8014b2e: 2201 movs r2, #1
8014b30: f883 2048 strb.w r2, [r3, #72] ; 0x48
/* Initialize the TIM channels state */
TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY);
8014b34: 687b ldr r3, [r7, #4]
8014b36: 2201 movs r2, #1
8014b38: f883 203e strb.w r2, [r3, #62] ; 0x3e
8014b3c: 687b ldr r3, [r7, #4]
8014b3e: 2201 movs r2, #1
8014b40: f883 203f strb.w r2, [r3, #63] ; 0x3f
8014b44: 687b ldr r3, [r7, #4]
8014b46: 2201 movs r2, #1
8014b48: f883 2040 strb.w r2, [r3, #64] ; 0x40
8014b4c: 687b ldr r3, [r7, #4]
8014b4e: 2201 movs r2, #1
8014b50: f883 2041 strb.w r2, [r3, #65] ; 0x41
8014b54: 687b ldr r3, [r7, #4]
8014b56: 2201 movs r2, #1
8014b58: f883 2042 strb.w r2, [r3, #66] ; 0x42
8014b5c: 687b ldr r3, [r7, #4]
8014b5e: 2201 movs r2, #1
8014b60: f883 2043 strb.w r2, [r3, #67] ; 0x43
TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY);
8014b64: 687b ldr r3, [r7, #4]
8014b66: 2201 movs r2, #1
8014b68: f883 2044 strb.w r2, [r3, #68] ; 0x44
8014b6c: 687b ldr r3, [r7, #4]
8014b6e: 2201 movs r2, #1
8014b70: f883 2045 strb.w r2, [r3, #69] ; 0x45
8014b74: 687b ldr r3, [r7, #4]
8014b76: 2201 movs r2, #1
8014b78: f883 2046 strb.w r2, [r3, #70] ; 0x46
8014b7c: 687b ldr r3, [r7, #4]
8014b7e: 2201 movs r2, #1
8014b80: f883 2047 strb.w r2, [r3, #71] ; 0x47
/* Initialize the TIM state*/
htim->State = HAL_TIM_STATE_READY;
8014b84: 687b ldr r3, [r7, #4]
8014b86: 2201 movs r2, #1
8014b88: f883 203d strb.w r2, [r3, #61] ; 0x3d
return HAL_OK;
8014b8c: 2300 movs r3, #0
}
8014b8e: 4618 mov r0, r3
8014b90: 3708 adds r7, #8
8014b92: 46bd mov sp, r7
8014b94: bd80 pop {r7, pc}
...
08014b98 <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)
{
8014b98: b480 push {r7}
8014b9a: b085 sub sp, #20
8014b9c: af00 add r7, sp, #0
8014b9e: 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)
8014ba0: 687b ldr r3, [r7, #4]
8014ba2: f893 303d ldrb.w r3, [r3, #61] ; 0x3d
8014ba6: b2db uxtb r3, r3
8014ba8: 2b01 cmp r3, #1
8014baa: d001 beq.n 8014bb0 <HAL_TIM_Base_Start_IT+0x18>
{
return HAL_ERROR;
8014bac: 2301 movs r3, #1
8014bae: e054 b.n 8014c5a <HAL_TIM_Base_Start_IT+0xc2>
}
/* Set the TIM state */
htim->State = HAL_TIM_STATE_BUSY;
8014bb0: 687b ldr r3, [r7, #4]
8014bb2: 2202 movs r2, #2
8014bb4: f883 203d strb.w r2, [r3, #61] ; 0x3d
/* Enable the TIM Update interrupt */
__HAL_TIM_ENABLE_IT(htim, TIM_IT_UPDATE);
8014bb8: 687b ldr r3, [r7, #4]
8014bba: 681b ldr r3, [r3, #0]
8014bbc: 687a ldr r2, [r7, #4]
8014bbe: 6812 ldr r2, [r2, #0]
8014bc0: 68d2 ldr r2, [r2, #12]
8014bc2: f042 0201 orr.w r2, r2, #1
8014bc6: 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))
8014bc8: 687b ldr r3, [r7, #4]
8014bca: 681b ldr r3, [r3, #0]
8014bcc: 4a26 ldr r2, [pc, #152] ; (8014c68 <HAL_TIM_Base_Start_IT+0xd0>)
8014bce: 4293 cmp r3, r2
8014bd0: d022 beq.n 8014c18 <HAL_TIM_Base_Start_IT+0x80>
8014bd2: 687b ldr r3, [r7, #4]
8014bd4: 681b ldr r3, [r3, #0]
8014bd6: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000
8014bda: d01d beq.n 8014c18 <HAL_TIM_Base_Start_IT+0x80>
8014bdc: 687b ldr r3, [r7, #4]
8014bde: 681b ldr r3, [r3, #0]
8014be0: 4a22 ldr r2, [pc, #136] ; (8014c6c <HAL_TIM_Base_Start_IT+0xd4>)
8014be2: 4293 cmp r3, r2
8014be4: d018 beq.n 8014c18 <HAL_TIM_Base_Start_IT+0x80>
8014be6: 687b ldr r3, [r7, #4]
8014be8: 681b ldr r3, [r3, #0]
8014bea: 4a21 ldr r2, [pc, #132] ; (8014c70 <HAL_TIM_Base_Start_IT+0xd8>)
8014bec: 4293 cmp r3, r2
8014bee: d013 beq.n 8014c18 <HAL_TIM_Base_Start_IT+0x80>
8014bf0: 687b ldr r3, [r7, #4]
8014bf2: 681b ldr r3, [r3, #0]
8014bf4: 4a1f ldr r2, [pc, #124] ; (8014c74 <HAL_TIM_Base_Start_IT+0xdc>)
8014bf6: 4293 cmp r3, r2
8014bf8: d00e beq.n 8014c18 <HAL_TIM_Base_Start_IT+0x80>
8014bfa: 687b ldr r3, [r7, #4]
8014bfc: 681b ldr r3, [r3, #0]
8014bfe: 4a1e ldr r2, [pc, #120] ; (8014c78 <HAL_TIM_Base_Start_IT+0xe0>)
8014c00: 4293 cmp r3, r2
8014c02: d009 beq.n 8014c18 <HAL_TIM_Base_Start_IT+0x80>
8014c04: 687b ldr r3, [r7, #4]
8014c06: 681b ldr r3, [r3, #0]
8014c08: 4a1c ldr r2, [pc, #112] ; (8014c7c <HAL_TIM_Base_Start_IT+0xe4>)
8014c0a: 4293 cmp r3, r2
8014c0c: d004 beq.n 8014c18 <HAL_TIM_Base_Start_IT+0x80>
8014c0e: 687b ldr r3, [r7, #4]
8014c10: 681b ldr r3, [r3, #0]
8014c12: 4a1b ldr r2, [pc, #108] ; (8014c80 <HAL_TIM_Base_Start_IT+0xe8>)
8014c14: 4293 cmp r3, r2
8014c16: d115 bne.n 8014c44 <HAL_TIM_Base_Start_IT+0xac>
{
tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
8014c18: 687b ldr r3, [r7, #4]
8014c1a: 681b ldr r3, [r3, #0]
8014c1c: 689a ldr r2, [r3, #8]
8014c1e: 4b19 ldr r3, [pc, #100] ; (8014c84 <HAL_TIM_Base_Start_IT+0xec>)
8014c20: 4013 ands r3, r2
8014c22: 60fb str r3, [r7, #12]
if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
8014c24: 68fb ldr r3, [r7, #12]
8014c26: 2b06 cmp r3, #6
8014c28: d015 beq.n 8014c56 <HAL_TIM_Base_Start_IT+0xbe>
8014c2a: 68fb ldr r3, [r7, #12]
8014c2c: f5b3 3f80 cmp.w r3, #65536 ; 0x10000
8014c30: d011 beq.n 8014c56 <HAL_TIM_Base_Start_IT+0xbe>
{
__HAL_TIM_ENABLE(htim);
8014c32: 687b ldr r3, [r7, #4]
8014c34: 681b ldr r3, [r3, #0]
8014c36: 687a ldr r2, [r7, #4]
8014c38: 6812 ldr r2, [r2, #0]
8014c3a: 6812 ldr r2, [r2, #0]
8014c3c: f042 0201 orr.w r2, r2, #1
8014c40: 601a str r2, [r3, #0]
if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
8014c42: e008 b.n 8014c56 <HAL_TIM_Base_Start_IT+0xbe>
}
}
else
{
__HAL_TIM_ENABLE(htim);
8014c44: 687b ldr r3, [r7, #4]
8014c46: 681b ldr r3, [r3, #0]
8014c48: 687a ldr r2, [r7, #4]
8014c4a: 6812 ldr r2, [r2, #0]
8014c4c: 6812 ldr r2, [r2, #0]
8014c4e: f042 0201 orr.w r2, r2, #1
8014c52: 601a str r2, [r3, #0]
8014c54: e000 b.n 8014c58 <HAL_TIM_Base_Start_IT+0xc0>
if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
8014c56: bf00 nop
}
/* Return function status */
return HAL_OK;
8014c58: 2300 movs r3, #0
}
8014c5a: 4618 mov r0, r3
8014c5c: 3714 adds r7, #20
8014c5e: 46bd mov sp, r7
8014c60: f85d 7b04 ldr.w r7, [sp], #4
8014c64: 4770 bx lr
8014c66: bf00 nop
8014c68: 40010000 .word 0x40010000
8014c6c: 40000400 .word 0x40000400
8014c70: 40000800 .word 0x40000800
8014c74: 40000c00 .word 0x40000c00
8014c78: 40010400 .word 0x40010400
8014c7c: 40014000 .word 0x40014000
8014c80: 40001800 .word 0x40001800
8014c84: 00010007 .word 0x00010007
08014c88 <HAL_TIM_IRQHandler>:
* @brief This function handles TIM interrupts requests.
* @param htim TIM handle
* @retval None
*/
void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim)
{
8014c88: b580 push {r7, lr}
8014c8a: b082 sub sp, #8
8014c8c: af00 add r7, sp, #0
8014c8e: 6078 str r0, [r7, #4]
/* Capture compare 1 event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1) != RESET)
8014c90: 687b ldr r3, [r7, #4]
8014c92: 681b ldr r3, [r3, #0]
8014c94: 691b ldr r3, [r3, #16]
8014c96: f003 0302 and.w r3, r3, #2
8014c9a: 2b02 cmp r3, #2
8014c9c: d122 bne.n 8014ce4 <HAL_TIM_IRQHandler+0x5c>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC1) != RESET)
8014c9e: 687b ldr r3, [r7, #4]
8014ca0: 681b ldr r3, [r3, #0]
8014ca2: 68db ldr r3, [r3, #12]
8014ca4: f003 0302 and.w r3, r3, #2
8014ca8: 2b02 cmp r3, #2
8014caa: d11b bne.n 8014ce4 <HAL_TIM_IRQHandler+0x5c>
{
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_CC1);
8014cac: 687b ldr r3, [r7, #4]
8014cae: 681b ldr r3, [r3, #0]
8014cb0: f06f 0202 mvn.w r2, #2
8014cb4: 611a str r2, [r3, #16]
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1;
8014cb6: 687b ldr r3, [r7, #4]
8014cb8: 2201 movs r2, #1
8014cba: 771a strb r2, [r3, #28]
/* Input capture event */
if ((htim->Instance->CCMR1 & TIM_CCMR1_CC1S) != 0x00U)
8014cbc: 687b ldr r3, [r7, #4]
8014cbe: 681b ldr r3, [r3, #0]
8014cc0: 699b ldr r3, [r3, #24]
8014cc2: f003 0303 and.w r3, r3, #3
8014cc6: 2b00 cmp r3, #0
8014cc8: d003 beq.n 8014cd2 <HAL_TIM_IRQHandler+0x4a>
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->IC_CaptureCallback(htim);
#else
HAL_TIM_IC_CaptureCallback(htim);
8014cca: 6878 ldr r0, [r7, #4]
8014ccc: f000 f905 bl 8014eda <HAL_TIM_IC_CaptureCallback>
8014cd0: e005 b.n 8014cde <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);
8014cd2: 6878 ldr r0, [r7, #4]
8014cd4: f000 f8f7 bl 8014ec6 <HAL_TIM_OC_DelayElapsedCallback>
HAL_TIM_PWM_PulseFinishedCallback(htim);
8014cd8: 6878 ldr r0, [r7, #4]
8014cda: f000 f908 bl 8014eee <HAL_TIM_PWM_PulseFinishedCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
8014cde: 687b ldr r3, [r7, #4]
8014ce0: 2200 movs r2, #0
8014ce2: 771a strb r2, [r3, #28]
}
}
}
/* Capture compare 2 event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC2) != RESET)
8014ce4: 687b ldr r3, [r7, #4]
8014ce6: 681b ldr r3, [r3, #0]
8014ce8: 691b ldr r3, [r3, #16]
8014cea: f003 0304 and.w r3, r3, #4
8014cee: 2b04 cmp r3, #4
8014cf0: d122 bne.n 8014d38 <HAL_TIM_IRQHandler+0xb0>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC2) != RESET)
8014cf2: 687b ldr r3, [r7, #4]
8014cf4: 681b ldr r3, [r3, #0]
8014cf6: 68db ldr r3, [r3, #12]
8014cf8: f003 0304 and.w r3, r3, #4
8014cfc: 2b04 cmp r3, #4
8014cfe: d11b bne.n 8014d38 <HAL_TIM_IRQHandler+0xb0>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_CC2);
8014d00: 687b ldr r3, [r7, #4]
8014d02: 681b ldr r3, [r3, #0]
8014d04: f06f 0204 mvn.w r2, #4
8014d08: 611a str r2, [r3, #16]
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2;
8014d0a: 687b ldr r3, [r7, #4]
8014d0c: 2202 movs r2, #2
8014d0e: 771a strb r2, [r3, #28]
/* Input capture event */
if ((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U)
8014d10: 687b ldr r3, [r7, #4]
8014d12: 681b ldr r3, [r3, #0]
8014d14: 699b ldr r3, [r3, #24]
8014d16: f403 7340 and.w r3, r3, #768 ; 0x300
8014d1a: 2b00 cmp r3, #0
8014d1c: d003 beq.n 8014d26 <HAL_TIM_IRQHandler+0x9e>
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->IC_CaptureCallback(htim);
#else
HAL_TIM_IC_CaptureCallback(htim);
8014d1e: 6878 ldr r0, [r7, #4]
8014d20: f000 f8db bl 8014eda <HAL_TIM_IC_CaptureCallback>
8014d24: e005 b.n 8014d32 <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);
8014d26: 6878 ldr r0, [r7, #4]
8014d28: f000 f8cd bl 8014ec6 <HAL_TIM_OC_DelayElapsedCallback>
HAL_TIM_PWM_PulseFinishedCallback(htim);
8014d2c: 6878 ldr r0, [r7, #4]
8014d2e: f000 f8de bl 8014eee <HAL_TIM_PWM_PulseFinishedCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
8014d32: 687b ldr r3, [r7, #4]
8014d34: 2200 movs r2, #0
8014d36: 771a strb r2, [r3, #28]
}
}
/* Capture compare 3 event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC3) != RESET)
8014d38: 687b ldr r3, [r7, #4]
8014d3a: 681b ldr r3, [r3, #0]
8014d3c: 691b ldr r3, [r3, #16]
8014d3e: f003 0308 and.w r3, r3, #8
8014d42: 2b08 cmp r3, #8
8014d44: d122 bne.n 8014d8c <HAL_TIM_IRQHandler+0x104>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC3) != RESET)
8014d46: 687b ldr r3, [r7, #4]
8014d48: 681b ldr r3, [r3, #0]
8014d4a: 68db ldr r3, [r3, #12]
8014d4c: f003 0308 and.w r3, r3, #8
8014d50: 2b08 cmp r3, #8
8014d52: d11b bne.n 8014d8c <HAL_TIM_IRQHandler+0x104>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_CC3);
8014d54: 687b ldr r3, [r7, #4]
8014d56: 681b ldr r3, [r3, #0]
8014d58: f06f 0208 mvn.w r2, #8
8014d5c: 611a str r2, [r3, #16]
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3;
8014d5e: 687b ldr r3, [r7, #4]
8014d60: 2204 movs r2, #4
8014d62: 771a strb r2, [r3, #28]
/* Input capture event */
if ((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U)
8014d64: 687b ldr r3, [r7, #4]
8014d66: 681b ldr r3, [r3, #0]
8014d68: 69db ldr r3, [r3, #28]
8014d6a: f003 0303 and.w r3, r3, #3
8014d6e: 2b00 cmp r3, #0
8014d70: d003 beq.n 8014d7a <HAL_TIM_IRQHandler+0xf2>
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->IC_CaptureCallback(htim);
#else
HAL_TIM_IC_CaptureCallback(htim);
8014d72: 6878 ldr r0, [r7, #4]
8014d74: f000 f8b1 bl 8014eda <HAL_TIM_IC_CaptureCallback>
8014d78: e005 b.n 8014d86 <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);
8014d7a: 6878 ldr r0, [r7, #4]
8014d7c: f000 f8a3 bl 8014ec6 <HAL_TIM_OC_DelayElapsedCallback>
HAL_TIM_PWM_PulseFinishedCallback(htim);
8014d80: 6878 ldr r0, [r7, #4]
8014d82: f000 f8b4 bl 8014eee <HAL_TIM_PWM_PulseFinishedCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
8014d86: 687b ldr r3, [r7, #4]
8014d88: 2200 movs r2, #0
8014d8a: 771a strb r2, [r3, #28]
}
}
/* Capture compare 4 event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC4) != RESET)
8014d8c: 687b ldr r3, [r7, #4]
8014d8e: 681b ldr r3, [r3, #0]
8014d90: 691b ldr r3, [r3, #16]
8014d92: f003 0310 and.w r3, r3, #16
8014d96: 2b10 cmp r3, #16
8014d98: d122 bne.n 8014de0 <HAL_TIM_IRQHandler+0x158>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC4) != RESET)
8014d9a: 687b ldr r3, [r7, #4]
8014d9c: 681b ldr r3, [r3, #0]
8014d9e: 68db ldr r3, [r3, #12]
8014da0: f003 0310 and.w r3, r3, #16
8014da4: 2b10 cmp r3, #16
8014da6: d11b bne.n 8014de0 <HAL_TIM_IRQHandler+0x158>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_CC4);
8014da8: 687b ldr r3, [r7, #4]
8014daa: 681b ldr r3, [r3, #0]
8014dac: f06f 0210 mvn.w r2, #16
8014db0: 611a str r2, [r3, #16]
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4;
8014db2: 687b ldr r3, [r7, #4]
8014db4: 2208 movs r2, #8
8014db6: 771a strb r2, [r3, #28]
/* Input capture event */
if ((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U)
8014db8: 687b ldr r3, [r7, #4]
8014dba: 681b ldr r3, [r3, #0]
8014dbc: 69db ldr r3, [r3, #28]
8014dbe: f403 7340 and.w r3, r3, #768 ; 0x300
8014dc2: 2b00 cmp r3, #0
8014dc4: d003 beq.n 8014dce <HAL_TIM_IRQHandler+0x146>
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->IC_CaptureCallback(htim);
#else
HAL_TIM_IC_CaptureCallback(htim);
8014dc6: 6878 ldr r0, [r7, #4]
8014dc8: f000 f887 bl 8014eda <HAL_TIM_IC_CaptureCallback>
8014dcc: e005 b.n 8014dda <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);
8014dce: 6878 ldr r0, [r7, #4]
8014dd0: f000 f879 bl 8014ec6 <HAL_TIM_OC_DelayElapsedCallback>
HAL_TIM_PWM_PulseFinishedCallback(htim);
8014dd4: 6878 ldr r0, [r7, #4]
8014dd6: f000 f88a bl 8014eee <HAL_TIM_PWM_PulseFinishedCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
8014dda: 687b ldr r3, [r7, #4]
8014ddc: 2200 movs r2, #0
8014dde: 771a strb r2, [r3, #28]
}
}
/* TIM Update event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_UPDATE) != RESET)
8014de0: 687b ldr r3, [r7, #4]
8014de2: 681b ldr r3, [r3, #0]
8014de4: 691b ldr r3, [r3, #16]
8014de6: f003 0301 and.w r3, r3, #1
8014dea: 2b01 cmp r3, #1
8014dec: d10e bne.n 8014e0c <HAL_TIM_IRQHandler+0x184>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_UPDATE) != RESET)
8014dee: 687b ldr r3, [r7, #4]
8014df0: 681b ldr r3, [r3, #0]
8014df2: 68db ldr r3, [r3, #12]
8014df4: f003 0301 and.w r3, r3, #1
8014df8: 2b01 cmp r3, #1
8014dfa: d107 bne.n 8014e0c <HAL_TIM_IRQHandler+0x184>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE);
8014dfc: 687b ldr r3, [r7, #4]
8014dfe: 681b ldr r3, [r3, #0]
8014e00: f06f 0201 mvn.w r2, #1
8014e04: 611a str r2, [r3, #16]
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->PeriodElapsedCallback(htim);
#else
HAL_TIM_PeriodElapsedCallback(htim);
8014e06: 6878 ldr r0, [r7, #4]
8014e08: f7fb f8ea bl 800ffe0 <HAL_TIM_PeriodElapsedCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
/* TIM Break input event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK) != RESET)
8014e0c: 687b ldr r3, [r7, #4]
8014e0e: 681b ldr r3, [r3, #0]
8014e10: 691b ldr r3, [r3, #16]
8014e12: f003 0380 and.w r3, r3, #128 ; 0x80
8014e16: 2b80 cmp r3, #128 ; 0x80
8014e18: d10e bne.n 8014e38 <HAL_TIM_IRQHandler+0x1b0>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET)
8014e1a: 687b ldr r3, [r7, #4]
8014e1c: 681b ldr r3, [r3, #0]
8014e1e: 68db ldr r3, [r3, #12]
8014e20: f003 0380 and.w r3, r3, #128 ; 0x80
8014e24: 2b80 cmp r3, #128 ; 0x80
8014e26: d107 bne.n 8014e38 <HAL_TIM_IRQHandler+0x1b0>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_BREAK);
8014e28: 687b ldr r3, [r7, #4]
8014e2a: 681b ldr r3, [r3, #0]
8014e2c: f06f 0280 mvn.w r2, #128 ; 0x80
8014e30: 611a str r2, [r3, #16]
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->BreakCallback(htim);
#else
HAL_TIMEx_BreakCallback(htim);
8014e32: 6878 ldr r0, [r7, #4]
8014e34: f000 f9a8 bl 8015188 <HAL_TIMEx_BreakCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
/* TIM Break2 input event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK2) != RESET)
8014e38: 687b ldr r3, [r7, #4]
8014e3a: 681b ldr r3, [r3, #0]
8014e3c: 691b ldr r3, [r3, #16]
8014e3e: f403 7380 and.w r3, r3, #256 ; 0x100
8014e42: f5b3 7f80 cmp.w r3, #256 ; 0x100
8014e46: d10e bne.n 8014e66 <HAL_TIM_IRQHandler+0x1de>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET)
8014e48: 687b ldr r3, [r7, #4]
8014e4a: 681b ldr r3, [r3, #0]
8014e4c: 68db ldr r3, [r3, #12]
8014e4e: f003 0380 and.w r3, r3, #128 ; 0x80
8014e52: 2b80 cmp r3, #128 ; 0x80
8014e54: d107 bne.n 8014e66 <HAL_TIM_IRQHandler+0x1de>
{
__HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_BREAK2);
8014e56: 687b ldr r3, [r7, #4]
8014e58: 681b ldr r3, [r3, #0]
8014e5a: f46f 7280 mvn.w r2, #256 ; 0x100
8014e5e: 611a str r2, [r3, #16]
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->Break2Callback(htim);
#else
HAL_TIMEx_Break2Callback(htim);
8014e60: 6878 ldr r0, [r7, #4]
8014e62: f000 f99b bl 801519c <HAL_TIMEx_Break2Callback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
/* TIM Trigger detection event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_TRIGGER) != RESET)
8014e66: 687b ldr r3, [r7, #4]
8014e68: 681b ldr r3, [r3, #0]
8014e6a: 691b ldr r3, [r3, #16]
8014e6c: f003 0340 and.w r3, r3, #64 ; 0x40
8014e70: 2b40 cmp r3, #64 ; 0x40
8014e72: d10e bne.n 8014e92 <HAL_TIM_IRQHandler+0x20a>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_TRIGGER) != RESET)
8014e74: 687b ldr r3, [r7, #4]
8014e76: 681b ldr r3, [r3, #0]
8014e78: 68db ldr r3, [r3, #12]
8014e7a: f003 0340 and.w r3, r3, #64 ; 0x40
8014e7e: 2b40 cmp r3, #64 ; 0x40
8014e80: d107 bne.n 8014e92 <HAL_TIM_IRQHandler+0x20a>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_TRIGGER);
8014e82: 687b ldr r3, [r7, #4]
8014e84: 681b ldr r3, [r3, #0]
8014e86: f06f 0240 mvn.w r2, #64 ; 0x40
8014e8a: 611a str r2, [r3, #16]
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->TriggerCallback(htim);
#else
HAL_TIM_TriggerCallback(htim);
8014e8c: 6878 ldr r0, [r7, #4]
8014e8e: f000 f838 bl 8014f02 <HAL_TIM_TriggerCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
/* TIM commutation event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_COM) != RESET)
8014e92: 687b ldr r3, [r7, #4]
8014e94: 681b ldr r3, [r3, #0]
8014e96: 691b ldr r3, [r3, #16]
8014e98: f003 0320 and.w r3, r3, #32
8014e9c: 2b20 cmp r3, #32
8014e9e: d10e bne.n 8014ebe <HAL_TIM_IRQHandler+0x236>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_COM) != RESET)
8014ea0: 687b ldr r3, [r7, #4]
8014ea2: 681b ldr r3, [r3, #0]
8014ea4: 68db ldr r3, [r3, #12]
8014ea6: f003 0320 and.w r3, r3, #32
8014eaa: 2b20 cmp r3, #32
8014eac: d107 bne.n 8014ebe <HAL_TIM_IRQHandler+0x236>
{
__HAL_TIM_CLEAR_IT(htim, TIM_FLAG_COM);
8014eae: 687b ldr r3, [r7, #4]
8014eb0: 681b ldr r3, [r3, #0]
8014eb2: f06f 0220 mvn.w r2, #32
8014eb6: 611a str r2, [r3, #16]
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->CommutationCallback(htim);
#else
HAL_TIMEx_CommutCallback(htim);
8014eb8: 6878 ldr r0, [r7, #4]
8014eba: f000 f95b bl 8015174 <HAL_TIMEx_CommutCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
}
8014ebe: bf00 nop
8014ec0: 3708 adds r7, #8
8014ec2: 46bd mov sp, r7
8014ec4: bd80 pop {r7, pc}
08014ec6 <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)
{
8014ec6: b480 push {r7}
8014ec8: b083 sub sp, #12
8014eca: af00 add r7, sp, #0
8014ecc: 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
*/
}
8014ece: bf00 nop
8014ed0: 370c adds r7, #12
8014ed2: 46bd mov sp, r7
8014ed4: f85d 7b04 ldr.w r7, [sp], #4
8014ed8: 4770 bx lr
08014eda <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)
{
8014eda: b480 push {r7}
8014edc: b083 sub sp, #12
8014ede: af00 add r7, sp, #0
8014ee0: 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
*/
}
8014ee2: bf00 nop
8014ee4: 370c adds r7, #12
8014ee6: 46bd mov sp, r7
8014ee8: f85d 7b04 ldr.w r7, [sp], #4
8014eec: 4770 bx lr
08014eee <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)
{
8014eee: b480 push {r7}
8014ef0: b083 sub sp, #12
8014ef2: af00 add r7, sp, #0
8014ef4: 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
*/
}
8014ef6: bf00 nop
8014ef8: 370c adds r7, #12
8014efa: 46bd mov sp, r7
8014efc: f85d 7b04 ldr.w r7, [sp], #4
8014f00: 4770 bx lr
08014f02 <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)
{
8014f02: b480 push {r7}
8014f04: b083 sub sp, #12
8014f06: af00 add r7, sp, #0
8014f08: 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
*/
}
8014f0a: bf00 nop
8014f0c: 370c adds r7, #12
8014f0e: 46bd mov sp, r7
8014f10: f85d 7b04 ldr.w r7, [sp], #4
8014f14: 4770 bx lr
...
08014f18 <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)
{
8014f18: b480 push {r7}
8014f1a: b085 sub sp, #20
8014f1c: af00 add r7, sp, #0
8014f1e: 6078 str r0, [r7, #4]
8014f20: 6039 str r1, [r7, #0]
uint32_t tmpcr1;
tmpcr1 = TIMx->CR1;
8014f22: 687b ldr r3, [r7, #4]
8014f24: 681b ldr r3, [r3, #0]
8014f26: 60fb str r3, [r7, #12]
/* Set TIM Time Base Unit parameters ---------------------------------------*/
if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx))
8014f28: 687b ldr r3, [r7, #4]
8014f2a: 4a40 ldr r2, [pc, #256] ; (801502c <TIM_Base_SetConfig+0x114>)
8014f2c: 4293 cmp r3, r2
8014f2e: d013 beq.n 8014f58 <TIM_Base_SetConfig+0x40>
8014f30: 687b ldr r3, [r7, #4]
8014f32: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000
8014f36: d00f beq.n 8014f58 <TIM_Base_SetConfig+0x40>
8014f38: 687b ldr r3, [r7, #4]
8014f3a: 4a3d ldr r2, [pc, #244] ; (8015030 <TIM_Base_SetConfig+0x118>)
8014f3c: 4293 cmp r3, r2
8014f3e: d00b beq.n 8014f58 <TIM_Base_SetConfig+0x40>
8014f40: 687b ldr r3, [r7, #4]
8014f42: 4a3c ldr r2, [pc, #240] ; (8015034 <TIM_Base_SetConfig+0x11c>)
8014f44: 4293 cmp r3, r2
8014f46: d007 beq.n 8014f58 <TIM_Base_SetConfig+0x40>
8014f48: 687b ldr r3, [r7, #4]
8014f4a: 4a3b ldr r2, [pc, #236] ; (8015038 <TIM_Base_SetConfig+0x120>)
8014f4c: 4293 cmp r3, r2
8014f4e: d003 beq.n 8014f58 <TIM_Base_SetConfig+0x40>
8014f50: 687b ldr r3, [r7, #4]
8014f52: 4a3a ldr r2, [pc, #232] ; (801503c <TIM_Base_SetConfig+0x124>)
8014f54: 4293 cmp r3, r2
8014f56: d108 bne.n 8014f6a <TIM_Base_SetConfig+0x52>
{
/* Select the Counter Mode */
tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS);
8014f58: 68fb ldr r3, [r7, #12]
8014f5a: f023 0370 bic.w r3, r3, #112 ; 0x70
8014f5e: 60fb str r3, [r7, #12]
tmpcr1 |= Structure->CounterMode;
8014f60: 683b ldr r3, [r7, #0]
8014f62: 685b ldr r3, [r3, #4]
8014f64: 68fa ldr r2, [r7, #12]
8014f66: 4313 orrs r3, r2
8014f68: 60fb str r3, [r7, #12]
}
if (IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx))
8014f6a: 687b ldr r3, [r7, #4]
8014f6c: 4a2f ldr r2, [pc, #188] ; (801502c <TIM_Base_SetConfig+0x114>)
8014f6e: 4293 cmp r3, r2
8014f70: d02b beq.n 8014fca <TIM_Base_SetConfig+0xb2>
8014f72: 687b ldr r3, [r7, #4]
8014f74: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000
8014f78: d027 beq.n 8014fca <TIM_Base_SetConfig+0xb2>
8014f7a: 687b ldr r3, [r7, #4]
8014f7c: 4a2c ldr r2, [pc, #176] ; (8015030 <TIM_Base_SetConfig+0x118>)
8014f7e: 4293 cmp r3, r2
8014f80: d023 beq.n 8014fca <TIM_Base_SetConfig+0xb2>
8014f82: 687b ldr r3, [r7, #4]
8014f84: 4a2b ldr r2, [pc, #172] ; (8015034 <TIM_Base_SetConfig+0x11c>)
8014f86: 4293 cmp r3, r2
8014f88: d01f beq.n 8014fca <TIM_Base_SetConfig+0xb2>
8014f8a: 687b ldr r3, [r7, #4]
8014f8c: 4a2a ldr r2, [pc, #168] ; (8015038 <TIM_Base_SetConfig+0x120>)
8014f8e: 4293 cmp r3, r2
8014f90: d01b beq.n 8014fca <TIM_Base_SetConfig+0xb2>
8014f92: 687b ldr r3, [r7, #4]
8014f94: 4a29 ldr r2, [pc, #164] ; (801503c <TIM_Base_SetConfig+0x124>)
8014f96: 4293 cmp r3, r2
8014f98: d017 beq.n 8014fca <TIM_Base_SetConfig+0xb2>
8014f9a: 687b ldr r3, [r7, #4]
8014f9c: 4a28 ldr r2, [pc, #160] ; (8015040 <TIM_Base_SetConfig+0x128>)
8014f9e: 4293 cmp r3, r2
8014fa0: d013 beq.n 8014fca <TIM_Base_SetConfig+0xb2>
8014fa2: 687b ldr r3, [r7, #4]
8014fa4: 4a27 ldr r2, [pc, #156] ; (8015044 <TIM_Base_SetConfig+0x12c>)
8014fa6: 4293 cmp r3, r2
8014fa8: d00f beq.n 8014fca <TIM_Base_SetConfig+0xb2>
8014faa: 687b ldr r3, [r7, #4]
8014fac: 4a26 ldr r2, [pc, #152] ; (8015048 <TIM_Base_SetConfig+0x130>)
8014fae: 4293 cmp r3, r2
8014fb0: d00b beq.n 8014fca <TIM_Base_SetConfig+0xb2>
8014fb2: 687b ldr r3, [r7, #4]
8014fb4: 4a25 ldr r2, [pc, #148] ; (801504c <TIM_Base_SetConfig+0x134>)
8014fb6: 4293 cmp r3, r2
8014fb8: d007 beq.n 8014fca <TIM_Base_SetConfig+0xb2>
8014fba: 687b ldr r3, [r7, #4]
8014fbc: 4a24 ldr r2, [pc, #144] ; (8015050 <TIM_Base_SetConfig+0x138>)
8014fbe: 4293 cmp r3, r2
8014fc0: d003 beq.n 8014fca <TIM_Base_SetConfig+0xb2>
8014fc2: 687b ldr r3, [r7, #4]
8014fc4: 4a23 ldr r2, [pc, #140] ; (8015054 <TIM_Base_SetConfig+0x13c>)
8014fc6: 4293 cmp r3, r2
8014fc8: d108 bne.n 8014fdc <TIM_Base_SetConfig+0xc4>
{
/* Set the clock division */
tmpcr1 &= ~TIM_CR1_CKD;
8014fca: 68fb ldr r3, [r7, #12]
8014fcc: f423 7340 bic.w r3, r3, #768 ; 0x300
8014fd0: 60fb str r3, [r7, #12]
tmpcr1 |= (uint32_t)Structure->ClockDivision;
8014fd2: 683b ldr r3, [r7, #0]
8014fd4: 68db ldr r3, [r3, #12]
8014fd6: 68fa ldr r2, [r7, #12]
8014fd8: 4313 orrs r3, r2
8014fda: 60fb str r3, [r7, #12]
}
/* Set the auto-reload preload */
MODIFY_REG(tmpcr1, TIM_CR1_ARPE, Structure->AutoReloadPreload);
8014fdc: 68fb ldr r3, [r7, #12]
8014fde: f023 0280 bic.w r2, r3, #128 ; 0x80
8014fe2: 683b ldr r3, [r7, #0]
8014fe4: 695b ldr r3, [r3, #20]
8014fe6: 4313 orrs r3, r2
8014fe8: 60fb str r3, [r7, #12]
TIMx->CR1 = tmpcr1;
8014fea: 687b ldr r3, [r7, #4]
8014fec: 68fa ldr r2, [r7, #12]
8014fee: 601a str r2, [r3, #0]
/* Set the Autoreload value */
TIMx->ARR = (uint32_t)Structure->Period ;
8014ff0: 683b ldr r3, [r7, #0]
8014ff2: 689a ldr r2, [r3, #8]
8014ff4: 687b ldr r3, [r7, #4]
8014ff6: 62da str r2, [r3, #44] ; 0x2c
/* Set the Prescaler value */
TIMx->PSC = Structure->Prescaler;
8014ff8: 683b ldr r3, [r7, #0]
8014ffa: 681a ldr r2, [r3, #0]
8014ffc: 687b ldr r3, [r7, #4]
8014ffe: 629a str r2, [r3, #40] ; 0x28
if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx))
8015000: 687b ldr r3, [r7, #4]
8015002: 4a0a ldr r2, [pc, #40] ; (801502c <TIM_Base_SetConfig+0x114>)
8015004: 4293 cmp r3, r2
8015006: d003 beq.n 8015010 <TIM_Base_SetConfig+0xf8>
8015008: 687b ldr r3, [r7, #4]
801500a: 4a0c ldr r2, [pc, #48] ; (801503c <TIM_Base_SetConfig+0x124>)
801500c: 4293 cmp r3, r2
801500e: d103 bne.n 8015018 <TIM_Base_SetConfig+0x100>
{
/* Set the Repetition Counter value */
TIMx->RCR = Structure->RepetitionCounter;
8015010: 683b ldr r3, [r7, #0]
8015012: 691a ldr r2, [r3, #16]
8015014: 687b ldr r3, [r7, #4]
8015016: 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;
8015018: 687b ldr r3, [r7, #4]
801501a: 2201 movs r2, #1
801501c: 615a str r2, [r3, #20]
}
801501e: bf00 nop
8015020: 3714 adds r7, #20
8015022: 46bd mov sp, r7
8015024: f85d 7b04 ldr.w r7, [sp], #4
8015028: 4770 bx lr
801502a: bf00 nop
801502c: 40010000 .word 0x40010000
8015030: 40000400 .word 0x40000400
8015034: 40000800 .word 0x40000800
8015038: 40000c00 .word 0x40000c00
801503c: 40010400 .word 0x40010400
8015040: 40014000 .word 0x40014000
8015044: 40014400 .word 0x40014400
8015048: 40014800 .word 0x40014800
801504c: 40001800 .word 0x40001800
8015050: 40001c00 .word 0x40001c00
8015054: 40002000 .word 0x40002000
08015058 <HAL_TIMEx_MasterConfigSynchronization>:
* mode.
* @retval HAL status
*/
HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef *htim,
TIM_MasterConfigTypeDef *sMasterConfig)
{
8015058: b480 push {r7}
801505a: b085 sub sp, #20
801505c: af00 add r7, sp, #0
801505e: 6078 str r0, [r7, #4]
8015060: 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);
8015062: 687b ldr r3, [r7, #4]
8015064: f893 303c ldrb.w r3, [r3, #60] ; 0x3c
8015068: 2b01 cmp r3, #1
801506a: d101 bne.n 8015070 <HAL_TIMEx_MasterConfigSynchronization+0x18>
801506c: 2302 movs r3, #2
801506e: e06d b.n 801514c <HAL_TIMEx_MasterConfigSynchronization+0xf4>
8015070: 687b ldr r3, [r7, #4]
8015072: 2201 movs r2, #1
8015074: f883 203c strb.w r2, [r3, #60] ; 0x3c
/* Change the handler state */
htim->State = HAL_TIM_STATE_BUSY;
8015078: 687b ldr r3, [r7, #4]
801507a: 2202 movs r2, #2
801507c: f883 203d strb.w r2, [r3, #61] ; 0x3d
/* Get the TIMx CR2 register value */
tmpcr2 = htim->Instance->CR2;
8015080: 687b ldr r3, [r7, #4]
8015082: 681b ldr r3, [r3, #0]
8015084: 685b ldr r3, [r3, #4]
8015086: 60fb str r3, [r7, #12]
/* Get the TIMx SMCR register value */
tmpsmcr = htim->Instance->SMCR;
8015088: 687b ldr r3, [r7, #4]
801508a: 681b ldr r3, [r3, #0]
801508c: 689b ldr r3, [r3, #8]
801508e: 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))
8015090: 687b ldr r3, [r7, #4]
8015092: 681b ldr r3, [r3, #0]
8015094: 4a30 ldr r2, [pc, #192] ; (8015158 <HAL_TIMEx_MasterConfigSynchronization+0x100>)
8015096: 4293 cmp r3, r2
8015098: d004 beq.n 80150a4 <HAL_TIMEx_MasterConfigSynchronization+0x4c>
801509a: 687b ldr r3, [r7, #4]
801509c: 681b ldr r3, [r3, #0]
801509e: 4a2f ldr r2, [pc, #188] ; (801515c <HAL_TIMEx_MasterConfigSynchronization+0x104>)
80150a0: 4293 cmp r3, r2
80150a2: d108 bne.n 80150b6 <HAL_TIMEx_MasterConfigSynchronization+0x5e>
{
/* Check the parameters */
assert_param(IS_TIM_TRGO2_SOURCE(sMasterConfig->MasterOutputTrigger2));
/* Clear the MMS2 bits */
tmpcr2 &= ~TIM_CR2_MMS2;
80150a4: 68fb ldr r3, [r7, #12]
80150a6: f423 0370 bic.w r3, r3, #15728640 ; 0xf00000
80150aa: 60fb str r3, [r7, #12]
/* Select the TRGO2 source*/
tmpcr2 |= sMasterConfig->MasterOutputTrigger2;
80150ac: 683b ldr r3, [r7, #0]
80150ae: 685b ldr r3, [r3, #4]
80150b0: 68fa ldr r2, [r7, #12]
80150b2: 4313 orrs r3, r2
80150b4: 60fb str r3, [r7, #12]
}
/* Reset the MMS Bits */
tmpcr2 &= ~TIM_CR2_MMS;
80150b6: 68fb ldr r3, [r7, #12]
80150b8: f023 0370 bic.w r3, r3, #112 ; 0x70
80150bc: 60fb str r3, [r7, #12]
/* Select the TRGO source */
tmpcr2 |= sMasterConfig->MasterOutputTrigger;
80150be: 683b ldr r3, [r7, #0]
80150c0: 681b ldr r3, [r3, #0]
80150c2: 68fa ldr r2, [r7, #12]
80150c4: 4313 orrs r3, r2
80150c6: 60fb str r3, [r7, #12]
/* Update TIMx CR2 */
htim->Instance->CR2 = tmpcr2;
80150c8: 687b ldr r3, [r7, #4]
80150ca: 681b ldr r3, [r3, #0]
80150cc: 68fa ldr r2, [r7, #12]
80150ce: 605a str r2, [r3, #4]
if (IS_TIM_SLAVE_INSTANCE(htim->Instance))
80150d0: 687b ldr r3, [r7, #4]
80150d2: 681b ldr r3, [r3, #0]
80150d4: 4a20 ldr r2, [pc, #128] ; (8015158 <HAL_TIMEx_MasterConfigSynchronization+0x100>)
80150d6: 4293 cmp r3, r2
80150d8: d022 beq.n 8015120 <HAL_TIMEx_MasterConfigSynchronization+0xc8>
80150da: 687b ldr r3, [r7, #4]
80150dc: 681b ldr r3, [r3, #0]
80150de: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000
80150e2: d01d beq.n 8015120 <HAL_TIMEx_MasterConfigSynchronization+0xc8>
80150e4: 687b ldr r3, [r7, #4]
80150e6: 681b ldr r3, [r3, #0]
80150e8: 4a1d ldr r2, [pc, #116] ; (8015160 <HAL_TIMEx_MasterConfigSynchronization+0x108>)
80150ea: 4293 cmp r3, r2
80150ec: d018 beq.n 8015120 <HAL_TIMEx_MasterConfigSynchronization+0xc8>
80150ee: 687b ldr r3, [r7, #4]
80150f0: 681b ldr r3, [r3, #0]
80150f2: 4a1c ldr r2, [pc, #112] ; (8015164 <HAL_TIMEx_MasterConfigSynchronization+0x10c>)
80150f4: 4293 cmp r3, r2
80150f6: d013 beq.n 8015120 <HAL_TIMEx_MasterConfigSynchronization+0xc8>
80150f8: 687b ldr r3, [r7, #4]
80150fa: 681b ldr r3, [r3, #0]
80150fc: 4a1a ldr r2, [pc, #104] ; (8015168 <HAL_TIMEx_MasterConfigSynchronization+0x110>)
80150fe: 4293 cmp r3, r2
8015100: d00e beq.n 8015120 <HAL_TIMEx_MasterConfigSynchronization+0xc8>
8015102: 687b ldr r3, [r7, #4]
8015104: 681b ldr r3, [r3, #0]
8015106: 4a15 ldr r2, [pc, #84] ; (801515c <HAL_TIMEx_MasterConfigSynchronization+0x104>)
8015108: 4293 cmp r3, r2
801510a: d009 beq.n 8015120 <HAL_TIMEx_MasterConfigSynchronization+0xc8>
801510c: 687b ldr r3, [r7, #4]
801510e: 681b ldr r3, [r3, #0]
8015110: 4a16 ldr r2, [pc, #88] ; (801516c <HAL_TIMEx_MasterConfigSynchronization+0x114>)
8015112: 4293 cmp r3, r2
8015114: d004 beq.n 8015120 <HAL_TIMEx_MasterConfigSynchronization+0xc8>
8015116: 687b ldr r3, [r7, #4]
8015118: 681b ldr r3, [r3, #0]
801511a: 4a15 ldr r2, [pc, #84] ; (8015170 <HAL_TIMEx_MasterConfigSynchronization+0x118>)
801511c: 4293 cmp r3, r2
801511e: d10c bne.n 801513a <HAL_TIMEx_MasterConfigSynchronization+0xe2>
{
/* Reset the MSM Bit */
tmpsmcr &= ~TIM_SMCR_MSM;
8015120: 68bb ldr r3, [r7, #8]
8015122: f023 0380 bic.w r3, r3, #128 ; 0x80
8015126: 60bb str r3, [r7, #8]
/* Set master mode */
tmpsmcr |= sMasterConfig->MasterSlaveMode;
8015128: 683b ldr r3, [r7, #0]
801512a: 689b ldr r3, [r3, #8]
801512c: 68ba ldr r2, [r7, #8]
801512e: 4313 orrs r3, r2
8015130: 60bb str r3, [r7, #8]
/* Update TIMx SMCR */
htim->Instance->SMCR = tmpsmcr;
8015132: 687b ldr r3, [r7, #4]
8015134: 681b ldr r3, [r3, #0]
8015136: 68ba ldr r2, [r7, #8]
8015138: 609a str r2, [r3, #8]
}
/* Change the htim state */
htim->State = HAL_TIM_STATE_READY;
801513a: 687b ldr r3, [r7, #4]
801513c: 2201 movs r2, #1
801513e: f883 203d strb.w r2, [r3, #61] ; 0x3d
__HAL_UNLOCK(htim);
8015142: 687b ldr r3, [r7, #4]
8015144: 2200 movs r2, #0
8015146: f883 203c strb.w r2, [r3, #60] ; 0x3c
return HAL_OK;
801514a: 2300 movs r3, #0
}
801514c: 4618 mov r0, r3
801514e: 3714 adds r7, #20
8015150: 46bd mov sp, r7
8015152: f85d 7b04 ldr.w r7, [sp], #4
8015156: 4770 bx lr
8015158: 40010000 .word 0x40010000
801515c: 40010400 .word 0x40010400
8015160: 40000400 .word 0x40000400
8015164: 40000800 .word 0x40000800
8015168: 40000c00 .word 0x40000c00
801516c: 40014000 .word 0x40014000
8015170: 40001800 .word 0x40001800
08015174 <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)
{
8015174: b480 push {r7}
8015176: b083 sub sp, #12
8015178: af00 add r7, sp, #0
801517a: 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
*/
}
801517c: bf00 nop
801517e: 370c adds r7, #12
8015180: 46bd mov sp, r7
8015182: f85d 7b04 ldr.w r7, [sp], #4
8015186: 4770 bx lr
08015188 <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)
{
8015188: b480 push {r7}
801518a: b083 sub sp, #12
801518c: af00 add r7, sp, #0
801518e: 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
*/
}
8015190: bf00 nop
8015192: 370c adds r7, #12
8015194: 46bd mov sp, r7
8015196: f85d 7b04 ldr.w r7, [sp], #4
801519a: 4770 bx lr
0801519c <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)
{
801519c: b480 push {r7}
801519e: b083 sub sp, #12
80151a0: af00 add r7, sp, #0
80151a2: 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
*/
}
80151a4: bf00 nop
80151a6: 370c adds r7, #12
80151a8: 46bd mov sp, r7
80151aa: f85d 7b04 ldr.w r7, [sp], #4
80151ae: 4770 bx lr
080151b0 <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)
{
80151b0: b580 push {r7, lr}
80151b2: b082 sub sp, #8
80151b4: af00 add r7, sp, #0
80151b6: 6078 str r0, [r7, #4]
/* Check the UART handle allocation */
if (huart == NULL)
80151b8: 687b ldr r3, [r7, #4]
80151ba: 2b00 cmp r3, #0
80151bc: d101 bne.n 80151c2 <HAL_UART_Init+0x12>
{
return HAL_ERROR;
80151be: 2301 movs r3, #1
80151c0: e040 b.n 8015244 <HAL_UART_Init+0x94>
{
/* Check the parameters */
assert_param(IS_UART_INSTANCE(huart->Instance));
}
if (huart->gState == HAL_UART_STATE_RESET)
80151c2: 687b ldr r3, [r7, #4]
80151c4: 6f9b ldr r3, [r3, #120] ; 0x78
80151c6: 2b00 cmp r3, #0
80151c8: d106 bne.n 80151d8 <HAL_UART_Init+0x28>
{
/* Allocate lock resource and initialize it */
huart->Lock = HAL_UNLOCKED;
80151ca: 687b ldr r3, [r7, #4]
80151cc: 2200 movs r2, #0
80151ce: 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);
80151d2: 6878 ldr r0, [r7, #4]
80151d4: f7fb f838 bl 8010248 <HAL_UART_MspInit>
#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
}
huart->gState = HAL_UART_STATE_BUSY;
80151d8: 687b ldr r3, [r7, #4]
80151da: 2224 movs r2, #36 ; 0x24
80151dc: 679a str r2, [r3, #120] ; 0x78
__HAL_UART_DISABLE(huart);
80151de: 687b ldr r3, [r7, #4]
80151e0: 681b ldr r3, [r3, #0]
80151e2: 687a ldr r2, [r7, #4]
80151e4: 6812 ldr r2, [r2, #0]
80151e6: 6812 ldr r2, [r2, #0]
80151e8: f022 0201 bic.w r2, r2, #1
80151ec: 601a str r2, [r3, #0]
/* Set the UART Communication parameters */
if (UART_SetConfig(huart) == HAL_ERROR)
80151ee: 6878 ldr r0, [r7, #4]
80151f0: f000 fd90 bl 8015d14 <UART_SetConfig>
80151f4: 4603 mov r3, r0
80151f6: 2b01 cmp r3, #1
80151f8: d101 bne.n 80151fe <HAL_UART_Init+0x4e>
{
return HAL_ERROR;
80151fa: 2301 movs r3, #1
80151fc: e022 b.n 8015244 <HAL_UART_Init+0x94>
}
if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT)
80151fe: 687b ldr r3, [r7, #4]
8015200: 6a5b ldr r3, [r3, #36] ; 0x24
8015202: 2b00 cmp r3, #0
8015204: d002 beq.n 801520c <HAL_UART_Init+0x5c>
{
UART_AdvFeatureConfig(huart);
8015206: 6878 ldr r0, [r7, #4]
8015208: f000 ffe4 bl 80161d4 <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));
801520c: 687b ldr r3, [r7, #4]
801520e: 681b ldr r3, [r3, #0]
8015210: 687a ldr r2, [r7, #4]
8015212: 6812 ldr r2, [r2, #0]
8015214: 6852 ldr r2, [r2, #4]
8015216: f422 4290 bic.w r2, r2, #18432 ; 0x4800
801521a: 605a str r2, [r3, #4]
CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
801521c: 687b ldr r3, [r7, #4]
801521e: 681b ldr r3, [r3, #0]
8015220: 687a ldr r2, [r7, #4]
8015222: 6812 ldr r2, [r2, #0]
8015224: 6892 ldr r2, [r2, #8]
8015226: f022 022a bic.w r2, r2, #42 ; 0x2a
801522a: 609a str r2, [r3, #8]
__HAL_UART_ENABLE(huart);
801522c: 687b ldr r3, [r7, #4]
801522e: 681b ldr r3, [r3, #0]
8015230: 687a ldr r2, [r7, #4]
8015232: 6812 ldr r2, [r2, #0]
8015234: 6812 ldr r2, [r2, #0]
8015236: f042 0201 orr.w r2, r2, #1
801523a: 601a str r2, [r3, #0]
/* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */
return (UART_CheckIdleState(huart));
801523c: 6878 ldr r0, [r7, #4]
801523e: f001 f86b bl 8016318 <UART_CheckIdleState>
8015242: 4603 mov r3, r0
}
8015244: 4618 mov r0, r3
8015246: 3708 adds r7, #8
8015248: 46bd mov sp, r7
801524a: bd80 pop {r7, pc}
0801524c <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)
{
801524c: b580 push {r7, lr}
801524e: b08a sub sp, #40 ; 0x28
8015250: af02 add r7, sp, #8
8015252: 60f8 str r0, [r7, #12]
8015254: 60b9 str r1, [r7, #8]
8015256: 603b str r3, [r7, #0]
8015258: 4613 mov r3, r2
801525a: 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)
801525c: 68fb ldr r3, [r7, #12]
801525e: 6fdb ldr r3, [r3, #124] ; 0x7c
8015260: 2b20 cmp r3, #32
8015262: f040 80be bne.w 80153e2 <HAL_UART_Receive+0x196>
{
if ((pData == NULL) || (Size == 0U))
8015266: 68bb ldr r3, [r7, #8]
8015268: 2b00 cmp r3, #0
801526a: d002 beq.n 8015272 <HAL_UART_Receive+0x26>
801526c: 88fb ldrh r3, [r7, #6]
801526e: 2b00 cmp r3, #0
8015270: d101 bne.n 8015276 <HAL_UART_Receive+0x2a>
{
return HAL_ERROR;
8015272: 2301 movs r3, #1
8015274: e0b6 b.n 80153e4 <HAL_UART_Receive+0x198>
}
__HAL_LOCK(huart);
8015276: 68fb ldr r3, [r7, #12]
8015278: f893 3074 ldrb.w r3, [r3, #116] ; 0x74
801527c: 2b01 cmp r3, #1
801527e: d101 bne.n 8015284 <HAL_UART_Receive+0x38>
8015280: 2302 movs r3, #2
8015282: e0af b.n 80153e4 <HAL_UART_Receive+0x198>
8015284: 68fb ldr r3, [r7, #12]
8015286: 2201 movs r2, #1
8015288: f883 2074 strb.w r2, [r3, #116] ; 0x74
huart->ErrorCode = HAL_UART_ERROR_NONE;
801528c: 68fb ldr r3, [r7, #12]
801528e: 2200 movs r2, #0
8015290: f8c3 2080 str.w r2, [r3, #128] ; 0x80
huart->RxState = HAL_UART_STATE_BUSY_RX;
8015294: 68fb ldr r3, [r7, #12]
8015296: 2222 movs r2, #34 ; 0x22
8015298: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
801529a: 68fb ldr r3, [r7, #12]
801529c: 2200 movs r2, #0
801529e: 661a str r2, [r3, #96] ; 0x60
/* Init tickstart for timeout management */
tickstart = HAL_GetTick();
80152a0: f7fc fc3e bl 8011b20 <HAL_GetTick>
80152a4: 6178 str r0, [r7, #20]
huart->RxXferSize = Size;
80152a6: 68fb ldr r3, [r7, #12]
80152a8: 88fa ldrh r2, [r7, #6]
80152aa: f8a3 2058 strh.w r2, [r3, #88] ; 0x58
huart->RxXferCount = Size;
80152ae: 68fb ldr r3, [r7, #12]
80152b0: 88fa ldrh r2, [r7, #6]
80152b2: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
/* Computation of UART mask to apply to RDR register */
UART_MASK_COMPUTATION(huart);
80152b6: 68fb ldr r3, [r7, #12]
80152b8: 689b ldr r3, [r3, #8]
80152ba: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
80152be: d10e bne.n 80152de <HAL_UART_Receive+0x92>
80152c0: 68fb ldr r3, [r7, #12]
80152c2: 691b ldr r3, [r3, #16]
80152c4: 2b00 cmp r3, #0
80152c6: d105 bne.n 80152d4 <HAL_UART_Receive+0x88>
80152c8: 68fb ldr r3, [r7, #12]
80152ca: f240 12ff movw r2, #511 ; 0x1ff
80152ce: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
80152d2: e02d b.n 8015330 <HAL_UART_Receive+0xe4>
80152d4: 68fb ldr r3, [r7, #12]
80152d6: 22ff movs r2, #255 ; 0xff
80152d8: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
80152dc: e028 b.n 8015330 <HAL_UART_Receive+0xe4>
80152de: 68fb ldr r3, [r7, #12]
80152e0: 689b ldr r3, [r3, #8]
80152e2: 2b00 cmp r3, #0
80152e4: d10d bne.n 8015302 <HAL_UART_Receive+0xb6>
80152e6: 68fb ldr r3, [r7, #12]
80152e8: 691b ldr r3, [r3, #16]
80152ea: 2b00 cmp r3, #0
80152ec: d104 bne.n 80152f8 <HAL_UART_Receive+0xac>
80152ee: 68fb ldr r3, [r7, #12]
80152f0: 22ff movs r2, #255 ; 0xff
80152f2: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
80152f6: e01b b.n 8015330 <HAL_UART_Receive+0xe4>
80152f8: 68fb ldr r3, [r7, #12]
80152fa: 227f movs r2, #127 ; 0x7f
80152fc: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
8015300: e016 b.n 8015330 <HAL_UART_Receive+0xe4>
8015302: 68fb ldr r3, [r7, #12]
8015304: 689b ldr r3, [r3, #8]
8015306: f1b3 5f80 cmp.w r3, #268435456 ; 0x10000000
801530a: d10d bne.n 8015328 <HAL_UART_Receive+0xdc>
801530c: 68fb ldr r3, [r7, #12]
801530e: 691b ldr r3, [r3, #16]
8015310: 2b00 cmp r3, #0
8015312: d104 bne.n 801531e <HAL_UART_Receive+0xd2>
8015314: 68fb ldr r3, [r7, #12]
8015316: 227f movs r2, #127 ; 0x7f
8015318: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
801531c: e008 b.n 8015330 <HAL_UART_Receive+0xe4>
801531e: 68fb ldr r3, [r7, #12]
8015320: 223f movs r2, #63 ; 0x3f
8015322: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
8015326: e003 b.n 8015330 <HAL_UART_Receive+0xe4>
8015328: 68fb ldr r3, [r7, #12]
801532a: 2200 movs r2, #0
801532c: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
uhMask = huart->Mask;
8015330: 68fb ldr r3, [r7, #12]
8015332: f8b3 305c ldrh.w r3, [r3, #92] ; 0x5c
8015336: 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))
8015338: 68fb ldr r3, [r7, #12]
801533a: 689b ldr r3, [r3, #8]
801533c: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
8015340: d108 bne.n 8015354 <HAL_UART_Receive+0x108>
8015342: 68fb ldr r3, [r7, #12]
8015344: 691b ldr r3, [r3, #16]
8015346: 2b00 cmp r3, #0
8015348: d104 bne.n 8015354 <HAL_UART_Receive+0x108>
{
pdata8bits = NULL;
801534a: 2300 movs r3, #0
801534c: 61fb str r3, [r7, #28]
pdata16bits = (uint16_t *) pData;
801534e: 68bb ldr r3, [r7, #8]
8015350: 61bb str r3, [r7, #24]
8015352: e003 b.n 801535c <HAL_UART_Receive+0x110>
}
else
{
pdata8bits = pData;
8015354: 68bb ldr r3, [r7, #8]
8015356: 61fb str r3, [r7, #28]
pdata16bits = NULL;
8015358: 2300 movs r3, #0
801535a: 61bb str r3, [r7, #24]
}
__HAL_UNLOCK(huart);
801535c: 68fb ldr r3, [r7, #12]
801535e: 2200 movs r2, #0
8015360: f883 2074 strb.w r2, [r3, #116] ; 0x74
/* as long as data have to be received */
while (huart->RxXferCount > 0U)
8015364: e032 b.n 80153cc <HAL_UART_Receive+0x180>
{
if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK)
8015366: 683b ldr r3, [r7, #0]
8015368: 9300 str r3, [sp, #0]
801536a: 697b ldr r3, [r7, #20]
801536c: 2200 movs r2, #0
801536e: 2120 movs r1, #32
8015370: 68f8 ldr r0, [r7, #12]
8015372: f001 f81a bl 80163aa <UART_WaitOnFlagUntilTimeout>
8015376: 4603 mov r3, r0
8015378: 2b00 cmp r3, #0
801537a: d001 beq.n 8015380 <HAL_UART_Receive+0x134>
{
return HAL_TIMEOUT;
801537c: 2303 movs r3, #3
801537e: e031 b.n 80153e4 <HAL_UART_Receive+0x198>
}
if (pdata8bits == NULL)
8015380: 69fb ldr r3, [r7, #28]
8015382: 2b00 cmp r3, #0
8015384: d10c bne.n 80153a0 <HAL_UART_Receive+0x154>
{
*pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask);
8015386: 68fb ldr r3, [r7, #12]
8015388: 681b ldr r3, [r3, #0]
801538a: 6a5b ldr r3, [r3, #36] ; 0x24
801538c: b29a uxth r2, r3
801538e: 8a7b ldrh r3, [r7, #18]
8015390: 4013 ands r3, r2
8015392: b29a uxth r2, r3
8015394: 69bb ldr r3, [r7, #24]
8015396: 801a strh r2, [r3, #0]
pdata16bits++;
8015398: 69bb ldr r3, [r7, #24]
801539a: 3302 adds r3, #2
801539c: 61bb str r3, [r7, #24]
801539e: e00c b.n 80153ba <HAL_UART_Receive+0x16e>
}
else
{
*pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask);
80153a0: 68fb ldr r3, [r7, #12]
80153a2: 681b ldr r3, [r3, #0]
80153a4: 6a5b ldr r3, [r3, #36] ; 0x24
80153a6: b2da uxtb r2, r3
80153a8: 8a7b ldrh r3, [r7, #18]
80153aa: b2db uxtb r3, r3
80153ac: 4013 ands r3, r2
80153ae: b2da uxtb r2, r3
80153b0: 69fb ldr r3, [r7, #28]
80153b2: 701a strb r2, [r3, #0]
pdata8bits++;
80153b4: 69fb ldr r3, [r7, #28]
80153b6: 3301 adds r3, #1
80153b8: 61fb str r3, [r7, #28]
}
huart->RxXferCount--;
80153ba: 68fb ldr r3, [r7, #12]
80153bc: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a
80153c0: b29b uxth r3, r3
80153c2: 3b01 subs r3, #1
80153c4: b29a uxth r2, r3
80153c6: 68fb ldr r3, [r7, #12]
80153c8: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
while (huart->RxXferCount > 0U)
80153cc: 68fb ldr r3, [r7, #12]
80153ce: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a
80153d2: b29b uxth r3, r3
80153d4: 2b00 cmp r3, #0
80153d6: d1c6 bne.n 8015366 <HAL_UART_Receive+0x11a>
}
/* At end of Rx process, restore huart->RxState to Ready */
huart->RxState = HAL_UART_STATE_READY;
80153d8: 68fb ldr r3, [r7, #12]
80153da: 2220 movs r2, #32
80153dc: 67da str r2, [r3, #124] ; 0x7c
return HAL_OK;
80153de: 2300 movs r3, #0
80153e0: e000 b.n 80153e4 <HAL_UART_Receive+0x198>
}
else
{
return HAL_BUSY;
80153e2: 2302 movs r3, #2
}
}
80153e4: 4618 mov r0, r3
80153e6: 3720 adds r7, #32
80153e8: 46bd mov sp, r7
80153ea: bd80 pop {r7, pc}
080153ec <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)
{
80153ec: b480 push {r7}
80153ee: b08b sub sp, #44 ; 0x2c
80153f0: af00 add r7, sp, #0
80153f2: 60f8 str r0, [r7, #12]
80153f4: 60b9 str r1, [r7, #8]
80153f6: 4613 mov r3, r2
80153f8: 80fb strh r3, [r7, #6]
/* Check that a Tx process is not already ongoing */
if (huart->gState == HAL_UART_STATE_READY)
80153fa: 68fb ldr r3, [r7, #12]
80153fc: 6f9b ldr r3, [r3, #120] ; 0x78
80153fe: 2b20 cmp r3, #32
8015400: d156 bne.n 80154b0 <HAL_UART_Transmit_IT+0xc4>
{
if ((pData == NULL) || (Size == 0U))
8015402: 68bb ldr r3, [r7, #8]
8015404: 2b00 cmp r3, #0
8015406: d002 beq.n 801540e <HAL_UART_Transmit_IT+0x22>
8015408: 88fb ldrh r3, [r7, #6]
801540a: 2b00 cmp r3, #0
801540c: d101 bne.n 8015412 <HAL_UART_Transmit_IT+0x26>
{
return HAL_ERROR;
801540e: 2301 movs r3, #1
8015410: e04f b.n 80154b2 <HAL_UART_Transmit_IT+0xc6>
}
__HAL_LOCK(huart);
8015412: 68fb ldr r3, [r7, #12]
8015414: f893 3074 ldrb.w r3, [r3, #116] ; 0x74
8015418: 2b01 cmp r3, #1
801541a: d101 bne.n 8015420 <HAL_UART_Transmit_IT+0x34>
801541c: 2302 movs r3, #2
801541e: e048 b.n 80154b2 <HAL_UART_Transmit_IT+0xc6>
8015420: 68fb ldr r3, [r7, #12]
8015422: 2201 movs r2, #1
8015424: f883 2074 strb.w r2, [r3, #116] ; 0x74
huart->pTxBuffPtr = pData;
8015428: 68fb ldr r3, [r7, #12]
801542a: 68ba ldr r2, [r7, #8]
801542c: 64da str r2, [r3, #76] ; 0x4c
huart->TxXferSize = Size;
801542e: 68fb ldr r3, [r7, #12]
8015430: 88fa ldrh r2, [r7, #6]
8015432: f8a3 2050 strh.w r2, [r3, #80] ; 0x50
huart->TxXferCount = Size;
8015436: 68fb ldr r3, [r7, #12]
8015438: 88fa ldrh r2, [r7, #6]
801543a: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
huart->TxISR = NULL;
801543e: 68fb ldr r3, [r7, #12]
8015440: 2200 movs r2, #0
8015442: 669a str r2, [r3, #104] ; 0x68
huart->ErrorCode = HAL_UART_ERROR_NONE;
8015444: 68fb ldr r3, [r7, #12]
8015446: 2200 movs r2, #0
8015448: f8c3 2080 str.w r2, [r3, #128] ; 0x80
huart->gState = HAL_UART_STATE_BUSY_TX;
801544c: 68fb ldr r3, [r7, #12]
801544e: 2221 movs r2, #33 ; 0x21
8015450: 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))
8015452: 68fb ldr r3, [r7, #12]
8015454: 689b ldr r3, [r3, #8]
8015456: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
801545a: d107 bne.n 801546c <HAL_UART_Transmit_IT+0x80>
801545c: 68fb ldr r3, [r7, #12]
801545e: 691b ldr r3, [r3, #16]
8015460: 2b00 cmp r3, #0
8015462: d103 bne.n 801546c <HAL_UART_Transmit_IT+0x80>
{
huart->TxISR = UART_TxISR_16BIT;
8015464: 68fb ldr r3, [r7, #12]
8015466: 4a16 ldr r2, [pc, #88] ; (80154c0 <HAL_UART_Transmit_IT+0xd4>)
8015468: 669a str r2, [r3, #104] ; 0x68
801546a: e002 b.n 8015472 <HAL_UART_Transmit_IT+0x86>
}
else
{
huart->TxISR = UART_TxISR_8BIT;
801546c: 68fb ldr r3, [r7, #12]
801546e: 4a15 ldr r2, [pc, #84] ; (80154c4 <HAL_UART_Transmit_IT+0xd8>)
8015470: 669a str r2, [r3, #104] ; 0x68
}
__HAL_UNLOCK(huart);
8015472: 68fb ldr r3, [r7, #12]
8015474: 2200 movs r2, #0
8015476: f883 2074 strb.w r2, [r3, #116] ; 0x74
/* Enable the Transmit Data Register Empty interrupt */
ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE);
801547a: 68fb ldr r3, [r7, #12]
801547c: 681b ldr r3, [r3, #0]
801547e: 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) );
8015480: 697b ldr r3, [r7, #20]
8015482: e853 3f00 ldrex r3, [r3]
8015486: 613b str r3, [r7, #16]
return(result);
8015488: 693b ldr r3, [r7, #16]
801548a: f043 0380 orr.w r3, r3, #128 ; 0x80
801548e: 627b str r3, [r7, #36] ; 0x24
8015490: 68fb ldr r3, [r7, #12]
8015492: 681b ldr r3, [r3, #0]
8015494: 461a mov r2, r3
8015496: 6a7b ldr r3, [r7, #36] ; 0x24
8015498: 623b str r3, [r7, #32]
801549a: 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) );
801549c: 69f9 ldr r1, [r7, #28]
801549e: 6a3a ldr r2, [r7, #32]
80154a0: e841 2300 strex r3, r2, [r1]
80154a4: 61bb str r3, [r7, #24]
return(result);
80154a6: 69bb ldr r3, [r7, #24]
80154a8: 2b00 cmp r3, #0
80154aa: d1e6 bne.n 801547a <HAL_UART_Transmit_IT+0x8e>
return HAL_OK;
80154ac: 2300 movs r3, #0
80154ae: e000 b.n 80154b2 <HAL_UART_Transmit_IT+0xc6>
}
else
{
return HAL_BUSY;
80154b0: 2302 movs r3, #2
}
}
80154b2: 4618 mov r0, r3
80154b4: 372c adds r7, #44 ; 0x2c
80154b6: 46bd mov sp, r7
80154b8: f85d 7b04 ldr.w r7, [sp], #4
80154bc: 4770 bx lr
80154be: bf00 nop
80154c0: 080167bf .word 0x080167bf
80154c4: 08016709 .word 0x08016709
080154c8 <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)
{
80154c8: b580 push {r7, lr}
80154ca: b0a2 sub sp, #136 ; 0x88
80154cc: af00 add r7, sp, #0
80154ce: 6078 str r0, [r7, #4]
uint32_t abortcplt = 1U;
80154d0: 2301 movs r3, #1
80154d2: 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));
80154d6: 687b ldr r3, [r7, #4]
80154d8: 681b ldr r3, [r3, #0]
80154da: 663b str r3, [r7, #96] ; 0x60
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
80154dc: 6e3b ldr r3, [r7, #96] ; 0x60
80154de: e853 3f00 ldrex r3, [r3]
80154e2: 65fb str r3, [r7, #92] ; 0x5c
return(result);
80154e4: 6dfb ldr r3, [r7, #92] ; 0x5c
80154e6: f423 73f0 bic.w r3, r3, #480 ; 0x1e0
80154ea: f8c7 3080 str.w r3, [r7, #128] ; 0x80
80154ee: 687b ldr r3, [r7, #4]
80154f0: 681b ldr r3, [r3, #0]
80154f2: 461a mov r2, r3
80154f4: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80
80154f8: 66fb str r3, [r7, #108] ; 0x6c
80154fa: 66ba str r2, [r7, #104] ; 0x68
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80154fc: 6eb9 ldr r1, [r7, #104] ; 0x68
80154fe: 6efa ldr r2, [r7, #108] ; 0x6c
8015500: e841 2300 strex r3, r2, [r1]
8015504: 667b str r3, [r7, #100] ; 0x64
return(result);
8015506: 6e7b ldr r3, [r7, #100] ; 0x64
8015508: 2b00 cmp r3, #0
801550a: d1e4 bne.n 80154d6 <HAL_UART_Abort_IT+0xe>
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
801550c: 687b ldr r3, [r7, #4]
801550e: 681b ldr r3, [r3, #0]
8015510: 3308 adds r3, #8
8015512: 64fb str r3, [r7, #76] ; 0x4c
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015514: 6cfb ldr r3, [r7, #76] ; 0x4c
8015516: e853 3f00 ldrex r3, [r3]
801551a: 64bb str r3, [r7, #72] ; 0x48
return(result);
801551c: 6cbb ldr r3, [r7, #72] ; 0x48
801551e: f023 0301 bic.w r3, r3, #1
8015522: 67fb str r3, [r7, #124] ; 0x7c
8015524: 687b ldr r3, [r7, #4]
8015526: 681b ldr r3, [r3, #0]
8015528: 3308 adds r3, #8
801552a: 6ffa ldr r2, [r7, #124] ; 0x7c
801552c: 65ba str r2, [r7, #88] ; 0x58
801552e: 657b str r3, [r7, #84] ; 0x54
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015530: 6d79 ldr r1, [r7, #84] ; 0x54
8015532: 6dba ldr r2, [r7, #88] ; 0x58
8015534: e841 2300 strex r3, r2, [r1]
8015538: 653b str r3, [r7, #80] ; 0x50
return(result);
801553a: 6d3b ldr r3, [r7, #80] ; 0x50
801553c: 2b00 cmp r3, #0
801553e: d1e5 bne.n 801550c <HAL_UART_Abort_IT+0x44>
/* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */
if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE)
8015540: 687b ldr r3, [r7, #4]
8015542: 6e1b ldr r3, [r3, #96] ; 0x60
8015544: 2b01 cmp r3, #1
8015546: d118 bne.n 801557a <HAL_UART_Abort_IT+0xb2>
{
ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE));
8015548: 687b ldr r3, [r7, #4]
801554a: 681b ldr r3, [r3, #0]
801554c: 63bb str r3, [r7, #56] ; 0x38
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
801554e: 6bbb ldr r3, [r7, #56] ; 0x38
8015550: e853 3f00 ldrex r3, [r3]
8015554: 637b str r3, [r7, #52] ; 0x34
return(result);
8015556: 6b7b ldr r3, [r7, #52] ; 0x34
8015558: f023 0310 bic.w r3, r3, #16
801555c: 67bb str r3, [r7, #120] ; 0x78
801555e: 687b ldr r3, [r7, #4]
8015560: 681b ldr r3, [r3, #0]
8015562: 461a mov r2, r3
8015564: 6fbb ldr r3, [r7, #120] ; 0x78
8015566: 647b str r3, [r7, #68] ; 0x44
8015568: 643a str r2, [r7, #64] ; 0x40
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
801556a: 6c39 ldr r1, [r7, #64] ; 0x40
801556c: 6c7a ldr r2, [r7, #68] ; 0x44
801556e: e841 2300 strex r3, r2, [r1]
8015572: 63fb str r3, [r7, #60] ; 0x3c
return(result);
8015574: 6bfb ldr r3, [r7, #60] ; 0x3c
8015576: 2b00 cmp r3, #0
8015578: d1e6 bne.n 8015548 <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)
801557a: 687b ldr r3, [r7, #4]
801557c: 6edb ldr r3, [r3, #108] ; 0x6c
801557e: 2b00 cmp r3, #0
8015580: d00f beq.n 80155a2 <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))
8015582: 687b ldr r3, [r7, #4]
8015584: 681b ldr r3, [r3, #0]
8015586: 689b ldr r3, [r3, #8]
8015588: f003 0380 and.w r3, r3, #128 ; 0x80
801558c: 2b80 cmp r3, #128 ; 0x80
801558e: d104 bne.n 801559a <HAL_UART_Abort_IT+0xd2>
{
huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback;
8015590: 687b ldr r3, [r7, #4]
8015592: 6edb ldr r3, [r3, #108] ; 0x6c
8015594: 4a5d ldr r2, [pc, #372] ; (801570c <HAL_UART_Abort_IT+0x244>)
8015596: 651a str r2, [r3, #80] ; 0x50
8015598: e003 b.n 80155a2 <HAL_UART_Abort_IT+0xda>
}
else
{
huart->hdmatx->XferAbortCallback = NULL;
801559a: 687b ldr r3, [r7, #4]
801559c: 6edb ldr r3, [r3, #108] ; 0x6c
801559e: 2200 movs r2, #0
80155a0: 651a str r2, [r3, #80] ; 0x50
}
}
/* DMA Rx Handle is valid */
if (huart->hdmarx != NULL)
80155a2: 687b ldr r3, [r7, #4]
80155a4: 6f1b ldr r3, [r3, #112] ; 0x70
80155a6: 2b00 cmp r3, #0
80155a8: d00f beq.n 80155ca <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))
80155aa: 687b ldr r3, [r7, #4]
80155ac: 681b ldr r3, [r3, #0]
80155ae: 689b ldr r3, [r3, #8]
80155b0: f003 0340 and.w r3, r3, #64 ; 0x40
80155b4: 2b40 cmp r3, #64 ; 0x40
80155b6: d104 bne.n 80155c2 <HAL_UART_Abort_IT+0xfa>
{
huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback;
80155b8: 687b ldr r3, [r7, #4]
80155ba: 6f1b ldr r3, [r3, #112] ; 0x70
80155bc: 4a54 ldr r2, [pc, #336] ; (8015710 <HAL_UART_Abort_IT+0x248>)
80155be: 651a str r2, [r3, #80] ; 0x50
80155c0: e003 b.n 80155ca <HAL_UART_Abort_IT+0x102>
}
else
{
huart->hdmarx->XferAbortCallback = NULL;
80155c2: 687b ldr r3, [r7, #4]
80155c4: 6f1b ldr r3, [r3, #112] ; 0x70
80155c6: 2200 movs r2, #0
80155c8: 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))
80155ca: 687b ldr r3, [r7, #4]
80155cc: 681b ldr r3, [r3, #0]
80155ce: 689b ldr r3, [r3, #8]
80155d0: f003 0380 and.w r3, r3, #128 ; 0x80
80155d4: 2b80 cmp r3, #128 ; 0x80
80155d6: d12d bne.n 8015634 <HAL_UART_Abort_IT+0x16c>
{
/* Disable DMA Tx at UART level */
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT);
80155d8: 687b ldr r3, [r7, #4]
80155da: 681b ldr r3, [r3, #0]
80155dc: 3308 adds r3, #8
80155de: 627b str r3, [r7, #36] ; 0x24
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
80155e0: 6a7b ldr r3, [r7, #36] ; 0x24
80155e2: e853 3f00 ldrex r3, [r3]
80155e6: 623b str r3, [r7, #32]
return(result);
80155e8: 6a3b ldr r3, [r7, #32]
80155ea: f023 0380 bic.w r3, r3, #128 ; 0x80
80155ee: 677b str r3, [r7, #116] ; 0x74
80155f0: 687b ldr r3, [r7, #4]
80155f2: 681b ldr r3, [r3, #0]
80155f4: 3308 adds r3, #8
80155f6: 6f7a ldr r2, [r7, #116] ; 0x74
80155f8: 633a str r2, [r7, #48] ; 0x30
80155fa: 62fb str r3, [r7, #44] ; 0x2c
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80155fc: 6af9 ldr r1, [r7, #44] ; 0x2c
80155fe: 6b3a ldr r2, [r7, #48] ; 0x30
8015600: e841 2300 strex r3, r2, [r1]
8015604: 62bb str r3, [r7, #40] ; 0x28
return(result);
8015606: 6abb ldr r3, [r7, #40] ; 0x28
8015608: 2b00 cmp r3, #0
801560a: d1e5 bne.n 80155d8 <HAL_UART_Abort_IT+0x110>
/* Abort the UART DMA Tx channel : use non blocking DMA Abort API (callback) */
if (huart->hdmatx != NULL)
801560c: 687b ldr r3, [r7, #4]
801560e: 6edb ldr r3, [r3, #108] ; 0x6c
8015610: 2b00 cmp r3, #0
8015612: d00f beq.n 8015634 <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)
8015614: 687b ldr r3, [r7, #4]
8015616: 6edb ldr r3, [r3, #108] ; 0x6c
8015618: 4618 mov r0, r3
801561a: f7fc fc5e bl 8011eda <HAL_DMA_Abort_IT>
801561e: 4603 mov r3, r0
8015620: 2b00 cmp r3, #0
8015622: d004 beq.n 801562e <HAL_UART_Abort_IT+0x166>
{
huart->hdmatx->XferAbortCallback = NULL;
8015624: 687b ldr r3, [r7, #4]
8015626: 6edb ldr r3, [r3, #108] ; 0x6c
8015628: 2200 movs r2, #0
801562a: 651a str r2, [r3, #80] ; 0x50
801562c: e002 b.n 8015634 <HAL_UART_Abort_IT+0x16c>
}
else
{
abortcplt = 0U;
801562e: 2300 movs r3, #0
8015630: 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))
8015634: 687b ldr r3, [r7, #4]
8015636: 681b ldr r3, [r3, #0]
8015638: 689b ldr r3, [r3, #8]
801563a: f003 0340 and.w r3, r3, #64 ; 0x40
801563e: 2b40 cmp r3, #64 ; 0x40
8015640: d130 bne.n 80156a4 <HAL_UART_Abort_IT+0x1dc>
{
/* Disable the UART DMA Rx request if enabled */
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
8015642: 687b ldr r3, [r7, #4]
8015644: 681b ldr r3, [r3, #0]
8015646: 3308 adds r3, #8
8015648: 613b str r3, [r7, #16]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
801564a: 693b ldr r3, [r7, #16]
801564c: e853 3f00 ldrex r3, [r3]
8015650: 60fb str r3, [r7, #12]
return(result);
8015652: 68fb ldr r3, [r7, #12]
8015654: f023 0340 bic.w r3, r3, #64 ; 0x40
8015658: 673b str r3, [r7, #112] ; 0x70
801565a: 687b ldr r3, [r7, #4]
801565c: 681b ldr r3, [r3, #0]
801565e: 3308 adds r3, #8
8015660: 6f3a ldr r2, [r7, #112] ; 0x70
8015662: 61fa str r2, [r7, #28]
8015664: 61bb str r3, [r7, #24]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015666: 69b9 ldr r1, [r7, #24]
8015668: 69fa ldr r2, [r7, #28]
801566a: e841 2300 strex r3, r2, [r1]
801566e: 617b str r3, [r7, #20]
return(result);
8015670: 697b ldr r3, [r7, #20]
8015672: 2b00 cmp r3, #0
8015674: d1e5 bne.n 8015642 <HAL_UART_Abort_IT+0x17a>
/* Abort the UART DMA Rx channel : use non blocking DMA Abort API (callback) */
if (huart->hdmarx != NULL)
8015676: 687b ldr r3, [r7, #4]
8015678: 6f1b ldr r3, [r3, #112] ; 0x70
801567a: 2b00 cmp r3, #0
801567c: d012 beq.n 80156a4 <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)
801567e: 687b ldr r3, [r7, #4]
8015680: 6f1b ldr r3, [r3, #112] ; 0x70
8015682: 4618 mov r0, r3
8015684: f7fc fc29 bl 8011eda <HAL_DMA_Abort_IT>
8015688: 4603 mov r3, r0
801568a: 2b00 cmp r3, #0
801568c: d007 beq.n 801569e <HAL_UART_Abort_IT+0x1d6>
{
huart->hdmarx->XferAbortCallback = NULL;
801568e: 687b ldr r3, [r7, #4]
8015690: 6f1b ldr r3, [r3, #112] ; 0x70
8015692: 2200 movs r2, #0
8015694: 651a str r2, [r3, #80] ; 0x50
abortcplt = 1U;
8015696: 2301 movs r3, #1
8015698: f8c7 3084 str.w r3, [r7, #132] ; 0x84
801569c: e002 b.n 80156a4 <HAL_UART_Abort_IT+0x1dc>
}
else
{
abortcplt = 0U;
801569e: 2300 movs r3, #0
80156a0: 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)
80156a4: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84
80156a8: 2b01 cmp r3, #1
80156aa: d129 bne.n 8015700 <HAL_UART_Abort_IT+0x238>
{
/* Reset Tx and Rx transfer counters */
huart->TxXferCount = 0U;
80156ac: 687b ldr r3, [r7, #4]
80156ae: 2200 movs r2, #0
80156b0: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
huart->RxXferCount = 0U;
80156b4: 687b ldr r3, [r7, #4]
80156b6: 2200 movs r2, #0
80156b8: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
/* Clear ISR function pointers */
huart->RxISR = NULL;
80156bc: 687b ldr r3, [r7, #4]
80156be: 2200 movs r2, #0
80156c0: 665a str r2, [r3, #100] ; 0x64
huart->TxISR = NULL;
80156c2: 687b ldr r3, [r7, #4]
80156c4: 2200 movs r2, #0
80156c6: 669a str r2, [r3, #104] ; 0x68
/* Reset errorCode */
huart->ErrorCode = HAL_UART_ERROR_NONE;
80156c8: 687b ldr r3, [r7, #4]
80156ca: 2200 movs r2, #0
80156cc: 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);
80156d0: 687b ldr r3, [r7, #4]
80156d2: 681b ldr r3, [r3, #0]
80156d4: 220f movs r2, #15
80156d6: 621a str r2, [r3, #32]
/* Discard the received data */
__HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
80156d8: 687b ldr r3, [r7, #4]
80156da: 681b ldr r3, [r3, #0]
80156dc: 687a ldr r2, [r7, #4]
80156de: 6812 ldr r2, [r2, #0]
80156e0: 6992 ldr r2, [r2, #24]
80156e2: f042 0208 orr.w r2, r2, #8
80156e6: 619a str r2, [r3, #24]
/* Restore huart->gState and huart->RxState to Ready */
huart->gState = HAL_UART_STATE_READY;
80156e8: 687b ldr r3, [r7, #4]
80156ea: 2220 movs r2, #32
80156ec: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
80156ee: 687b ldr r3, [r7, #4]
80156f0: 2220 movs r2, #32
80156f2: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
80156f4: 687b ldr r3, [r7, #4]
80156f6: 2200 movs r2, #0
80156f8: 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);
80156fa: 6878 ldr r0, [r7, #4]
80156fc: f000 faea bl 8015cd4 <HAL_UART_AbortCpltCallback>
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
}
return HAL_OK;
8015700: 2300 movs r3, #0
}
8015702: 4618 mov r0, r3
8015704: 3788 adds r7, #136 ; 0x88
8015706: 46bd mov sp, r7
8015708: bd80 pop {r7, pc}
801570a: bf00 nop
801570c: 08016625 .word 0x08016625
8015710: 0801668f .word 0x0801668f
08015714 <HAL_UART_IRQHandler>:
* @brief Handle UART interrupt request.
* @param huart UART handle.
* @retval None
*/
void HAL_UART_IRQHandler(UART_HandleTypeDef *huart)
{
8015714: b580 push {r7, lr}
8015716: b0ba sub sp, #232 ; 0xe8
8015718: af00 add r7, sp, #0
801571a: 6078 str r0, [r7, #4]
uint32_t isrflags = READ_REG(huart->Instance->ISR);
801571c: 687b ldr r3, [r7, #4]
801571e: 681b ldr r3, [r3, #0]
8015720: 69db ldr r3, [r3, #28]
8015722: f8c7 30e4 str.w r3, [r7, #228] ; 0xe4
uint32_t cr1its = READ_REG(huart->Instance->CR1);
8015726: 687b ldr r3, [r7, #4]
8015728: 681b ldr r3, [r3, #0]
801572a: 681b ldr r3, [r3, #0]
801572c: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0
uint32_t cr3its = READ_REG(huart->Instance->CR3);
8015730: 687b ldr r3, [r7, #4]
8015732: 681b ldr r3, [r3, #0]
8015734: 689b ldr r3, [r3, #8]
8015736: 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));
801573a: f8d7 20e4 ldr.w r2, [r7, #228] ; 0xe4
801573e: f640 030f movw r3, #2063 ; 0x80f
8015742: 4013 ands r3, r2
8015744: f8c7 30d8 str.w r3, [r7, #216] ; 0xd8
if (errorflags == 0U)
8015748: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8
801574c: 2b00 cmp r3, #0
801574e: d115 bne.n 801577c <HAL_UART_IRQHandler+0x68>
{
/* UART in mode Receiver ---------------------------------------------------*/
if (((isrflags & USART_ISR_RXNE) != 0U)
8015750: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
8015754: f003 0320 and.w r3, r3, #32
8015758: 2b00 cmp r3, #0
801575a: d00f beq.n 801577c <HAL_UART_IRQHandler+0x68>
&& ((cr1its & USART_CR1_RXNEIE) != 0U))
801575c: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
8015760: f003 0320 and.w r3, r3, #32
8015764: 2b00 cmp r3, #0
8015766: d009 beq.n 801577c <HAL_UART_IRQHandler+0x68>
{
if (huart->RxISR != NULL)
8015768: 687b ldr r3, [r7, #4]
801576a: 6e5b ldr r3, [r3, #100] ; 0x64
801576c: 2b00 cmp r3, #0
801576e: f000 82a5 beq.w 8015cbc <HAL_UART_IRQHandler+0x5a8>
{
huart->RxISR(huart);
8015772: 687b ldr r3, [r7, #4]
8015774: 6e5b ldr r3, [r3, #100] ; 0x64
8015776: 6878 ldr r0, [r7, #4]
8015778: 4798 blx r3
}
return;
801577a: e29f b.n 8015cbc <HAL_UART_IRQHandler+0x5a8>
}
}
/* If some errors occur */
if ((errorflags != 0U)
801577c: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8
8015780: 2b00 cmp r3, #0
8015782: f000 8117 beq.w 80159b4 <HAL_UART_IRQHandler+0x2a0>
&& (((cr3its & USART_CR3_EIE) != 0U)
8015786: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc
801578a: f003 0301 and.w r3, r3, #1
801578e: 2b00 cmp r3, #0
8015790: d106 bne.n 80157a0 <HAL_UART_IRQHandler+0x8c>
|| ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_RTOIE)) != 0U)))
8015792: f8d7 20e0 ldr.w r2, [r7, #224] ; 0xe0
8015796: 4b85 ldr r3, [pc, #532] ; (80159ac <HAL_UART_IRQHandler+0x298>)
8015798: 4013 ands r3, r2
801579a: 2b00 cmp r3, #0
801579c: f000 810a beq.w 80159b4 <HAL_UART_IRQHandler+0x2a0>
{
/* UART parity error interrupt occurred -------------------------------------*/
if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U))
80157a0: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
80157a4: f003 0301 and.w r3, r3, #1
80157a8: 2b00 cmp r3, #0
80157aa: d011 beq.n 80157d0 <HAL_UART_IRQHandler+0xbc>
80157ac: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
80157b0: f403 7380 and.w r3, r3, #256 ; 0x100
80157b4: 2b00 cmp r3, #0
80157b6: d00b beq.n 80157d0 <HAL_UART_IRQHandler+0xbc>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF);
80157b8: 687b ldr r3, [r7, #4]
80157ba: 681b ldr r3, [r3, #0]
80157bc: 2201 movs r2, #1
80157be: 621a str r2, [r3, #32]
huart->ErrorCode |= HAL_UART_ERROR_PE;
80157c0: 687b ldr r3, [r7, #4]
80157c2: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
80157c6: f043 0201 orr.w r2, r3, #1
80157ca: 687b ldr r3, [r7, #4]
80157cc: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
/* UART frame error interrupt occurred --------------------------------------*/
if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U))
80157d0: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
80157d4: f003 0302 and.w r3, r3, #2
80157d8: 2b00 cmp r3, #0
80157da: d011 beq.n 8015800 <HAL_UART_IRQHandler+0xec>
80157dc: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc
80157e0: f003 0301 and.w r3, r3, #1
80157e4: 2b00 cmp r3, #0
80157e6: d00b beq.n 8015800 <HAL_UART_IRQHandler+0xec>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF);
80157e8: 687b ldr r3, [r7, #4]
80157ea: 681b ldr r3, [r3, #0]
80157ec: 2202 movs r2, #2
80157ee: 621a str r2, [r3, #32]
huart->ErrorCode |= HAL_UART_ERROR_FE;
80157f0: 687b ldr r3, [r7, #4]
80157f2: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
80157f6: f043 0204 orr.w r2, r3, #4
80157fa: 687b ldr r3, [r7, #4]
80157fc: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
/* UART noise error interrupt occurred --------------------------------------*/
if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U))
8015800: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
8015804: f003 0304 and.w r3, r3, #4
8015808: 2b00 cmp r3, #0
801580a: d011 beq.n 8015830 <HAL_UART_IRQHandler+0x11c>
801580c: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc
8015810: f003 0301 and.w r3, r3, #1
8015814: 2b00 cmp r3, #0
8015816: d00b beq.n 8015830 <HAL_UART_IRQHandler+0x11c>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF);
8015818: 687b ldr r3, [r7, #4]
801581a: 681b ldr r3, [r3, #0]
801581c: 2204 movs r2, #4
801581e: 621a str r2, [r3, #32]
huart->ErrorCode |= HAL_UART_ERROR_NE;
8015820: 687b ldr r3, [r7, #4]
8015822: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
8015826: f043 0202 orr.w r2, r3, #2
801582a: 687b ldr r3, [r7, #4]
801582c: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
/* UART Over-Run interrupt occurred -----------------------------------------*/
if (((isrflags & USART_ISR_ORE) != 0U)
8015830: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
8015834: f003 0308 and.w r3, r3, #8
8015838: 2b00 cmp r3, #0
801583a: d017 beq.n 801586c <HAL_UART_IRQHandler+0x158>
&& (((cr1its & USART_CR1_RXNEIE) != 0U) ||
801583c: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
8015840: f003 0320 and.w r3, r3, #32
8015844: 2b00 cmp r3, #0
8015846: d105 bne.n 8015854 <HAL_UART_IRQHandler+0x140>
((cr3its & USART_CR3_EIE) != 0U)))
8015848: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc
801584c: f003 0301 and.w r3, r3, #1
&& (((cr1its & USART_CR1_RXNEIE) != 0U) ||
8015850: 2b00 cmp r3, #0
8015852: d00b beq.n 801586c <HAL_UART_IRQHandler+0x158>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF);
8015854: 687b ldr r3, [r7, #4]
8015856: 681b ldr r3, [r3, #0]
8015858: 2208 movs r2, #8
801585a: 621a str r2, [r3, #32]
huart->ErrorCode |= HAL_UART_ERROR_ORE;
801585c: 687b ldr r3, [r7, #4]
801585e: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
8015862: f043 0208 orr.w r2, r3, #8
8015866: 687b ldr r3, [r7, #4]
8015868: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
/* UART Receiver Timeout interrupt occurred ---------------------------------*/
if (((isrflags & USART_ISR_RTOF) != 0U) && ((cr1its & USART_CR1_RTOIE) != 0U))
801586c: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
8015870: f403 6300 and.w r3, r3, #2048 ; 0x800
8015874: 2b00 cmp r3, #0
8015876: d012 beq.n 801589e <HAL_UART_IRQHandler+0x18a>
8015878: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
801587c: f003 6380 and.w r3, r3, #67108864 ; 0x4000000
8015880: 2b00 cmp r3, #0
8015882: d00c beq.n 801589e <HAL_UART_IRQHandler+0x18a>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF);
8015884: 687b ldr r3, [r7, #4]
8015886: 681b ldr r3, [r3, #0]
8015888: f44f 6200 mov.w r2, #2048 ; 0x800
801588c: 621a str r2, [r3, #32]
huart->ErrorCode |= HAL_UART_ERROR_RTO;
801588e: 687b ldr r3, [r7, #4]
8015890: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
8015894: f043 0220 orr.w r2, r3, #32
8015898: 687b ldr r3, [r7, #4]
801589a: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
/* Call UART Error Call back function if need be ----------------------------*/
if (huart->ErrorCode != HAL_UART_ERROR_NONE)
801589e: 687b ldr r3, [r7, #4]
80158a0: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
80158a4: 2b00 cmp r3, #0
80158a6: f000 820b beq.w 8015cc0 <HAL_UART_IRQHandler+0x5ac>
{
/* UART in mode Receiver --------------------------------------------------*/
if (((isrflags & USART_ISR_RXNE) != 0U)
80158aa: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
80158ae: f003 0320 and.w r3, r3, #32
80158b2: 2b00 cmp r3, #0
80158b4: d00d beq.n 80158d2 <HAL_UART_IRQHandler+0x1be>
&& ((cr1its & USART_CR1_RXNEIE) != 0U))
80158b6: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
80158ba: f003 0320 and.w r3, r3, #32
80158be: 2b00 cmp r3, #0
80158c0: d007 beq.n 80158d2 <HAL_UART_IRQHandler+0x1be>
{
if (huart->RxISR != NULL)
80158c2: 687b ldr r3, [r7, #4]
80158c4: 6e5b ldr r3, [r3, #100] ; 0x64
80158c6: 2b00 cmp r3, #0
80158c8: d003 beq.n 80158d2 <HAL_UART_IRQHandler+0x1be>
{
huart->RxISR(huart);
80158ca: 687b ldr r3, [r7, #4]
80158cc: 6e5b ldr r3, [r3, #100] ; 0x64
80158ce: 6878 ldr r0, [r7, #4]
80158d0: 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;
80158d2: 687b ldr r3, [r7, #4]
80158d4: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
80158d8: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4
if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) ||
80158dc: 687b ldr r3, [r7, #4]
80158de: 681b ldr r3, [r3, #0]
80158e0: 689b ldr r3, [r3, #8]
80158e2: f003 0340 and.w r3, r3, #64 ; 0x40
80158e6: 2b40 cmp r3, #64 ; 0x40
80158e8: d005 beq.n 80158f6 <HAL_UART_IRQHandler+0x1e2>
((errorcode & (HAL_UART_ERROR_RTO | HAL_UART_ERROR_ORE)) != 0U))
80158ea: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4
80158ee: f003 0328 and.w r3, r3, #40 ; 0x28
if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) ||
80158f2: 2b00 cmp r3, #0
80158f4: d04f beq.n 8015996 <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);
80158f6: 6878 ldr r0, [r7, #4]
80158f8: f000 fe1b bl 8016532 <UART_EndRxTransfer>
/* Abort the UART DMA Rx channel if enabled */
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
80158fc: 687b ldr r3, [r7, #4]
80158fe: 681b ldr r3, [r3, #0]
8015900: 689b ldr r3, [r3, #8]
8015902: f003 0340 and.w r3, r3, #64 ; 0x40
8015906: 2b40 cmp r3, #64 ; 0x40
8015908: d141 bne.n 801598e <HAL_UART_IRQHandler+0x27a>
{
/* Disable the UART DMA Rx request if enabled */
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
801590a: 687b ldr r3, [r7, #4]
801590c: 681b ldr r3, [r3, #0]
801590e: 3308 adds r3, #8
8015910: f8c7 309c str.w r3, [r7, #156] ; 0x9c
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015914: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c
8015918: e853 3f00 ldrex r3, [r3]
801591c: f8c7 3098 str.w r3, [r7, #152] ; 0x98
return(result);
8015920: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98
8015924: f023 0340 bic.w r3, r3, #64 ; 0x40
8015928: f8c7 30d0 str.w r3, [r7, #208] ; 0xd0
801592c: 687b ldr r3, [r7, #4]
801592e: 681b ldr r3, [r3, #0]
8015930: 3308 adds r3, #8
8015932: f8d7 20d0 ldr.w r2, [r7, #208] ; 0xd0
8015936: f8c7 20a8 str.w r2, [r7, #168] ; 0xa8
801593a: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
801593e: f8d7 10a4 ldr.w r1, [r7, #164] ; 0xa4
8015942: f8d7 20a8 ldr.w r2, [r7, #168] ; 0xa8
8015946: e841 2300 strex r3, r2, [r1]
801594a: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0
return(result);
801594e: f8d7 30a0 ldr.w r3, [r7, #160] ; 0xa0
8015952: 2b00 cmp r3, #0
8015954: d1d9 bne.n 801590a <HAL_UART_IRQHandler+0x1f6>
/* Abort the UART DMA Rx channel */
if (huart->hdmarx != NULL)
8015956: 687b ldr r3, [r7, #4]
8015958: 6f1b ldr r3, [r3, #112] ; 0x70
801595a: 2b00 cmp r3, #0
801595c: d013 beq.n 8015986 <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;
801595e: 687b ldr r3, [r7, #4]
8015960: 6f1b ldr r3, [r3, #112] ; 0x70
8015962: 4a13 ldr r2, [pc, #76] ; (80159b0 <HAL_UART_IRQHandler+0x29c>)
8015964: 651a str r2, [r3, #80] ; 0x50
/* Abort DMA RX */
if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK)
8015966: 687b ldr r3, [r7, #4]
8015968: 6f1b ldr r3, [r3, #112] ; 0x70
801596a: 4618 mov r0, r3
801596c: f7fc fab5 bl 8011eda <HAL_DMA_Abort_IT>
8015970: 4603 mov r3, r0
8015972: 2b00 cmp r3, #0
8015974: d017 beq.n 80159a6 <HAL_UART_IRQHandler+0x292>
{
/* Call Directly huart->hdmarx->XferAbortCallback function in case of error */
huart->hdmarx->XferAbortCallback(huart->hdmarx);
8015976: 687b ldr r3, [r7, #4]
8015978: 6f1b ldr r3, [r3, #112] ; 0x70
801597a: 6d1b ldr r3, [r3, #80] ; 0x50
801597c: 687a ldr r2, [r7, #4]
801597e: 6f12 ldr r2, [r2, #112] ; 0x70
8015980: 4610 mov r0, r2
8015982: 4798 blx r3
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
8015984: e00f b.n 80159a6 <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);
8015986: 6878 ldr r0, [r7, #4]
8015988: f7fa fd7a bl 8010480 <HAL_UART_ErrorCallback>
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
801598c: e00b b.n 80159a6 <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);
801598e: 6878 ldr r0, [r7, #4]
8015990: f7fa fd76 bl 8010480 <HAL_UART_ErrorCallback>
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
8015994: e007 b.n 80159a6 <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);
8015996: 6878 ldr r0, [r7, #4]
8015998: f7fa fd72 bl 8010480 <HAL_UART_ErrorCallback>
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
huart->ErrorCode = HAL_UART_ERROR_NONE;
801599c: 687b ldr r3, [r7, #4]
801599e: 2200 movs r2, #0
80159a0: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
}
return;
80159a4: e18c b.n 8015cc0 <HAL_UART_IRQHandler+0x5ac>
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
80159a6: bf00 nop
return;
80159a8: e18a b.n 8015cc0 <HAL_UART_IRQHandler+0x5ac>
80159aa: bf00 nop
80159ac: 04000120 .word 0x04000120
80159b0: 080165f9 .word 0x080165f9
} /* End if some error occurs */
/* Check current reception Mode :
If Reception till IDLE event has been selected : */
if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE)
80159b4: 687b ldr r3, [r7, #4]
80159b6: 6e1b ldr r3, [r3, #96] ; 0x60
80159b8: 2b01 cmp r3, #1
80159ba: f040 8144 bne.w 8015c46 <HAL_UART_IRQHandler+0x532>
&& ((isrflags & USART_ISR_IDLE) != 0U)
80159be: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
80159c2: f003 0310 and.w r3, r3, #16
80159c6: 2b00 cmp r3, #0
80159c8: f000 813d beq.w 8015c46 <HAL_UART_IRQHandler+0x532>
&& ((cr1its & USART_ISR_IDLE) != 0U))
80159cc: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
80159d0: f003 0310 and.w r3, r3, #16
80159d4: 2b00 cmp r3, #0
80159d6: f000 8136 beq.w 8015c46 <HAL_UART_IRQHandler+0x532>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF);
80159da: 687b ldr r3, [r7, #4]
80159dc: 681b ldr r3, [r3, #0]
80159de: 2210 movs r2, #16
80159e0: 621a str r2, [r3, #32]
/* Check if DMA mode is enabled in UART */
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
80159e2: 687b ldr r3, [r7, #4]
80159e4: 681b ldr r3, [r3, #0]
80159e6: 689b ldr r3, [r3, #8]
80159e8: f003 0340 and.w r3, r3, #64 ; 0x40
80159ec: 2b40 cmp r3, #64 ; 0x40
80159ee: f040 80b2 bne.w 8015b56 <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);
80159f2: 687b ldr r3, [r7, #4]
80159f4: 6f1b ldr r3, [r3, #112] ; 0x70
80159f6: 681b ldr r3, [r3, #0]
80159f8: 685b ldr r3, [r3, #4]
80159fa: f8a7 30ce strh.w r3, [r7, #206] ; 0xce
if ((nb_remaining_rx_data > 0U)
80159fe: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce
8015a02: 2b00 cmp r3, #0
8015a04: f000 815e beq.w 8015cc4 <HAL_UART_IRQHandler+0x5b0>
&& (nb_remaining_rx_data < huart->RxXferSize))
8015a08: 687b ldr r3, [r7, #4]
8015a0a: f8b3 3058 ldrh.w r3, [r3, #88] ; 0x58
8015a0e: f8b7 20ce ldrh.w r2, [r7, #206] ; 0xce
8015a12: 429a cmp r2, r3
8015a14: f080 8156 bcs.w 8015cc4 <HAL_UART_IRQHandler+0x5b0>
{
/* Reception is not complete */
huart->RxXferCount = nb_remaining_rx_data;
8015a18: 687b ldr r3, [r7, #4]
8015a1a: f8b7 20ce ldrh.w r2, [r7, #206] ; 0xce
8015a1e: 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)
8015a22: 687b ldr r3, [r7, #4]
8015a24: 6f1b ldr r3, [r3, #112] ; 0x70
8015a26: 69db ldr r3, [r3, #28]
8015a28: f5b3 7f80 cmp.w r3, #256 ; 0x100
8015a2c: f000 8085 beq.w 8015b3a <HAL_UART_IRQHandler+0x426>
{
/* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE);
8015a30: 687b ldr r3, [r7, #4]
8015a32: 681b ldr r3, [r3, #0]
8015a34: f8c7 3088 str.w r3, [r7, #136] ; 0x88
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015a38: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88
8015a3c: e853 3f00 ldrex r3, [r3]
8015a40: f8c7 3084 str.w r3, [r7, #132] ; 0x84
return(result);
8015a44: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84
8015a48: f423 7380 bic.w r3, r3, #256 ; 0x100
8015a4c: f8c7 30c8 str.w r3, [r7, #200] ; 0xc8
8015a50: 687b ldr r3, [r7, #4]
8015a52: 681b ldr r3, [r3, #0]
8015a54: 461a mov r2, r3
8015a56: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8
8015a5a: f8c7 3094 str.w r3, [r7, #148] ; 0x94
8015a5e: f8c7 2090 str.w r2, [r7, #144] ; 0x90
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015a62: f8d7 1090 ldr.w r1, [r7, #144] ; 0x90
8015a66: f8d7 2094 ldr.w r2, [r7, #148] ; 0x94
8015a6a: e841 2300 strex r3, r2, [r1]
8015a6e: f8c7 308c str.w r3, [r7, #140] ; 0x8c
return(result);
8015a72: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c
8015a76: 2b00 cmp r3, #0
8015a78: d1da bne.n 8015a30 <HAL_UART_IRQHandler+0x31c>
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
8015a7a: 687b ldr r3, [r7, #4]
8015a7c: 681b ldr r3, [r3, #0]
8015a7e: 3308 adds r3, #8
8015a80: 677b str r3, [r7, #116] ; 0x74
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015a82: 6f7b ldr r3, [r7, #116] ; 0x74
8015a84: e853 3f00 ldrex r3, [r3]
8015a88: 673b str r3, [r7, #112] ; 0x70
return(result);
8015a8a: 6f3b ldr r3, [r7, #112] ; 0x70
8015a8c: f023 0301 bic.w r3, r3, #1
8015a90: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4
8015a94: 687b ldr r3, [r7, #4]
8015a96: 681b ldr r3, [r3, #0]
8015a98: 3308 adds r3, #8
8015a9a: f8d7 20c4 ldr.w r2, [r7, #196] ; 0xc4
8015a9e: f8c7 2080 str.w r2, [r7, #128] ; 0x80
8015aa2: 67fb str r3, [r7, #124] ; 0x7c
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015aa4: 6ff9 ldr r1, [r7, #124] ; 0x7c
8015aa6: f8d7 2080 ldr.w r2, [r7, #128] ; 0x80
8015aaa: e841 2300 strex r3, r2, [r1]
8015aae: 67bb str r3, [r7, #120] ; 0x78
return(result);
8015ab0: 6fbb ldr r3, [r7, #120] ; 0x78
8015ab2: 2b00 cmp r3, #0
8015ab4: d1e1 bne.n 8015a7a <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);
8015ab6: 687b ldr r3, [r7, #4]
8015ab8: 681b ldr r3, [r3, #0]
8015aba: 3308 adds r3, #8
8015abc: 663b str r3, [r7, #96] ; 0x60
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015abe: 6e3b ldr r3, [r7, #96] ; 0x60
8015ac0: e853 3f00 ldrex r3, [r3]
8015ac4: 65fb str r3, [r7, #92] ; 0x5c
return(result);
8015ac6: 6dfb ldr r3, [r7, #92] ; 0x5c
8015ac8: f023 0340 bic.w r3, r3, #64 ; 0x40
8015acc: f8c7 30c0 str.w r3, [r7, #192] ; 0xc0
8015ad0: 687b ldr r3, [r7, #4]
8015ad2: 681b ldr r3, [r3, #0]
8015ad4: 3308 adds r3, #8
8015ad6: f8d7 20c0 ldr.w r2, [r7, #192] ; 0xc0
8015ada: 66fa str r2, [r7, #108] ; 0x6c
8015adc: 66bb str r3, [r7, #104] ; 0x68
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015ade: 6eb9 ldr r1, [r7, #104] ; 0x68
8015ae0: 6efa ldr r2, [r7, #108] ; 0x6c
8015ae2: e841 2300 strex r3, r2, [r1]
8015ae6: 667b str r3, [r7, #100] ; 0x64
return(result);
8015ae8: 6e7b ldr r3, [r7, #100] ; 0x64
8015aea: 2b00 cmp r3, #0
8015aec: d1e3 bne.n 8015ab6 <HAL_UART_IRQHandler+0x3a2>
/* At end of Rx process, restore huart->RxState to Ready */
huart->RxState = HAL_UART_STATE_READY;
8015aee: 687b ldr r3, [r7, #4]
8015af0: 2220 movs r2, #32
8015af2: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
8015af4: 687b ldr r3, [r7, #4]
8015af6: 2200 movs r2, #0
8015af8: 661a str r2, [r3, #96] ; 0x60
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
8015afa: 687b ldr r3, [r7, #4]
8015afc: 681b ldr r3, [r3, #0]
8015afe: 64fb str r3, [r7, #76] ; 0x4c
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015b00: 6cfb ldr r3, [r7, #76] ; 0x4c
8015b02: e853 3f00 ldrex r3, [r3]
8015b06: 64bb str r3, [r7, #72] ; 0x48
return(result);
8015b08: 6cbb ldr r3, [r7, #72] ; 0x48
8015b0a: f023 0310 bic.w r3, r3, #16
8015b0e: f8c7 30bc str.w r3, [r7, #188] ; 0xbc
8015b12: 687b ldr r3, [r7, #4]
8015b14: 681b ldr r3, [r3, #0]
8015b16: 461a mov r2, r3
8015b18: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc
8015b1c: 65bb str r3, [r7, #88] ; 0x58
8015b1e: 657a str r2, [r7, #84] ; 0x54
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015b20: 6d79 ldr r1, [r7, #84] ; 0x54
8015b22: 6dba ldr r2, [r7, #88] ; 0x58
8015b24: e841 2300 strex r3, r2, [r1]
8015b28: 653b str r3, [r7, #80] ; 0x50
return(result);
8015b2a: 6d3b ldr r3, [r7, #80] ; 0x50
8015b2c: 2b00 cmp r3, #0
8015b2e: d1e4 bne.n 8015afa <HAL_UART_IRQHandler+0x3e6>
/* Last bytes received, so no need as the abort is immediate */
(void)HAL_DMA_Abort(huart->hdmarx);
8015b30: 687b ldr r3, [r7, #4]
8015b32: 6f1b ldr r3, [r3, #112] ; 0x70
8015b34: 4618 mov r0, r3
8015b36: f7fc f960 bl 8011dfa <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));
8015b3a: 687b ldr r3, [r7, #4]
8015b3c: f8b3 2058 ldrh.w r2, [r3, #88] ; 0x58
8015b40: 687b ldr r3, [r7, #4]
8015b42: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a
8015b46: b29b uxth r3, r3
8015b48: 1ad3 subs r3, r2, r3
8015b4a: b29b uxth r3, r3
8015b4c: 4619 mov r1, r3
8015b4e: 6878 ldr r0, [r7, #4]
8015b50: f000 f8ca bl 8015ce8 <HAL_UARTEx_RxEventCallback>
#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
}
return;
8015b54: e0b6 b.n 8015cc4 <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;
8015b56: 687b ldr r3, [r7, #4]
8015b58: f8b3 2058 ldrh.w r2, [r3, #88] ; 0x58
8015b5c: 687b ldr r3, [r7, #4]
8015b5e: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a
8015b62: b29b uxth r3, r3
8015b64: 1ad3 subs r3, r2, r3
8015b66: f8a7 30ba strh.w r3, [r7, #186] ; 0xba
if ((huart->RxXferCount > 0U)
8015b6a: 687b ldr r3, [r7, #4]
8015b6c: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a
8015b70: b29b uxth r3, r3
8015b72: 2b00 cmp r3, #0
8015b74: f000 80a8 beq.w 8015cc8 <HAL_UART_IRQHandler+0x5b4>
&& (nb_rx_data > 0U))
8015b78: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba
8015b7c: 2b00 cmp r3, #0
8015b7e: f000 80a3 beq.w 8015cc8 <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));
8015b82: 687b ldr r3, [r7, #4]
8015b84: 681b ldr r3, [r3, #0]
8015b86: 63bb str r3, [r7, #56] ; 0x38
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015b88: 6bbb ldr r3, [r7, #56] ; 0x38
8015b8a: e853 3f00 ldrex r3, [r3]
8015b8e: 637b str r3, [r7, #52] ; 0x34
return(result);
8015b90: 6b7b ldr r3, [r7, #52] ; 0x34
8015b92: f423 7390 bic.w r3, r3, #288 ; 0x120
8015b96: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4
8015b9a: 687b ldr r3, [r7, #4]
8015b9c: 681b ldr r3, [r3, #0]
8015b9e: 461a mov r2, r3
8015ba0: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4
8015ba4: 647b str r3, [r7, #68] ; 0x44
8015ba6: 643a str r2, [r7, #64] ; 0x40
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015ba8: 6c39 ldr r1, [r7, #64] ; 0x40
8015baa: 6c7a ldr r2, [r7, #68] ; 0x44
8015bac: e841 2300 strex r3, r2, [r1]
8015bb0: 63fb str r3, [r7, #60] ; 0x3c
return(result);
8015bb2: 6bfb ldr r3, [r7, #60] ; 0x3c
8015bb4: 2b00 cmp r3, #0
8015bb6: d1e4 bne.n 8015b82 <HAL_UART_IRQHandler+0x46e>
/* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
8015bb8: 687b ldr r3, [r7, #4]
8015bba: 681b ldr r3, [r3, #0]
8015bbc: 3308 adds r3, #8
8015bbe: 627b str r3, [r7, #36] ; 0x24
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015bc0: 6a7b ldr r3, [r7, #36] ; 0x24
8015bc2: e853 3f00 ldrex r3, [r3]
8015bc6: 623b str r3, [r7, #32]
return(result);
8015bc8: 6a3b ldr r3, [r7, #32]
8015bca: f023 0301 bic.w r3, r3, #1
8015bce: f8c7 30b0 str.w r3, [r7, #176] ; 0xb0
8015bd2: 687b ldr r3, [r7, #4]
8015bd4: 681b ldr r3, [r3, #0]
8015bd6: 3308 adds r3, #8
8015bd8: f8d7 20b0 ldr.w r2, [r7, #176] ; 0xb0
8015bdc: 633a str r2, [r7, #48] ; 0x30
8015bde: 62fb str r3, [r7, #44] ; 0x2c
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015be0: 6af9 ldr r1, [r7, #44] ; 0x2c
8015be2: 6b3a ldr r2, [r7, #48] ; 0x30
8015be4: e841 2300 strex r3, r2, [r1]
8015be8: 62bb str r3, [r7, #40] ; 0x28
return(result);
8015bea: 6abb ldr r3, [r7, #40] ; 0x28
8015bec: 2b00 cmp r3, #0
8015bee: d1e3 bne.n 8015bb8 <HAL_UART_IRQHandler+0x4a4>
/* Rx process is completed, restore huart->RxState to Ready */
huart->RxState = HAL_UART_STATE_READY;
8015bf0: 687b ldr r3, [r7, #4]
8015bf2: 2220 movs r2, #32
8015bf4: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
8015bf6: 687b ldr r3, [r7, #4]
8015bf8: 2200 movs r2, #0
8015bfa: 661a str r2, [r3, #96] ; 0x60
/* Clear RxISR function pointer */
huart->RxISR = NULL;
8015bfc: 687b ldr r3, [r7, #4]
8015bfe: 2200 movs r2, #0
8015c00: 665a str r2, [r3, #100] ; 0x64
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
8015c02: 687b ldr r3, [r7, #4]
8015c04: 681b ldr r3, [r3, #0]
8015c06: 613b str r3, [r7, #16]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015c08: 693b ldr r3, [r7, #16]
8015c0a: e853 3f00 ldrex r3, [r3]
8015c0e: 60fb str r3, [r7, #12]
return(result);
8015c10: 68fb ldr r3, [r7, #12]
8015c12: f023 0310 bic.w r3, r3, #16
8015c16: f8c7 30ac str.w r3, [r7, #172] ; 0xac
8015c1a: 687b ldr r3, [r7, #4]
8015c1c: 681b ldr r3, [r3, #0]
8015c1e: 461a mov r2, r3
8015c20: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac
8015c24: 61fb str r3, [r7, #28]
8015c26: 61ba str r2, [r7, #24]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015c28: 69b9 ldr r1, [r7, #24]
8015c2a: 69fa ldr r2, [r7, #28]
8015c2c: e841 2300 strex r3, r2, [r1]
8015c30: 617b str r3, [r7, #20]
return(result);
8015c32: 697b ldr r3, [r7, #20]
8015c34: 2b00 cmp r3, #0
8015c36: d1e4 bne.n 8015c02 <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);
8015c38: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba
8015c3c: 4619 mov r1, r3
8015c3e: 6878 ldr r0, [r7, #4]
8015c40: f000 f852 bl 8015ce8 <HAL_UARTEx_RxEventCallback>
#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
}
return;
8015c44: e040 b.n 8015cc8 <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))
8015c46: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
8015c4a: f403 1380 and.w r3, r3, #1048576 ; 0x100000
8015c4e: 2b00 cmp r3, #0
8015c50: d00e beq.n 8015c70 <HAL_UART_IRQHandler+0x55c>
8015c52: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc
8015c56: f403 0380 and.w r3, r3, #4194304 ; 0x400000
8015c5a: 2b00 cmp r3, #0
8015c5c: d008 beq.n 8015c70 <HAL_UART_IRQHandler+0x55c>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF);
8015c5e: 687b ldr r3, [r7, #4]
8015c60: 681b ldr r3, [r3, #0]
8015c62: f44f 1280 mov.w r2, #1048576 ; 0x100000
8015c66: 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);
8015c68: 6878 ldr r0, [r7, #4]
8015c6a: f000 f849 bl 8015d00 <HAL_UARTEx_WakeupCallback>
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
return;
8015c6e: e02e b.n 8015cce <HAL_UART_IRQHandler+0x5ba>
}
#endif /* USART_CR3_WUFIE */
#endif /* USART_CR1_UESM */
/* UART in mode Transmitter ------------------------------------------------*/
if (((isrflags & USART_ISR_TXE) != 0U)
8015c70: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
8015c74: f003 0380 and.w r3, r3, #128 ; 0x80
8015c78: 2b00 cmp r3, #0
8015c7a: d00e beq.n 8015c9a <HAL_UART_IRQHandler+0x586>
&& ((cr1its & USART_CR1_TXEIE) != 0U))
8015c7c: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
8015c80: f003 0380 and.w r3, r3, #128 ; 0x80
8015c84: 2b00 cmp r3, #0
8015c86: d008 beq.n 8015c9a <HAL_UART_IRQHandler+0x586>
{
if (huart->TxISR != NULL)
8015c88: 687b ldr r3, [r7, #4]
8015c8a: 6e9b ldr r3, [r3, #104] ; 0x68
8015c8c: 2b00 cmp r3, #0
8015c8e: d01d beq.n 8015ccc <HAL_UART_IRQHandler+0x5b8>
{
huart->TxISR(huart);
8015c90: 687b ldr r3, [r7, #4]
8015c92: 6e9b ldr r3, [r3, #104] ; 0x68
8015c94: 6878 ldr r0, [r7, #4]
8015c96: 4798 blx r3
}
return;
8015c98: e018 b.n 8015ccc <HAL_UART_IRQHandler+0x5b8>
}
/* UART in mode Transmitter (transmission end) -----------------------------*/
if (((isrflags & USART_ISR_TC) != 0U) && ((cr1its & USART_CR1_TCIE) != 0U))
8015c9a: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
8015c9e: f003 0340 and.w r3, r3, #64 ; 0x40
8015ca2: 2b00 cmp r3, #0
8015ca4: d013 beq.n 8015cce <HAL_UART_IRQHandler+0x5ba>
8015ca6: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
8015caa: f003 0340 and.w r3, r3, #64 ; 0x40
8015cae: 2b00 cmp r3, #0
8015cb0: d00d beq.n 8015cce <HAL_UART_IRQHandler+0x5ba>
{
UART_EndTransmit_IT(huart);
8015cb2: 6878 ldr r0, [r7, #4]
8015cb4: f000 fde2 bl 801687c <UART_EndTransmit_IT>
return;
8015cb8: bf00 nop
8015cba: e008 b.n 8015cce <HAL_UART_IRQHandler+0x5ba>
return;
8015cbc: bf00 nop
8015cbe: e006 b.n 8015cce <HAL_UART_IRQHandler+0x5ba>
return;
8015cc0: bf00 nop
8015cc2: e004 b.n 8015cce <HAL_UART_IRQHandler+0x5ba>
return;
8015cc4: bf00 nop
8015cc6: e002 b.n 8015cce <HAL_UART_IRQHandler+0x5ba>
return;
8015cc8: bf00 nop
8015cca: e000 b.n 8015cce <HAL_UART_IRQHandler+0x5ba>
return;
8015ccc: bf00 nop
}
}
8015cce: 37e8 adds r7, #232 ; 0xe8
8015cd0: 46bd mov sp, r7
8015cd2: bd80 pop {r7, pc}
08015cd4 <HAL_UART_AbortCpltCallback>:
* @brief UART Abort Complete callback.
* @param huart UART handle.
* @retval None
*/
__weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart)
{
8015cd4: b480 push {r7}
8015cd6: b083 sub sp, #12
8015cd8: af00 add r7, sp, #0
8015cda: 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.
*/
}
8015cdc: bf00 nop
8015cde: 370c adds r7, #12
8015ce0: 46bd mov sp, r7
8015ce2: f85d 7b04 ldr.w r7, [sp], #4
8015ce6: 4770 bx lr
08015ce8 <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)
{
8015ce8: b480 push {r7}
8015cea: b083 sub sp, #12
8015cec: af00 add r7, sp, #0
8015cee: 6078 str r0, [r7, #4]
8015cf0: 460b mov r3, r1
8015cf2: 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.
*/
}
8015cf4: bf00 nop
8015cf6: 370c adds r7, #12
8015cf8: 46bd mov sp, r7
8015cfa: f85d 7b04 ldr.w r7, [sp], #4
8015cfe: 4770 bx lr
08015d00 <HAL_UARTEx_WakeupCallback>:
* @brief UART wakeup from Stop mode callback.
* @param huart UART handle.
* @retval None
*/
__weak void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart)
{
8015d00: b480 push {r7}
8015d02: b083 sub sp, #12
8015d04: af00 add r7, sp, #0
8015d06: 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.
*/
}
8015d08: bf00 nop
8015d0a: 370c adds r7, #12
8015d0c: 46bd mov sp, r7
8015d0e: f85d 7b04 ldr.w r7, [sp], #4
8015d12: 4770 bx lr
08015d14 <UART_SetConfig>:
* @brief Configure the UART peripheral.
* @param huart UART handle.
* @retval HAL status
*/
HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart)
{
8015d14: b580 push {r7, lr}
8015d16: b088 sub sp, #32
8015d18: af00 add r7, sp, #0
8015d1a: 6078 str r0, [r7, #4]
uint32_t tmpreg;
uint16_t brrtemp;
UART_ClockSourceTypeDef clocksource;
uint32_t usartdiv;
HAL_StatusTypeDef ret = HAL_OK;
8015d1c: 2300 movs r3, #0
8015d1e: 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 ;
8015d20: 687b ldr r3, [r7, #4]
8015d22: 689a ldr r2, [r3, #8]
8015d24: 687b ldr r3, [r7, #4]
8015d26: 691b ldr r3, [r3, #16]
8015d28: 431a orrs r2, r3
8015d2a: 687b ldr r3, [r7, #4]
8015d2c: 695b ldr r3, [r3, #20]
8015d2e: 431a orrs r2, r3
8015d30: 687b ldr r3, [r7, #4]
8015d32: 69db ldr r3, [r3, #28]
8015d34: 4313 orrs r3, r2
8015d36: 617b str r3, [r7, #20]
MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg);
8015d38: 687b ldr r3, [r7, #4]
8015d3a: 681a ldr r2, [r3, #0]
8015d3c: 687b ldr r3, [r7, #4]
8015d3e: 681b ldr r3, [r3, #0]
8015d40: 6819 ldr r1, [r3, #0]
8015d42: 4bb3 ldr r3, [pc, #716] ; (8016010 <UART_SetConfig+0x2fc>)
8015d44: 400b ands r3, r1
8015d46: 6979 ldr r1, [r7, #20]
8015d48: 430b orrs r3, r1
8015d4a: 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);
8015d4c: 687b ldr r3, [r7, #4]
8015d4e: 681b ldr r3, [r3, #0]
8015d50: 687a ldr r2, [r7, #4]
8015d52: 6812 ldr r2, [r2, #0]
8015d54: 6852 ldr r2, [r2, #4]
8015d56: f422 5140 bic.w r1, r2, #12288 ; 0x3000
8015d5a: 687a ldr r2, [r7, #4]
8015d5c: 68d2 ldr r2, [r2, #12]
8015d5e: 430a orrs r2, r1
8015d60: 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;
8015d62: 687b ldr r3, [r7, #4]
8015d64: 699b ldr r3, [r3, #24]
8015d66: 617b str r3, [r7, #20]
tmpreg |= huart->Init.OneBitSampling;
8015d68: 687b ldr r3, [r7, #4]
8015d6a: 6a1b ldr r3, [r3, #32]
8015d6c: 697a ldr r2, [r7, #20]
8015d6e: 4313 orrs r3, r2
8015d70: 617b str r3, [r7, #20]
MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg);
8015d72: 687b ldr r3, [r7, #4]
8015d74: 681b ldr r3, [r3, #0]
8015d76: 687a ldr r2, [r7, #4]
8015d78: 6812 ldr r2, [r2, #0]
8015d7a: 6892 ldr r2, [r2, #8]
8015d7c: f422 6130 bic.w r1, r2, #2816 ; 0xb00
8015d80: 697a ldr r2, [r7, #20]
8015d82: 430a orrs r2, r1
8015d84: 609a str r2, [r3, #8]
/*-------------------------- USART BRR Configuration -----------------------*/
UART_GETCLOCKSOURCE(huart, clocksource);
8015d86: 687b ldr r3, [r7, #4]
8015d88: 681b ldr r3, [r3, #0]
8015d8a: 4aa2 ldr r2, [pc, #648] ; (8016014 <UART_SetConfig+0x300>)
8015d8c: 4293 cmp r3, r2
8015d8e: d121 bne.n 8015dd4 <UART_SetConfig+0xc0>
8015d90: 4ba1 ldr r3, [pc, #644] ; (8016018 <UART_SetConfig+0x304>)
8015d92: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8015d96: f003 0303 and.w r3, r3, #3
8015d9a: 2b03 cmp r3, #3
8015d9c: d816 bhi.n 8015dcc <UART_SetConfig+0xb8>
8015d9e: a201 add r2, pc, #4 ; (adr r2, 8015da4 <UART_SetConfig+0x90>)
8015da0: f852 f023 ldr.w pc, [r2, r3, lsl #2]
8015da4: 08015db5 .word 0x08015db5
8015da8: 08015dc1 .word 0x08015dc1
8015dac: 08015dbb .word 0x08015dbb
8015db0: 08015dc7 .word 0x08015dc7
8015db4: 2301 movs r3, #1
8015db6: 77fb strb r3, [r7, #31]
8015db8: e150 b.n 801605c <UART_SetConfig+0x348>
8015dba: 2302 movs r3, #2
8015dbc: 77fb strb r3, [r7, #31]
8015dbe: e14d b.n 801605c <UART_SetConfig+0x348>
8015dc0: 2304 movs r3, #4
8015dc2: 77fb strb r3, [r7, #31]
8015dc4: e14a b.n 801605c <UART_SetConfig+0x348>
8015dc6: 2308 movs r3, #8
8015dc8: 77fb strb r3, [r7, #31]
8015dca: e147 b.n 801605c <UART_SetConfig+0x348>
8015dcc: 2310 movs r3, #16
8015dce: 77fb strb r3, [r7, #31]
8015dd0: bf00 nop
8015dd2: e143 b.n 801605c <UART_SetConfig+0x348>
8015dd4: 687b ldr r3, [r7, #4]
8015dd6: 681b ldr r3, [r3, #0]
8015dd8: 4a90 ldr r2, [pc, #576] ; (801601c <UART_SetConfig+0x308>)
8015dda: 4293 cmp r3, r2
8015ddc: d134 bne.n 8015e48 <UART_SetConfig+0x134>
8015dde: 4b8e ldr r3, [pc, #568] ; (8016018 <UART_SetConfig+0x304>)
8015de0: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8015de4: f003 030c and.w r3, r3, #12
8015de8: 2b0c cmp r3, #12
8015dea: d829 bhi.n 8015e40 <UART_SetConfig+0x12c>
8015dec: a201 add r2, pc, #4 ; (adr r2, 8015df4 <UART_SetConfig+0xe0>)
8015dee: f852 f023 ldr.w pc, [r2, r3, lsl #2]
8015df2: bf00 nop
8015df4: 08015e29 .word 0x08015e29
8015df8: 08015e41 .word 0x08015e41
8015dfc: 08015e41 .word 0x08015e41
8015e00: 08015e41 .word 0x08015e41
8015e04: 08015e35 .word 0x08015e35
8015e08: 08015e41 .word 0x08015e41
8015e0c: 08015e41 .word 0x08015e41
8015e10: 08015e41 .word 0x08015e41
8015e14: 08015e2f .word 0x08015e2f
8015e18: 08015e41 .word 0x08015e41
8015e1c: 08015e41 .word 0x08015e41
8015e20: 08015e41 .word 0x08015e41
8015e24: 08015e3b .word 0x08015e3b
8015e28: 2300 movs r3, #0
8015e2a: 77fb strb r3, [r7, #31]
8015e2c: e116 b.n 801605c <UART_SetConfig+0x348>
8015e2e: 2302 movs r3, #2
8015e30: 77fb strb r3, [r7, #31]
8015e32: e113 b.n 801605c <UART_SetConfig+0x348>
8015e34: 2304 movs r3, #4
8015e36: 77fb strb r3, [r7, #31]
8015e38: e110 b.n 801605c <UART_SetConfig+0x348>
8015e3a: 2308 movs r3, #8
8015e3c: 77fb strb r3, [r7, #31]
8015e3e: e10d b.n 801605c <UART_SetConfig+0x348>
8015e40: 2310 movs r3, #16
8015e42: 77fb strb r3, [r7, #31]
8015e44: bf00 nop
8015e46: e109 b.n 801605c <UART_SetConfig+0x348>
8015e48: 687b ldr r3, [r7, #4]
8015e4a: 681b ldr r3, [r3, #0]
8015e4c: 4a74 ldr r2, [pc, #464] ; (8016020 <UART_SetConfig+0x30c>)
8015e4e: 4293 cmp r3, r2
8015e50: d120 bne.n 8015e94 <UART_SetConfig+0x180>
8015e52: 4b71 ldr r3, [pc, #452] ; (8016018 <UART_SetConfig+0x304>)
8015e54: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8015e58: f003 0330 and.w r3, r3, #48 ; 0x30
8015e5c: 2b10 cmp r3, #16
8015e5e: d00f beq.n 8015e80 <UART_SetConfig+0x16c>
8015e60: 2b10 cmp r3, #16
8015e62: d802 bhi.n 8015e6a <UART_SetConfig+0x156>
8015e64: 2b00 cmp r3, #0
8015e66: d005 beq.n 8015e74 <UART_SetConfig+0x160>
8015e68: e010 b.n 8015e8c <UART_SetConfig+0x178>
8015e6a: 2b20 cmp r3, #32
8015e6c: d005 beq.n 8015e7a <UART_SetConfig+0x166>
8015e6e: 2b30 cmp r3, #48 ; 0x30
8015e70: d009 beq.n 8015e86 <UART_SetConfig+0x172>
8015e72: e00b b.n 8015e8c <UART_SetConfig+0x178>
8015e74: 2300 movs r3, #0
8015e76: 77fb strb r3, [r7, #31]
8015e78: e0f0 b.n 801605c <UART_SetConfig+0x348>
8015e7a: 2302 movs r3, #2
8015e7c: 77fb strb r3, [r7, #31]
8015e7e: e0ed b.n 801605c <UART_SetConfig+0x348>
8015e80: 2304 movs r3, #4
8015e82: 77fb strb r3, [r7, #31]
8015e84: e0ea b.n 801605c <UART_SetConfig+0x348>
8015e86: 2308 movs r3, #8
8015e88: 77fb strb r3, [r7, #31]
8015e8a: e0e7 b.n 801605c <UART_SetConfig+0x348>
8015e8c: 2310 movs r3, #16
8015e8e: 77fb strb r3, [r7, #31]
8015e90: bf00 nop
8015e92: e0e3 b.n 801605c <UART_SetConfig+0x348>
8015e94: 687b ldr r3, [r7, #4]
8015e96: 681b ldr r3, [r3, #0]
8015e98: 4a62 ldr r2, [pc, #392] ; (8016024 <UART_SetConfig+0x310>)
8015e9a: 4293 cmp r3, r2
8015e9c: d120 bne.n 8015ee0 <UART_SetConfig+0x1cc>
8015e9e: 4b5e ldr r3, [pc, #376] ; (8016018 <UART_SetConfig+0x304>)
8015ea0: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8015ea4: f003 03c0 and.w r3, r3, #192 ; 0xc0
8015ea8: 2b40 cmp r3, #64 ; 0x40
8015eaa: d00f beq.n 8015ecc <UART_SetConfig+0x1b8>
8015eac: 2b40 cmp r3, #64 ; 0x40
8015eae: d802 bhi.n 8015eb6 <UART_SetConfig+0x1a2>
8015eb0: 2b00 cmp r3, #0
8015eb2: d005 beq.n 8015ec0 <UART_SetConfig+0x1ac>
8015eb4: e010 b.n 8015ed8 <UART_SetConfig+0x1c4>
8015eb6: 2b80 cmp r3, #128 ; 0x80
8015eb8: d005 beq.n 8015ec6 <UART_SetConfig+0x1b2>
8015eba: 2bc0 cmp r3, #192 ; 0xc0
8015ebc: d009 beq.n 8015ed2 <UART_SetConfig+0x1be>
8015ebe: e00b b.n 8015ed8 <UART_SetConfig+0x1c4>
8015ec0: 2300 movs r3, #0
8015ec2: 77fb strb r3, [r7, #31]
8015ec4: e0ca b.n 801605c <UART_SetConfig+0x348>
8015ec6: 2302 movs r3, #2
8015ec8: 77fb strb r3, [r7, #31]
8015eca: e0c7 b.n 801605c <UART_SetConfig+0x348>
8015ecc: 2304 movs r3, #4
8015ece: 77fb strb r3, [r7, #31]
8015ed0: e0c4 b.n 801605c <UART_SetConfig+0x348>
8015ed2: 2308 movs r3, #8
8015ed4: 77fb strb r3, [r7, #31]
8015ed6: e0c1 b.n 801605c <UART_SetConfig+0x348>
8015ed8: 2310 movs r3, #16
8015eda: 77fb strb r3, [r7, #31]
8015edc: bf00 nop
8015ede: e0bd b.n 801605c <UART_SetConfig+0x348>
8015ee0: 687b ldr r3, [r7, #4]
8015ee2: 681b ldr r3, [r3, #0]
8015ee4: 4a50 ldr r2, [pc, #320] ; (8016028 <UART_SetConfig+0x314>)
8015ee6: 4293 cmp r3, r2
8015ee8: d124 bne.n 8015f34 <UART_SetConfig+0x220>
8015eea: 4b4b ldr r3, [pc, #300] ; (8016018 <UART_SetConfig+0x304>)
8015eec: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8015ef0: f403 7340 and.w r3, r3, #768 ; 0x300
8015ef4: f5b3 7f80 cmp.w r3, #256 ; 0x100
8015ef8: d012 beq.n 8015f20 <UART_SetConfig+0x20c>
8015efa: f5b3 7f80 cmp.w r3, #256 ; 0x100
8015efe: d802 bhi.n 8015f06 <UART_SetConfig+0x1f2>
8015f00: 2b00 cmp r3, #0
8015f02: d007 beq.n 8015f14 <UART_SetConfig+0x200>
8015f04: e012 b.n 8015f2c <UART_SetConfig+0x218>
8015f06: f5b3 7f00 cmp.w r3, #512 ; 0x200
8015f0a: d006 beq.n 8015f1a <UART_SetConfig+0x206>
8015f0c: f5b3 7f40 cmp.w r3, #768 ; 0x300
8015f10: d009 beq.n 8015f26 <UART_SetConfig+0x212>
8015f12: e00b b.n 8015f2c <UART_SetConfig+0x218>
8015f14: 2300 movs r3, #0
8015f16: 77fb strb r3, [r7, #31]
8015f18: e0a0 b.n 801605c <UART_SetConfig+0x348>
8015f1a: 2302 movs r3, #2
8015f1c: 77fb strb r3, [r7, #31]
8015f1e: e09d b.n 801605c <UART_SetConfig+0x348>
8015f20: 2304 movs r3, #4
8015f22: 77fb strb r3, [r7, #31]
8015f24: e09a b.n 801605c <UART_SetConfig+0x348>
8015f26: 2308 movs r3, #8
8015f28: 77fb strb r3, [r7, #31]
8015f2a: e097 b.n 801605c <UART_SetConfig+0x348>
8015f2c: 2310 movs r3, #16
8015f2e: 77fb strb r3, [r7, #31]
8015f30: bf00 nop
8015f32: e093 b.n 801605c <UART_SetConfig+0x348>
8015f34: 687b ldr r3, [r7, #4]
8015f36: 681b ldr r3, [r3, #0]
8015f38: 4a3c ldr r2, [pc, #240] ; (801602c <UART_SetConfig+0x318>)
8015f3a: 4293 cmp r3, r2
8015f3c: d124 bne.n 8015f88 <UART_SetConfig+0x274>
8015f3e: 4b36 ldr r3, [pc, #216] ; (8016018 <UART_SetConfig+0x304>)
8015f40: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8015f44: f403 6340 and.w r3, r3, #3072 ; 0xc00
8015f48: f5b3 6f80 cmp.w r3, #1024 ; 0x400
8015f4c: d012 beq.n 8015f74 <UART_SetConfig+0x260>
8015f4e: f5b3 6f80 cmp.w r3, #1024 ; 0x400
8015f52: d802 bhi.n 8015f5a <UART_SetConfig+0x246>
8015f54: 2b00 cmp r3, #0
8015f56: d007 beq.n 8015f68 <UART_SetConfig+0x254>
8015f58: e012 b.n 8015f80 <UART_SetConfig+0x26c>
8015f5a: f5b3 6f00 cmp.w r3, #2048 ; 0x800
8015f5e: d006 beq.n 8015f6e <UART_SetConfig+0x25a>
8015f60: f5b3 6f40 cmp.w r3, #3072 ; 0xc00
8015f64: d009 beq.n 8015f7a <UART_SetConfig+0x266>
8015f66: e00b b.n 8015f80 <UART_SetConfig+0x26c>
8015f68: 2301 movs r3, #1
8015f6a: 77fb strb r3, [r7, #31]
8015f6c: e076 b.n 801605c <UART_SetConfig+0x348>
8015f6e: 2302 movs r3, #2
8015f70: 77fb strb r3, [r7, #31]
8015f72: e073 b.n 801605c <UART_SetConfig+0x348>
8015f74: 2304 movs r3, #4
8015f76: 77fb strb r3, [r7, #31]
8015f78: e070 b.n 801605c <UART_SetConfig+0x348>
8015f7a: 2308 movs r3, #8
8015f7c: 77fb strb r3, [r7, #31]
8015f7e: e06d b.n 801605c <UART_SetConfig+0x348>
8015f80: 2310 movs r3, #16
8015f82: 77fb strb r3, [r7, #31]
8015f84: bf00 nop
8015f86: e069 b.n 801605c <UART_SetConfig+0x348>
8015f88: 687b ldr r3, [r7, #4]
8015f8a: 681b ldr r3, [r3, #0]
8015f8c: 4a28 ldr r2, [pc, #160] ; (8016030 <UART_SetConfig+0x31c>)
8015f8e: 4293 cmp r3, r2
8015f90: d124 bne.n 8015fdc <UART_SetConfig+0x2c8>
8015f92: 4b21 ldr r3, [pc, #132] ; (8016018 <UART_SetConfig+0x304>)
8015f94: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8015f98: f403 5340 and.w r3, r3, #12288 ; 0x3000
8015f9c: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
8015fa0: d012 beq.n 8015fc8 <UART_SetConfig+0x2b4>
8015fa2: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
8015fa6: d802 bhi.n 8015fae <UART_SetConfig+0x29a>
8015fa8: 2b00 cmp r3, #0
8015faa: d007 beq.n 8015fbc <UART_SetConfig+0x2a8>
8015fac: e012 b.n 8015fd4 <UART_SetConfig+0x2c0>
8015fae: f5b3 5f00 cmp.w r3, #8192 ; 0x2000
8015fb2: d006 beq.n 8015fc2 <UART_SetConfig+0x2ae>
8015fb4: f5b3 5f40 cmp.w r3, #12288 ; 0x3000
8015fb8: d009 beq.n 8015fce <UART_SetConfig+0x2ba>
8015fba: e00b b.n 8015fd4 <UART_SetConfig+0x2c0>
8015fbc: 2300 movs r3, #0
8015fbe: 77fb strb r3, [r7, #31]
8015fc0: e04c b.n 801605c <UART_SetConfig+0x348>
8015fc2: 2302 movs r3, #2
8015fc4: 77fb strb r3, [r7, #31]
8015fc6: e049 b.n 801605c <UART_SetConfig+0x348>
8015fc8: 2304 movs r3, #4
8015fca: 77fb strb r3, [r7, #31]
8015fcc: e046 b.n 801605c <UART_SetConfig+0x348>
8015fce: 2308 movs r3, #8
8015fd0: 77fb strb r3, [r7, #31]
8015fd2: e043 b.n 801605c <UART_SetConfig+0x348>
8015fd4: 2310 movs r3, #16
8015fd6: 77fb strb r3, [r7, #31]
8015fd8: bf00 nop
8015fda: e03f b.n 801605c <UART_SetConfig+0x348>
8015fdc: 687b ldr r3, [r7, #4]
8015fde: 681b ldr r3, [r3, #0]
8015fe0: 4a14 ldr r2, [pc, #80] ; (8016034 <UART_SetConfig+0x320>)
8015fe2: 4293 cmp r3, r2
8015fe4: d138 bne.n 8016058 <UART_SetConfig+0x344>
8015fe6: 4b0c ldr r3, [pc, #48] ; (8016018 <UART_SetConfig+0x304>)
8015fe8: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8015fec: f403 4340 and.w r3, r3, #49152 ; 0xc000
8015ff0: f5b3 4f80 cmp.w r3, #16384 ; 0x4000
8015ff4: d026 beq.n 8016044 <UART_SetConfig+0x330>
8015ff6: f5b3 4f80 cmp.w r3, #16384 ; 0x4000
8015ffa: d802 bhi.n 8016002 <UART_SetConfig+0x2ee>
8015ffc: 2b00 cmp r3, #0
8015ffe: d01b beq.n 8016038 <UART_SetConfig+0x324>
8016000: e026 b.n 8016050 <UART_SetConfig+0x33c>
8016002: f5b3 4f00 cmp.w r3, #32768 ; 0x8000
8016006: d01a beq.n 801603e <UART_SetConfig+0x32a>
8016008: f5b3 4f40 cmp.w r3, #49152 ; 0xc000
801600c: d01d beq.n 801604a <UART_SetConfig+0x336>
801600e: e01f b.n 8016050 <UART_SetConfig+0x33c>
8016010: efff69f3 .word 0xefff69f3
8016014: 40011000 .word 0x40011000
8016018: 40023800 .word 0x40023800
801601c: 40004400 .word 0x40004400
8016020: 40004800 .word 0x40004800
8016024: 40004c00 .word 0x40004c00
8016028: 40005000 .word 0x40005000
801602c: 40011400 .word 0x40011400
8016030: 40007800 .word 0x40007800
8016034: 40007c00 .word 0x40007c00
8016038: 2300 movs r3, #0
801603a: 77fb strb r3, [r7, #31]
801603c: e00e b.n 801605c <UART_SetConfig+0x348>
801603e: 2302 movs r3, #2
8016040: 77fb strb r3, [r7, #31]
8016042: e00b b.n 801605c <UART_SetConfig+0x348>
8016044: 2304 movs r3, #4
8016046: 77fb strb r3, [r7, #31]
8016048: e008 b.n 801605c <UART_SetConfig+0x348>
801604a: 2308 movs r3, #8
801604c: 77fb strb r3, [r7, #31]
801604e: e005 b.n 801605c <UART_SetConfig+0x348>
8016050: 2310 movs r3, #16
8016052: 77fb strb r3, [r7, #31]
8016054: bf00 nop
8016056: e001 b.n 801605c <UART_SetConfig+0x348>
8016058: 2310 movs r3, #16
801605a: 77fb strb r3, [r7, #31]
if (huart->Init.OverSampling == UART_OVERSAMPLING_8)
801605c: 687b ldr r3, [r7, #4]
801605e: 69db ldr r3, [r3, #28]
8016060: f5b3 4f00 cmp.w r3, #32768 ; 0x8000
8016064: d15b bne.n 801611e <UART_SetConfig+0x40a>
{
switch (clocksource)
8016066: 7ffb ldrb r3, [r7, #31]
8016068: 2b08 cmp r3, #8
801606a: d828 bhi.n 80160be <UART_SetConfig+0x3aa>
801606c: a201 add r2, pc, #4 ; (adr r2, 8016074 <UART_SetConfig+0x360>)
801606e: f852 f023 ldr.w pc, [r2, r3, lsl #2]
8016072: bf00 nop
8016074: 08016099 .word 0x08016099
8016078: 080160a1 .word 0x080160a1
801607c: 080160a9 .word 0x080160a9
8016080: 080160bf .word 0x080160bf
8016084: 080160af .word 0x080160af
8016088: 080160bf .word 0x080160bf
801608c: 080160bf .word 0x080160bf
8016090: 080160bf .word 0x080160bf
8016094: 080160b7 .word 0x080160b7
{
case UART_CLOCKSOURCE_PCLK1:
pclk = HAL_RCC_GetPCLK1Freq();
8016098: f7fe f8d8 bl 801424c <HAL_RCC_GetPCLK1Freq>
801609c: 61b8 str r0, [r7, #24]
break;
801609e: e013 b.n 80160c8 <UART_SetConfig+0x3b4>
case UART_CLOCKSOURCE_PCLK2:
pclk = HAL_RCC_GetPCLK2Freq();
80160a0: f7fe f8e8 bl 8014274 <HAL_RCC_GetPCLK2Freq>
80160a4: 61b8 str r0, [r7, #24]
break;
80160a6: e00f b.n 80160c8 <UART_SetConfig+0x3b4>
case UART_CLOCKSOURCE_HSI:
pclk = (uint32_t) HSI_VALUE;
80160a8: 4b49 ldr r3, [pc, #292] ; (80161d0 <UART_SetConfig+0x4bc>)
80160aa: 61bb str r3, [r7, #24]
break;
80160ac: e00c b.n 80160c8 <UART_SetConfig+0x3b4>
case UART_CLOCKSOURCE_SYSCLK:
pclk = HAL_RCC_GetSysClockFreq();
80160ae: f7fe f80b bl 80140c8 <HAL_RCC_GetSysClockFreq>
80160b2: 61b8 str r0, [r7, #24]
break;
80160b4: e008 b.n 80160c8 <UART_SetConfig+0x3b4>
case UART_CLOCKSOURCE_LSE:
pclk = (uint32_t) LSE_VALUE;
80160b6: f44f 4300 mov.w r3, #32768 ; 0x8000
80160ba: 61bb str r3, [r7, #24]
break;
80160bc: e004 b.n 80160c8 <UART_SetConfig+0x3b4>
default:
pclk = 0U;
80160be: 2300 movs r3, #0
80160c0: 61bb str r3, [r7, #24]
ret = HAL_ERROR;
80160c2: 2301 movs r3, #1
80160c4: 77bb strb r3, [r7, #30]
break;
80160c6: bf00 nop
}
/* USARTDIV must be greater than or equal to 0d16 */
if (pclk != 0U)
80160c8: 69bb ldr r3, [r7, #24]
80160ca: 2b00 cmp r3, #0
80160cc: d074 beq.n 80161b8 <UART_SetConfig+0x4a4>
{
usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate));
80160ce: 69bb ldr r3, [r7, #24]
80160d0: 005a lsls r2, r3, #1
80160d2: 687b ldr r3, [r7, #4]
80160d4: 685b ldr r3, [r3, #4]
80160d6: 085b lsrs r3, r3, #1
80160d8: 441a add r2, r3
80160da: 687b ldr r3, [r7, #4]
80160dc: 685b ldr r3, [r3, #4]
80160de: fbb2 f3f3 udiv r3, r2, r3
80160e2: 613b str r3, [r7, #16]
if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX))
80160e4: 693b ldr r3, [r7, #16]
80160e6: 2b0f cmp r3, #15
80160e8: d916 bls.n 8016118 <UART_SetConfig+0x404>
80160ea: 693b ldr r3, [r7, #16]
80160ec: f5b3 3f80 cmp.w r3, #65536 ; 0x10000
80160f0: d212 bcs.n 8016118 <UART_SetConfig+0x404>
{
brrtemp = (uint16_t)(usartdiv & 0xFFF0U);
80160f2: 693b ldr r3, [r7, #16]
80160f4: b29b uxth r3, r3
80160f6: f023 030f bic.w r3, r3, #15
80160fa: 81fb strh r3, [r7, #14]
brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U);
80160fc: 693b ldr r3, [r7, #16]
80160fe: 085b lsrs r3, r3, #1
8016100: b29b uxth r3, r3
8016102: f003 0307 and.w r3, r3, #7
8016106: b29a uxth r2, r3
8016108: 89fb ldrh r3, [r7, #14]
801610a: 4313 orrs r3, r2
801610c: 81fb strh r3, [r7, #14]
huart->Instance->BRR = brrtemp;
801610e: 687b ldr r3, [r7, #4]
8016110: 681b ldr r3, [r3, #0]
8016112: 89fa ldrh r2, [r7, #14]
8016114: 60da str r2, [r3, #12]
8016116: e04f b.n 80161b8 <UART_SetConfig+0x4a4>
}
else
{
ret = HAL_ERROR;
8016118: 2301 movs r3, #1
801611a: 77bb strb r3, [r7, #30]
801611c: e04c b.n 80161b8 <UART_SetConfig+0x4a4>
}
}
}
else
{
switch (clocksource)
801611e: 7ffb ldrb r3, [r7, #31]
8016120: 2b08 cmp r3, #8
8016122: d828 bhi.n 8016176 <UART_SetConfig+0x462>
8016124: a201 add r2, pc, #4 ; (adr r2, 801612c <UART_SetConfig+0x418>)
8016126: f852 f023 ldr.w pc, [r2, r3, lsl #2]
801612a: bf00 nop
801612c: 08016151 .word 0x08016151
8016130: 08016159 .word 0x08016159
8016134: 08016161 .word 0x08016161
8016138: 08016177 .word 0x08016177
801613c: 08016167 .word 0x08016167
8016140: 08016177 .word 0x08016177
8016144: 08016177 .word 0x08016177
8016148: 08016177 .word 0x08016177
801614c: 0801616f .word 0x0801616f
{
case UART_CLOCKSOURCE_PCLK1:
pclk = HAL_RCC_GetPCLK1Freq();
8016150: f7fe f87c bl 801424c <HAL_RCC_GetPCLK1Freq>
8016154: 61b8 str r0, [r7, #24]
break;
8016156: e013 b.n 8016180 <UART_SetConfig+0x46c>
case UART_CLOCKSOURCE_PCLK2:
pclk = HAL_RCC_GetPCLK2Freq();
8016158: f7fe f88c bl 8014274 <HAL_RCC_GetPCLK2Freq>
801615c: 61b8 str r0, [r7, #24]
break;
801615e: e00f b.n 8016180 <UART_SetConfig+0x46c>
case UART_CLOCKSOURCE_HSI:
pclk = (uint32_t) HSI_VALUE;
8016160: 4b1b ldr r3, [pc, #108] ; (80161d0 <UART_SetConfig+0x4bc>)
8016162: 61bb str r3, [r7, #24]
break;
8016164: e00c b.n 8016180 <UART_SetConfig+0x46c>
case UART_CLOCKSOURCE_SYSCLK:
pclk = HAL_RCC_GetSysClockFreq();
8016166: f7fd ffaf bl 80140c8 <HAL_RCC_GetSysClockFreq>
801616a: 61b8 str r0, [r7, #24]
break;
801616c: e008 b.n 8016180 <UART_SetConfig+0x46c>
case UART_CLOCKSOURCE_LSE:
pclk = (uint32_t) LSE_VALUE;
801616e: f44f 4300 mov.w r3, #32768 ; 0x8000
8016172: 61bb str r3, [r7, #24]
break;
8016174: e004 b.n 8016180 <UART_SetConfig+0x46c>
default:
pclk = 0U;
8016176: 2300 movs r3, #0
8016178: 61bb str r3, [r7, #24]
ret = HAL_ERROR;
801617a: 2301 movs r3, #1
801617c: 77bb strb r3, [r7, #30]
break;
801617e: bf00 nop
}
if (pclk != 0U)
8016180: 69bb ldr r3, [r7, #24]
8016182: 2b00 cmp r3, #0
8016184: d018 beq.n 80161b8 <UART_SetConfig+0x4a4>
{
/* USARTDIV must be greater than or equal to 0d16 */
usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate));
8016186: 687b ldr r3, [r7, #4]
8016188: 685b ldr r3, [r3, #4]
801618a: 085a lsrs r2, r3, #1
801618c: 69bb ldr r3, [r7, #24]
801618e: 441a add r2, r3
8016190: 687b ldr r3, [r7, #4]
8016192: 685b ldr r3, [r3, #4]
8016194: fbb2 f3f3 udiv r3, r2, r3
8016198: 613b str r3, [r7, #16]
if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX))
801619a: 693b ldr r3, [r7, #16]
801619c: 2b0f cmp r3, #15
801619e: d909 bls.n 80161b4 <UART_SetConfig+0x4a0>
80161a0: 693b ldr r3, [r7, #16]
80161a2: f5b3 3f80 cmp.w r3, #65536 ; 0x10000
80161a6: d205 bcs.n 80161b4 <UART_SetConfig+0x4a0>
{
huart->Instance->BRR = (uint16_t)usartdiv;
80161a8: 687b ldr r3, [r7, #4]
80161aa: 681b ldr r3, [r3, #0]
80161ac: 693a ldr r2, [r7, #16]
80161ae: b292 uxth r2, r2
80161b0: 60da str r2, [r3, #12]
80161b2: e001 b.n 80161b8 <UART_SetConfig+0x4a4>
}
else
{
ret = HAL_ERROR;
80161b4: 2301 movs r3, #1
80161b6: 77bb strb r3, [r7, #30]
}
}
/* Clear ISR function pointers */
huart->RxISR = NULL;
80161b8: 687b ldr r3, [r7, #4]
80161ba: 2200 movs r2, #0
80161bc: 665a str r2, [r3, #100] ; 0x64
huart->TxISR = NULL;
80161be: 687b ldr r3, [r7, #4]
80161c0: 2200 movs r2, #0
80161c2: 669a str r2, [r3, #104] ; 0x68
return ret;
80161c4: 7fbb ldrb r3, [r7, #30]
}
80161c6: 4618 mov r0, r3
80161c8: 3720 adds r7, #32
80161ca: 46bd mov sp, r7
80161cc: bd80 pop {r7, pc}
80161ce: bf00 nop
80161d0: 00f42400 .word 0x00f42400
080161d4 <UART_AdvFeatureConfig>:
* @brief Configure the UART peripheral advanced features.
* @param huart UART handle.
* @retval None
*/
void UART_AdvFeatureConfig(UART_HandleTypeDef *huart)
{
80161d4: b480 push {r7}
80161d6: b083 sub sp, #12
80161d8: af00 add r7, sp, #0
80161da: 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))
80161dc: 687b ldr r3, [r7, #4]
80161de: 6a5b ldr r3, [r3, #36] ; 0x24
80161e0: f003 0301 and.w r3, r3, #1
80161e4: 2b00 cmp r3, #0
80161e6: d00a beq.n 80161fe <UART_AdvFeatureConfig+0x2a>
{
assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert));
MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert);
80161e8: 687b ldr r3, [r7, #4]
80161ea: 681b ldr r3, [r3, #0]
80161ec: 687a ldr r2, [r7, #4]
80161ee: 6812 ldr r2, [r2, #0]
80161f0: 6852 ldr r2, [r2, #4]
80161f2: f422 3100 bic.w r1, r2, #131072 ; 0x20000
80161f6: 687a ldr r2, [r7, #4]
80161f8: 6a92 ldr r2, [r2, #40] ; 0x28
80161fa: 430a orrs r2, r1
80161fc: 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))
80161fe: 687b ldr r3, [r7, #4]
8016200: 6a5b ldr r3, [r3, #36] ; 0x24
8016202: f003 0302 and.w r3, r3, #2
8016206: 2b00 cmp r3, #0
8016208: d00a beq.n 8016220 <UART_AdvFeatureConfig+0x4c>
{
assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert));
MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert);
801620a: 687b ldr r3, [r7, #4]
801620c: 681b ldr r3, [r3, #0]
801620e: 687a ldr r2, [r7, #4]
8016210: 6812 ldr r2, [r2, #0]
8016212: 6852 ldr r2, [r2, #4]
8016214: f422 3180 bic.w r1, r2, #65536 ; 0x10000
8016218: 687a ldr r2, [r7, #4]
801621a: 6ad2 ldr r2, [r2, #44] ; 0x2c
801621c: 430a orrs r2, r1
801621e: 605a str r2, [r3, #4]
}
/* if required, configure data inversion */
if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT))
8016220: 687b ldr r3, [r7, #4]
8016222: 6a5b ldr r3, [r3, #36] ; 0x24
8016224: f003 0304 and.w r3, r3, #4
8016228: 2b00 cmp r3, #0
801622a: d00a beq.n 8016242 <UART_AdvFeatureConfig+0x6e>
{
assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert));
MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert);
801622c: 687b ldr r3, [r7, #4]
801622e: 681b ldr r3, [r3, #0]
8016230: 687a ldr r2, [r7, #4]
8016232: 6812 ldr r2, [r2, #0]
8016234: 6852 ldr r2, [r2, #4]
8016236: f422 2180 bic.w r1, r2, #262144 ; 0x40000
801623a: 687a ldr r2, [r7, #4]
801623c: 6b12 ldr r2, [r2, #48] ; 0x30
801623e: 430a orrs r2, r1
8016240: 605a str r2, [r3, #4]
}
/* if required, configure RX/TX pins swap */
if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT))
8016242: 687b ldr r3, [r7, #4]
8016244: 6a5b ldr r3, [r3, #36] ; 0x24
8016246: f003 0308 and.w r3, r3, #8
801624a: 2b00 cmp r3, #0
801624c: d00a beq.n 8016264 <UART_AdvFeatureConfig+0x90>
{
assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap));
MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap);
801624e: 687b ldr r3, [r7, #4]
8016250: 681b ldr r3, [r3, #0]
8016252: 687a ldr r2, [r7, #4]
8016254: 6812 ldr r2, [r2, #0]
8016256: 6852 ldr r2, [r2, #4]
8016258: f422 4100 bic.w r1, r2, #32768 ; 0x8000
801625c: 687a ldr r2, [r7, #4]
801625e: 6b52 ldr r2, [r2, #52] ; 0x34
8016260: 430a orrs r2, r1
8016262: 605a str r2, [r3, #4]
}
/* if required, configure RX overrun detection disabling */
if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT))
8016264: 687b ldr r3, [r7, #4]
8016266: 6a5b ldr r3, [r3, #36] ; 0x24
8016268: f003 0310 and.w r3, r3, #16
801626c: 2b00 cmp r3, #0
801626e: d00a beq.n 8016286 <UART_AdvFeatureConfig+0xb2>
{
assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable));
MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable);
8016270: 687b ldr r3, [r7, #4]
8016272: 681b ldr r3, [r3, #0]
8016274: 687a ldr r2, [r7, #4]
8016276: 6812 ldr r2, [r2, #0]
8016278: 6892 ldr r2, [r2, #8]
801627a: f422 5180 bic.w r1, r2, #4096 ; 0x1000
801627e: 687a ldr r2, [r7, #4]
8016280: 6b92 ldr r2, [r2, #56] ; 0x38
8016282: 430a orrs r2, r1
8016284: 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))
8016286: 687b ldr r3, [r7, #4]
8016288: 6a5b ldr r3, [r3, #36] ; 0x24
801628a: f003 0320 and.w r3, r3, #32
801628e: 2b00 cmp r3, #0
8016290: d00a beq.n 80162a8 <UART_AdvFeatureConfig+0xd4>
{
assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError));
MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError);
8016292: 687b ldr r3, [r7, #4]
8016294: 681b ldr r3, [r3, #0]
8016296: 687a ldr r2, [r7, #4]
8016298: 6812 ldr r2, [r2, #0]
801629a: 6892 ldr r2, [r2, #8]
801629c: f422 5100 bic.w r1, r2, #8192 ; 0x2000
80162a0: 687a ldr r2, [r7, #4]
80162a2: 6bd2 ldr r2, [r2, #60] ; 0x3c
80162a4: 430a orrs r2, r1
80162a6: 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))
80162a8: 687b ldr r3, [r7, #4]
80162aa: 6a5b ldr r3, [r3, #36] ; 0x24
80162ac: f003 0340 and.w r3, r3, #64 ; 0x40
80162b0: 2b00 cmp r3, #0
80162b2: d01a beq.n 80162ea <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);
80162b4: 687b ldr r3, [r7, #4]
80162b6: 681b ldr r3, [r3, #0]
80162b8: 687a ldr r2, [r7, #4]
80162ba: 6812 ldr r2, [r2, #0]
80162bc: 6852 ldr r2, [r2, #4]
80162be: f422 1180 bic.w r1, r2, #1048576 ; 0x100000
80162c2: 687a ldr r2, [r7, #4]
80162c4: 6c12 ldr r2, [r2, #64] ; 0x40
80162c6: 430a orrs r2, r1
80162c8: 605a str r2, [r3, #4]
/* set auto Baudrate detection parameters if detection is enabled */
if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE)
80162ca: 687b ldr r3, [r7, #4]
80162cc: 6c1b ldr r3, [r3, #64] ; 0x40
80162ce: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000
80162d2: d10a bne.n 80162ea <UART_AdvFeatureConfig+0x116>
{
assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode));
MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode);
80162d4: 687b ldr r3, [r7, #4]
80162d6: 681b ldr r3, [r3, #0]
80162d8: 687a ldr r2, [r7, #4]
80162da: 6812 ldr r2, [r2, #0]
80162dc: 6852 ldr r2, [r2, #4]
80162de: f422 01c0 bic.w r1, r2, #6291456 ; 0x600000
80162e2: 687a ldr r2, [r7, #4]
80162e4: 6c52 ldr r2, [r2, #68] ; 0x44
80162e6: 430a orrs r2, r1
80162e8: 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))
80162ea: 687b ldr r3, [r7, #4]
80162ec: 6a5b ldr r3, [r3, #36] ; 0x24
80162ee: f003 0380 and.w r3, r3, #128 ; 0x80
80162f2: 2b00 cmp r3, #0
80162f4: d00a beq.n 801630c <UART_AdvFeatureConfig+0x138>
{
assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst));
MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst);
80162f6: 687b ldr r3, [r7, #4]
80162f8: 681b ldr r3, [r3, #0]
80162fa: 687a ldr r2, [r7, #4]
80162fc: 6812 ldr r2, [r2, #0]
80162fe: 6852 ldr r2, [r2, #4]
8016300: f422 2100 bic.w r1, r2, #524288 ; 0x80000
8016304: 687a ldr r2, [r7, #4]
8016306: 6c92 ldr r2, [r2, #72] ; 0x48
8016308: 430a orrs r2, r1
801630a: 605a str r2, [r3, #4]
}
}
801630c: bf00 nop
801630e: 370c adds r7, #12
8016310: 46bd mov sp, r7
8016312: f85d 7b04 ldr.w r7, [sp], #4
8016316: 4770 bx lr
08016318 <UART_CheckIdleState>:
* @brief Check the UART Idle State.
* @param huart UART handle.
* @retval HAL status
*/
HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart)
{
8016318: b580 push {r7, lr}
801631a: b086 sub sp, #24
801631c: af02 add r7, sp, #8
801631e: 6078 str r0, [r7, #4]
uint32_t tickstart;
/* Initialize the UART ErrorCode */
huart->ErrorCode = HAL_UART_ERROR_NONE;
8016320: 687b ldr r3, [r7, #4]
8016322: 2200 movs r2, #0
8016324: f8c3 2080 str.w r2, [r3, #128] ; 0x80
/* Init tickstart for timeout management */
tickstart = HAL_GetTick();
8016328: f7fb fbfa bl 8011b20 <HAL_GetTick>
801632c: 60f8 str r0, [r7, #12]
/* Check if the Transmitter is enabled */
if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE)
801632e: 687b ldr r3, [r7, #4]
8016330: 681b ldr r3, [r3, #0]
8016332: 681b ldr r3, [r3, #0]
8016334: f003 0308 and.w r3, r3, #8
8016338: 2b08 cmp r3, #8
801633a: d10e bne.n 801635a <UART_CheckIdleState+0x42>
{
/* Wait until TEACK flag is set */
if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK)
801633c: f06f 437e mvn.w r3, #4261412864 ; 0xfe000000
8016340: 9300 str r3, [sp, #0]
8016342: 68fb ldr r3, [r7, #12]
8016344: 2200 movs r2, #0
8016346: f44f 1100 mov.w r1, #2097152 ; 0x200000
801634a: 6878 ldr r0, [r7, #4]
801634c: f000 f82d bl 80163aa <UART_WaitOnFlagUntilTimeout>
8016350: 4603 mov r3, r0
8016352: 2b00 cmp r3, #0
8016354: d001 beq.n 801635a <UART_CheckIdleState+0x42>
{
/* Timeout occurred */
return HAL_TIMEOUT;
8016356: 2303 movs r3, #3
8016358: e023 b.n 80163a2 <UART_CheckIdleState+0x8a>
}
}
#if defined(USART_ISR_REACK)
/* Check if the Receiver is enabled */
if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE)
801635a: 687b ldr r3, [r7, #4]
801635c: 681b ldr r3, [r3, #0]
801635e: 681b ldr r3, [r3, #0]
8016360: f003 0304 and.w r3, r3, #4
8016364: 2b04 cmp r3, #4
8016366: d10e bne.n 8016386 <UART_CheckIdleState+0x6e>
{
/* Wait until REACK flag is set */
if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK)
8016368: f06f 437e mvn.w r3, #4261412864 ; 0xfe000000
801636c: 9300 str r3, [sp, #0]
801636e: 68fb ldr r3, [r7, #12]
8016370: 2200 movs r2, #0
8016372: f44f 0180 mov.w r1, #4194304 ; 0x400000
8016376: 6878 ldr r0, [r7, #4]
8016378: f000 f817 bl 80163aa <UART_WaitOnFlagUntilTimeout>
801637c: 4603 mov r3, r0
801637e: 2b00 cmp r3, #0
8016380: d001 beq.n 8016386 <UART_CheckIdleState+0x6e>
{
/* Timeout occurred */
return HAL_TIMEOUT;
8016382: 2303 movs r3, #3
8016384: e00d b.n 80163a2 <UART_CheckIdleState+0x8a>
}
}
#endif
/* Initialize the UART State */
huart->gState = HAL_UART_STATE_READY;
8016386: 687b ldr r3, [r7, #4]
8016388: 2220 movs r2, #32
801638a: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
801638c: 687b ldr r3, [r7, #4]
801638e: 2220 movs r2, #32
8016390: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
8016392: 687b ldr r3, [r7, #4]
8016394: 2200 movs r2, #0
8016396: 661a str r2, [r3, #96] ; 0x60
__HAL_UNLOCK(huart);
8016398: 687b ldr r3, [r7, #4]
801639a: 2200 movs r2, #0
801639c: f883 2074 strb.w r2, [r3, #116] ; 0x74
return HAL_OK;
80163a0: 2300 movs r3, #0
}
80163a2: 4618 mov r0, r3
80163a4: 3710 adds r7, #16
80163a6: 46bd mov sp, r7
80163a8: bd80 pop {r7, pc}
080163aa <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)
{
80163aa: b580 push {r7, lr}
80163ac: b09c sub sp, #112 ; 0x70
80163ae: af00 add r7, sp, #0
80163b0: 60f8 str r0, [r7, #12]
80163b2: 60b9 str r1, [r7, #8]
80163b4: 603b str r3, [r7, #0]
80163b6: 4613 mov r3, r2
80163b8: 71fb strb r3, [r7, #7]
/* Wait until flag is set */
while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status)
80163ba: e0a5 b.n 8016508 <UART_WaitOnFlagUntilTimeout+0x15e>
{
/* Check for the Timeout */
if (Timeout != HAL_MAX_DELAY)
80163bc: 6fbb ldr r3, [r7, #120] ; 0x78
80163be: f1b3 3fff cmp.w r3, #4294967295
80163c2: f000 80a1 beq.w 8016508 <UART_WaitOnFlagUntilTimeout+0x15e>
{
if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
80163c6: f7fb fbab bl 8011b20 <HAL_GetTick>
80163ca: 4602 mov r2, r0
80163cc: 683b ldr r3, [r7, #0]
80163ce: 1ad2 subs r2, r2, r3
80163d0: 6fbb ldr r3, [r7, #120] ; 0x78
80163d2: 429a cmp r2, r3
80163d4: d802 bhi.n 80163dc <UART_WaitOnFlagUntilTimeout+0x32>
80163d6: 6fbb ldr r3, [r7, #120] ; 0x78
80163d8: 2b00 cmp r3, #0
80163da: d13e bne.n 801645a <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));
80163dc: 68fb ldr r3, [r7, #12]
80163de: 681b ldr r3, [r3, #0]
80163e0: 653b str r3, [r7, #80] ; 0x50
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
80163e2: 6d3b ldr r3, [r7, #80] ; 0x50
80163e4: e853 3f00 ldrex r3, [r3]
80163e8: 64fb str r3, [r7, #76] ; 0x4c
return(result);
80163ea: 6cfb ldr r3, [r7, #76] ; 0x4c
80163ec: f423 73d0 bic.w r3, r3, #416 ; 0x1a0
80163f0: 667b str r3, [r7, #100] ; 0x64
80163f2: 68fb ldr r3, [r7, #12]
80163f4: 681b ldr r3, [r3, #0]
80163f6: 461a mov r2, r3
80163f8: 6e7b ldr r3, [r7, #100] ; 0x64
80163fa: 65fb str r3, [r7, #92] ; 0x5c
80163fc: 65ba str r2, [r7, #88] ; 0x58
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80163fe: 6db9 ldr r1, [r7, #88] ; 0x58
8016400: 6dfa ldr r2, [r7, #92] ; 0x5c
8016402: e841 2300 strex r3, r2, [r1]
8016406: 657b str r3, [r7, #84] ; 0x54
return(result);
8016408: 6d7b ldr r3, [r7, #84] ; 0x54
801640a: 2b00 cmp r3, #0
801640c: d1e6 bne.n 80163dc <UART_WaitOnFlagUntilTimeout+0x32>
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
801640e: 68fb ldr r3, [r7, #12]
8016410: 681b ldr r3, [r3, #0]
8016412: 3308 adds r3, #8
8016414: 63fb str r3, [r7, #60] ; 0x3c
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8016416: 6bfb ldr r3, [r7, #60] ; 0x3c
8016418: e853 3f00 ldrex r3, [r3]
801641c: 63bb str r3, [r7, #56] ; 0x38
return(result);
801641e: 6bbb ldr r3, [r7, #56] ; 0x38
8016420: f023 0301 bic.w r3, r3, #1
8016424: 663b str r3, [r7, #96] ; 0x60
8016426: 68fb ldr r3, [r7, #12]
8016428: 681b ldr r3, [r3, #0]
801642a: 3308 adds r3, #8
801642c: 6e3a ldr r2, [r7, #96] ; 0x60
801642e: 64ba str r2, [r7, #72] ; 0x48
8016430: 647b str r3, [r7, #68] ; 0x44
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8016432: 6c79 ldr r1, [r7, #68] ; 0x44
8016434: 6cba ldr r2, [r7, #72] ; 0x48
8016436: e841 2300 strex r3, r2, [r1]
801643a: 643b str r3, [r7, #64] ; 0x40
return(result);
801643c: 6c3b ldr r3, [r7, #64] ; 0x40
801643e: 2b00 cmp r3, #0
8016440: d1e5 bne.n 801640e <UART_WaitOnFlagUntilTimeout+0x64>
huart->gState = HAL_UART_STATE_READY;
8016442: 68fb ldr r3, [r7, #12]
8016444: 2220 movs r2, #32
8016446: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
8016448: 68fb ldr r3, [r7, #12]
801644a: 2220 movs r2, #32
801644c: 67da str r2, [r3, #124] ; 0x7c
__HAL_UNLOCK(huart);
801644e: 68fb ldr r3, [r7, #12]
8016450: 2200 movs r2, #0
8016452: f883 2074 strb.w r2, [r3, #116] ; 0x74
return HAL_TIMEOUT;
8016456: 2303 movs r3, #3
8016458: e067 b.n 801652a <UART_WaitOnFlagUntilTimeout+0x180>
}
if (READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U)
801645a: 68fb ldr r3, [r7, #12]
801645c: 681b ldr r3, [r3, #0]
801645e: 681b ldr r3, [r3, #0]
8016460: f003 0304 and.w r3, r3, #4
8016464: 2b00 cmp r3, #0
8016466: d04f beq.n 8016508 <UART_WaitOnFlagUntilTimeout+0x15e>
{
if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET)
8016468: 68fb ldr r3, [r7, #12]
801646a: 681b ldr r3, [r3, #0]
801646c: 69db ldr r3, [r3, #28]
801646e: f403 6300 and.w r3, r3, #2048 ; 0x800
8016472: f5b3 6f00 cmp.w r3, #2048 ; 0x800
8016476: d147 bne.n 8016508 <UART_WaitOnFlagUntilTimeout+0x15e>
{
/* Clear Receiver Timeout flag*/
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF);
8016478: 68fb ldr r3, [r7, #12]
801647a: 681b ldr r3, [r3, #0]
801647c: f44f 6200 mov.w r2, #2048 ; 0x800
8016480: 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));
8016482: 68fb ldr r3, [r7, #12]
8016484: 681b ldr r3, [r3, #0]
8016486: 62bb str r3, [r7, #40] ; 0x28
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8016488: 6abb ldr r3, [r7, #40] ; 0x28
801648a: e853 3f00 ldrex r3, [r3]
801648e: 627b str r3, [r7, #36] ; 0x24
return(result);
8016490: 6a7b ldr r3, [r7, #36] ; 0x24
8016492: f423 73d0 bic.w r3, r3, #416 ; 0x1a0
8016496: 66fb str r3, [r7, #108] ; 0x6c
8016498: 68fb ldr r3, [r7, #12]
801649a: 681b ldr r3, [r3, #0]
801649c: 461a mov r2, r3
801649e: 6efb ldr r3, [r7, #108] ; 0x6c
80164a0: 637b str r3, [r7, #52] ; 0x34
80164a2: 633a str r2, [r7, #48] ; 0x30
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80164a4: 6b39 ldr r1, [r7, #48] ; 0x30
80164a6: 6b7a ldr r2, [r7, #52] ; 0x34
80164a8: e841 2300 strex r3, r2, [r1]
80164ac: 62fb str r3, [r7, #44] ; 0x2c
return(result);
80164ae: 6afb ldr r3, [r7, #44] ; 0x2c
80164b0: 2b00 cmp r3, #0
80164b2: d1e6 bne.n 8016482 <UART_WaitOnFlagUntilTimeout+0xd8>
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
80164b4: 68fb ldr r3, [r7, #12]
80164b6: 681b ldr r3, [r3, #0]
80164b8: 3308 adds r3, #8
80164ba: 617b str r3, [r7, #20]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
80164bc: 697b ldr r3, [r7, #20]
80164be: e853 3f00 ldrex r3, [r3]
80164c2: 613b str r3, [r7, #16]
return(result);
80164c4: 693b ldr r3, [r7, #16]
80164c6: f023 0301 bic.w r3, r3, #1
80164ca: 66bb str r3, [r7, #104] ; 0x68
80164cc: 68fb ldr r3, [r7, #12]
80164ce: 681b ldr r3, [r3, #0]
80164d0: 3308 adds r3, #8
80164d2: 6eba ldr r2, [r7, #104] ; 0x68
80164d4: 623a str r2, [r7, #32]
80164d6: 61fb str r3, [r7, #28]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80164d8: 69f9 ldr r1, [r7, #28]
80164da: 6a3a ldr r2, [r7, #32]
80164dc: e841 2300 strex r3, r2, [r1]
80164e0: 61bb str r3, [r7, #24]
return(result);
80164e2: 69bb ldr r3, [r7, #24]
80164e4: 2b00 cmp r3, #0
80164e6: d1e5 bne.n 80164b4 <UART_WaitOnFlagUntilTimeout+0x10a>
huart->gState = HAL_UART_STATE_READY;
80164e8: 68fb ldr r3, [r7, #12]
80164ea: 2220 movs r2, #32
80164ec: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
80164ee: 68fb ldr r3, [r7, #12]
80164f0: 2220 movs r2, #32
80164f2: 67da str r2, [r3, #124] ; 0x7c
huart->ErrorCode = HAL_UART_ERROR_RTO;
80164f4: 68fb ldr r3, [r7, #12]
80164f6: 2220 movs r2, #32
80164f8: f8c3 2080 str.w r2, [r3, #128] ; 0x80
/* Process Unlocked */
__HAL_UNLOCK(huart);
80164fc: 68fb ldr r3, [r7, #12]
80164fe: 2200 movs r2, #0
8016500: f883 2074 strb.w r2, [r3, #116] ; 0x74
return HAL_TIMEOUT;
8016504: 2303 movs r3, #3
8016506: e010 b.n 801652a <UART_WaitOnFlagUntilTimeout+0x180>
while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status)
8016508: 68fb ldr r3, [r7, #12]
801650a: 681b ldr r3, [r3, #0]
801650c: 69da ldr r2, [r3, #28]
801650e: 68bb ldr r3, [r7, #8]
8016510: 401a ands r2, r3
8016512: 68bb ldr r3, [r7, #8]
8016514: 429a cmp r2, r3
8016516: bf0c ite eq
8016518: 2301 moveq r3, #1
801651a: 2300 movne r3, #0
801651c: b2db uxtb r3, r3
801651e: 461a mov r2, r3
8016520: 79fb ldrb r3, [r7, #7]
8016522: 429a cmp r2, r3
8016524: f43f af4a beq.w 80163bc <UART_WaitOnFlagUntilTimeout+0x12>
}
}
}
}
return HAL_OK;
8016528: 2300 movs r3, #0
}
801652a: 4618 mov r0, r3
801652c: 3770 adds r7, #112 ; 0x70
801652e: 46bd mov sp, r7
8016530: bd80 pop {r7, pc}
08016532 <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)
{
8016532: b480 push {r7}
8016534: b095 sub sp, #84 ; 0x54
8016536: af00 add r7, sp, #0
8016538: 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));
801653a: 687b ldr r3, [r7, #4]
801653c: 681b ldr r3, [r3, #0]
801653e: 637b str r3, [r7, #52] ; 0x34
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8016540: 6b7b ldr r3, [r7, #52] ; 0x34
8016542: e853 3f00 ldrex r3, [r3]
8016546: 633b str r3, [r7, #48] ; 0x30
return(result);
8016548: 6b3b ldr r3, [r7, #48] ; 0x30
801654a: f423 7390 bic.w r3, r3, #288 ; 0x120
801654e: 64fb str r3, [r7, #76] ; 0x4c
8016550: 687b ldr r3, [r7, #4]
8016552: 681b ldr r3, [r3, #0]
8016554: 461a mov r2, r3
8016556: 6cfb ldr r3, [r7, #76] ; 0x4c
8016558: 643b str r3, [r7, #64] ; 0x40
801655a: 63fa str r2, [r7, #60] ; 0x3c
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
801655c: 6bf9 ldr r1, [r7, #60] ; 0x3c
801655e: 6c3a ldr r2, [r7, #64] ; 0x40
8016560: e841 2300 strex r3, r2, [r1]
8016564: 63bb str r3, [r7, #56] ; 0x38
return(result);
8016566: 6bbb ldr r3, [r7, #56] ; 0x38
8016568: 2b00 cmp r3, #0
801656a: d1e6 bne.n 801653a <UART_EndRxTransfer+0x8>
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
801656c: 687b ldr r3, [r7, #4]
801656e: 681b ldr r3, [r3, #0]
8016570: 3308 adds r3, #8
8016572: 623b str r3, [r7, #32]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8016574: 6a3b ldr r3, [r7, #32]
8016576: e853 3f00 ldrex r3, [r3]
801657a: 61fb str r3, [r7, #28]
return(result);
801657c: 69fb ldr r3, [r7, #28]
801657e: f023 0301 bic.w r3, r3, #1
8016582: 64bb str r3, [r7, #72] ; 0x48
8016584: 687b ldr r3, [r7, #4]
8016586: 681b ldr r3, [r3, #0]
8016588: 3308 adds r3, #8
801658a: 6cba ldr r2, [r7, #72] ; 0x48
801658c: 62fa str r2, [r7, #44] ; 0x2c
801658e: 62bb str r3, [r7, #40] ; 0x28
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8016590: 6ab9 ldr r1, [r7, #40] ; 0x28
8016592: 6afa ldr r2, [r7, #44] ; 0x2c
8016594: e841 2300 strex r3, r2, [r1]
8016598: 627b str r3, [r7, #36] ; 0x24
return(result);
801659a: 6a7b ldr r3, [r7, #36] ; 0x24
801659c: 2b00 cmp r3, #0
801659e: d1e5 bne.n 801656c <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)
80165a0: 687b ldr r3, [r7, #4]
80165a2: 6e1b ldr r3, [r3, #96] ; 0x60
80165a4: 2b01 cmp r3, #1
80165a6: d118 bne.n 80165da <UART_EndRxTransfer+0xa8>
{
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
80165a8: 687b ldr r3, [r7, #4]
80165aa: 681b ldr r3, [r3, #0]
80165ac: 60fb str r3, [r7, #12]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
80165ae: 68fb ldr r3, [r7, #12]
80165b0: e853 3f00 ldrex r3, [r3]
80165b4: 60bb str r3, [r7, #8]
return(result);
80165b6: 68bb ldr r3, [r7, #8]
80165b8: f023 0310 bic.w r3, r3, #16
80165bc: 647b str r3, [r7, #68] ; 0x44
80165be: 687b ldr r3, [r7, #4]
80165c0: 681b ldr r3, [r3, #0]
80165c2: 461a mov r2, r3
80165c4: 6c7b ldr r3, [r7, #68] ; 0x44
80165c6: 61bb str r3, [r7, #24]
80165c8: 617a str r2, [r7, #20]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80165ca: 6979 ldr r1, [r7, #20]
80165cc: 69ba ldr r2, [r7, #24]
80165ce: e841 2300 strex r3, r2, [r1]
80165d2: 613b str r3, [r7, #16]
return(result);
80165d4: 693b ldr r3, [r7, #16]
80165d6: 2b00 cmp r3, #0
80165d8: d1e6 bne.n 80165a8 <UART_EndRxTransfer+0x76>
}
/* At end of Rx process, restore huart->RxState to Ready */
huart->RxState = HAL_UART_STATE_READY;
80165da: 687b ldr r3, [r7, #4]
80165dc: 2220 movs r2, #32
80165de: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
80165e0: 687b ldr r3, [r7, #4]
80165e2: 2200 movs r2, #0
80165e4: 661a str r2, [r3, #96] ; 0x60
/* Reset RxIsr function pointer */
huart->RxISR = NULL;
80165e6: 687b ldr r3, [r7, #4]
80165e8: 2200 movs r2, #0
80165ea: 665a str r2, [r3, #100] ; 0x64
}
80165ec: bf00 nop
80165ee: 3754 adds r7, #84 ; 0x54
80165f0: 46bd mov sp, r7
80165f2: f85d 7b04 ldr.w r7, [sp], #4
80165f6: 4770 bx lr
080165f8 <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)
{
80165f8: b580 push {r7, lr}
80165fa: b084 sub sp, #16
80165fc: af00 add r7, sp, #0
80165fe: 6078 str r0, [r7, #4]
UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent);
8016600: 687b ldr r3, [r7, #4]
8016602: 6b9b ldr r3, [r3, #56] ; 0x38
8016604: 60fb str r3, [r7, #12]
huart->RxXferCount = 0U;
8016606: 68fb ldr r3, [r7, #12]
8016608: 2200 movs r2, #0
801660a: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
huart->TxXferCount = 0U;
801660e: 68fb ldr r3, [r7, #12]
8016610: 2200 movs r2, #0
8016612: 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);
8016616: 68f8 ldr r0, [r7, #12]
8016618: f7f9 ff32 bl 8010480 <HAL_UART_ErrorCallback>
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
}
801661c: bf00 nop
801661e: 3710 adds r7, #16
8016620: 46bd mov sp, r7
8016622: bd80 pop {r7, pc}
08016624 <UART_DMATxAbortCallback>:
* Abort still ongoing for Rx DMA Handle.
* @param hdma DMA handle.
* @retval None
*/
static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma)
{
8016624: b580 push {r7, lr}
8016626: b084 sub sp, #16
8016628: af00 add r7, sp, #0
801662a: 6078 str r0, [r7, #4]
UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent);
801662c: 687b ldr r3, [r7, #4]
801662e: 6b9b ldr r3, [r3, #56] ; 0x38
8016630: 60fb str r3, [r7, #12]
huart->hdmatx->XferAbortCallback = NULL;
8016632: 68fb ldr r3, [r7, #12]
8016634: 6edb ldr r3, [r3, #108] ; 0x6c
8016636: 2200 movs r2, #0
8016638: 651a str r2, [r3, #80] ; 0x50
/* Check if an Abort process is still ongoing */
if (huart->hdmarx != NULL)
801663a: 68fb ldr r3, [r7, #12]
801663c: 6f1b ldr r3, [r3, #112] ; 0x70
801663e: 2b00 cmp r3, #0
8016640: d004 beq.n 801664c <UART_DMATxAbortCallback+0x28>
{
if (huart->hdmarx->XferAbortCallback != NULL)
8016642: 68fb ldr r3, [r7, #12]
8016644: 6f1b ldr r3, [r3, #112] ; 0x70
8016646: 6d1b ldr r3, [r3, #80] ; 0x50
8016648: 2b00 cmp r3, #0
801664a: d11c bne.n 8016686 <UART_DMATxAbortCallback+0x62>
return;
}
}
/* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callback */
huart->TxXferCount = 0U;
801664c: 68fb ldr r3, [r7, #12]
801664e: 2200 movs r2, #0
8016650: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
huart->RxXferCount = 0U;
8016654: 68fb ldr r3, [r7, #12]
8016656: 2200 movs r2, #0
8016658: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
/* Reset errorCode */
huart->ErrorCode = HAL_UART_ERROR_NONE;
801665c: 68fb ldr r3, [r7, #12]
801665e: 2200 movs r2, #0
8016660: 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);
8016664: 68fb ldr r3, [r7, #12]
8016666: 681b ldr r3, [r3, #0]
8016668: 220f movs r2, #15
801666a: 621a str r2, [r3, #32]
/* Restore huart->gState and huart->RxState to Ready */
huart->gState = HAL_UART_STATE_READY;
801666c: 68fb ldr r3, [r7, #12]
801666e: 2220 movs r2, #32
8016670: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
8016672: 68fb ldr r3, [r7, #12]
8016674: 2220 movs r2, #32
8016676: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
8016678: 68fb ldr r3, [r7, #12]
801667a: 2200 movs r2, #0
801667c: 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);
801667e: 68f8 ldr r0, [r7, #12]
8016680: f7ff fb28 bl 8015cd4 <HAL_UART_AbortCpltCallback>
8016684: e000 b.n 8016688 <UART_DMATxAbortCallback+0x64>
return;
8016686: bf00 nop
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
}
8016688: 3710 adds r7, #16
801668a: 46bd mov sp, r7
801668c: bd80 pop {r7, pc}
0801668e <UART_DMARxAbortCallback>:
* Abort still ongoing for Tx DMA Handle.
* @param hdma DMA handle.
* @retval None
*/
static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma)
{
801668e: b580 push {r7, lr}
8016690: b084 sub sp, #16
8016692: af00 add r7, sp, #0
8016694: 6078 str r0, [r7, #4]
UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent);
8016696: 687b ldr r3, [r7, #4]
8016698: 6b9b ldr r3, [r3, #56] ; 0x38
801669a: 60fb str r3, [r7, #12]
huart->hdmarx->XferAbortCallback = NULL;
801669c: 68fb ldr r3, [r7, #12]
801669e: 6f1b ldr r3, [r3, #112] ; 0x70
80166a0: 2200 movs r2, #0
80166a2: 651a str r2, [r3, #80] ; 0x50
/* Check if an Abort process is still ongoing */
if (huart->hdmatx != NULL)
80166a4: 68fb ldr r3, [r7, #12]
80166a6: 6edb ldr r3, [r3, #108] ; 0x6c
80166a8: 2b00 cmp r3, #0
80166aa: d004 beq.n 80166b6 <UART_DMARxAbortCallback+0x28>
{
if (huart->hdmatx->XferAbortCallback != NULL)
80166ac: 68fb ldr r3, [r7, #12]
80166ae: 6edb ldr r3, [r3, #108] ; 0x6c
80166b0: 6d1b ldr r3, [r3, #80] ; 0x50
80166b2: 2b00 cmp r3, #0
80166b4: d124 bne.n 8016700 <UART_DMARxAbortCallback+0x72>
return;
}
}
/* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callback */
huart->TxXferCount = 0U;
80166b6: 68fb ldr r3, [r7, #12]
80166b8: 2200 movs r2, #0
80166ba: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
huart->RxXferCount = 0U;
80166be: 68fb ldr r3, [r7, #12]
80166c0: 2200 movs r2, #0
80166c2: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
/* Reset errorCode */
huart->ErrorCode = HAL_UART_ERROR_NONE;
80166c6: 68fb ldr r3, [r7, #12]
80166c8: 2200 movs r2, #0
80166ca: 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);
80166ce: 68fb ldr r3, [r7, #12]
80166d0: 681b ldr r3, [r3, #0]
80166d2: 220f movs r2, #15
80166d4: 621a str r2, [r3, #32]
/* Discard the received data */
__HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
80166d6: 68fb ldr r3, [r7, #12]
80166d8: 681b ldr r3, [r3, #0]
80166da: 68fa ldr r2, [r7, #12]
80166dc: 6812 ldr r2, [r2, #0]
80166de: 6992 ldr r2, [r2, #24]
80166e0: f042 0208 orr.w r2, r2, #8
80166e4: 619a str r2, [r3, #24]
/* Restore huart->gState and huart->RxState to Ready */
huart->gState = HAL_UART_STATE_READY;
80166e6: 68fb ldr r3, [r7, #12]
80166e8: 2220 movs r2, #32
80166ea: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
80166ec: 68fb ldr r3, [r7, #12]
80166ee: 2220 movs r2, #32
80166f0: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
80166f2: 68fb ldr r3, [r7, #12]
80166f4: 2200 movs r2, #0
80166f6: 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);
80166f8: 68f8 ldr r0, [r7, #12]
80166fa: f7ff faeb bl 8015cd4 <HAL_UART_AbortCpltCallback>
80166fe: e000 b.n 8016702 <UART_DMARxAbortCallback+0x74>
return;
8016700: bf00 nop
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
}
8016702: 3710 adds r7, #16
8016704: 46bd mov sp, r7
8016706: bd80 pop {r7, pc}
08016708 <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)
{
8016708: b480 push {r7}
801670a: b08f sub sp, #60 ; 0x3c
801670c: af00 add r7, sp, #0
801670e: 6078 str r0, [r7, #4]
/* Check that a Tx process is ongoing */
if (huart->gState == HAL_UART_STATE_BUSY_TX)
8016710: 687b ldr r3, [r7, #4]
8016712: 6f9b ldr r3, [r3, #120] ; 0x78
8016714: 2b21 cmp r3, #33 ; 0x21
8016716: d14c bne.n 80167b2 <UART_TxISR_8BIT+0xaa>
{
if (huart->TxXferCount == 0U)
8016718: 687b ldr r3, [r7, #4]
801671a: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
801671e: b29b uxth r3, r3
8016720: 2b00 cmp r3, #0
8016722: d132 bne.n 801678a <UART_TxISR_8BIT+0x82>
{
/* Disable the UART Transmit Data Register Empty Interrupt */
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE);
8016724: 687b ldr r3, [r7, #4]
8016726: 681b ldr r3, [r3, #0]
8016728: 623b str r3, [r7, #32]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
801672a: 6a3b ldr r3, [r7, #32]
801672c: e853 3f00 ldrex r3, [r3]
8016730: 61fb str r3, [r7, #28]
return(result);
8016732: 69fb ldr r3, [r7, #28]
8016734: f023 0380 bic.w r3, r3, #128 ; 0x80
8016738: 637b str r3, [r7, #52] ; 0x34
801673a: 687b ldr r3, [r7, #4]
801673c: 681b ldr r3, [r3, #0]
801673e: 461a mov r2, r3
8016740: 6b7b ldr r3, [r7, #52] ; 0x34
8016742: 62fb str r3, [r7, #44] ; 0x2c
8016744: 62ba str r2, [r7, #40] ; 0x28
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8016746: 6ab9 ldr r1, [r7, #40] ; 0x28
8016748: 6afa ldr r2, [r7, #44] ; 0x2c
801674a: e841 2300 strex r3, r2, [r1]
801674e: 627b str r3, [r7, #36] ; 0x24
return(result);
8016750: 6a7b ldr r3, [r7, #36] ; 0x24
8016752: 2b00 cmp r3, #0
8016754: d1e6 bne.n 8016724 <UART_TxISR_8BIT+0x1c>
/* Enable the UART Transmit Complete Interrupt */
ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE);
8016756: 687b ldr r3, [r7, #4]
8016758: 681b ldr r3, [r3, #0]
801675a: 60fb str r3, [r7, #12]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
801675c: 68fb ldr r3, [r7, #12]
801675e: e853 3f00 ldrex r3, [r3]
8016762: 60bb str r3, [r7, #8]
return(result);
8016764: 68bb ldr r3, [r7, #8]
8016766: f043 0340 orr.w r3, r3, #64 ; 0x40
801676a: 633b str r3, [r7, #48] ; 0x30
801676c: 687b ldr r3, [r7, #4]
801676e: 681b ldr r3, [r3, #0]
8016770: 461a mov r2, r3
8016772: 6b3b ldr r3, [r7, #48] ; 0x30
8016774: 61bb str r3, [r7, #24]
8016776: 617a str r2, [r7, #20]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8016778: 6979 ldr r1, [r7, #20]
801677a: 69ba ldr r2, [r7, #24]
801677c: e841 2300 strex r3, r2, [r1]
8016780: 613b str r3, [r7, #16]
return(result);
8016782: 693b ldr r3, [r7, #16]
8016784: 2b00 cmp r3, #0
8016786: d1e6 bne.n 8016756 <UART_TxISR_8BIT+0x4e>
huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF);
huart->pTxBuffPtr++;
huart->TxXferCount--;
}
}
}
8016788: e013 b.n 80167b2 <UART_TxISR_8BIT+0xaa>
huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF);
801678a: 687b ldr r3, [r7, #4]
801678c: 681b ldr r3, [r3, #0]
801678e: 687a ldr r2, [r7, #4]
8016790: 6cd2 ldr r2, [r2, #76] ; 0x4c
8016792: 7812 ldrb r2, [r2, #0]
8016794: 629a str r2, [r3, #40] ; 0x28
huart->pTxBuffPtr++;
8016796: 687b ldr r3, [r7, #4]
8016798: 6cdb ldr r3, [r3, #76] ; 0x4c
801679a: 1c5a adds r2, r3, #1
801679c: 687b ldr r3, [r7, #4]
801679e: 64da str r2, [r3, #76] ; 0x4c
huart->TxXferCount--;
80167a0: 687b ldr r3, [r7, #4]
80167a2: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
80167a6: b29b uxth r3, r3
80167a8: 3b01 subs r3, #1
80167aa: b29a uxth r2, r3
80167ac: 687b ldr r3, [r7, #4]
80167ae: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
}
80167b2: bf00 nop
80167b4: 373c adds r7, #60 ; 0x3c
80167b6: 46bd mov sp, r7
80167b8: f85d 7b04 ldr.w r7, [sp], #4
80167bc: 4770 bx lr
080167be <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)
{
80167be: b480 push {r7}
80167c0: b091 sub sp, #68 ; 0x44
80167c2: af00 add r7, sp, #0
80167c4: 6078 str r0, [r7, #4]
const uint16_t *tmp;
/* Check that a Tx process is ongoing */
if (huart->gState == HAL_UART_STATE_BUSY_TX)
80167c6: 687b ldr r3, [r7, #4]
80167c8: 6f9b ldr r3, [r3, #120] ; 0x78
80167ca: 2b21 cmp r3, #33 ; 0x21
80167cc: d150 bne.n 8016870 <UART_TxISR_16BIT+0xb2>
{
if (huart->TxXferCount == 0U)
80167ce: 687b ldr r3, [r7, #4]
80167d0: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
80167d4: b29b uxth r3, r3
80167d6: 2b00 cmp r3, #0
80167d8: d132 bne.n 8016840 <UART_TxISR_16BIT+0x82>
{
/* Disable the UART Transmit Data Register Empty Interrupt */
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE);
80167da: 687b ldr r3, [r7, #4]
80167dc: 681b ldr r3, [r3, #0]
80167de: 627b str r3, [r7, #36] ; 0x24
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
80167e0: 6a7b ldr r3, [r7, #36] ; 0x24
80167e2: e853 3f00 ldrex r3, [r3]
80167e6: 623b str r3, [r7, #32]
return(result);
80167e8: 6a3b ldr r3, [r7, #32]
80167ea: f023 0380 bic.w r3, r3, #128 ; 0x80
80167ee: 63fb str r3, [r7, #60] ; 0x3c
80167f0: 687b ldr r3, [r7, #4]
80167f2: 681b ldr r3, [r3, #0]
80167f4: 461a mov r2, r3
80167f6: 6bfb ldr r3, [r7, #60] ; 0x3c
80167f8: 633b str r3, [r7, #48] ; 0x30
80167fa: 62fa str r2, [r7, #44] ; 0x2c
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80167fc: 6af9 ldr r1, [r7, #44] ; 0x2c
80167fe: 6b3a ldr r2, [r7, #48] ; 0x30
8016800: e841 2300 strex r3, r2, [r1]
8016804: 62bb str r3, [r7, #40] ; 0x28
return(result);
8016806: 6abb ldr r3, [r7, #40] ; 0x28
8016808: 2b00 cmp r3, #0
801680a: d1e6 bne.n 80167da <UART_TxISR_16BIT+0x1c>
/* Enable the UART Transmit Complete Interrupt */
ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE);
801680c: 687b ldr r3, [r7, #4]
801680e: 681b ldr r3, [r3, #0]
8016810: 613b str r3, [r7, #16]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8016812: 693b ldr r3, [r7, #16]
8016814: e853 3f00 ldrex r3, [r3]
8016818: 60fb str r3, [r7, #12]
return(result);
801681a: 68fb ldr r3, [r7, #12]
801681c: f043 0340 orr.w r3, r3, #64 ; 0x40
8016820: 63bb str r3, [r7, #56] ; 0x38
8016822: 687b ldr r3, [r7, #4]
8016824: 681b ldr r3, [r3, #0]
8016826: 461a mov r2, r3
8016828: 6bbb ldr r3, [r7, #56] ; 0x38
801682a: 61fb str r3, [r7, #28]
801682c: 61ba str r2, [r7, #24]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
801682e: 69b9 ldr r1, [r7, #24]
8016830: 69fa ldr r2, [r7, #28]
8016832: e841 2300 strex r3, r2, [r1]
8016836: 617b str r3, [r7, #20]
return(result);
8016838: 697b ldr r3, [r7, #20]
801683a: 2b00 cmp r3, #0
801683c: d1e6 bne.n 801680c <UART_TxISR_16BIT+0x4e>
huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL);
huart->pTxBuffPtr += 2U;
huart->TxXferCount--;
}
}
}
801683e: e017 b.n 8016870 <UART_TxISR_16BIT+0xb2>
tmp = (const uint16_t *) huart->pTxBuffPtr;
8016840: 687b ldr r3, [r7, #4]
8016842: 6cdb ldr r3, [r3, #76] ; 0x4c
8016844: 637b str r3, [r7, #52] ; 0x34
huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL);
8016846: 687b ldr r3, [r7, #4]
8016848: 681b ldr r3, [r3, #0]
801684a: 6b7a ldr r2, [r7, #52] ; 0x34
801684c: 8812 ldrh r2, [r2, #0]
801684e: f3c2 0208 ubfx r2, r2, #0, #9
8016852: 629a str r2, [r3, #40] ; 0x28
huart->pTxBuffPtr += 2U;
8016854: 687b ldr r3, [r7, #4]
8016856: 6cdb ldr r3, [r3, #76] ; 0x4c
8016858: 1c9a adds r2, r3, #2
801685a: 687b ldr r3, [r7, #4]
801685c: 64da str r2, [r3, #76] ; 0x4c
huart->TxXferCount--;
801685e: 687b ldr r3, [r7, #4]
8016860: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8016864: b29b uxth r3, r3
8016866: 3b01 subs r3, #1
8016868: b29a uxth r2, r3
801686a: 687b ldr r3, [r7, #4]
801686c: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
}
8016870: bf00 nop
8016872: 3744 adds r7, #68 ; 0x44
8016874: 46bd mov sp, r7
8016876: f85d 7b04 ldr.w r7, [sp], #4
801687a: 4770 bx lr
0801687c <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)
{
801687c: b580 push {r7, lr}
801687e: b088 sub sp, #32
8016880: af00 add r7, sp, #0
8016882: 6078 str r0, [r7, #4]
/* Disable the UART Transmit Complete Interrupt */
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE);
8016884: 687b ldr r3, [r7, #4]
8016886: 681b ldr r3, [r3, #0]
8016888: 60fb str r3, [r7, #12]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
801688a: 68fb ldr r3, [r7, #12]
801688c: e853 3f00 ldrex r3, [r3]
8016890: 60bb str r3, [r7, #8]
return(result);
8016892: 68bb ldr r3, [r7, #8]
8016894: f023 0340 bic.w r3, r3, #64 ; 0x40
8016898: 61fb str r3, [r7, #28]
801689a: 687b ldr r3, [r7, #4]
801689c: 681b ldr r3, [r3, #0]
801689e: 461a mov r2, r3
80168a0: 69fb ldr r3, [r7, #28]
80168a2: 61bb str r3, [r7, #24]
80168a4: 617a str r2, [r7, #20]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80168a6: 6979 ldr r1, [r7, #20]
80168a8: 69ba ldr r2, [r7, #24]
80168aa: e841 2300 strex r3, r2, [r1]
80168ae: 613b str r3, [r7, #16]
return(result);
80168b0: 693b ldr r3, [r7, #16]
80168b2: 2b00 cmp r3, #0
80168b4: d1e6 bne.n 8016884 <UART_EndTransmit_IT+0x8>
/* Tx process is ended, restore huart->gState to Ready */
huart->gState = HAL_UART_STATE_READY;
80168b6: 687b ldr r3, [r7, #4]
80168b8: 2220 movs r2, #32
80168ba: 679a str r2, [r3, #120] ; 0x78
/* Cleat TxISR function pointer */
huart->TxISR = NULL;
80168bc: 687b ldr r3, [r7, #4]
80168be: 2200 movs r2, #0
80168c0: 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);
80168c2: 6878 ldr r0, [r7, #4]
80168c4: f7f9 fdb6 bl 8010434 <HAL_UART_TxCpltCallback>
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
}
80168c8: bf00 nop
80168ca: 3720 adds r7, #32
80168cc: 46bd mov sp, r7
80168ce: bd80 pop {r7, pc}
080168d0 <Reset_Handler>:
.section .text.Reset_Handler
.weak Reset_Handler
.type Reset_Handler, %function
Reset_Handler:
ldr sp, =_estack /* set stack pointer */
80168d0: f8df d034 ldr.w sp, [pc, #52] ; 8016908 <LoopFillZerobss+0x14>
/* Copy the data segment initializers from flash to SRAM */
movs r1, #0
80168d4: 2100 movs r1, #0
b LoopCopyDataInit
80168d6: e003 b.n 80168e0 <LoopCopyDataInit>
080168d8 <CopyDataInit>:
CopyDataInit:
ldr r3, =_sidata
80168d8: 4b0c ldr r3, [pc, #48] ; (801690c <LoopFillZerobss+0x18>)
ldr r3, [r3, r1]
80168da: 585b ldr r3, [r3, r1]
str r3, [r0, r1]
80168dc: 5043 str r3, [r0, r1]
adds r1, r1, #4
80168de: 3104 adds r1, #4
080168e0 <LoopCopyDataInit>:
LoopCopyDataInit:
ldr r0, =_sdata
80168e0: 480b ldr r0, [pc, #44] ; (8016910 <LoopFillZerobss+0x1c>)
ldr r3, =_edata
80168e2: 4b0c ldr r3, [pc, #48] ; (8016914 <LoopFillZerobss+0x20>)
adds r2, r0, r1
80168e4: 1842 adds r2, r0, r1
cmp r2, r3
80168e6: 429a cmp r2, r3
bcc CopyDataInit
80168e8: d3f6 bcc.n 80168d8 <CopyDataInit>
ldr r2, =_sbss
80168ea: 4a0b ldr r2, [pc, #44] ; (8016918 <LoopFillZerobss+0x24>)
b LoopFillZerobss
80168ec: e002 b.n 80168f4 <LoopFillZerobss>
080168ee <FillZerobss>:
/* Zero fill the bss segment. */
FillZerobss:
movs r3, #0
80168ee: 2300 movs r3, #0
str r3, [r2], #4
80168f0: f842 3b04 str.w r3, [r2], #4
080168f4 <LoopFillZerobss>:
LoopFillZerobss:
ldr r3, = _ebss
80168f4: 4b09 ldr r3, [pc, #36] ; (801691c <LoopFillZerobss+0x28>)
cmp r2, r3
80168f6: 429a cmp r2, r3
bcc FillZerobss
80168f8: d3f9 bcc.n 80168ee <FillZerobss>
/* Call the clock system initialization function.*/
bl SystemInit
80168fa: f7f9 fadd bl 800feb8 <SystemInit>
/* Call static constructors */
bl __libc_init_array
80168fe: f000 f85f bl 80169c0 <__libc_init_array>
/* Call the application's entry point.*/
bl main
8016902: f7ef fa9f bl 8005e44 <main>
bx lr
8016906: 4770 bx lr
ldr sp, =_estack /* set stack pointer */
8016908: 20080000 .word 0x20080000
ldr r3, =_sidata
801690c: 0802ff30 .word 0x0802ff30
ldr r0, =_sdata
8016910: 20020000 .word 0x20020000
ldr r3, =_edata
8016914: 20020888 .word 0x20020888
ldr r2, =_sbss
8016918: 20020888 .word 0x20020888
ldr r3, = _ebss
801691c: 2006c5c4 .word 0x2006c5c4
08016920 <ADC_IRQHandler>:
* @retval None
*/
.section .text.Default_Handler,"ax",%progbits
Default_Handler:
Infinite_Loop:
b Infinite_Loop
8016920: e7fe b.n 8016920 <ADC_IRQHandler>
...
08016924 <modff>:
8016924: ee10 2a10 vmov r2, s0
8016928: f3c2 51c7 ubfx r1, r2, #23, #8
801692c: 397f subs r1, #127 ; 0x7f
801692e: 2916 cmp r1, #22
8016930: b510 push {r4, lr}
8016932: ee10 3a10 vmov r3, s0
8016936: dc0c bgt.n 8016952 <modff+0x2e>
8016938: 2900 cmp r1, #0
801693a: da05 bge.n 8016948 <modff+0x24>
801693c: f002 4300 and.w r3, r2, #2147483648 ; 0x80000000
8016940: 6003 str r3, [r0, #0]
8016942: ee00 2a10 vmov s0, r2
8016946: bd10 pop {r4, pc}
8016948: 4c09 ldr r4, [pc, #36] ; (8016970 <modff+0x4c>)
801694a: fa44 f101 asr.w r1, r4, r1
801694e: 420a tst r2, r1
8016950: d103 bne.n 801695a <modff+0x36>
8016952: 6002 str r2, [r0, #0]
8016954: f003 4200 and.w r2, r3, #2147483648 ; 0x80000000
8016958: e7f3 b.n 8016942 <modff+0x1e>
801695a: ea22 0301 bic.w r3, r2, r1
801695e: ee07 3a10 vmov s14, r3
8016962: ee70 7a47 vsub.f32 s15, s0, s14
8016966: 6003 str r3, [r0, #0]
8016968: ee17 2a90 vmov r2, s15
801696c: e7e9 b.n 8016942 <modff+0x1e>
801696e: bf00 nop
8016970: 007fffff .word 0x007fffff
08016974 <roundf>:
8016974: ee10 0a10 vmov r0, s0
8016978: f3c0 53c7 ubfx r3, r0, #23, #8
801697c: f1a3 027f sub.w r2, r3, #127 ; 0x7f
8016980: 2a16 cmp r2, #22
8016982: dc15 bgt.n 80169b0 <roundf+0x3c>
8016984: 2a00 cmp r2, #0
8016986: da08 bge.n 801699a <roundf+0x26>
8016988: 3201 adds r2, #1
801698a: f000 4300 and.w r3, r0, #2147483648 ; 0x80000000
801698e: d101 bne.n 8016994 <roundf+0x20>
8016990: f043 537e orr.w r3, r3, #1065353216 ; 0x3f800000
8016994: ee00 3a10 vmov s0, r3
8016998: 4770 bx lr
801699a: 4908 ldr r1, [pc, #32] ; (80169bc <roundf+0x48>)
801699c: 4111 asrs r1, r2
801699e: 4208 tst r0, r1
80169a0: d0fa beq.n 8016998 <roundf+0x24>
80169a2: f44f 0380 mov.w r3, #4194304 ; 0x400000
80169a6: 4113 asrs r3, r2
80169a8: 4403 add r3, r0
80169aa: ea23 0301 bic.w r3, r3, r1
80169ae: e7f1 b.n 8016994 <roundf+0x20>
80169b0: 2a80 cmp r2, #128 ; 0x80
80169b2: d1f1 bne.n 8016998 <roundf+0x24>
80169b4: ee30 0a00 vadd.f32 s0, s0, s0
80169b8: 4770 bx lr
80169ba: bf00 nop
80169bc: 007fffff .word 0x007fffff
080169c0 <__libc_init_array>:
80169c0: b570 push {r4, r5, r6, lr}
80169c2: 4e0d ldr r6, [pc, #52] ; (80169f8 <__libc_init_array+0x38>)
80169c4: 4c0d ldr r4, [pc, #52] ; (80169fc <__libc_init_array+0x3c>)
80169c6: 1ba4 subs r4, r4, r6
80169c8: 10a4 asrs r4, r4, #2
80169ca: 2500 movs r5, #0
80169cc: 42a5 cmp r5, r4
80169ce: d109 bne.n 80169e4 <__libc_init_array+0x24>
80169d0: 4e0b ldr r6, [pc, #44] ; (8016a00 <__libc_init_array+0x40>)
80169d2: 4c0c ldr r4, [pc, #48] ; (8016a04 <__libc_init_array+0x44>)
80169d4: f000 f834 bl 8016a40 <_init>
80169d8: 1ba4 subs r4, r4, r6
80169da: 10a4 asrs r4, r4, #2
80169dc: 2500 movs r5, #0
80169de: 42a5 cmp r5, r4
80169e0: d105 bne.n 80169ee <__libc_init_array+0x2e>
80169e2: bd70 pop {r4, r5, r6, pc}
80169e4: f856 3025 ldr.w r3, [r6, r5, lsl #2]
80169e8: 4798 blx r3
80169ea: 3501 adds r5, #1
80169ec: e7ee b.n 80169cc <__libc_init_array+0xc>
80169ee: f856 3025 ldr.w r3, [r6, r5, lsl #2]
80169f2: 4798 blx r3
80169f4: 3501 adds r5, #1
80169f6: e7f2 b.n 80169de <__libc_init_array+0x1e>
80169f8: 0802ff28 .word 0x0802ff28
80169fc: 0802ff28 .word 0x0802ff28
8016a00: 0802ff28 .word 0x0802ff28
8016a04: 0802ff2c .word 0x0802ff2c
08016a08 <memcpy>:
8016a08: b510 push {r4, lr}
8016a0a: 1e43 subs r3, r0, #1
8016a0c: 440a add r2, r1
8016a0e: 4291 cmp r1, r2
8016a10: d100 bne.n 8016a14 <memcpy+0xc>
8016a12: bd10 pop {r4, pc}
8016a14: f811 4b01 ldrb.w r4, [r1], #1
8016a18: f803 4f01 strb.w r4, [r3, #1]!
8016a1c: e7f7 b.n 8016a0e <memcpy+0x6>
08016a1e <memset>:
8016a1e: 4402 add r2, r0
8016a20: 4603 mov r3, r0
8016a22: 4293 cmp r3, r2
8016a24: d100 bne.n 8016a28 <memset+0xa>
8016a26: 4770 bx lr
8016a28: f803 1b01 strb.w r1, [r3], #1
8016a2c: e7f9 b.n 8016a22 <memset+0x4>
08016a2e <strcpy>:
8016a2e: 4603 mov r3, r0
8016a30: f811 2b01 ldrb.w r2, [r1], #1
8016a34: f803 2b01 strb.w r2, [r3], #1
8016a38: 2a00 cmp r2, #0
8016a3a: d1f9 bne.n 8016a30 <strcpy+0x2>
8016a3c: 4770 bx lr
...
08016a40 <_init>:
8016a40: b5f8 push {r3, r4, r5, r6, r7, lr}
8016a42: bf00 nop
8016a44: bcf8 pop {r3, r4, r5, r6, r7}
8016a46: bc08 pop {r3}
8016a48: 469e mov lr, r3
8016a4a: 4770 bx lr
08016a4c <_fini>:
8016a4c: b5f8 push {r3, r4, r5, r6, r7, lr}
8016a4e: bf00 nop
8016a50: bcf8 pop {r3, r4, r5, r6, r7}
8016a52: bc08 pop {r3}
8016a54: 469e mov lr, r3
8016a56: 4770 bx lr