F203/Debug/F203 VER 3.list

39996 lines
1.6 MiB
Raw Blame History

F203 VER 3.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 00012158 080001f8 080001f8 000101f8 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .rodata 00018100 08012350 08012350 00022350 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
3 .ARM 00000008 0802a450 0802a450 0003a450 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
4 .init_array 00000004 0802a458 0802a458 0003a458 2**2
CONTENTS, ALLOC, LOAD, DATA
5 .fini_array 00000004 0802a45c 0802a45c 0003a45c 2**2
CONTENTS, ALLOC, LOAD, DATA
6 .data 00000228 20020000 0802a460 00040000 2**2
CONTENTS, ALLOC, LOAD, DATA
7 .dtcmram 00000000 20000000 20000000 00040228 2**0
CONTENTS
8 .sram2 00000000 2007c000 2007c000 00040228 2**0
CONTENTS
9 .bss 0004bd08 20020228 20020228 00040228 2**2
ALLOC
10 ._user_heap_stack 00000600 2006bf30 2006bf30 00040228 2**0
ALLOC
11 .ARM.attributes 0000002e 00000000 00000000 00040228 2**0
CONTENTS, READONLY
12 .debug_info 0002f20e 00000000 00000000 00040256 2**0
CONTENTS, READONLY, DEBUGGING
13 .debug_abbrev 000040c7 00000000 00000000 0006f464 2**0
CONTENTS, READONLY, DEBUGGING
14 .debug_aranges 000014f8 00000000 00000000 00073530 2**3
CONTENTS, READONLY, DEBUGGING
15 .debug_ranges 00001348 00000000 00000000 00074a28 2**3
CONTENTS, READONLY, DEBUGGING
16 .debug_line 0000dc91 00000000 00000000 00075d70 2**0
CONTENTS, READONLY, DEBUGGING
17 .debug_str 00008c17 00000000 00000000 00083a01 2**0
CONTENTS, READONLY, DEBUGGING
18 .comment 0000007c 00000000 00000000 0008c618 2**0
CONTENTS, READONLY
19 .debug_frame 0000572c 00000000 00000000 0008c694 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: 20020228 .word 0x20020228
8000214: 00000000 .word 0x00000000
8000218: 08012338 .word 0x08012338
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: 2002022c .word 0x2002022c
8000234: 08012338 .word 0x08012338
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: 4b11 ldr r3, [pc, #68] ; (80005a4 <Off+0x4c>)
800055e: 2200 movs r2, #0
8000560: 701a strb r2, [r3, #0]
BSP_LCD_DisplayOff();
8000562: f003 fe57 bl 8004214 <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: 480e ldr r0, [pc, #56] ; (80005a8 <Off+0x50>)
800056e: f00e fa8b bl 800ea88 <HAL_GPIO_WritePin>
while(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET);
8000572: bf00 nop
8000574: 2101 movs r1, #1
8000576: 480c ldr r0, [pc, #48] ; (80005a8 <Off+0x50>)
8000578: f00e fa6e bl 800ea58 <HAL_GPIO_ReadPin>
800057c: 4603 mov r3, r0
800057e: 2b01 cmp r3, #1
8000580: d0f8 beq.n 8000574 <Off+0x1c>
HAL_GPIO_WritePin(ON_GPIO_Port, ON_Pin, GPIO_PIN_RESET);
8000582: 2200 movs r2, #0
8000584: f44f 7180 mov.w r1, #256 ; 0x100
8000588: 4808 ldr r0, [pc, #32] ; (80005ac <Off+0x54>)
800058a: f00e fa7d bl 800ea88 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(ON1_GPIO_Port, ON1_Pin, GPIO_PIN_RESET);
800058e: 2200 movs r2, #0
8000590: 2120 movs r1, #32
8000592: 4806 ldr r0, [pc, #24] ; (80005ac <Off+0x54>)
8000594: f00e fa78 bl 800ea88 <HAL_GPIO_WritePin>
HAL_Delay(300);
8000598: f44f 7096 mov.w r0, #300 ; 0x12c
800059c: f00d fa8e bl 800dabc <HAL_Delay>
while(1);
80005a0: e7fe b.n 80005a0 <Off+0x48>
80005a2: bf00 nop
80005a4: 20020244 .word 0x20020244
80005a8: 40020000 .word 0x40020000
80005ac: 40021400 .word 0x40021400
080005b0 <MX_DMA2D_Init>:
DMA2D_HandleTypeDef hdma2d;
/* DMA2D init function */
void MX_DMA2D_Init(void)
{
80005b0: b580 push {r7, lr}
80005b2: af00 add r7, sp, #0
hdma2d.Instance = DMA2D;
80005b4: 4b18 ldr r3, [pc, #96] ; (8000618 <MX_DMA2D_Init+0x68>)
80005b6: 4a19 ldr r2, [pc, #100] ; (800061c <MX_DMA2D_Init+0x6c>)
80005b8: 601a str r2, [r3, #0]
hdma2d.Init.Mode = DMA2D_M2M;
80005ba: 4b17 ldr r3, [pc, #92] ; (8000618 <MX_DMA2D_Init+0x68>)
80005bc: 2200 movs r2, #0
80005be: 605a str r2, [r3, #4]
hdma2d.Init.ColorMode = DMA2D_OUTPUT_RGB565;
80005c0: 4b15 ldr r3, [pc, #84] ; (8000618 <MX_DMA2D_Init+0x68>)
80005c2: 2202 movs r2, #2
80005c4: 609a str r2, [r3, #8]
hdma2d.Init.OutputOffset = 0;
80005c6: 4b14 ldr r3, [pc, #80] ; (8000618 <MX_DMA2D_Init+0x68>)
80005c8: 2200 movs r2, #0
80005ca: 60da str r2, [r3, #12]
hdma2d.LayerCfg[1].InputOffset = 0;
80005cc: 4b12 ldr r3, [pc, #72] ; (8000618 <MX_DMA2D_Init+0x68>)
80005ce: 2200 movs r2, #0
80005d0: 639a str r2, [r3, #56] ; 0x38
hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_RGB565;
80005d2: 4b11 ldr r3, [pc, #68] ; (8000618 <MX_DMA2D_Init+0x68>)
80005d4: 2202 movs r2, #2
80005d6: 63da str r2, [r3, #60] ; 0x3c
hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
80005d8: 4b0f ldr r3, [pc, #60] ; (8000618 <MX_DMA2D_Init+0x68>)
80005da: 2200 movs r2, #0
80005dc: 641a str r2, [r3, #64] ; 0x40
hdma2d.LayerCfg[1].InputAlpha = 0;
80005de: 4b0e ldr r3, [pc, #56] ; (8000618 <MX_DMA2D_Init+0x68>)
80005e0: 2200 movs r2, #0
80005e2: 645a str r2, [r3, #68] ; 0x44
hdma2d.LayerCfg[1].AlphaInverted = DMA2D_REGULAR_ALPHA;
80005e4: 4b0c ldr r3, [pc, #48] ; (8000618 <MX_DMA2D_Init+0x68>)
80005e6: 2200 movs r2, #0
80005e8: 649a str r2, [r3, #72] ; 0x48
hdma2d.LayerCfg[1].RedBlueSwap = DMA2D_RB_REGULAR;
80005ea: 4b0b ldr r3, [pc, #44] ; (8000618 <MX_DMA2D_Init+0x68>)
80005ec: 2200 movs r2, #0
80005ee: 64da str r2, [r3, #76] ; 0x4c
if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
80005f0: 4809 ldr r0, [pc, #36] ; (8000618 <MX_DMA2D_Init+0x68>)
80005f2: f00d fde1 bl 800e1b8 <HAL_DMA2D_Init>
80005f6: 4603 mov r3, r0
80005f8: 2b00 cmp r3, #0
80005fa: d001 beq.n 8000600 <MX_DMA2D_Init+0x50>
{
Error_Handler();
80005fc: f004 ffcc bl 8005598 <Error_Handler>
}
if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
8000600: 2101 movs r1, #1
8000602: 4805 ldr r0, [pc, #20] ; (8000618 <MX_DMA2D_Init+0x68>)
8000604: f00d ff46 bl 800e494 <HAL_DMA2D_ConfigLayer>
8000608: 4603 mov r3, r0
800060a: 2b00 cmp r3, #0
800060c: d001 beq.n 8000612 <MX_DMA2D_Init+0x62>
{
Error_Handler();
800060e: f004 ffc3 bl 8005598 <Error_Handler>
}
}
8000612: bf00 nop
8000614: bd80 pop {r7, pc}
8000616: bf00 nop
8000618: 2006b498 .word 0x2006b498
800061c: 4002b000 .word 0x4002b000
08000620 <HAL_DMA2D_MspInit>:
void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef* dma2dHandle)
{
8000620: b480 push {r7}
8000622: b085 sub sp, #20
8000624: af00 add r7, sp, #0
8000626: 6078 str r0, [r7, #4]
if(dma2dHandle->Instance==DMA2D)
8000628: 687b ldr r3, [r7, #4]
800062a: 681b ldr r3, [r3, #0]
800062c: 4a0a ldr r2, [pc, #40] ; (8000658 <HAL_DMA2D_MspInit+0x38>)
800062e: 4293 cmp r3, r2
8000630: d10b bne.n 800064a <HAL_DMA2D_MspInit+0x2a>
{
/* USER CODE BEGIN DMA2D_MspInit 0 */
/* USER CODE END DMA2D_MspInit 0 */
/* DMA2D clock enable */
__HAL_RCC_DMA2D_CLK_ENABLE();
8000632: 4a0a ldr r2, [pc, #40] ; (800065c <HAL_DMA2D_MspInit+0x3c>)
8000634: 4b09 ldr r3, [pc, #36] ; (800065c <HAL_DMA2D_MspInit+0x3c>)
8000636: 6b1b ldr r3, [r3, #48] ; 0x30
8000638: f443 0300 orr.w r3, r3, #8388608 ; 0x800000
800063c: 6313 str r3, [r2, #48] ; 0x30
800063e: 4b07 ldr r3, [pc, #28] ; (800065c <HAL_DMA2D_MspInit+0x3c>)
8000640: 6b1b ldr r3, [r3, #48] ; 0x30
8000642: f403 0300 and.w r3, r3, #8388608 ; 0x800000
8000646: 60fb str r3, [r7, #12]
8000648: 68fb ldr r3, [r7, #12]
/* USER CODE BEGIN DMA2D_MspInit 1 */
/* USER CODE END DMA2D_MspInit 1 */
}
}
800064a: bf00 nop
800064c: 3714 adds r7, #20
800064e: 46bd mov sp, r7
8000650: f85d 7b04 ldr.w r7, [sp], #4
8000654: 4770 bx lr
8000656: bf00 nop
8000658: 4002b000 .word 0x4002b000
800065c: 40023800 .word 0x40023800
08000660 <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)
{
8000660: b580 push {r7, lr}
8000662: b08e sub sp, #56 ; 0x38
8000664: af00 add r7, sp, #0
GPIO_InitTypeDef GPIO_InitStruct;
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOE_CLK_ENABLE();
8000666: 4a73 ldr r2, [pc, #460] ; (8000834 <MX_GPIO_Init+0x1d4>)
8000668: 4b72 ldr r3, [pc, #456] ; (8000834 <MX_GPIO_Init+0x1d4>)
800066a: 6b1b ldr r3, [r3, #48] ; 0x30
800066c: f043 0310 orr.w r3, r3, #16
8000670: 6313 str r3, [r2, #48] ; 0x30
8000672: 4b70 ldr r3, [pc, #448] ; (8000834 <MX_GPIO_Init+0x1d4>)
8000674: 6b1b ldr r3, [r3, #48] ; 0x30
8000676: f003 0310 and.w r3, r3, #16
800067a: 623b str r3, [r7, #32]
800067c: 6a3b ldr r3, [r7, #32]
__HAL_RCC_GPIOC_CLK_ENABLE();
800067e: 4a6d ldr r2, [pc, #436] ; (8000834 <MX_GPIO_Init+0x1d4>)
8000680: 4b6c ldr r3, [pc, #432] ; (8000834 <MX_GPIO_Init+0x1d4>)
8000682: 6b1b ldr r3, [r3, #48] ; 0x30
8000684: f043 0304 orr.w r3, r3, #4
8000688: 6313 str r3, [r2, #48] ; 0x30
800068a: 4b6a ldr r3, [pc, #424] ; (8000834 <MX_GPIO_Init+0x1d4>)
800068c: 6b1b ldr r3, [r3, #48] ; 0x30
800068e: f003 0304 and.w r3, r3, #4
8000692: 61fb str r3, [r7, #28]
8000694: 69fb ldr r3, [r7, #28]
__HAL_RCC_GPIOF_CLK_ENABLE();
8000696: 4a67 ldr r2, [pc, #412] ; (8000834 <MX_GPIO_Init+0x1d4>)
8000698: 4b66 ldr r3, [pc, #408] ; (8000834 <MX_GPIO_Init+0x1d4>)
800069a: 6b1b ldr r3, [r3, #48] ; 0x30
800069c: f043 0320 orr.w r3, r3, #32
80006a0: 6313 str r3, [r2, #48] ; 0x30
80006a2: 4b64 ldr r3, [pc, #400] ; (8000834 <MX_GPIO_Init+0x1d4>)
80006a4: 6b1b ldr r3, [r3, #48] ; 0x30
80006a6: f003 0320 and.w r3, r3, #32
80006aa: 61bb str r3, [r7, #24]
80006ac: 69bb ldr r3, [r7, #24]
__HAL_RCC_GPIOH_CLK_ENABLE();
80006ae: 4a61 ldr r2, [pc, #388] ; (8000834 <MX_GPIO_Init+0x1d4>)
80006b0: 4b60 ldr r3, [pc, #384] ; (8000834 <MX_GPIO_Init+0x1d4>)
80006b2: 6b1b ldr r3, [r3, #48] ; 0x30
80006b4: f043 0380 orr.w r3, r3, #128 ; 0x80
80006b8: 6313 str r3, [r2, #48] ; 0x30
80006ba: 4b5e ldr r3, [pc, #376] ; (8000834 <MX_GPIO_Init+0x1d4>)
80006bc: 6b1b ldr r3, [r3, #48] ; 0x30
80006be: f003 0380 and.w r3, r3, #128 ; 0x80
80006c2: 617b str r3, [r7, #20]
80006c4: 697b ldr r3, [r7, #20]
__HAL_RCC_GPIOA_CLK_ENABLE();
80006c6: 4a5b ldr r2, [pc, #364] ; (8000834 <MX_GPIO_Init+0x1d4>)
80006c8: 4b5a ldr r3, [pc, #360] ; (8000834 <MX_GPIO_Init+0x1d4>)
80006ca: 6b1b ldr r3, [r3, #48] ; 0x30
80006cc: f043 0301 orr.w r3, r3, #1
80006d0: 6313 str r3, [r2, #48] ; 0x30
80006d2: 4b58 ldr r3, [pc, #352] ; (8000834 <MX_GPIO_Init+0x1d4>)
80006d4: 6b1b ldr r3, [r3, #48] ; 0x30
80006d6: f003 0301 and.w r3, r3, #1
80006da: 613b str r3, [r7, #16]
80006dc: 693b ldr r3, [r7, #16]
__HAL_RCC_GPIOB_CLK_ENABLE();
80006de: 4a55 ldr r2, [pc, #340] ; (8000834 <MX_GPIO_Init+0x1d4>)
80006e0: 4b54 ldr r3, [pc, #336] ; (8000834 <MX_GPIO_Init+0x1d4>)
80006e2: 6b1b ldr r3, [r3, #48] ; 0x30
80006e4: f043 0302 orr.w r3, r3, #2
80006e8: 6313 str r3, [r2, #48] ; 0x30
80006ea: 4b52 ldr r3, [pc, #328] ; (8000834 <MX_GPIO_Init+0x1d4>)
80006ec: 6b1b ldr r3, [r3, #48] ; 0x30
80006ee: f003 0302 and.w r3, r3, #2
80006f2: 60fb str r3, [r7, #12]
80006f4: 68fb ldr r3, [r7, #12]
__HAL_RCC_GPIOG_CLK_ENABLE();
80006f6: 4a4f ldr r2, [pc, #316] ; (8000834 <MX_GPIO_Init+0x1d4>)
80006f8: 4b4e ldr r3, [pc, #312] ; (8000834 <MX_GPIO_Init+0x1d4>)
80006fa: 6b1b ldr r3, [r3, #48] ; 0x30
80006fc: f043 0340 orr.w r3, r3, #64 ; 0x40
8000700: 6313 str r3, [r2, #48] ; 0x30
8000702: 4b4c ldr r3, [pc, #304] ; (8000834 <MX_GPIO_Init+0x1d4>)
8000704: 6b1b ldr r3, [r3, #48] ; 0x30
8000706: f003 0340 and.w r3, r3, #64 ; 0x40
800070a: 60bb str r3, [r7, #8]
800070c: 68bb ldr r3, [r7, #8]
__HAL_RCC_GPIOD_CLK_ENABLE();
800070e: 4a49 ldr r2, [pc, #292] ; (8000834 <MX_GPIO_Init+0x1d4>)
8000710: 4b48 ldr r3, [pc, #288] ; (8000834 <MX_GPIO_Init+0x1d4>)
8000712: 6b1b ldr r3, [r3, #48] ; 0x30
8000714: f043 0308 orr.w r3, r3, #8
8000718: 6313 str r3, [r2, #48] ; 0x30
800071a: 4b46 ldr r3, [pc, #280] ; (8000834 <MX_GPIO_Init+0x1d4>)
800071c: 6b1b ldr r3, [r3, #48] ; 0x30
800071e: f003 0308 and.w r3, r3, #8
8000722: 607b str r3, [r7, #4]
8000724: 687b ldr r3, [r7, #4]
HAL_GPIO_WritePin(GPIOE, (U1_Pin | U2_Pin | U3_Pin), GPIO_PIN_SET);
8000726: 2201 movs r2, #1
8000728: 2138 movs r1, #56 ; 0x38
800072a: 4843 ldr r0, [pc, #268] ; (8000838 <MX_GPIO_Init+0x1d8>)
800072c: f00e f9ac bl 800ea88 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(ON_GPIO_Port, ON_Pin, GPIO_PIN_SET);
8000730: 2201 movs r2, #1
8000732: f44f 7180 mov.w r1, #256 ; 0x100
8000736: 4841 ldr r0, [pc, #260] ; (800083c <MX_GPIO_Init+0x1dc>)
8000738: f00e f9a6 bl 800ea88 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_SET);
800073c: 2201 movs r2, #1
800073e: 2140 movs r1, #64 ; 0x40
8000740: 483f ldr r0, [pc, #252] ; (8000840 <MX_GPIO_Init+0x1e0>)
8000742: f00e f9a1 bl 800ea88 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_SET);
8000746: 2201 movs r2, #1
8000748: f44f 7180 mov.w r1, #256 ; 0x100
800074c: 483d ldr r0, [pc, #244] ; (8000844 <MX_GPIO_Init+0x1e4>)
800074e: f00e f99b bl 800ea88 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8000752: 2200 movs r2, #0
8000754: f44f 7100 mov.w r1, #512 ; 0x200
8000758: 4838 ldr r0, [pc, #224] ; (800083c <MX_GPIO_Init+0x1dc>)
800075a: f00e f995 bl 800ea88 <HAL_GPIO_WritePin>
/*Configure GPIO pins : PEPin PEPin PEPin */
GPIO_InitStruct.Pin = U1_Pin|U2_Pin|U3_Pin;
800075e: 2338 movs r3, #56 ; 0x38
8000760: 627b str r3, [r7, #36] ; 0x24
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
8000762: 2301 movs r3, #1
8000764: 62bb str r3, [r7, #40] ; 0x28
GPIO_InitStruct.Pull = GPIO_PULLUP;
8000766: 2301 movs r3, #1
8000768: 62fb str r3, [r7, #44] ; 0x2c
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
800076a: 2303 movs r3, #3
800076c: 633b str r3, [r7, #48] ; 0x30
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
800076e: f107 0324 add.w r3, r7, #36 ; 0x24
8000772: 4619 mov r1, r3
8000774: 4830 ldr r0, [pc, #192] ; (8000838 <MX_GPIO_Init+0x1d8>)
8000776: f00d ffc5 bl 800e704 <HAL_GPIO_Init>
/*Configure GPIO pins : PAPin PAPin */
GPIO_InitStruct.Pin = K1_Pin;
800077a: f44f 7300 mov.w r3, #512 ; 0x200
800077e: 627b str r3, [r7, #36] ; 0x24
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
8000780: 2300 movs r3, #0
8000782: 62bb str r3, [r7, #40] ; 0x28
GPIO_InitStruct.Pull = GPIO_PULLUP;
8000784: 2301 movs r3, #1
8000786: 62fb str r3, [r7, #44] ; 0x2c
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
8000788: 2302 movs r3, #2
800078a: 633b str r3, [r7, #48] ; 0x30
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
800078c: f107 0324 add.w r3, r7, #36 ; 0x24
8000790: 4619 mov r1, r3
8000792: 482c ldr r0, [pc, #176] ; (8000844 <MX_GPIO_Init+0x1e4>)
8000794: f00d ffb6 bl 800e704 <HAL_GPIO_Init>
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = ON_Pin | ON1_Pin | RE_Pin;
8000798: f44f 7348 mov.w r3, #800 ; 0x320
800079c: 627b str r3, [r7, #36] ; 0x24
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
800079e: 2301 movs r3, #1
80007a0: 62bb str r3, [r7, #40] ; 0x28
GPIO_InitStruct.Pull = GPIO_NOPULL;
80007a2: 2300 movs r3, #0
80007a4: 62fb str r3, [r7, #44] ; 0x2c
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
80007a6: 2302 movs r3, #2
80007a8: 633b str r3, [r7, #48] ; 0x30
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
80007aa: f107 0324 add.w r3, r7, #36 ; 0x24
80007ae: 4619 mov r1, r3
80007b0: 4822 ldr r0, [pc, #136] ; (800083c <MX_GPIO_Init+0x1dc>)
80007b2: f00d ffa7 bl 800e704 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = DISP_ON_Pin;
80007b6: f44f 7380 mov.w r3, #256 ; 0x100
80007ba: 627b str r3, [r7, #36] ; 0x24
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
80007bc: 2301 movs r3, #1
80007be: 62bb str r3, [r7, #40] ; 0x28
GPIO_InitStruct.Pull = GPIO_NOPULL;
80007c0: 2300 movs r3, #0
80007c2: 62fb str r3, [r7, #44] ; 0x2c
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
80007c4: 2302 movs r3, #2
80007c6: 633b str r3, [r7, #48] ; 0x30
HAL_GPIO_Init(DISP_ON_GPIO_Port, &GPIO_InitStruct);
80007c8: f107 0324 add.w r3, r7, #36 ; 0x24
80007cc: 4619 mov r1, r3
80007ce: 481d ldr r0, [pc, #116] ; (8000844 <MX_GPIO_Init+0x1e4>)
80007d0: f00d ff98 bl 800e704 <HAL_GPIO_Init>
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = OFF_Pin;
80007d4: 2301 movs r3, #1
80007d6: 627b str r3, [r7, #36] ; 0x24
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
80007d8: 2300 movs r3, #0
80007da: 62bb str r3, [r7, #40] ; 0x28
GPIO_InitStruct.Pull = GPIO_NOPULL;
80007dc: 2300 movs r3, #0
80007de: 62fb str r3, [r7, #44] ; 0x2c
HAL_GPIO_Init(OFF_GPIO_Port, &GPIO_InitStruct);
80007e0: f107 0324 add.w r3, r7, #36 ; 0x24
80007e4: 4619 mov r1, r3
80007e6: 4817 ldr r0, [pc, #92] ; (8000844 <MX_GPIO_Init+0x1e4>)
80007e8: f00d ff8c bl 800e704 <HAL_GPIO_Init>
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = RESET_Pin;
80007ec: 2340 movs r3, #64 ; 0x40
80007ee: 627b str r3, [r7, #36] ; 0x24
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
80007f0: 2301 movs r3, #1
80007f2: 62bb str r3, [r7, #40] ; 0x28
GPIO_InitStruct.Pull = GPIO_NOPULL;
80007f4: 2300 movs r3, #0
80007f6: 62fb str r3, [r7, #44] ; 0x2c
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
80007f8: 2302 movs r3, #2
80007fa: 633b str r3, [r7, #48] ; 0x30
HAL_GPIO_Init(RESET_GPIO_Port, &GPIO_InitStruct);
80007fc: f107 0324 add.w r3, r7, #36 ; 0x24
8000800: 4619 mov r1, r3
8000802: 480f ldr r0, [pc, #60] ; (8000840 <MX_GPIO_Init+0x1e0>)
8000804: f00d ff7e bl 800e704 <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);
8000808: 2201 movs r2, #1
800080a: f44f 7180 mov.w r1, #256 ; 0x100
800080e: 480b ldr r0, [pc, #44] ; (800083c <MX_GPIO_Init+0x1dc>)
8000810: f00e f93a bl 800ea88 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(ON1_GPIO_Port, ON1_Pin, GPIO_PIN_SET);
8000814: 2201 movs r2, #1
8000816: 2120 movs r1, #32
8000818: 4808 ldr r0, [pc, #32] ; (800083c <MX_GPIO_Init+0x1dc>)
800081a: f00e f935 bl 800ea88 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_SET); // BACKLIGHT IS OFF
800081e: 2201 movs r2, #1
8000820: f44f 7180 mov.w r1, #256 ; 0x100
8000824: 4807 ldr r0, [pc, #28] ; (8000844 <MX_GPIO_Init+0x1e4>)
8000826: f00e f92f bl 800ea88 <HAL_GPIO_WritePin>
}
800082a: bf00 nop
800082c: 3738 adds r7, #56 ; 0x38
800082e: 46bd mov sp, r7
8000830: bd80 pop {r7, pc}
8000832: bf00 nop
8000834: 40023800 .word 0x40023800
8000838: 40021000 .word 0x40021000
800083c: 40021400 .word 0x40021400
8000840: 40020c00 .word 0x40020c00
8000844: 40020000 .word 0x40020000
08000848 <initKeys>:
void initKeys(void)
{
8000848: b580 push {r7, lr}
800084a: af00 add r7, sp, #0
KeysIsReady = false;
800084c: 4b09 ldr r3, [pc, #36] ; (8000874 <initKeys+0x2c>)
800084e: 2200 movs r2, #0
8000850: 701a strb r2, [r3, #0]
HAL_GPIO_WritePin(U1_GPIO_Port, U1_Pin, GPIO_PIN_SET);
8000852: 2201 movs r2, #1
8000854: 2108 movs r1, #8
8000856: 4808 ldr r0, [pc, #32] ; (8000878 <initKeys+0x30>)
8000858: f00e f916 bl 800ea88 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(U2_GPIO_Port, U2_Pin, GPIO_PIN_SET);
800085c: 2201 movs r2, #1
800085e: 2110 movs r1, #16
8000860: 4805 ldr r0, [pc, #20] ; (8000878 <initKeys+0x30>)
8000862: f00e f911 bl 800ea88 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(U3_GPIO_Port, U3_Pin, GPIO_PIN_SET);
8000866: 2201 movs r2, #1
8000868: 2120 movs r1, #32
800086a: 4803 ldr r0, [pc, #12] ; (8000878 <initKeys+0x30>)
800086c: f00e f90c bl 800ea88 <HAL_GPIO_WritePin>
}
8000870: bf00 nop
8000872: bd80 pop {r7, pc}
8000874: 20020248 .word 0x20020248
8000878: 40021000 .word 0x40021000
0800087c <readkey>:
uint32_t readkey(void)
{
800087c: b580 push {r7, lr}
800087e: b082 sub sp, #8
8000880: af00 add r7, sp, #0
uint32_t key = 0;
8000882: 2300 movs r3, #0
8000884: 607b str r3, [r7, #4]
if(KeysIsReady == false){
8000886: 4b34 ldr r3, [pc, #208] ; (8000958 <readkey+0xdc>)
8000888: 781b ldrb r3, [r3, #0]
800088a: b2db uxtb r3, r3
800088c: f083 0301 eor.w r3, r3, #1
8000890: b2db uxtb r3, r3
8000892: 2b00 cmp r3, #0
8000894: d001 beq.n 800089a <readkey+0x1e>
return 0;
8000896: 2300 movs r3, #0
8000898: e05a b.n 8000950 <readkey+0xd4>
}
if(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET) {
800089a: 2101 movs r1, #1
800089c: 482f ldr r0, [pc, #188] ; (800095c <readkey+0xe0>)
800089e: f00e f8db bl 800ea58 <HAL_GPIO_ReadPin>
80008a2: 4603 mov r3, r0
80008a4: 2b01 cmp r3, #1
80008a6: d101 bne.n 80008ac <readkey+0x30>
key = KEY_PW;
80008a8: 2301 movs r3, #1
80008aa: 607b str r3, [r7, #4]
}
HAL_GPIO_WritePin(U1_GPIO_Port, U1_Pin, GPIO_PIN_SET);
80008ac: 2201 movs r2, #1
80008ae: 2108 movs r1, #8
80008b0: 482b ldr r0, [pc, #172] ; (8000960 <readkey+0xe4>)
80008b2: f00e f8e9 bl 800ea88 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(U2_GPIO_Port, U2_Pin, GPIO_PIN_SET);
80008b6: 2201 movs r2, #1
80008b8: 2110 movs r1, #16
80008ba: 4829 ldr r0, [pc, #164] ; (8000960 <readkey+0xe4>)
80008bc: f00e f8e4 bl 800ea88 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(U3_GPIO_Port, U3_Pin, GPIO_PIN_SET);
80008c0: 2201 movs r2, #1
80008c2: 2120 movs r1, #32
80008c4: 4826 ldr r0, [pc, #152] ; (8000960 <readkey+0xe4>)
80008c6: f00e f8df bl 800ea88 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(U1_GPIO_Port, U1_Pin, GPIO_PIN_RESET);
80008ca: 2200 movs r2, #0
80008cc: 2108 movs r1, #8
80008ce: 4824 ldr r0, [pc, #144] ; (8000960 <readkey+0xe4>)
80008d0: f00e f8da bl 800ea88 <HAL_GPIO_WritePin>
if(HAL_GPIO_ReadPin(K1_GPIO_Port, K1_Pin) == GPIO_PIN_RESET) {
80008d4: f44f 7100 mov.w r1, #512 ; 0x200
80008d8: 4820 ldr r0, [pc, #128] ; (800095c <readkey+0xe0>)
80008da: f00e f8bd bl 800ea58 <HAL_GPIO_ReadPin>
80008de: 4603 mov r3, r0
80008e0: 2b00 cmp r3, #0
80008e2: d103 bne.n 80008ec <readkey+0x70>
key |= KEY_DN;
80008e4: 687b ldr r3, [r7, #4]
80008e6: f043 0304 orr.w r3, r3, #4
80008ea: 607b str r3, [r7, #4]
}
HAL_GPIO_WritePin(U1_GPIO_Port, U1_Pin, GPIO_PIN_SET);
80008ec: 2201 movs r2, #1
80008ee: 2108 movs r1, #8
80008f0: 481b ldr r0, [pc, #108] ; (8000960 <readkey+0xe4>)
80008f2: f00e f8c9 bl 800ea88 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(U2_GPIO_Port, U2_Pin, GPIO_PIN_RESET);
80008f6: 2200 movs r2, #0
80008f8: 2110 movs r1, #16
80008fa: 4819 ldr r0, [pc, #100] ; (8000960 <readkey+0xe4>)
80008fc: f00e f8c4 bl 800ea88 <HAL_GPIO_WritePin>
if(HAL_GPIO_ReadPin(K1_GPIO_Port, K1_Pin) == GPIO_PIN_RESET) {
8000900: f44f 7100 mov.w r1, #512 ; 0x200
8000904: 4815 ldr r0, [pc, #84] ; (800095c <readkey+0xe0>)
8000906: f00e f8a7 bl 800ea58 <HAL_GPIO_ReadPin>
800090a: 4603 mov r3, r0
800090c: 2b00 cmp r3, #0
800090e: d103 bne.n 8000918 <readkey+0x9c>
key |= KEY_OK;
8000910: 687b ldr r3, [r7, #4]
8000912: f043 0320 orr.w r3, r3, #32
8000916: 607b str r3, [r7, #4]
}
HAL_GPIO_WritePin(U2_GPIO_Port, U2_Pin, GPIO_PIN_SET);
8000918: 2201 movs r2, #1
800091a: 2110 movs r1, #16
800091c: 4810 ldr r0, [pc, #64] ; (8000960 <readkey+0xe4>)
800091e: f00e f8b3 bl 800ea88 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(U3_GPIO_Port, U3_Pin, GPIO_PIN_RESET);
8000922: 2200 movs r2, #0
8000924: 2120 movs r1, #32
8000926: 480e ldr r0, [pc, #56] ; (8000960 <readkey+0xe4>)
8000928: f00e f8ae bl 800ea88 <HAL_GPIO_WritePin>
if(HAL_GPIO_ReadPin(K1_GPIO_Port, K1_Pin) == GPIO_PIN_RESET) {
800092c: f44f 7100 mov.w r1, #512 ; 0x200
8000930: 480a ldr r0, [pc, #40] ; (800095c <readkey+0xe0>)
8000932: f00e f891 bl 800ea58 <HAL_GPIO_ReadPin>
8000936: 4603 mov r3, r0
8000938: 2b00 cmp r3, #0
800093a: d103 bne.n 8000944 <readkey+0xc8>
key |= KEY_UP;
800093c: 687b ldr r3, [r7, #4]
800093e: f043 0302 orr.w r3, r3, #2
8000942: 607b str r3, [r7, #4]
}
HAL_GPIO_WritePin(U3_GPIO_Port, U3_Pin, GPIO_PIN_SET);
8000944: 2201 movs r2, #1
8000946: 2120 movs r1, #32
8000948: 4805 ldr r0, [pc, #20] ; (8000960 <readkey+0xe4>)
800094a: f00e f89d bl 800ea88 <HAL_GPIO_WritePin>
return key;
800094e: 687b ldr r3, [r7, #4]
}
8000950: 4618 mov r0, r3
8000952: 3708 adds r7, #8
8000954: 46bd mov sp, r7
8000956: bd80 pop {r7, pc}
8000958: 20020248 .word 0x20020248
800095c: 40020000 .word 0x40020000
8000960: 40021000 .word 0x40021000
08000964 <kbhit>:
uint32_t kbhit(void)
{
8000964: b580 push {r7, lr}
8000966: b082 sub sp, #8
8000968: af00 add r7, sp, #0
volatile uint32_t key = 0;;
800096a: 2300 movs r3, #0
800096c: 607b str r3, [r7, #4]
static uint16_t rep = 50;
do
{
key = readkey();
800096e: f7ff ff85 bl 800087c <readkey>
8000972: 4603 mov r3, r0
8000974: 607b str r3, [r7, #4]
if(!key)
8000976: 687b ldr r3, [r7, #4]
8000978: 2b00 cmp r3, #0
800097a: d10d bne.n 8000998 <kbhit+0x34>
{
if(dreb) dreb--;
800097c: 4b43 ldr r3, [pc, #268] ; (8000a8c <kbhit+0x128>)
800097e: 681b ldr r3, [r3, #0]
8000980: 2b00 cmp r3, #0
8000982: d005 beq.n 8000990 <kbhit+0x2c>
8000984: 4b41 ldr r3, [pc, #260] ; (8000a8c <kbhit+0x128>)
8000986: 681b ldr r3, [r3, #0]
8000988: 3b01 subs r3, #1
800098a: 4a40 ldr r2, [pc, #256] ; (8000a8c <kbhit+0x128>)
800098c: 6013 str r3, [r2, #0]
800098e: e00c b.n 80009aa <kbhit+0x46>
else first = 1;
8000990: 4b3f ldr r3, [pc, #252] ; (8000a90 <kbhit+0x12c>)
8000992: 2201 movs r2, #1
8000994: 701a strb r2, [r3, #0]
8000996: e008 b.n 80009aa <kbhit+0x46>
}
else
{
if(dreb < KEY_DBZ)
8000998: 4b3c ldr r3, [pc, #240] ; (8000a8c <kbhit+0x128>)
800099a: 681b ldr r3, [r3, #0]
800099c: 2b01 cmp r3, #1
800099e: d804 bhi.n 80009aa <kbhit+0x46>
dreb++;
80009a0: 4b3a ldr r3, [pc, #232] ; (8000a8c <kbhit+0x128>)
80009a2: 681b ldr r3, [r3, #0]
80009a4: 3301 adds r3, #1
80009a6: 4a39 ldr r2, [pc, #228] ; (8000a8c <kbhit+0x128>)
80009a8: 6013 str r3, [r2, #0]
}
}
while((dreb > 0) && (dreb < KEY_DBZ));
80009aa: 4b38 ldr r3, [pc, #224] ; (8000a8c <kbhit+0x128>)
80009ac: 681b ldr r3, [r3, #0]
80009ae: 2b00 cmp r3, #0
80009b0: d003 beq.n 80009ba <kbhit+0x56>
80009b2: 4b36 ldr r3, [pc, #216] ; (8000a8c <kbhit+0x128>)
80009b4: 681b ldr r3, [r3, #0]
80009b6: 2b01 cmp r3, #1
80009b8: d9d9 bls.n 800096e <kbhit+0xa>
if(key == KEY_PW)
80009ba: 687b ldr r3, [r7, #4]
80009bc: 2b01 cmp r3, #1
80009be: d129 bne.n 8000a14 <kbhit+0xb0>
{
do
{
key = readkey();
80009c0: f7ff ff5c bl 800087c <readkey>
80009c4: 4603 mov r3, r0
80009c6: 607b str r3, [r7, #4]
if(!key)
80009c8: 687b ldr r3, [r7, #4]
80009ca: 2b00 cmp r3, #0
80009cc: d10d bne.n 80009ea <kbhit+0x86>
{
if(dreb) dreb--;
80009ce: 4b2f ldr r3, [pc, #188] ; (8000a8c <kbhit+0x128>)
80009d0: 681b ldr r3, [r3, #0]
80009d2: 2b00 cmp r3, #0
80009d4: d005 beq.n 80009e2 <kbhit+0x7e>
80009d6: 4b2d ldr r3, [pc, #180] ; (8000a8c <kbhit+0x128>)
80009d8: 681b ldr r3, [r3, #0]
80009da: 3b01 subs r3, #1
80009dc: 4a2b ldr r2, [pc, #172] ; (8000a8c <kbhit+0x128>)
80009de: 6013 str r3, [r2, #0]
80009e0: e00e b.n 8000a00 <kbhit+0x9c>
else first = 1;
80009e2: 4b2b ldr r3, [pc, #172] ; (8000a90 <kbhit+0x12c>)
80009e4: 2201 movs r2, #1
80009e6: 701a strb r2, [r3, #0]
80009e8: e00a b.n 8000a00 <kbhit+0x9c>
}
else
{
if(dreb < 50000)
80009ea: 4b28 ldr r3, [pc, #160] ; (8000a8c <kbhit+0x128>)
80009ec: 681b ldr r3, [r3, #0]
80009ee: f24c 324f movw r2, #49999 ; 0xc34f
80009f2: 4293 cmp r3, r2
80009f4: d804 bhi.n 8000a00 <kbhit+0x9c>
dreb++;
80009f6: 4b25 ldr r3, [pc, #148] ; (8000a8c <kbhit+0x128>)
80009f8: 681b ldr r3, [r3, #0]
80009fa: 3301 adds r3, #1
80009fc: 4a23 ldr r2, [pc, #140] ; (8000a8c <kbhit+0x128>)
80009fe: 6013 str r3, [r2, #0]
}
}
while((dreb > 0) && (dreb < 50000));
8000a00: 4b22 ldr r3, [pc, #136] ; (8000a8c <kbhit+0x128>)
8000a02: 681b ldr r3, [r3, #0]
8000a04: 2b00 cmp r3, #0
8000a06: d005 beq.n 8000a14 <kbhit+0xb0>
8000a08: 4b20 ldr r3, [pc, #128] ; (8000a8c <kbhit+0x128>)
8000a0a: 681b ldr r3, [r3, #0]
8000a0c: f24c 324f movw r2, #49999 ; 0xc34f
8000a10: 4293 cmp r3, r2
8000a12: d9d5 bls.n 80009c0 <kbhit+0x5c>
if(!key) //<2F><><E5><F1> <20><><EA><ED><EE><EF> <20><><EE><F2><EF><F3><F9><E5>
8000a14: 687b ldr r3, [r7, #4]
8000a16: 2b00 cmp r3, #0
8000a18: d104 bne.n 8000a24 <kbhit+0xc0>
{
first = 1; //<2F><><E4><EE><F1><F2><EE><E2><E5><F0> <20><><EA><ED><EE><EF> <20><><EE><F2><EF><F3><F9><E5>
8000a1a: 4b1d ldr r3, [pc, #116] ; (8000a90 <kbhit+0x12c>)
8000a1c: 2201 movs r2, #1
8000a1e: 701a strb r2, [r3, #0]
return 0; //<2F><><E2><E5><F0><ED><F3> 0
8000a20: 2300 movs r3, #0
8000a22: e02f b.n 8000a84 <kbhit+0x120>
}
else //<2F><><E8><ED><E0>
{
if(first) //<2F><><EE><EF><F0><E5><E4><E5><EB><E8> <20><><EA><ED><EE><EF>
8000a24: 4b1a ldr r3, [pc, #104] ; (8000a90 <kbhit+0x12c>)
8000a26: 781b ldrb r3, [r3, #0]
8000a28: 2b00 cmp r3, #0
8000a2a: d00c beq.n 8000a46 <kbhit+0xe2>
{ //<2F><><F2><EE><EB><FC> <20><><EE><E4> <20><><F0>
first = 0; //<2F><> <20><><ED><E0><E6><E0><F2>
8000a2c: 4b18 ldr r3, [pc, #96] ; (8000a90 <kbhit+0x12c>)
8000a2e: 2200 movs r2, #0
8000a30: 701a strb r2, [r3, #0]
repeat = rep = 2000;
8000a32: 4b18 ldr r3, [pc, #96] ; (8000a94 <kbhit+0x130>)
8000a34: f44f 62fa mov.w r2, #2000 ; 0x7d0
8000a38: 801a strh r2, [r3, #0]
8000a3a: 4b16 ldr r3, [pc, #88] ; (8000a94 <kbhit+0x130>)
8000a3c: 881a ldrh r2, [r3, #0]
8000a3e: 4b16 ldr r3, [pc, #88] ; (8000a98 <kbhit+0x134>)
8000a40: 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>
8000a42: 687b ldr r3, [r7, #4]
8000a44: e01e b.n 8000a84 <kbhit+0x120>
}
else
{
if(repeat)
8000a46: 4b14 ldr r3, [pc, #80] ; (8000a98 <kbhit+0x134>)
8000a48: 881b ldrh r3, [r3, #0]
8000a4a: b29b uxth r3, r3
8000a4c: 2b00 cmp r3, #0
8000a4e: d001 beq.n 8000a54 <kbhit+0xf0>
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>
8000a50: 2300 movs r3, #0
8000a52: e017 b.n 8000a84 <kbhit+0x120>
else
{
if(rep > 0)
8000a54: 4b0f ldr r3, [pc, #60] ; (8000a94 <kbhit+0x130>)
8000a56: 881b ldrh r3, [r3, #0]
8000a58: 2b00 cmp r3, #0
8000a5a: d006 beq.n 8000a6a <kbhit+0x106>
rep >>= 1;
8000a5c: 4b0d ldr r3, [pc, #52] ; (8000a94 <kbhit+0x130>)
8000a5e: 881b ldrh r3, [r3, #0]
8000a60: 085b lsrs r3, r3, #1
8000a62: b29a uxth r2, r3
8000a64: 4b0b ldr r3, [pc, #44] ; (8000a94 <kbhit+0x130>)
8000a66: 801a strh r2, [r3, #0]
8000a68: e002 b.n 8000a70 <kbhit+0x10c>
else rep = 100;
8000a6a: 4b0a ldr r3, [pc, #40] ; (8000a94 <kbhit+0x130>)
8000a6c: 2264 movs r2, #100 ; 0x64
8000a6e: 801a strh r2, [r3, #0]
repeat = rep;
8000a70: 4b08 ldr r3, [pc, #32] ; (8000a94 <kbhit+0x130>)
8000a72: 881a ldrh r2, [r3, #0]
8000a74: 4b08 ldr r3, [pc, #32] ; (8000a98 <kbhit+0x134>)
8000a76: 801a strh r2, [r3, #0]
if(key == KEY_PW)
8000a78: 687b ldr r3, [r7, #4]
8000a7a: 2b01 cmp r3, #1
8000a7c: d101 bne.n 8000a82 <kbhit+0x11e>
return 0;
8000a7e: 2300 movs r3, #0
8000a80: e000 b.n 8000a84 <kbhit+0x120>
return key;
8000a82: 687b ldr r3, [r7, #4]
}
}
}
}
8000a84: 4618 mov r0, r3
8000a86: 3708 adds r7, #8
8000a88: 46bd mov sp, r7
8000a8a: bd80 pop {r7, pc}
8000a8c: 20020254 .word 0x20020254
8000a90: 20020011 .word 0x20020011
8000a94: 20020012 .word 0x20020012
8000a98: 20020246 .word 0x20020246
08000a9c <keyIns>:
void keyIns(void)
{
8000a9c: b580 push {r7, lr}
8000a9e: b09e sub sp, #120 ; 0x78
8000aa0: 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};
8000aa2: f04f 0300 mov.w r3, #0
8000aa6: 613b str r3, [r7, #16]
8000aa8: f04f 0300 mov.w r3, #0
8000aac: 617b str r3, [r7, #20]
8000aae: f04f 0300 mov.w r3, #0
8000ab2: 61bb str r3, [r7, #24]
float32_t ff[3] = {0, 0, 0};
8000ab4: f04f 0300 mov.w r3, #0
8000ab8: 607b str r3, [r7, #4]
8000aba: f04f 0300 mov.w r3, #0
8000abe: 60bb str r3, [r7, #8]
8000ac0: f04f 0300 mov.w r3, #0
8000ac4: 60fb str r3, [r7, #12]
float64_t f64;
uint8_t tmp8;
key = KEY_STATE;
8000ac6: 4bad ldr r3, [pc, #692] ; (8000d7c <keyIns+0x2e0>)
8000ac8: 681b ldr r3, [r3, #0]
8000aca: 677b str r3, [r7, #116] ; 0x74
KEY_STATE = 0;
8000acc: 4bab ldr r3, [pc, #684] ; (8000d7c <keyIns+0x2e0>)
8000ace: 2200 movs r2, #0
8000ad0: 601a str r2, [r3, #0]
if(key)
8000ad2: 6f7b ldr r3, [r7, #116] ; 0x74
8000ad4: 2b00 cmp r3, #0
8000ad6: f000 8570 beq.w 80015ba <keyIns+0xb1e>
{
if(DrawStatus)
8000ada: 4ba9 ldr r3, [pc, #676] ; (8000d80 <keyIns+0x2e4>)
8000adc: 781b ldrb r3, [r3, #0]
8000ade: b2db uxtb r3, r3
8000ae0: 2b00 cmp r3, #0
8000ae2: d00a beq.n 8000afa <keyIns+0x5e>
{
DrawStatus = false;
8000ae4: 4ba6 ldr r3, [pc, #664] ; (8000d80 <keyIns+0x2e4>)
8000ae6: 2200 movs r2, #0
8000ae8: 701a strb r2, [r3, #0]
timerStatus = 0;
8000aea: 4ba6 ldr r3, [pc, #664] ; (8000d84 <keyIns+0x2e8>)
8000aec: 2200 movs r2, #0
8000aee: 801a strh r2, [r3, #0]
STATUS = AP_OK;
8000af0: 4ba5 ldr r3, [pc, #660] ; (8000d88 <keyIns+0x2ec>)
8000af2: 2200 movs r2, #0
8000af4: 601a str r2, [r3, #0]
8000af6: f000 bd60 b.w 80015ba <keyIns+0xb1e>
return;
}
switch(key)
8000afa: 6f7b ldr r3, [r7, #116] ; 0x74
8000afc: 3b01 subs r3, #1
8000afe: 2b1f cmp r3, #31
8000b00: f200 855b bhi.w 80015ba <keyIns+0xb1e>
8000b04: a201 add r2, pc, #4 ; (adr r2, 8000b0c <keyIns+0x70>)
8000b06: f852 f023 ldr.w pc, [r2, r3, lsl #2]
8000b0a: bf00 nop
8000b0c: 0800158f .word 0x0800158f
8000b10: 08000b8d .word 0x08000b8d
8000b14: 080015bb .word 0x080015bb
8000b18: 0800103d .word 0x0800103d
8000b1c: 080015bb .word 0x080015bb
8000b20: 080015bb .word 0x080015bb
8000b24: 080015bb .word 0x080015bb
8000b28: 080015bb .word 0x080015bb
8000b2c: 080015bb .word 0x080015bb
8000b30: 080015bb .word 0x080015bb
8000b34: 080015bb .word 0x080015bb
8000b38: 080015bb .word 0x080015bb
8000b3c: 080015bb .word 0x080015bb
8000b40: 080015bb .word 0x080015bb
8000b44: 080015bb .word 0x080015bb
8000b48: 080015bb .word 0x080015bb
8000b4c: 080015bb .word 0x080015bb
8000b50: 080015bb .word 0x080015bb
8000b54: 080015bb .word 0x080015bb
8000b58: 080015bb .word 0x080015bb
8000b5c: 080015bb .word 0x080015bb
8000b60: 080015bb .word 0x080015bb
8000b64: 080015bb .word 0x080015bb
8000b68: 080015bb .word 0x080015bb
8000b6c: 080015bb .word 0x080015bb
8000b70: 080015bb .word 0x080015bb
8000b74: 080015bb .word 0x080015bb
8000b78: 080015bb .word 0x080015bb
8000b7c: 080015bb .word 0x080015bb
8000b80: 080015bb .word 0x080015bb
8000b84: 080015bb .word 0x080015bb
8000b88: 08001343 .word 0x08001343
{
case KEY_UP://TODO KEY UP
if(menu == MAIN)
8000b8c: 4b7f ldr r3, [pc, #508] ; (8000d8c <keyIns+0x2f0>)
8000b8e: 781b ldrb r3, [r3, #0]
8000b90: b2db uxtb r3, r3
8000b92: 2b00 cmp r3, #0
8000b94: f040 81ef bne.w 8000f76 <keyIns+0x4da>
{
if(CNT_CHANNELS < 5)
8000b98: 4b7d ldr r3, [pc, #500] ; (8000d90 <keyIns+0x2f4>)
8000b9a: 681b ldr r3, [r3, #0]
8000b9c: 2b04 cmp r3, #4
8000b9e: f200 8507 bhi.w 80015b0 <keyIns+0xb14>
{
if(ACTIVE_CHANNEL == Ch1)
8000ba2: 4b7c ldr r3, [pc, #496] ; (8000d94 <keyIns+0x2f8>)
8000ba4: 681b ldr r3, [r3, #0]
8000ba6: 2b00 cmp r3, #0
8000ba8: d171 bne.n 8000c8e <keyIns+0x1f2>
{
if(menupos == Input)
8000baa: 4b7b ldr r3, [pc, #492] ; (8000d98 <keyIns+0x2fc>)
8000bac: 781b ldrb r3, [r3, #0]
8000bae: b2db uxtb r3, r3
8000bb0: 2b00 cmp r3, #0
8000bb2: d168 bne.n 8000c86 <keyIns+0x1ea>
{
if(focused)
8000bb4: 4b79 ldr r3, [pc, #484] ; (8000d9c <keyIns+0x300>)
8000bb6: 781b ldrb r3, [r3, #0]
8000bb8: b2db uxtb r3, r3
8000bba: 2b00 cmp r3, #0
8000bbc: d031 beq.n 8000c22 <keyIns+0x186>
{
if(pardata.amplif[ACTIVE_CHANNEL].IIN < ICP)
8000bbe: 4b75 ldr r3, [pc, #468] ; (8000d94 <keyIns+0x2f8>)
8000bc0: 681b ldr r3, [r3, #0]
8000bc2: 4a77 ldr r2, [pc, #476] ; (8000da0 <keyIns+0x304>)
8000bc4: 015b lsls r3, r3, #5
8000bc6: 4413 add r3, r2
8000bc8: 881b ldrh r3, [r3, #0]
8000bca: b29b uxth r3, r3
8000bcc: 2b00 cmp r3, #0
8000bce: f040 84ef bne.w 80015b0 <keyIns+0xb14>
{
pardata.amplif[ACTIVE_CHANNEL].IIN++;
8000bd2: 4b70 ldr r3, [pc, #448] ; (8000d94 <keyIns+0x2f8>)
8000bd4: 681b ldr r3, [r3, #0]
8000bd6: 4972 ldr r1, [pc, #456] ; (8000da0 <keyIns+0x304>)
8000bd8: 015a lsls r2, r3, #5
8000bda: 440a add r2, r1
8000bdc: 8812 ldrh r2, [r2, #0]
8000bde: b292 uxth r2, r2
8000be0: 3201 adds r2, #1
8000be2: b291 uxth r1, r2
8000be4: 4a6e ldr r2, [pc, #440] ; (8000da0 <keyIns+0x304>)
8000be6: 015b lsls r3, r3, #5
8000be8: 4413 add r3, r2
8000bea: 460a mov r2, r1
8000bec: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8000bee: 4b69 ldr r3, [pc, #420] ; (8000d94 <keyIns+0x2f8>)
8000bf0: 681b ldr r3, [r3, #0]
8000bf2: b2db uxtb r3, r3
8000bf4: 4618 mov r0, r3
8000bf6: f00b ff0d bl 800ca14 <WriteChannel>
8000bfa: 4603 mov r3, r0
8000bfc: 2b00 cmp r3, #0
8000bfe: f000 84d7 beq.w 80015b0 <keyIns+0xb14>
{
pardata.amplif[ACTIVE_CHANNEL].IIN--;
8000c02: 4b64 ldr r3, [pc, #400] ; (8000d94 <keyIns+0x2f8>)
8000c04: 681b ldr r3, [r3, #0]
8000c06: 4966 ldr r1, [pc, #408] ; (8000da0 <keyIns+0x304>)
8000c08: 015a lsls r2, r3, #5
8000c0a: 440a add r2, r1
8000c0c: 8812 ldrh r2, [r2, #0]
8000c0e: b292 uxth r2, r2
8000c10: 3a01 subs r2, #1
8000c12: b291 uxth r1, r2
8000c14: 4a62 ldr r2, [pc, #392] ; (8000da0 <keyIns+0x304>)
8000c16: 015b lsls r3, r3, #5
8000c18: 4413 add r3, r2
8000c1a: 460a mov r2, r1
8000c1c: 801a strh r2, [r3, #0]
else
if(menupos == Set_100)
menupos = Set100;
}
}
break;
8000c1e: f000 bcc7 b.w 80015b0 <keyIns+0xb14>
ACTIVE_CHANNEL = Ch4;
8000c22: 4b5c ldr r3, [pc, #368] ; (8000d94 <keyIns+0x2f8>)
8000c24: 2203 movs r2, #3
8000c26: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8000c28: 4b5a ldr r3, [pc, #360] ; (8000d94 <keyIns+0x2f8>)
8000c2a: 681b ldr r3, [r3, #0]
8000c2c: 2201 movs r2, #1
8000c2e: fa02 f303 lsl.w r3, r2, r3
8000c32: 461a mov r2, r3
8000c34: 4b5b ldr r3, [pc, #364] ; (8000da4 <keyIns+0x308>)
8000c36: 681b ldr r3, [r3, #0]
8000c38: 4013 ands r3, r2
8000c3a: 2b00 cmp r3, #0
8000c3c: d11e bne.n 8000c7c <keyIns+0x1e0>
ACTIVE_CHANNEL = Ch3;
8000c3e: 4b55 ldr r3, [pc, #340] ; (8000d94 <keyIns+0x2f8>)
8000c40: 2202 movs r2, #2
8000c42: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8000c44: 4b53 ldr r3, [pc, #332] ; (8000d94 <keyIns+0x2f8>)
8000c46: 681b ldr r3, [r3, #0]
8000c48: 2201 movs r2, #1
8000c4a: fa02 f303 lsl.w r3, r2, r3
8000c4e: 461a mov r2, r3
8000c50: 4b54 ldr r3, [pc, #336] ; (8000da4 <keyIns+0x308>)
8000c52: 681b ldr r3, [r3, #0]
8000c54: 4013 ands r3, r2
8000c56: 2b00 cmp r3, #0
8000c58: d110 bne.n 8000c7c <keyIns+0x1e0>
ACTIVE_CHANNEL = Ch2;
8000c5a: 4b4e ldr r3, [pc, #312] ; (8000d94 <keyIns+0x2f8>)
8000c5c: 2201 movs r2, #1
8000c5e: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8000c60: 4b4c ldr r3, [pc, #304] ; (8000d94 <keyIns+0x2f8>)
8000c62: 681b ldr r3, [r3, #0]
8000c64: 2201 movs r2, #1
8000c66: fa02 f303 lsl.w r3, r2, r3
8000c6a: 461a mov r2, r3
8000c6c: 4b4d ldr r3, [pc, #308] ; (8000da4 <keyIns+0x308>)
8000c6e: 681b ldr r3, [r3, #0]
8000c70: 4013 ands r3, r2
8000c72: 2b00 cmp r3, #0
8000c74: d102 bne.n 8000c7c <keyIns+0x1e0>
ACTIVE_CHANNEL = Ch1;
8000c76: 4b47 ldr r3, [pc, #284] ; (8000d94 <keyIns+0x2f8>)
8000c78: 2200 movs r2, #0
8000c7a: 601a str r2, [r3, #0]
menupos = Out;
8000c7c: 4b46 ldr r3, [pc, #280] ; (8000d98 <keyIns+0x2fc>)
8000c7e: 2205 movs r2, #5
8000c80: 701a strb r2, [r3, #0]
break;
8000c82: f000 bc95 b.w 80015b0 <keyIns+0xb14>
DoKeyUP();
8000c86: f000 fc9b bl 80015c0 <DoKeyUP>
break;
8000c8a: f000 bc91 b.w 80015b0 <keyIns+0xb14>
if(ACTIVE_CHANNEL == Ch2)
8000c8e: 4b41 ldr r3, [pc, #260] ; (8000d94 <keyIns+0x2f8>)
8000c90: 681b ldr r3, [r3, #0]
8000c92: 2b01 cmp r3, #1
8000c94: f040 8088 bne.w 8000da8 <keyIns+0x30c>
if(menupos == Input)
8000c98: 4b3f ldr r3, [pc, #252] ; (8000d98 <keyIns+0x2fc>)
8000c9a: 781b ldrb r3, [r3, #0]
8000c9c: b2db uxtb r3, r3
8000c9e: 2b00 cmp r3, #0
8000ca0: d168 bne.n 8000d74 <keyIns+0x2d8>
if(focused)
8000ca2: 4b3e ldr r3, [pc, #248] ; (8000d9c <keyIns+0x300>)
8000ca4: 781b ldrb r3, [r3, #0]
8000ca6: b2db uxtb r3, r3
8000ca8: 2b00 cmp r3, #0
8000caa: d031 beq.n 8000d10 <keyIns+0x274>
if(pardata.amplif[ACTIVE_CHANNEL].IIN < ICP)
8000cac: 4b39 ldr r3, [pc, #228] ; (8000d94 <keyIns+0x2f8>)
8000cae: 681b ldr r3, [r3, #0]
8000cb0: 4a3b ldr r2, [pc, #236] ; (8000da0 <keyIns+0x304>)
8000cb2: 015b lsls r3, r3, #5
8000cb4: 4413 add r3, r2
8000cb6: 881b ldrh r3, [r3, #0]
8000cb8: b29b uxth r3, r3
8000cba: 2b00 cmp r3, #0
8000cbc: f040 8478 bne.w 80015b0 <keyIns+0xb14>
pardata.amplif[ACTIVE_CHANNEL].IIN++;
8000cc0: 4b34 ldr r3, [pc, #208] ; (8000d94 <keyIns+0x2f8>)
8000cc2: 681b ldr r3, [r3, #0]
8000cc4: 4936 ldr r1, [pc, #216] ; (8000da0 <keyIns+0x304>)
8000cc6: 015a lsls r2, r3, #5
8000cc8: 440a add r2, r1
8000cca: 8812 ldrh r2, [r2, #0]
8000ccc: b292 uxth r2, r2
8000cce: 3201 adds r2, #1
8000cd0: b291 uxth r1, r2
8000cd2: 4a33 ldr r2, [pc, #204] ; (8000da0 <keyIns+0x304>)
8000cd4: 015b lsls r3, r3, #5
8000cd6: 4413 add r3, r2
8000cd8: 460a mov r2, r1
8000cda: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8000cdc: 4b2d ldr r3, [pc, #180] ; (8000d94 <keyIns+0x2f8>)
8000cde: 681b ldr r3, [r3, #0]
8000ce0: b2db uxtb r3, r3
8000ce2: 4618 mov r0, r3
8000ce4: f00b fe96 bl 800ca14 <WriteChannel>
8000ce8: 4603 mov r3, r0
8000cea: 2b00 cmp r3, #0
8000cec: f000 8460 beq.w 80015b0 <keyIns+0xb14>
pardata.amplif[ACTIVE_CHANNEL].IIN--;
8000cf0: 4b28 ldr r3, [pc, #160] ; (8000d94 <keyIns+0x2f8>)
8000cf2: 681b ldr r3, [r3, #0]
8000cf4: 492a ldr r1, [pc, #168] ; (8000da0 <keyIns+0x304>)
8000cf6: 015a lsls r2, r3, #5
8000cf8: 440a add r2, r1
8000cfa: 8812 ldrh r2, [r2, #0]
8000cfc: b292 uxth r2, r2
8000cfe: 3a01 subs r2, #1
8000d00: b291 uxth r1, r2
8000d02: 4a27 ldr r2, [pc, #156] ; (8000da0 <keyIns+0x304>)
8000d04: 015b lsls r3, r3, #5
8000d06: 4413 add r3, r2
8000d08: 460a mov r2, r1
8000d0a: 801a strh r2, [r3, #0]
break;
8000d0c: f000 bc50 b.w 80015b0 <keyIns+0xb14>
ACTIVE_CHANNEL = Ch1;
8000d10: 4b20 ldr r3, [pc, #128] ; (8000d94 <keyIns+0x2f8>)
8000d12: 2200 movs r2, #0
8000d14: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8000d16: 4b1f ldr r3, [pc, #124] ; (8000d94 <keyIns+0x2f8>)
8000d18: 681b ldr r3, [r3, #0]
8000d1a: 2201 movs r2, #1
8000d1c: fa02 f303 lsl.w r3, r2, r3
8000d20: 461a mov r2, r3
8000d22: 4b20 ldr r3, [pc, #128] ; (8000da4 <keyIns+0x308>)
8000d24: 681b ldr r3, [r3, #0]
8000d26: 4013 ands r3, r2
8000d28: 2b00 cmp r3, #0
8000d2a: d11e bne.n 8000d6a <keyIns+0x2ce>
ACTIVE_CHANNEL = Ch4;
8000d2c: 4b19 ldr r3, [pc, #100] ; (8000d94 <keyIns+0x2f8>)
8000d2e: 2203 movs r2, #3
8000d30: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8000d32: 4b18 ldr r3, [pc, #96] ; (8000d94 <keyIns+0x2f8>)
8000d34: 681b ldr r3, [r3, #0]
8000d36: 2201 movs r2, #1
8000d38: fa02 f303 lsl.w r3, r2, r3
8000d3c: 461a mov r2, r3
8000d3e: 4b19 ldr r3, [pc, #100] ; (8000da4 <keyIns+0x308>)
8000d40: 681b ldr r3, [r3, #0]
8000d42: 4013 ands r3, r2
8000d44: 2b00 cmp r3, #0
8000d46: d110 bne.n 8000d6a <keyIns+0x2ce>
ACTIVE_CHANNEL = Ch3;
8000d48: 4b12 ldr r3, [pc, #72] ; (8000d94 <keyIns+0x2f8>)
8000d4a: 2202 movs r2, #2
8000d4c: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8000d4e: 4b11 ldr r3, [pc, #68] ; (8000d94 <keyIns+0x2f8>)
8000d50: 681b ldr r3, [r3, #0]
8000d52: 2201 movs r2, #1
8000d54: fa02 f303 lsl.w r3, r2, r3
8000d58: 461a mov r2, r3
8000d5a: 4b12 ldr r3, [pc, #72] ; (8000da4 <keyIns+0x308>)
8000d5c: 681b ldr r3, [r3, #0]
8000d5e: 4013 ands r3, r2
8000d60: 2b00 cmp r3, #0
8000d62: d102 bne.n 8000d6a <keyIns+0x2ce>
ACTIVE_CHANNEL = Ch2;
8000d64: 4b0b ldr r3, [pc, #44] ; (8000d94 <keyIns+0x2f8>)
8000d66: 2201 movs r2, #1
8000d68: 601a str r2, [r3, #0]
menupos = Out;
8000d6a: 4b0b ldr r3, [pc, #44] ; (8000d98 <keyIns+0x2fc>)
8000d6c: 2205 movs r2, #5
8000d6e: 701a strb r2, [r3, #0]
break;
8000d70: f000 bc1e b.w 80015b0 <keyIns+0xb14>
DoKeyUP();
8000d74: f000 fc24 bl 80015c0 <DoKeyUP>
break;
8000d78: f000 bc1a b.w 80015b0 <keyIns+0xb14>
8000d7c: 2002024c .word 0x2002024c
8000d80: 2006b9cc .word 0x2006b9cc
8000d84: 2006b2f0 .word 0x2006b2f0
8000d88: 2006b9bc .word 0x2006b9bc
8000d8c: 20020245 .word 0x20020245
8000d90: 2006b2d4 .word 0x2006b2d4
8000d94: 2006b2d0 .word 0x2006b2d0
8000d98: 20020010 .word 0x20020010
8000d9c: 20020250 .word 0x20020250
8000da0: 2006b510 .word 0x2006b510
8000da4: 20020028 .word 0x20020028
if(ACTIVE_CHANNEL == Ch3)
8000da8: 4b9e ldr r3, [pc, #632] ; (8001024 <keyIns+0x588>)
8000daa: 681b ldr r3, [r3, #0]
8000dac: 2b02 cmp r3, #2
8000dae: d16e bne.n 8000e8e <keyIns+0x3f2>
if(menupos == Input)
8000db0: 4b9d ldr r3, [pc, #628] ; (8001028 <keyIns+0x58c>)
8000db2: 781b ldrb r3, [r3, #0]
8000db4: b2db uxtb r3, r3
8000db6: 2b00 cmp r3, #0
8000db8: d166 bne.n 8000e88 <keyIns+0x3ec>
if(focused)
8000dba: 4b9c ldr r3, [pc, #624] ; (800102c <keyIns+0x590>)
8000dbc: 781b ldrb r3, [r3, #0]
8000dbe: b2db uxtb r3, r3
8000dc0: 2b00 cmp r3, #0
8000dc2: d030 beq.n 8000e26 <keyIns+0x38a>
if(pardata.amplif[ACTIVE_CHANNEL].IIN < ICP)
8000dc4: 4b97 ldr r3, [pc, #604] ; (8001024 <keyIns+0x588>)
8000dc6: 681b ldr r3, [r3, #0]
8000dc8: 4a99 ldr r2, [pc, #612] ; (8001030 <keyIns+0x594>)
8000dca: 015b lsls r3, r3, #5
8000dcc: 4413 add r3, r2
8000dce: 881b ldrh r3, [r3, #0]
8000dd0: b29b uxth r3, r3
8000dd2: 2b00 cmp r3, #0
8000dd4: f040 83ec bne.w 80015b0 <keyIns+0xb14>
pardata.amplif[ACTIVE_CHANNEL].IIN++;
8000dd8: 4b92 ldr r3, [pc, #584] ; (8001024 <keyIns+0x588>)
8000dda: 681b ldr r3, [r3, #0]
8000ddc: 4994 ldr r1, [pc, #592] ; (8001030 <keyIns+0x594>)
8000dde: 015a lsls r2, r3, #5
8000de0: 440a add r2, r1
8000de2: 8812 ldrh r2, [r2, #0]
8000de4: b292 uxth r2, r2
8000de6: 3201 adds r2, #1
8000de8: b291 uxth r1, r2
8000dea: 4a91 ldr r2, [pc, #580] ; (8001030 <keyIns+0x594>)
8000dec: 015b lsls r3, r3, #5
8000dee: 4413 add r3, r2
8000df0: 460a mov r2, r1
8000df2: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8000df4: 4b8b ldr r3, [pc, #556] ; (8001024 <keyIns+0x588>)
8000df6: 681b ldr r3, [r3, #0]
8000df8: b2db uxtb r3, r3
8000dfa: 4618 mov r0, r3
8000dfc: f00b fe0a bl 800ca14 <WriteChannel>
8000e00: 4603 mov r3, r0
8000e02: 2b00 cmp r3, #0
8000e04: f000 83d4 beq.w 80015b0 <keyIns+0xb14>
pardata.amplif[ACTIVE_CHANNEL].IIN--;
8000e08: 4b86 ldr r3, [pc, #536] ; (8001024 <keyIns+0x588>)
8000e0a: 681b ldr r3, [r3, #0]
8000e0c: 4988 ldr r1, [pc, #544] ; (8001030 <keyIns+0x594>)
8000e0e: 015a lsls r2, r3, #5
8000e10: 440a add r2, r1
8000e12: 8812 ldrh r2, [r2, #0]
8000e14: b292 uxth r2, r2
8000e16: 3a01 subs r2, #1
8000e18: b291 uxth r1, r2
8000e1a: 4a85 ldr r2, [pc, #532] ; (8001030 <keyIns+0x594>)
8000e1c: 015b lsls r3, r3, #5
8000e1e: 4413 add r3, r2
8000e20: 460a mov r2, r1
8000e22: 801a strh r2, [r3, #0]
break;
8000e24: e3c4 b.n 80015b0 <keyIns+0xb14>
ACTIVE_CHANNEL = Ch2;
8000e26: 4b7f ldr r3, [pc, #508] ; (8001024 <keyIns+0x588>)
8000e28: 2201 movs r2, #1
8000e2a: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8000e2c: 4b7d ldr r3, [pc, #500] ; (8001024 <keyIns+0x588>)
8000e2e: 681b ldr r3, [r3, #0]
8000e30: 2201 movs r2, #1
8000e32: fa02 f303 lsl.w r3, r2, r3
8000e36: 461a mov r2, r3
8000e38: 4b7e ldr r3, [pc, #504] ; (8001034 <keyIns+0x598>)
8000e3a: 681b ldr r3, [r3, #0]
8000e3c: 4013 ands r3, r2
8000e3e: 2b00 cmp r3, #0
8000e40: d11e bne.n 8000e80 <keyIns+0x3e4>
ACTIVE_CHANNEL = Ch1;
8000e42: 4b78 ldr r3, [pc, #480] ; (8001024 <keyIns+0x588>)
8000e44: 2200 movs r2, #0
8000e46: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8000e48: 4b76 ldr r3, [pc, #472] ; (8001024 <keyIns+0x588>)
8000e4a: 681b ldr r3, [r3, #0]
8000e4c: 2201 movs r2, #1
8000e4e: fa02 f303 lsl.w r3, r2, r3
8000e52: 461a mov r2, r3
8000e54: 4b77 ldr r3, [pc, #476] ; (8001034 <keyIns+0x598>)
8000e56: 681b ldr r3, [r3, #0]
8000e58: 4013 ands r3, r2
8000e5a: 2b00 cmp r3, #0
8000e5c: d110 bne.n 8000e80 <keyIns+0x3e4>
ACTIVE_CHANNEL = Ch4;
8000e5e: 4b71 ldr r3, [pc, #452] ; (8001024 <keyIns+0x588>)
8000e60: 2203 movs r2, #3
8000e62: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8000e64: 4b6f ldr r3, [pc, #444] ; (8001024 <keyIns+0x588>)
8000e66: 681b ldr r3, [r3, #0]
8000e68: 2201 movs r2, #1
8000e6a: fa02 f303 lsl.w r3, r2, r3
8000e6e: 461a mov r2, r3
8000e70: 4b70 ldr r3, [pc, #448] ; (8001034 <keyIns+0x598>)
8000e72: 681b ldr r3, [r3, #0]
8000e74: 4013 ands r3, r2
8000e76: 2b00 cmp r3, #0
8000e78: d102 bne.n 8000e80 <keyIns+0x3e4>
ACTIVE_CHANNEL = Ch3;
8000e7a: 4b6a ldr r3, [pc, #424] ; (8001024 <keyIns+0x588>)
8000e7c: 2202 movs r2, #2
8000e7e: 601a str r2, [r3, #0]
menupos = Out;
8000e80: 4b69 ldr r3, [pc, #420] ; (8001028 <keyIns+0x58c>)
8000e82: 2205 movs r2, #5
8000e84: 701a strb r2, [r3, #0]
break;
8000e86: e393 b.n 80015b0 <keyIns+0xb14>
DoKeyUP();
8000e88: f000 fb9a bl 80015c0 <DoKeyUP>
break;
8000e8c: e390 b.n 80015b0 <keyIns+0xb14>
if(ACTIVE_CHANNEL == Ch4)
8000e8e: 4b65 ldr r3, [pc, #404] ; (8001024 <keyIns+0x588>)
8000e90: 681b ldr r3, [r3, #0]
8000e92: 2b03 cmp r3, #3
8000e94: f040 838c bne.w 80015b0 <keyIns+0xb14>
if(menupos == Input)
8000e98: 4b63 ldr r3, [pc, #396] ; (8001028 <keyIns+0x58c>)
8000e9a: 781b ldrb r3, [r3, #0]
8000e9c: b2db uxtb r3, r3
8000e9e: 2b00 cmp r3, #0
8000ea0: d166 bne.n 8000f70 <keyIns+0x4d4>
if(focused)
8000ea2: 4b62 ldr r3, [pc, #392] ; (800102c <keyIns+0x590>)
8000ea4: 781b ldrb r3, [r3, #0]
8000ea6: b2db uxtb r3, r3
8000ea8: 2b00 cmp r3, #0
8000eaa: d030 beq.n 8000f0e <keyIns+0x472>
if(pardata.amplif[ACTIVE_CHANNEL].IIN < ICP)
8000eac: 4b5d ldr r3, [pc, #372] ; (8001024 <keyIns+0x588>)
8000eae: 681b ldr r3, [r3, #0]
8000eb0: 4a5f ldr r2, [pc, #380] ; (8001030 <keyIns+0x594>)
8000eb2: 015b lsls r3, r3, #5
8000eb4: 4413 add r3, r2
8000eb6: 881b ldrh r3, [r3, #0]
8000eb8: b29b uxth r3, r3
8000eba: 2b00 cmp r3, #0
8000ebc: f040 8378 bne.w 80015b0 <keyIns+0xb14>
pardata.amplif[ACTIVE_CHANNEL].IIN++;
8000ec0: 4b58 ldr r3, [pc, #352] ; (8001024 <keyIns+0x588>)
8000ec2: 681b ldr r3, [r3, #0]
8000ec4: 495a ldr r1, [pc, #360] ; (8001030 <keyIns+0x594>)
8000ec6: 015a lsls r2, r3, #5
8000ec8: 440a add r2, r1
8000eca: 8812 ldrh r2, [r2, #0]
8000ecc: b292 uxth r2, r2
8000ece: 3201 adds r2, #1
8000ed0: b291 uxth r1, r2
8000ed2: 4a57 ldr r2, [pc, #348] ; (8001030 <keyIns+0x594>)
8000ed4: 015b lsls r3, r3, #5
8000ed6: 4413 add r3, r2
8000ed8: 460a mov r2, r1
8000eda: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8000edc: 4b51 ldr r3, [pc, #324] ; (8001024 <keyIns+0x588>)
8000ede: 681b ldr r3, [r3, #0]
8000ee0: b2db uxtb r3, r3
8000ee2: 4618 mov r0, r3
8000ee4: f00b fd96 bl 800ca14 <WriteChannel>
8000ee8: 4603 mov r3, r0
8000eea: 2b00 cmp r3, #0
8000eec: f000 8360 beq.w 80015b0 <keyIns+0xb14>
pardata.amplif[ACTIVE_CHANNEL].IIN--;
8000ef0: 4b4c ldr r3, [pc, #304] ; (8001024 <keyIns+0x588>)
8000ef2: 681b ldr r3, [r3, #0]
8000ef4: 494e ldr r1, [pc, #312] ; (8001030 <keyIns+0x594>)
8000ef6: 015a lsls r2, r3, #5
8000ef8: 440a add r2, r1
8000efa: 8812 ldrh r2, [r2, #0]
8000efc: b292 uxth r2, r2
8000efe: 3a01 subs r2, #1
8000f00: b291 uxth r1, r2
8000f02: 4a4b ldr r2, [pc, #300] ; (8001030 <keyIns+0x594>)
8000f04: 015b lsls r3, r3, #5
8000f06: 4413 add r3, r2
8000f08: 460a mov r2, r1
8000f0a: 801a strh r2, [r3, #0]
break;
8000f0c: e350 b.n 80015b0 <keyIns+0xb14>
ACTIVE_CHANNEL = Ch3;
8000f0e: 4b45 ldr r3, [pc, #276] ; (8001024 <keyIns+0x588>)
8000f10: 2202 movs r2, #2
8000f12: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8000f14: 4b43 ldr r3, [pc, #268] ; (8001024 <keyIns+0x588>)
8000f16: 681b ldr r3, [r3, #0]
8000f18: 2201 movs r2, #1
8000f1a: fa02 f303 lsl.w r3, r2, r3
8000f1e: 461a mov r2, r3
8000f20: 4b44 ldr r3, [pc, #272] ; (8001034 <keyIns+0x598>)
8000f22: 681b ldr r3, [r3, #0]
8000f24: 4013 ands r3, r2
8000f26: 2b00 cmp r3, #0
8000f28: d11e bne.n 8000f68 <keyIns+0x4cc>
ACTIVE_CHANNEL = Ch2;
8000f2a: 4b3e ldr r3, [pc, #248] ; (8001024 <keyIns+0x588>)
8000f2c: 2201 movs r2, #1
8000f2e: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8000f30: 4b3c ldr r3, [pc, #240] ; (8001024 <keyIns+0x588>)
8000f32: 681b ldr r3, [r3, #0]
8000f34: 2201 movs r2, #1
8000f36: fa02 f303 lsl.w r3, r2, r3
8000f3a: 461a mov r2, r3
8000f3c: 4b3d ldr r3, [pc, #244] ; (8001034 <keyIns+0x598>)
8000f3e: 681b ldr r3, [r3, #0]
8000f40: 4013 ands r3, r2
8000f42: 2b00 cmp r3, #0
8000f44: d110 bne.n 8000f68 <keyIns+0x4cc>
ACTIVE_CHANNEL = Ch1;
8000f46: 4b37 ldr r3, [pc, #220] ; (8001024 <keyIns+0x588>)
8000f48: 2200 movs r2, #0
8000f4a: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8000f4c: 4b35 ldr r3, [pc, #212] ; (8001024 <keyIns+0x588>)
8000f4e: 681b ldr r3, [r3, #0]
8000f50: 2201 movs r2, #1
8000f52: fa02 f303 lsl.w r3, r2, r3
8000f56: 461a mov r2, r3
8000f58: 4b36 ldr r3, [pc, #216] ; (8001034 <keyIns+0x598>)
8000f5a: 681b ldr r3, [r3, #0]
8000f5c: 4013 ands r3, r2
8000f5e: 2b00 cmp r3, #0
8000f60: d102 bne.n 8000f68 <keyIns+0x4cc>
ACTIVE_CHANNEL = Ch4;
8000f62: 4b30 ldr r3, [pc, #192] ; (8001024 <keyIns+0x588>)
8000f64: 2203 movs r2, #3
8000f66: 601a str r2, [r3, #0]
menupos = Out;
8000f68: 4b2f ldr r3, [pc, #188] ; (8001028 <keyIns+0x58c>)
8000f6a: 2205 movs r2, #5
8000f6c: 701a strb r2, [r3, #0]
break;
8000f6e: e31f b.n 80015b0 <keyIns+0xb14>
DoKeyUP();
8000f70: f000 fb26 bl 80015c0 <DoKeyUP>
break;
8000f74: e31c b.n 80015b0 <keyIns+0xb14>
if(menu == CALIBR_00)
8000f76: 4b30 ldr r3, [pc, #192] ; (8001038 <keyIns+0x59c>)
8000f78: 781b ldrb r3, [r3, #0]
8000f7a: b2db uxtb r3, r3
8000f7c: 2b01 cmp r3, #1
8000f7e: d10d bne.n 8000f9c <keyIns+0x500>
if(menupos > Ch1) menupos--;
8000f80: 4b29 ldr r3, [pc, #164] ; (8001028 <keyIns+0x58c>)
8000f82: 781b ldrb r3, [r3, #0]
8000f84: b2db uxtb r3, r3
8000f86: 2b00 cmp r3, #0
8000f88: f000 8312 beq.w 80015b0 <keyIns+0xb14>
8000f8c: 4b26 ldr r3, [pc, #152] ; (8001028 <keyIns+0x58c>)
8000f8e: 781b ldrb r3, [r3, #0]
8000f90: b2db uxtb r3, r3
8000f92: 3b01 subs r3, #1
8000f94: b2da uxtb r2, r3
8000f96: 4b24 ldr r3, [pc, #144] ; (8001028 <keyIns+0x58c>)
8000f98: 701a strb r2, [r3, #0]
break;
8000f9a: e309 b.n 80015b0 <keyIns+0xb14>
if(menu >= CALIBR_0 && menu <= CALIBR_22)
8000f9c: 4b26 ldr r3, [pc, #152] ; (8001038 <keyIns+0x59c>)
8000f9e: 781b ldrb r3, [r3, #0]
8000fa0: b2db uxtb r3, r3
8000fa2: 2b01 cmp r3, #1
8000fa4: f240 8304 bls.w 80015b0 <keyIns+0xb14>
8000fa8: 4b23 ldr r3, [pc, #140] ; (8001038 <keyIns+0x59c>)
8000faa: 781b ldrb r3, [r3, #0]
8000fac: b2db uxtb r3, r3
8000fae: 2b18 cmp r3, #24
8000fb0: f200 82fe bhi.w 80015b0 <keyIns+0xb14>
if(menupos == Next)
8000fb4: 4b1c ldr r3, [pc, #112] ; (8001028 <keyIns+0x58c>)
8000fb6: 781b ldrb r3, [r3, #0]
8000fb8: b2db uxtb r3, r3
8000fba: 2b06 cmp r3, #6
8000fbc: d103 bne.n 8000fc6 <keyIns+0x52a>
menupos = Set_1;
8000fbe: 4b1a ldr r3, [pc, #104] ; (8001028 <keyIns+0x58c>)
8000fc0: 2205 movs r2, #5
8000fc2: 701a strb r2, [r3, #0]
break;
8000fc4: e2f4 b.n 80015b0 <keyIns+0xb14>
if(menupos == Set_1)
8000fc6: 4b18 ldr r3, [pc, #96] ; (8001028 <keyIns+0x58c>)
8000fc8: 781b ldrb r3, [r3, #0]
8000fca: b2db uxtb r3, r3
8000fcc: 2b05 cmp r3, #5
8000fce: d103 bne.n 8000fd8 <keyIns+0x53c>
menupos = Set1;
8000fd0: 4b15 ldr r3, [pc, #84] ; (8001028 <keyIns+0x58c>)
8000fd2: 2204 movs r2, #4
8000fd4: 701a strb r2, [r3, #0]
break;
8000fd6: e2eb b.n 80015b0 <keyIns+0xb14>
if(menupos == Set1)
8000fd8: 4b13 ldr r3, [pc, #76] ; (8001028 <keyIns+0x58c>)
8000fda: 781b ldrb r3, [r3, #0]
8000fdc: b2db uxtb r3, r3
8000fde: 2b04 cmp r3, #4
8000fe0: d103 bne.n 8000fea <keyIns+0x54e>
menupos = Set_10;
8000fe2: 4b11 ldr r3, [pc, #68] ; (8001028 <keyIns+0x58c>)
8000fe4: 2203 movs r2, #3
8000fe6: 701a strb r2, [r3, #0]
break;
8000fe8: e2e2 b.n 80015b0 <keyIns+0xb14>
if(menupos == Set_10)
8000fea: 4b0f ldr r3, [pc, #60] ; (8001028 <keyIns+0x58c>)
8000fec: 781b ldrb r3, [r3, #0]
8000fee: b2db uxtb r3, r3
8000ff0: 2b03 cmp r3, #3
8000ff2: d103 bne.n 8000ffc <keyIns+0x560>
menupos = Set10;
8000ff4: 4b0c ldr r3, [pc, #48] ; (8001028 <keyIns+0x58c>)
8000ff6: 2202 movs r2, #2
8000ff8: 701a strb r2, [r3, #0]
break;
8000ffa: e2d9 b.n 80015b0 <keyIns+0xb14>
if(menupos == Set10)
8000ffc: 4b0a ldr r3, [pc, #40] ; (8001028 <keyIns+0x58c>)
8000ffe: 781b ldrb r3, [r3, #0]
8001000: b2db uxtb r3, r3
8001002: 2b02 cmp r3, #2
8001004: d103 bne.n 800100e <keyIns+0x572>
menupos = Set_100;
8001006: 4b08 ldr r3, [pc, #32] ; (8001028 <keyIns+0x58c>)
8001008: 2201 movs r2, #1
800100a: 701a strb r2, [r3, #0]
break;
800100c: e2d0 b.n 80015b0 <keyIns+0xb14>
if(menupos == Set_100)
800100e: 4b06 ldr r3, [pc, #24] ; (8001028 <keyIns+0x58c>)
8001010: 781b ldrb r3, [r3, #0]
8001012: b2db uxtb r3, r3
8001014: 2b01 cmp r3, #1
8001016: f040 82cb bne.w 80015b0 <keyIns+0xb14>
menupos = Set100;
800101a: 4b03 ldr r3, [pc, #12] ; (8001028 <keyIns+0x58c>)
800101c: 2200 movs r2, #0
800101e: 701a strb r2, [r3, #0]
break;
8001020: e2c6 b.n 80015b0 <keyIns+0xb14>
8001022: bf00 nop
8001024: 2006b2d0 .word 0x2006b2d0
8001028: 20020010 .word 0x20020010
800102c: 20020250 .word 0x20020250
8001030: 2006b510 .word 0x2006b510
8001034: 20020028 .word 0x20020028
8001038: 20020245 .word 0x20020245
case KEY_DN://TODO KEY DOWN
if(menu == MAIN)
800103c: 4ba8 ldr r3, [pc, #672] ; (80012e0 <keyIns+0x844>)
800103e: 781b ldrb r3, [r3, #0]
8001040: b2db uxtb r3, r3
8001042: 2b00 cmp r3, #0
8001044: f040 811a bne.w 800127c <keyIns+0x7e0>
{
if(CNT_CHANNELS < 5)
8001048: 4ba6 ldr r3, [pc, #664] ; (80012e4 <keyIns+0x848>)
800104a: 681b ldr r3, [r3, #0]
800104c: 2b04 cmp r3, #4
800104e: f200 82b1 bhi.w 80015b4 <keyIns+0xb18>
{
if(ACTIVE_CHANNEL == Ch1)
8001052: 4ba5 ldr r3, [pc, #660] ; (80012e8 <keyIns+0x84c>)
8001054: 681b ldr r3, [r3, #0]
8001056: 2b00 cmp r3, #0
8001058: d140 bne.n 80010dc <keyIns+0x640>
{
if(menupos == Out)
800105a: 4ba4 ldr r3, [pc, #656] ; (80012ec <keyIns+0x850>)
800105c: 781b ldrb r3, [r3, #0]
800105e: b2db uxtb r3, r3
8001060: 2b05 cmp r3, #5
8001062: d138 bne.n 80010d6 <keyIns+0x63a>
{
if(focused)
8001064: 4ba2 ldr r3, [pc, #648] ; (80012f0 <keyIns+0x854>)
8001066: 781b ldrb r3, [r3, #0]
8001068: b2db uxtb r3, r3
800106a: 2b00 cmp r3, #0
800106c: d002 beq.n 8001074 <keyIns+0x5d8>
{
DoKeyDN();
800106e: f001 fdb7 bl 8002be0 <DoKeyDN>
else
if(menupos == Set_1)
menupos = Next;
}
}
break;
8001072: e29f b.n 80015b4 <keyIns+0xb18>
ACTIVE_CHANNEL = Ch2;
8001074: 4b9c ldr r3, [pc, #624] ; (80012e8 <keyIns+0x84c>)
8001076: 2201 movs r2, #1
8001078: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
800107a: 4b9b ldr r3, [pc, #620] ; (80012e8 <keyIns+0x84c>)
800107c: 681b ldr r3, [r3, #0]
800107e: 2201 movs r2, #1
8001080: fa02 f303 lsl.w r3, r2, r3
8001084: 461a mov r2, r3
8001086: 4b9b ldr r3, [pc, #620] ; (80012f4 <keyIns+0x858>)
8001088: 681b ldr r3, [r3, #0]
800108a: 4013 ands r3, r2
800108c: 2b00 cmp r3, #0
800108e: d11e bne.n 80010ce <keyIns+0x632>
ACTIVE_CHANNEL = Ch3;
8001090: 4b95 ldr r3, [pc, #596] ; (80012e8 <keyIns+0x84c>)
8001092: 2202 movs r2, #2
8001094: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001096: 4b94 ldr r3, [pc, #592] ; (80012e8 <keyIns+0x84c>)
8001098: 681b ldr r3, [r3, #0]
800109a: 2201 movs r2, #1
800109c: fa02 f303 lsl.w r3, r2, r3
80010a0: 461a mov r2, r3
80010a2: 4b94 ldr r3, [pc, #592] ; (80012f4 <keyIns+0x858>)
80010a4: 681b ldr r3, [r3, #0]
80010a6: 4013 ands r3, r2
80010a8: 2b00 cmp r3, #0
80010aa: d110 bne.n 80010ce <keyIns+0x632>
ACTIVE_CHANNEL = Ch4;
80010ac: 4b8e ldr r3, [pc, #568] ; (80012e8 <keyIns+0x84c>)
80010ae: 2203 movs r2, #3
80010b0: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
80010b2: 4b8d ldr r3, [pc, #564] ; (80012e8 <keyIns+0x84c>)
80010b4: 681b ldr r3, [r3, #0]
80010b6: 2201 movs r2, #1
80010b8: fa02 f303 lsl.w r3, r2, r3
80010bc: 461a mov r2, r3
80010be: 4b8d ldr r3, [pc, #564] ; (80012f4 <keyIns+0x858>)
80010c0: 681b ldr r3, [r3, #0]
80010c2: 4013 ands r3, r2
80010c4: 2b00 cmp r3, #0
80010c6: d102 bne.n 80010ce <keyIns+0x632>
ACTIVE_CHANNEL = Ch1;
80010c8: 4b87 ldr r3, [pc, #540] ; (80012e8 <keyIns+0x84c>)
80010ca: 2200 movs r2, #0
80010cc: 601a str r2, [r3, #0]
menupos = Input;
80010ce: 4b87 ldr r3, [pc, #540] ; (80012ec <keyIns+0x850>)
80010d0: 2200 movs r2, #0
80010d2: 701a strb r2, [r3, #0]
break;
80010d4: e26e b.n 80015b4 <keyIns+0xb18>
DoKeyDN();
80010d6: f001 fd83 bl 8002be0 <DoKeyDN>
break;
80010da: e26b b.n 80015b4 <keyIns+0xb18>
if(ACTIVE_CHANNEL == Ch2)
80010dc: 4b82 ldr r3, [pc, #520] ; (80012e8 <keyIns+0x84c>)
80010de: 681b ldr r3, [r3, #0]
80010e0: 2b01 cmp r3, #1
80010e2: d140 bne.n 8001166 <keyIns+0x6ca>
if(menupos == Out)
80010e4: 4b81 ldr r3, [pc, #516] ; (80012ec <keyIns+0x850>)
80010e6: 781b ldrb r3, [r3, #0]
80010e8: b2db uxtb r3, r3
80010ea: 2b05 cmp r3, #5
80010ec: d138 bne.n 8001160 <keyIns+0x6c4>
if(focused)
80010ee: 4b80 ldr r3, [pc, #512] ; (80012f0 <keyIns+0x854>)
80010f0: 781b ldrb r3, [r3, #0]
80010f2: b2db uxtb r3, r3
80010f4: 2b00 cmp r3, #0
80010f6: d002 beq.n 80010fe <keyIns+0x662>
DoKeyDN();
80010f8: f001 fd72 bl 8002be0 <DoKeyDN>
break;
80010fc: e25a b.n 80015b4 <keyIns+0xb18>
ACTIVE_CHANNEL = Ch3;
80010fe: 4b7a ldr r3, [pc, #488] ; (80012e8 <keyIns+0x84c>)
8001100: 2202 movs r2, #2
8001102: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001104: 4b78 ldr r3, [pc, #480] ; (80012e8 <keyIns+0x84c>)
8001106: 681b ldr r3, [r3, #0]
8001108: 2201 movs r2, #1
800110a: fa02 f303 lsl.w r3, r2, r3
800110e: 461a mov r2, r3
8001110: 4b78 ldr r3, [pc, #480] ; (80012f4 <keyIns+0x858>)
8001112: 681b ldr r3, [r3, #0]
8001114: 4013 ands r3, r2
8001116: 2b00 cmp r3, #0
8001118: d11e bne.n 8001158 <keyIns+0x6bc>
ACTIVE_CHANNEL = Ch4;
800111a: 4b73 ldr r3, [pc, #460] ; (80012e8 <keyIns+0x84c>)
800111c: 2203 movs r2, #3
800111e: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001120: 4b71 ldr r3, [pc, #452] ; (80012e8 <keyIns+0x84c>)
8001122: 681b ldr r3, [r3, #0]
8001124: 2201 movs r2, #1
8001126: fa02 f303 lsl.w r3, r2, r3
800112a: 461a mov r2, r3
800112c: 4b71 ldr r3, [pc, #452] ; (80012f4 <keyIns+0x858>)
800112e: 681b ldr r3, [r3, #0]
8001130: 4013 ands r3, r2
8001132: 2b00 cmp r3, #0
8001134: d110 bne.n 8001158 <keyIns+0x6bc>
ACTIVE_CHANNEL = Ch1;
8001136: 4b6c ldr r3, [pc, #432] ; (80012e8 <keyIns+0x84c>)
8001138: 2200 movs r2, #0
800113a: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
800113c: 4b6a ldr r3, [pc, #424] ; (80012e8 <keyIns+0x84c>)
800113e: 681b ldr r3, [r3, #0]
8001140: 2201 movs r2, #1
8001142: fa02 f303 lsl.w r3, r2, r3
8001146: 461a mov r2, r3
8001148: 4b6a ldr r3, [pc, #424] ; (80012f4 <keyIns+0x858>)
800114a: 681b ldr r3, [r3, #0]
800114c: 4013 ands r3, r2
800114e: 2b00 cmp r3, #0
8001150: d102 bne.n 8001158 <keyIns+0x6bc>
ACTIVE_CHANNEL = Ch2;
8001152: 4b65 ldr r3, [pc, #404] ; (80012e8 <keyIns+0x84c>)
8001154: 2201 movs r2, #1
8001156: 601a str r2, [r3, #0]
menupos = Input;
8001158: 4b64 ldr r3, [pc, #400] ; (80012ec <keyIns+0x850>)
800115a: 2200 movs r2, #0
800115c: 701a strb r2, [r3, #0]
break;
800115e: e229 b.n 80015b4 <keyIns+0xb18>
DoKeyDN();
8001160: f001 fd3e bl 8002be0 <DoKeyDN>
break;
8001164: e226 b.n 80015b4 <keyIns+0xb18>
if(ACTIVE_CHANNEL == Ch3)
8001166: 4b60 ldr r3, [pc, #384] ; (80012e8 <keyIns+0x84c>)
8001168: 681b ldr r3, [r3, #0]
800116a: 2b02 cmp r3, #2
800116c: d140 bne.n 80011f0 <keyIns+0x754>
if(menupos == Out)
800116e: 4b5f ldr r3, [pc, #380] ; (80012ec <keyIns+0x850>)
8001170: 781b ldrb r3, [r3, #0]
8001172: b2db uxtb r3, r3
8001174: 2b05 cmp r3, #5
8001176: d138 bne.n 80011ea <keyIns+0x74e>
if(focused)
8001178: 4b5d ldr r3, [pc, #372] ; (80012f0 <keyIns+0x854>)
800117a: 781b ldrb r3, [r3, #0]
800117c: b2db uxtb r3, r3
800117e: 2b00 cmp r3, #0
8001180: d002 beq.n 8001188 <keyIns+0x6ec>
DoKeyDN();
8001182: f001 fd2d bl 8002be0 <DoKeyDN>
break;
8001186: e215 b.n 80015b4 <keyIns+0xb18>
ACTIVE_CHANNEL = Ch4;
8001188: 4b57 ldr r3, [pc, #348] ; (80012e8 <keyIns+0x84c>)
800118a: 2203 movs r2, #3
800118c: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
800118e: 4b56 ldr r3, [pc, #344] ; (80012e8 <keyIns+0x84c>)
8001190: 681b ldr r3, [r3, #0]
8001192: 2201 movs r2, #1
8001194: fa02 f303 lsl.w r3, r2, r3
8001198: 461a mov r2, r3
800119a: 4b56 ldr r3, [pc, #344] ; (80012f4 <keyIns+0x858>)
800119c: 681b ldr r3, [r3, #0]
800119e: 4013 ands r3, r2
80011a0: 2b00 cmp r3, #0
80011a2: d11e bne.n 80011e2 <keyIns+0x746>
ACTIVE_CHANNEL = Ch1;
80011a4: 4b50 ldr r3, [pc, #320] ; (80012e8 <keyIns+0x84c>)
80011a6: 2200 movs r2, #0
80011a8: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
80011aa: 4b4f ldr r3, [pc, #316] ; (80012e8 <keyIns+0x84c>)
80011ac: 681b ldr r3, [r3, #0]
80011ae: 2201 movs r2, #1
80011b0: fa02 f303 lsl.w r3, r2, r3
80011b4: 461a mov r2, r3
80011b6: 4b4f ldr r3, [pc, #316] ; (80012f4 <keyIns+0x858>)
80011b8: 681b ldr r3, [r3, #0]
80011ba: 4013 ands r3, r2
80011bc: 2b00 cmp r3, #0
80011be: d110 bne.n 80011e2 <keyIns+0x746>
ACTIVE_CHANNEL = Ch2;
80011c0: 4b49 ldr r3, [pc, #292] ; (80012e8 <keyIns+0x84c>)
80011c2: 2201 movs r2, #1
80011c4: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
80011c6: 4b48 ldr r3, [pc, #288] ; (80012e8 <keyIns+0x84c>)
80011c8: 681b ldr r3, [r3, #0]
80011ca: 2201 movs r2, #1
80011cc: fa02 f303 lsl.w r3, r2, r3
80011d0: 461a mov r2, r3
80011d2: 4b48 ldr r3, [pc, #288] ; (80012f4 <keyIns+0x858>)
80011d4: 681b ldr r3, [r3, #0]
80011d6: 4013 ands r3, r2
80011d8: 2b00 cmp r3, #0
80011da: d102 bne.n 80011e2 <keyIns+0x746>
ACTIVE_CHANNEL = Ch3;
80011dc: 4b42 ldr r3, [pc, #264] ; (80012e8 <keyIns+0x84c>)
80011de: 2202 movs r2, #2
80011e0: 601a str r2, [r3, #0]
menupos = Input;
80011e2: 4b42 ldr r3, [pc, #264] ; (80012ec <keyIns+0x850>)
80011e4: 2200 movs r2, #0
80011e6: 701a strb r2, [r3, #0]
break;
80011e8: e1e4 b.n 80015b4 <keyIns+0xb18>
DoKeyDN();
80011ea: f001 fcf9 bl 8002be0 <DoKeyDN>
break;
80011ee: e1e1 b.n 80015b4 <keyIns+0xb18>
if(ACTIVE_CHANNEL == Ch4)
80011f0: 4b3d ldr r3, [pc, #244] ; (80012e8 <keyIns+0x84c>)
80011f2: 681b ldr r3, [r3, #0]
80011f4: 2b03 cmp r3, #3
80011f6: f040 81dd bne.w 80015b4 <keyIns+0xb18>
if(menupos == Out)
80011fa: 4b3c ldr r3, [pc, #240] ; (80012ec <keyIns+0x850>)
80011fc: 781b ldrb r3, [r3, #0]
80011fe: b2db uxtb r3, r3
8001200: 2b05 cmp r3, #5
8001202: d138 bne.n 8001276 <keyIns+0x7da>
if(focused)
8001204: 4b3a ldr r3, [pc, #232] ; (80012f0 <keyIns+0x854>)
8001206: 781b ldrb r3, [r3, #0]
8001208: b2db uxtb r3, r3
800120a: 2b00 cmp r3, #0
800120c: d002 beq.n 8001214 <keyIns+0x778>
DoKeyDN();
800120e: f001 fce7 bl 8002be0 <DoKeyDN>
break;
8001212: e1cf b.n 80015b4 <keyIns+0xb18>
ACTIVE_CHANNEL = Ch1;
8001214: 4b34 ldr r3, [pc, #208] ; (80012e8 <keyIns+0x84c>)
8001216: 2200 movs r2, #0
8001218: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
800121a: 4b33 ldr r3, [pc, #204] ; (80012e8 <keyIns+0x84c>)
800121c: 681b ldr r3, [r3, #0]
800121e: 2201 movs r2, #1
8001220: fa02 f303 lsl.w r3, r2, r3
8001224: 461a mov r2, r3
8001226: 4b33 ldr r3, [pc, #204] ; (80012f4 <keyIns+0x858>)
8001228: 681b ldr r3, [r3, #0]
800122a: 4013 ands r3, r2
800122c: 2b00 cmp r3, #0
800122e: d11e bne.n 800126e <keyIns+0x7d2>
ACTIVE_CHANNEL = Ch2;
8001230: 4b2d ldr r3, [pc, #180] ; (80012e8 <keyIns+0x84c>)
8001232: 2201 movs r2, #1
8001234: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001236: 4b2c ldr r3, [pc, #176] ; (80012e8 <keyIns+0x84c>)
8001238: 681b ldr r3, [r3, #0]
800123a: 2201 movs r2, #1
800123c: fa02 f303 lsl.w r3, r2, r3
8001240: 461a mov r2, r3
8001242: 4b2c ldr r3, [pc, #176] ; (80012f4 <keyIns+0x858>)
8001244: 681b ldr r3, [r3, #0]
8001246: 4013 ands r3, r2
8001248: 2b00 cmp r3, #0
800124a: d110 bne.n 800126e <keyIns+0x7d2>
ACTIVE_CHANNEL = Ch3;
800124c: 4b26 ldr r3, [pc, #152] ; (80012e8 <keyIns+0x84c>)
800124e: 2202 movs r2, #2
8001250: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001252: 4b25 ldr r3, [pc, #148] ; (80012e8 <keyIns+0x84c>)
8001254: 681b ldr r3, [r3, #0]
8001256: 2201 movs r2, #1
8001258: fa02 f303 lsl.w r3, r2, r3
800125c: 461a mov r2, r3
800125e: 4b25 ldr r3, [pc, #148] ; (80012f4 <keyIns+0x858>)
8001260: 681b ldr r3, [r3, #0]
8001262: 4013 ands r3, r2
8001264: 2b00 cmp r3, #0
8001266: d102 bne.n 800126e <keyIns+0x7d2>
ACTIVE_CHANNEL = Ch4;
8001268: 4b1f ldr r3, [pc, #124] ; (80012e8 <keyIns+0x84c>)
800126a: 2203 movs r2, #3
800126c: 601a str r2, [r3, #0]
menupos = Input;
800126e: 4b1f ldr r3, [pc, #124] ; (80012ec <keyIns+0x850>)
8001270: 2200 movs r2, #0
8001272: 701a strb r2, [r3, #0]
break;
8001274: e19e b.n 80015b4 <keyIns+0xb18>
DoKeyDN();
8001276: f001 fcb3 bl 8002be0 <DoKeyDN>
break;
800127a: e19b b.n 80015b4 <keyIns+0xb18>
if(menu == CALIBR_00)
800127c: 4b18 ldr r3, [pc, #96] ; (80012e0 <keyIns+0x844>)
800127e: 781b ldrb r3, [r3, #0]
8001280: b2db uxtb r3, r3
8001282: 2b01 cmp r3, #1
8001284: d10d bne.n 80012a2 <keyIns+0x806>
if(menupos < Ch5) menupos++;
8001286: 4b19 ldr r3, [pc, #100] ; (80012ec <keyIns+0x850>)
8001288: 781b ldrb r3, [r3, #0]
800128a: b2db uxtb r3, r3
800128c: 2b03 cmp r3, #3
800128e: f200 8191 bhi.w 80015b4 <keyIns+0xb18>
8001292: 4b16 ldr r3, [pc, #88] ; (80012ec <keyIns+0x850>)
8001294: 781b ldrb r3, [r3, #0]
8001296: b2db uxtb r3, r3
8001298: 3301 adds r3, #1
800129a: b2da uxtb r2, r3
800129c: 4b13 ldr r3, [pc, #76] ; (80012ec <keyIns+0x850>)
800129e: 701a strb r2, [r3, #0]
break;
80012a0: e188 b.n 80015b4 <keyIns+0xb18>
if(menu >= CALIBR_0 && menu <= CALIBR_22)
80012a2: 4b0f ldr r3, [pc, #60] ; (80012e0 <keyIns+0x844>)
80012a4: 781b ldrb r3, [r3, #0]
80012a6: b2db uxtb r3, r3
80012a8: 2b01 cmp r3, #1
80012aa: f240 8183 bls.w 80015b4 <keyIns+0xb18>
80012ae: 4b0c ldr r3, [pc, #48] ; (80012e0 <keyIns+0x844>)
80012b0: 781b ldrb r3, [r3, #0]
80012b2: b2db uxtb r3, r3
80012b4: 2b18 cmp r3, #24
80012b6: f200 817d bhi.w 80015b4 <keyIns+0xb18>
if(menupos == Set100)
80012ba: 4b0c ldr r3, [pc, #48] ; (80012ec <keyIns+0x850>)
80012bc: 781b ldrb r3, [r3, #0]
80012be: b2db uxtb r3, r3
80012c0: 2b00 cmp r3, #0
80012c2: d103 bne.n 80012cc <keyIns+0x830>
menupos = Set_100;
80012c4: 4b09 ldr r3, [pc, #36] ; (80012ec <keyIns+0x850>)
80012c6: 2201 movs r2, #1
80012c8: 701a strb r2, [r3, #0]
break;
80012ca: e173 b.n 80015b4 <keyIns+0xb18>
if(menupos == Set_100)
80012cc: 4b07 ldr r3, [pc, #28] ; (80012ec <keyIns+0x850>)
80012ce: 781b ldrb r3, [r3, #0]
80012d0: b2db uxtb r3, r3
80012d2: 2b01 cmp r3, #1
80012d4: d110 bne.n 80012f8 <keyIns+0x85c>
menupos = Set10;
80012d6: 4b05 ldr r3, [pc, #20] ; (80012ec <keyIns+0x850>)
80012d8: 2202 movs r2, #2
80012da: 701a strb r2, [r3, #0]
break;
80012dc: e16a b.n 80015b4 <keyIns+0xb18>
80012de: bf00 nop
80012e0: 20020245 .word 0x20020245
80012e4: 2006b2d4 .word 0x2006b2d4
80012e8: 2006b2d0 .word 0x2006b2d0
80012ec: 20020010 .word 0x20020010
80012f0: 20020250 .word 0x20020250
80012f4: 20020028 .word 0x20020028
if(menupos == Set10)
80012f8: 4ba7 ldr r3, [pc, #668] ; (8001598 <keyIns+0xafc>)
80012fa: 781b ldrb r3, [r3, #0]
80012fc: b2db uxtb r3, r3
80012fe: 2b02 cmp r3, #2
8001300: d103 bne.n 800130a <keyIns+0x86e>
menupos = Set_10;
8001302: 4ba5 ldr r3, [pc, #660] ; (8001598 <keyIns+0xafc>)
8001304: 2203 movs r2, #3
8001306: 701a strb r2, [r3, #0]
break;
8001308: e154 b.n 80015b4 <keyIns+0xb18>
if(menupos == Set_10)
800130a: 4ba3 ldr r3, [pc, #652] ; (8001598 <keyIns+0xafc>)
800130c: 781b ldrb r3, [r3, #0]
800130e: b2db uxtb r3, r3
8001310: 2b03 cmp r3, #3
8001312: d103 bne.n 800131c <keyIns+0x880>
menupos = Set1;
8001314: 4ba0 ldr r3, [pc, #640] ; (8001598 <keyIns+0xafc>)
8001316: 2204 movs r2, #4
8001318: 701a strb r2, [r3, #0]
break;
800131a: e14b b.n 80015b4 <keyIns+0xb18>
if(menupos == Set1)
800131c: 4b9e ldr r3, [pc, #632] ; (8001598 <keyIns+0xafc>)
800131e: 781b ldrb r3, [r3, #0]
8001320: b2db uxtb r3, r3
8001322: 2b04 cmp r3, #4
8001324: d103 bne.n 800132e <keyIns+0x892>
menupos = Set_1;
8001326: 4b9c ldr r3, [pc, #624] ; (8001598 <keyIns+0xafc>)
8001328: 2205 movs r2, #5
800132a: 701a strb r2, [r3, #0]
break;
800132c: e142 b.n 80015b4 <keyIns+0xb18>
if(menupos == Set_1)
800132e: 4b9a ldr r3, [pc, #616] ; (8001598 <keyIns+0xafc>)
8001330: 781b ldrb r3, [r3, #0]
8001332: b2db uxtb r3, r3
8001334: 2b05 cmp r3, #5
8001336: f040 813d bne.w 80015b4 <keyIns+0xb18>
menupos = Next;
800133a: 4b97 ldr r3, [pc, #604] ; (8001598 <keyIns+0xafc>)
800133c: 2206 movs r2, #6
800133e: 701a strb r2, [r3, #0]
break;
8001340: e138 b.n 80015b4 <keyIns+0xb18>
case KEY_OK: // TODO KEY OK
if(menu == MAIN)
8001342: 4b96 ldr r3, [pc, #600] ; (800159c <keyIns+0xb00>)
8001344: 781b ldrb r3, [r3, #0]
8001346: b2db uxtb r3, r3
8001348: 2b00 cmp r3, #0
800134a: d162 bne.n 8001412 <keyIns+0x976>
{
if(menupos != Sens)
800134c: 4b92 ldr r3, [pc, #584] ; (8001598 <keyIns+0xafc>)
800134e: 781b ldrb r3, [r3, #0]
8001350: b2db uxtb r3, r3
8001352: 2b03 cmp r3, #3
8001354: d047 beq.n 80013e6 <keyIns+0x94a>
{
if(menupos >= Kikdt && menupos <= Kpt)
8001356: 4b90 ldr r3, [pc, #576] ; (8001598 <keyIns+0xafc>)
8001358: 781b ldrb r3, [r3, #0]
800135a: b2db uxtb r3, r3
800135c: 2b05 cmp r3, #5
800135e: d934 bls.n 80013ca <keyIns+0x92e>
8001360: 4b8d ldr r3, [pc, #564] ; (8001598 <keyIns+0xafc>)
8001362: 781b ldrb r3, [r3, #0]
8001364: b2db uxtb r3, r3
8001366: 2b0b cmp r3, #11
8001368: d82f bhi.n 80013ca <keyIns+0x92e>
{
if(menupos < Kpt)
800136a: 4b8b ldr r3, [pc, #556] ; (8001598 <keyIns+0xafc>)
800136c: 781b ldrb r3, [r3, #0]
800136e: b2db uxtb r3, r3
8001370: 2b0a cmp r3, #10
8001372: d80a bhi.n 800138a <keyIns+0x8ee>
{
focused = true;
8001374: 4b8a ldr r3, [pc, #552] ; (80015a0 <keyIns+0xb04>)
8001376: 2201 movs r2, #1
8001378: 701a strb r2, [r3, #0]
menupos++;
800137a: 4b87 ldr r3, [pc, #540] ; (8001598 <keyIns+0xafc>)
800137c: 781b ldrb r3, [r3, #0]
800137e: b2db uxtb r3, r3
8001380: 3301 adds r3, #1
8001382: b2da uxtb r2, r3
8001384: 4b84 ldr r3, [pc, #528] ; (8001598 <keyIns+0xafc>)
8001386: 701a strb r2, [r3, #0]
if(menupos < Kpt)
8001388: e100 b.n 800158c <keyIns+0xaf0>
}
else
{
focused = false;
800138a: 4b85 ldr r3, [pc, #532] ; (80015a0 <keyIns+0xb04>)
800138c: 2200 movs r2, #0
800138e: 701a strb r2, [r3, #0]
menupos = Sens;
8001390: 4b81 ldr r3, [pc, #516] ; (8001598 <keyIns+0xafc>)
8001392: 2203 movs r2, #3
8001394: 701a strb r2, [r3, #0]
if(WriteChannelSens(ACTIVE_CHANNEL))
8001396: 4b83 ldr r3, [pc, #524] ; (80015a4 <keyIns+0xb08>)
8001398: 681b ldr r3, [r3, #0]
800139a: b2db uxtb r3, r3
800139c: 4618 mov r0, r3
800139e: f00b fe67 bl 800d070 <WriteChannelSens>
80013a2: 4603 mov r3, r0
80013a4: 2b00 cmp r3, #0
80013a6: d009 beq.n 80013bc <keyIns+0x920>
{
memcpy((void *) &pardata, (void *) &pardata_old, sizeof(UserData_TypeDef));
80013a8: 4a7f ldr r2, [pc, #508] ; (80015a8 <keyIns+0xb0c>)
80013aa: 4b80 ldr r3, [pc, #512] ; (80015ac <keyIns+0xb10>)
80013ac: 4610 mov r0, r2
80013ae: 4619 mov r1, r3
80013b0: f44f 7302 mov.w r3, #520 ; 0x208
80013b4: 461a mov r2, r3
80013b6: f010 ffa3 bl 8012300 <memcpy>
if(menupos < Kpt)
80013ba: e0e7 b.n 800158c <keyIns+0xaf0>
}
else
{
WriteChannel(ACTIVE_CHANNEL);
80013bc: 4b79 ldr r3, [pc, #484] ; (80015a4 <keyIns+0xb08>)
80013be: 681b ldr r3, [r3, #0]
80013c0: b2db uxtb r3, r3
80013c2: 4618 mov r0, r3
80013c4: f00b fb26 bl 800ca14 <WriteChannel>
if(menupos < Kpt)
80013c8: e0e0 b.n 800158c <keyIns+0xaf0>
}
}
}
else
focused ^= 1;
80013ca: 4b75 ldr r3, [pc, #468] ; (80015a0 <keyIns+0xb04>)
80013cc: 781b ldrb r3, [r3, #0]
80013ce: b2db uxtb r3, r3
80013d0: f083 0301 eor.w r3, r3, #1
80013d4: b2db uxtb r3, r3
80013d6: 2b00 cmp r3, #0
80013d8: bf14 ite ne
80013da: 2301 movne r3, #1
80013dc: 2300 moveq r3, #0
80013de: b2da uxtb r2, r3
80013e0: 4b6f ldr r3, [pc, #444] ; (80015a0 <keyIns+0xb04>)
80013e2: 701a strb r2, [r3, #0]
{
WriteCorr(ACTIVE_CHANNEL, (menu - 2), 100);
}
}
}
break;
80013e4: e0e8 b.n 80015b8 <keyIns+0xb1c>
if(menupos == Sens)
80013e6: 4b6c ldr r3, [pc, #432] ; (8001598 <keyIns+0xafc>)
80013e8: 781b ldrb r3, [r3, #0]
80013ea: b2db uxtb r3, r3
80013ec: 2b03 cmp r3, #3
80013ee: f040 80e3 bne.w 80015b8 <keyIns+0xb1c>
memcpy((void *) &pardata_old, (void *) &pardata, sizeof(UserData_TypeDef));
80013f2: 4a6e ldr r2, [pc, #440] ; (80015ac <keyIns+0xb10>)
80013f4: 4b6c ldr r3, [pc, #432] ; (80015a8 <keyIns+0xb0c>)
80013f6: 4610 mov r0, r2
80013f8: 4619 mov r1, r3
80013fa: f44f 7302 mov.w r3, #520 ; 0x208
80013fe: 461a mov r2, r3
8001400: f010 ff7e bl 8012300 <memcpy>
focused = true;
8001404: 4b66 ldr r3, [pc, #408] ; (80015a0 <keyIns+0xb04>)
8001406: 2201 movs r2, #1
8001408: 701a strb r2, [r3, #0]
menupos = Kikdt;
800140a: 4b63 ldr r3, [pc, #396] ; (8001598 <keyIns+0xafc>)
800140c: 2206 movs r2, #6
800140e: 701a strb r2, [r3, #0]
break;
8001410: e0d2 b.n 80015b8 <keyIns+0xb1c>
if(menu == CALIBR_00)
8001412: 4b62 ldr r3, [pc, #392] ; (800159c <keyIns+0xb00>)
8001414: 781b ldrb r3, [r3, #0]
8001416: b2db uxtb r3, r3
8001418: 2b01 cmp r3, #1
800141a: d11d bne.n 8001458 <keyIns+0x9bc>
if(menupos <= Ch4)
800141c: 4b5e ldr r3, [pc, #376] ; (8001598 <keyIns+0xafc>)
800141e: 781b ldrb r3, [r3, #0]
8001420: b2db uxtb r3, r3
8001422: 2b03 cmp r3, #3
8001424: d813 bhi.n 800144e <keyIns+0x9b2>
ACTIVE_CHANNEL = menupos;
8001426: 4b5c ldr r3, [pc, #368] ; (8001598 <keyIns+0xafc>)
8001428: 781b ldrb r3, [r3, #0]
800142a: b2db uxtb r3, r3
800142c: 461a mov r2, r3
800142e: 4b5d ldr r3, [pc, #372] ; (80015a4 <keyIns+0xb08>)
8001430: 601a str r2, [r3, #0]
menu = CALIBR_0;
8001432: 4b5a ldr r3, [pc, #360] ; (800159c <keyIns+0xb00>)
8001434: 2202 movs r2, #2
8001436: 701a strb r2, [r3, #0]
menupos = Next;
8001438: 4b57 ldr r3, [pc, #348] ; (8001598 <keyIns+0xafc>)
800143a: 2206 movs r2, #6
800143c: 701a strb r2, [r3, #0]
Calibr(ACTIVE_CHANNEL, 1);
800143e: 4b59 ldr r3, [pc, #356] ; (80015a4 <keyIns+0xb08>)
8001440: 681b ldr r3, [r3, #0]
8001442: b2db uxtb r3, r3
8001444: 2101 movs r1, #1
8001446: 4618 mov r0, r3
8001448: f00b ff56 bl 800d2f8 <Calibr>
break;
800144c: e0b4 b.n 80015b8 <keyIns+0xb1c>
CalibrOFF();
800144e: f00c f9cd bl 800d7ec <CalibrOFF>
Off();
8001452: f7ff f881 bl 8000558 <Off>
break;
8001456: e0af b.n 80015b8 <keyIns+0xb1c>
if(menu >= CALIBR_0 && menu <= CALIBR_22)
8001458: 4b50 ldr r3, [pc, #320] ; (800159c <keyIns+0xb00>)
800145a: 781b ldrb r3, [r3, #0]
800145c: b2db uxtb r3, r3
800145e: 2b01 cmp r3, #1
8001460: f240 80aa bls.w 80015b8 <keyIns+0xb1c>
8001464: 4b4d ldr r3, [pc, #308] ; (800159c <keyIns+0xb00>)
8001466: 781b ldrb r3, [r3, #0]
8001468: b2db uxtb r3, r3
800146a: 2b18 cmp r3, #24
800146c: f200 80a4 bhi.w 80015b8 <keyIns+0xb1c>
if(menupos == Next)
8001470: 4b49 ldr r3, [pc, #292] ; (8001598 <keyIns+0xafc>)
8001472: 781b ldrb r3, [r3, #0]
8001474: b2db uxtb r3, r3
8001476: 2b06 cmp r3, #6
8001478: d11c bne.n 80014b4 <keyIns+0xa18>
if(menu == CALIBR_22)
800147a: 4b48 ldr r3, [pc, #288] ; (800159c <keyIns+0xb00>)
800147c: 781b ldrb r3, [r3, #0]
800147e: b2db uxtb r3, r3
8001480: 2b18 cmp r3, #24
8001482: d108 bne.n 8001496 <keyIns+0x9fa>
menu = CALIBR_00;
8001484: 4b45 ldr r3, [pc, #276] ; (800159c <keyIns+0xb00>)
8001486: 2201 movs r2, #1
8001488: 701a strb r2, [r3, #0]
menupos = ACTIVE_CHANNEL;
800148a: 4b46 ldr r3, [pc, #280] ; (80015a4 <keyIns+0xb08>)
800148c: 681b ldr r3, [r3, #0]
800148e: b2da uxtb r2, r3
8001490: 4b41 ldr r3, [pc, #260] ; (8001598 <keyIns+0xafc>)
8001492: 701a strb r2, [r3, #0]
break;
8001494: e090 b.n 80015b8 <keyIns+0xb1c>
menu++;
8001496: 4b41 ldr r3, [pc, #260] ; (800159c <keyIns+0xb00>)
8001498: 781b ldrb r3, [r3, #0]
800149a: b2db uxtb r3, r3
800149c: 3301 adds r3, #1
800149e: b2da uxtb r2, r3
80014a0: 4b3e ldr r3, [pc, #248] ; (800159c <keyIns+0xb00>)
80014a2: 701a strb r2, [r3, #0]
Calibr(ACTIVE_CHANNEL, 1);
80014a4: 4b3f ldr r3, [pc, #252] ; (80015a4 <keyIns+0xb08>)
80014a6: 681b ldr r3, [r3, #0]
80014a8: b2db uxtb r3, r3
80014aa: 2101 movs r1, #1
80014ac: 4618 mov r0, r3
80014ae: f00b ff23 bl 800d2f8 <Calibr>
break;
80014b2: e081 b.n 80015b8 <keyIns+0xb1c>
if(menupos == Set_1)
80014b4: 4b38 ldr r3, [pc, #224] ; (8001598 <keyIns+0xafc>)
80014b6: 781b ldrb r3, [r3, #0]
80014b8: b2db uxtb r3, r3
80014ba: 2b05 cmp r3, #5
80014bc: d10c bne.n 80014d8 <keyIns+0xa3c>
WriteCorr(ACTIVE_CHANNEL, (menu - 2), (0x01 | 0x80));
80014be: 4b39 ldr r3, [pc, #228] ; (80015a4 <keyIns+0xb08>)
80014c0: 681b ldr r3, [r3, #0]
80014c2: b2d8 uxtb r0, r3
80014c4: 4b35 ldr r3, [pc, #212] ; (800159c <keyIns+0xb00>)
80014c6: 781b ldrb r3, [r3, #0]
80014c8: b2db uxtb r3, r3
80014ca: 3b02 subs r3, #2
80014cc: b2db uxtb r3, r3
80014ce: 2281 movs r2, #129 ; 0x81
80014d0: 4619 mov r1, r3
80014d2: f00c f853 bl 800d57c <WriteCorr>
break;
80014d6: e06f b.n 80015b8 <keyIns+0xb1c>
if(menupos == Set1)
80014d8: 4b2f ldr r3, [pc, #188] ; (8001598 <keyIns+0xafc>)
80014da: 781b ldrb r3, [r3, #0]
80014dc: b2db uxtb r3, r3
80014de: 2b04 cmp r3, #4
80014e0: d10c bne.n 80014fc <keyIns+0xa60>
WriteCorr(ACTIVE_CHANNEL, (menu - 2), 0x01);
80014e2: 4b30 ldr r3, [pc, #192] ; (80015a4 <keyIns+0xb08>)
80014e4: 681b ldr r3, [r3, #0]
80014e6: b2d8 uxtb r0, r3
80014e8: 4b2c ldr r3, [pc, #176] ; (800159c <keyIns+0xb00>)
80014ea: 781b ldrb r3, [r3, #0]
80014ec: b2db uxtb r3, r3
80014ee: 3b02 subs r3, #2
80014f0: b2db uxtb r3, r3
80014f2: 2201 movs r2, #1
80014f4: 4619 mov r1, r3
80014f6: f00c f841 bl 800d57c <WriteCorr>
break;
80014fa: e05d b.n 80015b8 <keyIns+0xb1c>
if(menupos == Set_10)
80014fc: 4b26 ldr r3, [pc, #152] ; (8001598 <keyIns+0xafc>)
80014fe: 781b ldrb r3, [r3, #0]
8001500: b2db uxtb r3, r3
8001502: 2b03 cmp r3, #3
8001504: d10c bne.n 8001520 <keyIns+0xa84>
WriteCorr(ACTIVE_CHANNEL, (menu - 2), (10 | 0x80));
8001506: 4b27 ldr r3, [pc, #156] ; (80015a4 <keyIns+0xb08>)
8001508: 681b ldr r3, [r3, #0]
800150a: b2d8 uxtb r0, r3
800150c: 4b23 ldr r3, [pc, #140] ; (800159c <keyIns+0xb00>)
800150e: 781b ldrb r3, [r3, #0]
8001510: b2db uxtb r3, r3
8001512: 3b02 subs r3, #2
8001514: b2db uxtb r3, r3
8001516: 228a movs r2, #138 ; 0x8a
8001518: 4619 mov r1, r3
800151a: f00c f82f bl 800d57c <WriteCorr>
break;
800151e: e04b b.n 80015b8 <keyIns+0xb1c>
if(menupos == Set10)
8001520: 4b1d ldr r3, [pc, #116] ; (8001598 <keyIns+0xafc>)
8001522: 781b ldrb r3, [r3, #0]
8001524: b2db uxtb r3, r3
8001526: 2b02 cmp r3, #2
8001528: d10c bne.n 8001544 <keyIns+0xaa8>
WriteCorr(ACTIVE_CHANNEL, (menu - 2), 10);
800152a: 4b1e ldr r3, [pc, #120] ; (80015a4 <keyIns+0xb08>)
800152c: 681b ldr r3, [r3, #0]
800152e: b2d8 uxtb r0, r3
8001530: 4b1a ldr r3, [pc, #104] ; (800159c <keyIns+0xb00>)
8001532: 781b ldrb r3, [r3, #0]
8001534: b2db uxtb r3, r3
8001536: 3b02 subs r3, #2
8001538: b2db uxtb r3, r3
800153a: 220a movs r2, #10
800153c: 4619 mov r1, r3
800153e: f00c f81d bl 800d57c <WriteCorr>
break;
8001542: e039 b.n 80015b8 <keyIns+0xb1c>
if(menupos == Set_100)
8001544: 4b14 ldr r3, [pc, #80] ; (8001598 <keyIns+0xafc>)
8001546: 781b ldrb r3, [r3, #0]
8001548: b2db uxtb r3, r3
800154a: 2b01 cmp r3, #1
800154c: d10c bne.n 8001568 <keyIns+0xacc>
WriteCorr(ACTIVE_CHANNEL, (menu - 2), (100 | 0x80));
800154e: 4b15 ldr r3, [pc, #84] ; (80015a4 <keyIns+0xb08>)
8001550: 681b ldr r3, [r3, #0]
8001552: b2d8 uxtb r0, r3
8001554: 4b11 ldr r3, [pc, #68] ; (800159c <keyIns+0xb00>)
8001556: 781b ldrb r3, [r3, #0]
8001558: b2db uxtb r3, r3
800155a: 3b02 subs r3, #2
800155c: b2db uxtb r3, r3
800155e: 22e4 movs r2, #228 ; 0xe4
8001560: 4619 mov r1, r3
8001562: f00c f80b bl 800d57c <WriteCorr>
break;
8001566: e027 b.n 80015b8 <keyIns+0xb1c>
if(menupos == Set100)
8001568: 4b0b ldr r3, [pc, #44] ; (8001598 <keyIns+0xafc>)
800156a: 781b ldrb r3, [r3, #0]
800156c: b2db uxtb r3, r3
800156e: 2b00 cmp r3, #0
8001570: d122 bne.n 80015b8 <keyIns+0xb1c>
WriteCorr(ACTIVE_CHANNEL, (menu - 2), 100);
8001572: 4b0c ldr r3, [pc, #48] ; (80015a4 <keyIns+0xb08>)
8001574: 681b ldr r3, [r3, #0]
8001576: b2d8 uxtb r0, r3
8001578: 4b08 ldr r3, [pc, #32] ; (800159c <keyIns+0xb00>)
800157a: 781b ldrb r3, [r3, #0]
800157c: b2db uxtb r3, r3
800157e: 3b02 subs r3, #2
8001580: b2db uxtb r3, r3
8001582: 2264 movs r2, #100 ; 0x64
8001584: 4619 mov r1, r3
8001586: f00b fff9 bl 800d57c <WriteCorr>
break;
800158a: e015 b.n 80015b8 <keyIns+0xb1c>
800158c: e014 b.n 80015b8 <keyIns+0xb1c>
case KEY_PW:
Off();
800158e: f7fe ffe3 bl 8000558 <Off>
break;
8001592: bf00 nop
8001594: e011 b.n 80015ba <keyIns+0xb1e>
8001596: bf00 nop
8001598: 20020010 .word 0x20020010
800159c: 20020245 .word 0x20020245
80015a0: 20020250 .word 0x20020250
80015a4: 2006b2d0 .word 0x2006b2d0
80015a8: 2006b510 .word 0x2006b510
80015ac: 2006b784 .word 0x2006b784
break;
80015b0: bf00 nop
80015b2: e002 b.n 80015ba <keyIns+0xb1e>
break;
80015b4: bf00 nop
80015b6: e000 b.n 80015ba <keyIns+0xb1e>
break;
80015b8: bf00 nop
}
}
}
80015ba: 3778 adds r7, #120 ; 0x78
80015bc: 46bd mov sp, r7
80015be: bd80 pop {r7, pc}
080015c0 <DoKeyUP>:
void DoKeyUP(void)
{
80015c0: b580 push {r7, lr}
80015c2: b088 sub sp, #32
80015c4: af00 add r7, sp, #0
uint32_t s, ikdt, ikt, iks, ikd, ike, ipt;
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10.0f) {
80015c6: 4b5f ldr r3, [pc, #380] ; (8001744 <DoKeyUP+0x184>)
80015c8: 681b ldr r3, [r3, #0]
80015ca: 4a5f ldr r2, [pc, #380] ; (8001748 <DoKeyUP+0x188>)
80015cc: 015b lsls r3, r3, #5
80015ce: 4413 add r3, r2
80015d0: 3318 adds r3, #24
80015d2: edd3 7a00 vldr s15, [r3]
80015d6: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
80015da: eef4 7ac7 vcmpe.f32 s15, s14
80015de: eef1 fa10 vmrs APSR_nzcv, fpscr
80015e2: d517 bpl.n 8001614 <DoKeyUP+0x54>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10000.0f) + 0.5f);
80015e4: 4b57 ldr r3, [pc, #348] ; (8001744 <DoKeyUP+0x184>)
80015e6: 681b ldr r3, [r3, #0]
80015e8: 4a57 ldr r2, [pc, #348] ; (8001748 <DoKeyUP+0x188>)
80015ea: 015b lsls r3, r3, #5
80015ec: 4413 add r3, r2
80015ee: 3318 adds r3, #24
80015f0: edd3 7a00 vldr s15, [r3]
80015f4: ed9f 7a55 vldr s14, [pc, #340] ; 800174c <DoKeyUP+0x18c>
80015f8: ee67 7a87 vmul.f32 s15, s15, s14
80015fc: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8001600: ee77 7a87 vadd.f32 s15, s15, s14
8001604: eefc 7ae7 vcvt.u32.f32 s15, s15
8001608: ee17 3a90 vmov r3, s15
800160c: 61fb str r3, [r7, #28]
ipt = 4;
800160e: 2304 movs r3, #4
8001610: 607b str r3, [r7, #4]
8001612: e0be b.n 8001792 <DoKeyUP+0x1d2>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100.0f) {
8001614: 4b4b ldr r3, [pc, #300] ; (8001744 <DoKeyUP+0x184>)
8001616: 681b ldr r3, [r3, #0]
8001618: 4a4b ldr r2, [pc, #300] ; (8001748 <DoKeyUP+0x188>)
800161a: 015b lsls r3, r3, #5
800161c: 4413 add r3, r2
800161e: 3318 adds r3, #24
8001620: edd3 7a00 vldr s15, [r3]
8001624: ed9f 7a4a vldr s14, [pc, #296] ; 8001750 <DoKeyUP+0x190>
8001628: eef4 7ac7 vcmpe.f32 s15, s14
800162c: eef1 fa10 vmrs APSR_nzcv, fpscr
8001630: d517 bpl.n 8001662 <DoKeyUP+0xa2>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 1000.0f) + 0.5f);
8001632: 4b44 ldr r3, [pc, #272] ; (8001744 <DoKeyUP+0x184>)
8001634: 681b ldr r3, [r3, #0]
8001636: 4a44 ldr r2, [pc, #272] ; (8001748 <DoKeyUP+0x188>)
8001638: 015b lsls r3, r3, #5
800163a: 4413 add r3, r2
800163c: 3318 adds r3, #24
800163e: edd3 7a00 vldr s15, [r3]
8001642: ed9f 7a44 vldr s14, [pc, #272] ; 8001754 <DoKeyUP+0x194>
8001646: ee67 7a87 vmul.f32 s15, s15, s14
800164a: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800164e: ee77 7a87 vadd.f32 s15, s15, s14
8001652: eefc 7ae7 vcvt.u32.f32 s15, s15
8001656: ee17 3a90 vmov r3, s15
800165a: 61fb str r3, [r7, #28]
ipt = 3;
800165c: 2303 movs r3, #3
800165e: 607b str r3, [r7, #4]
8001660: e097 b.n 8001792 <DoKeyUP+0x1d2>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 1000.0f) {
8001662: 4b38 ldr r3, [pc, #224] ; (8001744 <DoKeyUP+0x184>)
8001664: 681b ldr r3, [r3, #0]
8001666: 4a38 ldr r2, [pc, #224] ; (8001748 <DoKeyUP+0x188>)
8001668: 015b lsls r3, r3, #5
800166a: 4413 add r3, r2
800166c: 3318 adds r3, #24
800166e: edd3 7a00 vldr s15, [r3]
8001672: ed9f 7a38 vldr s14, [pc, #224] ; 8001754 <DoKeyUP+0x194>
8001676: eef4 7ac7 vcmpe.f32 s15, s14
800167a: eef1 fa10 vmrs APSR_nzcv, fpscr
800167e: d517 bpl.n 80016b0 <DoKeyUP+0xf0>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 100.0f) + 0.5f);
8001680: 4b30 ldr r3, [pc, #192] ; (8001744 <DoKeyUP+0x184>)
8001682: 681b ldr r3, [r3, #0]
8001684: 4a30 ldr r2, [pc, #192] ; (8001748 <DoKeyUP+0x188>)
8001686: 015b lsls r3, r3, #5
8001688: 4413 add r3, r2
800168a: 3318 adds r3, #24
800168c: edd3 7a00 vldr s15, [r3]
8001690: ed9f 7a2f vldr s14, [pc, #188] ; 8001750 <DoKeyUP+0x190>
8001694: ee67 7a87 vmul.f32 s15, s15, s14
8001698: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800169c: ee77 7a87 vadd.f32 s15, s15, s14
80016a0: eefc 7ae7 vcvt.u32.f32 s15, s15
80016a4: ee17 3a90 vmov r3, s15
80016a8: 61fb str r3, [r7, #28]
ipt = 2;
80016aa: 2302 movs r3, #2
80016ac: 607b str r3, [r7, #4]
80016ae: e070 b.n 8001792 <DoKeyUP+0x1d2>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10000.0f) {
80016b0: 4b24 ldr r3, [pc, #144] ; (8001744 <DoKeyUP+0x184>)
80016b2: 681b ldr r3, [r3, #0]
80016b4: 4a24 ldr r2, [pc, #144] ; (8001748 <DoKeyUP+0x188>)
80016b6: 015b lsls r3, r3, #5
80016b8: 4413 add r3, r2
80016ba: 3318 adds r3, #24
80016bc: edd3 7a00 vldr s15, [r3]
80016c0: ed9f 7a22 vldr s14, [pc, #136] ; 800174c <DoKeyUP+0x18c>
80016c4: eef4 7ac7 vcmpe.f32 s15, s14
80016c8: eef1 fa10 vmrs APSR_nzcv, fpscr
80016cc: d517 bpl.n 80016fe <DoKeyUP+0x13e>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10.0f) + 0.5f);
80016ce: 4b1d ldr r3, [pc, #116] ; (8001744 <DoKeyUP+0x184>)
80016d0: 681b ldr r3, [r3, #0]
80016d2: 4a1d ldr r2, [pc, #116] ; (8001748 <DoKeyUP+0x188>)
80016d4: 015b lsls r3, r3, #5
80016d6: 4413 add r3, r2
80016d8: 3318 adds r3, #24
80016da: edd3 7a00 vldr s15, [r3]
80016de: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
80016e2: ee67 7a87 vmul.f32 s15, s15, s14
80016e6: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
80016ea: ee77 7a87 vadd.f32 s15, s15, s14
80016ee: eefc 7ae7 vcvt.u32.f32 s15, s15
80016f2: ee17 3a90 vmov r3, s15
80016f6: 61fb str r3, [r7, #28]
ipt = 1;
80016f8: 2301 movs r3, #1
80016fa: 607b str r3, [r7, #4]
80016fc: e049 b.n 8001792 <DoKeyUP+0x1d2>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) {
80016fe: 4b11 ldr r3, [pc, #68] ; (8001744 <DoKeyUP+0x184>)
8001700: 681b ldr r3, [r3, #0]
8001702: 4a11 ldr r2, [pc, #68] ; (8001748 <DoKeyUP+0x188>)
8001704: 015b lsls r3, r3, #5
8001706: 4413 add r3, r2
8001708: 3318 adds r3, #24
800170a: edd3 7a00 vldr s15, [r3]
800170e: ed9f 7a12 vldr s14, [pc, #72] ; 8001758 <DoKeyUP+0x198>
8001712: eef4 7ac7 vcmpe.f32 s15, s14
8001716: eef1 fa10 vmrs APSR_nzcv, fpscr
800171a: d51f bpl.n 800175c <DoKeyUP+0x19c>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS) + 0.5f);
800171c: 4b09 ldr r3, [pc, #36] ; (8001744 <DoKeyUP+0x184>)
800171e: 681b ldr r3, [r3, #0]
8001720: 4a09 ldr r2, [pc, #36] ; (8001748 <DoKeyUP+0x188>)
8001722: 015b lsls r3, r3, #5
8001724: 4413 add r3, r2
8001726: 3318 adds r3, #24
8001728: edd3 7a00 vldr s15, [r3]
800172c: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8001730: ee77 7a87 vadd.f32 s15, s15, s14
8001734: eefc 7ae7 vcvt.u32.f32 s15, s15
8001738: ee17 3a90 vmov r3, s15
800173c: 61fb str r3, [r7, #28]
ipt = 0;
800173e: 2300 movs r3, #0
8001740: 607b str r3, [r7, #4]
8001742: e026 b.n 8001792 <DoKeyUP+0x1d2>
8001744: 2006b2d0 .word 0x2006b2d0
8001748: 2006b510 .word 0x2006b510
800174c: 461c4000 .word 0x461c4000
8001750: 42c80000 .word 0x42c80000
8001754: 447a0000 .word 0x447a0000
8001758: 47c35000 .word 0x47c35000
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
800175c: 4bb4 ldr r3, [pc, #720] ; (8001a30 <DoKeyUP+0x470>)
800175e: 681b ldr r3, [r3, #0]
8001760: 4ab4 ldr r2, [pc, #720] ; (8001a34 <DoKeyUP+0x474>)
8001762: 015b lsls r3, r3, #5
8001764: 4413 add r3, r2
8001766: 3318 adds r3, #24
8001768: edd3 7a00 vldr s15, [r3]
800176c: ed9f 7ab2 vldr s14, [pc, #712] ; 8001a38 <DoKeyUP+0x478>
8001770: eef4 7ac7 vcmpe.f32 s15, s14
8001774: eef1 fa10 vmrs APSR_nzcv, fpscr
8001778: db0b blt.n 8001792 <DoKeyUP+0x1d2>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
800177a: 4bad ldr r3, [pc, #692] ; (8001a30 <DoKeyUP+0x470>)
800177c: 681b ldr r3, [r3, #0]
800177e: 4aad ldr r2, [pc, #692] ; (8001a34 <DoKeyUP+0x474>)
8001780: 015b lsls r3, r3, #5
8001782: 4413 add r3, r2
8001784: 3318 adds r3, #24
8001786: 4aad ldr r2, [pc, #692] ; (8001a3c <DoKeyUP+0x47c>)
8001788: 601a str r2, [r3, #0]
s = 99999;
800178a: 4bad ldr r3, [pc, #692] ; (8001a40 <DoKeyUP+0x480>)
800178c: 61fb str r3, [r7, #28]
ipt = 0;
800178e: 2300 movs r3, #0
8001790: 607b str r3, [r7, #4]
}
ikdt = (s / 10000);
8001792: 69fb ldr r3, [r7, #28]
8001794: 4aab ldr r2, [pc, #684] ; (8001a44 <DoKeyUP+0x484>)
8001796: fba2 2303 umull r2, r3, r2, r3
800179a: 0b5b lsrs r3, r3, #13
800179c: 61bb str r3, [r7, #24]
ikt = (s % 10000 / 1000);
800179e: 69fa ldr r2, [r7, #28]
80017a0: 4ba8 ldr r3, [pc, #672] ; (8001a44 <DoKeyUP+0x484>)
80017a2: fba3 1302 umull r1, r3, r3, r2
80017a6: 0b5b lsrs r3, r3, #13
80017a8: f242 7110 movw r1, #10000 ; 0x2710
80017ac: fb01 f303 mul.w r3, r1, r3
80017b0: 1ad3 subs r3, r2, r3
80017b2: 4aa5 ldr r2, [pc, #660] ; (8001a48 <DoKeyUP+0x488>)
80017b4: fba2 2303 umull r2, r3, r2, r3
80017b8: 099b lsrs r3, r3, #6
80017ba: 617b str r3, [r7, #20]
iks = (s % 10000 % 1000 / 100);
80017bc: 69fa ldr r2, [r7, #28]
80017be: 4ba1 ldr r3, [pc, #644] ; (8001a44 <DoKeyUP+0x484>)
80017c0: fba3 1302 umull r1, r3, r3, r2
80017c4: 0b5b lsrs r3, r3, #13
80017c6: f242 7110 movw r1, #10000 ; 0x2710
80017ca: fb01 f303 mul.w r3, r1, r3
80017ce: 1ad3 subs r3, r2, r3
80017d0: 4a9d ldr r2, [pc, #628] ; (8001a48 <DoKeyUP+0x488>)
80017d2: fba2 1203 umull r1, r2, r2, r3
80017d6: 0992 lsrs r2, r2, #6
80017d8: f44f 717a mov.w r1, #1000 ; 0x3e8
80017dc: fb01 f202 mul.w r2, r1, r2
80017e0: 1a9a subs r2, r3, r2
80017e2: 4b9a ldr r3, [pc, #616] ; (8001a4c <DoKeyUP+0x48c>)
80017e4: fba3 2302 umull r2, r3, r3, r2
80017e8: 095b lsrs r3, r3, #5
80017ea: 613b str r3, [r7, #16]
ikd = (s % 10000 % 1000 % 100 / 10);
80017ec: 69fb ldr r3, [r7, #28]
80017ee: 4a95 ldr r2, [pc, #596] ; (8001a44 <DoKeyUP+0x484>)
80017f0: fba2 1203 umull r1, r2, r2, r3
80017f4: 0b52 lsrs r2, r2, #13
80017f6: f242 7110 movw r1, #10000 ; 0x2710
80017fa: fb01 f202 mul.w r2, r1, r2
80017fe: 1a9a subs r2, r3, r2
8001800: 4b91 ldr r3, [pc, #580] ; (8001a48 <DoKeyUP+0x488>)
8001802: fba3 1302 umull r1, r3, r3, r2
8001806: 099b lsrs r3, r3, #6
8001808: f44f 717a mov.w r1, #1000 ; 0x3e8
800180c: fb01 f303 mul.w r3, r1, r3
8001810: 1ad3 subs r3, r2, r3
8001812: 4a8e ldr r2, [pc, #568] ; (8001a4c <DoKeyUP+0x48c>)
8001814: fba2 1203 umull r1, r2, r2, r3
8001818: 0952 lsrs r2, r2, #5
800181a: 2164 movs r1, #100 ; 0x64
800181c: fb01 f202 mul.w r2, r1, r2
8001820: 1a9a subs r2, r3, r2
8001822: 4b8b ldr r3, [pc, #556] ; (8001a50 <DoKeyUP+0x490>)
8001824: fba3 2302 umull r2, r3, r3, r2
8001828: 08db lsrs r3, r3, #3
800182a: 60fb str r3, [r7, #12]
ike = (s % 10000 % 1000 % 100 % 10);
800182c: 69fb ldr r3, [r7, #28]
800182e: 4a85 ldr r2, [pc, #532] ; (8001a44 <DoKeyUP+0x484>)
8001830: fba2 1203 umull r1, r2, r2, r3
8001834: 0b52 lsrs r2, r2, #13
8001836: f242 7110 movw r1, #10000 ; 0x2710
800183a: fb01 f202 mul.w r2, r1, r2
800183e: 1a9a subs r2, r3, r2
8001840: 4b81 ldr r3, [pc, #516] ; (8001a48 <DoKeyUP+0x488>)
8001842: fba3 1302 umull r1, r3, r3, r2
8001846: 099b lsrs r3, r3, #6
8001848: f44f 717a mov.w r1, #1000 ; 0x3e8
800184c: fb01 f303 mul.w r3, r1, r3
8001850: 1ad3 subs r3, r2, r3
8001852: 4a7e ldr r2, [pc, #504] ; (8001a4c <DoKeyUP+0x48c>)
8001854: fba2 1203 umull r1, r2, r2, r3
8001858: 0952 lsrs r2, r2, #5
800185a: 2164 movs r1, #100 ; 0x64
800185c: fb01 f202 mul.w r2, r1, r2
8001860: 1a9a subs r2, r3, r2
8001862: 4b7b ldr r3, [pc, #492] ; (8001a50 <DoKeyUP+0x490>)
8001864: fba3 1302 umull r1, r3, r3, r2
8001868: 08d9 lsrs r1, r3, #3
800186a: 460b mov r3, r1
800186c: 009b lsls r3, r3, #2
800186e: 440b add r3, r1
8001870: 005b lsls r3, r3, #1
8001872: 1ad3 subs r3, r2, r3
8001874: 60bb str r3, [r7, #8]
if(menupos == Hp)
8001876: 4b77 ldr r3, [pc, #476] ; (8001a54 <DoKeyUP+0x494>)
8001878: 781b ldrb r3, [r3, #0]
800187a: b2db uxtb r3, r3
800187c: 2b01 cmp r3, #1
800187e: d140 bne.n 8001902 <DoKeyUP+0x342>
{
if(focused)
8001880: 4b75 ldr r3, [pc, #468] ; (8001a58 <DoKeyUP+0x498>)
8001882: 781b ldrb r3, [r3, #0]
8001884: b2db uxtb r3, r3
8001886: 2b00 cmp r3, #0
8001888: d036 beq.n 80018f8 <DoKeyUP+0x338>
{
if(pardata.amplif[ACTIVE_CHANNEL].IFV < Hp10)
800188a: 4b69 ldr r3, [pc, #420] ; (8001a30 <DoKeyUP+0x470>)
800188c: 681b ldr r3, [r3, #0]
800188e: 4a69 ldr r2, [pc, #420] ; (8001a34 <DoKeyUP+0x474>)
8001890: 015b lsls r3, r3, #5
8001892: 4413 add r3, r2
8001894: 3302 adds r3, #2
8001896: 881b ldrh r3, [r3, #0]
8001898: b29b uxth r3, r3
800189a: 2b03 cmp r3, #3
800189c: f201 8188 bhi.w 8002bb0 <DoKeyUP+0x15f0>
{
pardata.amplif[ACTIVE_CHANNEL].IFV++;
80018a0: 4b63 ldr r3, [pc, #396] ; (8001a30 <DoKeyUP+0x470>)
80018a2: 681b ldr r3, [r3, #0]
80018a4: 4963 ldr r1, [pc, #396] ; (8001a34 <DoKeyUP+0x474>)
80018a6: 015a lsls r2, r3, #5
80018a8: 440a add r2, r1
80018aa: 3202 adds r2, #2
80018ac: 8812 ldrh r2, [r2, #0]
80018ae: b292 uxth r2, r2
80018b0: 3201 adds r2, #1
80018b2: b291 uxth r1, r2
80018b4: 4a5f ldr r2, [pc, #380] ; (8001a34 <DoKeyUP+0x474>)
80018b6: 015b lsls r3, r3, #5
80018b8: 4413 add r3, r2
80018ba: 3302 adds r3, #2
80018bc: 460a mov r2, r1
80018be: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
80018c0: 4b5b ldr r3, [pc, #364] ; (8001a30 <DoKeyUP+0x470>)
80018c2: 681b ldr r3, [r3, #0]
80018c4: b2db uxtb r3, r3
80018c6: 4618 mov r0, r3
80018c8: f00b f8a4 bl 800ca14 <WriteChannel>
80018cc: 4603 mov r3, r0
80018ce: 2b00 cmp r3, #0
80018d0: f001 816e beq.w 8002bb0 <DoKeyUP+0x15f0>
{
pardata.amplif[ACTIVE_CHANNEL].IFV--;
80018d4: 4b56 ldr r3, [pc, #344] ; (8001a30 <DoKeyUP+0x470>)
80018d6: 681b ldr r3, [r3, #0]
80018d8: 4956 ldr r1, [pc, #344] ; (8001a34 <DoKeyUP+0x474>)
80018da: 015a lsls r2, r3, #5
80018dc: 440a add r2, r1
80018de: 3202 adds r2, #2
80018e0: 8812 ldrh r2, [r2, #0]
80018e2: b292 uxth r2, r2
80018e4: 3a01 subs r2, #1
80018e6: b291 uxth r1, r2
80018e8: 4a52 ldr r2, [pc, #328] ; (8001a34 <DoKeyUP+0x474>)
80018ea: 015b lsls r3, r3, #5
80018ec: 4413 add r3, r2
80018ee: 3302 adds r3, #2
80018f0: 460a mov r2, r1
80018f2: 801a strh r2, [r3, #0]
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
}
}
80018f4: f001 b95c b.w 8002bb0 <DoKeyUP+0x15f0>
menupos = Input;
80018f8: 4b56 ldr r3, [pc, #344] ; (8001a54 <DoKeyUP+0x494>)
80018fa: 2200 movs r2, #0
80018fc: 701a strb r2, [r3, #0]
}
80018fe: f001 b957 b.w 8002bb0 <DoKeyUP+0x15f0>
if(menupos == Lp)
8001902: 4b54 ldr r3, [pc, #336] ; (8001a54 <DoKeyUP+0x494>)
8001904: 781b ldrb r3, [r3, #0]
8001906: b2db uxtb r3, r3
8001908: 2b02 cmp r3, #2
800190a: d140 bne.n 800198e <DoKeyUP+0x3ce>
if(focused)
800190c: 4b52 ldr r3, [pc, #328] ; (8001a58 <DoKeyUP+0x498>)
800190e: 781b ldrb r3, [r3, #0]
8001910: b2db uxtb r3, r3
8001912: 2b00 cmp r3, #0
8001914: d036 beq.n 8001984 <DoKeyUP+0x3c4>
if(pardata.amplif[ACTIVE_CHANNEL].IFN < Lp100000)
8001916: 4b46 ldr r3, [pc, #280] ; (8001a30 <DoKeyUP+0x470>)
8001918: 681b ldr r3, [r3, #0]
800191a: 4a46 ldr r2, [pc, #280] ; (8001a34 <DoKeyUP+0x474>)
800191c: 015b lsls r3, r3, #5
800191e: 4413 add r3, r2
8001920: 3304 adds r3, #4
8001922: 881b ldrh r3, [r3, #0]
8001924: b29b uxth r3, r3
8001926: 2b06 cmp r3, #6
8001928: f201 8142 bhi.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IFN++;
800192c: 4b40 ldr r3, [pc, #256] ; (8001a30 <DoKeyUP+0x470>)
800192e: 681b ldr r3, [r3, #0]
8001930: 4940 ldr r1, [pc, #256] ; (8001a34 <DoKeyUP+0x474>)
8001932: 015a lsls r2, r3, #5
8001934: 440a add r2, r1
8001936: 3204 adds r2, #4
8001938: 8812 ldrh r2, [r2, #0]
800193a: b292 uxth r2, r2
800193c: 3201 adds r2, #1
800193e: b291 uxth r1, r2
8001940: 4a3c ldr r2, [pc, #240] ; (8001a34 <DoKeyUP+0x474>)
8001942: 015b lsls r3, r3, #5
8001944: 4413 add r3, r2
8001946: 3304 adds r3, #4
8001948: 460a mov r2, r1
800194a: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
800194c: 4b38 ldr r3, [pc, #224] ; (8001a30 <DoKeyUP+0x470>)
800194e: 681b ldr r3, [r3, #0]
8001950: b2db uxtb r3, r3
8001952: 4618 mov r0, r3
8001954: f00b f85e bl 800ca14 <WriteChannel>
8001958: 4603 mov r3, r0
800195a: 2b00 cmp r3, #0
800195c: f001 8128 beq.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IFN--;
8001960: 4b33 ldr r3, [pc, #204] ; (8001a30 <DoKeyUP+0x470>)
8001962: 681b ldr r3, [r3, #0]
8001964: 4933 ldr r1, [pc, #204] ; (8001a34 <DoKeyUP+0x474>)
8001966: 015a lsls r2, r3, #5
8001968: 440a add r2, r1
800196a: 3204 adds r2, #4
800196c: 8812 ldrh r2, [r2, #0]
800196e: b292 uxth r2, r2
8001970: 3a01 subs r2, #1
8001972: b291 uxth r1, r2
8001974: 4a2f ldr r2, [pc, #188] ; (8001a34 <DoKeyUP+0x474>)
8001976: 015b lsls r3, r3, #5
8001978: 4413 add r3, r2
800197a: 3304 adds r3, #4
800197c: 460a mov r2, r1
800197e: 801a strh r2, [r3, #0]
}
8001980: f001 b916 b.w 8002bb0 <DoKeyUP+0x15f0>
menupos = Hp;
8001984: 4b33 ldr r3, [pc, #204] ; (8001a54 <DoKeyUP+0x494>)
8001986: 2201 movs r2, #1
8001988: 701a strb r2, [r3, #0]
}
800198a: f001 b911 b.w 8002bb0 <DoKeyUP+0x15f0>
if(menupos == Sens)
800198e: 4b31 ldr r3, [pc, #196] ; (8001a54 <DoKeyUP+0x494>)
8001990: 781b ldrb r3, [r3, #0]
8001992: b2db uxtb r3, r3
8001994: 2b03 cmp r3, #3
8001996: d104 bne.n 80019a2 <DoKeyUP+0x3e2>
menupos = Lp;
8001998: 4b2e ldr r3, [pc, #184] ; (8001a54 <DoKeyUP+0x494>)
800199a: 2202 movs r2, #2
800199c: 701a strb r2, [r3, #0]
}
800199e: f001 b907 b.w 8002bb0 <DoKeyUP+0x15f0>
if(menupos == Val)
80019a2: 4b2c ldr r3, [pc, #176] ; (8001a54 <DoKeyUP+0x494>)
80019a4: 781b ldrb r3, [r3, #0]
80019a6: b2db uxtb r3, r3
80019a8: 2b04 cmp r3, #4
80019aa: d157 bne.n 8001a5c <DoKeyUP+0x49c>
if(focused)
80019ac: 4b2a ldr r3, [pc, #168] ; (8001a58 <DoKeyUP+0x498>)
80019ae: 781b ldrb r3, [r3, #0]
80019b0: b2db uxtb r3, r3
80019b2: 2b00 cmp r3, #0
80019b4: d036 beq.n 8001a24 <DoKeyUP+0x464>
if(pardata.amplif[ACTIVE_CHANNEL].VAL < Nython)
80019b6: 4b1e ldr r3, [pc, #120] ; (8001a30 <DoKeyUP+0x470>)
80019b8: 681b ldr r3, [r3, #0]
80019ba: 4a1e ldr r2, [pc, #120] ; (8001a34 <DoKeyUP+0x474>)
80019bc: 015b lsls r3, r3, #5
80019be: 4413 add r3, r2
80019c0: 3312 adds r3, #18
80019c2: 881b ldrh r3, [r3, #0]
80019c4: b29b uxth r3, r3
80019c6: 2b01 cmp r3, #1
80019c8: f201 80f2 bhi.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].VAL++;
80019cc: 4b18 ldr r3, [pc, #96] ; (8001a30 <DoKeyUP+0x470>)
80019ce: 681b ldr r3, [r3, #0]
80019d0: 4918 ldr r1, [pc, #96] ; (8001a34 <DoKeyUP+0x474>)
80019d2: 015a lsls r2, r3, #5
80019d4: 440a add r2, r1
80019d6: 3212 adds r2, #18
80019d8: 8812 ldrh r2, [r2, #0]
80019da: b292 uxth r2, r2
80019dc: 3201 adds r2, #1
80019de: b291 uxth r1, r2
80019e0: 4a14 ldr r2, [pc, #80] ; (8001a34 <DoKeyUP+0x474>)
80019e2: 015b lsls r3, r3, #5
80019e4: 4413 add r3, r2
80019e6: 3312 adds r3, #18
80019e8: 460a mov r2, r1
80019ea: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
80019ec: 4b10 ldr r3, [pc, #64] ; (8001a30 <DoKeyUP+0x470>)
80019ee: 681b ldr r3, [r3, #0]
80019f0: b2db uxtb r3, r3
80019f2: 4618 mov r0, r3
80019f4: f00b f80e bl 800ca14 <WriteChannel>
80019f8: 4603 mov r3, r0
80019fa: 2b00 cmp r3, #0
80019fc: f001 80d8 beq.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].VAL--;
8001a00: 4b0b ldr r3, [pc, #44] ; (8001a30 <DoKeyUP+0x470>)
8001a02: 681b ldr r3, [r3, #0]
8001a04: 490b ldr r1, [pc, #44] ; (8001a34 <DoKeyUP+0x474>)
8001a06: 015a lsls r2, r3, #5
8001a08: 440a add r2, r1
8001a0a: 3212 adds r2, #18
8001a0c: 8812 ldrh r2, [r2, #0]
8001a0e: b292 uxth r2, r2
8001a10: 3a01 subs r2, #1
8001a12: b291 uxth r1, r2
8001a14: 4a07 ldr r2, [pc, #28] ; (8001a34 <DoKeyUP+0x474>)
8001a16: 015b lsls r3, r3, #5
8001a18: 4413 add r3, r2
8001a1a: 3312 adds r3, #18
8001a1c: 460a mov r2, r1
8001a1e: 801a strh r2, [r3, #0]
}
8001a20: f001 b8c6 b.w 8002bb0 <DoKeyUP+0x15f0>
menupos = Sens;
8001a24: 4b0b ldr r3, [pc, #44] ; (8001a54 <DoKeyUP+0x494>)
8001a26: 2203 movs r2, #3
8001a28: 701a strb r2, [r3, #0]
}
8001a2a: f001 b8c1 b.w 8002bb0 <DoKeyUP+0x15f0>
8001a2e: bf00 nop
8001a30: 2006b2d0 .word 0x2006b2d0
8001a34: 2006b510 .word 0x2006b510
8001a38: 47c35000 .word 0x47c35000
8001a3c: 47c34f80 .word 0x47c34f80
8001a40: 0001869f .word 0x0001869f
8001a44: d1b71759 .word 0xd1b71759
8001a48: 10624dd3 .word 0x10624dd3
8001a4c: 51eb851f .word 0x51eb851f
8001a50: cccccccd .word 0xcccccccd
8001a54: 20020010 .word 0x20020010
8001a58: 20020250 .word 0x20020250
if(menupos == Out)
8001a5c: 4bb4 ldr r3, [pc, #720] ; (8001d30 <DoKeyUP+0x770>)
8001a5e: 781b ldrb r3, [r3, #0]
8001a60: b2db uxtb r3, r3
8001a62: 2b05 cmp r3, #5
8001a64: f040 83d6 bne.w 8002214 <DoKeyUP+0xc54>
if(focused)
8001a68: 4bb2 ldr r3, [pc, #712] ; (8001d34 <DoKeyUP+0x774>)
8001a6a: 781b ldrb r3, [r3, #0]
8001a6c: b2db uxtb r3, r3
8001a6e: 2b00 cmp r3, #0
8001a70: f000 83cb beq.w 800220a <DoKeyUP+0xc4a>
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0010f) //0.001
8001a74: 4bb0 ldr r3, [pc, #704] ; (8001d38 <DoKeyUP+0x778>)
8001a76: 681b ldr r3, [r3, #0]
8001a78: 4ab0 ldr r2, [pc, #704] ; (8001d3c <DoKeyUP+0x77c>)
8001a7a: 015b lsls r3, r3, #5
8001a7c: 4413 add r3, r2
8001a7e: 3318 adds r3, #24
8001a80: edd3 7a00 vldr s15, [r3]
8001a84: ed9f 7aae vldr s14, [pc, #696] ; 8001d40 <DoKeyUP+0x780>
8001a88: eef4 7ac7 vcmpe.f32 s15, s14
8001a8c: eef1 fa10 vmrs APSR_nzcv, fpscr
8001a90: d836 bhi.n 8001b00 <DoKeyUP+0x540>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku1000)
8001a92: 4ba9 ldr r3, [pc, #676] ; (8001d38 <DoKeyUP+0x778>)
8001a94: 681b ldr r3, [r3, #0]
8001a96: 4aa9 ldr r2, [pc, #676] ; (8001d3c <DoKeyUP+0x77c>)
8001a98: 015b lsls r3, r3, #5
8001a9a: 4413 add r3, r2
8001a9c: 3306 adds r3, #6
8001a9e: 881b ldrh r3, [r3, #0]
8001aa0: b29b uxth r3, r3
8001aa2: 2b0b cmp r3, #11
8001aa4: f201 8084 bhi.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
8001aa8: 4ba3 ldr r3, [pc, #652] ; (8001d38 <DoKeyUP+0x778>)
8001aaa: 681b ldr r3, [r3, #0]
8001aac: 49a3 ldr r1, [pc, #652] ; (8001d3c <DoKeyUP+0x77c>)
8001aae: 015a lsls r2, r3, #5
8001ab0: 440a add r2, r1
8001ab2: 3206 adds r2, #6
8001ab4: 8812 ldrh r2, [r2, #0]
8001ab6: b292 uxth r2, r2
8001ab8: 3201 adds r2, #1
8001aba: b291 uxth r1, r2
8001abc: 4a9f ldr r2, [pc, #636] ; (8001d3c <DoKeyUP+0x77c>)
8001abe: 015b lsls r3, r3, #5
8001ac0: 4413 add r3, r2
8001ac2: 3306 adds r3, #6
8001ac4: 460a mov r2, r1
8001ac6: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8001ac8: 4b9b ldr r3, [pc, #620] ; (8001d38 <DoKeyUP+0x778>)
8001aca: 681b ldr r3, [r3, #0]
8001acc: b2db uxtb r3, r3
8001ace: 4618 mov r0, r3
8001ad0: f00a ffa0 bl 800ca14 <WriteChannel>
8001ad4: 4603 mov r3, r0
8001ad6: 2b00 cmp r3, #0
8001ad8: f001 806a beq.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
8001adc: 4b96 ldr r3, [pc, #600] ; (8001d38 <DoKeyUP+0x778>)
8001ade: 681b ldr r3, [r3, #0]
8001ae0: 4996 ldr r1, [pc, #600] ; (8001d3c <DoKeyUP+0x77c>)
8001ae2: 015a lsls r2, r3, #5
8001ae4: 440a add r2, r1
8001ae6: 3206 adds r2, #6
8001ae8: 8812 ldrh r2, [r2, #0]
8001aea: b292 uxth r2, r2
8001aec: 3a01 subs r2, #1
8001aee: b291 uxth r1, r2
8001af0: 4a92 ldr r2, [pc, #584] ; (8001d3c <DoKeyUP+0x77c>)
8001af2: 015b lsls r3, r3, #5
8001af4: 4413 add r3, r2
8001af6: 3306 adds r3, #6
8001af8: 460a mov r2, r1
8001afa: 801a strh r2, [r3, #0]
}
8001afc: f001 b858 b.w 8002bb0 <DoKeyUP+0x15f0>
if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 0.0011f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 10.000f) //0.002
8001b00: 4b8d ldr r3, [pc, #564] ; (8001d38 <DoKeyUP+0x778>)
8001b02: 681b ldr r3, [r3, #0]
8001b04: 4a8d ldr r2, [pc, #564] ; (8001d3c <DoKeyUP+0x77c>)
8001b06: 015b lsls r3, r3, #5
8001b08: 4413 add r3, r2
8001b0a: 3318 adds r3, #24
8001b0c: edd3 7a00 vldr s15, [r3]
8001b10: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8001b14: eef4 7ac7 vcmpe.f32 s15, s14
8001b18: eef1 fa10 vmrs APSR_nzcv, fpscr
8001b1c: d836 bhi.n 8001b8c <DoKeyUP+0x5cc>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku1000)
8001b1e: 4b86 ldr r3, [pc, #536] ; (8001d38 <DoKeyUP+0x778>)
8001b20: 681b ldr r3, [r3, #0]
8001b22: 4a86 ldr r2, [pc, #536] ; (8001d3c <DoKeyUP+0x77c>)
8001b24: 015b lsls r3, r3, #5
8001b26: 4413 add r3, r2
8001b28: 3306 adds r3, #6
8001b2a: 881b ldrh r3, [r3, #0]
8001b2c: b29b uxth r3, r3
8001b2e: 2b0b cmp r3, #11
8001b30: f201 803e bhi.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
8001b34: 4b80 ldr r3, [pc, #512] ; (8001d38 <DoKeyUP+0x778>)
8001b36: 681b ldr r3, [r3, #0]
8001b38: 4980 ldr r1, [pc, #512] ; (8001d3c <DoKeyUP+0x77c>)
8001b3a: 015a lsls r2, r3, #5
8001b3c: 440a add r2, r1
8001b3e: 3206 adds r2, #6
8001b40: 8812 ldrh r2, [r2, #0]
8001b42: b292 uxth r2, r2
8001b44: 3201 adds r2, #1
8001b46: b291 uxth r1, r2
8001b48: 4a7c ldr r2, [pc, #496] ; (8001d3c <DoKeyUP+0x77c>)
8001b4a: 015b lsls r3, r3, #5
8001b4c: 4413 add r3, r2
8001b4e: 3306 adds r3, #6
8001b50: 460a mov r2, r1
8001b52: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8001b54: 4b78 ldr r3, [pc, #480] ; (8001d38 <DoKeyUP+0x778>)
8001b56: 681b ldr r3, [r3, #0]
8001b58: b2db uxtb r3, r3
8001b5a: 4618 mov r0, r3
8001b5c: f00a ff5a bl 800ca14 <WriteChannel>
8001b60: 4603 mov r3, r0
8001b62: 2b00 cmp r3, #0
8001b64: f001 8024 beq.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
8001b68: 4b73 ldr r3, [pc, #460] ; (8001d38 <DoKeyUP+0x778>)
8001b6a: 681b ldr r3, [r3, #0]
8001b6c: 4973 ldr r1, [pc, #460] ; (8001d3c <DoKeyUP+0x77c>)
8001b6e: 015a lsls r2, r3, #5
8001b70: 440a add r2, r1
8001b72: 3206 adds r2, #6
8001b74: 8812 ldrh r2, [r2, #0]
8001b76: b292 uxth r2, r2
8001b78: 3a01 subs r2, #1
8001b7a: b291 uxth r1, r2
8001b7c: 4a6f ldr r2, [pc, #444] ; (8001d3c <DoKeyUP+0x77c>)
8001b7e: 015b lsls r3, r3, #5
8001b80: 4413 add r3, r2
8001b82: 3306 adds r3, #6
8001b84: 460a mov r2, r1
8001b86: 801a strh r2, [r3, #0]
}
8001b88: f001 b812 b.w 8002bb0 <DoKeyUP+0x15f0>
if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 10.001f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 20.000f) //20
8001b8c: 4b6a ldr r3, [pc, #424] ; (8001d38 <DoKeyUP+0x778>)
8001b8e: 681b ldr r3, [r3, #0]
8001b90: 4a6a ldr r2, [pc, #424] ; (8001d3c <DoKeyUP+0x77c>)
8001b92: 015b lsls r3, r3, #5
8001b94: 4413 add r3, r2
8001b96: 3318 adds r3, #24
8001b98: edd3 7a00 vldr s15, [r3]
8001b9c: eeb3 7a04 vmov.f32 s14, #52 ; 0x41a00000 20.0
8001ba0: eef4 7ac7 vcmpe.f32 s15, s14
8001ba4: eef1 fa10 vmrs APSR_nzcv, fpscr
8001ba8: d836 bhi.n 8001c18 <DoKeyUP+0x658>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku500)
8001baa: 4b63 ldr r3, [pc, #396] ; (8001d38 <DoKeyUP+0x778>)
8001bac: 681b ldr r3, [r3, #0]
8001bae: 4a63 ldr r2, [pc, #396] ; (8001d3c <DoKeyUP+0x77c>)
8001bb0: 015b lsls r3, r3, #5
8001bb2: 4413 add r3, r2
8001bb4: 3306 adds r3, #6
8001bb6: 881b ldrh r3, [r3, #0]
8001bb8: b29b uxth r3, r3
8001bba: 2b0a cmp r3, #10
8001bbc: f200 87f8 bhi.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
8001bc0: 4b5d ldr r3, [pc, #372] ; (8001d38 <DoKeyUP+0x778>)
8001bc2: 681b ldr r3, [r3, #0]
8001bc4: 495d ldr r1, [pc, #372] ; (8001d3c <DoKeyUP+0x77c>)
8001bc6: 015a lsls r2, r3, #5
8001bc8: 440a add r2, r1
8001bca: 3206 adds r2, #6
8001bcc: 8812 ldrh r2, [r2, #0]
8001bce: b292 uxth r2, r2
8001bd0: 3201 adds r2, #1
8001bd2: b291 uxth r1, r2
8001bd4: 4a59 ldr r2, [pc, #356] ; (8001d3c <DoKeyUP+0x77c>)
8001bd6: 015b lsls r3, r3, #5
8001bd8: 4413 add r3, r2
8001bda: 3306 adds r3, #6
8001bdc: 460a mov r2, r1
8001bde: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8001be0: 4b55 ldr r3, [pc, #340] ; (8001d38 <DoKeyUP+0x778>)
8001be2: 681b ldr r3, [r3, #0]
8001be4: b2db uxtb r3, r3
8001be6: 4618 mov r0, r3
8001be8: f00a ff14 bl 800ca14 <WriteChannel>
8001bec: 4603 mov r3, r0
8001bee: 2b00 cmp r3, #0
8001bf0: f000 87de beq.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
8001bf4: 4b50 ldr r3, [pc, #320] ; (8001d38 <DoKeyUP+0x778>)
8001bf6: 681b ldr r3, [r3, #0]
8001bf8: 4950 ldr r1, [pc, #320] ; (8001d3c <DoKeyUP+0x77c>)
8001bfa: 015a lsls r2, r3, #5
8001bfc: 440a add r2, r1
8001bfe: 3206 adds r2, #6
8001c00: 8812 ldrh r2, [r2, #0]
8001c02: b292 uxth r2, r2
8001c04: 3a01 subs r2, #1
8001c06: b291 uxth r1, r2
8001c08: 4a4c ldr r2, [pc, #304] ; (8001d3c <DoKeyUP+0x77c>)
8001c0a: 015b lsls r3, r3, #5
8001c0c: 4413 add r3, r2
8001c0e: 3306 adds r3, #6
8001c10: 460a mov r2, r1
8001c12: 801a strh r2, [r3, #0]
}
8001c14: f000 bfcc b.w 8002bb0 <DoKeyUP+0x15f0>
if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 20.001f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 50.000f) //50
8001c18: 4b47 ldr r3, [pc, #284] ; (8001d38 <DoKeyUP+0x778>)
8001c1a: 681b ldr r3, [r3, #0]
8001c1c: 4a47 ldr r2, [pc, #284] ; (8001d3c <DoKeyUP+0x77c>)
8001c1e: 015b lsls r3, r3, #5
8001c20: 4413 add r3, r2
8001c22: 3318 adds r3, #24
8001c24: edd3 7a00 vldr s15, [r3]
8001c28: ed9f 7a46 vldr s14, [pc, #280] ; 8001d44 <DoKeyUP+0x784>
8001c2c: eef4 7ac7 vcmpe.f32 s15, s14
8001c30: eef1 fa10 vmrs APSR_nzcv, fpscr
8001c34: d836 bhi.n 8001ca4 <DoKeyUP+0x6e4>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku200)
8001c36: 4b40 ldr r3, [pc, #256] ; (8001d38 <DoKeyUP+0x778>)
8001c38: 681b ldr r3, [r3, #0]
8001c3a: 4a40 ldr r2, [pc, #256] ; (8001d3c <DoKeyUP+0x77c>)
8001c3c: 015b lsls r3, r3, #5
8001c3e: 4413 add r3, r2
8001c40: 3306 adds r3, #6
8001c42: 881b ldrh r3, [r3, #0]
8001c44: b29b uxth r3, r3
8001c46: 2b09 cmp r3, #9
8001c48: f200 87b2 bhi.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
8001c4c: 4b3a ldr r3, [pc, #232] ; (8001d38 <DoKeyUP+0x778>)
8001c4e: 681b ldr r3, [r3, #0]
8001c50: 493a ldr r1, [pc, #232] ; (8001d3c <DoKeyUP+0x77c>)
8001c52: 015a lsls r2, r3, #5
8001c54: 440a add r2, r1
8001c56: 3206 adds r2, #6
8001c58: 8812 ldrh r2, [r2, #0]
8001c5a: b292 uxth r2, r2
8001c5c: 3201 adds r2, #1
8001c5e: b291 uxth r1, r2
8001c60: 4a36 ldr r2, [pc, #216] ; (8001d3c <DoKeyUP+0x77c>)
8001c62: 015b lsls r3, r3, #5
8001c64: 4413 add r3, r2
8001c66: 3306 adds r3, #6
8001c68: 460a mov r2, r1
8001c6a: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8001c6c: 4b32 ldr r3, [pc, #200] ; (8001d38 <DoKeyUP+0x778>)
8001c6e: 681b ldr r3, [r3, #0]
8001c70: b2db uxtb r3, r3
8001c72: 4618 mov r0, r3
8001c74: f00a fece bl 800ca14 <WriteChannel>
8001c78: 4603 mov r3, r0
8001c7a: 2b00 cmp r3, #0
8001c7c: f000 8798 beq.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
8001c80: 4b2d ldr r3, [pc, #180] ; (8001d38 <DoKeyUP+0x778>)
8001c82: 681b ldr r3, [r3, #0]
8001c84: 492d ldr r1, [pc, #180] ; (8001d3c <DoKeyUP+0x77c>)
8001c86: 015a lsls r2, r3, #5
8001c88: 440a add r2, r1
8001c8a: 3206 adds r2, #6
8001c8c: 8812 ldrh r2, [r2, #0]
8001c8e: b292 uxth r2, r2
8001c90: 3a01 subs r2, #1
8001c92: b291 uxth r1, r2
8001c94: 4a29 ldr r2, [pc, #164] ; (8001d3c <DoKeyUP+0x77c>)
8001c96: 015b lsls r3, r3, #5
8001c98: 4413 add r3, r2
8001c9a: 3306 adds r3, #6
8001c9c: 460a mov r2, r1
8001c9e: 801a strh r2, [r3, #0]
}
8001ca0: f000 bf86 b.w 8002bb0 <DoKeyUP+0x15f0>
if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 50.001f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 100.00f) //100
8001ca4: 4b24 ldr r3, [pc, #144] ; (8001d38 <DoKeyUP+0x778>)
8001ca6: 681b ldr r3, [r3, #0]
8001ca8: 4a24 ldr r2, [pc, #144] ; (8001d3c <DoKeyUP+0x77c>)
8001caa: 015b lsls r3, r3, #5
8001cac: 4413 add r3, r2
8001cae: 3318 adds r3, #24
8001cb0: edd3 7a00 vldr s15, [r3]
8001cb4: ed9f 7a24 vldr s14, [pc, #144] ; 8001d48 <DoKeyUP+0x788>
8001cb8: eef4 7ac7 vcmpe.f32 s15, s14
8001cbc: eef1 fa10 vmrs APSR_nzcv, fpscr
8001cc0: d844 bhi.n 8001d4c <DoKeyUP+0x78c>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku100)
8001cc2: 4b1d ldr r3, [pc, #116] ; (8001d38 <DoKeyUP+0x778>)
8001cc4: 681b ldr r3, [r3, #0]
8001cc6: 4a1d ldr r2, [pc, #116] ; (8001d3c <DoKeyUP+0x77c>)
8001cc8: 015b lsls r3, r3, #5
8001cca: 4413 add r3, r2
8001ccc: 3306 adds r3, #6
8001cce: 881b ldrh r3, [r3, #0]
8001cd0: b29b uxth r3, r3
8001cd2: 2b08 cmp r3, #8
8001cd4: f200 876c bhi.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
8001cd8: 4b17 ldr r3, [pc, #92] ; (8001d38 <DoKeyUP+0x778>)
8001cda: 681b ldr r3, [r3, #0]
8001cdc: 4917 ldr r1, [pc, #92] ; (8001d3c <DoKeyUP+0x77c>)
8001cde: 015a lsls r2, r3, #5
8001ce0: 440a add r2, r1
8001ce2: 3206 adds r2, #6
8001ce4: 8812 ldrh r2, [r2, #0]
8001ce6: b292 uxth r2, r2
8001ce8: 3201 adds r2, #1
8001cea: b291 uxth r1, r2
8001cec: 4a13 ldr r2, [pc, #76] ; (8001d3c <DoKeyUP+0x77c>)
8001cee: 015b lsls r3, r3, #5
8001cf0: 4413 add r3, r2
8001cf2: 3306 adds r3, #6
8001cf4: 460a mov r2, r1
8001cf6: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8001cf8: 4b0f ldr r3, [pc, #60] ; (8001d38 <DoKeyUP+0x778>)
8001cfa: 681b ldr r3, [r3, #0]
8001cfc: b2db uxtb r3, r3
8001cfe: 4618 mov r0, r3
8001d00: f00a fe88 bl 800ca14 <WriteChannel>
8001d04: 4603 mov r3, r0
8001d06: 2b00 cmp r3, #0
8001d08: f000 8752 beq.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
8001d0c: 4b0a ldr r3, [pc, #40] ; (8001d38 <DoKeyUP+0x778>)
8001d0e: 681b ldr r3, [r3, #0]
8001d10: 490a ldr r1, [pc, #40] ; (8001d3c <DoKeyUP+0x77c>)
8001d12: 015a lsls r2, r3, #5
8001d14: 440a add r2, r1
8001d16: 3206 adds r2, #6
8001d18: 8812 ldrh r2, [r2, #0]
8001d1a: b292 uxth r2, r2
8001d1c: 3a01 subs r2, #1
8001d1e: b291 uxth r1, r2
8001d20: 4a06 ldr r2, [pc, #24] ; (8001d3c <DoKeyUP+0x77c>)
8001d22: 015b lsls r3, r3, #5
8001d24: 4413 add r3, r2
8001d26: 3306 adds r3, #6
8001d28: 460a mov r2, r1
8001d2a: 801a strh r2, [r3, #0]
}
8001d2c: f000 bf40 b.w 8002bb0 <DoKeyUP+0x15f0>
8001d30: 20020010 .word 0x20020010
8001d34: 20020250 .word 0x20020250
8001d38: 2006b2d0 .word 0x2006b2d0
8001d3c: 2006b510 .word 0x2006b510
8001d40: 3a83126f .word 0x3a83126f
8001d44: 42480000 .word 0x42480000
8001d48: 42c80000 .word 0x42c80000
if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 100.01f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 200.00f) //200
8001d4c: 4bae ldr r3, [pc, #696] ; (8002008 <DoKeyUP+0xa48>)
8001d4e: 681b ldr r3, [r3, #0]
8001d50: 4aae ldr r2, [pc, #696] ; (800200c <DoKeyUP+0xa4c>)
8001d52: 015b lsls r3, r3, #5
8001d54: 4413 add r3, r2
8001d56: 3318 adds r3, #24
8001d58: edd3 7a00 vldr s15, [r3]
8001d5c: ed9f 7aac vldr s14, [pc, #688] ; 8002010 <DoKeyUP+0xa50>
8001d60: eef4 7ac7 vcmpe.f32 s15, s14
8001d64: eef1 fa10 vmrs APSR_nzcv, fpscr
8001d68: d836 bhi.n 8001dd8 <DoKeyUP+0x818>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku50)
8001d6a: 4ba7 ldr r3, [pc, #668] ; (8002008 <DoKeyUP+0xa48>)
8001d6c: 681b ldr r3, [r3, #0]
8001d6e: 4aa7 ldr r2, [pc, #668] ; (800200c <DoKeyUP+0xa4c>)
8001d70: 015b lsls r3, r3, #5
8001d72: 4413 add r3, r2
8001d74: 3306 adds r3, #6
8001d76: 881b ldrh r3, [r3, #0]
8001d78: b29b uxth r3, r3
8001d7a: 2b07 cmp r3, #7
8001d7c: f200 8718 bhi.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
8001d80: 4ba1 ldr r3, [pc, #644] ; (8002008 <DoKeyUP+0xa48>)
8001d82: 681b ldr r3, [r3, #0]
8001d84: 49a1 ldr r1, [pc, #644] ; (800200c <DoKeyUP+0xa4c>)
8001d86: 015a lsls r2, r3, #5
8001d88: 440a add r2, r1
8001d8a: 3206 adds r2, #6
8001d8c: 8812 ldrh r2, [r2, #0]
8001d8e: b292 uxth r2, r2
8001d90: 3201 adds r2, #1
8001d92: b291 uxth r1, r2
8001d94: 4a9d ldr r2, [pc, #628] ; (800200c <DoKeyUP+0xa4c>)
8001d96: 015b lsls r3, r3, #5
8001d98: 4413 add r3, r2
8001d9a: 3306 adds r3, #6
8001d9c: 460a mov r2, r1
8001d9e: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8001da0: 4b99 ldr r3, [pc, #612] ; (8002008 <DoKeyUP+0xa48>)
8001da2: 681b ldr r3, [r3, #0]
8001da4: b2db uxtb r3, r3
8001da6: 4618 mov r0, r3
8001da8: f00a fe34 bl 800ca14 <WriteChannel>
8001dac: 4603 mov r3, r0
8001dae: 2b00 cmp r3, #0
8001db0: f000 86fe beq.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
8001db4: 4b94 ldr r3, [pc, #592] ; (8002008 <DoKeyUP+0xa48>)
8001db6: 681b ldr r3, [r3, #0]
8001db8: 4994 ldr r1, [pc, #592] ; (800200c <DoKeyUP+0xa4c>)
8001dba: 015a lsls r2, r3, #5
8001dbc: 440a add r2, r1
8001dbe: 3206 adds r2, #6
8001dc0: 8812 ldrh r2, [r2, #0]
8001dc2: b292 uxth r2, r2
8001dc4: 3a01 subs r2, #1
8001dc6: b291 uxth r1, r2
8001dc8: 4a90 ldr r2, [pc, #576] ; (800200c <DoKeyUP+0xa4c>)
8001dca: 015b lsls r3, r3, #5
8001dcc: 4413 add r3, r2
8001dce: 3306 adds r3, #6
8001dd0: 460a mov r2, r1
8001dd2: 801a strh r2, [r3, #0]
}
8001dd4: f000 beec b.w 8002bb0 <DoKeyUP+0x15f0>
if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 200.01f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 500.00f) //500
8001dd8: 4b8b ldr r3, [pc, #556] ; (8002008 <DoKeyUP+0xa48>)
8001dda: 681b ldr r3, [r3, #0]
8001ddc: 4a8b ldr r2, [pc, #556] ; (800200c <DoKeyUP+0xa4c>)
8001dde: 015b lsls r3, r3, #5
8001de0: 4413 add r3, r2
8001de2: 3318 adds r3, #24
8001de4: edd3 7a00 vldr s15, [r3]
8001de8: ed9f 7a8a vldr s14, [pc, #552] ; 8002014 <DoKeyUP+0xa54>
8001dec: eef4 7ac7 vcmpe.f32 s15, s14
8001df0: eef1 fa10 vmrs APSR_nzcv, fpscr
8001df4: d836 bhi.n 8001e64 <DoKeyUP+0x8a4>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku20)
8001df6: 4b84 ldr r3, [pc, #528] ; (8002008 <DoKeyUP+0xa48>)
8001df8: 681b ldr r3, [r3, #0]
8001dfa: 4a84 ldr r2, [pc, #528] ; (800200c <DoKeyUP+0xa4c>)
8001dfc: 015b lsls r3, r3, #5
8001dfe: 4413 add r3, r2
8001e00: 3306 adds r3, #6
8001e02: 881b ldrh r3, [r3, #0]
8001e04: b29b uxth r3, r3
8001e06: 2b06 cmp r3, #6
8001e08: f200 86d2 bhi.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
8001e0c: 4b7e ldr r3, [pc, #504] ; (8002008 <DoKeyUP+0xa48>)
8001e0e: 681b ldr r3, [r3, #0]
8001e10: 497e ldr r1, [pc, #504] ; (800200c <DoKeyUP+0xa4c>)
8001e12: 015a lsls r2, r3, #5
8001e14: 440a add r2, r1
8001e16: 3206 adds r2, #6
8001e18: 8812 ldrh r2, [r2, #0]
8001e1a: b292 uxth r2, r2
8001e1c: 3201 adds r2, #1
8001e1e: b291 uxth r1, r2
8001e20: 4a7a ldr r2, [pc, #488] ; (800200c <DoKeyUP+0xa4c>)
8001e22: 015b lsls r3, r3, #5
8001e24: 4413 add r3, r2
8001e26: 3306 adds r3, #6
8001e28: 460a mov r2, r1
8001e2a: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8001e2c: 4b76 ldr r3, [pc, #472] ; (8002008 <DoKeyUP+0xa48>)
8001e2e: 681b ldr r3, [r3, #0]
8001e30: b2db uxtb r3, r3
8001e32: 4618 mov r0, r3
8001e34: f00a fdee bl 800ca14 <WriteChannel>
8001e38: 4603 mov r3, r0
8001e3a: 2b00 cmp r3, #0
8001e3c: f000 86b8 beq.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
8001e40: 4b71 ldr r3, [pc, #452] ; (8002008 <DoKeyUP+0xa48>)
8001e42: 681b ldr r3, [r3, #0]
8001e44: 4971 ldr r1, [pc, #452] ; (800200c <DoKeyUP+0xa4c>)
8001e46: 015a lsls r2, r3, #5
8001e48: 440a add r2, r1
8001e4a: 3206 adds r2, #6
8001e4c: 8812 ldrh r2, [r2, #0]
8001e4e: b292 uxth r2, r2
8001e50: 3a01 subs r2, #1
8001e52: b291 uxth r1, r2
8001e54: 4a6d ldr r2, [pc, #436] ; (800200c <DoKeyUP+0xa4c>)
8001e56: 015b lsls r3, r3, #5
8001e58: 4413 add r3, r2
8001e5a: 3306 adds r3, #6
8001e5c: 460a mov r2, r1
8001e5e: 801a strh r2, [r3, #0]
}
8001e60: f000 bea6 b.w 8002bb0 <DoKeyUP+0x15f0>
if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 500.01f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 1000.0f) //1000
8001e64: 4b68 ldr r3, [pc, #416] ; (8002008 <DoKeyUP+0xa48>)
8001e66: 681b ldr r3, [r3, #0]
8001e68: 4a68 ldr r2, [pc, #416] ; (800200c <DoKeyUP+0xa4c>)
8001e6a: 015b lsls r3, r3, #5
8001e6c: 4413 add r3, r2
8001e6e: 3318 adds r3, #24
8001e70: edd3 7a00 vldr s15, [r3]
8001e74: ed9f 7a68 vldr s14, [pc, #416] ; 8002018 <DoKeyUP+0xa58>
8001e78: eef4 7ac7 vcmpe.f32 s15, s14
8001e7c: eef1 fa10 vmrs APSR_nzcv, fpscr
8001e80: d836 bhi.n 8001ef0 <DoKeyUP+0x930>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku10)
8001e82: 4b61 ldr r3, [pc, #388] ; (8002008 <DoKeyUP+0xa48>)
8001e84: 681b ldr r3, [r3, #0]
8001e86: 4a61 ldr r2, [pc, #388] ; (800200c <DoKeyUP+0xa4c>)
8001e88: 015b lsls r3, r3, #5
8001e8a: 4413 add r3, r2
8001e8c: 3306 adds r3, #6
8001e8e: 881b ldrh r3, [r3, #0]
8001e90: b29b uxth r3, r3
8001e92: 2b05 cmp r3, #5
8001e94: f200 868c bhi.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
8001e98: 4b5b ldr r3, [pc, #364] ; (8002008 <DoKeyUP+0xa48>)
8001e9a: 681b ldr r3, [r3, #0]
8001e9c: 495b ldr r1, [pc, #364] ; (800200c <DoKeyUP+0xa4c>)
8001e9e: 015a lsls r2, r3, #5
8001ea0: 440a add r2, r1
8001ea2: 3206 adds r2, #6
8001ea4: 8812 ldrh r2, [r2, #0]
8001ea6: b292 uxth r2, r2
8001ea8: 3201 adds r2, #1
8001eaa: b291 uxth r1, r2
8001eac: 4a57 ldr r2, [pc, #348] ; (800200c <DoKeyUP+0xa4c>)
8001eae: 015b lsls r3, r3, #5
8001eb0: 4413 add r3, r2
8001eb2: 3306 adds r3, #6
8001eb4: 460a mov r2, r1
8001eb6: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8001eb8: 4b53 ldr r3, [pc, #332] ; (8002008 <DoKeyUP+0xa48>)
8001eba: 681b ldr r3, [r3, #0]
8001ebc: b2db uxtb r3, r3
8001ebe: 4618 mov r0, r3
8001ec0: f00a fda8 bl 800ca14 <WriteChannel>
8001ec4: 4603 mov r3, r0
8001ec6: 2b00 cmp r3, #0
8001ec8: f000 8672 beq.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
8001ecc: 4b4e ldr r3, [pc, #312] ; (8002008 <DoKeyUP+0xa48>)
8001ece: 681b ldr r3, [r3, #0]
8001ed0: 494e ldr r1, [pc, #312] ; (800200c <DoKeyUP+0xa4c>)
8001ed2: 015a lsls r2, r3, #5
8001ed4: 440a add r2, r1
8001ed6: 3206 adds r2, #6
8001ed8: 8812 ldrh r2, [r2, #0]
8001eda: b292 uxth r2, r2
8001edc: 3a01 subs r2, #1
8001ede: b291 uxth r1, r2
8001ee0: 4a4a ldr r2, [pc, #296] ; (800200c <DoKeyUP+0xa4c>)
8001ee2: 015b lsls r3, r3, #5
8001ee4: 4413 add r3, r2
8001ee6: 3306 adds r3, #6
8001ee8: 460a mov r2, r1
8001eea: 801a strh r2, [r3, #0]
}
8001eec: f000 be60 b.w 8002bb0 <DoKeyUP+0x15f0>
if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 1000.1f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 2000.0f) //2000
8001ef0: 4b45 ldr r3, [pc, #276] ; (8002008 <DoKeyUP+0xa48>)
8001ef2: 681b ldr r3, [r3, #0]
8001ef4: 4a45 ldr r2, [pc, #276] ; (800200c <DoKeyUP+0xa4c>)
8001ef6: 015b lsls r3, r3, #5
8001ef8: 4413 add r3, r2
8001efa: 3318 adds r3, #24
8001efc: edd3 7a00 vldr s15, [r3]
8001f00: ed9f 7a46 vldr s14, [pc, #280] ; 800201c <DoKeyUP+0xa5c>
8001f04: eef4 7ac7 vcmpe.f32 s15, s14
8001f08: eef1 fa10 vmrs APSR_nzcv, fpscr
8001f0c: d836 bhi.n 8001f7c <DoKeyUP+0x9bc>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku5)
8001f0e: 4b3e ldr r3, [pc, #248] ; (8002008 <DoKeyUP+0xa48>)
8001f10: 681b ldr r3, [r3, #0]
8001f12: 4a3e ldr r2, [pc, #248] ; (800200c <DoKeyUP+0xa4c>)
8001f14: 015b lsls r3, r3, #5
8001f16: 4413 add r3, r2
8001f18: 3306 adds r3, #6
8001f1a: 881b ldrh r3, [r3, #0]
8001f1c: b29b uxth r3, r3
8001f1e: 2b04 cmp r3, #4
8001f20: f200 8646 bhi.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
8001f24: 4b38 ldr r3, [pc, #224] ; (8002008 <DoKeyUP+0xa48>)
8001f26: 681b ldr r3, [r3, #0]
8001f28: 4938 ldr r1, [pc, #224] ; (800200c <DoKeyUP+0xa4c>)
8001f2a: 015a lsls r2, r3, #5
8001f2c: 440a add r2, r1
8001f2e: 3206 adds r2, #6
8001f30: 8812 ldrh r2, [r2, #0]
8001f32: b292 uxth r2, r2
8001f34: 3201 adds r2, #1
8001f36: b291 uxth r1, r2
8001f38: 4a34 ldr r2, [pc, #208] ; (800200c <DoKeyUP+0xa4c>)
8001f3a: 015b lsls r3, r3, #5
8001f3c: 4413 add r3, r2
8001f3e: 3306 adds r3, #6
8001f40: 460a mov r2, r1
8001f42: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8001f44: 4b30 ldr r3, [pc, #192] ; (8002008 <DoKeyUP+0xa48>)
8001f46: 681b ldr r3, [r3, #0]
8001f48: b2db uxtb r3, r3
8001f4a: 4618 mov r0, r3
8001f4c: f00a fd62 bl 800ca14 <WriteChannel>
8001f50: 4603 mov r3, r0
8001f52: 2b00 cmp r3, #0
8001f54: f000 862c beq.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
8001f58: 4b2b ldr r3, [pc, #172] ; (8002008 <DoKeyUP+0xa48>)
8001f5a: 681b ldr r3, [r3, #0]
8001f5c: 492b ldr r1, [pc, #172] ; (800200c <DoKeyUP+0xa4c>)
8001f5e: 015a lsls r2, r3, #5
8001f60: 440a add r2, r1
8001f62: 3206 adds r2, #6
8001f64: 8812 ldrh r2, [r2, #0]
8001f66: b292 uxth r2, r2
8001f68: 3a01 subs r2, #1
8001f6a: b291 uxth r1, r2
8001f6c: 4a27 ldr r2, [pc, #156] ; (800200c <DoKeyUP+0xa4c>)
8001f6e: 015b lsls r3, r3, #5
8001f70: 4413 add r3, r2
8001f72: 3306 adds r3, #6
8001f74: 460a mov r2, r1
8001f76: 801a strh r2, [r3, #0]
}
8001f78: f000 be1a b.w 8002bb0 <DoKeyUP+0x15f0>
if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 2000.1f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 5000.0f) //5000
8001f7c: 4b22 ldr r3, [pc, #136] ; (8002008 <DoKeyUP+0xa48>)
8001f7e: 681b ldr r3, [r3, #0]
8001f80: 4a22 ldr r2, [pc, #136] ; (800200c <DoKeyUP+0xa4c>)
8001f82: 015b lsls r3, r3, #5
8001f84: 4413 add r3, r2
8001f86: 3318 adds r3, #24
8001f88: edd3 7a00 vldr s15, [r3]
8001f8c: ed9f 7a24 vldr s14, [pc, #144] ; 8002020 <DoKeyUP+0xa60>
8001f90: eef4 7ac7 vcmpe.f32 s15, s14
8001f94: eef1 fa10 vmrs APSR_nzcv, fpscr
8001f98: d844 bhi.n 8002024 <DoKeyUP+0xa64>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku2)
8001f9a: 4b1b ldr r3, [pc, #108] ; (8002008 <DoKeyUP+0xa48>)
8001f9c: 681b ldr r3, [r3, #0]
8001f9e: 4a1b ldr r2, [pc, #108] ; (800200c <DoKeyUP+0xa4c>)
8001fa0: 015b lsls r3, r3, #5
8001fa2: 4413 add r3, r2
8001fa4: 3306 adds r3, #6
8001fa6: 881b ldrh r3, [r3, #0]
8001fa8: b29b uxth r3, r3
8001faa: 2b03 cmp r3, #3
8001fac: f200 8600 bhi.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
8001fb0: 4b15 ldr r3, [pc, #84] ; (8002008 <DoKeyUP+0xa48>)
8001fb2: 681b ldr r3, [r3, #0]
8001fb4: 4915 ldr r1, [pc, #84] ; (800200c <DoKeyUP+0xa4c>)
8001fb6: 015a lsls r2, r3, #5
8001fb8: 440a add r2, r1
8001fba: 3206 adds r2, #6
8001fbc: 8812 ldrh r2, [r2, #0]
8001fbe: b292 uxth r2, r2
8001fc0: 3201 adds r2, #1
8001fc2: b291 uxth r1, r2
8001fc4: 4a11 ldr r2, [pc, #68] ; (800200c <DoKeyUP+0xa4c>)
8001fc6: 015b lsls r3, r3, #5
8001fc8: 4413 add r3, r2
8001fca: 3306 adds r3, #6
8001fcc: 460a mov r2, r1
8001fce: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8001fd0: 4b0d ldr r3, [pc, #52] ; (8002008 <DoKeyUP+0xa48>)
8001fd2: 681b ldr r3, [r3, #0]
8001fd4: b2db uxtb r3, r3
8001fd6: 4618 mov r0, r3
8001fd8: f00a fd1c bl 800ca14 <WriteChannel>
8001fdc: 4603 mov r3, r0
8001fde: 2b00 cmp r3, #0
8001fe0: f000 85e6 beq.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
8001fe4: 4b08 ldr r3, [pc, #32] ; (8002008 <DoKeyUP+0xa48>)
8001fe6: 681b ldr r3, [r3, #0]
8001fe8: 4908 ldr r1, [pc, #32] ; (800200c <DoKeyUP+0xa4c>)
8001fea: 015a lsls r2, r3, #5
8001fec: 440a add r2, r1
8001fee: 3206 adds r2, #6
8001ff0: 8812 ldrh r2, [r2, #0]
8001ff2: b292 uxth r2, r2
8001ff4: 3a01 subs r2, #1
8001ff6: b291 uxth r1, r2
8001ff8: 4a04 ldr r2, [pc, #16] ; (800200c <DoKeyUP+0xa4c>)
8001ffa: 015b lsls r3, r3, #5
8001ffc: 4413 add r3, r2
8001ffe: 3306 adds r3, #6
8002000: 460a mov r2, r1
8002002: 801a strh r2, [r3, #0]
}
8002004: f000 bdd4 b.w 8002bb0 <DoKeyUP+0x15f0>
8002008: 2006b2d0 .word 0x2006b2d0
800200c: 2006b510 .word 0x2006b510
8002010: 43480000 .word 0x43480000
8002014: 43fa0000 .word 0x43fa0000
8002018: 447a0000 .word 0x447a0000
800201c: 44fa0000 .word 0x44fa0000
8002020: 459c4000 .word 0x459c4000
if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 5000.1f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 10000.0f) //10000
8002024: 4bb6 ldr r3, [pc, #728] ; (8002300 <DoKeyUP+0xd40>)
8002026: 681b ldr r3, [r3, #0]
8002028: 4ab6 ldr r2, [pc, #728] ; (8002304 <DoKeyUP+0xd44>)
800202a: 015b lsls r3, r3, #5
800202c: 4413 add r3, r2
800202e: 3318 adds r3, #24
8002030: edd3 7a00 vldr s15, [r3]
8002034: ed9f 7ab4 vldr s14, [pc, #720] ; 8002308 <DoKeyUP+0xd48>
8002038: eef4 7ac7 vcmpe.f32 s15, s14
800203c: eef1 fa10 vmrs APSR_nzcv, fpscr
8002040: d836 bhi.n 80020b0 <DoKeyUP+0xaf0>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku1)
8002042: 4baf ldr r3, [pc, #700] ; (8002300 <DoKeyUP+0xd40>)
8002044: 681b ldr r3, [r3, #0]
8002046: 4aaf ldr r2, [pc, #700] ; (8002304 <DoKeyUP+0xd44>)
8002048: 015b lsls r3, r3, #5
800204a: 4413 add r3, r2
800204c: 3306 adds r3, #6
800204e: 881b ldrh r3, [r3, #0]
8002050: b29b uxth r3, r3
8002052: 2b02 cmp r3, #2
8002054: f200 85ac bhi.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
8002058: 4ba9 ldr r3, [pc, #676] ; (8002300 <DoKeyUP+0xd40>)
800205a: 681b ldr r3, [r3, #0]
800205c: 49a9 ldr r1, [pc, #676] ; (8002304 <DoKeyUP+0xd44>)
800205e: 015a lsls r2, r3, #5
8002060: 440a add r2, r1
8002062: 3206 adds r2, #6
8002064: 8812 ldrh r2, [r2, #0]
8002066: b292 uxth r2, r2
8002068: 3201 adds r2, #1
800206a: b291 uxth r1, r2
800206c: 4aa5 ldr r2, [pc, #660] ; (8002304 <DoKeyUP+0xd44>)
800206e: 015b lsls r3, r3, #5
8002070: 4413 add r3, r2
8002072: 3306 adds r3, #6
8002074: 460a mov r2, r1
8002076: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8002078: 4ba1 ldr r3, [pc, #644] ; (8002300 <DoKeyUP+0xd40>)
800207a: 681b ldr r3, [r3, #0]
800207c: b2db uxtb r3, r3
800207e: 4618 mov r0, r3
8002080: f00a fcc8 bl 800ca14 <WriteChannel>
8002084: 4603 mov r3, r0
8002086: 2b00 cmp r3, #0
8002088: f000 8592 beq.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
800208c: 4b9c ldr r3, [pc, #624] ; (8002300 <DoKeyUP+0xd40>)
800208e: 681b ldr r3, [r3, #0]
8002090: 499c ldr r1, [pc, #624] ; (8002304 <DoKeyUP+0xd44>)
8002092: 015a lsls r2, r3, #5
8002094: 440a add r2, r1
8002096: 3206 adds r2, #6
8002098: 8812 ldrh r2, [r2, #0]
800209a: b292 uxth r2, r2
800209c: 3a01 subs r2, #1
800209e: b291 uxth r1, r2
80020a0: 4a98 ldr r2, [pc, #608] ; (8002304 <DoKeyUP+0xd44>)
80020a2: 015b lsls r3, r3, #5
80020a4: 4413 add r3, r2
80020a6: 3306 adds r3, #6
80020a8: 460a mov r2, r1
80020aa: 801a strh r2, [r3, #0]
}
80020ac: f000 bd80 b.w 8002bb0 <DoKeyUP+0x15f0>
if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 10001.0f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 20000.0f) //20000
80020b0: 4b93 ldr r3, [pc, #588] ; (8002300 <DoKeyUP+0xd40>)
80020b2: 681b ldr r3, [r3, #0]
80020b4: 4a93 ldr r2, [pc, #588] ; (8002304 <DoKeyUP+0xd44>)
80020b6: 015b lsls r3, r3, #5
80020b8: 4413 add r3, r2
80020ba: 3318 adds r3, #24
80020bc: edd3 7a00 vldr s15, [r3]
80020c0: ed9f 7a92 vldr s14, [pc, #584] ; 800230c <DoKeyUP+0xd4c>
80020c4: eef4 7ac7 vcmpe.f32 s15, s14
80020c8: eef1 fa10 vmrs APSR_nzcv, fpscr
80020cc: d836 bhi.n 800213c <DoKeyUP+0xb7c>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku0_5)
80020ce: 4b8c ldr r3, [pc, #560] ; (8002300 <DoKeyUP+0xd40>)
80020d0: 681b ldr r3, [r3, #0]
80020d2: 4a8c ldr r2, [pc, #560] ; (8002304 <DoKeyUP+0xd44>)
80020d4: 015b lsls r3, r3, #5
80020d6: 4413 add r3, r2
80020d8: 3306 adds r3, #6
80020da: 881b ldrh r3, [r3, #0]
80020dc: b29b uxth r3, r3
80020de: 2b01 cmp r3, #1
80020e0: f200 8566 bhi.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
80020e4: 4b86 ldr r3, [pc, #536] ; (8002300 <DoKeyUP+0xd40>)
80020e6: 681b ldr r3, [r3, #0]
80020e8: 4986 ldr r1, [pc, #536] ; (8002304 <DoKeyUP+0xd44>)
80020ea: 015a lsls r2, r3, #5
80020ec: 440a add r2, r1
80020ee: 3206 adds r2, #6
80020f0: 8812 ldrh r2, [r2, #0]
80020f2: b292 uxth r2, r2
80020f4: 3201 adds r2, #1
80020f6: b291 uxth r1, r2
80020f8: 4a82 ldr r2, [pc, #520] ; (8002304 <DoKeyUP+0xd44>)
80020fa: 015b lsls r3, r3, #5
80020fc: 4413 add r3, r2
80020fe: 3306 adds r3, #6
8002100: 460a mov r2, r1
8002102: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8002104: 4b7e ldr r3, [pc, #504] ; (8002300 <DoKeyUP+0xd40>)
8002106: 681b ldr r3, [r3, #0]
8002108: b2db uxtb r3, r3
800210a: 4618 mov r0, r3
800210c: f00a fc82 bl 800ca14 <WriteChannel>
8002110: 4603 mov r3, r0
8002112: 2b00 cmp r3, #0
8002114: f000 854c beq.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
8002118: 4b79 ldr r3, [pc, #484] ; (8002300 <DoKeyUP+0xd40>)
800211a: 681b ldr r3, [r3, #0]
800211c: 4979 ldr r1, [pc, #484] ; (8002304 <DoKeyUP+0xd44>)
800211e: 015a lsls r2, r3, #5
8002120: 440a add r2, r1
8002122: 3206 adds r2, #6
8002124: 8812 ldrh r2, [r2, #0]
8002126: b292 uxth r2, r2
8002128: 3a01 subs r2, #1
800212a: b291 uxth r1, r2
800212c: 4a75 ldr r2, [pc, #468] ; (8002304 <DoKeyUP+0xd44>)
800212e: 015b lsls r3, r3, #5
8002130: 4413 add r3, r2
8002132: 3306 adds r3, #6
8002134: 460a mov r2, r1
8002136: 801a strh r2, [r3, #0]
}
8002138: f000 bd3a b.w 8002bb0 <DoKeyUP+0x15f0>
if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 20001.0f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 50000.0f) //50000
800213c: 4b70 ldr r3, [pc, #448] ; (8002300 <DoKeyUP+0xd40>)
800213e: 681b ldr r3, [r3, #0]
8002140: 4a70 ldr r2, [pc, #448] ; (8002304 <DoKeyUP+0xd44>)
8002142: 015b lsls r3, r3, #5
8002144: 4413 add r3, r2
8002146: 3318 adds r3, #24
8002148: edd3 7a00 vldr s15, [r3]
800214c: ed9f 7a70 vldr s14, [pc, #448] ; 8002310 <DoKeyUP+0xd50>
8002150: eef4 7ac7 vcmpe.f32 s15, s14
8002154: eef1 fa10 vmrs APSR_nzcv, fpscr
8002158: d836 bhi.n 80021c8 <DoKeyUP+0xc08>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku0_2)
800215a: 4b69 ldr r3, [pc, #420] ; (8002300 <DoKeyUP+0xd40>)
800215c: 681b ldr r3, [r3, #0]
800215e: 4a69 ldr r2, [pc, #420] ; (8002304 <DoKeyUP+0xd44>)
8002160: 015b lsls r3, r3, #5
8002162: 4413 add r3, r2
8002164: 3306 adds r3, #6
8002166: 881b ldrh r3, [r3, #0]
8002168: b29b uxth r3, r3
800216a: 2b00 cmp r3, #0
800216c: f040 8520 bne.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
8002170: 4b63 ldr r3, [pc, #396] ; (8002300 <DoKeyUP+0xd40>)
8002172: 681b ldr r3, [r3, #0]
8002174: 4963 ldr r1, [pc, #396] ; (8002304 <DoKeyUP+0xd44>)
8002176: 015a lsls r2, r3, #5
8002178: 440a add r2, r1
800217a: 3206 adds r2, #6
800217c: 8812 ldrh r2, [r2, #0]
800217e: b292 uxth r2, r2
8002180: 3201 adds r2, #1
8002182: b291 uxth r1, r2
8002184: 4a5f ldr r2, [pc, #380] ; (8002304 <DoKeyUP+0xd44>)
8002186: 015b lsls r3, r3, #5
8002188: 4413 add r3, r2
800218a: 3306 adds r3, #6
800218c: 460a mov r2, r1
800218e: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8002190: 4b5b ldr r3, [pc, #364] ; (8002300 <DoKeyUP+0xd40>)
8002192: 681b ldr r3, [r3, #0]
8002194: b2db uxtb r3, r3
8002196: 4618 mov r0, r3
8002198: f00a fc3c bl 800ca14 <WriteChannel>
800219c: 4603 mov r3, r0
800219e: 2b00 cmp r3, #0
80021a0: f000 8506 beq.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
80021a4: 4b56 ldr r3, [pc, #344] ; (8002300 <DoKeyUP+0xd40>)
80021a6: 681b ldr r3, [r3, #0]
80021a8: 4956 ldr r1, [pc, #344] ; (8002304 <DoKeyUP+0xd44>)
80021aa: 015a lsls r2, r3, #5
80021ac: 440a add r2, r1
80021ae: 3206 adds r2, #6
80021b0: 8812 ldrh r2, [r2, #0]
80021b2: b292 uxth r2, r2
80021b4: 3a01 subs r2, #1
80021b6: b291 uxth r1, r2
80021b8: 4a52 ldr r2, [pc, #328] ; (8002304 <DoKeyUP+0xd44>)
80021ba: 015b lsls r3, r3, #5
80021bc: 4413 add r3, r2
80021be: 3306 adds r3, #6
80021c0: 460a mov r2, r1
80021c2: 801a strh r2, [r3, #0]
}
80021c4: f000 bcf4 b.w 8002bb0 <DoKeyUP+0x15f0>
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) //99999
80021c8: 4b4d ldr r3, [pc, #308] ; (8002300 <DoKeyUP+0xd40>)
80021ca: 681b ldr r3, [r3, #0]
80021cc: 4a4d ldr r2, [pc, #308] ; (8002304 <DoKeyUP+0xd44>)
80021ce: 015b lsls r3, r3, #5
80021d0: 4413 add r3, r2
80021d2: 3318 adds r3, #24
80021d4: edd3 7a00 vldr s15, [r3]
80021d8: ed9f 7a4e vldr s14, [pc, #312] ; 8002314 <DoKeyUP+0xd54>
80021dc: eef4 7ac7 vcmpe.f32 s15, s14
80021e0: eef1 fa10 vmrs APSR_nzcv, fpscr
80021e4: d401 bmi.n 80021ea <DoKeyUP+0xc2a>
}
80021e6: f000 bce3 b.w 8002bb0 <DoKeyUP+0x15f0>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku0_1;
80021ea: 4b45 ldr r3, [pc, #276] ; (8002300 <DoKeyUP+0xd40>)
80021ec: 681b ldr r3, [r3, #0]
80021ee: 4a45 ldr r2, [pc, #276] ; (8002304 <DoKeyUP+0xd44>)
80021f0: 015b lsls r3, r3, #5
80021f2: 4413 add r3, r2
80021f4: 3306 adds r3, #6
80021f6: 2200 movs r2, #0
80021f8: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
80021fa: 4b41 ldr r3, [pc, #260] ; (8002300 <DoKeyUP+0xd40>)
80021fc: 681b ldr r3, [r3, #0]
80021fe: b2db uxtb r3, r3
8002200: 4618 mov r0, r3
8002202: f00a fc07 bl 800ca14 <WriteChannel>
}
8002206: f000 bcd3 b.w 8002bb0 <DoKeyUP+0x15f0>
menupos = Val;
800220a: 4b43 ldr r3, [pc, #268] ; (8002318 <DoKeyUP+0xd58>)
800220c: 2204 movs r2, #4
800220e: 701a strb r2, [r3, #0]
}
8002210: f000 bcce b.w 8002bb0 <DoKeyUP+0x15f0>
if(menupos == Kikdt)
8002214: 4b40 ldr r3, [pc, #256] ; (8002318 <DoKeyUP+0xd58>)
8002216: 781b ldrb r3, [r3, #0]
8002218: b2db uxtb r3, r3
800221a: 2b06 cmp r3, #6
800221c: f040 80d2 bne.w 80023c4 <DoKeyUP+0xe04>
if(ikdt < 9) {
8002220: 69bb ldr r3, [r7, #24]
8002222: 2b08 cmp r3, #8
8002224: d802 bhi.n 800222c <DoKeyUP+0xc6c>
ikdt++;
8002226: 69bb ldr r3, [r7, #24]
8002228: 3301 adds r3, #1
800222a: 61bb str r3, [r7, #24]
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
800222c: 69bb ldr r3, [r7, #24]
800222e: f242 7210 movw r2, #10000 ; 0x2710
8002232: fb02 f203 mul.w r2, r2, r3
8002236: 697b ldr r3, [r7, #20]
8002238: f44f 717a mov.w r1, #1000 ; 0x3e8
800223c: fb01 f303 mul.w r3, r1, r3
8002240: 18d1 adds r1, r2, r3
8002242: 68fa ldr r2, [r7, #12]
8002244: 4613 mov r3, r2
8002246: 009b lsls r3, r3, #2
8002248: 4413 add r3, r2
800224a: 005b lsls r3, r3, #1
800224c: 4618 mov r0, r3
800224e: 693b ldr r3, [r7, #16]
8002250: 2264 movs r2, #100 ; 0x64
8002252: fb02 f303 mul.w r3, r2, r3
8002256: 4403 add r3, r0
8002258: 18ca adds r2, r1, r3
800225a: 68bb ldr r3, [r7, #8]
800225c: 4413 add r3, r2
800225e: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
8002260: 4b27 ldr r3, [pc, #156] ; (8002300 <DoKeyUP+0xd40>)
8002262: 681b ldr r3, [r3, #0]
8002264: 69fa ldr r2, [r7, #28]
8002266: ee07 2a90 vmov s15, r2
800226a: eef8 7a67 vcvt.f32.u32 s15, s15
800226e: 4a25 ldr r2, [pc, #148] ; (8002304 <DoKeyUP+0xd44>)
8002270: 015b lsls r3, r3, #5
8002272: 4413 add r3, r2
8002274: 3318 adds r3, #24
8002276: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
800227a: 687b ldr r3, [r7, #4]
800227c: 2b01 cmp r3, #1
800227e: d112 bne.n 80022a6 <DoKeyUP+0xce6>
8002280: 4b1f ldr r3, [pc, #124] ; (8002300 <DoKeyUP+0xd40>)
8002282: 681b ldr r3, [r3, #0]
8002284: 491f ldr r1, [pc, #124] ; (8002304 <DoKeyUP+0xd44>)
8002286: 015a lsls r2, r3, #5
8002288: 440a add r2, r1
800228a: 3218 adds r2, #24
800228c: edd2 7a00 vldr s15, [r2]
8002290: ed9f 7a22 vldr s14, [pc, #136] ; 800231c <DoKeyUP+0xd5c>
8002294: ee67 7a87 vmul.f32 s15, s15, s14
8002298: 4a1a ldr r2, [pc, #104] ; (8002304 <DoKeyUP+0xd44>)
800229a: 015b lsls r3, r3, #5
800229c: 4413 add r3, r2
800229e: 3318 adds r3, #24
80022a0: edc3 7a00 vstr s15, [r3]
80022a4: e055 b.n 8002352 <DoKeyUP+0xd92>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
80022a6: 687b ldr r3, [r7, #4]
80022a8: 2b02 cmp r3, #2
80022aa: d112 bne.n 80022d2 <DoKeyUP+0xd12>
80022ac: 4b14 ldr r3, [pc, #80] ; (8002300 <DoKeyUP+0xd40>)
80022ae: 681b ldr r3, [r3, #0]
80022b0: 4914 ldr r1, [pc, #80] ; (8002304 <DoKeyUP+0xd44>)
80022b2: 015a lsls r2, r3, #5
80022b4: 440a add r2, r1
80022b6: 3218 adds r2, #24
80022b8: edd2 7a00 vldr s15, [r2]
80022bc: ed9f 7a18 vldr s14, [pc, #96] ; 8002320 <DoKeyUP+0xd60>
80022c0: ee67 7a87 vmul.f32 s15, s15, s14
80022c4: 4a0f ldr r2, [pc, #60] ; (8002304 <DoKeyUP+0xd44>)
80022c6: 015b lsls r3, r3, #5
80022c8: 4413 add r3, r2
80022ca: 3318 adds r3, #24
80022cc: edc3 7a00 vstr s15, [r3]
80022d0: e03f b.n 8002352 <DoKeyUP+0xd92>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
80022d2: 687b ldr r3, [r7, #4]
80022d4: 2b03 cmp r3, #3
80022d6: d127 bne.n 8002328 <DoKeyUP+0xd68>
80022d8: 4b09 ldr r3, [pc, #36] ; (8002300 <DoKeyUP+0xd40>)
80022da: 681b ldr r3, [r3, #0]
80022dc: 4909 ldr r1, [pc, #36] ; (8002304 <DoKeyUP+0xd44>)
80022de: 015a lsls r2, r3, #5
80022e0: 440a add r2, r1
80022e2: 3218 adds r2, #24
80022e4: edd2 7a00 vldr s15, [r2]
80022e8: ed9f 7a0e vldr s14, [pc, #56] ; 8002324 <DoKeyUP+0xd64>
80022ec: ee67 7a87 vmul.f32 s15, s15, s14
80022f0: 4a04 ldr r2, [pc, #16] ; (8002304 <DoKeyUP+0xd44>)
80022f2: 015b lsls r3, r3, #5
80022f4: 4413 add r3, r2
80022f6: 3318 adds r3, #24
80022f8: edc3 7a00 vstr s15, [r3]
80022fc: e029 b.n 8002352 <DoKeyUP+0xd92>
80022fe: bf00 nop
8002300: 2006b2d0 .word 0x2006b2d0
8002304: 2006b510 .word 0x2006b510
8002308: 461c4000 .word 0x461c4000
800230c: 469c4000 .word 0x469c4000
8002310: 47435000 .word 0x47435000
8002314: 47c35000 .word 0x47c35000
8002318: 20020010 .word 0x20020010
800231c: 3dcccccd .word 0x3dcccccd
8002320: 3c23d70a .word 0x3c23d70a
8002324: 3a83126f .word 0x3a83126f
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8002328: 687b ldr r3, [r7, #4]
800232a: 2b04 cmp r3, #4
800232c: d111 bne.n 8002352 <DoKeyUP+0xd92>
800232e: 4bb6 ldr r3, [pc, #728] ; (8002608 <DoKeyUP+0x1048>)
8002330: 681b ldr r3, [r3, #0]
8002332: 49b6 ldr r1, [pc, #728] ; (800260c <DoKeyUP+0x104c>)
8002334: 015a lsls r2, r3, #5
8002336: 440a add r2, r1
8002338: 3218 adds r2, #24
800233a: edd2 7a00 vldr s15, [r2]
800233e: ed9f 7ab4 vldr s14, [pc, #720] ; 8002610 <DoKeyUP+0x1050>
8002342: ee67 7a87 vmul.f32 s15, s15, s14
8002346: 4ab1 ldr r2, [pc, #708] ; (800260c <DoKeyUP+0x104c>)
8002348: 015b lsls r3, r3, #5
800234a: 4413 add r3, r2
800234c: 3318 adds r3, #24
800234e: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
8002352: 4bad ldr r3, [pc, #692] ; (8002608 <DoKeyUP+0x1048>)
8002354: 681b ldr r3, [r3, #0]
8002356: 4aad ldr r2, [pc, #692] ; (800260c <DoKeyUP+0x104c>)
8002358: 015b lsls r3, r3, #5
800235a: 4413 add r3, r2
800235c: 3318 adds r3, #24
800235e: edd3 7a00 vldr s15, [r3]
8002362: eef5 7ac0 vcmpe.f32 s15, #0.0
8002366: eef1 fa10 vmrs APSR_nzcv, fpscr
800236a: d807 bhi.n 800237c <DoKeyUP+0xdbc>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
800236c: 4ba6 ldr r3, [pc, #664] ; (8002608 <DoKeyUP+0x1048>)
800236e: 681b ldr r3, [r3, #0]
8002370: 4aa6 ldr r2, [pc, #664] ; (800260c <DoKeyUP+0x104c>)
8002372: 015b lsls r3, r3, #5
8002374: 4413 add r3, r2
8002376: 3318 adds r3, #24
8002378: 4aa6 ldr r2, [pc, #664] ; (8002614 <DoKeyUP+0x1054>)
800237a: 601a str r2, [r3, #0]
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
800237c: 4ba2 ldr r3, [pc, #648] ; (8002608 <DoKeyUP+0x1048>)
800237e: 681b ldr r3, [r3, #0]
8002380: 4aa2 ldr r2, [pc, #648] ; (800260c <DoKeyUP+0x104c>)
8002382: 015b lsls r3, r3, #5
8002384: 4413 add r3, r2
8002386: 3318 adds r3, #24
8002388: edd3 7a00 vldr s15, [r3]
800238c: ed9f 7aa2 vldr s14, [pc, #648] ; 8002618 <DoKeyUP+0x1058>
8002390: eef4 7ac7 vcmpe.f32 s15, s14
8002394: eef1 fa10 vmrs APSR_nzcv, fpscr
8002398: db07 blt.n 80023aa <DoKeyUP+0xdea>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
800239a: 4b9b ldr r3, [pc, #620] ; (8002608 <DoKeyUP+0x1048>)
800239c: 681b ldr r3, [r3, #0]
800239e: 4a9b ldr r2, [pc, #620] ; (800260c <DoKeyUP+0x104c>)
80023a0: 015b lsls r3, r3, #5
80023a2: 4413 add r3, r2
80023a4: 3318 adds r3, #24
80023a6: 4a9d ldr r2, [pc, #628] ; (800261c <DoKeyUP+0x105c>)
80023a8: 601a str r2, [r3, #0]
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
80023aa: 4b97 ldr r3, [pc, #604] ; (8002608 <DoKeyUP+0x1048>)
80023ac: 681b ldr r3, [r3, #0]
80023ae: 4a97 ldr r2, [pc, #604] ; (800260c <DoKeyUP+0x104c>)
80023b0: 015b lsls r3, r3, #5
80023b2: 4413 add r3, r2
80023b4: 3318 adds r3, #24
80023b6: edd3 7a00 vldr s15, [r3]
80023ba: eeb0 0a67 vmov.f32 s0, s15
80023be: f001 fc0b bl 8003bd8 <VerifyGain>
}
80023c2: e3f5 b.n 8002bb0 <DoKeyUP+0x15f0>
if(menupos == Kikt)
80023c4: 4b96 ldr r3, [pc, #600] ; (8002620 <DoKeyUP+0x1060>)
80023c6: 781b ldrb r3, [r3, #0]
80023c8: b2db uxtb r3, r3
80023ca: 2b07 cmp r3, #7
80023cc: f040 80bd bne.w 800254a <DoKeyUP+0xf8a>
if(ikt < 9) {
80023d0: 697b ldr r3, [r7, #20]
80023d2: 2b08 cmp r3, #8
80023d4: d802 bhi.n 80023dc <DoKeyUP+0xe1c>
ikt++;
80023d6: 697b ldr r3, [r7, #20]
80023d8: 3301 adds r3, #1
80023da: 617b str r3, [r7, #20]
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
80023dc: 69bb ldr r3, [r7, #24]
80023de: f242 7210 movw r2, #10000 ; 0x2710
80023e2: fb02 f203 mul.w r2, r2, r3
80023e6: 697b ldr r3, [r7, #20]
80023e8: f44f 717a mov.w r1, #1000 ; 0x3e8
80023ec: fb01 f303 mul.w r3, r1, r3
80023f0: 18d1 adds r1, r2, r3
80023f2: 68fa ldr r2, [r7, #12]
80023f4: 4613 mov r3, r2
80023f6: 009b lsls r3, r3, #2
80023f8: 4413 add r3, r2
80023fa: 005b lsls r3, r3, #1
80023fc: 4618 mov r0, r3
80023fe: 693b ldr r3, [r7, #16]
8002400: 2264 movs r2, #100 ; 0x64
8002402: fb02 f303 mul.w r3, r2, r3
8002406: 4403 add r3, r0
8002408: 18ca adds r2, r1, r3
800240a: 68bb ldr r3, [r7, #8]
800240c: 4413 add r3, r2
800240e: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
8002410: 4b7d ldr r3, [pc, #500] ; (8002608 <DoKeyUP+0x1048>)
8002412: 681b ldr r3, [r3, #0]
8002414: 69fa ldr r2, [r7, #28]
8002416: ee07 2a90 vmov s15, r2
800241a: eef8 7a67 vcvt.f32.u32 s15, s15
800241e: 4a7b ldr r2, [pc, #492] ; (800260c <DoKeyUP+0x104c>)
8002420: 015b lsls r3, r3, #5
8002422: 4413 add r3, r2
8002424: 3318 adds r3, #24
8002426: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
800242a: 687b ldr r3, [r7, #4]
800242c: 2b01 cmp r3, #1
800242e: d112 bne.n 8002456 <DoKeyUP+0xe96>
8002430: 4b75 ldr r3, [pc, #468] ; (8002608 <DoKeyUP+0x1048>)
8002432: 681b ldr r3, [r3, #0]
8002434: 4975 ldr r1, [pc, #468] ; (800260c <DoKeyUP+0x104c>)
8002436: 015a lsls r2, r3, #5
8002438: 440a add r2, r1
800243a: 3218 adds r2, #24
800243c: edd2 7a00 vldr s15, [r2]
8002440: ed9f 7a78 vldr s14, [pc, #480] ; 8002624 <DoKeyUP+0x1064>
8002444: ee67 7a87 vmul.f32 s15, s15, s14
8002448: 4a70 ldr r2, [pc, #448] ; (800260c <DoKeyUP+0x104c>)
800244a: 015b lsls r3, r3, #5
800244c: 4413 add r3, r2
800244e: 3318 adds r3, #24
8002450: edc3 7a00 vstr s15, [r3]
8002454: e040 b.n 80024d8 <DoKeyUP+0xf18>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8002456: 687b ldr r3, [r7, #4]
8002458: 2b02 cmp r3, #2
800245a: d112 bne.n 8002482 <DoKeyUP+0xec2>
800245c: 4b6a ldr r3, [pc, #424] ; (8002608 <DoKeyUP+0x1048>)
800245e: 681b ldr r3, [r3, #0]
8002460: 496a ldr r1, [pc, #424] ; (800260c <DoKeyUP+0x104c>)
8002462: 015a lsls r2, r3, #5
8002464: 440a add r2, r1
8002466: 3218 adds r2, #24
8002468: edd2 7a00 vldr s15, [r2]
800246c: ed9f 7a6e vldr s14, [pc, #440] ; 8002628 <DoKeyUP+0x1068>
8002470: ee67 7a87 vmul.f32 s15, s15, s14
8002474: 4a65 ldr r2, [pc, #404] ; (800260c <DoKeyUP+0x104c>)
8002476: 015b lsls r3, r3, #5
8002478: 4413 add r3, r2
800247a: 3318 adds r3, #24
800247c: edc3 7a00 vstr s15, [r3]
8002480: e02a b.n 80024d8 <DoKeyUP+0xf18>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8002482: 687b ldr r3, [r7, #4]
8002484: 2b03 cmp r3, #3
8002486: d112 bne.n 80024ae <DoKeyUP+0xeee>
8002488: 4b5f ldr r3, [pc, #380] ; (8002608 <DoKeyUP+0x1048>)
800248a: 681b ldr r3, [r3, #0]
800248c: 495f ldr r1, [pc, #380] ; (800260c <DoKeyUP+0x104c>)
800248e: 015a lsls r2, r3, #5
8002490: 440a add r2, r1
8002492: 3218 adds r2, #24
8002494: edd2 7a00 vldr s15, [r2]
8002498: ed9f 7a64 vldr s14, [pc, #400] ; 800262c <DoKeyUP+0x106c>
800249c: ee67 7a87 vmul.f32 s15, s15, s14
80024a0: 4a5a ldr r2, [pc, #360] ; (800260c <DoKeyUP+0x104c>)
80024a2: 015b lsls r3, r3, #5
80024a4: 4413 add r3, r2
80024a6: 3318 adds r3, #24
80024a8: edc3 7a00 vstr s15, [r3]
80024ac: e014 b.n 80024d8 <DoKeyUP+0xf18>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
80024ae: 687b ldr r3, [r7, #4]
80024b0: 2b04 cmp r3, #4
80024b2: d111 bne.n 80024d8 <DoKeyUP+0xf18>
80024b4: 4b54 ldr r3, [pc, #336] ; (8002608 <DoKeyUP+0x1048>)
80024b6: 681b ldr r3, [r3, #0]
80024b8: 4954 ldr r1, [pc, #336] ; (800260c <DoKeyUP+0x104c>)
80024ba: 015a lsls r2, r3, #5
80024bc: 440a add r2, r1
80024be: 3218 adds r2, #24
80024c0: edd2 7a00 vldr s15, [r2]
80024c4: ed9f 7a52 vldr s14, [pc, #328] ; 8002610 <DoKeyUP+0x1050>
80024c8: ee67 7a87 vmul.f32 s15, s15, s14
80024cc: 4a4f ldr r2, [pc, #316] ; (800260c <DoKeyUP+0x104c>)
80024ce: 015b lsls r3, r3, #5
80024d0: 4413 add r3, r2
80024d2: 3318 adds r3, #24
80024d4: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
80024d8: 4b4b ldr r3, [pc, #300] ; (8002608 <DoKeyUP+0x1048>)
80024da: 681b ldr r3, [r3, #0]
80024dc: 4a4b ldr r2, [pc, #300] ; (800260c <DoKeyUP+0x104c>)
80024de: 015b lsls r3, r3, #5
80024e0: 4413 add r3, r2
80024e2: 3318 adds r3, #24
80024e4: edd3 7a00 vldr s15, [r3]
80024e8: eef5 7ac0 vcmpe.f32 s15, #0.0
80024ec: eef1 fa10 vmrs APSR_nzcv, fpscr
80024f0: d807 bhi.n 8002502 <DoKeyUP+0xf42>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
80024f2: 4b45 ldr r3, [pc, #276] ; (8002608 <DoKeyUP+0x1048>)
80024f4: 681b ldr r3, [r3, #0]
80024f6: 4a45 ldr r2, [pc, #276] ; (800260c <DoKeyUP+0x104c>)
80024f8: 015b lsls r3, r3, #5
80024fa: 4413 add r3, r2
80024fc: 3318 adds r3, #24
80024fe: 4a45 ldr r2, [pc, #276] ; (8002614 <DoKeyUP+0x1054>)
8002500: 601a str r2, [r3, #0]
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8002502: 4b41 ldr r3, [pc, #260] ; (8002608 <DoKeyUP+0x1048>)
8002504: 681b ldr r3, [r3, #0]
8002506: 4a41 ldr r2, [pc, #260] ; (800260c <DoKeyUP+0x104c>)
8002508: 015b lsls r3, r3, #5
800250a: 4413 add r3, r2
800250c: 3318 adds r3, #24
800250e: edd3 7a00 vldr s15, [r3]
8002512: ed9f 7a41 vldr s14, [pc, #260] ; 8002618 <DoKeyUP+0x1058>
8002516: eef4 7ac7 vcmpe.f32 s15, s14
800251a: eef1 fa10 vmrs APSR_nzcv, fpscr
800251e: db07 blt.n 8002530 <DoKeyUP+0xf70>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
8002520: 4b39 ldr r3, [pc, #228] ; (8002608 <DoKeyUP+0x1048>)
8002522: 681b ldr r3, [r3, #0]
8002524: 4a39 ldr r2, [pc, #228] ; (800260c <DoKeyUP+0x104c>)
8002526: 015b lsls r3, r3, #5
8002528: 4413 add r3, r2
800252a: 3318 adds r3, #24
800252c: 4a3b ldr r2, [pc, #236] ; (800261c <DoKeyUP+0x105c>)
800252e: 601a str r2, [r3, #0]
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
8002530: 4b35 ldr r3, [pc, #212] ; (8002608 <DoKeyUP+0x1048>)
8002532: 681b ldr r3, [r3, #0]
8002534: 4a35 ldr r2, [pc, #212] ; (800260c <DoKeyUP+0x104c>)
8002536: 015b lsls r3, r3, #5
8002538: 4413 add r3, r2
800253a: 3318 adds r3, #24
800253c: edd3 7a00 vldr s15, [r3]
8002540: eeb0 0a67 vmov.f32 s0, s15
8002544: f001 fb48 bl 8003bd8 <VerifyGain>
}
8002548: e332 b.n 8002bb0 <DoKeyUP+0x15f0>
if(menupos == Kiks)
800254a: 4b35 ldr r3, [pc, #212] ; (8002620 <DoKeyUP+0x1060>)
800254c: 781b ldrb r3, [r3, #0]
800254e: b2db uxtb r3, r3
8002550: 2b08 cmp r3, #8
8002552: f040 80d1 bne.w 80026f8 <DoKeyUP+0x1138>
if(iks < 9) {
8002556: 693b ldr r3, [r7, #16]
8002558: 2b08 cmp r3, #8
800255a: d802 bhi.n 8002562 <DoKeyUP+0xfa2>
iks++;
800255c: 693b ldr r3, [r7, #16]
800255e: 3301 adds r3, #1
8002560: 613b str r3, [r7, #16]
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
8002562: 69bb ldr r3, [r7, #24]
8002564: f242 7210 movw r2, #10000 ; 0x2710
8002568: fb02 f203 mul.w r2, r2, r3
800256c: 697b ldr r3, [r7, #20]
800256e: f44f 717a mov.w r1, #1000 ; 0x3e8
8002572: fb01 f303 mul.w r3, r1, r3
8002576: 18d1 adds r1, r2, r3
8002578: 68fa ldr r2, [r7, #12]
800257a: 4613 mov r3, r2
800257c: 009b lsls r3, r3, #2
800257e: 4413 add r3, r2
8002580: 005b lsls r3, r3, #1
8002582: 4618 mov r0, r3
8002584: 693b ldr r3, [r7, #16]
8002586: 2264 movs r2, #100 ; 0x64
8002588: fb02 f303 mul.w r3, r2, r3
800258c: 4403 add r3, r0
800258e: 18ca adds r2, r1, r3
8002590: 68bb ldr r3, [r7, #8]
8002592: 4413 add r3, r2
8002594: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
8002596: 4b1c ldr r3, [pc, #112] ; (8002608 <DoKeyUP+0x1048>)
8002598: 681b ldr r3, [r3, #0]
800259a: 69fa ldr r2, [r7, #28]
800259c: ee07 2a90 vmov s15, r2
80025a0: eef8 7a67 vcvt.f32.u32 s15, s15
80025a4: 4a19 ldr r2, [pc, #100] ; (800260c <DoKeyUP+0x104c>)
80025a6: 015b lsls r3, r3, #5
80025a8: 4413 add r3, r2
80025aa: 3318 adds r3, #24
80025ac: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
80025b0: 687b ldr r3, [r7, #4]
80025b2: 2b01 cmp r3, #1
80025b4: d112 bne.n 80025dc <DoKeyUP+0x101c>
80025b6: 4b14 ldr r3, [pc, #80] ; (8002608 <DoKeyUP+0x1048>)
80025b8: 681b ldr r3, [r3, #0]
80025ba: 4914 ldr r1, [pc, #80] ; (800260c <DoKeyUP+0x104c>)
80025bc: 015a lsls r2, r3, #5
80025be: 440a add r2, r1
80025c0: 3218 adds r2, #24
80025c2: edd2 7a00 vldr s15, [r2]
80025c6: ed9f 7a17 vldr s14, [pc, #92] ; 8002624 <DoKeyUP+0x1064>
80025ca: ee67 7a87 vmul.f32 s15, s15, s14
80025ce: 4a0f ldr r2, [pc, #60] ; (800260c <DoKeyUP+0x104c>)
80025d0: 015b lsls r3, r3, #5
80025d2: 4413 add r3, r2
80025d4: 3318 adds r3, #24
80025d6: edc3 7a00 vstr s15, [r3]
80025da: e054 b.n 8002686 <DoKeyUP+0x10c6>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
80025dc: 687b ldr r3, [r7, #4]
80025de: 2b02 cmp r3, #2
80025e0: d126 bne.n 8002630 <DoKeyUP+0x1070>
80025e2: 4b09 ldr r3, [pc, #36] ; (8002608 <DoKeyUP+0x1048>)
80025e4: 681b ldr r3, [r3, #0]
80025e6: 4909 ldr r1, [pc, #36] ; (800260c <DoKeyUP+0x104c>)
80025e8: 015a lsls r2, r3, #5
80025ea: 440a add r2, r1
80025ec: 3218 adds r2, #24
80025ee: edd2 7a00 vldr s15, [r2]
80025f2: ed9f 7a0d vldr s14, [pc, #52] ; 8002628 <DoKeyUP+0x1068>
80025f6: ee67 7a87 vmul.f32 s15, s15, s14
80025fa: 4a04 ldr r2, [pc, #16] ; (800260c <DoKeyUP+0x104c>)
80025fc: 015b lsls r3, r3, #5
80025fe: 4413 add r3, r2
8002600: 3318 adds r3, #24
8002602: edc3 7a00 vstr s15, [r3]
8002606: e03e b.n 8002686 <DoKeyUP+0x10c6>
8002608: 2006b2d0 .word 0x2006b2d0
800260c: 2006b510 .word 0x2006b510
8002610: 38d1b717 .word 0x38d1b717
8002614: 38d1b717 .word 0x38d1b717
8002618: 47c35000 .word 0x47c35000
800261c: 47c34f80 .word 0x47c34f80
8002620: 20020010 .word 0x20020010
8002624: 3dcccccd .word 0x3dcccccd
8002628: 3c23d70a .word 0x3c23d70a
800262c: 3a83126f .word 0x3a83126f
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8002630: 687b ldr r3, [r7, #4]
8002632: 2b03 cmp r3, #3
8002634: d112 bne.n 800265c <DoKeyUP+0x109c>
8002636: 4bb6 ldr r3, [pc, #728] ; (8002910 <DoKeyUP+0x1350>)
8002638: 681b ldr r3, [r3, #0]
800263a: 49b6 ldr r1, [pc, #728] ; (8002914 <DoKeyUP+0x1354>)
800263c: 015a lsls r2, r3, #5
800263e: 440a add r2, r1
8002640: 3218 adds r2, #24
8002642: edd2 7a00 vldr s15, [r2]
8002646: ed9f 7ab4 vldr s14, [pc, #720] ; 8002918 <DoKeyUP+0x1358>
800264a: ee67 7a87 vmul.f32 s15, s15, s14
800264e: 4ab1 ldr r2, [pc, #708] ; (8002914 <DoKeyUP+0x1354>)
8002650: 015b lsls r3, r3, #5
8002652: 4413 add r3, r2
8002654: 3318 adds r3, #24
8002656: edc3 7a00 vstr s15, [r3]
800265a: e014 b.n 8002686 <DoKeyUP+0x10c6>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
800265c: 687b ldr r3, [r7, #4]
800265e: 2b04 cmp r3, #4
8002660: d111 bne.n 8002686 <DoKeyUP+0x10c6>
8002662: 4bab ldr r3, [pc, #684] ; (8002910 <DoKeyUP+0x1350>)
8002664: 681b ldr r3, [r3, #0]
8002666: 49ab ldr r1, [pc, #684] ; (8002914 <DoKeyUP+0x1354>)
8002668: 015a lsls r2, r3, #5
800266a: 440a add r2, r1
800266c: 3218 adds r2, #24
800266e: edd2 7a00 vldr s15, [r2]
8002672: ed9f 7aaa vldr s14, [pc, #680] ; 800291c <DoKeyUP+0x135c>
8002676: ee67 7a87 vmul.f32 s15, s15, s14
800267a: 4aa6 ldr r2, [pc, #664] ; (8002914 <DoKeyUP+0x1354>)
800267c: 015b lsls r3, r3, #5
800267e: 4413 add r3, r2
8002680: 3318 adds r3, #24
8002682: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
8002686: 4ba2 ldr r3, [pc, #648] ; (8002910 <DoKeyUP+0x1350>)
8002688: 681b ldr r3, [r3, #0]
800268a: 4aa2 ldr r2, [pc, #648] ; (8002914 <DoKeyUP+0x1354>)
800268c: 015b lsls r3, r3, #5
800268e: 4413 add r3, r2
8002690: 3318 adds r3, #24
8002692: edd3 7a00 vldr s15, [r3]
8002696: eef5 7ac0 vcmpe.f32 s15, #0.0
800269a: eef1 fa10 vmrs APSR_nzcv, fpscr
800269e: d807 bhi.n 80026b0 <DoKeyUP+0x10f0>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
80026a0: 4b9b ldr r3, [pc, #620] ; (8002910 <DoKeyUP+0x1350>)
80026a2: 681b ldr r3, [r3, #0]
80026a4: 4a9b ldr r2, [pc, #620] ; (8002914 <DoKeyUP+0x1354>)
80026a6: 015b lsls r3, r3, #5
80026a8: 4413 add r3, r2
80026aa: 3318 adds r3, #24
80026ac: 4a9c ldr r2, [pc, #624] ; (8002920 <DoKeyUP+0x1360>)
80026ae: 601a str r2, [r3, #0]
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
80026b0: 4b97 ldr r3, [pc, #604] ; (8002910 <DoKeyUP+0x1350>)
80026b2: 681b ldr r3, [r3, #0]
80026b4: 4a97 ldr r2, [pc, #604] ; (8002914 <DoKeyUP+0x1354>)
80026b6: 015b lsls r3, r3, #5
80026b8: 4413 add r3, r2
80026ba: 3318 adds r3, #24
80026bc: edd3 7a00 vldr s15, [r3]
80026c0: ed9f 7a98 vldr s14, [pc, #608] ; 8002924 <DoKeyUP+0x1364>
80026c4: eef4 7ac7 vcmpe.f32 s15, s14
80026c8: eef1 fa10 vmrs APSR_nzcv, fpscr
80026cc: db07 blt.n 80026de <DoKeyUP+0x111e>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
80026ce: 4b90 ldr r3, [pc, #576] ; (8002910 <DoKeyUP+0x1350>)
80026d0: 681b ldr r3, [r3, #0]
80026d2: 4a90 ldr r2, [pc, #576] ; (8002914 <DoKeyUP+0x1354>)
80026d4: 015b lsls r3, r3, #5
80026d6: 4413 add r3, r2
80026d8: 3318 adds r3, #24
80026da: 4a93 ldr r2, [pc, #588] ; (8002928 <DoKeyUP+0x1368>)
80026dc: 601a str r2, [r3, #0]
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
80026de: 4b8c ldr r3, [pc, #560] ; (8002910 <DoKeyUP+0x1350>)
80026e0: 681b ldr r3, [r3, #0]
80026e2: 4a8c ldr r2, [pc, #560] ; (8002914 <DoKeyUP+0x1354>)
80026e4: 015b lsls r3, r3, #5
80026e6: 4413 add r3, r2
80026e8: 3318 adds r3, #24
80026ea: edd3 7a00 vldr s15, [r3]
80026ee: eeb0 0a67 vmov.f32 s0, s15
80026f2: f001 fa71 bl 8003bd8 <VerifyGain>
}
80026f6: e25b b.n 8002bb0 <DoKeyUP+0x15f0>
if(menupos == Kikd)
80026f8: 4b8c ldr r3, [pc, #560] ; (800292c <DoKeyUP+0x136c>)
80026fa: 781b ldrb r3, [r3, #0]
80026fc: b2db uxtb r3, r3
80026fe: 2b09 cmp r3, #9
8002700: f040 80bd bne.w 800287e <DoKeyUP+0x12be>
if(ikd < 9) {
8002704: 68fb ldr r3, [r7, #12]
8002706: 2b08 cmp r3, #8
8002708: d802 bhi.n 8002710 <DoKeyUP+0x1150>
ikd++;
800270a: 68fb ldr r3, [r7, #12]
800270c: 3301 adds r3, #1
800270e: 60fb str r3, [r7, #12]
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
8002710: 69bb ldr r3, [r7, #24]
8002712: f242 7210 movw r2, #10000 ; 0x2710
8002716: fb02 f203 mul.w r2, r2, r3
800271a: 697b ldr r3, [r7, #20]
800271c: f44f 717a mov.w r1, #1000 ; 0x3e8
8002720: fb01 f303 mul.w r3, r1, r3
8002724: 18d1 adds r1, r2, r3
8002726: 68fa ldr r2, [r7, #12]
8002728: 4613 mov r3, r2
800272a: 009b lsls r3, r3, #2
800272c: 4413 add r3, r2
800272e: 005b lsls r3, r3, #1
8002730: 4618 mov r0, r3
8002732: 693b ldr r3, [r7, #16]
8002734: 2264 movs r2, #100 ; 0x64
8002736: fb02 f303 mul.w r3, r2, r3
800273a: 4403 add r3, r0
800273c: 18ca adds r2, r1, r3
800273e: 68bb ldr r3, [r7, #8]
8002740: 4413 add r3, r2
8002742: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
8002744: 4b72 ldr r3, [pc, #456] ; (8002910 <DoKeyUP+0x1350>)
8002746: 681b ldr r3, [r3, #0]
8002748: 69fa ldr r2, [r7, #28]
800274a: ee07 2a90 vmov s15, r2
800274e: eef8 7a67 vcvt.f32.u32 s15, s15
8002752: 4a70 ldr r2, [pc, #448] ; (8002914 <DoKeyUP+0x1354>)
8002754: 015b lsls r3, r3, #5
8002756: 4413 add r3, r2
8002758: 3318 adds r3, #24
800275a: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
800275e: 687b ldr r3, [r7, #4]
8002760: 2b01 cmp r3, #1
8002762: d112 bne.n 800278a <DoKeyUP+0x11ca>
8002764: 4b6a ldr r3, [pc, #424] ; (8002910 <DoKeyUP+0x1350>)
8002766: 681b ldr r3, [r3, #0]
8002768: 496a ldr r1, [pc, #424] ; (8002914 <DoKeyUP+0x1354>)
800276a: 015a lsls r2, r3, #5
800276c: 440a add r2, r1
800276e: 3218 adds r2, #24
8002770: edd2 7a00 vldr s15, [r2]
8002774: ed9f 7a6e vldr s14, [pc, #440] ; 8002930 <DoKeyUP+0x1370>
8002778: ee67 7a87 vmul.f32 s15, s15, s14
800277c: 4a65 ldr r2, [pc, #404] ; (8002914 <DoKeyUP+0x1354>)
800277e: 015b lsls r3, r3, #5
8002780: 4413 add r3, r2
8002782: 3318 adds r3, #24
8002784: edc3 7a00 vstr s15, [r3]
8002788: e040 b.n 800280c <DoKeyUP+0x124c>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
800278a: 687b ldr r3, [r7, #4]
800278c: 2b02 cmp r3, #2
800278e: d112 bne.n 80027b6 <DoKeyUP+0x11f6>
8002790: 4b5f ldr r3, [pc, #380] ; (8002910 <DoKeyUP+0x1350>)
8002792: 681b ldr r3, [r3, #0]
8002794: 495f ldr r1, [pc, #380] ; (8002914 <DoKeyUP+0x1354>)
8002796: 015a lsls r2, r3, #5
8002798: 440a add r2, r1
800279a: 3218 adds r2, #24
800279c: edd2 7a00 vldr s15, [r2]
80027a0: ed9f 7a64 vldr s14, [pc, #400] ; 8002934 <DoKeyUP+0x1374>
80027a4: ee67 7a87 vmul.f32 s15, s15, s14
80027a8: 4a5a ldr r2, [pc, #360] ; (8002914 <DoKeyUP+0x1354>)
80027aa: 015b lsls r3, r3, #5
80027ac: 4413 add r3, r2
80027ae: 3318 adds r3, #24
80027b0: edc3 7a00 vstr s15, [r3]
80027b4: e02a b.n 800280c <DoKeyUP+0x124c>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
80027b6: 687b ldr r3, [r7, #4]
80027b8: 2b03 cmp r3, #3
80027ba: d112 bne.n 80027e2 <DoKeyUP+0x1222>
80027bc: 4b54 ldr r3, [pc, #336] ; (8002910 <DoKeyUP+0x1350>)
80027be: 681b ldr r3, [r3, #0]
80027c0: 4954 ldr r1, [pc, #336] ; (8002914 <DoKeyUP+0x1354>)
80027c2: 015a lsls r2, r3, #5
80027c4: 440a add r2, r1
80027c6: 3218 adds r2, #24
80027c8: edd2 7a00 vldr s15, [r2]
80027cc: ed9f 7a52 vldr s14, [pc, #328] ; 8002918 <DoKeyUP+0x1358>
80027d0: ee67 7a87 vmul.f32 s15, s15, s14
80027d4: 4a4f ldr r2, [pc, #316] ; (8002914 <DoKeyUP+0x1354>)
80027d6: 015b lsls r3, r3, #5
80027d8: 4413 add r3, r2
80027da: 3318 adds r3, #24
80027dc: edc3 7a00 vstr s15, [r3]
80027e0: e014 b.n 800280c <DoKeyUP+0x124c>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
80027e2: 687b ldr r3, [r7, #4]
80027e4: 2b04 cmp r3, #4
80027e6: d111 bne.n 800280c <DoKeyUP+0x124c>
80027e8: 4b49 ldr r3, [pc, #292] ; (8002910 <DoKeyUP+0x1350>)
80027ea: 681b ldr r3, [r3, #0]
80027ec: 4949 ldr r1, [pc, #292] ; (8002914 <DoKeyUP+0x1354>)
80027ee: 015a lsls r2, r3, #5
80027f0: 440a add r2, r1
80027f2: 3218 adds r2, #24
80027f4: edd2 7a00 vldr s15, [r2]
80027f8: ed9f 7a48 vldr s14, [pc, #288] ; 800291c <DoKeyUP+0x135c>
80027fc: ee67 7a87 vmul.f32 s15, s15, s14
8002800: 4a44 ldr r2, [pc, #272] ; (8002914 <DoKeyUP+0x1354>)
8002802: 015b lsls r3, r3, #5
8002804: 4413 add r3, r2
8002806: 3318 adds r3, #24
8002808: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
800280c: 4b40 ldr r3, [pc, #256] ; (8002910 <DoKeyUP+0x1350>)
800280e: 681b ldr r3, [r3, #0]
8002810: 4a40 ldr r2, [pc, #256] ; (8002914 <DoKeyUP+0x1354>)
8002812: 015b lsls r3, r3, #5
8002814: 4413 add r3, r2
8002816: 3318 adds r3, #24
8002818: edd3 7a00 vldr s15, [r3]
800281c: eef5 7ac0 vcmpe.f32 s15, #0.0
8002820: eef1 fa10 vmrs APSR_nzcv, fpscr
8002824: d807 bhi.n 8002836 <DoKeyUP+0x1276>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
8002826: 4b3a ldr r3, [pc, #232] ; (8002910 <DoKeyUP+0x1350>)
8002828: 681b ldr r3, [r3, #0]
800282a: 4a3a ldr r2, [pc, #232] ; (8002914 <DoKeyUP+0x1354>)
800282c: 015b lsls r3, r3, #5
800282e: 4413 add r3, r2
8002830: 3318 adds r3, #24
8002832: 4a3b ldr r2, [pc, #236] ; (8002920 <DoKeyUP+0x1360>)
8002834: 601a str r2, [r3, #0]
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8002836: 4b36 ldr r3, [pc, #216] ; (8002910 <DoKeyUP+0x1350>)
8002838: 681b ldr r3, [r3, #0]
800283a: 4a36 ldr r2, [pc, #216] ; (8002914 <DoKeyUP+0x1354>)
800283c: 015b lsls r3, r3, #5
800283e: 4413 add r3, r2
8002840: 3318 adds r3, #24
8002842: edd3 7a00 vldr s15, [r3]
8002846: ed9f 7a37 vldr s14, [pc, #220] ; 8002924 <DoKeyUP+0x1364>
800284a: eef4 7ac7 vcmpe.f32 s15, s14
800284e: eef1 fa10 vmrs APSR_nzcv, fpscr
8002852: db07 blt.n 8002864 <DoKeyUP+0x12a4>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
8002854: 4b2e ldr r3, [pc, #184] ; (8002910 <DoKeyUP+0x1350>)
8002856: 681b ldr r3, [r3, #0]
8002858: 4a2e ldr r2, [pc, #184] ; (8002914 <DoKeyUP+0x1354>)
800285a: 015b lsls r3, r3, #5
800285c: 4413 add r3, r2
800285e: 3318 adds r3, #24
8002860: 4a31 ldr r2, [pc, #196] ; (8002928 <DoKeyUP+0x1368>)
8002862: 601a str r2, [r3, #0]
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
8002864: 4b2a ldr r3, [pc, #168] ; (8002910 <DoKeyUP+0x1350>)
8002866: 681b ldr r3, [r3, #0]
8002868: 4a2a ldr r2, [pc, #168] ; (8002914 <DoKeyUP+0x1354>)
800286a: 015b lsls r3, r3, #5
800286c: 4413 add r3, r2
800286e: 3318 adds r3, #24
8002870: edd3 7a00 vldr s15, [r3]
8002874: eeb0 0a67 vmov.f32 s0, s15
8002878: f001 f9ae bl 8003bd8 <VerifyGain>
}
800287c: e198 b.n 8002bb0 <DoKeyUP+0x15f0>
if(menupos == Kike)
800287e: 4b2b ldr r3, [pc, #172] ; (800292c <DoKeyUP+0x136c>)
8002880: 781b ldrb r3, [r3, #0]
8002882: b2db uxtb r3, r3
8002884: 2b0a cmp r3, #10
8002886: f040 80d1 bne.w 8002a2c <DoKeyUP+0x146c>
if(ike < 9) {
800288a: 68bb ldr r3, [r7, #8]
800288c: 2b08 cmp r3, #8
800288e: d802 bhi.n 8002896 <DoKeyUP+0x12d6>
ike++;
8002890: 68bb ldr r3, [r7, #8]
8002892: 3301 adds r3, #1
8002894: 60bb str r3, [r7, #8]
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
8002896: 69bb ldr r3, [r7, #24]
8002898: f242 7210 movw r2, #10000 ; 0x2710
800289c: fb02 f203 mul.w r2, r2, r3
80028a0: 697b ldr r3, [r7, #20]
80028a2: f44f 717a mov.w r1, #1000 ; 0x3e8
80028a6: fb01 f303 mul.w r3, r1, r3
80028aa: 18d1 adds r1, r2, r3
80028ac: 68fa ldr r2, [r7, #12]
80028ae: 4613 mov r3, r2
80028b0: 009b lsls r3, r3, #2
80028b2: 4413 add r3, r2
80028b4: 005b lsls r3, r3, #1
80028b6: 4618 mov r0, r3
80028b8: 693b ldr r3, [r7, #16]
80028ba: 2264 movs r2, #100 ; 0x64
80028bc: fb02 f303 mul.w r3, r2, r3
80028c0: 4403 add r3, r0
80028c2: 18ca adds r2, r1, r3
80028c4: 68bb ldr r3, [r7, #8]
80028c6: 4413 add r3, r2
80028c8: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
80028ca: 4b11 ldr r3, [pc, #68] ; (8002910 <DoKeyUP+0x1350>)
80028cc: 681b ldr r3, [r3, #0]
80028ce: 69fa ldr r2, [r7, #28]
80028d0: ee07 2a90 vmov s15, r2
80028d4: eef8 7a67 vcvt.f32.u32 s15, s15
80028d8: 4a0e ldr r2, [pc, #56] ; (8002914 <DoKeyUP+0x1354>)
80028da: 015b lsls r3, r3, #5
80028dc: 4413 add r3, r2
80028de: 3318 adds r3, #24
80028e0: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
80028e4: 687b ldr r3, [r7, #4]
80028e6: 2b01 cmp r3, #1
80028e8: d126 bne.n 8002938 <DoKeyUP+0x1378>
80028ea: 4b09 ldr r3, [pc, #36] ; (8002910 <DoKeyUP+0x1350>)
80028ec: 681b ldr r3, [r3, #0]
80028ee: 4909 ldr r1, [pc, #36] ; (8002914 <DoKeyUP+0x1354>)
80028f0: 015a lsls r2, r3, #5
80028f2: 440a add r2, r1
80028f4: 3218 adds r2, #24
80028f6: edd2 7a00 vldr s15, [r2]
80028fa: ed9f 7a0d vldr s14, [pc, #52] ; 8002930 <DoKeyUP+0x1370>
80028fe: ee67 7a87 vmul.f32 s15, s15, s14
8002902: 4a04 ldr r2, [pc, #16] ; (8002914 <DoKeyUP+0x1354>)
8002904: 015b lsls r3, r3, #5
8002906: 4413 add r3, r2
8002908: 3318 adds r3, #24
800290a: edc3 7a00 vstr s15, [r3]
800290e: e054 b.n 80029ba <DoKeyUP+0x13fa>
8002910: 2006b2d0 .word 0x2006b2d0
8002914: 2006b510 .word 0x2006b510
8002918: 3a83126f .word 0x3a83126f
800291c: 38d1b717 .word 0x38d1b717
8002920: 38d1b717 .word 0x38d1b717
8002924: 47c35000 .word 0x47c35000
8002928: 47c34f80 .word 0x47c34f80
800292c: 20020010 .word 0x20020010
8002930: 3dcccccd .word 0x3dcccccd
8002934: 3c23d70a .word 0x3c23d70a
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8002938: 687b ldr r3, [r7, #4]
800293a: 2b02 cmp r3, #2
800293c: d112 bne.n 8002964 <DoKeyUP+0x13a4>
800293e: 4b9e ldr r3, [pc, #632] ; (8002bb8 <DoKeyUP+0x15f8>)
8002940: 681b ldr r3, [r3, #0]
8002942: 499e ldr r1, [pc, #632] ; (8002bbc <DoKeyUP+0x15fc>)
8002944: 015a lsls r2, r3, #5
8002946: 440a add r2, r1
8002948: 3218 adds r2, #24
800294a: edd2 7a00 vldr s15, [r2]
800294e: ed9f 7a9c vldr s14, [pc, #624] ; 8002bc0 <DoKeyUP+0x1600>
8002952: ee67 7a87 vmul.f32 s15, s15, s14
8002956: 4a99 ldr r2, [pc, #612] ; (8002bbc <DoKeyUP+0x15fc>)
8002958: 015b lsls r3, r3, #5
800295a: 4413 add r3, r2
800295c: 3318 adds r3, #24
800295e: edc3 7a00 vstr s15, [r3]
8002962: e02a b.n 80029ba <DoKeyUP+0x13fa>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8002964: 687b ldr r3, [r7, #4]
8002966: 2b03 cmp r3, #3
8002968: d112 bne.n 8002990 <DoKeyUP+0x13d0>
800296a: 4b93 ldr r3, [pc, #588] ; (8002bb8 <DoKeyUP+0x15f8>)
800296c: 681b ldr r3, [r3, #0]
800296e: 4993 ldr r1, [pc, #588] ; (8002bbc <DoKeyUP+0x15fc>)
8002970: 015a lsls r2, r3, #5
8002972: 440a add r2, r1
8002974: 3218 adds r2, #24
8002976: edd2 7a00 vldr s15, [r2]
800297a: ed9f 7a92 vldr s14, [pc, #584] ; 8002bc4 <DoKeyUP+0x1604>
800297e: ee67 7a87 vmul.f32 s15, s15, s14
8002982: 4a8e ldr r2, [pc, #568] ; (8002bbc <DoKeyUP+0x15fc>)
8002984: 015b lsls r3, r3, #5
8002986: 4413 add r3, r2
8002988: 3318 adds r3, #24
800298a: edc3 7a00 vstr s15, [r3]
800298e: e014 b.n 80029ba <DoKeyUP+0x13fa>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8002990: 687b ldr r3, [r7, #4]
8002992: 2b04 cmp r3, #4
8002994: d111 bne.n 80029ba <DoKeyUP+0x13fa>
8002996: 4b88 ldr r3, [pc, #544] ; (8002bb8 <DoKeyUP+0x15f8>)
8002998: 681b ldr r3, [r3, #0]
800299a: 4988 ldr r1, [pc, #544] ; (8002bbc <DoKeyUP+0x15fc>)
800299c: 015a lsls r2, r3, #5
800299e: 440a add r2, r1
80029a0: 3218 adds r2, #24
80029a2: edd2 7a00 vldr s15, [r2]
80029a6: ed9f 7a88 vldr s14, [pc, #544] ; 8002bc8 <DoKeyUP+0x1608>
80029aa: ee67 7a87 vmul.f32 s15, s15, s14
80029ae: 4a83 ldr r2, [pc, #524] ; (8002bbc <DoKeyUP+0x15fc>)
80029b0: 015b lsls r3, r3, #5
80029b2: 4413 add r3, r2
80029b4: 3318 adds r3, #24
80029b6: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
80029ba: 4b7f ldr r3, [pc, #508] ; (8002bb8 <DoKeyUP+0x15f8>)
80029bc: 681b ldr r3, [r3, #0]
80029be: 4a7f ldr r2, [pc, #508] ; (8002bbc <DoKeyUP+0x15fc>)
80029c0: 015b lsls r3, r3, #5
80029c2: 4413 add r3, r2
80029c4: 3318 adds r3, #24
80029c6: edd3 7a00 vldr s15, [r3]
80029ca: eef5 7ac0 vcmpe.f32 s15, #0.0
80029ce: eef1 fa10 vmrs APSR_nzcv, fpscr
80029d2: d807 bhi.n 80029e4 <DoKeyUP+0x1424>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
80029d4: 4b78 ldr r3, [pc, #480] ; (8002bb8 <DoKeyUP+0x15f8>)
80029d6: 681b ldr r3, [r3, #0]
80029d8: 4a78 ldr r2, [pc, #480] ; (8002bbc <DoKeyUP+0x15fc>)
80029da: 015b lsls r3, r3, #5
80029dc: 4413 add r3, r2
80029de: 3318 adds r3, #24
80029e0: 4a7a ldr r2, [pc, #488] ; (8002bcc <DoKeyUP+0x160c>)
80029e2: 601a str r2, [r3, #0]
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
80029e4: 4b74 ldr r3, [pc, #464] ; (8002bb8 <DoKeyUP+0x15f8>)
80029e6: 681b ldr r3, [r3, #0]
80029e8: 4a74 ldr r2, [pc, #464] ; (8002bbc <DoKeyUP+0x15fc>)
80029ea: 015b lsls r3, r3, #5
80029ec: 4413 add r3, r2
80029ee: 3318 adds r3, #24
80029f0: edd3 7a00 vldr s15, [r3]
80029f4: ed9f 7a76 vldr s14, [pc, #472] ; 8002bd0 <DoKeyUP+0x1610>
80029f8: eef4 7ac7 vcmpe.f32 s15, s14
80029fc: eef1 fa10 vmrs APSR_nzcv, fpscr
8002a00: db07 blt.n 8002a12 <DoKeyUP+0x1452>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
8002a02: 4b6d ldr r3, [pc, #436] ; (8002bb8 <DoKeyUP+0x15f8>)
8002a04: 681b ldr r3, [r3, #0]
8002a06: 4a6d ldr r2, [pc, #436] ; (8002bbc <DoKeyUP+0x15fc>)
8002a08: 015b lsls r3, r3, #5
8002a0a: 4413 add r3, r2
8002a0c: 3318 adds r3, #24
8002a0e: 4a71 ldr r2, [pc, #452] ; (8002bd4 <DoKeyUP+0x1614>)
8002a10: 601a str r2, [r3, #0]
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
8002a12: 4b69 ldr r3, [pc, #420] ; (8002bb8 <DoKeyUP+0x15f8>)
8002a14: 681b ldr r3, [r3, #0]
8002a16: 4a69 ldr r2, [pc, #420] ; (8002bbc <DoKeyUP+0x15fc>)
8002a18: 015b lsls r3, r3, #5
8002a1a: 4413 add r3, r2
8002a1c: 3318 adds r3, #24
8002a1e: edd3 7a00 vldr s15, [r3]
8002a22: eeb0 0a67 vmov.f32 s0, s15
8002a26: f001 f8d7 bl 8003bd8 <VerifyGain>
}
8002a2a: e0c1 b.n 8002bb0 <DoKeyUP+0x15f0>
if(menupos == Kpt)
8002a2c: 4b6a ldr r3, [pc, #424] ; (8002bd8 <DoKeyUP+0x1618>)
8002a2e: 781b ldrb r3, [r3, #0]
8002a30: b2db uxtb r3, r3
8002a32: 2b0b cmp r3, #11
8002a34: f040 80bc bne.w 8002bb0 <DoKeyUP+0x15f0>
if(ipt) {
8002a38: 687b ldr r3, [r7, #4]
8002a3a: 2b00 cmp r3, #0
8002a3c: d002 beq.n 8002a44 <DoKeyUP+0x1484>
ipt--;
8002a3e: 687b ldr r3, [r7, #4]
8002a40: 3b01 subs r3, #1
8002a42: 607b str r3, [r7, #4]
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
8002a44: 69bb ldr r3, [r7, #24]
8002a46: f242 7210 movw r2, #10000 ; 0x2710
8002a4a: fb02 f203 mul.w r2, r2, r3
8002a4e: 697b ldr r3, [r7, #20]
8002a50: f44f 717a mov.w r1, #1000 ; 0x3e8
8002a54: fb01 f303 mul.w r3, r1, r3
8002a58: 18d1 adds r1, r2, r3
8002a5a: 68fa ldr r2, [r7, #12]
8002a5c: 4613 mov r3, r2
8002a5e: 009b lsls r3, r3, #2
8002a60: 4413 add r3, r2
8002a62: 005b lsls r3, r3, #1
8002a64: 4618 mov r0, r3
8002a66: 693b ldr r3, [r7, #16]
8002a68: 2264 movs r2, #100 ; 0x64
8002a6a: fb02 f303 mul.w r3, r2, r3
8002a6e: 4403 add r3, r0
8002a70: 18ca adds r2, r1, r3
8002a72: 68bb ldr r3, [r7, #8]
8002a74: 4413 add r3, r2
8002a76: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
8002a78: 4b4f ldr r3, [pc, #316] ; (8002bb8 <DoKeyUP+0x15f8>)
8002a7a: 681b ldr r3, [r3, #0]
8002a7c: 69fa ldr r2, [r7, #28]
8002a7e: ee07 2a90 vmov s15, r2
8002a82: eef8 7a67 vcvt.f32.u32 s15, s15
8002a86: 4a4d ldr r2, [pc, #308] ; (8002bbc <DoKeyUP+0x15fc>)
8002a88: 015b lsls r3, r3, #5
8002a8a: 4413 add r3, r2
8002a8c: 3318 adds r3, #24
8002a8e: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8002a92: 687b ldr r3, [r7, #4]
8002a94: 2b01 cmp r3, #1
8002a96: d112 bne.n 8002abe <DoKeyUP+0x14fe>
8002a98: 4b47 ldr r3, [pc, #284] ; (8002bb8 <DoKeyUP+0x15f8>)
8002a9a: 681b ldr r3, [r3, #0]
8002a9c: 4947 ldr r1, [pc, #284] ; (8002bbc <DoKeyUP+0x15fc>)
8002a9e: 015a lsls r2, r3, #5
8002aa0: 440a add r2, r1
8002aa2: 3218 adds r2, #24
8002aa4: edd2 7a00 vldr s15, [r2]
8002aa8: ed9f 7a4c vldr s14, [pc, #304] ; 8002bdc <DoKeyUP+0x161c>
8002aac: ee67 7a87 vmul.f32 s15, s15, s14
8002ab0: 4a42 ldr r2, [pc, #264] ; (8002bbc <DoKeyUP+0x15fc>)
8002ab2: 015b lsls r3, r3, #5
8002ab4: 4413 add r3, r2
8002ab6: 3318 adds r3, #24
8002ab8: edc3 7a00 vstr s15, [r3]
8002abc: e040 b.n 8002b40 <DoKeyUP+0x1580>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8002abe: 687b ldr r3, [r7, #4]
8002ac0: 2b02 cmp r3, #2
8002ac2: d112 bne.n 8002aea <DoKeyUP+0x152a>
8002ac4: 4b3c ldr r3, [pc, #240] ; (8002bb8 <DoKeyUP+0x15f8>)
8002ac6: 681b ldr r3, [r3, #0]
8002ac8: 493c ldr r1, [pc, #240] ; (8002bbc <DoKeyUP+0x15fc>)
8002aca: 015a lsls r2, r3, #5
8002acc: 440a add r2, r1
8002ace: 3218 adds r2, #24
8002ad0: edd2 7a00 vldr s15, [r2]
8002ad4: ed9f 7a3a vldr s14, [pc, #232] ; 8002bc0 <DoKeyUP+0x1600>
8002ad8: ee67 7a87 vmul.f32 s15, s15, s14
8002adc: 4a37 ldr r2, [pc, #220] ; (8002bbc <DoKeyUP+0x15fc>)
8002ade: 015b lsls r3, r3, #5
8002ae0: 4413 add r3, r2
8002ae2: 3318 adds r3, #24
8002ae4: edc3 7a00 vstr s15, [r3]
8002ae8: e02a b.n 8002b40 <DoKeyUP+0x1580>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8002aea: 687b ldr r3, [r7, #4]
8002aec: 2b03 cmp r3, #3
8002aee: d112 bne.n 8002b16 <DoKeyUP+0x1556>
8002af0: 4b31 ldr r3, [pc, #196] ; (8002bb8 <DoKeyUP+0x15f8>)
8002af2: 681b ldr r3, [r3, #0]
8002af4: 4931 ldr r1, [pc, #196] ; (8002bbc <DoKeyUP+0x15fc>)
8002af6: 015a lsls r2, r3, #5
8002af8: 440a add r2, r1
8002afa: 3218 adds r2, #24
8002afc: edd2 7a00 vldr s15, [r2]
8002b00: ed9f 7a30 vldr s14, [pc, #192] ; 8002bc4 <DoKeyUP+0x1604>
8002b04: ee67 7a87 vmul.f32 s15, s15, s14
8002b08: 4a2c ldr r2, [pc, #176] ; (8002bbc <DoKeyUP+0x15fc>)
8002b0a: 015b lsls r3, r3, #5
8002b0c: 4413 add r3, r2
8002b0e: 3318 adds r3, #24
8002b10: edc3 7a00 vstr s15, [r3]
8002b14: e014 b.n 8002b40 <DoKeyUP+0x1580>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8002b16: 687b ldr r3, [r7, #4]
8002b18: 2b04 cmp r3, #4
8002b1a: d111 bne.n 8002b40 <DoKeyUP+0x1580>
8002b1c: 4b26 ldr r3, [pc, #152] ; (8002bb8 <DoKeyUP+0x15f8>)
8002b1e: 681b ldr r3, [r3, #0]
8002b20: 4926 ldr r1, [pc, #152] ; (8002bbc <DoKeyUP+0x15fc>)
8002b22: 015a lsls r2, r3, #5
8002b24: 440a add r2, r1
8002b26: 3218 adds r2, #24
8002b28: edd2 7a00 vldr s15, [r2]
8002b2c: ed9f 7a26 vldr s14, [pc, #152] ; 8002bc8 <DoKeyUP+0x1608>
8002b30: ee67 7a87 vmul.f32 s15, s15, s14
8002b34: 4a21 ldr r2, [pc, #132] ; (8002bbc <DoKeyUP+0x15fc>)
8002b36: 015b lsls r3, r3, #5
8002b38: 4413 add r3, r2
8002b3a: 3318 adds r3, #24
8002b3c: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
8002b40: 4b1d ldr r3, [pc, #116] ; (8002bb8 <DoKeyUP+0x15f8>)
8002b42: 681b ldr r3, [r3, #0]
8002b44: 4a1d ldr r2, [pc, #116] ; (8002bbc <DoKeyUP+0x15fc>)
8002b46: 015b lsls r3, r3, #5
8002b48: 4413 add r3, r2
8002b4a: 3318 adds r3, #24
8002b4c: edd3 7a00 vldr s15, [r3]
8002b50: eef5 7ac0 vcmpe.f32 s15, #0.0
8002b54: eef1 fa10 vmrs APSR_nzcv, fpscr
8002b58: d807 bhi.n 8002b6a <DoKeyUP+0x15aa>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
8002b5a: 4b17 ldr r3, [pc, #92] ; (8002bb8 <DoKeyUP+0x15f8>)
8002b5c: 681b ldr r3, [r3, #0]
8002b5e: 4a17 ldr r2, [pc, #92] ; (8002bbc <DoKeyUP+0x15fc>)
8002b60: 015b lsls r3, r3, #5
8002b62: 4413 add r3, r2
8002b64: 3318 adds r3, #24
8002b66: 4a19 ldr r2, [pc, #100] ; (8002bcc <DoKeyUP+0x160c>)
8002b68: 601a str r2, [r3, #0]
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8002b6a: 4b13 ldr r3, [pc, #76] ; (8002bb8 <DoKeyUP+0x15f8>)
8002b6c: 681b ldr r3, [r3, #0]
8002b6e: 4a13 ldr r2, [pc, #76] ; (8002bbc <DoKeyUP+0x15fc>)
8002b70: 015b lsls r3, r3, #5
8002b72: 4413 add r3, r2
8002b74: 3318 adds r3, #24
8002b76: edd3 7a00 vldr s15, [r3]
8002b7a: ed9f 7a15 vldr s14, [pc, #84] ; 8002bd0 <DoKeyUP+0x1610>
8002b7e: eef4 7ac7 vcmpe.f32 s15, s14
8002b82: eef1 fa10 vmrs APSR_nzcv, fpscr
8002b86: db07 blt.n 8002b98 <DoKeyUP+0x15d8>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
8002b88: 4b0b ldr r3, [pc, #44] ; (8002bb8 <DoKeyUP+0x15f8>)
8002b8a: 681b ldr r3, [r3, #0]
8002b8c: 4a0b ldr r2, [pc, #44] ; (8002bbc <DoKeyUP+0x15fc>)
8002b8e: 015b lsls r3, r3, #5
8002b90: 4413 add r3, r2
8002b92: 3318 adds r3, #24
8002b94: 4a0f ldr r2, [pc, #60] ; (8002bd4 <DoKeyUP+0x1614>)
8002b96: 601a str r2, [r3, #0]
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
8002b98: 4b07 ldr r3, [pc, #28] ; (8002bb8 <DoKeyUP+0x15f8>)
8002b9a: 681b ldr r3, [r3, #0]
8002b9c: 4a07 ldr r2, [pc, #28] ; (8002bbc <DoKeyUP+0x15fc>)
8002b9e: 015b lsls r3, r3, #5
8002ba0: 4413 add r3, r2
8002ba2: 3318 adds r3, #24
8002ba4: edd3 7a00 vldr s15, [r3]
8002ba8: eeb0 0a67 vmov.f32 s0, s15
8002bac: f001 f814 bl 8003bd8 <VerifyGain>
}
8002bb0: bf00 nop
8002bb2: 3720 adds r7, #32
8002bb4: 46bd mov sp, r7
8002bb6: bd80 pop {r7, pc}
8002bb8: 2006b2d0 .word 0x2006b2d0
8002bbc: 2006b510 .word 0x2006b510
8002bc0: 3c23d70a .word 0x3c23d70a
8002bc4: 3a83126f .word 0x3a83126f
8002bc8: 38d1b717 .word 0x38d1b717
8002bcc: 38d1b717 .word 0x38d1b717
8002bd0: 47c35000 .word 0x47c35000
8002bd4: 47c34f80 .word 0x47c34f80
8002bd8: 20020010 .word 0x20020010
8002bdc: 3dcccccd .word 0x3dcccccd
08002be0 <DoKeyDN>:
void DoKeyDN(void)
{
8002be0: b580 push {r7, lr}
8002be2: b088 sub sp, #32
8002be4: af00 add r7, sp, #0
uint32_t s, ikdt, ikt, iks, ikd, ike, ipt;
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10.0f) {
8002be6: 4bc4 ldr r3, [pc, #784] ; (8002ef8 <DoKeyDN+0x318>)
8002be8: 681b ldr r3, [r3, #0]
8002bea: 4ac4 ldr r2, [pc, #784] ; (8002efc <DoKeyDN+0x31c>)
8002bec: 015b lsls r3, r3, #5
8002bee: 4413 add r3, r2
8002bf0: 3318 adds r3, #24
8002bf2: edd3 7a00 vldr s15, [r3]
8002bf6: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8002bfa: eef4 7ac7 vcmpe.f32 s15, s14
8002bfe: eef1 fa10 vmrs APSR_nzcv, fpscr
8002c02: d517 bpl.n 8002c34 <DoKeyDN+0x54>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10000.0f) + 0.5f);
8002c04: 4bbc ldr r3, [pc, #752] ; (8002ef8 <DoKeyDN+0x318>)
8002c06: 681b ldr r3, [r3, #0]
8002c08: 4abc ldr r2, [pc, #752] ; (8002efc <DoKeyDN+0x31c>)
8002c0a: 015b lsls r3, r3, #5
8002c0c: 4413 add r3, r2
8002c0e: 3318 adds r3, #24
8002c10: edd3 7a00 vldr s15, [r3]
8002c14: ed9f 7aba vldr s14, [pc, #744] ; 8002f00 <DoKeyDN+0x320>
8002c18: ee67 7a87 vmul.f32 s15, s15, s14
8002c1c: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8002c20: ee77 7a87 vadd.f32 s15, s15, s14
8002c24: eefc 7ae7 vcvt.u32.f32 s15, s15
8002c28: ee17 3a90 vmov r3, s15
8002c2c: 61fb str r3, [r7, #28]
ipt = 4;
8002c2e: 2304 movs r3, #4
8002c30: 607b str r3, [r7, #4]
8002c32: e0b2 b.n 8002d9a <DoKeyDN+0x1ba>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100.0f) {
8002c34: 4bb0 ldr r3, [pc, #704] ; (8002ef8 <DoKeyDN+0x318>)
8002c36: 681b ldr r3, [r3, #0]
8002c38: 4ab0 ldr r2, [pc, #704] ; (8002efc <DoKeyDN+0x31c>)
8002c3a: 015b lsls r3, r3, #5
8002c3c: 4413 add r3, r2
8002c3e: 3318 adds r3, #24
8002c40: edd3 7a00 vldr s15, [r3]
8002c44: ed9f 7aaf vldr s14, [pc, #700] ; 8002f04 <DoKeyDN+0x324>
8002c48: eef4 7ac7 vcmpe.f32 s15, s14
8002c4c: eef1 fa10 vmrs APSR_nzcv, fpscr
8002c50: d517 bpl.n 8002c82 <DoKeyDN+0xa2>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 1000.0f) + 0.5f);
8002c52: 4ba9 ldr r3, [pc, #676] ; (8002ef8 <DoKeyDN+0x318>)
8002c54: 681b ldr r3, [r3, #0]
8002c56: 4aa9 ldr r2, [pc, #676] ; (8002efc <DoKeyDN+0x31c>)
8002c58: 015b lsls r3, r3, #5
8002c5a: 4413 add r3, r2
8002c5c: 3318 adds r3, #24
8002c5e: edd3 7a00 vldr s15, [r3]
8002c62: ed9f 7aa9 vldr s14, [pc, #676] ; 8002f08 <DoKeyDN+0x328>
8002c66: ee67 7a87 vmul.f32 s15, s15, s14
8002c6a: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8002c6e: ee77 7a87 vadd.f32 s15, s15, s14
8002c72: eefc 7ae7 vcvt.u32.f32 s15, s15
8002c76: ee17 3a90 vmov r3, s15
8002c7a: 61fb str r3, [r7, #28]
ipt = 3;
8002c7c: 2303 movs r3, #3
8002c7e: 607b str r3, [r7, #4]
8002c80: e08b b.n 8002d9a <DoKeyDN+0x1ba>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 1000.0f) {
8002c82: 4b9d ldr r3, [pc, #628] ; (8002ef8 <DoKeyDN+0x318>)
8002c84: 681b ldr r3, [r3, #0]
8002c86: 4a9d ldr r2, [pc, #628] ; (8002efc <DoKeyDN+0x31c>)
8002c88: 015b lsls r3, r3, #5
8002c8a: 4413 add r3, r2
8002c8c: 3318 adds r3, #24
8002c8e: edd3 7a00 vldr s15, [r3]
8002c92: ed9f 7a9d vldr s14, [pc, #628] ; 8002f08 <DoKeyDN+0x328>
8002c96: eef4 7ac7 vcmpe.f32 s15, s14
8002c9a: eef1 fa10 vmrs APSR_nzcv, fpscr
8002c9e: d517 bpl.n 8002cd0 <DoKeyDN+0xf0>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 100.0f) + 0.5f);
8002ca0: 4b95 ldr r3, [pc, #596] ; (8002ef8 <DoKeyDN+0x318>)
8002ca2: 681b ldr r3, [r3, #0]
8002ca4: 4a95 ldr r2, [pc, #596] ; (8002efc <DoKeyDN+0x31c>)
8002ca6: 015b lsls r3, r3, #5
8002ca8: 4413 add r3, r2
8002caa: 3318 adds r3, #24
8002cac: edd3 7a00 vldr s15, [r3]
8002cb0: ed9f 7a94 vldr s14, [pc, #592] ; 8002f04 <DoKeyDN+0x324>
8002cb4: ee67 7a87 vmul.f32 s15, s15, s14
8002cb8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8002cbc: ee77 7a87 vadd.f32 s15, s15, s14
8002cc0: eefc 7ae7 vcvt.u32.f32 s15, s15
8002cc4: ee17 3a90 vmov r3, s15
8002cc8: 61fb str r3, [r7, #28]
ipt = 2;
8002cca: 2302 movs r3, #2
8002ccc: 607b str r3, [r7, #4]
8002cce: e064 b.n 8002d9a <DoKeyDN+0x1ba>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10000.0f) {
8002cd0: 4b89 ldr r3, [pc, #548] ; (8002ef8 <DoKeyDN+0x318>)
8002cd2: 681b ldr r3, [r3, #0]
8002cd4: 4a89 ldr r2, [pc, #548] ; (8002efc <DoKeyDN+0x31c>)
8002cd6: 015b lsls r3, r3, #5
8002cd8: 4413 add r3, r2
8002cda: 3318 adds r3, #24
8002cdc: edd3 7a00 vldr s15, [r3]
8002ce0: ed9f 7a87 vldr s14, [pc, #540] ; 8002f00 <DoKeyDN+0x320>
8002ce4: eef4 7ac7 vcmpe.f32 s15, s14
8002ce8: eef1 fa10 vmrs APSR_nzcv, fpscr
8002cec: d517 bpl.n 8002d1e <DoKeyDN+0x13e>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10.0f) + 0.5f);
8002cee: 4b82 ldr r3, [pc, #520] ; (8002ef8 <DoKeyDN+0x318>)
8002cf0: 681b ldr r3, [r3, #0]
8002cf2: 4a82 ldr r2, [pc, #520] ; (8002efc <DoKeyDN+0x31c>)
8002cf4: 015b lsls r3, r3, #5
8002cf6: 4413 add r3, r2
8002cf8: 3318 adds r3, #24
8002cfa: edd3 7a00 vldr s15, [r3]
8002cfe: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8002d02: ee67 7a87 vmul.f32 s15, s15, s14
8002d06: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8002d0a: ee77 7a87 vadd.f32 s15, s15, s14
8002d0e: eefc 7ae7 vcvt.u32.f32 s15, s15
8002d12: ee17 3a90 vmov r3, s15
8002d16: 61fb str r3, [r7, #28]
ipt = 1;
8002d18: 2301 movs r3, #1
8002d1a: 607b str r3, [r7, #4]
8002d1c: e03d b.n 8002d9a <DoKeyDN+0x1ba>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) {
8002d1e: 4b76 ldr r3, [pc, #472] ; (8002ef8 <DoKeyDN+0x318>)
8002d20: 681b ldr r3, [r3, #0]
8002d22: 4a76 ldr r2, [pc, #472] ; (8002efc <DoKeyDN+0x31c>)
8002d24: 015b lsls r3, r3, #5
8002d26: 4413 add r3, r2
8002d28: 3318 adds r3, #24
8002d2a: edd3 7a00 vldr s15, [r3]
8002d2e: ed9f 7a77 vldr s14, [pc, #476] ; 8002f0c <DoKeyDN+0x32c>
8002d32: eef4 7ac7 vcmpe.f32 s15, s14
8002d36: eef1 fa10 vmrs APSR_nzcv, fpscr
8002d3a: d513 bpl.n 8002d64 <DoKeyDN+0x184>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS) + 0.5f);
8002d3c: 4b6e ldr r3, [pc, #440] ; (8002ef8 <DoKeyDN+0x318>)
8002d3e: 681b ldr r3, [r3, #0]
8002d40: 4a6e ldr r2, [pc, #440] ; (8002efc <DoKeyDN+0x31c>)
8002d42: 015b lsls r3, r3, #5
8002d44: 4413 add r3, r2
8002d46: 3318 adds r3, #24
8002d48: edd3 7a00 vldr s15, [r3]
8002d4c: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8002d50: ee77 7a87 vadd.f32 s15, s15, s14
8002d54: eefc 7ae7 vcvt.u32.f32 s15, s15
8002d58: ee17 3a90 vmov r3, s15
8002d5c: 61fb str r3, [r7, #28]
ipt = 0;
8002d5e: 2300 movs r3, #0
8002d60: 607b str r3, [r7, #4]
8002d62: e01a b.n 8002d9a <DoKeyDN+0x1ba>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8002d64: 4b64 ldr r3, [pc, #400] ; (8002ef8 <DoKeyDN+0x318>)
8002d66: 681b ldr r3, [r3, #0]
8002d68: 4a64 ldr r2, [pc, #400] ; (8002efc <DoKeyDN+0x31c>)
8002d6a: 015b lsls r3, r3, #5
8002d6c: 4413 add r3, r2
8002d6e: 3318 adds r3, #24
8002d70: edd3 7a00 vldr s15, [r3]
8002d74: ed9f 7a65 vldr s14, [pc, #404] ; 8002f0c <DoKeyDN+0x32c>
8002d78: eef4 7ac7 vcmpe.f32 s15, s14
8002d7c: eef1 fa10 vmrs APSR_nzcv, fpscr
8002d80: db0b blt.n 8002d9a <DoKeyDN+0x1ba>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
8002d82: 4b5d ldr r3, [pc, #372] ; (8002ef8 <DoKeyDN+0x318>)
8002d84: 681b ldr r3, [r3, #0]
8002d86: 4a5d ldr r2, [pc, #372] ; (8002efc <DoKeyDN+0x31c>)
8002d88: 015b lsls r3, r3, #5
8002d8a: 4413 add r3, r2
8002d8c: 3318 adds r3, #24
8002d8e: 4a60 ldr r2, [pc, #384] ; (8002f10 <DoKeyDN+0x330>)
8002d90: 601a str r2, [r3, #0]
s = 99999;
8002d92: 4b60 ldr r3, [pc, #384] ; (8002f14 <DoKeyDN+0x334>)
8002d94: 61fb str r3, [r7, #28]
ipt = 0;
8002d96: 2300 movs r3, #0
8002d98: 607b str r3, [r7, #4]
}
ikdt = (s / 10000);
8002d9a: 69fb ldr r3, [r7, #28]
8002d9c: 4a5e ldr r2, [pc, #376] ; (8002f18 <DoKeyDN+0x338>)
8002d9e: fba2 2303 umull r2, r3, r2, r3
8002da2: 0b5b lsrs r3, r3, #13
8002da4: 61bb str r3, [r7, #24]
ikt = (s % 10000 / 1000);
8002da6: 69fa ldr r2, [r7, #28]
8002da8: 4b5b ldr r3, [pc, #364] ; (8002f18 <DoKeyDN+0x338>)
8002daa: fba3 1302 umull r1, r3, r3, r2
8002dae: 0b5b lsrs r3, r3, #13
8002db0: f242 7110 movw r1, #10000 ; 0x2710
8002db4: fb01 f303 mul.w r3, r1, r3
8002db8: 1ad3 subs r3, r2, r3
8002dba: 4a58 ldr r2, [pc, #352] ; (8002f1c <DoKeyDN+0x33c>)
8002dbc: fba2 2303 umull r2, r3, r2, r3
8002dc0: 099b lsrs r3, r3, #6
8002dc2: 617b str r3, [r7, #20]
iks = (s % 10000 % 1000 / 100);
8002dc4: 69fa ldr r2, [r7, #28]
8002dc6: 4b54 ldr r3, [pc, #336] ; (8002f18 <DoKeyDN+0x338>)
8002dc8: fba3 1302 umull r1, r3, r3, r2
8002dcc: 0b5b lsrs r3, r3, #13
8002dce: f242 7110 movw r1, #10000 ; 0x2710
8002dd2: fb01 f303 mul.w r3, r1, r3
8002dd6: 1ad3 subs r3, r2, r3
8002dd8: 4a50 ldr r2, [pc, #320] ; (8002f1c <DoKeyDN+0x33c>)
8002dda: fba2 1203 umull r1, r2, r2, r3
8002dde: 0992 lsrs r2, r2, #6
8002de0: f44f 717a mov.w r1, #1000 ; 0x3e8
8002de4: fb01 f202 mul.w r2, r1, r2
8002de8: 1a9a subs r2, r3, r2
8002dea: 4b4d ldr r3, [pc, #308] ; (8002f20 <DoKeyDN+0x340>)
8002dec: fba3 2302 umull r2, r3, r3, r2
8002df0: 095b lsrs r3, r3, #5
8002df2: 613b str r3, [r7, #16]
ikd = (s % 10000 % 1000 % 100 / 10);
8002df4: 69fb ldr r3, [r7, #28]
8002df6: 4a48 ldr r2, [pc, #288] ; (8002f18 <DoKeyDN+0x338>)
8002df8: fba2 1203 umull r1, r2, r2, r3
8002dfc: 0b52 lsrs r2, r2, #13
8002dfe: f242 7110 movw r1, #10000 ; 0x2710
8002e02: fb01 f202 mul.w r2, r1, r2
8002e06: 1a9a subs r2, r3, r2
8002e08: 4b44 ldr r3, [pc, #272] ; (8002f1c <DoKeyDN+0x33c>)
8002e0a: fba3 1302 umull r1, r3, r3, r2
8002e0e: 099b lsrs r3, r3, #6
8002e10: f44f 717a mov.w r1, #1000 ; 0x3e8
8002e14: fb01 f303 mul.w r3, r1, r3
8002e18: 1ad3 subs r3, r2, r3
8002e1a: 4a41 ldr r2, [pc, #260] ; (8002f20 <DoKeyDN+0x340>)
8002e1c: fba2 1203 umull r1, r2, r2, r3
8002e20: 0952 lsrs r2, r2, #5
8002e22: 2164 movs r1, #100 ; 0x64
8002e24: fb01 f202 mul.w r2, r1, r2
8002e28: 1a9a subs r2, r3, r2
8002e2a: 4b3e ldr r3, [pc, #248] ; (8002f24 <DoKeyDN+0x344>)
8002e2c: fba3 2302 umull r2, r3, r3, r2
8002e30: 08db lsrs r3, r3, #3
8002e32: 60fb str r3, [r7, #12]
ike = (s % 10000 % 1000 % 100 % 10);
8002e34: 69fb ldr r3, [r7, #28]
8002e36: 4a38 ldr r2, [pc, #224] ; (8002f18 <DoKeyDN+0x338>)
8002e38: fba2 1203 umull r1, r2, r2, r3
8002e3c: 0b52 lsrs r2, r2, #13
8002e3e: f242 7110 movw r1, #10000 ; 0x2710
8002e42: fb01 f202 mul.w r2, r1, r2
8002e46: 1a9a subs r2, r3, r2
8002e48: 4b34 ldr r3, [pc, #208] ; (8002f1c <DoKeyDN+0x33c>)
8002e4a: fba3 1302 umull r1, r3, r3, r2
8002e4e: 099b lsrs r3, r3, #6
8002e50: f44f 717a mov.w r1, #1000 ; 0x3e8
8002e54: fb01 f303 mul.w r3, r1, r3
8002e58: 1ad3 subs r3, r2, r3
8002e5a: 4a31 ldr r2, [pc, #196] ; (8002f20 <DoKeyDN+0x340>)
8002e5c: fba2 1203 umull r1, r2, r2, r3
8002e60: 0952 lsrs r2, r2, #5
8002e62: 2164 movs r1, #100 ; 0x64
8002e64: fb01 f202 mul.w r2, r1, r2
8002e68: 1a9a subs r2, r3, r2
8002e6a: 4b2e ldr r3, [pc, #184] ; (8002f24 <DoKeyDN+0x344>)
8002e6c: fba3 1302 umull r1, r3, r3, r2
8002e70: 08d9 lsrs r1, r3, #3
8002e72: 460b mov r3, r1
8002e74: 009b lsls r3, r3, #2
8002e76: 440b add r3, r1
8002e78: 005b lsls r3, r3, #1
8002e7a: 1ad3 subs r3, r2, r3
8002e7c: 60bb str r3, [r7, #8]
if(menupos == Input)
8002e7e: 4b2a ldr r3, [pc, #168] ; (8002f28 <DoKeyDN+0x348>)
8002e80: 781b ldrb r3, [r3, #0]
8002e82: b2db uxtb r3, r3
8002e84: 2b00 cmp r3, #0
8002e86: d158 bne.n 8002f3a <DoKeyDN+0x35a>
{
if(focused)
8002e88: 4b28 ldr r3, [pc, #160] ; (8002f2c <DoKeyDN+0x34c>)
8002e8a: 781b ldrb r3, [r3, #0]
8002e8c: b2db uxtb r3, r3
8002e8e: 2b00 cmp r3, #0
8002e90: d04e beq.n 8002f30 <DoKeyDN+0x350>
{
if(pardata.amplif[ACTIVE_CHANNEL].IIN > CHARGE)
8002e92: 4b19 ldr r3, [pc, #100] ; (8002ef8 <DoKeyDN+0x318>)
8002e94: 681b ldr r3, [r3, #0]
8002e96: 4a19 ldr r2, [pc, #100] ; (8002efc <DoKeyDN+0x31c>)
8002e98: 015b lsls r3, r3, #5
8002e9a: 4413 add r3, r2
8002e9c: 881b ldrh r3, [r3, #0]
8002e9e: b29b uxth r3, r3
8002ea0: 2b00 cmp r3, #0
8002ea2: f000 8684 beq.w 8003bae <DoKeyDN+0xfce>
{
pardata.amplif[ACTIVE_CHANNEL].IIN--;
8002ea6: 4b14 ldr r3, [pc, #80] ; (8002ef8 <DoKeyDN+0x318>)
8002ea8: 681b ldr r3, [r3, #0]
8002eaa: 4914 ldr r1, [pc, #80] ; (8002efc <DoKeyDN+0x31c>)
8002eac: 015a lsls r2, r3, #5
8002eae: 440a add r2, r1
8002eb0: 8812 ldrh r2, [r2, #0]
8002eb2: b292 uxth r2, r2
8002eb4: 3a01 subs r2, #1
8002eb6: b291 uxth r1, r2
8002eb8: 4a10 ldr r2, [pc, #64] ; (8002efc <DoKeyDN+0x31c>)
8002eba: 015b lsls r3, r3, #5
8002ebc: 4413 add r3, r2
8002ebe: 460a mov r2, r1
8002ec0: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8002ec2: 4b0d ldr r3, [pc, #52] ; (8002ef8 <DoKeyDN+0x318>)
8002ec4: 681b ldr r3, [r3, #0]
8002ec6: b2db uxtb r3, r3
8002ec8: 4618 mov r0, r3
8002eca: f009 fda3 bl 800ca14 <WriteChannel>
8002ece: 4603 mov r3, r0
8002ed0: 2b00 cmp r3, #0
8002ed2: f000 866c beq.w 8003bae <DoKeyDN+0xfce>
{
pardata.amplif[ACTIVE_CHANNEL].IIN++;
8002ed6: 4b08 ldr r3, [pc, #32] ; (8002ef8 <DoKeyDN+0x318>)
8002ed8: 681b ldr r3, [r3, #0]
8002eda: 4908 ldr r1, [pc, #32] ; (8002efc <DoKeyDN+0x31c>)
8002edc: 015a lsls r2, r3, #5
8002ede: 440a add r2, r1
8002ee0: 8812 ldrh r2, [r2, #0]
8002ee2: b292 uxth r2, r2
8002ee4: 3201 adds r2, #1
8002ee6: b291 uxth r1, r2
8002ee8: 4a04 ldr r2, [pc, #16] ; (8002efc <DoKeyDN+0x31c>)
8002eea: 015b lsls r3, r3, #5
8002eec: 4413 add r3, r2
8002eee: 460a mov r2, r1
8002ef0: 801a strh r2, [r3, #0]
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
}
}
8002ef2: f000 be5c b.w 8003bae <DoKeyDN+0xfce>
8002ef6: bf00 nop
8002ef8: 2006b2d0 .word 0x2006b2d0
8002efc: 2006b510 .word 0x2006b510
8002f00: 461c4000 .word 0x461c4000
8002f04: 42c80000 .word 0x42c80000
8002f08: 447a0000 .word 0x447a0000
8002f0c: 47c35000 .word 0x47c35000
8002f10: 47c34f80 .word 0x47c34f80
8002f14: 0001869f .word 0x0001869f
8002f18: d1b71759 .word 0xd1b71759
8002f1c: 10624dd3 .word 0x10624dd3
8002f20: 51eb851f .word 0x51eb851f
8002f24: cccccccd .word 0xcccccccd
8002f28: 20020010 .word 0x20020010
8002f2c: 20020250 .word 0x20020250
menupos = Hp;
8002f30: 4b95 ldr r3, [pc, #596] ; (8003188 <DoKeyDN+0x5a8>)
8002f32: 2201 movs r2, #1
8002f34: 701a strb r2, [r3, #0]
}
8002f36: f000 be3a b.w 8003bae <DoKeyDN+0xfce>
if(menupos == Hp)
8002f3a: 4b93 ldr r3, [pc, #588] ; (8003188 <DoKeyDN+0x5a8>)
8002f3c: 781b ldrb r3, [r3, #0]
8002f3e: b2db uxtb r3, r3
8002f40: 2b01 cmp r3, #1
8002f42: d140 bne.n 8002fc6 <DoKeyDN+0x3e6>
if(focused)
8002f44: 4b91 ldr r3, [pc, #580] ; (800318c <DoKeyDN+0x5ac>)
8002f46: 781b ldrb r3, [r3, #0]
8002f48: b2db uxtb r3, r3
8002f4a: 2b00 cmp r3, #0
8002f4c: d036 beq.n 8002fbc <DoKeyDN+0x3dc>
if(pardata.amplif[ACTIVE_CHANNEL].IFV > Hp0_2)
8002f4e: 4b90 ldr r3, [pc, #576] ; (8003190 <DoKeyDN+0x5b0>)
8002f50: 681b ldr r3, [r3, #0]
8002f52: 4a90 ldr r2, [pc, #576] ; (8003194 <DoKeyDN+0x5b4>)
8002f54: 015b lsls r3, r3, #5
8002f56: 4413 add r3, r2
8002f58: 3302 adds r3, #2
8002f5a: 881b ldrh r3, [r3, #0]
8002f5c: b29b uxth r3, r3
8002f5e: 2b00 cmp r3, #0
8002f60: f000 8625 beq.w 8003bae <DoKeyDN+0xfce>
pardata.amplif[ACTIVE_CHANNEL].IFV--;
8002f64: 4b8a ldr r3, [pc, #552] ; (8003190 <DoKeyDN+0x5b0>)
8002f66: 681b ldr r3, [r3, #0]
8002f68: 498a ldr r1, [pc, #552] ; (8003194 <DoKeyDN+0x5b4>)
8002f6a: 015a lsls r2, r3, #5
8002f6c: 440a add r2, r1
8002f6e: 3202 adds r2, #2
8002f70: 8812 ldrh r2, [r2, #0]
8002f72: b292 uxth r2, r2
8002f74: 3a01 subs r2, #1
8002f76: b291 uxth r1, r2
8002f78: 4a86 ldr r2, [pc, #536] ; (8003194 <DoKeyDN+0x5b4>)
8002f7a: 015b lsls r3, r3, #5
8002f7c: 4413 add r3, r2
8002f7e: 3302 adds r3, #2
8002f80: 460a mov r2, r1
8002f82: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8002f84: 4b82 ldr r3, [pc, #520] ; (8003190 <DoKeyDN+0x5b0>)
8002f86: 681b ldr r3, [r3, #0]
8002f88: b2db uxtb r3, r3
8002f8a: 4618 mov r0, r3
8002f8c: f009 fd42 bl 800ca14 <WriteChannel>
8002f90: 4603 mov r3, r0
8002f92: 2b00 cmp r3, #0
8002f94: f000 860b beq.w 8003bae <DoKeyDN+0xfce>
pardata.amplif[ACTIVE_CHANNEL].IFV++;
8002f98: 4b7d ldr r3, [pc, #500] ; (8003190 <DoKeyDN+0x5b0>)
8002f9a: 681b ldr r3, [r3, #0]
8002f9c: 497d ldr r1, [pc, #500] ; (8003194 <DoKeyDN+0x5b4>)
8002f9e: 015a lsls r2, r3, #5
8002fa0: 440a add r2, r1
8002fa2: 3202 adds r2, #2
8002fa4: 8812 ldrh r2, [r2, #0]
8002fa6: b292 uxth r2, r2
8002fa8: 3201 adds r2, #1
8002faa: b291 uxth r1, r2
8002fac: 4a79 ldr r2, [pc, #484] ; (8003194 <DoKeyDN+0x5b4>)
8002fae: 015b lsls r3, r3, #5
8002fb0: 4413 add r3, r2
8002fb2: 3302 adds r3, #2
8002fb4: 460a mov r2, r1
8002fb6: 801a strh r2, [r3, #0]
}
8002fb8: f000 bdf9 b.w 8003bae <DoKeyDN+0xfce>
menupos = Lp;
8002fbc: 4b72 ldr r3, [pc, #456] ; (8003188 <DoKeyDN+0x5a8>)
8002fbe: 2202 movs r2, #2
8002fc0: 701a strb r2, [r3, #0]
}
8002fc2: f000 bdf4 b.w 8003bae <DoKeyDN+0xfce>
if(menupos == Lp)
8002fc6: 4b70 ldr r3, [pc, #448] ; (8003188 <DoKeyDN+0x5a8>)
8002fc8: 781b ldrb r3, [r3, #0]
8002fca: b2db uxtb r3, r3
8002fcc: 2b02 cmp r3, #2
8002fce: d140 bne.n 8003052 <DoKeyDN+0x472>
if(focused)
8002fd0: 4b6e ldr r3, [pc, #440] ; (800318c <DoKeyDN+0x5ac>)
8002fd2: 781b ldrb r3, [r3, #0]
8002fd4: b2db uxtb r3, r3
8002fd6: 2b00 cmp r3, #0
8002fd8: d036 beq.n 8003048 <DoKeyDN+0x468>
if(pardata.amplif[ACTIVE_CHANNEL].IFN > Lp200)
8002fda: 4b6d ldr r3, [pc, #436] ; (8003190 <DoKeyDN+0x5b0>)
8002fdc: 681b ldr r3, [r3, #0]
8002fde: 4a6d ldr r2, [pc, #436] ; (8003194 <DoKeyDN+0x5b4>)
8002fe0: 015b lsls r3, r3, #5
8002fe2: 4413 add r3, r2
8002fe4: 3304 adds r3, #4
8002fe6: 881b ldrh r3, [r3, #0]
8002fe8: b29b uxth r3, r3
8002fea: 2b00 cmp r3, #0
8002fec: f000 85df beq.w 8003bae <DoKeyDN+0xfce>
pardata.amplif[ACTIVE_CHANNEL].IFN--;
8002ff0: 4b67 ldr r3, [pc, #412] ; (8003190 <DoKeyDN+0x5b0>)
8002ff2: 681b ldr r3, [r3, #0]
8002ff4: 4967 ldr r1, [pc, #412] ; (8003194 <DoKeyDN+0x5b4>)
8002ff6: 015a lsls r2, r3, #5
8002ff8: 440a add r2, r1
8002ffa: 3204 adds r2, #4
8002ffc: 8812 ldrh r2, [r2, #0]
8002ffe: b292 uxth r2, r2
8003000: 3a01 subs r2, #1
8003002: b291 uxth r1, r2
8003004: 4a63 ldr r2, [pc, #396] ; (8003194 <DoKeyDN+0x5b4>)
8003006: 015b lsls r3, r3, #5
8003008: 4413 add r3, r2
800300a: 3304 adds r3, #4
800300c: 460a mov r2, r1
800300e: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8003010: 4b5f ldr r3, [pc, #380] ; (8003190 <DoKeyDN+0x5b0>)
8003012: 681b ldr r3, [r3, #0]
8003014: b2db uxtb r3, r3
8003016: 4618 mov r0, r3
8003018: f009 fcfc bl 800ca14 <WriteChannel>
800301c: 4603 mov r3, r0
800301e: 2b00 cmp r3, #0
8003020: f000 85c5 beq.w 8003bae <DoKeyDN+0xfce>
pardata.amplif[ACTIVE_CHANNEL].IFN++;
8003024: 4b5a ldr r3, [pc, #360] ; (8003190 <DoKeyDN+0x5b0>)
8003026: 681b ldr r3, [r3, #0]
8003028: 495a ldr r1, [pc, #360] ; (8003194 <DoKeyDN+0x5b4>)
800302a: 015a lsls r2, r3, #5
800302c: 440a add r2, r1
800302e: 3204 adds r2, #4
8003030: 8812 ldrh r2, [r2, #0]
8003032: b292 uxth r2, r2
8003034: 3201 adds r2, #1
8003036: b291 uxth r1, r2
8003038: 4a56 ldr r2, [pc, #344] ; (8003194 <DoKeyDN+0x5b4>)
800303a: 015b lsls r3, r3, #5
800303c: 4413 add r3, r2
800303e: 3304 adds r3, #4
8003040: 460a mov r2, r1
8003042: 801a strh r2, [r3, #0]
}
8003044: f000 bdb3 b.w 8003bae <DoKeyDN+0xfce>
menupos = Sens;
8003048: 4b4f ldr r3, [pc, #316] ; (8003188 <DoKeyDN+0x5a8>)
800304a: 2203 movs r2, #3
800304c: 701a strb r2, [r3, #0]
}
800304e: f000 bdae b.w 8003bae <DoKeyDN+0xfce>
if(menupos == Sens)
8003052: 4b4d ldr r3, [pc, #308] ; (8003188 <DoKeyDN+0x5a8>)
8003054: 781b ldrb r3, [r3, #0]
8003056: b2db uxtb r3, r3
8003058: 2b03 cmp r3, #3
800305a: d104 bne.n 8003066 <DoKeyDN+0x486>
menupos = Val;
800305c: 4b4a ldr r3, [pc, #296] ; (8003188 <DoKeyDN+0x5a8>)
800305e: 2204 movs r2, #4
8003060: 701a strb r2, [r3, #0]
}
8003062: f000 bda4 b.w 8003bae <DoKeyDN+0xfce>
if(menupos == Val)
8003066: 4b48 ldr r3, [pc, #288] ; (8003188 <DoKeyDN+0x5a8>)
8003068: 781b ldrb r3, [r3, #0]
800306a: b2db uxtb r3, r3
800306c: 2b04 cmp r3, #4
800306e: d140 bne.n 80030f2 <DoKeyDN+0x512>
if(focused)
8003070: 4b46 ldr r3, [pc, #280] ; (800318c <DoKeyDN+0x5ac>)
8003072: 781b ldrb r3, [r3, #0]
8003074: b2db uxtb r3, r3
8003076: 2b00 cmp r3, #0
8003078: d036 beq.n 80030e8 <DoKeyDN+0x508>
if(pardata.amplif[ACTIVE_CHANNEL].VAL > Accel)
800307a: 4b45 ldr r3, [pc, #276] ; (8003190 <DoKeyDN+0x5b0>)
800307c: 681b ldr r3, [r3, #0]
800307e: 4a45 ldr r2, [pc, #276] ; (8003194 <DoKeyDN+0x5b4>)
8003080: 015b lsls r3, r3, #5
8003082: 4413 add r3, r2
8003084: 3312 adds r3, #18
8003086: 881b ldrh r3, [r3, #0]
8003088: b29b uxth r3, r3
800308a: 2b00 cmp r3, #0
800308c: f000 858f beq.w 8003bae <DoKeyDN+0xfce>
pardata.amplif[ACTIVE_CHANNEL].VAL--;
8003090: 4b3f ldr r3, [pc, #252] ; (8003190 <DoKeyDN+0x5b0>)
8003092: 681b ldr r3, [r3, #0]
8003094: 493f ldr r1, [pc, #252] ; (8003194 <DoKeyDN+0x5b4>)
8003096: 015a lsls r2, r3, #5
8003098: 440a add r2, r1
800309a: 3212 adds r2, #18
800309c: 8812 ldrh r2, [r2, #0]
800309e: b292 uxth r2, r2
80030a0: 3a01 subs r2, #1
80030a2: b291 uxth r1, r2
80030a4: 4a3b ldr r2, [pc, #236] ; (8003194 <DoKeyDN+0x5b4>)
80030a6: 015b lsls r3, r3, #5
80030a8: 4413 add r3, r2
80030aa: 3312 adds r3, #18
80030ac: 460a mov r2, r1
80030ae: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
80030b0: 4b37 ldr r3, [pc, #220] ; (8003190 <DoKeyDN+0x5b0>)
80030b2: 681b ldr r3, [r3, #0]
80030b4: b2db uxtb r3, r3
80030b6: 4618 mov r0, r3
80030b8: f009 fcac bl 800ca14 <WriteChannel>
80030bc: 4603 mov r3, r0
80030be: 2b00 cmp r3, #0
80030c0: f000 8575 beq.w 8003bae <DoKeyDN+0xfce>
pardata.amplif[ACTIVE_CHANNEL].VAL++;
80030c4: 4b32 ldr r3, [pc, #200] ; (8003190 <DoKeyDN+0x5b0>)
80030c6: 681b ldr r3, [r3, #0]
80030c8: 4932 ldr r1, [pc, #200] ; (8003194 <DoKeyDN+0x5b4>)
80030ca: 015a lsls r2, r3, #5
80030cc: 440a add r2, r1
80030ce: 3212 adds r2, #18
80030d0: 8812 ldrh r2, [r2, #0]
80030d2: b292 uxth r2, r2
80030d4: 3201 adds r2, #1
80030d6: b291 uxth r1, r2
80030d8: 4a2e ldr r2, [pc, #184] ; (8003194 <DoKeyDN+0x5b4>)
80030da: 015b lsls r3, r3, #5
80030dc: 4413 add r3, r2
80030de: 3312 adds r3, #18
80030e0: 460a mov r2, r1
80030e2: 801a strh r2, [r3, #0]
}
80030e4: f000 bd63 b.w 8003bae <DoKeyDN+0xfce>
menupos = Out;
80030e8: 4b27 ldr r3, [pc, #156] ; (8003188 <DoKeyDN+0x5a8>)
80030ea: 2205 movs r2, #5
80030ec: 701a strb r2, [r3, #0]
}
80030ee: f000 bd5e b.w 8003bae <DoKeyDN+0xfce>
if(menupos == Out)
80030f2: 4b25 ldr r3, [pc, #148] ; (8003188 <DoKeyDN+0x5a8>)
80030f4: 781b ldrb r3, [r3, #0]
80030f6: b2db uxtb r3, r3
80030f8: 2b05 cmp r3, #5
80030fa: f040 8089 bne.w 8003210 <DoKeyDN+0x630>
if(focused)
80030fe: 4b23 ldr r3, [pc, #140] ; (800318c <DoKeyDN+0x5ac>)
8003100: 781b ldrb r3, [r3, #0]
8003102: b2db uxtb r3, r3
8003104: 2b00 cmp r3, #0
8003106: d07e beq.n 8003206 <DoKeyDN+0x626>
if(pardata.amplif[ACTIVE_CHANNEL].IIN == CHARGE)
8003108: 4b21 ldr r3, [pc, #132] ; (8003190 <DoKeyDN+0x5b0>)
800310a: 681b ldr r3, [r3, #0]
800310c: 4a21 ldr r2, [pc, #132] ; (8003194 <DoKeyDN+0x5b4>)
800310e: 015b lsls r3, r3, #5
8003110: 4413 add r3, r2
8003112: 881b ldrh r3, [r3, #0]
8003114: b29b uxth r3, r3
8003116: 2b00 cmp r3, #0
8003118: d13e bne.n 8003198 <DoKeyDN+0x5b8>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku0_1)
800311a: 4b1d ldr r3, [pc, #116] ; (8003190 <DoKeyDN+0x5b0>)
800311c: 681b ldr r3, [r3, #0]
800311e: 4a1d ldr r2, [pc, #116] ; (8003194 <DoKeyDN+0x5b4>)
8003120: 015b lsls r3, r3, #5
8003122: 4413 add r3, r2
8003124: 3306 adds r3, #6
8003126: 881b ldrh r3, [r3, #0]
8003128: b29b uxth r3, r3
800312a: 2b00 cmp r3, #0
800312c: f000 853f beq.w 8003bae <DoKeyDN+0xfce>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
8003130: 4b17 ldr r3, [pc, #92] ; (8003190 <DoKeyDN+0x5b0>)
8003132: 681b ldr r3, [r3, #0]
8003134: 4917 ldr r1, [pc, #92] ; (8003194 <DoKeyDN+0x5b4>)
8003136: 015a lsls r2, r3, #5
8003138: 440a add r2, r1
800313a: 3206 adds r2, #6
800313c: 8812 ldrh r2, [r2, #0]
800313e: b292 uxth r2, r2
8003140: 3a01 subs r2, #1
8003142: b291 uxth r1, r2
8003144: 4a13 ldr r2, [pc, #76] ; (8003194 <DoKeyDN+0x5b4>)
8003146: 015b lsls r3, r3, #5
8003148: 4413 add r3, r2
800314a: 3306 adds r3, #6
800314c: 460a mov r2, r1
800314e: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8003150: 4b0f ldr r3, [pc, #60] ; (8003190 <DoKeyDN+0x5b0>)
8003152: 681b ldr r3, [r3, #0]
8003154: b2db uxtb r3, r3
8003156: 4618 mov r0, r3
8003158: f009 fc5c bl 800ca14 <WriteChannel>
800315c: 4603 mov r3, r0
800315e: 2b00 cmp r3, #0
8003160: f000 8525 beq.w 8003bae <DoKeyDN+0xfce>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
8003164: 4b0a ldr r3, [pc, #40] ; (8003190 <DoKeyDN+0x5b0>)
8003166: 681b ldr r3, [r3, #0]
8003168: 490a ldr r1, [pc, #40] ; (8003194 <DoKeyDN+0x5b4>)
800316a: 015a lsls r2, r3, #5
800316c: 440a add r2, r1
800316e: 3206 adds r2, #6
8003170: 8812 ldrh r2, [r2, #0]
8003172: b292 uxth r2, r2
8003174: 3201 adds r2, #1
8003176: b291 uxth r1, r2
8003178: 4a06 ldr r2, [pc, #24] ; (8003194 <DoKeyDN+0x5b4>)
800317a: 015b lsls r3, r3, #5
800317c: 4413 add r3, r2
800317e: 3306 adds r3, #6
8003180: 460a mov r2, r1
8003182: 801a strh r2, [r3, #0]
}
8003184: f000 bd13 b.w 8003bae <DoKeyDN+0xfce>
8003188: 20020010 .word 0x20020010
800318c: 20020250 .word 0x20020250
8003190: 2006b2d0 .word 0x2006b2d0
8003194: 2006b510 .word 0x2006b510
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku1)
8003198: 4bba ldr r3, [pc, #744] ; (8003484 <DoKeyDN+0x8a4>)
800319a: 681b ldr r3, [r3, #0]
800319c: 4aba ldr r2, [pc, #744] ; (8003488 <DoKeyDN+0x8a8>)
800319e: 015b lsls r3, r3, #5
80031a0: 4413 add r3, r2
80031a2: 3306 adds r3, #6
80031a4: 881b ldrh r3, [r3, #0]
80031a6: b29b uxth r3, r3
80031a8: 2b03 cmp r3, #3
80031aa: f240 8500 bls.w 8003bae <DoKeyDN+0xfce>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
80031ae: 4bb5 ldr r3, [pc, #724] ; (8003484 <DoKeyDN+0x8a4>)
80031b0: 681b ldr r3, [r3, #0]
80031b2: 49b5 ldr r1, [pc, #724] ; (8003488 <DoKeyDN+0x8a8>)
80031b4: 015a lsls r2, r3, #5
80031b6: 440a add r2, r1
80031b8: 3206 adds r2, #6
80031ba: 8812 ldrh r2, [r2, #0]
80031bc: b292 uxth r2, r2
80031be: 3a01 subs r2, #1
80031c0: b291 uxth r1, r2
80031c2: 4ab1 ldr r2, [pc, #708] ; (8003488 <DoKeyDN+0x8a8>)
80031c4: 015b lsls r3, r3, #5
80031c6: 4413 add r3, r2
80031c8: 3306 adds r3, #6
80031ca: 460a mov r2, r1
80031cc: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
80031ce: 4bad ldr r3, [pc, #692] ; (8003484 <DoKeyDN+0x8a4>)
80031d0: 681b ldr r3, [r3, #0]
80031d2: b2db uxtb r3, r3
80031d4: 4618 mov r0, r3
80031d6: f009 fc1d bl 800ca14 <WriteChannel>
80031da: 4603 mov r3, r0
80031dc: 2b00 cmp r3, #0
80031de: f000 84e6 beq.w 8003bae <DoKeyDN+0xfce>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
80031e2: 4ba8 ldr r3, [pc, #672] ; (8003484 <DoKeyDN+0x8a4>)
80031e4: 681b ldr r3, [r3, #0]
80031e6: 49a8 ldr r1, [pc, #672] ; (8003488 <DoKeyDN+0x8a8>)
80031e8: 015a lsls r2, r3, #5
80031ea: 440a add r2, r1
80031ec: 3206 adds r2, #6
80031ee: 8812 ldrh r2, [r2, #0]
80031f0: b292 uxth r2, r2
80031f2: 3201 adds r2, #1
80031f4: b291 uxth r1, r2
80031f6: 4aa4 ldr r2, [pc, #656] ; (8003488 <DoKeyDN+0x8a8>)
80031f8: 015b lsls r3, r3, #5
80031fa: 4413 add r3, r2
80031fc: 3306 adds r3, #6
80031fe: 460a mov r2, r1
8003200: 801a strh r2, [r3, #0]
}
8003202: f000 bcd4 b.w 8003bae <DoKeyDN+0xfce>
menupos = Sens;
8003206: 4ba1 ldr r3, [pc, #644] ; (800348c <DoKeyDN+0x8ac>)
8003208: 2203 movs r2, #3
800320a: 701a strb r2, [r3, #0]
}
800320c: f000 bccf b.w 8003bae <DoKeyDN+0xfce>
if(menupos == Kikdt)
8003210: 4b9e ldr r3, [pc, #632] ; (800348c <DoKeyDN+0x8ac>)
8003212: 781b ldrb r3, [r3, #0]
8003214: b2db uxtb r3, r3
8003216: 2b06 cmp r3, #6
8003218: f040 80be bne.w 8003398 <DoKeyDN+0x7b8>
if(ikdt) {
800321c: 69bb ldr r3, [r7, #24]
800321e: 2b00 cmp r3, #0
8003220: d002 beq.n 8003228 <DoKeyDN+0x648>
ikdt--;
8003222: 69bb ldr r3, [r7, #24]
8003224: 3b01 subs r3, #1
8003226: 61bb str r3, [r7, #24]
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
8003228: 69bb ldr r3, [r7, #24]
800322a: f242 7210 movw r2, #10000 ; 0x2710
800322e: fb02 f203 mul.w r2, r2, r3
8003232: 697b ldr r3, [r7, #20]
8003234: f44f 717a mov.w r1, #1000 ; 0x3e8
8003238: fb01 f303 mul.w r3, r1, r3
800323c: 18d1 adds r1, r2, r3
800323e: 68fa ldr r2, [r7, #12]
8003240: 4613 mov r3, r2
8003242: 009b lsls r3, r3, #2
8003244: 4413 add r3, r2
8003246: 005b lsls r3, r3, #1
8003248: 4618 mov r0, r3
800324a: 693b ldr r3, [r7, #16]
800324c: 2264 movs r2, #100 ; 0x64
800324e: fb02 f303 mul.w r3, r2, r3
8003252: 4403 add r3, r0
8003254: 18ca adds r2, r1, r3
8003256: 68bb ldr r3, [r7, #8]
8003258: 4413 add r3, r2
800325a: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
800325c: 4b89 ldr r3, [pc, #548] ; (8003484 <DoKeyDN+0x8a4>)
800325e: 681b ldr r3, [r3, #0]
8003260: 69fa ldr r2, [r7, #28]
8003262: ee07 2a90 vmov s15, r2
8003266: eef8 7a67 vcvt.f32.u32 s15, s15
800326a: 4a87 ldr r2, [pc, #540] ; (8003488 <DoKeyDN+0x8a8>)
800326c: 015b lsls r3, r3, #5
800326e: 4413 add r3, r2
8003270: 3318 adds r3, #24
8003272: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8003276: 687b ldr r3, [r7, #4]
8003278: 2b01 cmp r3, #1
800327a: d112 bne.n 80032a2 <DoKeyDN+0x6c2>
800327c: 4b81 ldr r3, [pc, #516] ; (8003484 <DoKeyDN+0x8a4>)
800327e: 681b ldr r3, [r3, #0]
8003280: 4981 ldr r1, [pc, #516] ; (8003488 <DoKeyDN+0x8a8>)
8003282: 015a lsls r2, r3, #5
8003284: 440a add r2, r1
8003286: 3218 adds r2, #24
8003288: edd2 7a00 vldr s15, [r2]
800328c: ed9f 7a80 vldr s14, [pc, #512] ; 8003490 <DoKeyDN+0x8b0>
8003290: ee67 7a87 vmul.f32 s15, s15, s14
8003294: 4a7c ldr r2, [pc, #496] ; (8003488 <DoKeyDN+0x8a8>)
8003296: 015b lsls r3, r3, #5
8003298: 4413 add r3, r2
800329a: 3318 adds r3, #24
800329c: edc3 7a00 vstr s15, [r3]
80032a0: e040 b.n 8003324 <DoKeyDN+0x744>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
80032a2: 687b ldr r3, [r7, #4]
80032a4: 2b02 cmp r3, #2
80032a6: d112 bne.n 80032ce <DoKeyDN+0x6ee>
80032a8: 4b76 ldr r3, [pc, #472] ; (8003484 <DoKeyDN+0x8a4>)
80032aa: 681b ldr r3, [r3, #0]
80032ac: 4976 ldr r1, [pc, #472] ; (8003488 <DoKeyDN+0x8a8>)
80032ae: 015a lsls r2, r3, #5
80032b0: 440a add r2, r1
80032b2: 3218 adds r2, #24
80032b4: edd2 7a00 vldr s15, [r2]
80032b8: ed9f 7a76 vldr s14, [pc, #472] ; 8003494 <DoKeyDN+0x8b4>
80032bc: ee67 7a87 vmul.f32 s15, s15, s14
80032c0: 4a71 ldr r2, [pc, #452] ; (8003488 <DoKeyDN+0x8a8>)
80032c2: 015b lsls r3, r3, #5
80032c4: 4413 add r3, r2
80032c6: 3318 adds r3, #24
80032c8: edc3 7a00 vstr s15, [r3]
80032cc: e02a b.n 8003324 <DoKeyDN+0x744>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
80032ce: 687b ldr r3, [r7, #4]
80032d0: 2b03 cmp r3, #3
80032d2: d112 bne.n 80032fa <DoKeyDN+0x71a>
80032d4: 4b6b ldr r3, [pc, #428] ; (8003484 <DoKeyDN+0x8a4>)
80032d6: 681b ldr r3, [r3, #0]
80032d8: 496b ldr r1, [pc, #428] ; (8003488 <DoKeyDN+0x8a8>)
80032da: 015a lsls r2, r3, #5
80032dc: 440a add r2, r1
80032de: 3218 adds r2, #24
80032e0: edd2 7a00 vldr s15, [r2]
80032e4: ed9f 7a6c vldr s14, [pc, #432] ; 8003498 <DoKeyDN+0x8b8>
80032e8: ee67 7a87 vmul.f32 s15, s15, s14
80032ec: 4a66 ldr r2, [pc, #408] ; (8003488 <DoKeyDN+0x8a8>)
80032ee: 015b lsls r3, r3, #5
80032f0: 4413 add r3, r2
80032f2: 3318 adds r3, #24
80032f4: edc3 7a00 vstr s15, [r3]
80032f8: e014 b.n 8003324 <DoKeyDN+0x744>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
80032fa: 687b ldr r3, [r7, #4]
80032fc: 2b04 cmp r3, #4
80032fe: d111 bne.n 8003324 <DoKeyDN+0x744>
8003300: 4b60 ldr r3, [pc, #384] ; (8003484 <DoKeyDN+0x8a4>)
8003302: 681b ldr r3, [r3, #0]
8003304: 4960 ldr r1, [pc, #384] ; (8003488 <DoKeyDN+0x8a8>)
8003306: 015a lsls r2, r3, #5
8003308: 440a add r2, r1
800330a: 3218 adds r2, #24
800330c: edd2 7a00 vldr s15, [r2]
8003310: ed9f 7a62 vldr s14, [pc, #392] ; 800349c <DoKeyDN+0x8bc>
8003314: ee67 7a87 vmul.f32 s15, s15, s14
8003318: 4a5b ldr r2, [pc, #364] ; (8003488 <DoKeyDN+0x8a8>)
800331a: 015b lsls r3, r3, #5
800331c: 4413 add r3, r2
800331e: 3318 adds r3, #24
8003320: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
8003324: 4b57 ldr r3, [pc, #348] ; (8003484 <DoKeyDN+0x8a4>)
8003326: 681b ldr r3, [r3, #0]
8003328: 4a57 ldr r2, [pc, #348] ; (8003488 <DoKeyDN+0x8a8>)
800332a: 015b lsls r3, r3, #5
800332c: 4413 add r3, r2
800332e: 3318 adds r3, #24
8003330: edd3 7a00 vldr s15, [r3]
8003334: eef5 7ac0 vcmpe.f32 s15, #0.0
8003338: eef1 fa10 vmrs APSR_nzcv, fpscr
800333c: d807 bhi.n 800334e <DoKeyDN+0x76e>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
800333e: 4b51 ldr r3, [pc, #324] ; (8003484 <DoKeyDN+0x8a4>)
8003340: 681b ldr r3, [r3, #0]
8003342: 4a51 ldr r2, [pc, #324] ; (8003488 <DoKeyDN+0x8a8>)
8003344: 015b lsls r3, r3, #5
8003346: 4413 add r3, r2
8003348: 3318 adds r3, #24
800334a: 4a55 ldr r2, [pc, #340] ; (80034a0 <DoKeyDN+0x8c0>)
800334c: 601a str r2, [r3, #0]
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
800334e: 4b4d ldr r3, [pc, #308] ; (8003484 <DoKeyDN+0x8a4>)
8003350: 681b ldr r3, [r3, #0]
8003352: 4a4d ldr r2, [pc, #308] ; (8003488 <DoKeyDN+0x8a8>)
8003354: 015b lsls r3, r3, #5
8003356: 4413 add r3, r2
8003358: 3318 adds r3, #24
800335a: edd3 7a00 vldr s15, [r3]
800335e: ed9f 7a51 vldr s14, [pc, #324] ; 80034a4 <DoKeyDN+0x8c4>
8003362: eef4 7ac7 vcmpe.f32 s15, s14
8003366: eef1 fa10 vmrs APSR_nzcv, fpscr
800336a: db07 blt.n 800337c <DoKeyDN+0x79c>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
800336c: 4b45 ldr r3, [pc, #276] ; (8003484 <DoKeyDN+0x8a4>)
800336e: 681b ldr r3, [r3, #0]
8003370: 4a45 ldr r2, [pc, #276] ; (8003488 <DoKeyDN+0x8a8>)
8003372: 015b lsls r3, r3, #5
8003374: 4413 add r3, r2
8003376: 3318 adds r3, #24
8003378: 4a4b ldr r2, [pc, #300] ; (80034a8 <DoKeyDN+0x8c8>)
800337a: 601a str r2, [r3, #0]
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
800337c: 4b41 ldr r3, [pc, #260] ; (8003484 <DoKeyDN+0x8a4>)
800337e: 681b ldr r3, [r3, #0]
8003380: 4a41 ldr r2, [pc, #260] ; (8003488 <DoKeyDN+0x8a8>)
8003382: 015b lsls r3, r3, #5
8003384: 4413 add r3, r2
8003386: 3318 adds r3, #24
8003388: edd3 7a00 vldr s15, [r3]
800338c: eeb0 0a67 vmov.f32 s0, s15
8003390: f000 fc22 bl 8003bd8 <VerifyGain>
}
8003394: f000 bc0b b.w 8003bae <DoKeyDN+0xfce>
if(menupos == Kikt)
8003398: 4b3c ldr r3, [pc, #240] ; (800348c <DoKeyDN+0x8ac>)
800339a: 781b ldrb r3, [r3, #0]
800339c: b2db uxtb r3, r3
800339e: 2b07 cmp r3, #7
80033a0: f040 80d2 bne.w 8003548 <DoKeyDN+0x968>
if(ikt) {
80033a4: 697b ldr r3, [r7, #20]
80033a6: 2b00 cmp r3, #0
80033a8: d002 beq.n 80033b0 <DoKeyDN+0x7d0>
ikt--;
80033aa: 697b ldr r3, [r7, #20]
80033ac: 3b01 subs r3, #1
80033ae: 617b str r3, [r7, #20]
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
80033b0: 69bb ldr r3, [r7, #24]
80033b2: f242 7210 movw r2, #10000 ; 0x2710
80033b6: fb02 f203 mul.w r2, r2, r3
80033ba: 697b ldr r3, [r7, #20]
80033bc: f44f 717a mov.w r1, #1000 ; 0x3e8
80033c0: fb01 f303 mul.w r3, r1, r3
80033c4: 18d1 adds r1, r2, r3
80033c6: 68fa ldr r2, [r7, #12]
80033c8: 4613 mov r3, r2
80033ca: 009b lsls r3, r3, #2
80033cc: 4413 add r3, r2
80033ce: 005b lsls r3, r3, #1
80033d0: 4618 mov r0, r3
80033d2: 693b ldr r3, [r7, #16]
80033d4: 2264 movs r2, #100 ; 0x64
80033d6: fb02 f303 mul.w r3, r2, r3
80033da: 4403 add r3, r0
80033dc: 18ca adds r2, r1, r3
80033de: 68bb ldr r3, [r7, #8]
80033e0: 4413 add r3, r2
80033e2: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
80033e4: 4b27 ldr r3, [pc, #156] ; (8003484 <DoKeyDN+0x8a4>)
80033e6: 681b ldr r3, [r3, #0]
80033e8: 69fa ldr r2, [r7, #28]
80033ea: ee07 2a90 vmov s15, r2
80033ee: eef8 7a67 vcvt.f32.u32 s15, s15
80033f2: 4a25 ldr r2, [pc, #148] ; (8003488 <DoKeyDN+0x8a8>)
80033f4: 015b lsls r3, r3, #5
80033f6: 4413 add r3, r2
80033f8: 3318 adds r3, #24
80033fa: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
80033fe: 687b ldr r3, [r7, #4]
8003400: 2b01 cmp r3, #1
8003402: d112 bne.n 800342a <DoKeyDN+0x84a>
8003404: 4b1f ldr r3, [pc, #124] ; (8003484 <DoKeyDN+0x8a4>)
8003406: 681b ldr r3, [r3, #0]
8003408: 491f ldr r1, [pc, #124] ; (8003488 <DoKeyDN+0x8a8>)
800340a: 015a lsls r2, r3, #5
800340c: 440a add r2, r1
800340e: 3218 adds r2, #24
8003410: edd2 7a00 vldr s15, [r2]
8003414: ed9f 7a1e vldr s14, [pc, #120] ; 8003490 <DoKeyDN+0x8b0>
8003418: ee67 7a87 vmul.f32 s15, s15, s14
800341c: 4a1a ldr r2, [pc, #104] ; (8003488 <DoKeyDN+0x8a8>)
800341e: 015b lsls r3, r3, #5
8003420: 4413 add r3, r2
8003422: 3318 adds r3, #24
8003424: edc3 7a00 vstr s15, [r3]
8003428: e055 b.n 80034d6 <DoKeyDN+0x8f6>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
800342a: 687b ldr r3, [r7, #4]
800342c: 2b02 cmp r3, #2
800342e: d112 bne.n 8003456 <DoKeyDN+0x876>
8003430: 4b14 ldr r3, [pc, #80] ; (8003484 <DoKeyDN+0x8a4>)
8003432: 681b ldr r3, [r3, #0]
8003434: 4914 ldr r1, [pc, #80] ; (8003488 <DoKeyDN+0x8a8>)
8003436: 015a lsls r2, r3, #5
8003438: 440a add r2, r1
800343a: 3218 adds r2, #24
800343c: edd2 7a00 vldr s15, [r2]
8003440: ed9f 7a14 vldr s14, [pc, #80] ; 8003494 <DoKeyDN+0x8b4>
8003444: ee67 7a87 vmul.f32 s15, s15, s14
8003448: 4a0f ldr r2, [pc, #60] ; (8003488 <DoKeyDN+0x8a8>)
800344a: 015b lsls r3, r3, #5
800344c: 4413 add r3, r2
800344e: 3318 adds r3, #24
8003450: edc3 7a00 vstr s15, [r3]
8003454: e03f b.n 80034d6 <DoKeyDN+0x8f6>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8003456: 687b ldr r3, [r7, #4]
8003458: 2b03 cmp r3, #3
800345a: d127 bne.n 80034ac <DoKeyDN+0x8cc>
800345c: 4b09 ldr r3, [pc, #36] ; (8003484 <DoKeyDN+0x8a4>)
800345e: 681b ldr r3, [r3, #0]
8003460: 4909 ldr r1, [pc, #36] ; (8003488 <DoKeyDN+0x8a8>)
8003462: 015a lsls r2, r3, #5
8003464: 440a add r2, r1
8003466: 3218 adds r2, #24
8003468: edd2 7a00 vldr s15, [r2]
800346c: ed9f 7a0a vldr s14, [pc, #40] ; 8003498 <DoKeyDN+0x8b8>
8003470: ee67 7a87 vmul.f32 s15, s15, s14
8003474: 4a04 ldr r2, [pc, #16] ; (8003488 <DoKeyDN+0x8a8>)
8003476: 015b lsls r3, r3, #5
8003478: 4413 add r3, r2
800347a: 3318 adds r3, #24
800347c: edc3 7a00 vstr s15, [r3]
8003480: e029 b.n 80034d6 <DoKeyDN+0x8f6>
8003482: bf00 nop
8003484: 2006b2d0 .word 0x2006b2d0
8003488: 2006b510 .word 0x2006b510
800348c: 20020010 .word 0x20020010
8003490: 3dcccccd .word 0x3dcccccd
8003494: 3c23d70a .word 0x3c23d70a
8003498: 3a83126f .word 0x3a83126f
800349c: 38d1b717 .word 0x38d1b717
80034a0: 38d1b717 .word 0x38d1b717
80034a4: 47c35000 .word 0x47c35000
80034a8: 47c34f80 .word 0x47c34f80
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
80034ac: 687b ldr r3, [r7, #4]
80034ae: 2b04 cmp r3, #4
80034b0: d111 bne.n 80034d6 <DoKeyDN+0x8f6>
80034b2: 4bb6 ldr r3, [pc, #728] ; (800378c <DoKeyDN+0xbac>)
80034b4: 681b ldr r3, [r3, #0]
80034b6: 49b6 ldr r1, [pc, #728] ; (8003790 <DoKeyDN+0xbb0>)
80034b8: 015a lsls r2, r3, #5
80034ba: 440a add r2, r1
80034bc: 3218 adds r2, #24
80034be: edd2 7a00 vldr s15, [r2]
80034c2: ed9f 7ab4 vldr s14, [pc, #720] ; 8003794 <DoKeyDN+0xbb4>
80034c6: ee67 7a87 vmul.f32 s15, s15, s14
80034ca: 4ab1 ldr r2, [pc, #708] ; (8003790 <DoKeyDN+0xbb0>)
80034cc: 015b lsls r3, r3, #5
80034ce: 4413 add r3, r2
80034d0: 3318 adds r3, #24
80034d2: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
80034d6: 4bad ldr r3, [pc, #692] ; (800378c <DoKeyDN+0xbac>)
80034d8: 681b ldr r3, [r3, #0]
80034da: 4aad ldr r2, [pc, #692] ; (8003790 <DoKeyDN+0xbb0>)
80034dc: 015b lsls r3, r3, #5
80034de: 4413 add r3, r2
80034e0: 3318 adds r3, #24
80034e2: edd3 7a00 vldr s15, [r3]
80034e6: eef5 7ac0 vcmpe.f32 s15, #0.0
80034ea: eef1 fa10 vmrs APSR_nzcv, fpscr
80034ee: d807 bhi.n 8003500 <DoKeyDN+0x920>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
80034f0: 4ba6 ldr r3, [pc, #664] ; (800378c <DoKeyDN+0xbac>)
80034f2: 681b ldr r3, [r3, #0]
80034f4: 4aa6 ldr r2, [pc, #664] ; (8003790 <DoKeyDN+0xbb0>)
80034f6: 015b lsls r3, r3, #5
80034f8: 4413 add r3, r2
80034fa: 3318 adds r3, #24
80034fc: 4aa6 ldr r2, [pc, #664] ; (8003798 <DoKeyDN+0xbb8>)
80034fe: 601a str r2, [r3, #0]
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8003500: 4ba2 ldr r3, [pc, #648] ; (800378c <DoKeyDN+0xbac>)
8003502: 681b ldr r3, [r3, #0]
8003504: 4aa2 ldr r2, [pc, #648] ; (8003790 <DoKeyDN+0xbb0>)
8003506: 015b lsls r3, r3, #5
8003508: 4413 add r3, r2
800350a: 3318 adds r3, #24
800350c: edd3 7a00 vldr s15, [r3]
8003510: ed9f 7aa2 vldr s14, [pc, #648] ; 800379c <DoKeyDN+0xbbc>
8003514: eef4 7ac7 vcmpe.f32 s15, s14
8003518: eef1 fa10 vmrs APSR_nzcv, fpscr
800351c: db07 blt.n 800352e <DoKeyDN+0x94e>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
800351e: 4b9b ldr r3, [pc, #620] ; (800378c <DoKeyDN+0xbac>)
8003520: 681b ldr r3, [r3, #0]
8003522: 4a9b ldr r2, [pc, #620] ; (8003790 <DoKeyDN+0xbb0>)
8003524: 015b lsls r3, r3, #5
8003526: 4413 add r3, r2
8003528: 3318 adds r3, #24
800352a: 4a9d ldr r2, [pc, #628] ; (80037a0 <DoKeyDN+0xbc0>)
800352c: 601a str r2, [r3, #0]
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
800352e: 4b97 ldr r3, [pc, #604] ; (800378c <DoKeyDN+0xbac>)
8003530: 681b ldr r3, [r3, #0]
8003532: 4a97 ldr r2, [pc, #604] ; (8003790 <DoKeyDN+0xbb0>)
8003534: 015b lsls r3, r3, #5
8003536: 4413 add r3, r2
8003538: 3318 adds r3, #24
800353a: edd3 7a00 vldr s15, [r3]
800353e: eeb0 0a67 vmov.f32 s0, s15
8003542: f000 fb49 bl 8003bd8 <VerifyGain>
}
8003546: e332 b.n 8003bae <DoKeyDN+0xfce>
if(menupos == Kiks)
8003548: 4b96 ldr r3, [pc, #600] ; (80037a4 <DoKeyDN+0xbc4>)
800354a: 781b ldrb r3, [r3, #0]
800354c: b2db uxtb r3, r3
800354e: 2b08 cmp r3, #8
8003550: f040 80bd bne.w 80036ce <DoKeyDN+0xaee>
if(iks) {
8003554: 693b ldr r3, [r7, #16]
8003556: 2b00 cmp r3, #0
8003558: d002 beq.n 8003560 <DoKeyDN+0x980>
iks--;
800355a: 693b ldr r3, [r7, #16]
800355c: 3b01 subs r3, #1
800355e: 613b str r3, [r7, #16]
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
8003560: 69bb ldr r3, [r7, #24]
8003562: f242 7210 movw r2, #10000 ; 0x2710
8003566: fb02 f203 mul.w r2, r2, r3
800356a: 697b ldr r3, [r7, #20]
800356c: f44f 717a mov.w r1, #1000 ; 0x3e8
8003570: fb01 f303 mul.w r3, r1, r3
8003574: 18d1 adds r1, r2, r3
8003576: 68fa ldr r2, [r7, #12]
8003578: 4613 mov r3, r2
800357a: 009b lsls r3, r3, #2
800357c: 4413 add r3, r2
800357e: 005b lsls r3, r3, #1
8003580: 4618 mov r0, r3
8003582: 693b ldr r3, [r7, #16]
8003584: 2264 movs r2, #100 ; 0x64
8003586: fb02 f303 mul.w r3, r2, r3
800358a: 4403 add r3, r0
800358c: 18ca adds r2, r1, r3
800358e: 68bb ldr r3, [r7, #8]
8003590: 4413 add r3, r2
8003592: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
8003594: 4b7d ldr r3, [pc, #500] ; (800378c <DoKeyDN+0xbac>)
8003596: 681b ldr r3, [r3, #0]
8003598: 69fa ldr r2, [r7, #28]
800359a: ee07 2a90 vmov s15, r2
800359e: eef8 7a67 vcvt.f32.u32 s15, s15
80035a2: 4a7b ldr r2, [pc, #492] ; (8003790 <DoKeyDN+0xbb0>)
80035a4: 015b lsls r3, r3, #5
80035a6: 4413 add r3, r2
80035a8: 3318 adds r3, #24
80035aa: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
80035ae: 687b ldr r3, [r7, #4]
80035b0: 2b01 cmp r3, #1
80035b2: d112 bne.n 80035da <DoKeyDN+0x9fa>
80035b4: 4b75 ldr r3, [pc, #468] ; (800378c <DoKeyDN+0xbac>)
80035b6: 681b ldr r3, [r3, #0]
80035b8: 4975 ldr r1, [pc, #468] ; (8003790 <DoKeyDN+0xbb0>)
80035ba: 015a lsls r2, r3, #5
80035bc: 440a add r2, r1
80035be: 3218 adds r2, #24
80035c0: edd2 7a00 vldr s15, [r2]
80035c4: ed9f 7a78 vldr s14, [pc, #480] ; 80037a8 <DoKeyDN+0xbc8>
80035c8: ee67 7a87 vmul.f32 s15, s15, s14
80035cc: 4a70 ldr r2, [pc, #448] ; (8003790 <DoKeyDN+0xbb0>)
80035ce: 015b lsls r3, r3, #5
80035d0: 4413 add r3, r2
80035d2: 3318 adds r3, #24
80035d4: edc3 7a00 vstr s15, [r3]
80035d8: e040 b.n 800365c <DoKeyDN+0xa7c>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
80035da: 687b ldr r3, [r7, #4]
80035dc: 2b02 cmp r3, #2
80035de: d112 bne.n 8003606 <DoKeyDN+0xa26>
80035e0: 4b6a ldr r3, [pc, #424] ; (800378c <DoKeyDN+0xbac>)
80035e2: 681b ldr r3, [r3, #0]
80035e4: 496a ldr r1, [pc, #424] ; (8003790 <DoKeyDN+0xbb0>)
80035e6: 015a lsls r2, r3, #5
80035e8: 440a add r2, r1
80035ea: 3218 adds r2, #24
80035ec: edd2 7a00 vldr s15, [r2]
80035f0: ed9f 7a6e vldr s14, [pc, #440] ; 80037ac <DoKeyDN+0xbcc>
80035f4: ee67 7a87 vmul.f32 s15, s15, s14
80035f8: 4a65 ldr r2, [pc, #404] ; (8003790 <DoKeyDN+0xbb0>)
80035fa: 015b lsls r3, r3, #5
80035fc: 4413 add r3, r2
80035fe: 3318 adds r3, #24
8003600: edc3 7a00 vstr s15, [r3]
8003604: e02a b.n 800365c <DoKeyDN+0xa7c>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8003606: 687b ldr r3, [r7, #4]
8003608: 2b03 cmp r3, #3
800360a: d112 bne.n 8003632 <DoKeyDN+0xa52>
800360c: 4b5f ldr r3, [pc, #380] ; (800378c <DoKeyDN+0xbac>)
800360e: 681b ldr r3, [r3, #0]
8003610: 495f ldr r1, [pc, #380] ; (8003790 <DoKeyDN+0xbb0>)
8003612: 015a lsls r2, r3, #5
8003614: 440a add r2, r1
8003616: 3218 adds r2, #24
8003618: edd2 7a00 vldr s15, [r2]
800361c: ed9f 7a64 vldr s14, [pc, #400] ; 80037b0 <DoKeyDN+0xbd0>
8003620: ee67 7a87 vmul.f32 s15, s15, s14
8003624: 4a5a ldr r2, [pc, #360] ; (8003790 <DoKeyDN+0xbb0>)
8003626: 015b lsls r3, r3, #5
8003628: 4413 add r3, r2
800362a: 3318 adds r3, #24
800362c: edc3 7a00 vstr s15, [r3]
8003630: e014 b.n 800365c <DoKeyDN+0xa7c>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8003632: 687b ldr r3, [r7, #4]
8003634: 2b04 cmp r3, #4
8003636: d111 bne.n 800365c <DoKeyDN+0xa7c>
8003638: 4b54 ldr r3, [pc, #336] ; (800378c <DoKeyDN+0xbac>)
800363a: 681b ldr r3, [r3, #0]
800363c: 4954 ldr r1, [pc, #336] ; (8003790 <DoKeyDN+0xbb0>)
800363e: 015a lsls r2, r3, #5
8003640: 440a add r2, r1
8003642: 3218 adds r2, #24
8003644: edd2 7a00 vldr s15, [r2]
8003648: ed9f 7a52 vldr s14, [pc, #328] ; 8003794 <DoKeyDN+0xbb4>
800364c: ee67 7a87 vmul.f32 s15, s15, s14
8003650: 4a4f ldr r2, [pc, #316] ; (8003790 <DoKeyDN+0xbb0>)
8003652: 015b lsls r3, r3, #5
8003654: 4413 add r3, r2
8003656: 3318 adds r3, #24
8003658: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
800365c: 4b4b ldr r3, [pc, #300] ; (800378c <DoKeyDN+0xbac>)
800365e: 681b ldr r3, [r3, #0]
8003660: 4a4b ldr r2, [pc, #300] ; (8003790 <DoKeyDN+0xbb0>)
8003662: 015b lsls r3, r3, #5
8003664: 4413 add r3, r2
8003666: 3318 adds r3, #24
8003668: edd3 7a00 vldr s15, [r3]
800366c: eef5 7ac0 vcmpe.f32 s15, #0.0
8003670: eef1 fa10 vmrs APSR_nzcv, fpscr
8003674: d807 bhi.n 8003686 <DoKeyDN+0xaa6>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
8003676: 4b45 ldr r3, [pc, #276] ; (800378c <DoKeyDN+0xbac>)
8003678: 681b ldr r3, [r3, #0]
800367a: 4a45 ldr r2, [pc, #276] ; (8003790 <DoKeyDN+0xbb0>)
800367c: 015b lsls r3, r3, #5
800367e: 4413 add r3, r2
8003680: 3318 adds r3, #24
8003682: 4a45 ldr r2, [pc, #276] ; (8003798 <DoKeyDN+0xbb8>)
8003684: 601a str r2, [r3, #0]
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8003686: 4b41 ldr r3, [pc, #260] ; (800378c <DoKeyDN+0xbac>)
8003688: 681b ldr r3, [r3, #0]
800368a: 4a41 ldr r2, [pc, #260] ; (8003790 <DoKeyDN+0xbb0>)
800368c: 015b lsls r3, r3, #5
800368e: 4413 add r3, r2
8003690: 3318 adds r3, #24
8003692: edd3 7a00 vldr s15, [r3]
8003696: ed9f 7a41 vldr s14, [pc, #260] ; 800379c <DoKeyDN+0xbbc>
800369a: eef4 7ac7 vcmpe.f32 s15, s14
800369e: eef1 fa10 vmrs APSR_nzcv, fpscr
80036a2: db07 blt.n 80036b4 <DoKeyDN+0xad4>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
80036a4: 4b39 ldr r3, [pc, #228] ; (800378c <DoKeyDN+0xbac>)
80036a6: 681b ldr r3, [r3, #0]
80036a8: 4a39 ldr r2, [pc, #228] ; (8003790 <DoKeyDN+0xbb0>)
80036aa: 015b lsls r3, r3, #5
80036ac: 4413 add r3, r2
80036ae: 3318 adds r3, #24
80036b0: 4a3b ldr r2, [pc, #236] ; (80037a0 <DoKeyDN+0xbc0>)
80036b2: 601a str r2, [r3, #0]
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
80036b4: 4b35 ldr r3, [pc, #212] ; (800378c <DoKeyDN+0xbac>)
80036b6: 681b ldr r3, [r3, #0]
80036b8: 4a35 ldr r2, [pc, #212] ; (8003790 <DoKeyDN+0xbb0>)
80036ba: 015b lsls r3, r3, #5
80036bc: 4413 add r3, r2
80036be: 3318 adds r3, #24
80036c0: edd3 7a00 vldr s15, [r3]
80036c4: eeb0 0a67 vmov.f32 s0, s15
80036c8: f000 fa86 bl 8003bd8 <VerifyGain>
}
80036cc: e26f b.n 8003bae <DoKeyDN+0xfce>
if(menupos == Kikd)
80036ce: 4b35 ldr r3, [pc, #212] ; (80037a4 <DoKeyDN+0xbc4>)
80036d0: 781b ldrb r3, [r3, #0]
80036d2: b2db uxtb r3, r3
80036d4: 2b09 cmp r3, #9
80036d6: f040 80d1 bne.w 800387c <DoKeyDN+0xc9c>
if(ikd) {
80036da: 68fb ldr r3, [r7, #12]
80036dc: 2b00 cmp r3, #0
80036de: d002 beq.n 80036e6 <DoKeyDN+0xb06>
ikd--;
80036e0: 68fb ldr r3, [r7, #12]
80036e2: 3b01 subs r3, #1
80036e4: 60fb str r3, [r7, #12]
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
80036e6: 69bb ldr r3, [r7, #24]
80036e8: f242 7210 movw r2, #10000 ; 0x2710
80036ec: fb02 f203 mul.w r2, r2, r3
80036f0: 697b ldr r3, [r7, #20]
80036f2: f44f 717a mov.w r1, #1000 ; 0x3e8
80036f6: fb01 f303 mul.w r3, r1, r3
80036fa: 18d1 adds r1, r2, r3
80036fc: 68fa ldr r2, [r7, #12]
80036fe: 4613 mov r3, r2
8003700: 009b lsls r3, r3, #2
8003702: 4413 add r3, r2
8003704: 005b lsls r3, r3, #1
8003706: 4618 mov r0, r3
8003708: 693b ldr r3, [r7, #16]
800370a: 2264 movs r2, #100 ; 0x64
800370c: fb02 f303 mul.w r3, r2, r3
8003710: 4403 add r3, r0
8003712: 18ca adds r2, r1, r3
8003714: 68bb ldr r3, [r7, #8]
8003716: 4413 add r3, r2
8003718: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
800371a: 4b1c ldr r3, [pc, #112] ; (800378c <DoKeyDN+0xbac>)
800371c: 681b ldr r3, [r3, #0]
800371e: 69fa ldr r2, [r7, #28]
8003720: ee07 2a90 vmov s15, r2
8003724: eef8 7a67 vcvt.f32.u32 s15, s15
8003728: 4a19 ldr r2, [pc, #100] ; (8003790 <DoKeyDN+0xbb0>)
800372a: 015b lsls r3, r3, #5
800372c: 4413 add r3, r2
800372e: 3318 adds r3, #24
8003730: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8003734: 687b ldr r3, [r7, #4]
8003736: 2b01 cmp r3, #1
8003738: d112 bne.n 8003760 <DoKeyDN+0xb80>
800373a: 4b14 ldr r3, [pc, #80] ; (800378c <DoKeyDN+0xbac>)
800373c: 681b ldr r3, [r3, #0]
800373e: 4914 ldr r1, [pc, #80] ; (8003790 <DoKeyDN+0xbb0>)
8003740: 015a lsls r2, r3, #5
8003742: 440a add r2, r1
8003744: 3218 adds r2, #24
8003746: edd2 7a00 vldr s15, [r2]
800374a: ed9f 7a17 vldr s14, [pc, #92] ; 80037a8 <DoKeyDN+0xbc8>
800374e: ee67 7a87 vmul.f32 s15, s15, s14
8003752: 4a0f ldr r2, [pc, #60] ; (8003790 <DoKeyDN+0xbb0>)
8003754: 015b lsls r3, r3, #5
8003756: 4413 add r3, r2
8003758: 3318 adds r3, #24
800375a: edc3 7a00 vstr s15, [r3]
800375e: e054 b.n 800380a <DoKeyDN+0xc2a>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8003760: 687b ldr r3, [r7, #4]
8003762: 2b02 cmp r3, #2
8003764: d126 bne.n 80037b4 <DoKeyDN+0xbd4>
8003766: 4b09 ldr r3, [pc, #36] ; (800378c <DoKeyDN+0xbac>)
8003768: 681b ldr r3, [r3, #0]
800376a: 4909 ldr r1, [pc, #36] ; (8003790 <DoKeyDN+0xbb0>)
800376c: 015a lsls r2, r3, #5
800376e: 440a add r2, r1
8003770: 3218 adds r2, #24
8003772: edd2 7a00 vldr s15, [r2]
8003776: ed9f 7a0d vldr s14, [pc, #52] ; 80037ac <DoKeyDN+0xbcc>
800377a: ee67 7a87 vmul.f32 s15, s15, s14
800377e: 4a04 ldr r2, [pc, #16] ; (8003790 <DoKeyDN+0xbb0>)
8003780: 015b lsls r3, r3, #5
8003782: 4413 add r3, r2
8003784: 3318 adds r3, #24
8003786: edc3 7a00 vstr s15, [r3]
800378a: e03e b.n 800380a <DoKeyDN+0xc2a>
800378c: 2006b2d0 .word 0x2006b2d0
8003790: 2006b510 .word 0x2006b510
8003794: 38d1b717 .word 0x38d1b717
8003798: 38d1b717 .word 0x38d1b717
800379c: 47c35000 .word 0x47c35000
80037a0: 47c34f80 .word 0x47c34f80
80037a4: 20020010 .word 0x20020010
80037a8: 3dcccccd .word 0x3dcccccd
80037ac: 3c23d70a .word 0x3c23d70a
80037b0: 3a83126f .word 0x3a83126f
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
80037b4: 687b ldr r3, [r7, #4]
80037b6: 2b03 cmp r3, #3
80037b8: d112 bne.n 80037e0 <DoKeyDN+0xc00>
80037ba: 4bb6 ldr r3, [pc, #728] ; (8003a94 <DoKeyDN+0xeb4>)
80037bc: 681b ldr r3, [r3, #0]
80037be: 49b6 ldr r1, [pc, #728] ; (8003a98 <DoKeyDN+0xeb8>)
80037c0: 015a lsls r2, r3, #5
80037c2: 440a add r2, r1
80037c4: 3218 adds r2, #24
80037c6: edd2 7a00 vldr s15, [r2]
80037ca: ed9f 7ab4 vldr s14, [pc, #720] ; 8003a9c <DoKeyDN+0xebc>
80037ce: ee67 7a87 vmul.f32 s15, s15, s14
80037d2: 4ab1 ldr r2, [pc, #708] ; (8003a98 <DoKeyDN+0xeb8>)
80037d4: 015b lsls r3, r3, #5
80037d6: 4413 add r3, r2
80037d8: 3318 adds r3, #24
80037da: edc3 7a00 vstr s15, [r3]
80037de: e014 b.n 800380a <DoKeyDN+0xc2a>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
80037e0: 687b ldr r3, [r7, #4]
80037e2: 2b04 cmp r3, #4
80037e4: d111 bne.n 800380a <DoKeyDN+0xc2a>
80037e6: 4bab ldr r3, [pc, #684] ; (8003a94 <DoKeyDN+0xeb4>)
80037e8: 681b ldr r3, [r3, #0]
80037ea: 49ab ldr r1, [pc, #684] ; (8003a98 <DoKeyDN+0xeb8>)
80037ec: 015a lsls r2, r3, #5
80037ee: 440a add r2, r1
80037f0: 3218 adds r2, #24
80037f2: edd2 7a00 vldr s15, [r2]
80037f6: ed9f 7aaa vldr s14, [pc, #680] ; 8003aa0 <DoKeyDN+0xec0>
80037fa: ee67 7a87 vmul.f32 s15, s15, s14
80037fe: 4aa6 ldr r2, [pc, #664] ; (8003a98 <DoKeyDN+0xeb8>)
8003800: 015b lsls r3, r3, #5
8003802: 4413 add r3, r2
8003804: 3318 adds r3, #24
8003806: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
800380a: 4ba2 ldr r3, [pc, #648] ; (8003a94 <DoKeyDN+0xeb4>)
800380c: 681b ldr r3, [r3, #0]
800380e: 4aa2 ldr r2, [pc, #648] ; (8003a98 <DoKeyDN+0xeb8>)
8003810: 015b lsls r3, r3, #5
8003812: 4413 add r3, r2
8003814: 3318 adds r3, #24
8003816: edd3 7a00 vldr s15, [r3]
800381a: eef5 7ac0 vcmpe.f32 s15, #0.0
800381e: eef1 fa10 vmrs APSR_nzcv, fpscr
8003822: d807 bhi.n 8003834 <DoKeyDN+0xc54>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
8003824: 4b9b ldr r3, [pc, #620] ; (8003a94 <DoKeyDN+0xeb4>)
8003826: 681b ldr r3, [r3, #0]
8003828: 4a9b ldr r2, [pc, #620] ; (8003a98 <DoKeyDN+0xeb8>)
800382a: 015b lsls r3, r3, #5
800382c: 4413 add r3, r2
800382e: 3318 adds r3, #24
8003830: 4a9c ldr r2, [pc, #624] ; (8003aa4 <DoKeyDN+0xec4>)
8003832: 601a str r2, [r3, #0]
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8003834: 4b97 ldr r3, [pc, #604] ; (8003a94 <DoKeyDN+0xeb4>)
8003836: 681b ldr r3, [r3, #0]
8003838: 4a97 ldr r2, [pc, #604] ; (8003a98 <DoKeyDN+0xeb8>)
800383a: 015b lsls r3, r3, #5
800383c: 4413 add r3, r2
800383e: 3318 adds r3, #24
8003840: edd3 7a00 vldr s15, [r3]
8003844: ed9f 7a98 vldr s14, [pc, #608] ; 8003aa8 <DoKeyDN+0xec8>
8003848: eef4 7ac7 vcmpe.f32 s15, s14
800384c: eef1 fa10 vmrs APSR_nzcv, fpscr
8003850: db07 blt.n 8003862 <DoKeyDN+0xc82>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
8003852: 4b90 ldr r3, [pc, #576] ; (8003a94 <DoKeyDN+0xeb4>)
8003854: 681b ldr r3, [r3, #0]
8003856: 4a90 ldr r2, [pc, #576] ; (8003a98 <DoKeyDN+0xeb8>)
8003858: 015b lsls r3, r3, #5
800385a: 4413 add r3, r2
800385c: 3318 adds r3, #24
800385e: 4a93 ldr r2, [pc, #588] ; (8003aac <DoKeyDN+0xecc>)
8003860: 601a str r2, [r3, #0]
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
8003862: 4b8c ldr r3, [pc, #560] ; (8003a94 <DoKeyDN+0xeb4>)
8003864: 681b ldr r3, [r3, #0]
8003866: 4a8c ldr r2, [pc, #560] ; (8003a98 <DoKeyDN+0xeb8>)
8003868: 015b lsls r3, r3, #5
800386a: 4413 add r3, r2
800386c: 3318 adds r3, #24
800386e: edd3 7a00 vldr s15, [r3]
8003872: eeb0 0a67 vmov.f32 s0, s15
8003876: f000 f9af bl 8003bd8 <VerifyGain>
}
800387a: e198 b.n 8003bae <DoKeyDN+0xfce>
if(menupos == Kike)
800387c: 4b8c ldr r3, [pc, #560] ; (8003ab0 <DoKeyDN+0xed0>)
800387e: 781b ldrb r3, [r3, #0]
8003880: b2db uxtb r3, r3
8003882: 2b0a cmp r3, #10
8003884: f040 80bd bne.w 8003a02 <DoKeyDN+0xe22>
if(ike) {
8003888: 68bb ldr r3, [r7, #8]
800388a: 2b00 cmp r3, #0
800388c: d002 beq.n 8003894 <DoKeyDN+0xcb4>
ike--;
800388e: 68bb ldr r3, [r7, #8]
8003890: 3b01 subs r3, #1
8003892: 60bb str r3, [r7, #8]
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
8003894: 69bb ldr r3, [r7, #24]
8003896: f242 7210 movw r2, #10000 ; 0x2710
800389a: fb02 f203 mul.w r2, r2, r3
800389e: 697b ldr r3, [r7, #20]
80038a0: f44f 717a mov.w r1, #1000 ; 0x3e8
80038a4: fb01 f303 mul.w r3, r1, r3
80038a8: 18d1 adds r1, r2, r3
80038aa: 68fa ldr r2, [r7, #12]
80038ac: 4613 mov r3, r2
80038ae: 009b lsls r3, r3, #2
80038b0: 4413 add r3, r2
80038b2: 005b lsls r3, r3, #1
80038b4: 4618 mov r0, r3
80038b6: 693b ldr r3, [r7, #16]
80038b8: 2264 movs r2, #100 ; 0x64
80038ba: fb02 f303 mul.w r3, r2, r3
80038be: 4403 add r3, r0
80038c0: 18ca adds r2, r1, r3
80038c2: 68bb ldr r3, [r7, #8]
80038c4: 4413 add r3, r2
80038c6: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
80038c8: 4b72 ldr r3, [pc, #456] ; (8003a94 <DoKeyDN+0xeb4>)
80038ca: 681b ldr r3, [r3, #0]
80038cc: 69fa ldr r2, [r7, #28]
80038ce: ee07 2a90 vmov s15, r2
80038d2: eef8 7a67 vcvt.f32.u32 s15, s15
80038d6: 4a70 ldr r2, [pc, #448] ; (8003a98 <DoKeyDN+0xeb8>)
80038d8: 015b lsls r3, r3, #5
80038da: 4413 add r3, r2
80038dc: 3318 adds r3, #24
80038de: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
80038e2: 687b ldr r3, [r7, #4]
80038e4: 2b01 cmp r3, #1
80038e6: d112 bne.n 800390e <DoKeyDN+0xd2e>
80038e8: 4b6a ldr r3, [pc, #424] ; (8003a94 <DoKeyDN+0xeb4>)
80038ea: 681b ldr r3, [r3, #0]
80038ec: 496a ldr r1, [pc, #424] ; (8003a98 <DoKeyDN+0xeb8>)
80038ee: 015a lsls r2, r3, #5
80038f0: 440a add r2, r1
80038f2: 3218 adds r2, #24
80038f4: edd2 7a00 vldr s15, [r2]
80038f8: ed9f 7a6e vldr s14, [pc, #440] ; 8003ab4 <DoKeyDN+0xed4>
80038fc: ee67 7a87 vmul.f32 s15, s15, s14
8003900: 4a65 ldr r2, [pc, #404] ; (8003a98 <DoKeyDN+0xeb8>)
8003902: 015b lsls r3, r3, #5
8003904: 4413 add r3, r2
8003906: 3318 adds r3, #24
8003908: edc3 7a00 vstr s15, [r3]
800390c: e040 b.n 8003990 <DoKeyDN+0xdb0>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
800390e: 687b ldr r3, [r7, #4]
8003910: 2b02 cmp r3, #2
8003912: d112 bne.n 800393a <DoKeyDN+0xd5a>
8003914: 4b5f ldr r3, [pc, #380] ; (8003a94 <DoKeyDN+0xeb4>)
8003916: 681b ldr r3, [r3, #0]
8003918: 495f ldr r1, [pc, #380] ; (8003a98 <DoKeyDN+0xeb8>)
800391a: 015a lsls r2, r3, #5
800391c: 440a add r2, r1
800391e: 3218 adds r2, #24
8003920: edd2 7a00 vldr s15, [r2]
8003924: ed9f 7a64 vldr s14, [pc, #400] ; 8003ab8 <DoKeyDN+0xed8>
8003928: ee67 7a87 vmul.f32 s15, s15, s14
800392c: 4a5a ldr r2, [pc, #360] ; (8003a98 <DoKeyDN+0xeb8>)
800392e: 015b lsls r3, r3, #5
8003930: 4413 add r3, r2
8003932: 3318 adds r3, #24
8003934: edc3 7a00 vstr s15, [r3]
8003938: e02a b.n 8003990 <DoKeyDN+0xdb0>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
800393a: 687b ldr r3, [r7, #4]
800393c: 2b03 cmp r3, #3
800393e: d112 bne.n 8003966 <DoKeyDN+0xd86>
8003940: 4b54 ldr r3, [pc, #336] ; (8003a94 <DoKeyDN+0xeb4>)
8003942: 681b ldr r3, [r3, #0]
8003944: 4954 ldr r1, [pc, #336] ; (8003a98 <DoKeyDN+0xeb8>)
8003946: 015a lsls r2, r3, #5
8003948: 440a add r2, r1
800394a: 3218 adds r2, #24
800394c: edd2 7a00 vldr s15, [r2]
8003950: ed9f 7a52 vldr s14, [pc, #328] ; 8003a9c <DoKeyDN+0xebc>
8003954: ee67 7a87 vmul.f32 s15, s15, s14
8003958: 4a4f ldr r2, [pc, #316] ; (8003a98 <DoKeyDN+0xeb8>)
800395a: 015b lsls r3, r3, #5
800395c: 4413 add r3, r2
800395e: 3318 adds r3, #24
8003960: edc3 7a00 vstr s15, [r3]
8003964: e014 b.n 8003990 <DoKeyDN+0xdb0>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8003966: 687b ldr r3, [r7, #4]
8003968: 2b04 cmp r3, #4
800396a: d111 bne.n 8003990 <DoKeyDN+0xdb0>
800396c: 4b49 ldr r3, [pc, #292] ; (8003a94 <DoKeyDN+0xeb4>)
800396e: 681b ldr r3, [r3, #0]
8003970: 4949 ldr r1, [pc, #292] ; (8003a98 <DoKeyDN+0xeb8>)
8003972: 015a lsls r2, r3, #5
8003974: 440a add r2, r1
8003976: 3218 adds r2, #24
8003978: edd2 7a00 vldr s15, [r2]
800397c: ed9f 7a48 vldr s14, [pc, #288] ; 8003aa0 <DoKeyDN+0xec0>
8003980: ee67 7a87 vmul.f32 s15, s15, s14
8003984: 4a44 ldr r2, [pc, #272] ; (8003a98 <DoKeyDN+0xeb8>)
8003986: 015b lsls r3, r3, #5
8003988: 4413 add r3, r2
800398a: 3318 adds r3, #24
800398c: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
8003990: 4b40 ldr r3, [pc, #256] ; (8003a94 <DoKeyDN+0xeb4>)
8003992: 681b ldr r3, [r3, #0]
8003994: 4a40 ldr r2, [pc, #256] ; (8003a98 <DoKeyDN+0xeb8>)
8003996: 015b lsls r3, r3, #5
8003998: 4413 add r3, r2
800399a: 3318 adds r3, #24
800399c: edd3 7a00 vldr s15, [r3]
80039a0: eef5 7ac0 vcmpe.f32 s15, #0.0
80039a4: eef1 fa10 vmrs APSR_nzcv, fpscr
80039a8: d807 bhi.n 80039ba <DoKeyDN+0xdda>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
80039aa: 4b3a ldr r3, [pc, #232] ; (8003a94 <DoKeyDN+0xeb4>)
80039ac: 681b ldr r3, [r3, #0]
80039ae: 4a3a ldr r2, [pc, #232] ; (8003a98 <DoKeyDN+0xeb8>)
80039b0: 015b lsls r3, r3, #5
80039b2: 4413 add r3, r2
80039b4: 3318 adds r3, #24
80039b6: 4a3b ldr r2, [pc, #236] ; (8003aa4 <DoKeyDN+0xec4>)
80039b8: 601a str r2, [r3, #0]
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
80039ba: 4b36 ldr r3, [pc, #216] ; (8003a94 <DoKeyDN+0xeb4>)
80039bc: 681b ldr r3, [r3, #0]
80039be: 4a36 ldr r2, [pc, #216] ; (8003a98 <DoKeyDN+0xeb8>)
80039c0: 015b lsls r3, r3, #5
80039c2: 4413 add r3, r2
80039c4: 3318 adds r3, #24
80039c6: edd3 7a00 vldr s15, [r3]
80039ca: ed9f 7a37 vldr s14, [pc, #220] ; 8003aa8 <DoKeyDN+0xec8>
80039ce: eef4 7ac7 vcmpe.f32 s15, s14
80039d2: eef1 fa10 vmrs APSR_nzcv, fpscr
80039d6: db07 blt.n 80039e8 <DoKeyDN+0xe08>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
80039d8: 4b2e ldr r3, [pc, #184] ; (8003a94 <DoKeyDN+0xeb4>)
80039da: 681b ldr r3, [r3, #0]
80039dc: 4a2e ldr r2, [pc, #184] ; (8003a98 <DoKeyDN+0xeb8>)
80039de: 015b lsls r3, r3, #5
80039e0: 4413 add r3, r2
80039e2: 3318 adds r3, #24
80039e4: 4a31 ldr r2, [pc, #196] ; (8003aac <DoKeyDN+0xecc>)
80039e6: 601a str r2, [r3, #0]
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
80039e8: 4b2a ldr r3, [pc, #168] ; (8003a94 <DoKeyDN+0xeb4>)
80039ea: 681b ldr r3, [r3, #0]
80039ec: 4a2a ldr r2, [pc, #168] ; (8003a98 <DoKeyDN+0xeb8>)
80039ee: 015b lsls r3, r3, #5
80039f0: 4413 add r3, r2
80039f2: 3318 adds r3, #24
80039f4: edd3 7a00 vldr s15, [r3]
80039f8: eeb0 0a67 vmov.f32 s0, s15
80039fc: f000 f8ec bl 8003bd8 <VerifyGain>
}
8003a00: e0d5 b.n 8003bae <DoKeyDN+0xfce>
if(menupos == Kpt)
8003a02: 4b2b ldr r3, [pc, #172] ; (8003ab0 <DoKeyDN+0xed0>)
8003a04: 781b ldrb r3, [r3, #0]
8003a06: b2db uxtb r3, r3
8003a08: 2b0b cmp r3, #11
8003a0a: f040 80d0 bne.w 8003bae <DoKeyDN+0xfce>
if(ipt < 4) {
8003a0e: 687b ldr r3, [r7, #4]
8003a10: 2b03 cmp r3, #3
8003a12: d802 bhi.n 8003a1a <DoKeyDN+0xe3a>
ipt++;
8003a14: 687b ldr r3, [r7, #4]
8003a16: 3301 adds r3, #1
8003a18: 607b str r3, [r7, #4]
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
8003a1a: 69bb ldr r3, [r7, #24]
8003a1c: f242 7210 movw r2, #10000 ; 0x2710
8003a20: fb02 f203 mul.w r2, r2, r3
8003a24: 697b ldr r3, [r7, #20]
8003a26: f44f 717a mov.w r1, #1000 ; 0x3e8
8003a2a: fb01 f303 mul.w r3, r1, r3
8003a2e: 18d1 adds r1, r2, r3
8003a30: 68fa ldr r2, [r7, #12]
8003a32: 4613 mov r3, r2
8003a34: 009b lsls r3, r3, #2
8003a36: 4413 add r3, r2
8003a38: 005b lsls r3, r3, #1
8003a3a: 4618 mov r0, r3
8003a3c: 693b ldr r3, [r7, #16]
8003a3e: 2264 movs r2, #100 ; 0x64
8003a40: fb02 f303 mul.w r3, r2, r3
8003a44: 4403 add r3, r0
8003a46: 18ca adds r2, r1, r3
8003a48: 68bb ldr r3, [r7, #8]
8003a4a: 4413 add r3, r2
8003a4c: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
8003a4e: 4b11 ldr r3, [pc, #68] ; (8003a94 <DoKeyDN+0xeb4>)
8003a50: 681b ldr r3, [r3, #0]
8003a52: 69fa ldr r2, [r7, #28]
8003a54: ee07 2a90 vmov s15, r2
8003a58: eef8 7a67 vcvt.f32.u32 s15, s15
8003a5c: 4a0e ldr r2, [pc, #56] ; (8003a98 <DoKeyDN+0xeb8>)
8003a5e: 015b lsls r3, r3, #5
8003a60: 4413 add r3, r2
8003a62: 3318 adds r3, #24
8003a64: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8003a68: 687b ldr r3, [r7, #4]
8003a6a: 2b01 cmp r3, #1
8003a6c: d126 bne.n 8003abc <DoKeyDN+0xedc>
8003a6e: 4b09 ldr r3, [pc, #36] ; (8003a94 <DoKeyDN+0xeb4>)
8003a70: 681b ldr r3, [r3, #0]
8003a72: 4909 ldr r1, [pc, #36] ; (8003a98 <DoKeyDN+0xeb8>)
8003a74: 015a lsls r2, r3, #5
8003a76: 440a add r2, r1
8003a78: 3218 adds r2, #24
8003a7a: edd2 7a00 vldr s15, [r2]
8003a7e: ed9f 7a0d vldr s14, [pc, #52] ; 8003ab4 <DoKeyDN+0xed4>
8003a82: ee67 7a87 vmul.f32 s15, s15, s14
8003a86: 4a04 ldr r2, [pc, #16] ; (8003a98 <DoKeyDN+0xeb8>)
8003a88: 015b lsls r3, r3, #5
8003a8a: 4413 add r3, r2
8003a8c: 3318 adds r3, #24
8003a8e: edc3 7a00 vstr s15, [r3]
8003a92: e054 b.n 8003b3e <DoKeyDN+0xf5e>
8003a94: 2006b2d0 .word 0x2006b2d0
8003a98: 2006b510 .word 0x2006b510
8003a9c: 3a83126f .word 0x3a83126f
8003aa0: 38d1b717 .word 0x38d1b717
8003aa4: 38d1b717 .word 0x38d1b717
8003aa8: 47c35000 .word 0x47c35000
8003aac: 47c34f80 .word 0x47c34f80
8003ab0: 20020010 .word 0x20020010
8003ab4: 3dcccccd .word 0x3dcccccd
8003ab8: 3c23d70a .word 0x3c23d70a
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8003abc: 687b ldr r3, [r7, #4]
8003abe: 2b02 cmp r3, #2
8003ac0: d112 bne.n 8003ae8 <DoKeyDN+0xf08>
8003ac2: 4b3d ldr r3, [pc, #244] ; (8003bb8 <DoKeyDN+0xfd8>)
8003ac4: 681b ldr r3, [r3, #0]
8003ac6: 493d ldr r1, [pc, #244] ; (8003bbc <DoKeyDN+0xfdc>)
8003ac8: 015a lsls r2, r3, #5
8003aca: 440a add r2, r1
8003acc: 3218 adds r2, #24
8003ace: edd2 7a00 vldr s15, [r2]
8003ad2: ed9f 7a3b vldr s14, [pc, #236] ; 8003bc0 <DoKeyDN+0xfe0>
8003ad6: ee67 7a87 vmul.f32 s15, s15, s14
8003ada: 4a38 ldr r2, [pc, #224] ; (8003bbc <DoKeyDN+0xfdc>)
8003adc: 015b lsls r3, r3, #5
8003ade: 4413 add r3, r2
8003ae0: 3318 adds r3, #24
8003ae2: edc3 7a00 vstr s15, [r3]
8003ae6: e02a b.n 8003b3e <DoKeyDN+0xf5e>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8003ae8: 687b ldr r3, [r7, #4]
8003aea: 2b03 cmp r3, #3
8003aec: d112 bne.n 8003b14 <DoKeyDN+0xf34>
8003aee: 4b32 ldr r3, [pc, #200] ; (8003bb8 <DoKeyDN+0xfd8>)
8003af0: 681b ldr r3, [r3, #0]
8003af2: 4932 ldr r1, [pc, #200] ; (8003bbc <DoKeyDN+0xfdc>)
8003af4: 015a lsls r2, r3, #5
8003af6: 440a add r2, r1
8003af8: 3218 adds r2, #24
8003afa: edd2 7a00 vldr s15, [r2]
8003afe: ed9f 7a31 vldr s14, [pc, #196] ; 8003bc4 <DoKeyDN+0xfe4>
8003b02: ee67 7a87 vmul.f32 s15, s15, s14
8003b06: 4a2d ldr r2, [pc, #180] ; (8003bbc <DoKeyDN+0xfdc>)
8003b08: 015b lsls r3, r3, #5
8003b0a: 4413 add r3, r2
8003b0c: 3318 adds r3, #24
8003b0e: edc3 7a00 vstr s15, [r3]
8003b12: e014 b.n 8003b3e <DoKeyDN+0xf5e>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8003b14: 687b ldr r3, [r7, #4]
8003b16: 2b04 cmp r3, #4
8003b18: d111 bne.n 8003b3e <DoKeyDN+0xf5e>
8003b1a: 4b27 ldr r3, [pc, #156] ; (8003bb8 <DoKeyDN+0xfd8>)
8003b1c: 681b ldr r3, [r3, #0]
8003b1e: 4927 ldr r1, [pc, #156] ; (8003bbc <DoKeyDN+0xfdc>)
8003b20: 015a lsls r2, r3, #5
8003b22: 440a add r2, r1
8003b24: 3218 adds r2, #24
8003b26: edd2 7a00 vldr s15, [r2]
8003b2a: ed9f 7a27 vldr s14, [pc, #156] ; 8003bc8 <DoKeyDN+0xfe8>
8003b2e: ee67 7a87 vmul.f32 s15, s15, s14
8003b32: 4a22 ldr r2, [pc, #136] ; (8003bbc <DoKeyDN+0xfdc>)
8003b34: 015b lsls r3, r3, #5
8003b36: 4413 add r3, r2
8003b38: 3318 adds r3, #24
8003b3a: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
8003b3e: 4b1e ldr r3, [pc, #120] ; (8003bb8 <DoKeyDN+0xfd8>)
8003b40: 681b ldr r3, [r3, #0]
8003b42: 4a1e ldr r2, [pc, #120] ; (8003bbc <DoKeyDN+0xfdc>)
8003b44: 015b lsls r3, r3, #5
8003b46: 4413 add r3, r2
8003b48: 3318 adds r3, #24
8003b4a: edd3 7a00 vldr s15, [r3]
8003b4e: eef5 7ac0 vcmpe.f32 s15, #0.0
8003b52: eef1 fa10 vmrs APSR_nzcv, fpscr
8003b56: d807 bhi.n 8003b68 <DoKeyDN+0xf88>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
8003b58: 4b17 ldr r3, [pc, #92] ; (8003bb8 <DoKeyDN+0xfd8>)
8003b5a: 681b ldr r3, [r3, #0]
8003b5c: 4a17 ldr r2, [pc, #92] ; (8003bbc <DoKeyDN+0xfdc>)
8003b5e: 015b lsls r3, r3, #5
8003b60: 4413 add r3, r2
8003b62: 3318 adds r3, #24
8003b64: 4a19 ldr r2, [pc, #100] ; (8003bcc <DoKeyDN+0xfec>)
8003b66: 601a str r2, [r3, #0]
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8003b68: 4b13 ldr r3, [pc, #76] ; (8003bb8 <DoKeyDN+0xfd8>)
8003b6a: 681b ldr r3, [r3, #0]
8003b6c: 4a13 ldr r2, [pc, #76] ; (8003bbc <DoKeyDN+0xfdc>)
8003b6e: 015b lsls r3, r3, #5
8003b70: 4413 add r3, r2
8003b72: 3318 adds r3, #24
8003b74: edd3 7a00 vldr s15, [r3]
8003b78: ed9f 7a15 vldr s14, [pc, #84] ; 8003bd0 <DoKeyDN+0xff0>
8003b7c: eef4 7ac7 vcmpe.f32 s15, s14
8003b80: eef1 fa10 vmrs APSR_nzcv, fpscr
8003b84: db07 blt.n 8003b96 <DoKeyDN+0xfb6>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
8003b86: 4b0c ldr r3, [pc, #48] ; (8003bb8 <DoKeyDN+0xfd8>)
8003b88: 681b ldr r3, [r3, #0]
8003b8a: 4a0c ldr r2, [pc, #48] ; (8003bbc <DoKeyDN+0xfdc>)
8003b8c: 015b lsls r3, r3, #5
8003b8e: 4413 add r3, r2
8003b90: 3318 adds r3, #24
8003b92: 4a10 ldr r2, [pc, #64] ; (8003bd4 <DoKeyDN+0xff4>)
8003b94: 601a str r2, [r3, #0]
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
8003b96: 4b08 ldr r3, [pc, #32] ; (8003bb8 <DoKeyDN+0xfd8>)
8003b98: 681b ldr r3, [r3, #0]
8003b9a: 4a08 ldr r2, [pc, #32] ; (8003bbc <DoKeyDN+0xfdc>)
8003b9c: 015b lsls r3, r3, #5
8003b9e: 4413 add r3, r2
8003ba0: 3318 adds r3, #24
8003ba2: edd3 7a00 vldr s15, [r3]
8003ba6: eeb0 0a67 vmov.f32 s0, s15
8003baa: f000 f815 bl 8003bd8 <VerifyGain>
}
8003bae: bf00 nop
8003bb0: 3720 adds r7, #32
8003bb2: 46bd mov sp, r7
8003bb4: bd80 pop {r7, pc}
8003bb6: bf00 nop
8003bb8: 2006b2d0 .word 0x2006b2d0
8003bbc: 2006b510 .word 0x2006b510
8003bc0: 3c23d70a .word 0x3c23d70a
8003bc4: 3a83126f .word 0x3a83126f
8003bc8: 38d1b717 .word 0x38d1b717
8003bcc: 38d1b717 .word 0x38d1b717
8003bd0: 47c35000 .word 0x47c35000
8003bd4: 47c34f80 .word 0x47c34f80
08003bd8 <VerifyGain>:
void VerifyGain(float32_t sens)
{
8003bd8: b480 push {r7}
8003bda: b083 sub sp, #12
8003bdc: af00 add r7, sp, #0
8003bde: ed87 0a01 vstr s0, [r7, #4]
if(sens <= 0.0010f) //0.001
8003be2: edd7 7a01 vldr s15, [r7, #4]
8003be6: ed9f 7aac vldr s14, [pc, #688] ; 8003e98 <VerifyGain+0x2c0>
8003bea: eef4 7ac7 vcmpe.f32 s15, s14
8003bee: eef1 fa10 vmrs APSR_nzcv, fpscr
8003bf2: d813 bhi.n 8003c1c <VerifyGain+0x44>
{
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku1000)
8003bf4: 4ba9 ldr r3, [pc, #676] ; (8003e9c <VerifyGain+0x2c4>)
8003bf6: 681b ldr r3, [r3, #0]
8003bf8: 4aa9 ldr r2, [pc, #676] ; (8003ea0 <VerifyGain+0x2c8>)
8003bfa: 015b lsls r3, r3, #5
8003bfc: 4413 add r3, r2
8003bfe: 3306 adds r3, #6
8003c00: 881b ldrh r3, [r3, #0]
8003c02: b29b uxth r3, r3
8003c04: 2b0c cmp r3, #12
8003c06: f240 8199 bls.w 8003f3c <VerifyGain+0x364>
{
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku1000;
8003c0a: 4ba4 ldr r3, [pc, #656] ; (8003e9c <VerifyGain+0x2c4>)
8003c0c: 681b ldr r3, [r3, #0]
8003c0e: 4aa4 ldr r2, [pc, #656] ; (8003ea0 <VerifyGain+0x2c8>)
8003c10: 015b lsls r3, r3, #5
8003c12: 4413 add r3, r2
8003c14: 3306 adds r3, #6
8003c16: 220c movs r2, #12
8003c18: 801a strh r2, [r3, #0]
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku0_1)
{
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku0_1;
}
}
}
8003c1a: e18f b.n 8003f3c <VerifyGain+0x364>
if(/*sens >= 0.0011f && */sens <= 10.000f) //0.002
8003c1c: edd7 7a01 vldr s15, [r7, #4]
8003c20: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8003c24: eef4 7ac7 vcmpe.f32 s15, s14
8003c28: eef1 fa10 vmrs APSR_nzcv, fpscr
8003c2c: d813 bhi.n 8003c56 <VerifyGain+0x7e>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku1000)
8003c2e: 4b9b ldr r3, [pc, #620] ; (8003e9c <VerifyGain+0x2c4>)
8003c30: 681b ldr r3, [r3, #0]
8003c32: 4a9b ldr r2, [pc, #620] ; (8003ea0 <VerifyGain+0x2c8>)
8003c34: 015b lsls r3, r3, #5
8003c36: 4413 add r3, r2
8003c38: 3306 adds r3, #6
8003c3a: 881b ldrh r3, [r3, #0]
8003c3c: b29b uxth r3, r3
8003c3e: 2b0c cmp r3, #12
8003c40: f240 817c bls.w 8003f3c <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku1000;
8003c44: 4b95 ldr r3, [pc, #596] ; (8003e9c <VerifyGain+0x2c4>)
8003c46: 681b ldr r3, [r3, #0]
8003c48: 4a95 ldr r2, [pc, #596] ; (8003ea0 <VerifyGain+0x2c8>)
8003c4a: 015b lsls r3, r3, #5
8003c4c: 4413 add r3, r2
8003c4e: 3306 adds r3, #6
8003c50: 220c movs r2, #12
8003c52: 801a strh r2, [r3, #0]
}
8003c54: e172 b.n 8003f3c <VerifyGain+0x364>
if(/*sens >= 10.001f && */sens <= 20.000f) //20
8003c56: edd7 7a01 vldr s15, [r7, #4]
8003c5a: eeb3 7a04 vmov.f32 s14, #52 ; 0x41a00000 20.0
8003c5e: eef4 7ac7 vcmpe.f32 s15, s14
8003c62: eef1 fa10 vmrs APSR_nzcv, fpscr
8003c66: d813 bhi.n 8003c90 <VerifyGain+0xb8>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku500)
8003c68: 4b8c ldr r3, [pc, #560] ; (8003e9c <VerifyGain+0x2c4>)
8003c6a: 681b ldr r3, [r3, #0]
8003c6c: 4a8c ldr r2, [pc, #560] ; (8003ea0 <VerifyGain+0x2c8>)
8003c6e: 015b lsls r3, r3, #5
8003c70: 4413 add r3, r2
8003c72: 3306 adds r3, #6
8003c74: 881b ldrh r3, [r3, #0]
8003c76: b29b uxth r3, r3
8003c78: 2b0b cmp r3, #11
8003c7a: f240 815f bls.w 8003f3c <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku500;
8003c7e: 4b87 ldr r3, [pc, #540] ; (8003e9c <VerifyGain+0x2c4>)
8003c80: 681b ldr r3, [r3, #0]
8003c82: 4a87 ldr r2, [pc, #540] ; (8003ea0 <VerifyGain+0x2c8>)
8003c84: 015b lsls r3, r3, #5
8003c86: 4413 add r3, r2
8003c88: 3306 adds r3, #6
8003c8a: 220b movs r2, #11
8003c8c: 801a strh r2, [r3, #0]
}
8003c8e: e155 b.n 8003f3c <VerifyGain+0x364>
if(/*sens >= 20.001f && */sens <= 50.000f) //50
8003c90: edd7 7a01 vldr s15, [r7, #4]
8003c94: ed9f 7a83 vldr s14, [pc, #524] ; 8003ea4 <VerifyGain+0x2cc>
8003c98: eef4 7ac7 vcmpe.f32 s15, s14
8003c9c: eef1 fa10 vmrs APSR_nzcv, fpscr
8003ca0: d813 bhi.n 8003cca <VerifyGain+0xf2>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku200)
8003ca2: 4b7e ldr r3, [pc, #504] ; (8003e9c <VerifyGain+0x2c4>)
8003ca4: 681b ldr r3, [r3, #0]
8003ca6: 4a7e ldr r2, [pc, #504] ; (8003ea0 <VerifyGain+0x2c8>)
8003ca8: 015b lsls r3, r3, #5
8003caa: 4413 add r3, r2
8003cac: 3306 adds r3, #6
8003cae: 881b ldrh r3, [r3, #0]
8003cb0: b29b uxth r3, r3
8003cb2: 2b0a cmp r3, #10
8003cb4: f240 8142 bls.w 8003f3c <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku200;
8003cb8: 4b78 ldr r3, [pc, #480] ; (8003e9c <VerifyGain+0x2c4>)
8003cba: 681b ldr r3, [r3, #0]
8003cbc: 4a78 ldr r2, [pc, #480] ; (8003ea0 <VerifyGain+0x2c8>)
8003cbe: 015b lsls r3, r3, #5
8003cc0: 4413 add r3, r2
8003cc2: 3306 adds r3, #6
8003cc4: 220a movs r2, #10
8003cc6: 801a strh r2, [r3, #0]
}
8003cc8: e138 b.n 8003f3c <VerifyGain+0x364>
if(/*sens >= 50.001f && */sens <= 100.00f) //100
8003cca: edd7 7a01 vldr s15, [r7, #4]
8003cce: ed9f 7a76 vldr s14, [pc, #472] ; 8003ea8 <VerifyGain+0x2d0>
8003cd2: eef4 7ac7 vcmpe.f32 s15, s14
8003cd6: eef1 fa10 vmrs APSR_nzcv, fpscr
8003cda: d813 bhi.n 8003d04 <VerifyGain+0x12c>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku100)
8003cdc: 4b6f ldr r3, [pc, #444] ; (8003e9c <VerifyGain+0x2c4>)
8003cde: 681b ldr r3, [r3, #0]
8003ce0: 4a6f ldr r2, [pc, #444] ; (8003ea0 <VerifyGain+0x2c8>)
8003ce2: 015b lsls r3, r3, #5
8003ce4: 4413 add r3, r2
8003ce6: 3306 adds r3, #6
8003ce8: 881b ldrh r3, [r3, #0]
8003cea: b29b uxth r3, r3
8003cec: 2b09 cmp r3, #9
8003cee: f240 8125 bls.w 8003f3c <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku100;
8003cf2: 4b6a ldr r3, [pc, #424] ; (8003e9c <VerifyGain+0x2c4>)
8003cf4: 681b ldr r3, [r3, #0]
8003cf6: 4a6a ldr r2, [pc, #424] ; (8003ea0 <VerifyGain+0x2c8>)
8003cf8: 015b lsls r3, r3, #5
8003cfa: 4413 add r3, r2
8003cfc: 3306 adds r3, #6
8003cfe: 2209 movs r2, #9
8003d00: 801a strh r2, [r3, #0]
}
8003d02: e11b b.n 8003f3c <VerifyGain+0x364>
if(/*sens >= 100.01f && */sens <= 200.00f) //200
8003d04: edd7 7a01 vldr s15, [r7, #4]
8003d08: ed9f 7a68 vldr s14, [pc, #416] ; 8003eac <VerifyGain+0x2d4>
8003d0c: eef4 7ac7 vcmpe.f32 s15, s14
8003d10: eef1 fa10 vmrs APSR_nzcv, fpscr
8003d14: d813 bhi.n 8003d3e <VerifyGain+0x166>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku50)
8003d16: 4b61 ldr r3, [pc, #388] ; (8003e9c <VerifyGain+0x2c4>)
8003d18: 681b ldr r3, [r3, #0]
8003d1a: 4a61 ldr r2, [pc, #388] ; (8003ea0 <VerifyGain+0x2c8>)
8003d1c: 015b lsls r3, r3, #5
8003d1e: 4413 add r3, r2
8003d20: 3306 adds r3, #6
8003d22: 881b ldrh r3, [r3, #0]
8003d24: b29b uxth r3, r3
8003d26: 2b08 cmp r3, #8
8003d28: f240 8108 bls.w 8003f3c <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku50;
8003d2c: 4b5b ldr r3, [pc, #364] ; (8003e9c <VerifyGain+0x2c4>)
8003d2e: 681b ldr r3, [r3, #0]
8003d30: 4a5b ldr r2, [pc, #364] ; (8003ea0 <VerifyGain+0x2c8>)
8003d32: 015b lsls r3, r3, #5
8003d34: 4413 add r3, r2
8003d36: 3306 adds r3, #6
8003d38: 2208 movs r2, #8
8003d3a: 801a strh r2, [r3, #0]
}
8003d3c: e0fe b.n 8003f3c <VerifyGain+0x364>
if(/*sens >= 200.01f && */sens <= 500.00f) //500
8003d3e: edd7 7a01 vldr s15, [r7, #4]
8003d42: ed9f 7a5b vldr s14, [pc, #364] ; 8003eb0 <VerifyGain+0x2d8>
8003d46: eef4 7ac7 vcmpe.f32 s15, s14
8003d4a: eef1 fa10 vmrs APSR_nzcv, fpscr
8003d4e: d813 bhi.n 8003d78 <VerifyGain+0x1a0>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku20)
8003d50: 4b52 ldr r3, [pc, #328] ; (8003e9c <VerifyGain+0x2c4>)
8003d52: 681b ldr r3, [r3, #0]
8003d54: 4a52 ldr r2, [pc, #328] ; (8003ea0 <VerifyGain+0x2c8>)
8003d56: 015b lsls r3, r3, #5
8003d58: 4413 add r3, r2
8003d5a: 3306 adds r3, #6
8003d5c: 881b ldrh r3, [r3, #0]
8003d5e: b29b uxth r3, r3
8003d60: 2b07 cmp r3, #7
8003d62: f240 80eb bls.w 8003f3c <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku20;
8003d66: 4b4d ldr r3, [pc, #308] ; (8003e9c <VerifyGain+0x2c4>)
8003d68: 681b ldr r3, [r3, #0]
8003d6a: 4a4d ldr r2, [pc, #308] ; (8003ea0 <VerifyGain+0x2c8>)
8003d6c: 015b lsls r3, r3, #5
8003d6e: 4413 add r3, r2
8003d70: 3306 adds r3, #6
8003d72: 2207 movs r2, #7
8003d74: 801a strh r2, [r3, #0]
}
8003d76: e0e1 b.n 8003f3c <VerifyGain+0x364>
if(/*sens >= 500.01f && */sens <= 1000.0f) //1000
8003d78: edd7 7a01 vldr s15, [r7, #4]
8003d7c: ed9f 7a4d vldr s14, [pc, #308] ; 8003eb4 <VerifyGain+0x2dc>
8003d80: eef4 7ac7 vcmpe.f32 s15, s14
8003d84: eef1 fa10 vmrs APSR_nzcv, fpscr
8003d88: d813 bhi.n 8003db2 <VerifyGain+0x1da>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku10)
8003d8a: 4b44 ldr r3, [pc, #272] ; (8003e9c <VerifyGain+0x2c4>)
8003d8c: 681b ldr r3, [r3, #0]
8003d8e: 4a44 ldr r2, [pc, #272] ; (8003ea0 <VerifyGain+0x2c8>)
8003d90: 015b lsls r3, r3, #5
8003d92: 4413 add r3, r2
8003d94: 3306 adds r3, #6
8003d96: 881b ldrh r3, [r3, #0]
8003d98: b29b uxth r3, r3
8003d9a: 2b06 cmp r3, #6
8003d9c: f240 80ce bls.w 8003f3c <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku10;
8003da0: 4b3e ldr r3, [pc, #248] ; (8003e9c <VerifyGain+0x2c4>)
8003da2: 681b ldr r3, [r3, #0]
8003da4: 4a3e ldr r2, [pc, #248] ; (8003ea0 <VerifyGain+0x2c8>)
8003da6: 015b lsls r3, r3, #5
8003da8: 4413 add r3, r2
8003daa: 3306 adds r3, #6
8003dac: 2206 movs r2, #6
8003dae: 801a strh r2, [r3, #0]
}
8003db0: e0c4 b.n 8003f3c <VerifyGain+0x364>
if(/*sens >= 1000.01f && */sens <= 2000.0f) //2000
8003db2: edd7 7a01 vldr s15, [r7, #4]
8003db6: ed9f 7a40 vldr s14, [pc, #256] ; 8003eb8 <VerifyGain+0x2e0>
8003dba: eef4 7ac7 vcmpe.f32 s15, s14
8003dbe: eef1 fa10 vmrs APSR_nzcv, fpscr
8003dc2: d813 bhi.n 8003dec <VerifyGain+0x214>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku5)
8003dc4: 4b35 ldr r3, [pc, #212] ; (8003e9c <VerifyGain+0x2c4>)
8003dc6: 681b ldr r3, [r3, #0]
8003dc8: 4a35 ldr r2, [pc, #212] ; (8003ea0 <VerifyGain+0x2c8>)
8003dca: 015b lsls r3, r3, #5
8003dcc: 4413 add r3, r2
8003dce: 3306 adds r3, #6
8003dd0: 881b ldrh r3, [r3, #0]
8003dd2: b29b uxth r3, r3
8003dd4: 2b05 cmp r3, #5
8003dd6: f240 80b1 bls.w 8003f3c <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku5;
8003dda: 4b30 ldr r3, [pc, #192] ; (8003e9c <VerifyGain+0x2c4>)
8003ddc: 681b ldr r3, [r3, #0]
8003dde: 4a30 ldr r2, [pc, #192] ; (8003ea0 <VerifyGain+0x2c8>)
8003de0: 015b lsls r3, r3, #5
8003de2: 4413 add r3, r2
8003de4: 3306 adds r3, #6
8003de6: 2205 movs r2, #5
8003de8: 801a strh r2, [r3, #0]
}
8003dea: e0a7 b.n 8003f3c <VerifyGain+0x364>
if(/*sens >= 2000.01f && */sens <= 5000.0f) //5000
8003dec: edd7 7a01 vldr s15, [r7, #4]
8003df0: ed9f 7a32 vldr s14, [pc, #200] ; 8003ebc <VerifyGain+0x2e4>
8003df4: eef4 7ac7 vcmpe.f32 s15, s14
8003df8: eef1 fa10 vmrs APSR_nzcv, fpscr
8003dfc: d813 bhi.n 8003e26 <VerifyGain+0x24e>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku2)
8003dfe: 4b27 ldr r3, [pc, #156] ; (8003e9c <VerifyGain+0x2c4>)
8003e00: 681b ldr r3, [r3, #0]
8003e02: 4a27 ldr r2, [pc, #156] ; (8003ea0 <VerifyGain+0x2c8>)
8003e04: 015b lsls r3, r3, #5
8003e06: 4413 add r3, r2
8003e08: 3306 adds r3, #6
8003e0a: 881b ldrh r3, [r3, #0]
8003e0c: b29b uxth r3, r3
8003e0e: 2b04 cmp r3, #4
8003e10: f240 8094 bls.w 8003f3c <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku2;
8003e14: 4b21 ldr r3, [pc, #132] ; (8003e9c <VerifyGain+0x2c4>)
8003e16: 681b ldr r3, [r3, #0]
8003e18: 4a21 ldr r2, [pc, #132] ; (8003ea0 <VerifyGain+0x2c8>)
8003e1a: 015b lsls r3, r3, #5
8003e1c: 4413 add r3, r2
8003e1e: 3306 adds r3, #6
8003e20: 2204 movs r2, #4
8003e22: 801a strh r2, [r3, #0]
}
8003e24: e08a b.n 8003f3c <VerifyGain+0x364>
if(/*sens >= 5000.01f && */sens <= 10000.0f) //10000
8003e26: edd7 7a01 vldr s15, [r7, #4]
8003e2a: ed9f 7a25 vldr s14, [pc, #148] ; 8003ec0 <VerifyGain+0x2e8>
8003e2e: eef4 7ac7 vcmpe.f32 s15, s14
8003e32: eef1 fa10 vmrs APSR_nzcv, fpscr
8003e36: d812 bhi.n 8003e5e <VerifyGain+0x286>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku1)
8003e38: 4b18 ldr r3, [pc, #96] ; (8003e9c <VerifyGain+0x2c4>)
8003e3a: 681b ldr r3, [r3, #0]
8003e3c: 4a18 ldr r2, [pc, #96] ; (8003ea0 <VerifyGain+0x2c8>)
8003e3e: 015b lsls r3, r3, #5
8003e40: 4413 add r3, r2
8003e42: 3306 adds r3, #6
8003e44: 881b ldrh r3, [r3, #0]
8003e46: b29b uxth r3, r3
8003e48: 2b03 cmp r3, #3
8003e4a: d977 bls.n 8003f3c <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku1;
8003e4c: 4b13 ldr r3, [pc, #76] ; (8003e9c <VerifyGain+0x2c4>)
8003e4e: 681b ldr r3, [r3, #0]
8003e50: 4a13 ldr r2, [pc, #76] ; (8003ea0 <VerifyGain+0x2c8>)
8003e52: 015b lsls r3, r3, #5
8003e54: 4413 add r3, r2
8003e56: 3306 adds r3, #6
8003e58: 2203 movs r2, #3
8003e5a: 801a strh r2, [r3, #0]
}
8003e5c: e06e b.n 8003f3c <VerifyGain+0x364>
if(/*sens >= 10001.0f && */sens <= 20000.0f) //20000
8003e5e: edd7 7a01 vldr s15, [r7, #4]
8003e62: ed9f 7a18 vldr s14, [pc, #96] ; 8003ec4 <VerifyGain+0x2ec>
8003e66: eef4 7ac7 vcmpe.f32 s15, s14
8003e6a: eef1 fa10 vmrs APSR_nzcv, fpscr
8003e6e: d82d bhi.n 8003ecc <VerifyGain+0x2f4>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku0_5)
8003e70: 4b0a ldr r3, [pc, #40] ; (8003e9c <VerifyGain+0x2c4>)
8003e72: 681b ldr r3, [r3, #0]
8003e74: 4a0a ldr r2, [pc, #40] ; (8003ea0 <VerifyGain+0x2c8>)
8003e76: 015b lsls r3, r3, #5
8003e78: 4413 add r3, r2
8003e7a: 3306 adds r3, #6
8003e7c: 881b ldrh r3, [r3, #0]
8003e7e: b29b uxth r3, r3
8003e80: 2b02 cmp r3, #2
8003e82: d95b bls.n 8003f3c <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku0_5;
8003e84: 4b05 ldr r3, [pc, #20] ; (8003e9c <VerifyGain+0x2c4>)
8003e86: 681b ldr r3, [r3, #0]
8003e88: 4a05 ldr r2, [pc, #20] ; (8003ea0 <VerifyGain+0x2c8>)
8003e8a: 015b lsls r3, r3, #5
8003e8c: 4413 add r3, r2
8003e8e: 3306 adds r3, #6
8003e90: 2202 movs r2, #2
8003e92: 801a strh r2, [r3, #0]
}
8003e94: e052 b.n 8003f3c <VerifyGain+0x364>
8003e96: bf00 nop
8003e98: 3a83126f .word 0x3a83126f
8003e9c: 2006b2d0 .word 0x2006b2d0
8003ea0: 2006b510 .word 0x2006b510
8003ea4: 42480000 .word 0x42480000
8003ea8: 42c80000 .word 0x42c80000
8003eac: 43480000 .word 0x43480000
8003eb0: 43fa0000 .word 0x43fa0000
8003eb4: 447a0000 .word 0x447a0000
8003eb8: 44fa0000 .word 0x44fa0000
8003ebc: 459c4000 .word 0x459c4000
8003ec0: 461c4000 .word 0x461c4000
8003ec4: 469c4000 .word 0x469c4000
8003ec8: 47435000 .word 0x47435000
if(/*sens >= 20001.0f && */sens <= 50000.0f) //50000
8003ecc: edd7 7a01 vldr s15, [r7, #4]
8003ed0: ed1f 7a03 vldr s14, [pc, #-12] ; 8003ec8 <VerifyGain+0x2f0>
8003ed4: eef4 7ac7 vcmpe.f32 s15, s14
8003ed8: eef1 fa10 vmrs APSR_nzcv, fpscr
8003edc: d812 bhi.n 8003f04 <VerifyGain+0x32c>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku0_2)
8003ede: 4b1a ldr r3, [pc, #104] ; (8003f48 <VerifyGain+0x370>)
8003ee0: 681b ldr r3, [r3, #0]
8003ee2: 4a1a ldr r2, [pc, #104] ; (8003f4c <VerifyGain+0x374>)
8003ee4: 015b lsls r3, r3, #5
8003ee6: 4413 add r3, r2
8003ee8: 3306 adds r3, #6
8003eea: 881b ldrh r3, [r3, #0]
8003eec: b29b uxth r3, r3
8003eee: 2b01 cmp r3, #1
8003ef0: d924 bls.n 8003f3c <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku0_2;
8003ef2: 4b15 ldr r3, [pc, #84] ; (8003f48 <VerifyGain+0x370>)
8003ef4: 681b ldr r3, [r3, #0]
8003ef6: 4a15 ldr r2, [pc, #84] ; (8003f4c <VerifyGain+0x374>)
8003ef8: 015b lsls r3, r3, #5
8003efa: 4413 add r3, r2
8003efc: 3306 adds r3, #6
8003efe: 2201 movs r2, #1
8003f00: 801a strh r2, [r3, #0]
}
8003f02: e01b b.n 8003f3c <VerifyGain+0x364>
if(sens < 100000.0f) //99999
8003f04: edd7 7a01 vldr s15, [r7, #4]
8003f08: ed9f 7a11 vldr s14, [pc, #68] ; 8003f50 <VerifyGain+0x378>
8003f0c: eef4 7ac7 vcmpe.f32 s15, s14
8003f10: eef1 fa10 vmrs APSR_nzcv, fpscr
8003f14: d400 bmi.n 8003f18 <VerifyGain+0x340>
}
8003f16: e011 b.n 8003f3c <VerifyGain+0x364>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku0_1)
8003f18: 4b0b ldr r3, [pc, #44] ; (8003f48 <VerifyGain+0x370>)
8003f1a: 681b ldr r3, [r3, #0]
8003f1c: 4a0b ldr r2, [pc, #44] ; (8003f4c <VerifyGain+0x374>)
8003f1e: 015b lsls r3, r3, #5
8003f20: 4413 add r3, r2
8003f22: 3306 adds r3, #6
8003f24: 881b ldrh r3, [r3, #0]
8003f26: b29b uxth r3, r3
8003f28: 2b00 cmp r3, #0
8003f2a: d007 beq.n 8003f3c <VerifyGain+0x364>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku0_1;
8003f2c: 4b06 ldr r3, [pc, #24] ; (8003f48 <VerifyGain+0x370>)
8003f2e: 681b ldr r3, [r3, #0]
8003f30: 4a06 ldr r2, [pc, #24] ; (8003f4c <VerifyGain+0x374>)
8003f32: 015b lsls r3, r3, #5
8003f34: 4413 add r3, r2
8003f36: 3306 adds r3, #6
8003f38: 2200 movs r2, #0
8003f3a: 801a strh r2, [r3, #0]
}
8003f3c: bf00 nop
8003f3e: 370c adds r7, #12
8003f40: 46bd mov sp, r7
8003f42: f85d 7b04 ldr.w r7, [sp], #4
8003f46: 4770 bx lr
8003f48: 2006b2d0 .word 0x2006b2d0
8003f4c: 2006b510 .word 0x2006b510
8003f50: 47c35000 .word 0x47c35000
08003f54 <LTDC_Reset>:
}
void LTDC_Reset(void)
{
8003f54: b580 push {r7, lr}
8003f56: af00 add r7, sp, #0
HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_SET); HAL_Delay(100);
8003f58: 2201 movs r2, #1
8003f5a: 2140 movs r1, #64 ; 0x40
8003f5c: 480b ldr r0, [pc, #44] ; (8003f8c <LTDC_Reset+0x38>)
8003f5e: f00a fd93 bl 800ea88 <HAL_GPIO_WritePin>
8003f62: 2064 movs r0, #100 ; 0x64
8003f64: f009 fdaa bl 800dabc <HAL_Delay>
HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_RESET); HAL_Delay(100);
8003f68: 2200 movs r2, #0
8003f6a: 2140 movs r1, #64 ; 0x40
8003f6c: 4807 ldr r0, [pc, #28] ; (8003f8c <LTDC_Reset+0x38>)
8003f6e: f00a fd8b bl 800ea88 <HAL_GPIO_WritePin>
8003f72: 2064 movs r0, #100 ; 0x64
8003f74: f009 fda2 bl 800dabc <HAL_Delay>
HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_SET); HAL_Delay(100);
8003f78: 2201 movs r2, #1
8003f7a: 2140 movs r1, #64 ; 0x40
8003f7c: 4803 ldr r0, [pc, #12] ; (8003f8c <LTDC_Reset+0x38>)
8003f7e: f00a fd83 bl 800ea88 <HAL_GPIO_WritePin>
8003f82: 2064 movs r0, #100 ; 0x64
8003f84: f009 fd9a bl 800dabc <HAL_Delay>
}
8003f88: bf00 nop
8003f8a: bd80 pop {r7, pc}
8003f8c: 40020c00 .word 0x40020c00
08003f90 <MX_LTDC_Init>:
/* LTDC init function */
void MX_LTDC_Init(void)
{
8003f90: b580 push {r7, lr}
8003f92: b09c sub sp, #112 ; 0x70
8003f94: af00 add r7, sp, #0
__IO uint32_t tickstart;
// SET_BIT(RCC->CR, RCC_CR_PLLSAION);
// HAL_Delay(100);
LTDC_Reset();
8003f96: f7ff ffdd bl 8003f54 <LTDC_Reset>
__HAL_RCC_PLLSAI_ENABLE();
8003f9a: 4a8c ldr r2, [pc, #560] ; (80041cc <MX_LTDC_Init+0x23c>)
8003f9c: 4b8b ldr r3, [pc, #556] ; (80041cc <MX_LTDC_Init+0x23c>)
8003f9e: 681b ldr r3, [r3, #0]
8003fa0: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
8003fa4: 6013 str r3, [r2, #0]
tickstart = HAL_GetTick();
8003fa6: f009 fd7d bl 800daa4 <HAL_GetTick>
8003faa: 4603 mov r3, r0
8003fac: 607b str r3, [r7, #4]
while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET)
8003fae: e008 b.n 8003fc2 <MX_LTDC_Init+0x32>
{
if((HAL_GetTick() - tickstart) >= PLLSAI_TIMEOUT_VALUE) {
8003fb0: f009 fd78 bl 800daa4 <HAL_GetTick>
8003fb4: 4602 mov r2, r0
8003fb6: 687b ldr r3, [r7, #4]
8003fb8: 1ad3 subs r3, r2, r3
8003fba: 2b63 cmp r3, #99 ; 0x63
8003fbc: d901 bls.n 8003fc2 <MX_LTDC_Init+0x32>
Error_Handler();
8003fbe: f001 faeb bl 8005598 <Error_Handler>
while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET)
8003fc2: 4b82 ldr r3, [pc, #520] ; (80041cc <MX_LTDC_Init+0x23c>)
8003fc4: 681b ldr r3, [r3, #0]
8003fc6: f003 5300 and.w r3, r3, #536870912 ; 0x20000000
8003fca: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000
8003fce: d1ef bne.n 8003fb0 <MX_LTDC_Init+0x20>
}
}
hLtdcHandler.Instance = LTDC;
8003fd0: 4b7f ldr r3, [pc, #508] ; (80041d0 <MX_LTDC_Init+0x240>)
8003fd2: 4a80 ldr r2, [pc, #512] ; (80041d4 <MX_LTDC_Init+0x244>)
8003fd4: 601a str r2, [r3, #0]
hLtdcHandler.Init.HSPolarity = LTDC_HSPOLARITY_AL;
8003fd6: 4b7e ldr r3, [pc, #504] ; (80041d0 <MX_LTDC_Init+0x240>)
8003fd8: 2200 movs r2, #0
8003fda: 605a str r2, [r3, #4]
hLtdcHandler.Init.VSPolarity = LTDC_VSPOLARITY_AL;
8003fdc: 4b7c ldr r3, [pc, #496] ; (80041d0 <MX_LTDC_Init+0x240>)
8003fde: 2200 movs r2, #0
8003fe0: 609a str r2, [r3, #8]
hLtdcHandler.Init.DEPolarity = LTDC_DEPOLARITY_AH;
8003fe2: 4b7b ldr r3, [pc, #492] ; (80041d0 <MX_LTDC_Init+0x240>)
8003fe4: f04f 5200 mov.w r2, #536870912 ; 0x20000000
8003fe8: 60da str r2, [r3, #12]
hLtdcHandler.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
8003fea: 4b79 ldr r3, [pc, #484] ; (80041d0 <MX_LTDC_Init+0x240>)
8003fec: 2200 movs r2, #0
8003fee: 611a str r2, [r3, #16]
hLtdcHandler.Init.HorizontalSync = 38;
8003ff0: 4b77 ldr r3, [pc, #476] ; (80041d0 <MX_LTDC_Init+0x240>)
8003ff2: 2226 movs r2, #38 ; 0x26
8003ff4: 615a str r2, [r3, #20]
hLtdcHandler.Init.VerticalSync = 4;
8003ff6: 4b76 ldr r3, [pc, #472] ; (80041d0 <MX_LTDC_Init+0x240>)
8003ff8: 2204 movs r2, #4
8003ffa: 619a str r2, [r3, #24]
hLtdcHandler.Init.AccumulatedHBP = 68;
8003ffc: 4b74 ldr r3, [pc, #464] ; (80041d0 <MX_LTDC_Init+0x240>)
8003ffe: 2244 movs r2, #68 ; 0x44
8004000: 61da str r2, [r3, #28]
hLtdcHandler.Init.AccumulatedVBP = 18;
8004002: 4b73 ldr r3, [pc, #460] ; (80041d0 <MX_LTDC_Init+0x240>)
8004004: 2212 movs r2, #18
8004006: 621a str r2, [r3, #32]
hLtdcHandler.Init.AccumulatedActiveW = 388;
8004008: 4b71 ldr r3, [pc, #452] ; (80041d0 <MX_LTDC_Init+0x240>)
800400a: f44f 72c2 mov.w r2, #388 ; 0x184
800400e: 625a str r2, [r3, #36] ; 0x24
hLtdcHandler.Init.AccumulatedActiveH = 262;
8004010: 4b6f ldr r3, [pc, #444] ; (80041d0 <MX_LTDC_Init+0x240>)
8004012: f44f 7283 mov.w r2, #262 ; 0x106
8004016: 629a str r2, [r3, #40] ; 0x28
hLtdcHandler.Init.TotalWidth = 408;
8004018: 4b6d ldr r3, [pc, #436] ; (80041d0 <MX_LTDC_Init+0x240>)
800401a: f44f 72cc mov.w r2, #408 ; 0x198
800401e: 62da str r2, [r3, #44] ; 0x2c
hLtdcHandler.Init.TotalHeigh = 263;
8004020: 4b6b ldr r3, [pc, #428] ; (80041d0 <MX_LTDC_Init+0x240>)
8004022: f240 1207 movw r2, #263 ; 0x107
8004026: 631a str r2, [r3, #48] ; 0x30
hLtdcHandler.Init.Backcolor.Blue = 0;
8004028: 4b69 ldr r3, [pc, #420] ; (80041d0 <MX_LTDC_Init+0x240>)
800402a: 2200 movs r2, #0
800402c: f883 2034 strb.w r2, [r3, #52] ; 0x34
hLtdcHandler.Init.Backcolor.Green = 0;
8004030: 4b67 ldr r3, [pc, #412] ; (80041d0 <MX_LTDC_Init+0x240>)
8004032: 2200 movs r2, #0
8004034: f883 2035 strb.w r2, [r3, #53] ; 0x35
hLtdcHandler.Init.Backcolor.Red = 0;
8004038: 4b65 ldr r3, [pc, #404] ; (80041d0 <MX_LTDC_Init+0x240>)
800403a: 2200 movs r2, #0
800403c: f883 2036 strb.w r2, [r3, #54] ; 0x36
if (HAL_LTDC_Init(&hLtdcHandler) != HAL_OK) {
8004040: 4863 ldr r0, [pc, #396] ; (80041d0 <MX_LTDC_Init+0x240>)
8004042: f00a fd53 bl 800eaec <HAL_LTDC_Init>
8004046: 4603 mov r3, r0
8004048: 2b00 cmp r3, #0
800404a: d001 beq.n 8004050 <MX_LTDC_Init+0xc0>
Error_Handler();
800404c: f001 faa4 bl 8005598 <Error_Handler>
}
pLayerCfg.WindowX0 = 0;
8004050: 2300 movs r3, #0
8004052: 63fb str r3, [r7, #60] ; 0x3c
pLayerCfg.WindowX1 = 320;
8004054: f44f 73a0 mov.w r3, #320 ; 0x140
8004058: 643b str r3, [r7, #64] ; 0x40
pLayerCfg.WindowY0 = 0;
800405a: 2300 movs r3, #0
800405c: 647b str r3, [r7, #68] ; 0x44
pLayerCfg.WindowY1 = 240;
800405e: 23f0 movs r3, #240 ; 0xf0
8004060: 64bb str r3, [r7, #72] ; 0x48
pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
8004062: 2302 movs r3, #2
8004064: 64fb str r3, [r7, #76] ; 0x4c
pLayerCfg.Alpha = 255;
8004066: 23ff movs r3, #255 ; 0xff
8004068: 653b str r3, [r7, #80] ; 0x50
pLayerCfg.Alpha0 = 0;
800406a: 2300 movs r3, #0
800406c: 657b str r3, [r7, #84] ; 0x54
pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
800406e: f44f 63c0 mov.w r3, #1536 ; 0x600
8004072: 65bb str r3, [r7, #88] ; 0x58
pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
8004074: 2307 movs r3, #7
8004076: 65fb str r3, [r7, #92] ; 0x5c
pLayerCfg.FBStartAdress = (uint32_t) &LAYER_1[0];
8004078: 4b57 ldr r3, [pc, #348] ; (80041d8 <MX_LTDC_Init+0x248>)
800407a: 663b str r3, [r7, #96] ; 0x60
pLayerCfg.ImageWidth = 320;
800407c: f44f 73a0 mov.w r3, #320 ; 0x140
8004080: 667b str r3, [r7, #100] ; 0x64
pLayerCfg.ImageHeight = 240;
8004082: 23f0 movs r3, #240 ; 0xf0
8004084: 66bb str r3, [r7, #104] ; 0x68
pLayerCfg.Backcolor.Blue = 0;
8004086: 2300 movs r3, #0
8004088: f887 306c strb.w r3, [r7, #108] ; 0x6c
pLayerCfg.Backcolor.Green = 0;
800408c: 2300 movs r3, #0
800408e: f887 306d strb.w r3, [r7, #109] ; 0x6d
pLayerCfg.Backcolor.Red = 0;
8004092: 2300 movs r3, #0
8004094: f887 306e strb.w r3, [r7, #110] ; 0x6e
if(HAL_LTDC_ConfigLayer(&hLtdcHandler, &pLayerCfg, 0) != HAL_OK) {
8004098: f107 033c add.w r3, r7, #60 ; 0x3c
800409c: 2200 movs r2, #0
800409e: 4619 mov r1, r3
80040a0: 484b ldr r0, [pc, #300] ; (80041d0 <MX_LTDC_Init+0x240>)
80040a2: f00a feab bl 800edfc <HAL_LTDC_ConfigLayer>
80040a6: 4603 mov r3, r0
80040a8: 2b00 cmp r3, #0
80040aa: d001 beq.n 80040b0 <MX_LTDC_Init+0x120>
Error_Handler();
80040ac: f001 fa74 bl 8005598 <Error_Handler>
}
pLayerCfg1.WindowX0 = 0;
80040b0: 2300 movs r3, #0
80040b2: 60bb str r3, [r7, #8]
pLayerCfg1.WindowX1 = 320;
80040b4: f44f 73a0 mov.w r3, #320 ; 0x140
80040b8: 60fb str r3, [r7, #12]
pLayerCfg1.WindowY0 = 0;
80040ba: 2300 movs r3, #0
80040bc: 613b str r3, [r7, #16]
pLayerCfg1.WindowY1 = 240;
80040be: 23f0 movs r3, #240 ; 0xf0
80040c0: 617b str r3, [r7, #20]
pLayerCfg1.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
80040c2: 2302 movs r3, #2
80040c4: 61bb str r3, [r7, #24]
pLayerCfg1.Alpha = 255;
80040c6: 23ff movs r3, #255 ; 0xff
80040c8: 61fb str r3, [r7, #28]
pLayerCfg1.Alpha0 = 0;
80040ca: 2300 movs r3, #0
80040cc: 623b str r3, [r7, #32]
pLayerCfg1.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
80040ce: f44f 63c0 mov.w r3, #1536 ; 0x600
80040d2: 627b str r3, [r7, #36] ; 0x24
pLayerCfg1.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
80040d4: 2307 movs r3, #7
80040d6: 62bb str r3, [r7, #40] ; 0x28
pLayerCfg1.FBStartAdress = (uint32_t) &LAYER_2[0];
80040d8: 4b40 ldr r3, [pc, #256] ; (80041dc <MX_LTDC_Init+0x24c>)
80040da: 62fb str r3, [r7, #44] ; 0x2c
pLayerCfg1.ImageWidth = 320;
80040dc: f44f 73a0 mov.w r3, #320 ; 0x140
80040e0: 633b str r3, [r7, #48] ; 0x30
pLayerCfg1.ImageHeight = 240;
80040e2: 23f0 movs r3, #240 ; 0xf0
80040e4: 637b str r3, [r7, #52] ; 0x34
pLayerCfg1.Backcolor.Blue = 0;
80040e6: 2300 movs r3, #0
80040e8: f887 3038 strb.w r3, [r7, #56] ; 0x38
pLayerCfg1.Backcolor.Green = 0;
80040ec: 2300 movs r3, #0
80040ee: f887 3039 strb.w r3, [r7, #57] ; 0x39
pLayerCfg1.Backcolor.Red = 0;
80040f2: 2300 movs r3, #0
80040f4: f887 303a strb.w r3, [r7, #58] ; 0x3a
if(HAL_LTDC_ConfigLayer(&hLtdcHandler, &pLayerCfg1, 1) != HAL_OK) {
80040f8: f107 0308 add.w r3, r7, #8
80040fc: 2201 movs r2, #1
80040fe: 4619 mov r1, r3
8004100: 4833 ldr r0, [pc, #204] ; (80041d0 <MX_LTDC_Init+0x240>)
8004102: f00a fe7b bl 800edfc <HAL_LTDC_ConfigLayer>
8004106: 4603 mov r3, r0
8004108: 2b00 cmp r3, #0
800410a: d001 beq.n 8004110 <MX_LTDC_Init+0x180>
Error_Handler();
800410c: f001 fa44 bl 8005598 <Error_Handler>
}
//HAL_LTDC_EnableCLUT(&hLtdcHandler, 0);
//HAL_LTDC_EnableCLUT(&hLtdcHandler, 1);
ActiveLayer = 1;
8004110: 4b33 ldr r3, [pc, #204] ; (80041e0 <MX_LTDC_Init+0x250>)
8004112: 2201 movs r2, #1
8004114: 601a str r2, [r3, #0]
RenderingLayer = 0;
8004116: 4b33 ldr r3, [pc, #204] ; (80041e4 <MX_LTDC_Init+0x254>)
8004118: 2200 movs r2, #0
800411a: 601a str r2, [r3, #0]
BSP_LCD_DisplayOff();
800411c: f000 f87a bl 8004214 <BSP_LCD_DisplayOff>
BSP_LCD_SelectLayer(0);
8004120: 2000 movs r0, #0
8004122: f000 f961 bl 80043e8 <BSP_LCD_SelectLayer>
BSP_LCD_Clear(0xFF000000);
8004126: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800412a: f000 fa3f bl 80045ac <BSP_LCD_Clear>
BSP_LCD_SelectLayer(1);
800412e: 2001 movs r0, #1
8004130: f000 f95a bl 80043e8 <BSP_LCD_SelectLayer>
BSP_LCD_Clear(0xFF000000);
8004134: f04f 407f mov.w r0, #4278190080 ; 0xff000000
8004138: f000 fa38 bl 80045ac <BSP_LCD_Clear>
BSP_LCD_SetLayerVisible(RenderingLayer, DISABLE);
800413c: 4b29 ldr r3, [pc, #164] ; (80041e4 <MX_LTDC_Init+0x254>)
800413e: 681b ldr r3, [r3, #0]
8004140: 2100 movs r1, #0
8004142: 4618 mov r0, r3
8004144: f000 f960 bl 8004408 <BSP_LCD_SetLayerVisible>
BSP_LCD_SetLayerVisible(ActiveLayer, DISABLE);
8004148: 4b25 ldr r3, [pc, #148] ; (80041e0 <MX_LTDC_Init+0x250>)
800414a: 681b ldr r3, [r3, #0]
800414c: 2100 movs r1, #0
800414e: 4618 mov r0, r3
8004150: f000 f95a bl 8004408 <BSP_LCD_SetLayerVisible>
HAL_LTDC_Reload(&hLtdcHandler, LTDC_RELOAD_IMMEDIATE);
8004154: 2101 movs r1, #1
8004156: 481e ldr r0, [pc, #120] ; (80041d0 <MX_LTDC_Init+0x240>)
8004158: f00a fec6 bl 800eee8 <HAL_LTDC_Reload>
DrawProp[0].BackColor = LCD_COLOR_BLACK;
800415c: 4b22 ldr r3, [pc, #136] ; (80041e8 <MX_LTDC_Init+0x258>)
800415e: f04f 427f mov.w r2, #4278190080 ; 0xff000000
8004162: 605a str r2, [r3, #4]
DrawProp[0].pFont = &Font17;
8004164: 4b20 ldr r3, [pc, #128] ; (80041e8 <MX_LTDC_Init+0x258>)
8004166: 4a21 ldr r2, [pc, #132] ; (80041ec <MX_LTDC_Init+0x25c>)
8004168: 609a str r2, [r3, #8]
DrawProp[0].TextColor = LCD_COLOR_WHITE;
800416a: 4b1f ldr r3, [pc, #124] ; (80041e8 <MX_LTDC_Init+0x258>)
800416c: f04f 32ff mov.w r2, #4294967295
8004170: 601a str r2, [r3, #0]
DrawProp[1].BackColor = LCD_COLOR_BLACK;
8004172: 4b1d ldr r3, [pc, #116] ; (80041e8 <MX_LTDC_Init+0x258>)
8004174: f04f 427f mov.w r2, #4278190080 ; 0xff000000
8004178: 611a str r2, [r3, #16]
DrawProp[1].pFont = &Font17;
800417a: 4b1b ldr r3, [pc, #108] ; (80041e8 <MX_LTDC_Init+0x258>)
800417c: 4a1b ldr r2, [pc, #108] ; (80041ec <MX_LTDC_Init+0x25c>)
800417e: 615a str r2, [r3, #20]
DrawProp[1].TextColor = LCD_COLOR_WHITE;
8004180: 4b19 ldr r3, [pc, #100] ; (80041e8 <MX_LTDC_Init+0x258>)
8004182: f04f 32ff mov.w r2, #4294967295
8004186: 60da str r2, [r3, #12]
CurrentFont = &Font17;
8004188: 4b19 ldr r3, [pc, #100] ; (80041f0 <MX_LTDC_Init+0x260>)
800418a: 4a18 ldr r2, [pc, #96] ; (80041ec <MX_LTDC_Init+0x25c>)
800418c: 601a str r2, [r3, #0]
BSP_LCD_DisplayOn();
800418e: f000 f835 bl 80041fc <BSP_LCD_DisplayOn>
HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_SET); // BACKLIGHT IS OFF
8004192: 2201 movs r2, #1
8004194: f44f 7180 mov.w r1, #256 ; 0x100
8004198: 4816 ldr r0, [pc, #88] ; (80041f4 <MX_LTDC_Init+0x264>)
800419a: f00a fc75 bl 800ea88 <HAL_GPIO_WritePin>
RefreshScreen = true;
800419e: 4b16 ldr r3, [pc, #88] ; (80041f8 <MX_LTDC_Init+0x268>)
80041a0: 2201 movs r2, #1
80041a2: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 255);
80041a4: 21ff movs r1, #255 ; 0xff
80041a6: 480a ldr r0, [pc, #40] ; (80041d0 <MX_LTDC_Init+0x240>)
80041a8: f00a fe66 bl 800ee78 <HAL_LTDC_ProgramLineEvent>
while(RefreshScreen);
80041ac: bf00 nop
80041ae: 4b12 ldr r3, [pc, #72] ; (80041f8 <MX_LTDC_Init+0x268>)
80041b0: 781b ldrb r3, [r3, #0]
80041b2: b2db uxtb r3, r3
80041b4: 2b00 cmp r3, #0
80041b6: d1fa bne.n 80041ae <MX_LTDC_Init+0x21e>
BSP_LCD_SetLayerVisible(RenderingLayer, ENABLE);
80041b8: 4b0a ldr r3, [pc, #40] ; (80041e4 <MX_LTDC_Init+0x254>)
80041ba: 681b ldr r3, [r3, #0]
80041bc: 2101 movs r1, #1
80041be: 4618 mov r0, r3
80041c0: f000 f922 bl 8004408 <BSP_LCD_SetLayerVisible>
}
80041c4: bf00 nop
80041c6: 3770 adds r7, #112 ; 0x70
80041c8: 46bd mov sp, r7
80041ca: bd80 pop {r7, pc}
80041cc: 40023800 .word 0x40023800
80041d0: 2006b9dc .word 0x2006b9dc
80041d4: 40016800 .word 0x40016800
80041d8: 20020258 .word 0x20020258
80041dc: 20045a58 .word 0x20045a58
80041e0: 20020014 .word 0x20020014
80041e4: 2006b2c8 .word 0x2006b2c8
80041e8: 2006b2b0 .word 0x2006b2b0
80041ec: 20020008 .word 0x20020008
80041f0: 2006b9d8 .word 0x2006b9d8
80041f4: 40020000 .word 0x40020000
80041f8: 2006b2cc .word 0x2006b2cc
080041fc <BSP_LCD_DisplayOn>:
void BSP_LCD_DisplayOn(void)
{
80041fc: b580 push {r7, lr}
80041fe: af00 add r7, sp, #0
//__HAL_LTDC_ENABLE(&hLtdcHandler);
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_SET); // DISPLAY_ON
8004200: 2201 movs r2, #1
8004202: f44f 6180 mov.w r1, #1024 ; 0x400
8004206: 4802 ldr r0, [pc, #8] ; (8004210 <BSP_LCD_DisplayOn+0x14>)
8004208: f00a fc3e bl 800ea88 <HAL_GPIO_WritePin>
}
800420c: bf00 nop
800420e: bd80 pop {r7, pc}
8004210: 40021400 .word 0x40021400
08004214 <BSP_LCD_DisplayOff>:
/**
* @brief Disables the display.
* @retval None
*/
void BSP_LCD_DisplayOff(void)
{
8004214: b580 push {r7, lr}
8004216: af00 add r7, sp, #0
//__HAL_LTDC_DISABLE(&hLtdcHandler);
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_RESET); // DISPLAY_OFF
8004218: 2200 movs r2, #0
800421a: f44f 6180 mov.w r1, #1024 ; 0x400
800421e: 4802 ldr r0, [pc, #8] ; (8004228 <BSP_LCD_DisplayOff+0x14>)
8004220: f00a fc32 bl 800ea88 <HAL_GPIO_WritePin>
}
8004224: bf00 nop
8004226: bd80 pop {r7, pc}
8004228: 40021400 .word 0x40021400
0800422c <HAL_LTDC_MspInit>:
void HAL_LTDC_MspInit(LTDC_HandleTypeDef* ltdcHandle)
{
800422c: b580 push {r7, lr}
800422e: b088 sub sp, #32
8004230: af00 add r7, sp, #0
8004232: 6078 str r0, [r7, #4]
GPIO_InitTypeDef GPIO_InitStruct;
if(ltdcHandle->Instance == LTDC)
8004234: 687b ldr r3, [r7, #4]
8004236: 681b ldr r3, [r3, #0]
8004238: 4a4f ldr r2, [pc, #316] ; (8004378 <HAL_LTDC_MspInit+0x14c>)
800423a: 4293 cmp r3, r2
800423c: f040 8097 bne.w 800436e <HAL_LTDC_MspInit+0x142>
{
__HAL_RCC_LTDC_CLK_ENABLE();
8004240: 4a4e ldr r2, [pc, #312] ; (800437c <HAL_LTDC_MspInit+0x150>)
8004242: 4b4e ldr r3, [pc, #312] ; (800437c <HAL_LTDC_MspInit+0x150>)
8004244: 6c5b ldr r3, [r3, #68] ; 0x44
8004246: f043 6380 orr.w r3, r3, #67108864 ; 0x4000000
800424a: 6453 str r3, [r2, #68] ; 0x44
800424c: 4b4b ldr r3, [pc, #300] ; (800437c <HAL_LTDC_MspInit+0x150>)
800424e: 6c5b ldr r3, [r3, #68] ; 0x44
8004250: f003 6380 and.w r3, r3, #67108864 ; 0x4000000
8004254: 60bb str r3, [r7, #8]
8004256: 68bb ldr r3, [r7, #8]
PG7 ------> LTDC_CLK
PG10 ------> LTDC_G3
PG11 ------> LTDC_B3
PG12 ------> LTDC_B4 */
GPIO_InitStruct.Pin = GPIO_PIN_10;
8004258: f44f 6380 mov.w r3, #1024 ; 0x400
800425c: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
800425e: 2301 movs r3, #1
8004260: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004262: 2300 movs r3, #0
8004264: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004266: 2303 movs r3, #3
8004268: 61bb str r3, [r7, #24]
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
800426a: f107 030c add.w r3, r7, #12
800426e: 4619 mov r1, r3
8004270: 4843 ldr r0, [pc, #268] ; (8004380 <HAL_LTDC_MspInit+0x154>)
8004272: f00a fa47 bl 800e704 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_6 | GPIO_PIN_11 |GPIO_PIN_12;
8004276: f641 0358 movw r3, #6232 ; 0x1858
800427a: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
800427c: 2302 movs r3, #2
800427e: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004280: 2300 movs r3, #0
8004282: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004284: 2303 movs r3, #3
8004286: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
8004288: 230e movs r3, #14
800428a: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
800428c: f107 030c add.w r3, r7, #12
8004290: 4619 mov r1, r3
8004292: 483c ldr r0, [pc, #240] ; (8004384 <HAL_LTDC_MspInit+0x158>)
8004294: f00a fa36 bl 800e704 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1;
8004298: 2303 movs r3, #3
800429a: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
800429c: 2302 movs r3, #2
800429e: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
80042a0: 2300 movs r3, #0
80042a2: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
80042a4: 2303 movs r3, #3
80042a6: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF9_LTDC;
80042a8: 2309 movs r3, #9
80042aa: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
80042ac: f107 030c add.w r3, r7, #12
80042b0: 4619 mov r1, r3
80042b2: 4835 ldr r0, [pc, #212] ; (8004388 <HAL_LTDC_MspInit+0x15c>)
80042b4: f00a fa26 bl 800e704 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_8 | GPIO_PIN_9;
80042b8: f44f 6370 mov.w r3, #3840 ; 0xf00
80042bc: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
80042be: 2302 movs r3, #2
80042c0: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
80042c2: 2300 movs r3, #0
80042c4: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
80042c6: 2303 movs r3, #3
80042c8: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
80042ca: 230e movs r3, #14
80042cc: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
80042ce: f107 030c add.w r3, r7, #12
80042d2: 4619 mov r1, r3
80042d4: 482c ldr r0, [pc, #176] ; (8004388 <HAL_LTDC_MspInit+0x15c>)
80042d6: f00a fa15 bl 800e704 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_11;
80042da: f44f 630c mov.w r3, #2240 ; 0x8c0
80042de: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
80042e0: 2302 movs r3, #2
80042e2: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
80042e4: 2300 movs r3, #0
80042e6: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
80042e8: 2303 movs r3, #3
80042ea: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
80042ec: 230e movs r3, #14
80042ee: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
80042f0: f107 030c add.w r3, r7, #12
80042f4: 4619 mov r1, r3
80042f6: 4825 ldr r0, [pc, #148] ; (800438c <HAL_LTDC_MspInit+0x160>)
80042f8: f00a fa04 bl 800e704 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_6 | GPIO_PIN_7;
80042fc: 23c0 movs r3, #192 ; 0xc0
80042fe: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004300: 2302 movs r3, #2
8004302: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004304: 2300 movs r3, #0
8004306: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004308: 2303 movs r3, #3
800430a: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
800430c: 230e movs r3, #14
800430e: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
8004310: f107 030c add.w r3, r7, #12
8004314: 4619 mov r1, r3
8004316: 481e ldr r0, [pc, #120] ; (8004390 <HAL_LTDC_MspInit+0x164>)
8004318: f00a f9f4 bl 800e704 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_3;
800431c: 2308 movs r3, #8
800431e: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004320: 2302 movs r3, #2
8004322: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004324: 2300 movs r3, #0
8004326: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004328: 2303 movs r3, #3
800432a: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
800432c: 230e movs r3, #14
800432e: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
8004330: f107 030c add.w r3, r7, #12
8004334: 4619 mov r1, r3
8004336: 4817 ldr r0, [pc, #92] ; (8004394 <HAL_LTDC_MspInit+0x168>)
8004338: f00a f9e4 bl 800e704 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_10 | GPIO_PIN_12;
800433c: f44f 53a0 mov.w r3, #5120 ; 0x1400
8004340: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004342: 2302 movs r3, #2
8004344: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004346: 2300 movs r3, #0
8004348: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
800434a: 2303 movs r3, #3
800434c: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF9_LTDC;
800434e: 2309 movs r3, #9
8004350: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
8004352: f107 030c add.w r3, r7, #12
8004356: 4619 mov r1, r3
8004358: 480c ldr r0, [pc, #48] ; (800438c <HAL_LTDC_MspInit+0x160>)
800435a: f00a f9d3 bl 800e704 <HAL_GPIO_Init>
HAL_NVIC_SetPriority(LTDC_IRQn, 6, 0);
800435e: 2200 movs r2, #0
8004360: 2106 movs r1, #6
8004362: 2058 movs r0, #88 ; 0x58
8004364: f009 fcc7 bl 800dcf6 <HAL_NVIC_SetPriority>
HAL_NVIC_EnableIRQ(LTDC_IRQn);
8004368: 2058 movs r0, #88 ; 0x58
800436a: f009 fce0 bl 800dd2e <HAL_NVIC_EnableIRQ>
}
}
800436e: bf00 nop
8004370: 3720 adds r7, #32
8004372: 46bd mov sp, r7
8004374: bd80 pop {r7, pc}
8004376: bf00 nop
8004378: 40016800 .word 0x40016800
800437c: 40023800 .word 0x40023800
8004380: 40021400 .word 0x40021400
8004384: 40020000 .word 0x40020000
8004388: 40020400 .word 0x40020400
800438c: 40021800 .word 0x40021800
8004390: 40020800 .word 0x40020800
8004394: 40020c00 .word 0x40020c00
08004398 <BSP_LCD_GetXSize>:
HAL_NVIC_DisableIRQ(LTDC_IRQn);
}
}
uint32_t BSP_LCD_GetXSize(void)
{
8004398: b480 push {r7}
800439a: af00 add r7, sp, #0
return hLtdcHandler.LayerCfg[ActiveLayer].ImageWidth;
800439c: 4b06 ldr r3, [pc, #24] ; (80043b8 <BSP_LCD_GetXSize+0x20>)
800439e: 681b ldr r3, [r3, #0]
80043a0: 4a06 ldr r2, [pc, #24] ; (80043bc <BSP_LCD_GetXSize+0x24>)
80043a2: 2134 movs r1, #52 ; 0x34
80043a4: fb01 f303 mul.w r3, r1, r3
80043a8: 4413 add r3, r2
80043aa: 3360 adds r3, #96 ; 0x60
80043ac: 681b ldr r3, [r3, #0]
}
80043ae: 4618 mov r0, r3
80043b0: 46bd mov sp, r7
80043b2: f85d 7b04 ldr.w r7, [sp], #4
80043b6: 4770 bx lr
80043b8: 20020014 .word 0x20020014
80043bc: 2006b9dc .word 0x2006b9dc
080043c0 <BSP_LCD_GetYSize>:
/**
* @brief Gets the LCD Y size.
* @retval Used LCD Y size
*/
uint32_t BSP_LCD_GetYSize(void)
{
80043c0: b480 push {r7}
80043c2: af00 add r7, sp, #0
return hLtdcHandler.LayerCfg[ActiveLayer].ImageHeight;
80043c4: 4b06 ldr r3, [pc, #24] ; (80043e0 <BSP_LCD_GetYSize+0x20>)
80043c6: 681b ldr r3, [r3, #0]
80043c8: 4a06 ldr r2, [pc, #24] ; (80043e4 <BSP_LCD_GetYSize+0x24>)
80043ca: 2134 movs r1, #52 ; 0x34
80043cc: fb01 f303 mul.w r3, r1, r3
80043d0: 4413 add r3, r2
80043d2: 3364 adds r3, #100 ; 0x64
80043d4: 681b ldr r3, [r3, #0]
}
80043d6: 4618 mov r0, r3
80043d8: 46bd mov sp, r7
80043da: f85d 7b04 ldr.w r7, [sp], #4
80043de: 4770 bx lr
80043e0: 20020014 .word 0x20020014
80043e4: 2006b9dc .word 0x2006b9dc
080043e8 <BSP_LCD_SelectLayer>:
{
hLtdcHandler.LayerCfg[ActiveLayer].ImageHeight = imageHeightPixels;
}
void BSP_LCD_SelectLayer(uint32_t LayerIndex)
{
80043e8: b480 push {r7}
80043ea: b083 sub sp, #12
80043ec: af00 add r7, sp, #0
80043ee: 6078 str r0, [r7, #4]
ActiveLayer = LayerIndex;
80043f0: 4a04 ldr r2, [pc, #16] ; (8004404 <BSP_LCD_SelectLayer+0x1c>)
80043f2: 687b ldr r3, [r7, #4]
80043f4: 6013 str r3, [r2, #0]
}
80043f6: bf00 nop
80043f8: 370c adds r7, #12
80043fa: 46bd mov sp, r7
80043fc: f85d 7b04 ldr.w r7, [sp], #4
8004400: 4770 bx lr
8004402: bf00 nop
8004404: 20020014 .word 0x20020014
08004408 <BSP_LCD_SetLayerVisible>:
* @arg ENABLE
* @arg DISABLE
* @retval None
*/
void BSP_LCD_SetLayerVisible(uint32_t LayerIndex, FunctionalState State)
{
8004408: b480 push {r7}
800440a: b083 sub sp, #12
800440c: af00 add r7, sp, #0
800440e: 6078 str r0, [r7, #4]
8004410: 460b mov r3, r1
8004412: 70fb strb r3, [r7, #3]
if(State == ENABLE)
8004414: 78fb ldrb r3, [r7, #3]
8004416: 2b01 cmp r3, #1
8004418: d113 bne.n 8004442 <BSP_LCD_SetLayerVisible+0x3a>
__HAL_LTDC_LAYER_ENABLE(&hLtdcHandler, LayerIndex);
800441a: 4b1a ldr r3, [pc, #104] ; (8004484 <BSP_LCD_SetLayerVisible+0x7c>)
800441c: 681b ldr r3, [r3, #0]
800441e: 461a mov r2, r3
8004420: 687b ldr r3, [r7, #4]
8004422: 01db lsls r3, r3, #7
8004424: 4413 add r3, r2
8004426: 3384 adds r3, #132 ; 0x84
8004428: 461a mov r2, r3
800442a: 4b16 ldr r3, [pc, #88] ; (8004484 <BSP_LCD_SetLayerVisible+0x7c>)
800442c: 681b ldr r3, [r3, #0]
800442e: 4619 mov r1, r3
8004430: 687b ldr r3, [r7, #4]
8004432: 01db lsls r3, r3, #7
8004434: 440b add r3, r1
8004436: 3384 adds r3, #132 ; 0x84
8004438: 681b ldr r3, [r3, #0]
800443a: f043 0301 orr.w r3, r3, #1
800443e: 6013 str r3, [r2, #0]
8004440: e012 b.n 8004468 <BSP_LCD_SetLayerVisible+0x60>
else __HAL_LTDC_LAYER_DISABLE(&hLtdcHandler, LayerIndex);
8004442: 4b10 ldr r3, [pc, #64] ; (8004484 <BSP_LCD_SetLayerVisible+0x7c>)
8004444: 681b ldr r3, [r3, #0]
8004446: 461a mov r2, r3
8004448: 687b ldr r3, [r7, #4]
800444a: 01db lsls r3, r3, #7
800444c: 4413 add r3, r2
800444e: 3384 adds r3, #132 ; 0x84
8004450: 461a mov r2, r3
8004452: 4b0c ldr r3, [pc, #48] ; (8004484 <BSP_LCD_SetLayerVisible+0x7c>)
8004454: 681b ldr r3, [r3, #0]
8004456: 4619 mov r1, r3
8004458: 687b ldr r3, [r7, #4]
800445a: 01db lsls r3, r3, #7
800445c: 440b add r3, r1
800445e: 3384 adds r3, #132 ; 0x84
8004460: 681b ldr r3, [r3, #0]
8004462: f023 0301 bic.w r3, r3, #1
8004466: 6013 str r3, [r2, #0]
__HAL_LTDC_RELOAD_CONFIG(&hLtdcHandler);
8004468: 4b06 ldr r3, [pc, #24] ; (8004484 <BSP_LCD_SetLayerVisible+0x7c>)
800446a: 681b ldr r3, [r3, #0]
800446c: 4a05 ldr r2, [pc, #20] ; (8004484 <BSP_LCD_SetLayerVisible+0x7c>)
800446e: 6812 ldr r2, [r2, #0]
8004470: 6a52 ldr r2, [r2, #36] ; 0x24
8004472: f042 0201 orr.w r2, r2, #1
8004476: 625a str r2, [r3, #36] ; 0x24
}
8004478: bf00 nop
800447a: 370c adds r7, #12
800447c: 46bd mov sp, r7
800447e: f85d 7b04 ldr.w r7, [sp], #4
8004482: 4770 bx lr
8004484: 2006b9dc .word 0x2006b9dc
08004488 <BSP_LCD_SetLayerVisible_NoReload>:
* @arg ENABLE
* @arg DISABLE
* @retval None
*/
void BSP_LCD_SetLayerVisible_NoReload(uint32_t LayerIndex, FunctionalState State)
{
8004488: b480 push {r7}
800448a: b083 sub sp, #12
800448c: af00 add r7, sp, #0
800448e: 6078 str r0, [r7, #4]
8004490: 460b mov r3, r1
8004492: 70fb strb r3, [r7, #3]
if(State == ENABLE)
8004494: 78fb ldrb r3, [r7, #3]
8004496: 2b01 cmp r3, #1
8004498: d113 bne.n 80044c2 <BSP_LCD_SetLayerVisible_NoReload+0x3a>
__HAL_LTDC_LAYER_ENABLE(&hLtdcHandler, LayerIndex);
800449a: 4b16 ldr r3, [pc, #88] ; (80044f4 <BSP_LCD_SetLayerVisible_NoReload+0x6c>)
800449c: 681b ldr r3, [r3, #0]
800449e: 461a mov r2, r3
80044a0: 687b ldr r3, [r7, #4]
80044a2: 01db lsls r3, r3, #7
80044a4: 4413 add r3, r2
80044a6: 3384 adds r3, #132 ; 0x84
80044a8: 461a mov r2, r3
80044aa: 4b12 ldr r3, [pc, #72] ; (80044f4 <BSP_LCD_SetLayerVisible_NoReload+0x6c>)
80044ac: 681b ldr r3, [r3, #0]
80044ae: 4619 mov r1, r3
80044b0: 687b ldr r3, [r7, #4]
80044b2: 01db lsls r3, r3, #7
80044b4: 440b add r3, r1
80044b6: 3384 adds r3, #132 ; 0x84
80044b8: 681b ldr r3, [r3, #0]
80044ba: f043 0301 orr.w r3, r3, #1
80044be: 6013 str r3, [r2, #0]
else __HAL_LTDC_LAYER_DISABLE(&hLtdcHandler, LayerIndex);
}
80044c0: e012 b.n 80044e8 <BSP_LCD_SetLayerVisible_NoReload+0x60>
else __HAL_LTDC_LAYER_DISABLE(&hLtdcHandler, LayerIndex);
80044c2: 4b0c ldr r3, [pc, #48] ; (80044f4 <BSP_LCD_SetLayerVisible_NoReload+0x6c>)
80044c4: 681b ldr r3, [r3, #0]
80044c6: 461a mov r2, r3
80044c8: 687b ldr r3, [r7, #4]
80044ca: 01db lsls r3, r3, #7
80044cc: 4413 add r3, r2
80044ce: 3384 adds r3, #132 ; 0x84
80044d0: 461a mov r2, r3
80044d2: 4b08 ldr r3, [pc, #32] ; (80044f4 <BSP_LCD_SetLayerVisible_NoReload+0x6c>)
80044d4: 681b ldr r3, [r3, #0]
80044d6: 4619 mov r1, r3
80044d8: 687b ldr r3, [r7, #4]
80044da: 01db lsls r3, r3, #7
80044dc: 440b add r3, r1
80044de: 3384 adds r3, #132 ; 0x84
80044e0: 681b ldr r3, [r3, #0]
80044e2: f023 0301 bic.w r3, r3, #1
80044e6: 6013 str r3, [r2, #0]
}
80044e8: bf00 nop
80044ea: 370c adds r7, #12
80044ec: 46bd mov sp, r7
80044ee: f85d 7b04 ldr.w r7, [sp], #4
80044f2: 4770 bx lr
80044f4: 2006b9dc .word 0x2006b9dc
080044f8 <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)
{
80044f8: b480 push {r7}
80044fa: b083 sub sp, #12
80044fc: af00 add r7, sp, #0
80044fe: 6078 str r0, [r7, #4]
8004500: 6039 str r1, [r7, #0]
DrawProp[ActiveLayer].TextColor = ColorUp;
8004502: 4b0d ldr r3, [pc, #52] ; (8004538 <LCD_SetColors+0x40>)
8004504: 681a ldr r2, [r3, #0]
8004506: 490d ldr r1, [pc, #52] ; (800453c <LCD_SetColors+0x44>)
8004508: 4613 mov r3, r2
800450a: 005b lsls r3, r3, #1
800450c: 4413 add r3, r2
800450e: 009b lsls r3, r3, #2
8004510: 440b add r3, r1
8004512: 687a ldr r2, [r7, #4]
8004514: 601a str r2, [r3, #0]
DrawProp[ActiveLayer].BackColor = ColorDn;
8004516: 4b08 ldr r3, [pc, #32] ; (8004538 <LCD_SetColors+0x40>)
8004518: 681a ldr r2, [r3, #0]
800451a: 4908 ldr r1, [pc, #32] ; (800453c <LCD_SetColors+0x44>)
800451c: 4613 mov r3, r2
800451e: 005b lsls r3, r3, #1
8004520: 4413 add r3, r2
8004522: 009b lsls r3, r3, #2
8004524: 440b add r3, r1
8004526: 3304 adds r3, #4
8004528: 683a ldr r2, [r7, #0]
800452a: 601a str r2, [r3, #0]
}
800452c: bf00 nop
800452e: 370c adds r7, #12
8004530: 46bd mov sp, r7
8004532: f85d 7b04 ldr.w r7, [sp], #4
8004536: 4770 bx lr
8004538: 20020014 .word 0x20020014
800453c: 2006b2b0 .word 0x2006b2b0
08004540 <BSP_LCD_SetTextColor>:
void BSP_LCD_SetTextColor(uint32_t Color)
{
8004540: b480 push {r7}
8004542: b083 sub sp, #12
8004544: af00 add r7, sp, #0
8004546: 6078 str r0, [r7, #4]
DrawProp[ActiveLayer].TextColor = Color;
8004548: 4b07 ldr r3, [pc, #28] ; (8004568 <BSP_LCD_SetTextColor+0x28>)
800454a: 681a ldr r2, [r3, #0]
800454c: 4907 ldr r1, [pc, #28] ; (800456c <BSP_LCD_SetTextColor+0x2c>)
800454e: 4613 mov r3, r2
8004550: 005b lsls r3, r3, #1
8004552: 4413 add r3, r2
8004554: 009b lsls r3, r3, #2
8004556: 440b add r3, r1
8004558: 687a ldr r2, [r7, #4]
800455a: 601a str r2, [r3, #0]
}
800455c: bf00 nop
800455e: 370c adds r7, #12
8004560: 46bd mov sp, r7
8004562: f85d 7b04 ldr.w r7, [sp], #4
8004566: 4770 bx lr
8004568: 20020014 .word 0x20020014
800456c: 2006b2b0 .word 0x2006b2b0
08004570 <BSP_LCD_SetFont>:
* @brief Sets the LCD text font.
* @param fonts: Layer font to be used
* @retval None
*/
void BSP_LCD_SetFont(sFONT *fonts)
{
8004570: b480 push {r7}
8004572: b083 sub sp, #12
8004574: af00 add r7, sp, #0
8004576: 6078 str r0, [r7, #4]
DrawProp[ActiveLayer].pFont = fonts;
8004578: 4b09 ldr r3, [pc, #36] ; (80045a0 <BSP_LCD_SetFont+0x30>)
800457a: 681a ldr r2, [r3, #0]
800457c: 4909 ldr r1, [pc, #36] ; (80045a4 <BSP_LCD_SetFont+0x34>)
800457e: 4613 mov r3, r2
8004580: 005b lsls r3, r3, #1
8004582: 4413 add r3, r2
8004584: 009b lsls r3, r3, #2
8004586: 440b add r3, r1
8004588: 3308 adds r3, #8
800458a: 687a ldr r2, [r7, #4]
800458c: 601a str r2, [r3, #0]
CurrentFont = fonts;
800458e: 4a06 ldr r2, [pc, #24] ; (80045a8 <BSP_LCD_SetFont+0x38>)
8004590: 687b ldr r3, [r7, #4]
8004592: 6013 str r3, [r2, #0]
}
8004594: bf00 nop
8004596: 370c adds r7, #12
8004598: 46bd mov sp, r7
800459a: f85d 7b04 ldr.w r7, [sp], #4
800459e: 4770 bx lr
80045a0: 20020014 .word 0x20020014
80045a4: 2006b2b0 .word 0x2006b2b0
80045a8: 2006b9d8 .word 0x2006b9d8
080045ac <BSP_LCD_Clear>:
* @brief Clears the hole LCD.
* @param Color: Color of the background
* @retval None
*/
void BSP_LCD_Clear(uint32_t Color)
{
80045ac: b5f0 push {r4, r5, r6, r7, lr}
80045ae: b085 sub sp, #20
80045b0: af02 add r7, sp, #8
80045b2: 6078 str r0, [r7, #4]
LL_FillBuffer(ActiveLayer, (uint32_t *)(hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress), BSP_LCD_GetXSize(), BSP_LCD_GetYSize(), 0, Color);
80045b4: 4b0f ldr r3, [pc, #60] ; (80045f4 <BSP_LCD_Clear+0x48>)
80045b6: 681c ldr r4, [r3, #0]
80045b8: 4b0e ldr r3, [pc, #56] ; (80045f4 <BSP_LCD_Clear+0x48>)
80045ba: 681b ldr r3, [r3, #0]
80045bc: 4a0e ldr r2, [pc, #56] ; (80045f8 <BSP_LCD_Clear+0x4c>)
80045be: 2134 movs r1, #52 ; 0x34
80045c0: fb01 f303 mul.w r3, r1, r3
80045c4: 4413 add r3, r2
80045c6: 335c adds r3, #92 ; 0x5c
80045c8: 681b ldr r3, [r3, #0]
80045ca: 461d mov r5, r3
80045cc: f7ff fee4 bl 8004398 <BSP_LCD_GetXSize>
80045d0: 4606 mov r6, r0
80045d2: f7ff fef5 bl 80043c0 <BSP_LCD_GetYSize>
80045d6: 4602 mov r2, r0
80045d8: 687b ldr r3, [r7, #4]
80045da: 9301 str r3, [sp, #4]
80045dc: 2300 movs r3, #0
80045de: 9300 str r3, [sp, #0]
80045e0: 4613 mov r3, r2
80045e2: 4632 mov r2, r6
80045e4: 4629 mov r1, r5
80045e6: 4620 mov r0, r4
80045e8: f000 fd1a bl 8005020 <LL_FillBuffer>
}
80045ec: bf00 nop
80045ee: 370c adds r7, #12
80045f0: 46bd mov sp, r7
80045f2: bdf0 pop {r4, r5, r6, r7, pc}
80045f4: 20020014 .word 0x20020014
80045f8: 2006b9dc .word 0x2006b9dc
080045fc <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)
{
80045fc: b590 push {r4, r7, lr}
80045fe: b083 sub sp, #12
8004600: af00 add r7, sp, #0
8004602: 4603 mov r3, r0
8004604: 80fb strh r3, [r7, #6]
8004606: 460b mov r3, r1
8004608: 80bb strh r3, [r7, #4]
800460a: 4613 mov r3, r2
800460c: 70fb strb r3, [r7, #3]
DrawChar( Xpos, Ypos, &DrawProp[ActiveLayer].pFont->table[(Ascii - ' ') * DrawProp[ActiveLayer].pFont->Height * ((DrawProp[ActiveLayer].pFont->Width + 7) / 8)] );
800460e: 4b1b ldr r3, [pc, #108] ; (800467c <BSP_LCD_DisplayChar+0x80>)
8004610: 681a ldr r2, [r3, #0]
8004612: 491b ldr r1, [pc, #108] ; (8004680 <BSP_LCD_DisplayChar+0x84>)
8004614: 4613 mov r3, r2
8004616: 005b lsls r3, r3, #1
8004618: 4413 add r3, r2
800461a: 009b lsls r3, r3, #2
800461c: 440b add r3, r1
800461e: 3308 adds r3, #8
8004620: 681b ldr r3, [r3, #0]
8004622: 6819 ldr r1, [r3, #0]
8004624: 78fb ldrb r3, [r7, #3]
8004626: f1a3 0020 sub.w r0, r3, #32
800462a: 4b14 ldr r3, [pc, #80] ; (800467c <BSP_LCD_DisplayChar+0x80>)
800462c: 681a ldr r2, [r3, #0]
800462e: 4c14 ldr r4, [pc, #80] ; (8004680 <BSP_LCD_DisplayChar+0x84>)
8004630: 4613 mov r3, r2
8004632: 005b lsls r3, r3, #1
8004634: 4413 add r3, r2
8004636: 009b lsls r3, r3, #2
8004638: 4423 add r3, r4
800463a: 3308 adds r3, #8
800463c: 681b ldr r3, [r3, #0]
800463e: 88db ldrh r3, [r3, #6]
8004640: fb03 f000 mul.w r0, r3, r0
8004644: 4b0d ldr r3, [pc, #52] ; (800467c <BSP_LCD_DisplayChar+0x80>)
8004646: 681a ldr r2, [r3, #0]
8004648: 4c0d ldr r4, [pc, #52] ; (8004680 <BSP_LCD_DisplayChar+0x84>)
800464a: 4613 mov r3, r2
800464c: 005b lsls r3, r3, #1
800464e: 4413 add r3, r2
8004650: 009b lsls r3, r3, #2
8004652: 4423 add r3, r4
8004654: 3308 adds r3, #8
8004656: 681b ldr r3, [r3, #0]
8004658: 889b ldrh r3, [r3, #4]
800465a: 3307 adds r3, #7
800465c: 2b00 cmp r3, #0
800465e: da00 bge.n 8004662 <BSP_LCD_DisplayChar+0x66>
8004660: 3307 adds r3, #7
8004662: 10db asrs r3, r3, #3
8004664: fb03 f300 mul.w r3, r3, r0
8004668: 18ca adds r2, r1, r3
800466a: 88b9 ldrh r1, [r7, #4]
800466c: 88fb ldrh r3, [r7, #6]
800466e: 4618 mov r0, r3
8004670: f000 fc1e bl 8004eb0 <DrawChar>
}
8004674: bf00 nop
8004676: 370c adds r7, #12
8004678: 46bd mov sp, r7
800467a: bd90 pop {r4, r7, pc}
800467c: 20020014 .word 0x20020014
8004680: 2006b2b0 .word 0x2006b2b0
08004684 <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)
{
8004684: b5b0 push {r4, r5, r7, lr}
8004686: b088 sub sp, #32
8004688: af00 add r7, sp, #0
800468a: 60ba str r2, [r7, #8]
800468c: 461a mov r2, r3
800468e: 4603 mov r3, r0
8004690: 81fb strh r3, [r7, #14]
8004692: 460b mov r3, r1
8004694: 81bb strh r3, [r7, #12]
8004696: 4613 mov r3, r2
8004698: 71fb strb r3, [r7, #7]
uint16_t ref_column = 1, i = 0, ll = 0;
800469a: 2301 movs r3, #1
800469c: 83fb strh r3, [r7, #30]
800469e: 2300 movs r3, #0
80046a0: 83bb strh r3, [r7, #28]
80046a2: 2300 movs r3, #0
80046a4: 827b strh r3, [r7, #18]
uint32_t size = 0;
80046a6: 2300 movs r3, #0
80046a8: 61bb str r3, [r7, #24]
uint8_t *ptr;
ptr = (uint8_t *) Text;
80046aa: 68bb ldr r3, [r7, #8]
80046ac: 617b str r3, [r7, #20]
/* Get the text size */
while (*ptr++) size++ ;
80046ae: e002 b.n 80046b6 <BSP_LCD_DisplayStringAt+0x32>
80046b0: 69bb ldr r3, [r7, #24]
80046b2: 3301 adds r3, #1
80046b4: 61bb str r3, [r7, #24]
80046b6: 697b ldr r3, [r7, #20]
80046b8: 1c5a adds r2, r3, #1
80046ba: 617a str r2, [r7, #20]
80046bc: 781b ldrb r3, [r3, #0]
80046be: 2b00 cmp r3, #0
80046c0: d1f6 bne.n 80046b0 <BSP_LCD_DisplayStringAt+0x2c>
/* Characters number per line */
// xsize = (BSP_LCD_GetXSize() / DrawProp[ActiveLayer].pFont->Width);
switch (Mode)
80046c2: 79fb ldrb r3, [r7, #7]
80046c4: 2b02 cmp r3, #2
80046c6: d01d beq.n 8004704 <BSP_LCD_DisplayStringAt+0x80>
80046c8: 2b03 cmp r3, #3
80046ca: d018 beq.n 80046fe <BSP_LCD_DisplayStringAt+0x7a>
80046cc: 2b01 cmp r3, #1
80046ce: d12e bne.n 800472e <BSP_LCD_DisplayStringAt+0xaa>
{
case CENTER_MODE:
{
ll = DrawProp[ActiveLayer].pFont->Width * size;
80046d0: 4b44 ldr r3, [pc, #272] ; (80047e4 <BSP_LCD_DisplayStringAt+0x160>)
80046d2: 681a ldr r2, [r3, #0]
80046d4: 4944 ldr r1, [pc, #272] ; (80047e8 <BSP_LCD_DisplayStringAt+0x164>)
80046d6: 4613 mov r3, r2
80046d8: 005b lsls r3, r3, #1
80046da: 4413 add r3, r2
80046dc: 009b lsls r3, r3, #2
80046de: 440b add r3, r1
80046e0: 3308 adds r3, #8
80046e2: 681b ldr r3, [r3, #0]
80046e4: 889a ldrh r2, [r3, #4]
80046e6: 69bb ldr r3, [r7, #24]
80046e8: b29b uxth r3, r3
80046ea: fb12 f303 smulbb r3, r2, r3
80046ee: 827b strh r3, [r7, #18]
ref_column = Xpos - (ll >> 1);
80046f0: 8a7b ldrh r3, [r7, #18]
80046f2: 085b lsrs r3, r3, #1
80046f4: b29b uxth r3, r3
80046f6: 89fa ldrh r2, [r7, #14]
80046f8: 1ad3 subs r3, r2, r3
80046fa: 83fb strh r3, [r7, #30]
//if((ref_column + ll > 319) || (ref_column > 319))
// ref_column = Xpos + ((xsize - size)* DrawProp[ActiveLayer].pFont->Width) / 2;
break;
80046fc: e01a b.n 8004734 <BSP_LCD_DisplayStringAt+0xb0>
}
case LEFT_MODE:
{
ref_column = Xpos;
80046fe: 89fb ldrh r3, [r7, #14]
8004700: 83fb strh r3, [r7, #30]
break;
8004702: e017 b.n 8004734 <BSP_LCD_DisplayStringAt+0xb0>
}
case RIGHT_MODE:
{
ll = DrawProp[ActiveLayer].pFont->Width * size;
8004704: 4b37 ldr r3, [pc, #220] ; (80047e4 <BSP_LCD_DisplayStringAt+0x160>)
8004706: 681a ldr r2, [r3, #0]
8004708: 4937 ldr r1, [pc, #220] ; (80047e8 <BSP_LCD_DisplayStringAt+0x164>)
800470a: 4613 mov r3, r2
800470c: 005b lsls r3, r3, #1
800470e: 4413 add r3, r2
8004710: 009b lsls r3, r3, #2
8004712: 440b add r3, r1
8004714: 3308 adds r3, #8
8004716: 681b ldr r3, [r3, #0]
8004718: 889a ldrh r2, [r3, #4]
800471a: 69bb ldr r3, [r7, #24]
800471c: b29b uxth r3, r3
800471e: fb12 f303 smulbb r3, r2, r3
8004722: 827b strh r3, [r7, #18]
ref_column = Xpos - ll;
8004724: 89fa ldrh r2, [r7, #14]
8004726: 8a7b ldrh r3, [r7, #18]
8004728: 1ad3 subs r3, r2, r3
800472a: 83fb strh r3, [r7, #30]
// ref_column = - Xpos + ((xsize - size)*DrawProp[ActiveLayer].pFont->Width);
break;
800472c: e002 b.n 8004734 <BSP_LCD_DisplayStringAt+0xb0>
}
default:
{
ref_column = Xpos;
800472e: 89fb ldrh r3, [r7, #14]
8004730: 83fb strh r3, [r7, #30]
break;
8004732: bf00 nop
}
}
/* Check that the Start column is located in the screen */
if ((ref_column < 1) || (ref_column >= 0x8000))
8004734: 8bfb ldrh r3, [r7, #30]
8004736: 2b00 cmp r3, #0
8004738: d003 beq.n 8004742 <BSP_LCD_DisplayStringAt+0xbe>
800473a: f9b7 301e ldrsh.w r3, [r7, #30]
800473e: 2b00 cmp r3, #0
8004740: da1d bge.n 800477e <BSP_LCD_DisplayStringAt+0xfa>
{
ref_column = 1;
8004742: 2301 movs r3, #1
8004744: 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))
8004746: e01a b.n 800477e <BSP_LCD_DisplayStringAt+0xfa>
{
/* Display one character on LCD */
BSP_LCD_DisplayChar(ref_column, Ypos, *Text);
8004748: 68bb ldr r3, [r7, #8]
800474a: 781a ldrb r2, [r3, #0]
800474c: 89b9 ldrh r1, [r7, #12]
800474e: 8bfb ldrh r3, [r7, #30]
8004750: 4618 mov r0, r3
8004752: f7ff ff53 bl 80045fc <BSP_LCD_DisplayChar>
/* Decrement the column position by 16 */
ref_column += DrawProp[ActiveLayer].pFont->Width;
8004756: 4b23 ldr r3, [pc, #140] ; (80047e4 <BSP_LCD_DisplayStringAt+0x160>)
8004758: 681a ldr r2, [r3, #0]
800475a: 4923 ldr r1, [pc, #140] ; (80047e8 <BSP_LCD_DisplayStringAt+0x164>)
800475c: 4613 mov r3, r2
800475e: 005b lsls r3, r3, #1
8004760: 4413 add r3, r2
8004762: 009b lsls r3, r3, #2
8004764: 440b add r3, r1
8004766: 3308 adds r3, #8
8004768: 681b ldr r3, [r3, #0]
800476a: 889a ldrh r2, [r3, #4]
800476c: 8bfb ldrh r3, [r7, #30]
800476e: 4413 add r3, r2
8004770: 83fb strh r3, [r7, #30]
/* Point on the next character */
Text++;
8004772: 68bb ldr r3, [r7, #8]
8004774: 3301 adds r3, #1
8004776: 60bb str r3, [r7, #8]
i++;
8004778: 8bbb ldrh r3, [r7, #28]
800477a: 3301 adds r3, #1
800477c: 83bb strh r3, [r7, #28]
while ((*Text != 0) & (((BSP_LCD_GetXSize() - (i*DrawProp[ActiveLayer].pFont->Width)) & 0xFFFF) >= DrawProp[ActiveLayer].pFont->Width))
800477e: 68bb ldr r3, [r7, #8]
8004780: 781b ldrb r3, [r3, #0]
8004782: 2b00 cmp r3, #0
8004784: bf14 ite ne
8004786: 2301 movne r3, #1
8004788: 2300 moveq r3, #0
800478a: b2dc uxtb r4, r3
800478c: f7ff fe04 bl 8004398 <BSP_LCD_GetXSize>
8004790: 4605 mov r5, r0
8004792: 8bb9 ldrh r1, [r7, #28]
8004794: 4b13 ldr r3, [pc, #76] ; (80047e4 <BSP_LCD_DisplayStringAt+0x160>)
8004796: 681a ldr r2, [r3, #0]
8004798: 4813 ldr r0, [pc, #76] ; (80047e8 <BSP_LCD_DisplayStringAt+0x164>)
800479a: 4613 mov r3, r2
800479c: 005b lsls r3, r3, #1
800479e: 4413 add r3, r2
80047a0: 009b lsls r3, r3, #2
80047a2: 4403 add r3, r0
80047a4: 3308 adds r3, #8
80047a6: 681b ldr r3, [r3, #0]
80047a8: 889b ldrh r3, [r3, #4]
80047aa: fb03 f301 mul.w r3, r3, r1
80047ae: 1aeb subs r3, r5, r3
80047b0: b299 uxth r1, r3
80047b2: 4b0c ldr r3, [pc, #48] ; (80047e4 <BSP_LCD_DisplayStringAt+0x160>)
80047b4: 681a ldr r2, [r3, #0]
80047b6: 480c ldr r0, [pc, #48] ; (80047e8 <BSP_LCD_DisplayStringAt+0x164>)
80047b8: 4613 mov r3, r2
80047ba: 005b lsls r3, r3, #1
80047bc: 4413 add r3, r2
80047be: 009b lsls r3, r3, #2
80047c0: 4403 add r3, r0
80047c2: 3308 adds r3, #8
80047c4: 681b ldr r3, [r3, #0]
80047c6: 889b ldrh r3, [r3, #4]
80047c8: 4299 cmp r1, r3
80047ca: bf2c ite cs
80047cc: 2301 movcs r3, #1
80047ce: 2300 movcc r3, #0
80047d0: b2db uxtb r3, r3
80047d2: 4023 ands r3, r4
80047d4: b2db uxtb r3, r3
80047d6: 2b00 cmp r3, #0
80047d8: d1b6 bne.n 8004748 <BSP_LCD_DisplayStringAt+0xc4>
}
}
80047da: bf00 nop
80047dc: 3720 adds r7, #32
80047de: 46bd mov sp, r7
80047e0: bdb0 pop {r4, r5, r7, pc}
80047e2: bf00 nop
80047e4: 20020014 .word 0x20020014
80047e8: 2006b2b0 .word 0x2006b2b0
080047ec <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)
{
80047ec: b5b0 push {r4, r5, r7, lr}
80047ee: b086 sub sp, #24
80047f0: af02 add r7, sp, #8
80047f2: 4603 mov r3, r0
80047f4: 80fb strh r3, [r7, #6]
80047f6: 460b mov r3, r1
80047f8: 80bb strh r3, [r7, #4]
80047fa: 4613 mov r3, r2
80047fc: 807b strh r3, [r7, #2]
uint32_t Xaddress = 0;
80047fe: 2300 movs r3, #0
8004800: 60fb str r3, [r7, #12]
/* Get the line address */
if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565)
8004802: 4b26 ldr r3, [pc, #152] ; (800489c <BSP_LCD_DrawHLine+0xb0>)
8004804: 681b ldr r3, [r3, #0]
8004806: 4a26 ldr r2, [pc, #152] ; (80048a0 <BSP_LCD_DrawHLine+0xb4>)
8004808: 2134 movs r1, #52 ; 0x34
800480a: fb01 f303 mul.w r3, r1, r3
800480e: 4413 add r3, r2
8004810: 3348 adds r3, #72 ; 0x48
8004812: 681b ldr r3, [r3, #0]
8004814: 2b02 cmp r3, #2
8004816: d114 bne.n 8004842 <BSP_LCD_DrawHLine+0x56>
{ /* RGB565 format */
Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 2*(BSP_LCD_GetXSize()*Ypos + Xpos);
8004818: 4b20 ldr r3, [pc, #128] ; (800489c <BSP_LCD_DrawHLine+0xb0>)
800481a: 681b ldr r3, [r3, #0]
800481c: 4a20 ldr r2, [pc, #128] ; (80048a0 <BSP_LCD_DrawHLine+0xb4>)
800481e: 2134 movs r1, #52 ; 0x34
8004820: fb01 f303 mul.w r3, r1, r3
8004824: 4413 add r3, r2
8004826: 335c adds r3, #92 ; 0x5c
8004828: 681c ldr r4, [r3, #0]
800482a: f7ff fdb5 bl 8004398 <BSP_LCD_GetXSize>
800482e: 4602 mov r2, r0
8004830: 88bb ldrh r3, [r7, #4]
8004832: fb03 f202 mul.w r2, r3, r2
8004836: 88fb ldrh r3, [r7, #6]
8004838: 4413 add r3, r2
800483a: 005b lsls r3, r3, #1
800483c: 4423 add r3, r4
800483e: 60fb str r3, [r7, #12]
8004840: e013 b.n 800486a <BSP_LCD_DrawHLine+0x7e>
}
else
{ /* ARGB8888 format */
Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 4*(BSP_LCD_GetXSize()*Ypos + Xpos);
8004842: 4b16 ldr r3, [pc, #88] ; (800489c <BSP_LCD_DrawHLine+0xb0>)
8004844: 681b ldr r3, [r3, #0]
8004846: 4a16 ldr r2, [pc, #88] ; (80048a0 <BSP_LCD_DrawHLine+0xb4>)
8004848: 2134 movs r1, #52 ; 0x34
800484a: fb01 f303 mul.w r3, r1, r3
800484e: 4413 add r3, r2
8004850: 335c adds r3, #92 ; 0x5c
8004852: 681c ldr r4, [r3, #0]
8004854: f7ff fda0 bl 8004398 <BSP_LCD_GetXSize>
8004858: 4602 mov r2, r0
800485a: 88bb ldrh r3, [r7, #4]
800485c: fb03 f202 mul.w r2, r3, r2
8004860: 88fb ldrh r3, [r7, #6]
8004862: 4413 add r3, r2
8004864: 009b lsls r3, r3, #2
8004866: 4423 add r3, r4
8004868: 60fb str r3, [r7, #12]
}
/* Write line */
LL_FillBuffer(ActiveLayer, (uint32_t *)Xaddress, Length, 1, 0, DrawProp[ActiveLayer].TextColor);
800486a: 4b0c ldr r3, [pc, #48] ; (800489c <BSP_LCD_DrawHLine+0xb0>)
800486c: 6818 ldr r0, [r3, #0]
800486e: 68fc ldr r4, [r7, #12]
8004870: 887d ldrh r5, [r7, #2]
8004872: 4b0a ldr r3, [pc, #40] ; (800489c <BSP_LCD_DrawHLine+0xb0>)
8004874: 681a ldr r2, [r3, #0]
8004876: 490b ldr r1, [pc, #44] ; (80048a4 <BSP_LCD_DrawHLine+0xb8>)
8004878: 4613 mov r3, r2
800487a: 005b lsls r3, r3, #1
800487c: 4413 add r3, r2
800487e: 009b lsls r3, r3, #2
8004880: 440b add r3, r1
8004882: 681b ldr r3, [r3, #0]
8004884: 9301 str r3, [sp, #4]
8004886: 2300 movs r3, #0
8004888: 9300 str r3, [sp, #0]
800488a: 2301 movs r3, #1
800488c: 462a mov r2, r5
800488e: 4621 mov r1, r4
8004890: f000 fbc6 bl 8005020 <LL_FillBuffer>
}
8004894: bf00 nop
8004896: 3710 adds r7, #16
8004898: 46bd mov sp, r7
800489a: bdb0 pop {r4, r5, r7, pc}
800489c: 20020014 .word 0x20020014
80048a0: 2006b9dc .word 0x2006b9dc
80048a4: 2006b2b0 .word 0x2006b2b0
080048a8 <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)
{
80048a8: b5f0 push {r4, r5, r6, r7, lr}
80048aa: b087 sub sp, #28
80048ac: af02 add r7, sp, #8
80048ae: 4603 mov r3, r0
80048b0: 80fb strh r3, [r7, #6]
80048b2: 460b mov r3, r1
80048b4: 80bb strh r3, [r7, #4]
80048b6: 4613 mov r3, r2
80048b8: 807b strh r3, [r7, #2]
uint32_t Xaddress = 0;
80048ba: 2300 movs r3, #0
80048bc: 60fb str r3, [r7, #12]
/* Get the line address */
if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565)
80048be: 4b28 ldr r3, [pc, #160] ; (8004960 <BSP_LCD_DrawVLine+0xb8>)
80048c0: 681b ldr r3, [r3, #0]
80048c2: 4a28 ldr r2, [pc, #160] ; (8004964 <BSP_LCD_DrawVLine+0xbc>)
80048c4: 2134 movs r1, #52 ; 0x34
80048c6: fb01 f303 mul.w r3, r1, r3
80048ca: 4413 add r3, r2
80048cc: 3348 adds r3, #72 ; 0x48
80048ce: 681b ldr r3, [r3, #0]
80048d0: 2b02 cmp r3, #2
80048d2: d114 bne.n 80048fe <BSP_LCD_DrawVLine+0x56>
{ /* RGB565 format */
Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 2*(BSP_LCD_GetXSize()*Ypos + Xpos);
80048d4: 4b22 ldr r3, [pc, #136] ; (8004960 <BSP_LCD_DrawVLine+0xb8>)
80048d6: 681b ldr r3, [r3, #0]
80048d8: 4a22 ldr r2, [pc, #136] ; (8004964 <BSP_LCD_DrawVLine+0xbc>)
80048da: 2134 movs r1, #52 ; 0x34
80048dc: fb01 f303 mul.w r3, r1, r3
80048e0: 4413 add r3, r2
80048e2: 335c adds r3, #92 ; 0x5c
80048e4: 681c ldr r4, [r3, #0]
80048e6: f7ff fd57 bl 8004398 <BSP_LCD_GetXSize>
80048ea: 4602 mov r2, r0
80048ec: 88bb ldrh r3, [r7, #4]
80048ee: fb03 f202 mul.w r2, r3, r2
80048f2: 88fb ldrh r3, [r7, #6]
80048f4: 4413 add r3, r2
80048f6: 005b lsls r3, r3, #1
80048f8: 4423 add r3, r4
80048fa: 60fb str r3, [r7, #12]
80048fc: e013 b.n 8004926 <BSP_LCD_DrawVLine+0x7e>
}
else
{ /* ARGB8888 format */
Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 4*(BSP_LCD_GetXSize()*Ypos + Xpos);
80048fe: 4b18 ldr r3, [pc, #96] ; (8004960 <BSP_LCD_DrawVLine+0xb8>)
8004900: 681b ldr r3, [r3, #0]
8004902: 4a18 ldr r2, [pc, #96] ; (8004964 <BSP_LCD_DrawVLine+0xbc>)
8004904: 2134 movs r1, #52 ; 0x34
8004906: fb01 f303 mul.w r3, r1, r3
800490a: 4413 add r3, r2
800490c: 335c adds r3, #92 ; 0x5c
800490e: 681c ldr r4, [r3, #0]
8004910: f7ff fd42 bl 8004398 <BSP_LCD_GetXSize>
8004914: 4602 mov r2, r0
8004916: 88bb ldrh r3, [r7, #4]
8004918: fb03 f202 mul.w r2, r3, r2
800491c: 88fb ldrh r3, [r7, #6]
800491e: 4413 add r3, r2
8004920: 009b lsls r3, r3, #2
8004922: 4423 add r3, r4
8004924: 60fb str r3, [r7, #12]
}
/* Write line */
LL_FillBuffer(ActiveLayer, (uint32_t *)Xaddress, 1, Length, (BSP_LCD_GetXSize() - 1), DrawProp[ActiveLayer].TextColor);
8004926: 4b0e ldr r3, [pc, #56] ; (8004960 <BSP_LCD_DrawVLine+0xb8>)
8004928: 681c ldr r4, [r3, #0]
800492a: 68fd ldr r5, [r7, #12]
800492c: 887e ldrh r6, [r7, #2]
800492e: f7ff fd33 bl 8004398 <BSP_LCD_GetXSize>
8004932: 4603 mov r3, r0
8004934: 1e59 subs r1, r3, #1
8004936: 4b0a ldr r3, [pc, #40] ; (8004960 <BSP_LCD_DrawVLine+0xb8>)
8004938: 681a ldr r2, [r3, #0]
800493a: 480b ldr r0, [pc, #44] ; (8004968 <BSP_LCD_DrawVLine+0xc0>)
800493c: 4613 mov r3, r2
800493e: 005b lsls r3, r3, #1
8004940: 4413 add r3, r2
8004942: 009b lsls r3, r3, #2
8004944: 4403 add r3, r0
8004946: 681b ldr r3, [r3, #0]
8004948: 9301 str r3, [sp, #4]
800494a: 9100 str r1, [sp, #0]
800494c: 4633 mov r3, r6
800494e: 2201 movs r2, #1
8004950: 4629 mov r1, r5
8004952: 4620 mov r0, r4
8004954: f000 fb64 bl 8005020 <LL_FillBuffer>
}
8004958: bf00 nop
800495a: 3714 adds r7, #20
800495c: 46bd mov sp, r7
800495e: bdf0 pop {r4, r5, r6, r7, pc}
8004960: 20020014 .word 0x20020014
8004964: 2006b9dc .word 0x2006b9dc
8004968: 2006b2b0 .word 0x2006b2b0
0800496c <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)
{
800496c: b590 push {r4, r7, lr}
800496e: b083 sub sp, #12
8004970: af00 add r7, sp, #0
8004972: 4604 mov r4, r0
8004974: 4608 mov r0, r1
8004976: 4611 mov r1, r2
8004978: 461a mov r2, r3
800497a: 4623 mov r3, r4
800497c: 80fb strh r3, [r7, #6]
800497e: 4603 mov r3, r0
8004980: 80bb strh r3, [r7, #4]
8004982: 460b mov r3, r1
8004984: 807b strh r3, [r7, #2]
8004986: 4613 mov r3, r2
8004988: 803b strh r3, [r7, #0]
BSP_LCD_DrawHLine(Xpos, Ypos, Width);
800498a: 887a ldrh r2, [r7, #2]
800498c: 88b9 ldrh r1, [r7, #4]
800498e: 88fb ldrh r3, [r7, #6]
8004990: 4618 mov r0, r3
8004992: f7ff ff2b bl 80047ec <BSP_LCD_DrawHLine>
BSP_LCD_DrawVLine(Xpos, Ypos, Height);
8004996: 883a ldrh r2, [r7, #0]
8004998: 88b9 ldrh r1, [r7, #4]
800499a: 88fb ldrh r3, [r7, #6]
800499c: 4618 mov r0, r3
800499e: f7ff ff83 bl 80048a8 <BSP_LCD_DrawVLine>
BSP_LCD_DrawHLine(Xpos, (Ypos + Height), Width);
80049a2: 88ba ldrh r2, [r7, #4]
80049a4: 883b ldrh r3, [r7, #0]
80049a6: 4413 add r3, r2
80049a8: b299 uxth r1, r3
80049aa: 887a ldrh r2, [r7, #2]
80049ac: 88fb ldrh r3, [r7, #6]
80049ae: 4618 mov r0, r3
80049b0: f7ff ff1c bl 80047ec <BSP_LCD_DrawHLine>
BSP_LCD_DrawVLine((Xpos + Width), Ypos, Height + 1);
80049b4: 88fa ldrh r2, [r7, #6]
80049b6: 887b ldrh r3, [r7, #2]
80049b8: 4413 add r3, r2
80049ba: b298 uxth r0, r3
80049bc: 883b ldrh r3, [r7, #0]
80049be: 3301 adds r3, #1
80049c0: b29a uxth r2, r3
80049c2: 88bb ldrh r3, [r7, #4]
80049c4: 4619 mov r1, r3
80049c6: f7ff ff6f bl 80048a8 <BSP_LCD_DrawVLine>
}
80049ca: bf00 nop
80049cc: 370c adds r7, #12
80049ce: 46bd mov sp, r7
80049d0: bd90 pop {r4, r7, pc}
...
080049d4 <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)
{
80049d4: b590 push {r4, r7, lr}
80049d6: b087 sub sp, #28
80049d8: af00 add r7, sp, #0
80049da: 4603 mov r3, r0
80049dc: 80fb strh r3, [r7, #6]
80049de: 460b mov r3, r1
80049e0: 80bb strh r3, [r7, #4]
80049e2: 4613 mov r3, r2
80049e4: 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);
80049e6: 887b ldrh r3, [r7, #2]
80049e8: 005b lsls r3, r3, #1
80049ea: f1c3 0303 rsb r3, r3, #3
80049ee: 617b str r3, [r7, #20]
current_x = 0;
80049f0: 2300 movs r3, #0
80049f2: 613b str r3, [r7, #16]
current_y = Radius;
80049f4: 887b ldrh r3, [r7, #2]
80049f6: 60fb str r3, [r7, #12]
while (current_x <= current_y)
80049f8: e0cf b.n 8004b9a <BSP_LCD_DrawCircle+0x1c6>
{
BSP_LCD_DrawPixel((Xpos + current_x), (Ypos - current_y), DrawProp[ActiveLayer].TextColor);
80049fa: 693b ldr r3, [r7, #16]
80049fc: b29a uxth r2, r3
80049fe: 88fb ldrh r3, [r7, #6]
8004a00: 4413 add r3, r2
8004a02: b298 uxth r0, r3
8004a04: 68fb ldr r3, [r7, #12]
8004a06: b29b uxth r3, r3
8004a08: 88ba ldrh r2, [r7, #4]
8004a0a: 1ad3 subs r3, r2, r3
8004a0c: b29c uxth r4, r3
8004a0e: 4b67 ldr r3, [pc, #412] ; (8004bac <BSP_LCD_DrawCircle+0x1d8>)
8004a10: 681a ldr r2, [r3, #0]
8004a12: 4967 ldr r1, [pc, #412] ; (8004bb0 <BSP_LCD_DrawCircle+0x1dc>)
8004a14: 4613 mov r3, r2
8004a16: 005b lsls r3, r3, #1
8004a18: 4413 add r3, r2
8004a1a: 009b lsls r3, r3, #2
8004a1c: 440b add r3, r1
8004a1e: 681b ldr r3, [r3, #0]
8004a20: 461a mov r2, r3
8004a22: 4621 mov r1, r4
8004a24: f000 f8c6 bl 8004bb4 <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos - current_x), (Ypos - current_y), DrawProp[ActiveLayer].TextColor);
8004a28: 693b ldr r3, [r7, #16]
8004a2a: b29b uxth r3, r3
8004a2c: 88fa ldrh r2, [r7, #6]
8004a2e: 1ad3 subs r3, r2, r3
8004a30: b298 uxth r0, r3
8004a32: 68fb ldr r3, [r7, #12]
8004a34: b29b uxth r3, r3
8004a36: 88ba ldrh r2, [r7, #4]
8004a38: 1ad3 subs r3, r2, r3
8004a3a: b29c uxth r4, r3
8004a3c: 4b5b ldr r3, [pc, #364] ; (8004bac <BSP_LCD_DrawCircle+0x1d8>)
8004a3e: 681a ldr r2, [r3, #0]
8004a40: 495b ldr r1, [pc, #364] ; (8004bb0 <BSP_LCD_DrawCircle+0x1dc>)
8004a42: 4613 mov r3, r2
8004a44: 005b lsls r3, r3, #1
8004a46: 4413 add r3, r2
8004a48: 009b lsls r3, r3, #2
8004a4a: 440b add r3, r1
8004a4c: 681b ldr r3, [r3, #0]
8004a4e: 461a mov r2, r3
8004a50: 4621 mov r1, r4
8004a52: f000 f8af bl 8004bb4 <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos + current_y), (Ypos - current_x), DrawProp[ActiveLayer].TextColor);
8004a56: 68fb ldr r3, [r7, #12]
8004a58: b29a uxth r2, r3
8004a5a: 88fb ldrh r3, [r7, #6]
8004a5c: 4413 add r3, r2
8004a5e: b298 uxth r0, r3
8004a60: 693b ldr r3, [r7, #16]
8004a62: b29b uxth r3, r3
8004a64: 88ba ldrh r2, [r7, #4]
8004a66: 1ad3 subs r3, r2, r3
8004a68: b29c uxth r4, r3
8004a6a: 4b50 ldr r3, [pc, #320] ; (8004bac <BSP_LCD_DrawCircle+0x1d8>)
8004a6c: 681a ldr r2, [r3, #0]
8004a6e: 4950 ldr r1, [pc, #320] ; (8004bb0 <BSP_LCD_DrawCircle+0x1dc>)
8004a70: 4613 mov r3, r2
8004a72: 005b lsls r3, r3, #1
8004a74: 4413 add r3, r2
8004a76: 009b lsls r3, r3, #2
8004a78: 440b add r3, r1
8004a7a: 681b ldr r3, [r3, #0]
8004a7c: 461a mov r2, r3
8004a7e: 4621 mov r1, r4
8004a80: f000 f898 bl 8004bb4 <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos - current_y), (Ypos - current_x), DrawProp[ActiveLayer].TextColor);
8004a84: 68fb ldr r3, [r7, #12]
8004a86: b29b uxth r3, r3
8004a88: 88fa ldrh r2, [r7, #6]
8004a8a: 1ad3 subs r3, r2, r3
8004a8c: b298 uxth r0, r3
8004a8e: 693b ldr r3, [r7, #16]
8004a90: b29b uxth r3, r3
8004a92: 88ba ldrh r2, [r7, #4]
8004a94: 1ad3 subs r3, r2, r3
8004a96: b29c uxth r4, r3
8004a98: 4b44 ldr r3, [pc, #272] ; (8004bac <BSP_LCD_DrawCircle+0x1d8>)
8004a9a: 681a ldr r2, [r3, #0]
8004a9c: 4944 ldr r1, [pc, #272] ; (8004bb0 <BSP_LCD_DrawCircle+0x1dc>)
8004a9e: 4613 mov r3, r2
8004aa0: 005b lsls r3, r3, #1
8004aa2: 4413 add r3, r2
8004aa4: 009b lsls r3, r3, #2
8004aa6: 440b add r3, r1
8004aa8: 681b ldr r3, [r3, #0]
8004aaa: 461a mov r2, r3
8004aac: 4621 mov r1, r4
8004aae: f000 f881 bl 8004bb4 <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos + current_x), (Ypos + current_y), DrawProp[ActiveLayer].TextColor);
8004ab2: 693b ldr r3, [r7, #16]
8004ab4: b29a uxth r2, r3
8004ab6: 88fb ldrh r3, [r7, #6]
8004ab8: 4413 add r3, r2
8004aba: b298 uxth r0, r3
8004abc: 68fb ldr r3, [r7, #12]
8004abe: b29a uxth r2, r3
8004ac0: 88bb ldrh r3, [r7, #4]
8004ac2: 4413 add r3, r2
8004ac4: b29c uxth r4, r3
8004ac6: 4b39 ldr r3, [pc, #228] ; (8004bac <BSP_LCD_DrawCircle+0x1d8>)
8004ac8: 681a ldr r2, [r3, #0]
8004aca: 4939 ldr r1, [pc, #228] ; (8004bb0 <BSP_LCD_DrawCircle+0x1dc>)
8004acc: 4613 mov r3, r2
8004ace: 005b lsls r3, r3, #1
8004ad0: 4413 add r3, r2
8004ad2: 009b lsls r3, r3, #2
8004ad4: 440b add r3, r1
8004ad6: 681b ldr r3, [r3, #0]
8004ad8: 461a mov r2, r3
8004ada: 4621 mov r1, r4
8004adc: f000 f86a bl 8004bb4 <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos - current_x), (Ypos + current_y), DrawProp[ActiveLayer].TextColor);
8004ae0: 693b ldr r3, [r7, #16]
8004ae2: b29b uxth r3, r3
8004ae4: 88fa ldrh r2, [r7, #6]
8004ae6: 1ad3 subs r3, r2, r3
8004ae8: b298 uxth r0, r3
8004aea: 68fb ldr r3, [r7, #12]
8004aec: b29a uxth r2, r3
8004aee: 88bb ldrh r3, [r7, #4]
8004af0: 4413 add r3, r2
8004af2: b29c uxth r4, r3
8004af4: 4b2d ldr r3, [pc, #180] ; (8004bac <BSP_LCD_DrawCircle+0x1d8>)
8004af6: 681a ldr r2, [r3, #0]
8004af8: 492d ldr r1, [pc, #180] ; (8004bb0 <BSP_LCD_DrawCircle+0x1dc>)
8004afa: 4613 mov r3, r2
8004afc: 005b lsls r3, r3, #1
8004afe: 4413 add r3, r2
8004b00: 009b lsls r3, r3, #2
8004b02: 440b add r3, r1
8004b04: 681b ldr r3, [r3, #0]
8004b06: 461a mov r2, r3
8004b08: 4621 mov r1, r4
8004b0a: f000 f853 bl 8004bb4 <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos + current_y), (Ypos + current_x), DrawProp[ActiveLayer].TextColor);
8004b0e: 68fb ldr r3, [r7, #12]
8004b10: b29a uxth r2, r3
8004b12: 88fb ldrh r3, [r7, #6]
8004b14: 4413 add r3, r2
8004b16: b298 uxth r0, r3
8004b18: 693b ldr r3, [r7, #16]
8004b1a: b29a uxth r2, r3
8004b1c: 88bb ldrh r3, [r7, #4]
8004b1e: 4413 add r3, r2
8004b20: b29c uxth r4, r3
8004b22: 4b22 ldr r3, [pc, #136] ; (8004bac <BSP_LCD_DrawCircle+0x1d8>)
8004b24: 681a ldr r2, [r3, #0]
8004b26: 4922 ldr r1, [pc, #136] ; (8004bb0 <BSP_LCD_DrawCircle+0x1dc>)
8004b28: 4613 mov r3, r2
8004b2a: 005b lsls r3, r3, #1
8004b2c: 4413 add r3, r2
8004b2e: 009b lsls r3, r3, #2
8004b30: 440b add r3, r1
8004b32: 681b ldr r3, [r3, #0]
8004b34: 461a mov r2, r3
8004b36: 4621 mov r1, r4
8004b38: f000 f83c bl 8004bb4 <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos - current_y), (Ypos + current_x), DrawProp[ActiveLayer].TextColor);
8004b3c: 68fb ldr r3, [r7, #12]
8004b3e: b29b uxth r3, r3
8004b40: 88fa ldrh r2, [r7, #6]
8004b42: 1ad3 subs r3, r2, r3
8004b44: b298 uxth r0, r3
8004b46: 693b ldr r3, [r7, #16]
8004b48: b29a uxth r2, r3
8004b4a: 88bb ldrh r3, [r7, #4]
8004b4c: 4413 add r3, r2
8004b4e: b29c uxth r4, r3
8004b50: 4b16 ldr r3, [pc, #88] ; (8004bac <BSP_LCD_DrawCircle+0x1d8>)
8004b52: 681a ldr r2, [r3, #0]
8004b54: 4916 ldr r1, [pc, #88] ; (8004bb0 <BSP_LCD_DrawCircle+0x1dc>)
8004b56: 4613 mov r3, r2
8004b58: 005b lsls r3, r3, #1
8004b5a: 4413 add r3, r2
8004b5c: 009b lsls r3, r3, #2
8004b5e: 440b add r3, r1
8004b60: 681b ldr r3, [r3, #0]
8004b62: 461a mov r2, r3
8004b64: 4621 mov r1, r4
8004b66: f000 f825 bl 8004bb4 <BSP_LCD_DrawPixel>
if (decision < 0)
8004b6a: 697b ldr r3, [r7, #20]
8004b6c: 2b00 cmp r3, #0
8004b6e: da06 bge.n 8004b7e <BSP_LCD_DrawCircle+0x1aa>
{
decision += (current_x << 2) + 6;
8004b70: 693b ldr r3, [r7, #16]
8004b72: 009a lsls r2, r3, #2
8004b74: 697b ldr r3, [r7, #20]
8004b76: 4413 add r3, r2
8004b78: 3306 adds r3, #6
8004b7a: 617b str r3, [r7, #20]
8004b7c: e00a b.n 8004b94 <BSP_LCD_DrawCircle+0x1c0>
}
else
{
decision += ((current_x - current_y) << 2) + 10;
8004b7e: 693a ldr r2, [r7, #16]
8004b80: 68fb ldr r3, [r7, #12]
8004b82: 1ad3 subs r3, r2, r3
8004b84: 009a lsls r2, r3, #2
8004b86: 697b ldr r3, [r7, #20]
8004b88: 4413 add r3, r2
8004b8a: 330a adds r3, #10
8004b8c: 617b str r3, [r7, #20]
current_y--;
8004b8e: 68fb ldr r3, [r7, #12]
8004b90: 3b01 subs r3, #1
8004b92: 60fb str r3, [r7, #12]
}
current_x++;
8004b94: 693b ldr r3, [r7, #16]
8004b96: 3301 adds r3, #1
8004b98: 613b str r3, [r7, #16]
while (current_x <= current_y)
8004b9a: 693a ldr r2, [r7, #16]
8004b9c: 68fb ldr r3, [r7, #12]
8004b9e: 429a cmp r2, r3
8004ba0: f67f af2b bls.w 80049fa <BSP_LCD_DrawCircle+0x26>
}
}
8004ba4: bf00 nop
8004ba6: 371c adds r7, #28
8004ba8: 46bd mov sp, r7
8004baa: bd90 pop {r4, r7, pc}
8004bac: 20020014 .word 0x20020014
8004bb0: 2006b2b0 .word 0x2006b2b0
08004bb4 <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)
{
8004bb4: b5b0 push {r4, r5, r7, lr}
8004bb6: b082 sub sp, #8
8004bb8: af00 add r7, sp, #0
8004bba: 4603 mov r3, r0
8004bbc: 603a str r2, [r7, #0]
8004bbe: 80fb strh r3, [r7, #6]
8004bc0: 460b mov r3, r1
8004bc2: 80bb strh r3, [r7, #4]
/* Write data value to all SDRAM memory */
if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565)
8004bc4: 4b2a ldr r3, [pc, #168] ; (8004c70 <BSP_LCD_DrawPixel+0xbc>)
8004bc6: 681b ldr r3, [r3, #0]
8004bc8: 4a2a ldr r2, [pc, #168] ; (8004c74 <BSP_LCD_DrawPixel+0xc0>)
8004bca: 2134 movs r1, #52 ; 0x34
8004bcc: fb01 f303 mul.w r3, r1, r3
8004bd0: 4413 add r3, r2
8004bd2: 3348 adds r3, #72 ; 0x48
8004bd4: 681b ldr r3, [r3, #0]
8004bd6: 2b02 cmp r3, #2
8004bd8: d12f bne.n 8004c3a <BSP_LCD_DrawPixel+0x86>
{ /* RGB565 format */
*(__IO uint16_t*) (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (2*(Ypos*BSP_LCD_GetXSize() + Xpos))) = COLOR24TO16(RGB_Code);
8004bda: 4b25 ldr r3, [pc, #148] ; (8004c70 <BSP_LCD_DrawPixel+0xbc>)
8004bdc: 681b ldr r3, [r3, #0]
8004bde: 4a25 ldr r2, [pc, #148] ; (8004c74 <BSP_LCD_DrawPixel+0xc0>)
8004be0: 2134 movs r1, #52 ; 0x34
8004be2: fb01 f303 mul.w r3, r1, r3
8004be6: 4413 add r3, r2
8004be8: 335c adds r3, #92 ; 0x5c
8004bea: 681c ldr r4, [r3, #0]
8004bec: 88bd ldrh r5, [r7, #4]
8004bee: f7ff fbd3 bl 8004398 <BSP_LCD_GetXSize>
8004bf2: 4603 mov r3, r0
8004bf4: fb03 f205 mul.w r2, r3, r5
8004bf8: 88fb ldrh r3, [r7, #6]
8004bfa: 4413 add r3, r2
8004bfc: 005b lsls r3, r3, #1
8004bfe: 4423 add r3, r4
8004c00: 4619 mov r1, r3
8004c02: 683b ldr r3, [r7, #0]
8004c04: 0c1b lsrs r3, r3, #16
8004c06: b29b uxth r3, r3
8004c08: 021b lsls r3, r3, #8
8004c0a: b29a uxth r2, r3
8004c0c: 4b1a ldr r3, [pc, #104] ; (8004c78 <BSP_LCD_DrawPixel+0xc4>)
8004c0e: 4013 ands r3, r2
8004c10: b29a uxth r2, r3
8004c12: 683b ldr r3, [r7, #0]
8004c14: 0a1b lsrs r3, r3, #8
8004c16: b29b uxth r3, r3
8004c18: 00db lsls r3, r3, #3
8004c1a: b29b uxth r3, r3
8004c1c: f403 63fc and.w r3, r3, #2016 ; 0x7e0
8004c20: b29b uxth r3, r3
8004c22: 4313 orrs r3, r2
8004c24: b29a uxth r2, r3
8004c26: 683b ldr r3, [r7, #0]
8004c28: 08db lsrs r3, r3, #3
8004c2a: b29b uxth r3, r3
8004c2c: f003 031f and.w r3, r3, #31
8004c30: b29b uxth r3, r3
8004c32: 4313 orrs r3, r2
8004c34: b29b uxth r3, r3
8004c36: 800b strh r3, [r1, #0]
}
else
{ /* ARGB8888 format */
*(__IO uint32_t*) (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (4*(Ypos*BSP_LCD_GetXSize() + Xpos))) = RGB_Code;
}
}
8004c38: e015 b.n 8004c66 <BSP_LCD_DrawPixel+0xb2>
*(__IO uint32_t*) (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (4*(Ypos*BSP_LCD_GetXSize() + Xpos))) = RGB_Code;
8004c3a: 4b0d ldr r3, [pc, #52] ; (8004c70 <BSP_LCD_DrawPixel+0xbc>)
8004c3c: 681b ldr r3, [r3, #0]
8004c3e: 4a0d ldr r2, [pc, #52] ; (8004c74 <BSP_LCD_DrawPixel+0xc0>)
8004c40: 2134 movs r1, #52 ; 0x34
8004c42: fb01 f303 mul.w r3, r1, r3
8004c46: 4413 add r3, r2
8004c48: 335c adds r3, #92 ; 0x5c
8004c4a: 681c ldr r4, [r3, #0]
8004c4c: 88bd ldrh r5, [r7, #4]
8004c4e: f7ff fba3 bl 8004398 <BSP_LCD_GetXSize>
8004c52: 4603 mov r3, r0
8004c54: fb03 f205 mul.w r2, r3, r5
8004c58: 88fb ldrh r3, [r7, #6]
8004c5a: 4413 add r3, r2
8004c5c: 009b lsls r3, r3, #2
8004c5e: 4423 add r3, r4
8004c60: 461a mov r2, r3
8004c62: 683b ldr r3, [r7, #0]
8004c64: 6013 str r3, [r2, #0]
}
8004c66: bf00 nop
8004c68: 3708 adds r7, #8
8004c6a: 46bd mov sp, r7
8004c6c: bdb0 pop {r4, r5, r7, pc}
8004c6e: bf00 nop
8004c70: 20020014 .word 0x20020014
8004c74: 2006b9dc .word 0x2006b9dc
8004c78: fffff800 .word 0xfffff800
08004c7c <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)
{
8004c7c: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
8004c80: b086 sub sp, #24
8004c82: af02 add r7, sp, #8
8004c84: 4604 mov r4, r0
8004c86: 4608 mov r0, r1
8004c88: 4611 mov r1, r2
8004c8a: 461a mov r2, r3
8004c8c: 4623 mov r3, r4
8004c8e: 80fb strh r3, [r7, #6]
8004c90: 4603 mov r3, r0
8004c92: 80bb strh r3, [r7, #4]
8004c94: 460b mov r3, r1
8004c96: 807b strh r3, [r7, #2]
8004c98: 4613 mov r3, r2
8004c9a: 803b strh r3, [r7, #0]
uint32_t x_address = 0;
8004c9c: 2300 movs r3, #0
8004c9e: 60fb str r3, [r7, #12]
/* Set the text color */
BSP_LCD_SetTextColor(DrawProp[ActiveLayer].TextColor);
8004ca0: 4b30 ldr r3, [pc, #192] ; (8004d64 <BSP_LCD_FillRect+0xe8>)
8004ca2: 681a ldr r2, [r3, #0]
8004ca4: 4930 ldr r1, [pc, #192] ; (8004d68 <BSP_LCD_FillRect+0xec>)
8004ca6: 4613 mov r3, r2
8004ca8: 005b lsls r3, r3, #1
8004caa: 4413 add r3, r2
8004cac: 009b lsls r3, r3, #2
8004cae: 440b add r3, r1
8004cb0: 681b ldr r3, [r3, #0]
8004cb2: 4618 mov r0, r3
8004cb4: f7ff fc44 bl 8004540 <BSP_LCD_SetTextColor>
/* Get the rectangle start address */
if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565)
8004cb8: 4b2a ldr r3, [pc, #168] ; (8004d64 <BSP_LCD_FillRect+0xe8>)
8004cba: 681b ldr r3, [r3, #0]
8004cbc: 4a2b ldr r2, [pc, #172] ; (8004d6c <BSP_LCD_FillRect+0xf0>)
8004cbe: 2134 movs r1, #52 ; 0x34
8004cc0: fb01 f303 mul.w r3, r1, r3
8004cc4: 4413 add r3, r2
8004cc6: 3348 adds r3, #72 ; 0x48
8004cc8: 681b ldr r3, [r3, #0]
8004cca: 2b02 cmp r3, #2
8004ccc: d114 bne.n 8004cf8 <BSP_LCD_FillRect+0x7c>
{ /* RGB565 format */
x_address = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 2*(BSP_LCD_GetXSize()*Ypos + Xpos);
8004cce: 4b25 ldr r3, [pc, #148] ; (8004d64 <BSP_LCD_FillRect+0xe8>)
8004cd0: 681b ldr r3, [r3, #0]
8004cd2: 4a26 ldr r2, [pc, #152] ; (8004d6c <BSP_LCD_FillRect+0xf0>)
8004cd4: 2134 movs r1, #52 ; 0x34
8004cd6: fb01 f303 mul.w r3, r1, r3
8004cda: 4413 add r3, r2
8004cdc: 335c adds r3, #92 ; 0x5c
8004cde: 681c ldr r4, [r3, #0]
8004ce0: f7ff fb5a bl 8004398 <BSP_LCD_GetXSize>
8004ce4: 4602 mov r2, r0
8004ce6: 88bb ldrh r3, [r7, #4]
8004ce8: fb03 f202 mul.w r2, r3, r2
8004cec: 88fb ldrh r3, [r7, #6]
8004cee: 4413 add r3, r2
8004cf0: 005b lsls r3, r3, #1
8004cf2: 4423 add r3, r4
8004cf4: 60fb str r3, [r7, #12]
8004cf6: e013 b.n 8004d20 <BSP_LCD_FillRect+0xa4>
}
else
{ /* ARGB8888 format */
x_address = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 4*(BSP_LCD_GetXSize()*Ypos + Xpos);
8004cf8: 4b1a ldr r3, [pc, #104] ; (8004d64 <BSP_LCD_FillRect+0xe8>)
8004cfa: 681b ldr r3, [r3, #0]
8004cfc: 4a1b ldr r2, [pc, #108] ; (8004d6c <BSP_LCD_FillRect+0xf0>)
8004cfe: 2134 movs r1, #52 ; 0x34
8004d00: fb01 f303 mul.w r3, r1, r3
8004d04: 4413 add r3, r2
8004d06: 335c adds r3, #92 ; 0x5c
8004d08: 681c ldr r4, [r3, #0]
8004d0a: f7ff fb45 bl 8004398 <BSP_LCD_GetXSize>
8004d0e: 4602 mov r2, r0
8004d10: 88bb ldrh r3, [r7, #4]
8004d12: fb03 f202 mul.w r2, r3, r2
8004d16: 88fb ldrh r3, [r7, #6]
8004d18: 4413 add r3, r2
8004d1a: 009b lsls r3, r3, #2
8004d1c: 4423 add r3, r4
8004d1e: 60fb str r3, [r7, #12]
}
/* Fill the rectangle */
LL_FillBuffer(ActiveLayer, (uint32_t *)x_address, Width, Height, (BSP_LCD_GetXSize() - Width), DrawProp[ActiveLayer].TextColor);
8004d20: 4b10 ldr r3, [pc, #64] ; (8004d64 <BSP_LCD_FillRect+0xe8>)
8004d22: 681c ldr r4, [r3, #0]
8004d24: 68fd ldr r5, [r7, #12]
8004d26: 887e ldrh r6, [r7, #2]
8004d28: f8b7 8000 ldrh.w r8, [r7]
8004d2c: f7ff fb34 bl 8004398 <BSP_LCD_GetXSize>
8004d30: 4602 mov r2, r0
8004d32: 887b ldrh r3, [r7, #2]
8004d34: 1ad1 subs r1, r2, r3
8004d36: 4b0b ldr r3, [pc, #44] ; (8004d64 <BSP_LCD_FillRect+0xe8>)
8004d38: 681a ldr r2, [r3, #0]
8004d3a: 480b ldr r0, [pc, #44] ; (8004d68 <BSP_LCD_FillRect+0xec>)
8004d3c: 4613 mov r3, r2
8004d3e: 005b lsls r3, r3, #1
8004d40: 4413 add r3, r2
8004d42: 009b lsls r3, r3, #2
8004d44: 4403 add r3, r0
8004d46: 681b ldr r3, [r3, #0]
8004d48: 9301 str r3, [sp, #4]
8004d4a: 9100 str r1, [sp, #0]
8004d4c: 4643 mov r3, r8
8004d4e: 4632 mov r2, r6
8004d50: 4629 mov r1, r5
8004d52: 4620 mov r0, r4
8004d54: f000 f964 bl 8005020 <LL_FillBuffer>
}
8004d58: bf00 nop
8004d5a: 3710 adds r7, #16
8004d5c: 46bd mov sp, r7
8004d5e: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
8004d62: bf00 nop
8004d64: 20020014 .word 0x20020014
8004d68: 2006b2b0 .word 0x2006b2b0
8004d6c: 2006b9dc .word 0x2006b9dc
08004d70 <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)
{
8004d70: b580 push {r7, lr}
8004d72: b086 sub sp, #24
8004d74: af00 add r7, sp, #0
8004d76: 4603 mov r3, r0
8004d78: 80fb strh r3, [r7, #6]
8004d7a: 460b mov r3, r1
8004d7c: 80bb strh r3, [r7, #4]
8004d7e: 4613 mov r3, r2
8004d80: 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);
8004d82: 887b ldrh r3, [r7, #2]
8004d84: 005b lsls r3, r3, #1
8004d86: f1c3 0303 rsb r3, r3, #3
8004d8a: 617b str r3, [r7, #20]
current_x = 0;
8004d8c: 2300 movs r3, #0
8004d8e: 613b str r3, [r7, #16]
current_y = Radius;
8004d90: 887b ldrh r3, [r7, #2]
8004d92: 60fb str r3, [r7, #12]
BSP_LCD_SetTextColor(DrawProp[ActiveLayer].TextColor);
8004d94: 4b44 ldr r3, [pc, #272] ; (8004ea8 <BSP_LCD_FillCircle+0x138>)
8004d96: 681a ldr r2, [r3, #0]
8004d98: 4944 ldr r1, [pc, #272] ; (8004eac <BSP_LCD_FillCircle+0x13c>)
8004d9a: 4613 mov r3, r2
8004d9c: 005b lsls r3, r3, #1
8004d9e: 4413 add r3, r2
8004da0: 009b lsls r3, r3, #2
8004da2: 440b add r3, r1
8004da4: 681b ldr r3, [r3, #0]
8004da6: 4618 mov r0, r3
8004da8: f7ff fbca bl 8004540 <BSP_LCD_SetTextColor>
while (current_x <= current_y)
8004dac: e061 b.n 8004e72 <BSP_LCD_FillCircle+0x102>
{
if(current_y > 0)
8004dae: 68fb ldr r3, [r7, #12]
8004db0: 2b00 cmp r3, #0
8004db2: d021 beq.n 8004df8 <BSP_LCD_FillCircle+0x88>
{
BSP_LCD_DrawHLine(Xpos - current_y, Ypos + current_x, 2*current_y);
8004db4: 68fb ldr r3, [r7, #12]
8004db6: b29b uxth r3, r3
8004db8: 88fa ldrh r2, [r7, #6]
8004dba: 1ad3 subs r3, r2, r3
8004dbc: b298 uxth r0, r3
8004dbe: 693b ldr r3, [r7, #16]
8004dc0: b29a uxth r2, r3
8004dc2: 88bb ldrh r3, [r7, #4]
8004dc4: 4413 add r3, r2
8004dc6: b299 uxth r1, r3
8004dc8: 68fb ldr r3, [r7, #12]
8004dca: b29b uxth r3, r3
8004dcc: 005b lsls r3, r3, #1
8004dce: b29b uxth r3, r3
8004dd0: 461a mov r2, r3
8004dd2: f7ff fd0b bl 80047ec <BSP_LCD_DrawHLine>
BSP_LCD_DrawHLine(Xpos - current_y, Ypos - current_x, 2*current_y);
8004dd6: 68fb ldr r3, [r7, #12]
8004dd8: b29b uxth r3, r3
8004dda: 88fa ldrh r2, [r7, #6]
8004ddc: 1ad3 subs r3, r2, r3
8004dde: b298 uxth r0, r3
8004de0: 693b ldr r3, [r7, #16]
8004de2: b29b uxth r3, r3
8004de4: 88ba ldrh r2, [r7, #4]
8004de6: 1ad3 subs r3, r2, r3
8004de8: b299 uxth r1, r3
8004dea: 68fb ldr r3, [r7, #12]
8004dec: b29b uxth r3, r3
8004dee: 005b lsls r3, r3, #1
8004df0: b29b uxth r3, r3
8004df2: 461a mov r2, r3
8004df4: f7ff fcfa bl 80047ec <BSP_LCD_DrawHLine>
}
if(current_x > 0)
8004df8: 693b ldr r3, [r7, #16]
8004dfa: 2b00 cmp r3, #0
8004dfc: d021 beq.n 8004e42 <BSP_LCD_FillCircle+0xd2>
{
BSP_LCD_DrawHLine(Xpos - current_x, Ypos - current_y, 2*current_x);
8004dfe: 693b ldr r3, [r7, #16]
8004e00: b29b uxth r3, r3
8004e02: 88fa ldrh r2, [r7, #6]
8004e04: 1ad3 subs r3, r2, r3
8004e06: b298 uxth r0, r3
8004e08: 68fb ldr r3, [r7, #12]
8004e0a: b29b uxth r3, r3
8004e0c: 88ba ldrh r2, [r7, #4]
8004e0e: 1ad3 subs r3, r2, r3
8004e10: b299 uxth r1, r3
8004e12: 693b ldr r3, [r7, #16]
8004e14: b29b uxth r3, r3
8004e16: 005b lsls r3, r3, #1
8004e18: b29b uxth r3, r3
8004e1a: 461a mov r2, r3
8004e1c: f7ff fce6 bl 80047ec <BSP_LCD_DrawHLine>
BSP_LCD_DrawHLine(Xpos - current_x, Ypos + current_y, 2*current_x);
8004e20: 693b ldr r3, [r7, #16]
8004e22: b29b uxth r3, r3
8004e24: 88fa ldrh r2, [r7, #6]
8004e26: 1ad3 subs r3, r2, r3
8004e28: b298 uxth r0, r3
8004e2a: 68fb ldr r3, [r7, #12]
8004e2c: b29a uxth r2, r3
8004e2e: 88bb ldrh r3, [r7, #4]
8004e30: 4413 add r3, r2
8004e32: b299 uxth r1, r3
8004e34: 693b ldr r3, [r7, #16]
8004e36: b29b uxth r3, r3
8004e38: 005b lsls r3, r3, #1
8004e3a: b29b uxth r3, r3
8004e3c: 461a mov r2, r3
8004e3e: f7ff fcd5 bl 80047ec <BSP_LCD_DrawHLine>
}
if (decision < 0)
8004e42: 697b ldr r3, [r7, #20]
8004e44: 2b00 cmp r3, #0
8004e46: da06 bge.n 8004e56 <BSP_LCD_FillCircle+0xe6>
{
decision += (current_x << 2) + 6;
8004e48: 693b ldr r3, [r7, #16]
8004e4a: 009a lsls r2, r3, #2
8004e4c: 697b ldr r3, [r7, #20]
8004e4e: 4413 add r3, r2
8004e50: 3306 adds r3, #6
8004e52: 617b str r3, [r7, #20]
8004e54: e00a b.n 8004e6c <BSP_LCD_FillCircle+0xfc>
}
else
{
decision += ((current_x - current_y) << 2) + 10;
8004e56: 693a ldr r2, [r7, #16]
8004e58: 68fb ldr r3, [r7, #12]
8004e5a: 1ad3 subs r3, r2, r3
8004e5c: 009a lsls r2, r3, #2
8004e5e: 697b ldr r3, [r7, #20]
8004e60: 4413 add r3, r2
8004e62: 330a adds r3, #10
8004e64: 617b str r3, [r7, #20]
current_y--;
8004e66: 68fb ldr r3, [r7, #12]
8004e68: 3b01 subs r3, #1
8004e6a: 60fb str r3, [r7, #12]
}
current_x++;
8004e6c: 693b ldr r3, [r7, #16]
8004e6e: 3301 adds r3, #1
8004e70: 613b str r3, [r7, #16]
while (current_x <= current_y)
8004e72: 693a ldr r2, [r7, #16]
8004e74: 68fb ldr r3, [r7, #12]
8004e76: 429a cmp r2, r3
8004e78: d999 bls.n 8004dae <BSP_LCD_FillCircle+0x3e>
}
BSP_LCD_SetTextColor(DrawProp[ActiveLayer].TextColor);
8004e7a: 4b0b ldr r3, [pc, #44] ; (8004ea8 <BSP_LCD_FillCircle+0x138>)
8004e7c: 681a ldr r2, [r3, #0]
8004e7e: 490b ldr r1, [pc, #44] ; (8004eac <BSP_LCD_FillCircle+0x13c>)
8004e80: 4613 mov r3, r2
8004e82: 005b lsls r3, r3, #1
8004e84: 4413 add r3, r2
8004e86: 009b lsls r3, r3, #2
8004e88: 440b add r3, r1
8004e8a: 681b ldr r3, [r3, #0]
8004e8c: 4618 mov r0, r3
8004e8e: f7ff fb57 bl 8004540 <BSP_LCD_SetTextColor>
BSP_LCD_DrawCircle(Xpos, Ypos, Radius);
8004e92: 887a ldrh r2, [r7, #2]
8004e94: 88b9 ldrh r1, [r7, #4]
8004e96: 88fb ldrh r3, [r7, #6]
8004e98: 4618 mov r0, r3
8004e9a: f7ff fd9b bl 80049d4 <BSP_LCD_DrawCircle>
}
8004e9e: bf00 nop
8004ea0: 3718 adds r7, #24
8004ea2: 46bd mov sp, r7
8004ea4: bd80 pop {r7, pc}
8004ea6: bf00 nop
8004ea8: 20020014 .word 0x20020014
8004eac: 2006b2b0 .word 0x2006b2b0
08004eb0 <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)
{
8004eb0: b580 push {r7, lr}
8004eb2: b088 sub sp, #32
8004eb4: af00 add r7, sp, #0
8004eb6: 4603 mov r3, r0
8004eb8: 603a str r2, [r7, #0]
8004eba: 80fb strh r3, [r7, #6]
8004ebc: 460b mov r3, r1
8004ebe: 80bb strh r3, [r7, #4]
uint32_t i = 0, j = 0;
8004ec0: 2300 movs r3, #0
8004ec2: 61fb str r3, [r7, #28]
8004ec4: 2300 movs r3, #0
8004ec6: 61bb str r3, [r7, #24]
uint8_t offset;
uint8_t *pchar;
uint32_t line;
//uint16_t b;
height = DrawProp[ActiveLayer].pFont->Height;
8004ec8: 4b53 ldr r3, [pc, #332] ; (8005018 <DrawChar+0x168>)
8004eca: 681a ldr r2, [r3, #0]
8004ecc: 4953 ldr r1, [pc, #332] ; (800501c <DrawChar+0x16c>)
8004ece: 4613 mov r3, r2
8004ed0: 005b lsls r3, r3, #1
8004ed2: 4413 add r3, r2
8004ed4: 009b lsls r3, r3, #2
8004ed6: 440b add r3, r1
8004ed8: 3308 adds r3, #8
8004eda: 681b ldr r3, [r3, #0]
8004edc: 88db ldrh r3, [r3, #6]
8004ede: 827b strh r3, [r7, #18]
width = DrawProp[ActiveLayer].pFont->Width;
8004ee0: 4b4d ldr r3, [pc, #308] ; (8005018 <DrawChar+0x168>)
8004ee2: 681a ldr r2, [r3, #0]
8004ee4: 494d ldr r1, [pc, #308] ; (800501c <DrawChar+0x16c>)
8004ee6: 4613 mov r3, r2
8004ee8: 005b lsls r3, r3, #1
8004eea: 4413 add r3, r2
8004eec: 009b lsls r3, r3, #2
8004eee: 440b add r3, r1
8004ef0: 3308 adds r3, #8
8004ef2: 681b ldr r3, [r3, #0]
8004ef4: 889b ldrh r3, [r3, #4]
8004ef6: 823b strh r3, [r7, #16]
offset = 8 *((width + 7)/8) - width ;
8004ef8: 8a3b ldrh r3, [r7, #16]
8004efa: 3307 adds r3, #7
8004efc: 2b00 cmp r3, #0
8004efe: da00 bge.n 8004f02 <DrawChar+0x52>
8004f00: 3307 adds r3, #7
8004f02: 10db asrs r3, r3, #3
8004f04: b2db uxtb r3, r3
8004f06: 00db lsls r3, r3, #3
8004f08: b2da uxtb r2, r3
8004f0a: 8a3b ldrh r3, [r7, #16]
8004f0c: b2db uxtb r3, r3
8004f0e: 1ad3 subs r3, r2, r3
8004f10: 73fb strb r3, [r7, #15]
for(i = 0; i < height; i++)
8004f12: 2300 movs r3, #0
8004f14: 61fb str r3, [r7, #28]
8004f16: e076 b.n 8005006 <DrawChar+0x156>
{
pchar = ((uint8_t *)c + (width + 7)/8 * i);
8004f18: 8a3b ldrh r3, [r7, #16]
8004f1a: 3307 adds r3, #7
8004f1c: 2b00 cmp r3, #0
8004f1e: da00 bge.n 8004f22 <DrawChar+0x72>
8004f20: 3307 adds r3, #7
8004f22: 10db asrs r3, r3, #3
8004f24: 461a mov r2, r3
8004f26: 69fb ldr r3, [r7, #28]
8004f28: fb03 f302 mul.w r3, r3, r2
8004f2c: 683a ldr r2, [r7, #0]
8004f2e: 4413 add r3, r2
8004f30: 60bb str r3, [r7, #8]
switch(((width + 7)/8))
8004f32: 8a3b ldrh r3, [r7, #16]
8004f34: 3307 adds r3, #7
8004f36: 2b00 cmp r3, #0
8004f38: da00 bge.n 8004f3c <DrawChar+0x8c>
8004f3a: 3307 adds r3, #7
8004f3c: 10db asrs r3, r3, #3
8004f3e: 2b01 cmp r3, #1
8004f40: d002 beq.n 8004f48 <DrawChar+0x98>
8004f42: 2b02 cmp r3, #2
8004f44: d004 beq.n 8004f50 <DrawChar+0xa0>
8004f46: e00c b.n 8004f62 <DrawChar+0xb2>
{
case 1:
line = pchar[0];
8004f48: 68bb ldr r3, [r7, #8]
8004f4a: 781b ldrb r3, [r3, #0]
8004f4c: 617b str r3, [r7, #20]
break;
8004f4e: e016 b.n 8004f7e <DrawChar+0xce>
case 2:
line = (pchar[0]<< 8) | pchar[1];
8004f50: 68bb ldr r3, [r7, #8]
8004f52: 781b ldrb r3, [r3, #0]
8004f54: 021b lsls r3, r3, #8
8004f56: 68ba ldr r2, [r7, #8]
8004f58: 3201 adds r2, #1
8004f5a: 7812 ldrb r2, [r2, #0]
8004f5c: 4313 orrs r3, r2
8004f5e: 617b str r3, [r7, #20]
break;
8004f60: e00d b.n 8004f7e <DrawChar+0xce>
case 3:
default:
line = (pchar[0]<< 16) | (pchar[1]<< 8) | pchar[2];
8004f62: 68bb ldr r3, [r7, #8]
8004f64: 781b ldrb r3, [r3, #0]
8004f66: 041a lsls r2, r3, #16
8004f68: 68bb ldr r3, [r7, #8]
8004f6a: 3301 adds r3, #1
8004f6c: 781b ldrb r3, [r3, #0]
8004f6e: 021b lsls r3, r3, #8
8004f70: 4313 orrs r3, r2
8004f72: 68ba ldr r2, [r7, #8]
8004f74: 3202 adds r2, #2
8004f76: 7812 ldrb r2, [r2, #0]
8004f78: 4313 orrs r3, r2
8004f7a: 617b str r3, [r7, #20]
break;
8004f7c: bf00 nop
}
for (j = 0; j < width; j++)
8004f7e: 2300 movs r3, #0
8004f80: 61bb str r3, [r7, #24]
8004f82: e036 b.n 8004ff2 <DrawChar+0x142>
{
if(line & (1 << (width- j + offset- 1)))
8004f84: 8a3a ldrh r2, [r7, #16]
8004f86: 69bb ldr r3, [r7, #24]
8004f88: 1ad2 subs r2, r2, r3
8004f8a: 7bfb ldrb r3, [r7, #15]
8004f8c: 4413 add r3, r2
8004f8e: 3b01 subs r3, #1
8004f90: 2201 movs r2, #1
8004f92: fa02 f303 lsl.w r3, r2, r3
8004f96: 461a mov r2, r3
8004f98: 697b ldr r3, [r7, #20]
8004f9a: 4013 ands r3, r2
8004f9c: 2b00 cmp r3, #0
8004f9e: d012 beq.n 8004fc6 <DrawChar+0x116>
{
BSP_LCD_DrawPixel((Xpos + j), Ypos, DrawProp[ActiveLayer].TextColor);
8004fa0: 69bb ldr r3, [r7, #24]
8004fa2: b29a uxth r2, r3
8004fa4: 88fb ldrh r3, [r7, #6]
8004fa6: 4413 add r3, r2
8004fa8: b298 uxth r0, r3
8004faa: 4b1b ldr r3, [pc, #108] ; (8005018 <DrawChar+0x168>)
8004fac: 681a ldr r2, [r3, #0]
8004fae: 491b ldr r1, [pc, #108] ; (800501c <DrawChar+0x16c>)
8004fb0: 4613 mov r3, r2
8004fb2: 005b lsls r3, r3, #1
8004fb4: 4413 add r3, r2
8004fb6: 009b lsls r3, r3, #2
8004fb8: 440b add r3, r1
8004fba: 681a ldr r2, [r3, #0]
8004fbc: 88bb ldrh r3, [r7, #4]
8004fbe: 4619 mov r1, r3
8004fc0: f7ff fdf8 bl 8004bb4 <BSP_LCD_DrawPixel>
8004fc4: e012 b.n 8004fec <DrawChar+0x13c>
}
else
{
BSP_LCD_DrawPixel((Xpos + j), Ypos, DrawProp[ActiveLayer].BackColor);
8004fc6: 69bb ldr r3, [r7, #24]
8004fc8: b29a uxth r2, r3
8004fca: 88fb ldrh r3, [r7, #6]
8004fcc: 4413 add r3, r2
8004fce: b298 uxth r0, r3
8004fd0: 4b11 ldr r3, [pc, #68] ; (8005018 <DrawChar+0x168>)
8004fd2: 681a ldr r2, [r3, #0]
8004fd4: 4911 ldr r1, [pc, #68] ; (800501c <DrawChar+0x16c>)
8004fd6: 4613 mov r3, r2
8004fd8: 005b lsls r3, r3, #1
8004fda: 4413 add r3, r2
8004fdc: 009b lsls r3, r3, #2
8004fde: 440b add r3, r1
8004fe0: 3304 adds r3, #4
8004fe2: 681a ldr r2, [r3, #0]
8004fe4: 88bb ldrh r3, [r7, #4]
8004fe6: 4619 mov r1, r3
8004fe8: f7ff fde4 bl 8004bb4 <BSP_LCD_DrawPixel>
for (j = 0; j < width; j++)
8004fec: 69bb ldr r3, [r7, #24]
8004fee: 3301 adds r3, #1
8004ff0: 61bb str r3, [r7, #24]
8004ff2: 8a3a ldrh r2, [r7, #16]
8004ff4: 69bb ldr r3, [r7, #24]
8004ff6: 429a cmp r2, r3
8004ff8: d8c4 bhi.n 8004f84 <DrawChar+0xd4>
}
}
Ypos++;
8004ffa: 88bb ldrh r3, [r7, #4]
8004ffc: 3301 adds r3, #1
8004ffe: 80bb strh r3, [r7, #4]
for(i = 0; i < height; i++)
8005000: 69fb ldr r3, [r7, #28]
8005002: 3301 adds r3, #1
8005004: 61fb str r3, [r7, #28]
8005006: 8a7a ldrh r2, [r7, #18]
8005008: 69fb ldr r3, [r7, #28]
800500a: 429a cmp r2, r3
800500c: d884 bhi.n 8004f18 <DrawChar+0x68>
}
}
800500e: bf00 nop
8005010: 3720 adds r7, #32
8005012: 46bd mov sp, r7
8005014: bd80 pop {r7, pc}
8005016: bf00 nop
8005018: 20020014 .word 0x20020014
800501c: 2006b2b0 .word 0x2006b2b0
08005020 <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)
{
8005020: b580 push {r7, lr}
8005022: b086 sub sp, #24
8005024: af02 add r7, sp, #8
8005026: 60f8 str r0, [r7, #12]
8005028: 60b9 str r1, [r7, #8]
800502a: 607a str r2, [r7, #4]
800502c: 603b str r3, [r7, #0]
/* Register to memory mode with ARGB8888 as color Mode */
hDma2dHandler.Init.Mode = DMA2D_R2M;
800502e: 4b1e ldr r3, [pc, #120] ; (80050a8 <LL_FillBuffer+0x88>)
8005030: f44f 3240 mov.w r2, #196608 ; 0x30000
8005034: 605a str r2, [r3, #4]
if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565)
8005036: 4b1d ldr r3, [pc, #116] ; (80050ac <LL_FillBuffer+0x8c>)
8005038: 681b ldr r3, [r3, #0]
800503a: 4a1d ldr r2, [pc, #116] ; (80050b0 <LL_FillBuffer+0x90>)
800503c: 2134 movs r1, #52 ; 0x34
800503e: fb01 f303 mul.w r3, r1, r3
8005042: 4413 add r3, r2
8005044: 3348 adds r3, #72 ; 0x48
8005046: 681b ldr r3, [r3, #0]
8005048: 2b02 cmp r3, #2
800504a: d103 bne.n 8005054 <LL_FillBuffer+0x34>
hDma2dHandler.Init.ColorMode = DMA2D_RGB565;
800504c: 4b16 ldr r3, [pc, #88] ; (80050a8 <LL_FillBuffer+0x88>)
800504e: 2202 movs r2, #2
8005050: 609a str r2, [r3, #8]
8005052: e002 b.n 800505a <LL_FillBuffer+0x3a>
else hDma2dHandler.Init.ColorMode = DMA2D_ARGB8888;
8005054: 4b14 ldr r3, [pc, #80] ; (80050a8 <LL_FillBuffer+0x88>)
8005056: 2200 movs r2, #0
8005058: 609a str r2, [r3, #8]
hDma2dHandler.Init.OutputOffset = OffLine;
800505a: 4a13 ldr r2, [pc, #76] ; (80050a8 <LL_FillBuffer+0x88>)
800505c: 69bb ldr r3, [r7, #24]
800505e: 60d3 str r3, [r2, #12]
hDma2dHandler.Instance = DMA2D;
8005060: 4b11 ldr r3, [pc, #68] ; (80050a8 <LL_FillBuffer+0x88>)
8005062: 4a14 ldr r2, [pc, #80] ; (80050b4 <LL_FillBuffer+0x94>)
8005064: 601a str r2, [r3, #0]
if(HAL_DMA2D_Init(&hDma2dHandler) == HAL_OK)
8005066: 4810 ldr r0, [pc, #64] ; (80050a8 <LL_FillBuffer+0x88>)
8005068: f009 f8a6 bl 800e1b8 <HAL_DMA2D_Init>
800506c: 4603 mov r3, r0
800506e: 2b00 cmp r3, #0
8005070: d115 bne.n 800509e <LL_FillBuffer+0x7e>
{
if(HAL_DMA2D_ConfigLayer(&hDma2dHandler, LayerIndex) == HAL_OK)
8005072: 68f9 ldr r1, [r7, #12]
8005074: 480c ldr r0, [pc, #48] ; (80050a8 <LL_FillBuffer+0x88>)
8005076: f009 fa0d bl 800e494 <HAL_DMA2D_ConfigLayer>
800507a: 4603 mov r3, r0
800507c: 2b00 cmp r3, #0
800507e: d10e bne.n 800509e <LL_FillBuffer+0x7e>
{
if (HAL_DMA2D_Start(&hDma2dHandler, ColorIndex, (uint32_t)pDst, xSize, ySize) == HAL_OK)
8005080: 68ba ldr r2, [r7, #8]
8005082: 683b ldr r3, [r7, #0]
8005084: 9300 str r3, [sp, #0]
8005086: 687b ldr r3, [r7, #4]
8005088: 69f9 ldr r1, [r7, #28]
800508a: 4807 ldr r0, [pc, #28] ; (80050a8 <LL_FillBuffer+0x88>)
800508c: f009 f8ee bl 800e26c <HAL_DMA2D_Start>
8005090: 4603 mov r3, r0
8005092: 2b00 cmp r3, #0
8005094: d103 bne.n 800509e <LL_FillBuffer+0x7e>
{
HAL_DMA2D_PollForTransfer(&hDma2dHandler, 30);
8005096: 211e movs r1, #30
8005098: 4803 ldr r0, [pc, #12] ; (80050a8 <LL_FillBuffer+0x88>)
800509a: f009 f912 bl 800e2c2 <HAL_DMA2D_PollForTransfer>
}
}
}
}
800509e: bf00 nop
80050a0: 3710 adds r7, #16
80050a2: 46bd mov sp, r7
80050a4: bd80 pop {r7, pc}
80050a6: bf00 nop
80050a8: 2006b258 .word 0x2006b258
80050ac: 20020014 .word 0x20020014
80050b0: 2006b9dc .word 0x2006b9dc
80050b4: 4002b000 .word 0x4002b000
080050b8 <DrawImage>:
}
}
void DrawImage(const GUI_BITMAP * pBM, uint16_t x0, uint16_t y0)
{
80050b8: b580 push {r7, lr}
80050ba: b088 sub sp, #32
80050bc: af02 add r7, sp, #8
80050be: 6078 str r0, [r7, #4]
80050c0: 460b mov r3, r1
80050c2: 807b strh r3, [r7, #2]
80050c4: 4613 mov r3, r2
80050c6: 803b strh r3, [r7, #0]
//HAL_StatusTypeDef hal_status = HAL_OK;
uint32_t Xaddress = 0;
80050c8: 2300 movs r3, #0
80050ca: 617b str r3, [r7, #20]
uint8_t * p;
uint16_t xSize = pBM->XSize;
80050cc: 687b ldr r3, [r7, #4]
80050ce: 881b ldrh r3, [r3, #0]
80050d0: 827b strh r3, [r7, #18]
uint16_t ySize = pBM->YSize;
80050d2: 687b ldr r3, [r7, #4]
80050d4: 885b ldrh r3, [r3, #2]
80050d6: 823b strh r3, [r7, #16]
//uint16_t BytesPerLine = pBM->BytesPerLine;
p = (uint8_t *) pBM->pData;
80050d8: 687b ldr r3, [r7, #4]
80050da: 689b ldr r3, [r3, #8]
80050dc: 60fb str r3, [r7, #12]
Xaddress = hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + ((320 * y0 + x0) << 1);
80050de: 4b39 ldr r3, [pc, #228] ; (80051c4 <DrawImage+0x10c>)
80050e0: 681b ldr r3, [r3, #0]
80050e2: 4a39 ldr r2, [pc, #228] ; (80051c8 <DrawImage+0x110>)
80050e4: 2134 movs r1, #52 ; 0x34
80050e6: fb01 f303 mul.w r3, r1, r3
80050ea: 4413 add r3, r2
80050ec: 335c adds r3, #92 ; 0x5c
80050ee: 6819 ldr r1, [r3, #0]
80050f0: 883a ldrh r2, [r7, #0]
80050f2: 4613 mov r3, r2
80050f4: 009b lsls r3, r3, #2
80050f6: 4413 add r3, r2
80050f8: 019b lsls r3, r3, #6
80050fa: 461a mov r2, r3
80050fc: 887b ldrh r3, [r7, #2]
80050fe: 4413 add r3, r2
8005100: 005b lsls r3, r3, #1
8005102: 440b add r3, r1
8005104: 617b str r3, [r7, #20]
hDma2dHandler.Init.Mode = DMA2D_M2M;
8005106: 4b31 ldr r3, [pc, #196] ; (80051cc <DrawImage+0x114>)
8005108: 2200 movs r2, #0
800510a: 605a str r2, [r3, #4]
hDma2dHandler.Init.ColorMode = DMA2D_RGB565;
800510c: 4b2f ldr r3, [pc, #188] ; (80051cc <DrawImage+0x114>)
800510e: 2202 movs r2, #2
8005110: 609a str r2, [r3, #8]
hDma2dHandler.Init.OutputOffset = 320 - xSize;
8005112: 8a7b ldrh r3, [r7, #18]
8005114: f5c3 73a0 rsb r3, r3, #320 ; 0x140
8005118: 461a mov r2, r3
800511a: 4b2c ldr r3, [pc, #176] ; (80051cc <DrawImage+0x114>)
800511c: 60da str r2, [r3, #12]
/* DMA2D Callbacks Configuration */
hDma2dHandler.XferCpltCallback = TransferComplete;
800511e: 4b2b ldr r3, [pc, #172] ; (80051cc <DrawImage+0x114>)
8005120: 4a2b ldr r2, [pc, #172] ; (80051d0 <DrawImage+0x118>)
8005122: 619a str r2, [r3, #24]
hDma2dHandler.XferErrorCallback = TransferError;
8005124: 4b29 ldr r3, [pc, #164] ; (80051cc <DrawImage+0x114>)
8005126: 4a2b ldr r2, [pc, #172] ; (80051d4 <DrawImage+0x11c>)
8005128: 61da str r2, [r3, #28]
/* Foreground layer Configuration : layer 1 */
hDma2dHandler.LayerCfg[ActiveLayer].AlphaMode = DMA2D_NO_MODIF_ALPHA;
800512a: 4b26 ldr r3, [pc, #152] ; (80051c4 <DrawImage+0x10c>)
800512c: 681a ldr r2, [r3, #0]
800512e: 4927 ldr r1, [pc, #156] ; (80051cc <DrawImage+0x114>)
8005130: 4613 mov r3, r2
8005132: 005b lsls r3, r3, #1
8005134: 4413 add r3, r2
8005136: 00db lsls r3, r3, #3
8005138: 440b add r3, r1
800513a: 3328 adds r3, #40 ; 0x28
800513c: 2200 movs r2, #0
800513e: 601a str r2, [r3, #0]
hDma2dHandler.LayerCfg[ActiveLayer].InputAlpha = 255; /* Alpha fully opaque */
8005140: 4b20 ldr r3, [pc, #128] ; (80051c4 <DrawImage+0x10c>)
8005142: 681a ldr r2, [r3, #0]
8005144: 4921 ldr r1, [pc, #132] ; (80051cc <DrawImage+0x114>)
8005146: 4613 mov r3, r2
8005148: 005b lsls r3, r3, #1
800514a: 4413 add r3, r2
800514c: 00db lsls r3, r3, #3
800514e: 440b add r3, r1
8005150: 332c adds r3, #44 ; 0x2c
8005152: 22ff movs r2, #255 ; 0xff
8005154: 601a str r2, [r3, #0]
hDma2dHandler.LayerCfg[ActiveLayer].InputColorMode = DMA2D_INPUT_RGB565; /* Layer 1 input format is ARGB8888 (32 bpp) */
8005156: 4b1b ldr r3, [pc, #108] ; (80051c4 <DrawImage+0x10c>)
8005158: 681a ldr r2, [r3, #0]
800515a: 491c ldr r1, [pc, #112] ; (80051cc <DrawImage+0x114>)
800515c: 4613 mov r3, r2
800515e: 005b lsls r3, r3, #1
8005160: 4413 add r3, r2
8005162: 00db lsls r3, r3, #3
8005164: 440b add r3, r1
8005166: 3324 adds r3, #36 ; 0x24
8005168: 2202 movs r2, #2
800516a: 601a str r2, [r3, #0]
hDma2dHandler.LayerCfg[ActiveLayer].InputOffset = 0; /* No offset in input */
800516c: 4b15 ldr r3, [pc, #84] ; (80051c4 <DrawImage+0x10c>)
800516e: 681a ldr r2, [r3, #0]
8005170: 4916 ldr r1, [pc, #88] ; (80051cc <DrawImage+0x114>)
8005172: 4613 mov r3, r2
8005174: 005b lsls r3, r3, #1
8005176: 4413 add r3, r2
8005178: 00db lsls r3, r3, #3
800517a: 440b add r3, r1
800517c: 3320 adds r3, #32
800517e: 2200 movs r2, #0
8005180: 601a str r2, [r3, #0]
hDma2dHandler.Instance = DMA2D;
8005182: 4b12 ldr r3, [pc, #72] ; (80051cc <DrawImage+0x114>)
8005184: 4a14 ldr r2, [pc, #80] ; (80051d8 <DrawImage+0x120>)
8005186: 601a str r2, [r3, #0]
/* DMA2D Initialization */
HAL_DMA2D_Init(&hDma2dHandler);
8005188: 4810 ldr r0, [pc, #64] ; (80051cc <DrawImage+0x114>)
800518a: f009 f815 bl 800e1b8 <HAL_DMA2D_Init>
HAL_DMA2D_ConfigLayer(&hDma2dHandler, ActiveLayer);
800518e: 4b0d ldr r3, [pc, #52] ; (80051c4 <DrawImage+0x10c>)
8005190: 681b ldr r3, [r3, #0]
8005192: 4619 mov r1, r3
8005194: 480d ldr r0, [pc, #52] ; (80051cc <DrawImage+0x114>)
8005196: f009 f97d bl 800e494 <HAL_DMA2D_ConfigLayer>
DMA2D_TransferOk = 0;
800519a: 4b10 ldr r3, [pc, #64] ; (80051dc <DrawImage+0x124>)
800519c: 2200 movs r2, #0
800519e: 601a str r2, [r3, #0]
HAL_DMA2D_Start(&hDma2dHandler, (uint32_t) p, Xaddress, xSize, ySize);
80051a0: 68f9 ldr r1, [r7, #12]
80051a2: 8a7a ldrh r2, [r7, #18]
80051a4: 8a3b ldrh r3, [r7, #16]
80051a6: 9300 str r3, [sp, #0]
80051a8: 4613 mov r3, r2
80051aa: 697a ldr r2, [r7, #20]
80051ac: 4807 ldr r0, [pc, #28] ; (80051cc <DrawImage+0x114>)
80051ae: f009 f85d bl 800e26c <HAL_DMA2D_Start>
HAL_DMA2D_PollForTransfer(&hDma2dHandler, 30);
80051b2: 211e movs r1, #30
80051b4: 4805 ldr r0, [pc, #20] ; (80051cc <DrawImage+0x114>)
80051b6: f009 f884 bl 800e2c2 <HAL_DMA2D_PollForTransfer>
//SCB_CleanInvalidateDCache();
}
80051ba: bf00 nop
80051bc: 3718 adds r7, #24
80051be: 46bd mov sp, r7
80051c0: bd80 pop {r7, pc}
80051c2: bf00 nop
80051c4: 20020014 .word 0x20020014
80051c8: 2006b9dc .word 0x2006b9dc
80051cc: 2006b258 .word 0x2006b258
80051d0: 080051e1 .word 0x080051e1
80051d4: 08005201 .word 0x08005201
80051d8: 4002b000 .word 0x4002b000
80051dc: 20020018 .word 0x20020018
080051e0 <TransferComplete>:
static void TransferComplete(DMA2D_HandleTypeDef *hdma2d)
{
80051e0: b480 push {r7}
80051e2: b083 sub sp, #12
80051e4: af00 add r7, sp, #0
80051e6: 6078 str r0, [r7, #4]
DMA2D_TransferOk = 1;
80051e8: 4b04 ldr r3, [pc, #16] ; (80051fc <TransferComplete+0x1c>)
80051ea: 2201 movs r2, #1
80051ec: 601a str r2, [r3, #0]
}
80051ee: bf00 nop
80051f0: 370c adds r7, #12
80051f2: 46bd mov sp, r7
80051f4: f85d 7b04 ldr.w r7, [sp], #4
80051f8: 4770 bx lr
80051fa: bf00 nop
80051fc: 20020018 .word 0x20020018
08005200 <TransferError>:
static void TransferError(DMA2D_HandleTypeDef *hdma2d)
{
8005200: b480 push {r7}
8005202: b083 sub sp, #12
8005204: af00 add r7, sp, #0
8005206: 6078 str r0, [r7, #4]
}
8005208: bf00 nop
800520a: 370c adds r7, #12
800520c: 46bd mov sp, r7
800520e: f85d 7b04 ldr.w r7, [sp], #4
8005212: 4770 bx lr
08005214 <LCD_Refresh>:
void LCD_Refresh(void)
{
8005214: b580 push {r7, lr}
8005216: af00 add r7, sp, #0
ActiveLayer ^= 1;
8005218: 4b0e ldr r3, [pc, #56] ; (8005254 <LCD_Refresh+0x40>)
800521a: 681b ldr r3, [r3, #0]
800521c: f083 0301 eor.w r3, r3, #1
8005220: 4a0c ldr r2, [pc, #48] ; (8005254 <LCD_Refresh+0x40>)
8005222: 6013 str r3, [r2, #0]
RenderingLayer ^= 1;
8005224: 4b0c ldr r3, [pc, #48] ; (8005258 <LCD_Refresh+0x44>)
8005226: 681b ldr r3, [r3, #0]
8005228: f083 0301 eor.w r3, r3, #1
800522c: 4a0a ldr r2, [pc, #40] ; (8005258 <LCD_Refresh+0x44>)
800522e: 6013 str r3, [r2, #0]
BSP_LCD_SetLayerVisible_NoReload(ActiveLayer, DISABLE);
8005230: 4b08 ldr r3, [pc, #32] ; (8005254 <LCD_Refresh+0x40>)
8005232: 681b ldr r3, [r3, #0]
8005234: 2100 movs r1, #0
8005236: 4618 mov r0, r3
8005238: f7ff f926 bl 8004488 <BSP_LCD_SetLayerVisible_NoReload>
BSP_LCD_SetLayerVisible_NoReload(RenderingLayer, ENABLE);
800523c: 4b06 ldr r3, [pc, #24] ; (8005258 <LCD_Refresh+0x44>)
800523e: 681b ldr r3, [r3, #0]
8005240: 2101 movs r1, #1
8005242: 4618 mov r0, r3
8005244: f7ff f920 bl 8004488 <BSP_LCD_SetLayerVisible_NoReload>
HAL_LTDC_Reload(&hLtdcHandler, LTDC_RELOAD_IMMEDIATE);
8005248: 2101 movs r1, #1
800524a: 4804 ldr r0, [pc, #16] ; (800525c <LCD_Refresh+0x48>)
800524c: f009 fe4c bl 800eee8 <HAL_LTDC_Reload>
//BSP_LCD_Reload(LCD_RELOAD_VERTICAL_BLANKING);
}
8005250: bf00 nop
8005252: bd80 pop {r7, pc}
8005254: 20020014 .word 0x20020014
8005258: 2006b2c8 .word 0x2006b2c8
800525c: 2006b9dc .word 0x2006b9dc
08005260 <HAL_LTDC_LineEventCallback>:
void HAL_LTDC_LineEventCallback(LTDC_HandleTypeDef *hltdc)
{
8005260: b580 push {r7, lr}
8005262: b082 sub sp, #8
8005264: af00 add r7, sp, #0
8005266: 6078 str r0, [r7, #4]
if(RefreshScreen)
8005268: 4b06 ldr r3, [pc, #24] ; (8005284 <HAL_LTDC_LineEventCallback+0x24>)
800526a: 781b ldrb r3, [r3, #0]
800526c: b2db uxtb r3, r3
800526e: 2b00 cmp r3, #0
8005270: d004 beq.n 800527c <HAL_LTDC_LineEventCallback+0x1c>
{
LCD_Refresh();
8005272: f7ff ffcf bl 8005214 <LCD_Refresh>
RefreshScreen = false;
8005276: 4b03 ldr r3, [pc, #12] ; (8005284 <HAL_LTDC_LineEventCallback+0x24>)
8005278: 2200 movs r2, #0
800527a: 701a strb r2, [r3, #0]
}
}
800527c: bf00 nop
800527e: 3708 adds r7, #8
8005280: 46bd mov sp, r7
8005282: bd80 pop {r7, pc}
8005284: 2006b2cc .word 0x2006b2cc
08005288 <main>:
const char _VERSION[] = "VER 1.203.0\0";
volatile char _SERIAL_DRAW[10] = {'S', 'N', ' ', '2', '3', '0', '0', '1', 0, 0};
int main(void)
{
8005288: b580 push {r7, lr}
800528a: b092 sub sp, #72 ; 0x48
800528c: af00 add r7, sp, #0
uint32_t cnt = 0, i, j, k, l;
800528e: 2300 movs r3, #0
8005290: 63fb str r3, [r7, #60] ; 0x3c
float32_t f;
char str[50];
uint32_t keys = 0;
8005292: 2300 movs r3, #0
8005294: 63bb str r3, [r7, #56] ; 0x38
HAL_Init();
8005296: f008 fba5 bl 800d9e4 <HAL_Init>
SystemClock_Config();
800529a: f000 f8e1 bl 8005460 <SystemClock_Config>
MX_GPIO_Init();
800529e: f7fb f9df bl 8000660 <MX_GPIO_Init>
MX_DMA2D_Init();
80052a2: f7fb f985 bl 80005b0 <MX_DMA2D_Init>
MX_TIM7_Init();
80052a6: f006 fddb bl 800be60 <MX_TIM7_Init>
MX_LTDC_Init();
80052aa: f7fe fe71 bl 8003f90 <MX_LTDC_Init>
initKeys();
80052ae: f7fb facb bl 8000848 <initKeys>
/////////////////////////////// todo
CNT_CHANNELS = 4;
80052b2: 4b60 ldr r3, [pc, #384] ; (8005434 <main+0x1ac>)
80052b4: 2204 movs r2, #4
80052b6: 601a str r2, [r3, #0]
ACTIVE_CHANNEL = Ch1;
80052b8: 4b5f ldr r3, [pc, #380] ; (8005438 <main+0x1b0>)
80052ba: 2200 movs r2, #0
80052bc: 601a str r2, [r3, #0]
menupos = Input;
80052be: 4b5f ldr r3, [pc, #380] ; (800543c <main+0x1b4>)
80052c0: 2200 movs r2, #0
80052c2: 701a strb r2, [r3, #0]
for(i = 0; i < 16; i++)
80052c4: 2300 movs r3, #0
80052c6: 647b str r3, [r7, #68] ; 0x44
80052c8: e05d b.n 8005386 <main+0xfe>
{
pardata.amplif[i].IIN = CHARGE;
80052ca: 4a5d ldr r2, [pc, #372] ; (8005440 <main+0x1b8>)
80052cc: 6c7b ldr r3, [r7, #68] ; 0x44
80052ce: 015b lsls r3, r3, #5
80052d0: 4413 add r3, r2
80052d2: 2200 movs r2, #0
80052d4: 801a strh r2, [r3, #0]
pardata.amplif[i].IFV = Hp0_2;
80052d6: 4a5a ldr r2, [pc, #360] ; (8005440 <main+0x1b8>)
80052d8: 6c7b ldr r3, [r7, #68] ; 0x44
80052da: 015b lsls r3, r3, #5
80052dc: 4413 add r3, r2
80052de: 3302 adds r3, #2
80052e0: 2200 movs r2, #0
80052e2: 801a strh r2, [r3, #0]
pardata.amplif[i].IFN = Lp100000;
80052e4: 4a56 ldr r2, [pc, #344] ; (8005440 <main+0x1b8>)
80052e6: 6c7b ldr r3, [r7, #68] ; 0x44
80052e8: 015b lsls r3, r3, #5
80052ea: 4413 add r3, r2
80052ec: 3304 adds r3, #4
80052ee: 2207 movs r2, #7
80052f0: 801a strh r2, [r3, #0]
pardata.amplif[i].IKU = Ku1000;
80052f2: 4a53 ldr r2, [pc, #332] ; (8005440 <main+0x1b8>)
80052f4: 6c7b ldr r3, [r7, #68] ; 0x44
80052f6: 015b lsls r3, r3, #5
80052f8: 4413 add r3, r2
80052fa: 3306 adds r3, #6
80052fc: 220c movs r2, #12
80052fe: 801a strh r2, [r3, #0]
pardata.amplif[i].IKS = 0;
8005300: 4a4f ldr r2, [pc, #316] ; (8005440 <main+0x1b8>)
8005302: 6c7b ldr r3, [r7, #68] ; 0x44
8005304: 015b lsls r3, r3, #5
8005306: 4413 add r3, r2
8005308: 330c adds r3, #12
800530a: 2200 movs r2, #0
800530c: 801a strh r2, [r3, #0]
pardata.amplif[i].IKD = 0;
800530e: 4a4c ldr r2, [pc, #304] ; (8005440 <main+0x1b8>)
8005310: 6c7b ldr r3, [r7, #68] ; 0x44
8005312: 015b lsls r3, r3, #5
8005314: 4413 add r3, r2
8005316: 330a adds r3, #10
8005318: 2200 movs r2, #0
800531a: 801a strh r2, [r3, #0]
pardata.amplif[i].IKE = 1;
800531c: 4a48 ldr r2, [pc, #288] ; (8005440 <main+0x1b8>)
800531e: 6c7b ldr r3, [r7, #68] ; 0x44
8005320: 015b lsls r3, r3, #5
8005322: 4413 add r3, r2
8005324: 3308 adds r3, #8
8005326: 2201 movs r2, #1
8005328: 801a strh r2, [r3, #0]
pardata.amplif[i].IPZ = 0;
800532a: 4a45 ldr r2, [pc, #276] ; (8005440 <main+0x1b8>)
800532c: 6c7b ldr r3, [r7, #68] ; 0x44
800532e: 015b lsls r3, r3, #5
8005330: 4413 add r3, r2
8005332: 330e adds r3, #14
8005334: 2200 movs r2, #0
8005336: 801a strh r2, [r3, #0]
pardata.amplif[i].OPZ = 0;
8005338: 4a41 ldr r2, [pc, #260] ; (8005440 <main+0x1b8>)
800533a: 6c7b ldr r3, [r7, #68] ; 0x44
800533c: 015b lsls r3, r3, #5
800533e: 4413 add r3, r2
8005340: 3310 adds r3, #16
8005342: 2200 movs r2, #0
8005344: 801a strh r2, [r3, #0]
pardata.amplif[i].VAL = Accel;
8005346: 4a3e ldr r2, [pc, #248] ; (8005440 <main+0x1b8>)
8005348: 6c7b ldr r3, [r7, #68] ; 0x44
800534a: 015b lsls r3, r3, #5
800534c: 4413 add r3, r2
800534e: 3312 adds r3, #18
8005350: 2200 movs r2, #0
8005352: 801a strh r2, [r3, #0]
pardata.amplif[i].KCOND = 1.00f;
8005354: 4a3a ldr r2, [pc, #232] ; (8005440 <main+0x1b8>)
8005356: 6c7b ldr r3, [r7, #68] ; 0x44
8005358: 015b lsls r3, r3, #5
800535a: 4413 add r3, r2
800535c: 3314 adds r3, #20
800535e: f04f 527e mov.w r2, #1065353216 ; 0x3f800000
8005362: 601a str r2, [r3, #0]
pardata.amplif[i].SENS = 10.00f;
8005364: 4a36 ldr r2, [pc, #216] ; (8005440 <main+0x1b8>)
8005366: 6c7b ldr r3, [r7, #68] ; 0x44
8005368: 015b lsls r3, r3, #5
800536a: 4413 add r3, r2
800536c: 3318 adds r3, #24
800536e: 4a35 ldr r2, [pc, #212] ; (8005444 <main+0x1bc>)
8005370: 601a str r2, [r3, #0]
pardata.amplif[i].ACCEL = 100.00f;
8005372: 4a33 ldr r2, [pc, #204] ; (8005440 <main+0x1b8>)
8005374: 6c7b ldr r3, [r7, #68] ; 0x44
8005376: 015b lsls r3, r3, #5
8005378: 4413 add r3, r2
800537a: 331c adds r3, #28
800537c: 4a32 ldr r2, [pc, #200] ; (8005448 <main+0x1c0>)
800537e: 601a str r2, [r3, #0]
for(i = 0; i < 16; i++)
8005380: 6c7b ldr r3, [r7, #68] ; 0x44
8005382: 3301 adds r3, #1
8005384: 647b str r3, [r7, #68] ; 0x44
8005386: 6c7b ldr r3, [r7, #68] ; 0x44
8005388: 2b0f cmp r3, #15
800538a: d99e bls.n 80052ca <main+0x42>
}
pardata.OWN = 18;
800538c: 4b2c ldr r3, [pc, #176] ; (8005440 <main+0x1b8>)
800538e: 2212 movs r2, #18
8005390: f8a3 2200 strh.w r2, [r3, #512] ; 0x200
pardata.BAUD = 7;
8005394: 4b2a ldr r3, [pc, #168] ; (8005440 <main+0x1b8>)
8005396: 2207 movs r2, #7
8005398: f8a3 2202 strh.w r2, [r3, #514] ; 0x202
pardata.INFB = 0;
800539c: 4b28 ldr r3, [pc, #160] ; (8005440 <main+0x1b8>)
800539e: 2200 movs r2, #0
80053a0: f8a3 2204 strh.w r2, [r3, #516] ; 0x204
pardata.LANG = RUS;
80053a4: 4b26 ldr r3, [pc, #152] ; (8005440 <main+0x1b8>)
80053a6: 2200 movs r2, #0
80053a8: f8a3 2206 strh.w r2, [r3, #518] ; 0x206
/////////////////////////////
MX_UART7_Init();
80053ac: f006 fe72 bl 800c094 <MX_UART7_Init>
EXTI_Config();
80053b0: f000 f8f6 bl 80055a0 <EXTI_Config>
Logo();
80053b4: f000 f958 bl 8005668 <Logo>
while(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET) {
80053b8: e001 b.n 80053be <main+0x136>
RedrawScreen();
80053ba: f000 f945 bl 8005648 <RedrawScreen>
while(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET) {
80053be: 2101 movs r1, #1
80053c0: 4822 ldr r0, [pc, #136] ; (800544c <main+0x1c4>)
80053c2: f009 fb49 bl 800ea58 <HAL_GPIO_ReadPin>
80053c6: 4603 mov r3, r0
80053c8: 2b01 cmp r3, #1
80053ca: d0f6 beq.n 80053ba <main+0x132>
}
KeysIsReady = true;
80053cc: 4b20 ldr r3, [pc, #128] ; (8005450 <main+0x1c8>)
80053ce: 2201 movs r2, #1
80053d0: 701a strb r2, [r3, #0]
for(k = 0; k < 30; k++)
80053d2: 2300 movs r3, #0
80053d4: 643b str r3, [r7, #64] ; 0x40
80053d6: e00f b.n 80053f8 <main+0x170>
{
keys = kbhit();
80053d8: f7fb fac4 bl 8000964 <kbhit>
80053dc: 63b8 str r0, [r7, #56] ; 0x38
if((keys == KEY_UP) || (keys == (KEY_UP + KEY_OK)))
80053de: 6bbb ldr r3, [r7, #56] ; 0x38
80053e0: 2b02 cmp r3, #2
80053e2: d002 beq.n 80053ea <main+0x162>
80053e4: 6bbb ldr r3, [r7, #56] ; 0x38
80053e6: 2b22 cmp r3, #34 ; 0x22
80053e8: d103 bne.n 80053f2 <main+0x16a>
{
clbr = true;
80053ea: 4b1a ldr r3, [pc, #104] ; (8005454 <main+0x1cc>)
80053ec: 2201 movs r2, #1
80053ee: 701a strb r2, [r3, #0]
break;
80053f0: e005 b.n 80053fe <main+0x176>
for(k = 0; k < 30; k++)
80053f2: 6c3b ldr r3, [r7, #64] ; 0x40
80053f4: 3301 adds r3, #1
80053f6: 643b str r3, [r7, #64] ; 0x40
80053f8: 6c3b ldr r3, [r7, #64] ; 0x40
80053fa: 2b1d cmp r3, #29
80053fc: d9ec bls.n 80053d8 <main+0x150>
}
}
HAL_Delay(1000);
80053fe: f44f 707a mov.w r0, #1000 ; 0x3e8
8005402: f008 fb5b bl 800dabc <HAL_Delay>
AskChannels();
8005406: f008 fa23 bl 800d850 <AskChannels>
//menu = MAIN; //todo
timerAsk = msec1900;
800540a: 4b13 ldr r3, [pc, #76] ; (8005458 <main+0x1d0>)
800540c: 22be movs r2, #190 ; 0xbe
800540e: 801a strh r2, [r3, #0]
FlagAsk = 0;
8005410: 4b12 ldr r3, [pc, #72] ; (800545c <main+0x1d4>)
8005412: 2200 movs r2, #0
8005414: 701a strb r2, [r3, #0]
while(1)
{
RedrawScreen();
8005416: f000 f917 bl 8005648 <RedrawScreen>
keyIns();
800541a: f7fb fb3f bl 8000a9c <keyIns>
if(FlagAsk)
800541e: 4b0f ldr r3, [pc, #60] ; (800545c <main+0x1d4>)
8005420: 781b ldrb r3, [r3, #0]
8005422: b2db uxtb r3, r3
8005424: 2b00 cmp r3, #0
8005426: d0f6 beq.n 8005416 <main+0x18e>
{
FlagAsk = 0;
8005428: 4b0c ldr r3, [pc, #48] ; (800545c <main+0x1d4>)
800542a: 2200 movs r2, #0
800542c: 701a strb r2, [r3, #0]
AskPeriodic();
800542e: f008 faab bl 800d988 <AskPeriodic>
RedrawScreen();
8005432: e7f0 b.n 8005416 <main+0x18e>
8005434: 2006b2d4 .word 0x2006b2d4
8005438: 2006b2d0 .word 0x2006b2d0
800543c: 20020010 .word 0x20020010
8005440: 2006b510 .word 0x2006b510
8005444: 41200000 .word 0x41200000
8005448: 42c80000 .word 0x42c80000
800544c: 40020000 .word 0x40020000
8005450: 20020248 .word 0x20020248
8005454: 2006ba84 .word 0x2006ba84
8005458: 2002021e .word 0x2002021e
800545c: 2006b2ef .word 0x2006b2ef
08005460 <SystemClock_Config>:
/**
* @brief System Clock Configuration
* @retval None
*/
void SystemClock_Config(void)
{
8005460: b580 push {r7, lr}
8005462: b0b8 sub sp, #224 ; 0xe0
8005464: af00 add r7, sp, #0
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
8005466: f107 03ac add.w r3, r7, #172 ; 0xac
800546a: 2234 movs r2, #52 ; 0x34
800546c: 2100 movs r1, #0
800546e: 4618 mov r0, r3
8005470: f00c ff51 bl 8012316 <memset>
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
8005474: f107 0398 add.w r3, r7, #152 ; 0x98
8005478: 2200 movs r2, #0
800547a: 601a str r2, [r3, #0]
800547c: 605a str r2, [r3, #4]
800547e: 609a str r2, [r3, #8]
8005480: 60da str r2, [r3, #12]
8005482: 611a str r2, [r3, #16]
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
8005484: f107 0308 add.w r3, r7, #8
8005488: 2290 movs r2, #144 ; 0x90
800548a: 2100 movs r1, #0
800548c: 4618 mov r0, r3
800548e: f00c ff42 bl 8012316 <memset>
__HAL_RCC_PWR_CLK_ENABLE();
8005492: 4a3f ldr r2, [pc, #252] ; (8005590 <SystemClock_Config+0x130>)
8005494: 4b3e ldr r3, [pc, #248] ; (8005590 <SystemClock_Config+0x130>)
8005496: 6c1b ldr r3, [r3, #64] ; 0x40
8005498: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
800549c: 6413 str r3, [r2, #64] ; 0x40
800549e: 4b3c ldr r3, [pc, #240] ; (8005590 <SystemClock_Config+0x130>)
80054a0: 6c1b ldr r3, [r3, #64] ; 0x40
80054a2: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
80054a6: 607b str r3, [r7, #4]
80054a8: 687b ldr r3, [r7, #4]
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);
80054aa: 4a3a ldr r2, [pc, #232] ; (8005594 <SystemClock_Config+0x134>)
80054ac: 4b39 ldr r3, [pc, #228] ; (8005594 <SystemClock_Config+0x134>)
80054ae: 681b ldr r3, [r3, #0]
80054b0: f423 4340 bic.w r3, r3, #49152 ; 0xc000
80054b4: f443 4380 orr.w r3, r3, #16384 ; 0x4000
80054b8: 6013 str r3, [r2, #0]
80054ba: 4b36 ldr r3, [pc, #216] ; (8005594 <SystemClock_Config+0x134>)
80054bc: 681b ldr r3, [r3, #0]
80054be: f403 4340 and.w r3, r3, #49152 ; 0xc000
80054c2: 603b str r3, [r7, #0]
80054c4: 683b ldr r3, [r7, #0]
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
80054c6: 2302 movs r3, #2
80054c8: f8c7 30ac str.w r3, [r7, #172] ; 0xac
RCC_OscInitStruct.LSEState = RCC_LSE_BYPASS;
80054cc: 2305 movs r3, #5
80054ce: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
80054d2: 2301 movs r3, #1
80054d4: f8c7 30b8 str.w r3, [r7, #184] ; 0xb8
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
80054d8: 2310 movs r3, #16
80054da: f8c7 30bc str.w r3, [r7, #188] ; 0xbc
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
80054de: 2302 movs r3, #2
80054e0: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
80054e4: 2300 movs r3, #0
80054e6: f8c7 30c8 str.w r3, [r7, #200] ; 0xc8
RCC_OscInitStruct.PLL.PLLM = 16;
80054ea: 2310 movs r3, #16
80054ec: f8c7 30cc str.w r3, [r7, #204] ; 0xcc
RCC_OscInitStruct.PLL.PLLN = 432;
80054f0: f44f 73d8 mov.w r3, #432 ; 0x1b0
80054f4: f8c7 30d0 str.w r3, [r7, #208] ; 0xd0
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV8;
80054f8: 2308 movs r3, #8
80054fa: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4
RCC_OscInitStruct.PLL.PLLQ = 9;
80054fe: 2309 movs r3, #9
8005500: f8c7 30d8 str.w r3, [r7, #216] ; 0xd8
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
8005504: f107 03ac add.w r3, r7, #172 ; 0xac
8005508: 4618 mov r0, r3
800550a: f009 febf bl 800f28c <HAL_RCC_OscConfig>
800550e: 4603 mov r3, r0
8005510: 2b00 cmp r3, #0
8005512: d001 beq.n 8005518 <SystemClock_Config+0xb8>
{
Error_Handler();
8005514: f000 f840 bl 8005598 <Error_Handler>
}
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
8005518: 230f movs r3, #15
800551a: f8c7 3098 str.w r3, [r7, #152] ; 0x98
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
800551e: 2302 movs r3, #2
8005520: f8c7 309c str.w r3, [r7, #156] ; 0x9c
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
8005524: 2300 movs r3, #0
8005526: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
800552a: 2300 movs r3, #0
800552c: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
8005530: 2300 movs r3, #0
8005532: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8
if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
8005536: f107 0398 add.w r3, r7, #152 ; 0x98
800553a: 2101 movs r1, #1
800553c: 4618 mov r0, r3
800553e: f00a f953 bl 800f7e8 <HAL_RCC_ClockConfig>
8005542: 4603 mov r3, r0
8005544: 2b00 cmp r3, #0
8005546: d001 beq.n 800554c <SystemClock_Config+0xec>
{
Error_Handler();
8005548: f000 f826 bl 8005598 <Error_Handler>
}
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC |RCC_PERIPHCLK_UART7;
800554c: f241 0308 movw r3, #4104 ; 0x1008
8005550: 60bb str r3, [r7, #8]
PeriphClkInitStruct.PLLSAI.PLLSAIN = 192;
8005552: 23c0 movs r3, #192 ; 0xc0
8005554: 61fb str r3, [r7, #28]
PeriphClkInitStruct.PLLSAI.PLLSAIR = 4;
8005556: 2304 movs r3, #4
8005558: 627b str r3, [r7, #36] ; 0x24
PeriphClkInitStruct.PLLSAI.PLLSAIQ = 2;
800555a: 2302 movs r3, #2
800555c: 623b str r3, [r7, #32]
PeriphClkInitStruct.PLLSAI.PLLSAIP = RCC_PLLSAIP_DIV4;
800555e: 2301 movs r3, #1
8005560: 62bb str r3, [r7, #40] ; 0x28
PeriphClkInitStruct.PLLSAIDivQ = 1;
8005562: 2301 movs r3, #1
8005564: 633b str r3, [r7, #48] ; 0x30
PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_2;
8005566: 2300 movs r3, #0
8005568: 637b str r3, [r7, #52] ; 0x34
PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
800556a: f44f 7380 mov.w r3, #256 ; 0x100
800556e: 63bb str r3, [r7, #56] ; 0x38
PeriphClkInitStruct.Uart7ClockSelection = RCC_UART7CLKSOURCE_PCLK1;
8005570: 2300 movs r3, #0
8005572: 667b str r3, [r7, #100] ; 0x64
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
8005574: f107 0308 add.w r3, r7, #8
8005578: 4618 mov r0, r3
800557a: f00a fb0b bl 800fb94 <HAL_RCCEx_PeriphCLKConfig>
800557e: 4603 mov r3, r0
8005580: 2b00 cmp r3, #0
8005582: d001 beq.n 8005588 <SystemClock_Config+0x128>
{
Error_Handler();
8005584: f000 f808 bl 8005598 <Error_Handler>
PeriphClkInitStruct.Sdmmc1ClockSelection = RCC_SDMMC1CLKSOURCE_CLK48;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
Error_Handler();
}*/
}
8005588: bf00 nop
800558a: 37e0 adds r7, #224 ; 0xe0
800558c: 46bd mov sp, r7
800558e: bd80 pop {r7, pc}
8005590: 40023800 .word 0x40023800
8005594: 40007000 .word 0x40007000
08005598 <Error_Handler>:
/**
* @brief This function is executed in case of error occurrence.
* @retval None
*/
void Error_Handler(void)
{
8005598: b480 push {r7}
800559a: af00 add r7, sp, #0
\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");
800559c: 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)
800559e: e7fe b.n 800559e <Error_Handler+0x6>
080055a0 <EXTI_Config>:
void EXTI_Config(void)
{
80055a0: b580 push {r7, lr}
80055a2: b086 sub sp, #24
80055a4: af00 add r7, sp, #0
GPIO_InitTypeDef EXTILineStruct;
__HAL_RCC_SYSCFG_CLK_ENABLE();
80055a6: 4a12 ldr r2, [pc, #72] ; (80055f0 <EXTI_Config+0x50>)
80055a8: 4b11 ldr r3, [pc, #68] ; (80055f0 <EXTI_Config+0x50>)
80055aa: 6c5b ldr r3, [r3, #68] ; 0x44
80055ac: f443 4380 orr.w r3, r3, #16384 ; 0x4000
80055b0: 6453 str r3, [r2, #68] ; 0x44
80055b2: 4b0f ldr r3, [pc, #60] ; (80055f0 <EXTI_Config+0x50>)
80055b4: 6c5b ldr r3, [r3, #68] ; 0x44
80055b6: f403 4380 and.w r3, r3, #16384 ; 0x4000
80055ba: 603b str r3, [r7, #0]
80055bc: 683b ldr r3, [r7, #0]
EXTILineStruct.Pin = GPIO_PIN_2;
80055be: 2304 movs r3, #4
80055c0: 607b str r3, [r7, #4]
EXTILineStruct.Mode = GPIO_MODE_IT_RISING;
80055c2: f44f 1388 mov.w r3, #1114112 ; 0x110000
80055c6: 60bb str r3, [r7, #8]
EXTILineStruct.Pull = GPIO_NOPULL;
80055c8: 2300 movs r3, #0
80055ca: 60fb str r3, [r7, #12]
HAL_GPIO_Init(GPIOC, &EXTILineStruct);
80055cc: 1d3b adds r3, r7, #4
80055ce: 4619 mov r1, r3
80055d0: 4808 ldr r0, [pc, #32] ; (80055f4 <EXTI_Config+0x54>)
80055d2: f009 f897 bl 800e704 <HAL_GPIO_Init>
HAL_NVIC_SetPriority(EXTI2_IRQn, 12, 0);
80055d6: 2200 movs r2, #0
80055d8: 210c movs r1, #12
80055da: 2008 movs r0, #8
80055dc: f008 fb8b bl 800dcf6 <HAL_NVIC_SetPriority>
HAL_NVIC_EnableIRQ(EXTI2_IRQn);
80055e0: 2008 movs r0, #8
80055e2: f008 fba4 bl 800dd2e <HAL_NVIC_EnableIRQ>
}
80055e6: bf00 nop
80055e8: 3718 adds r7, #24
80055ea: 46bd mov sp, r7
80055ec: bd80 pop {r7, pc}
80055ee: bf00 nop
80055f0: 40023800 .word 0x40023800
80055f4: 40020800 .word 0x40020800
080055f8 <HAL_GPIO_EXTI_Callback>:
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
80055f8: b580 push {r7, lr}
80055fa: b082 sub sp, #8
80055fc: af00 add r7, sp, #0
80055fe: 4603 mov r3, r0
8005600: 80fb strh r3, [r7, #6]
if(GPIO_Pin == GPIO_PIN_2)
8005602: 88fb ldrh r3, [r7, #6]
8005604: 2b04 cmp r3, #4
8005606: d114 bne.n 8005632 <HAL_GPIO_EXTI_Callback+0x3a>
{
__HAL_GPIO_EXTI_CLEAR_FLAG(GPIO_PIN_2);
8005608: 4b0c ldr r3, [pc, #48] ; (800563c <HAL_GPIO_EXTI_Callback+0x44>)
800560a: 2204 movs r2, #4
800560c: 615a str r2, [r3, #20]
if((RefreshScreen == false) && (screen == true))
800560e: 4b0c ldr r3, [pc, #48] ; (8005640 <HAL_GPIO_EXTI_Callback+0x48>)
8005610: 781b ldrb r3, [r3, #0]
8005612: b2db uxtb r3, r3
8005614: f083 0301 eor.w r3, r3, #1
8005618: b2db uxtb r3, r3
800561a: 2b00 cmp r3, #0
800561c: d009 beq.n 8005632 <HAL_GPIO_EXTI_Callback+0x3a>
800561e: 4b09 ldr r3, [pc, #36] ; (8005644 <HAL_GPIO_EXTI_Callback+0x4c>)
8005620: 781b ldrb r3, [r3, #0]
8005622: b2db uxtb r3, r3
8005624: 2b00 cmp r3, #0
8005626: d004 beq.n 8005632 <HAL_GPIO_EXTI_Callback+0x3a>
{
screen = false;
8005628: 4b06 ldr r3, [pc, #24] ; (8005644 <HAL_GPIO_EXTI_Callback+0x4c>)
800562a: 2200 movs r2, #0
800562c: 701a strb r2, [r3, #0]
Display();
800562e: f000 f8b9 bl 80057a4 <Display>
}
//ReadChannel(Ch1);
}
}
8005632: bf00 nop
8005634: 3708 adds r7, #8
8005636: 46bd mov sp, r7
8005638: bd80 pop {r7, pc}
800563a: bf00 nop
800563c: 40013c00 .word 0x40013c00
8005640: 2006b2cc .word 0x2006b2cc
8005644: 2002002c .word 0x2002002c
08005648 <RedrawScreen>:
void RedrawScreen(void)
{
8005648: b480 push {r7}
800564a: af00 add r7, sp, #0
__HAL_GPIO_EXTI_GENERATE_SWIT(GPIO_PIN_2);
800564c: 4a05 ldr r2, [pc, #20] ; (8005664 <RedrawScreen+0x1c>)
800564e: 4b05 ldr r3, [pc, #20] ; (8005664 <RedrawScreen+0x1c>)
8005650: 691b ldr r3, [r3, #16]
8005652: f043 0304 orr.w r3, r3, #4
8005656: 6113 str r3, [r2, #16]
{
screen = false;
Display();
}*/
}
8005658: bf00 nop
800565a: 46bd mov sp, r7
800565c: f85d 7b04 ldr.w r7, [sp], #4
8005660: 4770 bx lr
8005662: bf00 nop
8005664: 40013c00 .word 0x40013c00
08005668 <Logo>:
void Logo(void)
{
8005668: b580 push {r7, lr}
800566a: b082 sub sp, #8
800566c: af00 add r7, sp, #0
uint32_t i;
uint32_t color = LCD_COLOR_BLACK; //0xFF212829;
800566e: f04f 437f mov.w r3, #4278190080 ; 0xff000000
8005672: 603b str r3, [r7, #0]
#ifdef DRAW_LOGO
BSP_LCD_DisplayOn();
8005674: f7fe fdc2 bl 80041fc <BSP_LCD_DisplayOn>
HAL_NVIC_DisableIRQ(EXTI2_IRQn);
8005678: 2008 movs r0, #8
800567a: f008 fb66 bl 800dd4a <HAL_NVIC_DisableIRQ>
//*********************************************************
BSP_LCD_SetFont(&Font12);
800567e: 4843 ldr r0, [pc, #268] ; (800578c <Logo+0x124>)
8005680: f7fe ff76 bl 8004570 <BSP_LCD_SetFont>
for(i = 0; i < 3; i++)
8005684: 2300 movs r3, #0
8005686: 607b str r3, [r7, #4]
8005688: e032 b.n 80056f0 <Logo+0x88>
{
BSP_LCD_Clear(color);
800568a: 6838 ldr r0, [r7, #0]
800568c: f7fe ff8e bl 80045ac <BSP_LCD_Clear>
DrawImage(&bmLOGO_NEW, 0, 54);
8005690: 2236 movs r2, #54 ; 0x36
8005692: 2100 movs r1, #0
8005694: 483e ldr r0, [pc, #248] ; (8005790 <Logo+0x128>)
8005696: f7ff fd0f bl 80050b8 <DrawImage>
RefreshScreen = true;
800569a: 4b3e ldr r3, [pc, #248] ; (8005794 <Logo+0x12c>)
800569c: 2201 movs r2, #1
800569e: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0);
80056a0: 2100 movs r1, #0
80056a2: 483d ldr r0, [pc, #244] ; (8005798 <Logo+0x130>)
80056a4: f009 fbe8 bl 800ee78 <HAL_LTDC_ProgramLineEvent>
while(RefreshScreen);
80056a8: bf00 nop
80056aa: 4b3a ldr r3, [pc, #232] ; (8005794 <Logo+0x12c>)
80056ac: 781b ldrb r3, [r3, #0]
80056ae: b2db uxtb r3, r3
80056b0: 2b00 cmp r3, #0
80056b2: d1fa bne.n 80056aa <Logo+0x42>
HAL_Delay(50);
80056b4: 2032 movs r0, #50 ; 0x32
80056b6: f008 fa01 bl 800dabc <HAL_Delay>
BSP_LCD_Clear(color);
80056ba: 6838 ldr r0, [r7, #0]
80056bc: f7fe ff76 bl 80045ac <BSP_LCD_Clear>
DrawImage(&bmLOGO_NEW, 0, 54);
80056c0: 2236 movs r2, #54 ; 0x36
80056c2: 2100 movs r1, #0
80056c4: 4832 ldr r0, [pc, #200] ; (8005790 <Logo+0x128>)
80056c6: f7ff fcf7 bl 80050b8 <DrawImage>
RefreshScreen = true;
80056ca: 4b32 ldr r3, [pc, #200] ; (8005794 <Logo+0x12c>)
80056cc: 2201 movs r2, #1
80056ce: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0);
80056d0: 2100 movs r1, #0
80056d2: 4831 ldr r0, [pc, #196] ; (8005798 <Logo+0x130>)
80056d4: f009 fbd0 bl 800ee78 <HAL_LTDC_ProgramLineEvent>
while(RefreshScreen);
80056d8: bf00 nop
80056da: 4b2e ldr r3, [pc, #184] ; (8005794 <Logo+0x12c>)
80056dc: 781b ldrb r3, [r3, #0]
80056de: b2db uxtb r3, r3
80056e0: 2b00 cmp r3, #0
80056e2: d1fa bne.n 80056da <Logo+0x72>
HAL_Delay(50);
80056e4: 2032 movs r0, #50 ; 0x32
80056e6: f008 f9e9 bl 800dabc <HAL_Delay>
for(i = 0; i < 3; i++)
80056ea: 687b ldr r3, [r7, #4]
80056ec: 3301 adds r3, #1
80056ee: 607b str r3, [r7, #4]
80056f0: 687b ldr r3, [r7, #4]
80056f2: 2b02 cmp r3, #2
80056f4: d9c9 bls.n 800568a <Logo+0x22>
}
HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_RESET); // BACKLIGHT_ON
80056f6: 2200 movs r2, #0
80056f8: f44f 7180 mov.w r1, #256 ; 0x100
80056fc: 4827 ldr r0, [pc, #156] ; (800579c <Logo+0x134>)
80056fe: f009 f9c3 bl 800ea88 <HAL_GPIO_WritePin>
//*********************************************************
BSP_LCD_Clear(color);
8005702: 6838 ldr r0, [r7, #0]
8005704: f7fe ff52 bl 80045ac <BSP_LCD_Clear>
DrawImage(&bmLOGO_NEW, 0, 54);
8005708: 2236 movs r2, #54 ; 0x36
800570a: 2100 movs r1, #0
800570c: 4820 ldr r0, [pc, #128] ; (8005790 <Logo+0x128>)
800570e: f7ff fcd3 bl 80050b8 <DrawImage>
RefreshScreen = true;
8005712: 4b20 ldr r3, [pc, #128] ; (8005794 <Logo+0x12c>)
8005714: 2201 movs r2, #1
8005716: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0);
8005718: 2100 movs r1, #0
800571a: 481f ldr r0, [pc, #124] ; (8005798 <Logo+0x130>)
800571c: f009 fbac bl 800ee78 <HAL_LTDC_ProgramLineEvent>
while(RefreshScreen);
8005720: bf00 nop
8005722: 4b1c ldr r3, [pc, #112] ; (8005794 <Logo+0x12c>)
8005724: 781b ldrb r3, [r3, #0]
8005726: b2db uxtb r3, r3
8005728: 2b00 cmp r3, #0
800572a: d1fa bne.n 8005722 <Logo+0xba>
HAL_Delay(50);
800572c: 2032 movs r0, #50 ; 0x32
800572e: f008 f9c5 bl 800dabc <HAL_Delay>
BSP_LCD_Clear(color);
8005732: 6838 ldr r0, [r7, #0]
8005734: f7fe ff3a bl 80045ac <BSP_LCD_Clear>
DrawImage(&bmLOGO_NEW, 0, 54);
8005738: 2236 movs r2, #54 ; 0x36
800573a: 2100 movs r1, #0
800573c: 4814 ldr r0, [pc, #80] ; (8005790 <Logo+0x128>)
800573e: f7ff fcbb bl 80050b8 <DrawImage>
RefreshScreen = true;
8005742: 4b14 ldr r3, [pc, #80] ; (8005794 <Logo+0x12c>)
8005744: 2201 movs r2, #1
8005746: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0);
8005748: 2100 movs r1, #0
800574a: 4813 ldr r0, [pc, #76] ; (8005798 <Logo+0x130>)
800574c: f009 fb94 bl 800ee78 <HAL_LTDC_ProgramLineEvent>
while(RefreshScreen);
8005750: bf00 nop
8005752: 4b10 ldr r3, [pc, #64] ; (8005794 <Logo+0x12c>)
8005754: 781b ldrb r3, [r3, #0]
8005756: b2db uxtb r3, r3
8005758: 2b00 cmp r3, #0
800575a: d1fa bne.n 8005752 <Logo+0xea>
HAL_Delay(50);
800575c: 2032 movs r0, #50 ; 0x32
800575e: f008 f9ad bl 800dabc <HAL_Delay>
HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_RESET); // BACKLIGHT_ON
8005762: 2200 movs r2, #0
8005764: f44f 7180 mov.w r1, #256 ; 0x100
8005768: 480c ldr r0, [pc, #48] ; (800579c <Logo+0x134>)
800576a: f009 f98d bl 800ea88 <HAL_GPIO_WritePin>
HAL_Delay(500);
800576e: f44f 70fa mov.w r0, #500 ; 0x1f4
8005772: f008 f9a3 bl 800dabc <HAL_Delay>
menu = LOGO;
8005776: 4b0a ldr r3, [pc, #40] ; (80057a0 <Logo+0x138>)
8005778: 221e movs r2, #30
800577a: 701a strb r2, [r3, #0]
HAL_NVIC_EnableIRQ(EXTI2_IRQn);
800577c: 2008 movs r0, #8
800577e: f008 fad6 bl 800dd2e <HAL_NVIC_EnableIRQ>
#endif
}
8005782: bf00 nop
8005784: 3708 adds r7, #8
8005786: 46bd mov sp, r7
8005788: bd80 pop {r7, pc}
800578a: bf00 nop
800578c: 20020000 .word 0x20020000
8005790: 0802a444 .word 0x0802a444
8005794: 2006b2cc .word 0x2006b2cc
8005798: 2006b9dc .word 0x2006b9dc
800579c: 40020000 .word 0x40020000
80057a0: 20020245 .word 0x20020245
080057a4 <Display>:
void Display(void)
{
80057a4: b580 push {r7, lr}
80057a6: f5ad 6d80 sub.w sp, sp, #1024 ; 0x400
80057aa: 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;
80057ac: 2300 movs r3, #0
80057ae: f887 33ff strb.w r3, [r7, #1023] ; 0x3ff
static uint32_t blk = 0;
static uint8_t tt = 0;
static uint32_t tme = 0;
bool bll = false;
80057b2: 2300 movs r3, #0
80057b4: f887 33fe strb.w r3, [r7, #1022] ; 0x3fe
uint32_t old_DateTime;
uint32_t lx, ly;
uint32_t Year, Month, Day, Hour, Min, Sec;
blk++;
80057b8: 4bbd ldr r3, [pc, #756] ; (8005ab0 <Display+0x30c>)
80057ba: 681b ldr r3, [r3, #0]
80057bc: 3301 adds r3, #1
80057be: 4abc ldr r2, [pc, #752] ; (8005ab0 <Display+0x30c>)
80057c0: 6013 str r3, [r2, #0]
if(blk > 2)
80057c2: 4bbb ldr r3, [pc, #748] ; (8005ab0 <Display+0x30c>)
80057c4: 681b ldr r3, [r3, #0]
80057c6: 2b02 cmp r3, #2
80057c8: d905 bls.n 80057d6 <Display+0x32>
{
blk = 0;
80057ca: 4bb9 ldr r3, [pc, #740] ; (8005ab0 <Display+0x30c>)
80057cc: 2200 movs r2, #0
80057ce: 601a str r2, [r3, #0]
bll = true;
80057d0: 2301 movs r3, #1
80057d2: f887 33fe strb.w r3, [r7, #1022] ; 0x3fe
}
blink++;
80057d6: 4bb7 ldr r3, [pc, #732] ; (8005ab4 <Display+0x310>)
80057d8: 681b ldr r3, [r3, #0]
80057da: 3301 adds r3, #1
80057dc: 4ab5 ldr r2, [pc, #724] ; (8005ab4 <Display+0x310>)
80057de: 6013 str r3, [r2, #0]
if(blink > 8)
80057e0: 4bb4 ldr r3, [pc, #720] ; (8005ab4 <Display+0x310>)
80057e2: 681b ldr r3, [r3, #0]
80057e4: 2b08 cmp r3, #8
80057e6: d905 bls.n 80057f4 <Display+0x50>
{
blink = 0;
80057e8: 4bb2 ldr r3, [pc, #712] ; (8005ab4 <Display+0x310>)
80057ea: 2200 movs r2, #0
80057ec: 601a str r2, [r3, #0]
bl = true;
80057ee: 2301 movs r3, #1
80057f0: f887 33ff strb.w r3, [r7, #1023] ; 0x3ff
}
Redrawing = true;
80057f4: 4bb0 ldr r3, [pc, #704] ; (8005ab8 <Display+0x314>)
80057f6: 2201 movs r2, #1
80057f8: 701a strb r2, [r3, #0]
BSP_LCD_Clear(LCD_COLOR_BLACK);
80057fa: f04f 407f mov.w r0, #4278190080 ; 0xff000000
80057fe: f7fe fed5 bl 80045ac <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)
8005802: 4bae ldr r3, [pc, #696] ; (8005abc <Display+0x318>)
8005804: 781b ldrb r3, [r3, #0]
8005806: b2db uxtb r3, r3
8005808: 2b4e cmp r3, #78 ; 0x4e
800580a: f200 8682 bhi.w 8006512 <Display+0xd6e>
800580e: a201 add r2, pc, #4 ; (adr r2, 8005814 <Display+0x70>)
8005810: f852 f023 ldr.w pc, [r2, r3, lsl #2]
8005814: 08005c3d .word 0x08005c3d
8005818: 08005edb .word 0x08005edb
800581c: 08005feb .word 0x08005feb
8005820: 0800601b .word 0x0800601b
8005824: 0800604b .word 0x0800604b
8005828: 0800607b .word 0x0800607b
800582c: 080060ab .word 0x080060ab
8005830: 08006139 .word 0x08006139
8005834: 08006169 .word 0x08006169
8005838: 08006199 .word 0x08006199
800583c: 080061c9 .word 0x080061c9
8005840: 080061f9 .word 0x080061f9
8005844: 08006229 .word 0x08006229
8005848: 08006259 .word 0x08006259
800584c: 08006289 .word 0x08006289
8005850: 080062b9 .word 0x080062b9
8005854: 080062e9 .word 0x080062e9
8005858: 08006319 .word 0x08006319
800585c: 08006349 .word 0x08006349
8005860: 08006379 .word 0x08006379
8005864: 080063a9 .word 0x080063a9
8005868: 080063d9 .word 0x080063d9
800586c: 08006409 .word 0x08006409
8005870: 08006439 .word 0x08006439
8005874: 08006469 .word 0x08006469
8005878: 08006513 .word 0x08006513
800587c: 08006513 .word 0x08006513
8005880: 08006513 .word 0x08006513
8005884: 08006513 .word 0x08006513
8005888: 08006513 .word 0x08006513
800588c: 08005951 .word 0x08005951
8005890: 08006513 .word 0x08006513
8005894: 08006513 .word 0x08006513
8005898: 08006513 .word 0x08006513
800589c: 08006513 .word 0x08006513
80058a0: 08006513 .word 0x08006513
80058a4: 08006513 .word 0x08006513
80058a8: 08006513 .word 0x08006513
80058ac: 08006513 .word 0x08006513
80058b0: 08006513 .word 0x08006513
80058b4: 08006513 .word 0x08006513
80058b8: 08006513 .word 0x08006513
80058bc: 08006513 .word 0x08006513
80058c0: 08006513 .word 0x08006513
80058c4: 08006513 .word 0x08006513
80058c8: 08006513 .word 0x08006513
80058cc: 08006513 .word 0x08006513
80058d0: 08006513 .word 0x08006513
80058d4: 08006513 .word 0x08006513
80058d8: 08006513 .word 0x08006513
80058dc: 08006513 .word 0x08006513
80058e0: 08006513 .word 0x08006513
80058e4: 08006513 .word 0x08006513
80058e8: 08006513 .word 0x08006513
80058ec: 08006513 .word 0x08006513
80058f0: 08006513 .word 0x08006513
80058f4: 08006513 .word 0x08006513
80058f8: 08006513 .word 0x08006513
80058fc: 08006513 .word 0x08006513
8005900: 08006513 .word 0x08006513
8005904: 08006513 .word 0x08006513
8005908: 08006513 .word 0x08006513
800590c: 08006513 .word 0x08006513
8005910: 08006513 .word 0x08006513
8005914: 08006513 .word 0x08006513
8005918: 08006513 .word 0x08006513
800591c: 08006513 .word 0x08006513
8005920: 08006513 .word 0x08006513
8005924: 08006513 .word 0x08006513
8005928: 08006513 .word 0x08006513
800592c: 08006513 .word 0x08006513
8005930: 08006513 .word 0x08006513
8005934: 08006513 .word 0x08006513
8005938: 08006513 .word 0x08006513
800593c: 08006513 .word 0x08006513
8005940: 08006513 .word 0x08006513
8005944: 08006513 .word 0x08006513
8005948: 08006513 .word 0x08006513
800594c: 08006513 .word 0x08006513
{
case LOGO:
//*********************************************************
DrawImage(&bmLOGO_NEW, 0, 54);
8005950: 2236 movs r2, #54 ; 0x36
8005952: 2100 movs r1, #0
8005954: 485a ldr r0, [pc, #360] ; (8005ac0 <Display+0x31c>)
8005956: f7ff fbaf bl 80050b8 <DrawImage>
timesLOGO++;
800595a: 4b5a ldr r3, [pc, #360] ; (8005ac4 <Display+0x320>)
800595c: 681b ldr r3, [r3, #0]
800595e: 3301 adds r3, #1
8005960: 4a58 ldr r2, [pc, #352] ; (8005ac4 <Display+0x320>)
8005962: 6013 str r3, [r2, #0]
if(timesLOGO >= 2)
8005964: 4b57 ldr r3, [pc, #348] ; (8005ac4 <Display+0x320>)
8005966: 681b ldr r3, [r3, #0]
8005968: 2b01 cmp r3, #1
800596a: f240 8595 bls.w 8006498 <Display+0xcf4>
{
LCD_SetColors(0xFFFFFFFF, 0);
800596e: 2100 movs r1, #0
8005970: f04f 30ff mov.w r0, #4294967295
8005974: f7fe fdc0 bl 80044f8 <LCD_SetColors>
BSP_LCD_SetFont(&Font12);
8005978: 4853 ldr r0, [pc, #332] ; (8005ac8 <Display+0x324>)
800597a: f7fe fdf9 bl 8004570 <BSP_LCD_SetFont>
#ifdef A142
if(pardata.LANG == RUS)
800597e: 4b53 ldr r3, [pc, #332] ; (8005acc <Display+0x328>)
8005980: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8005984: b29b uxth r3, r3
8005986: 2b00 cmp r3, #0
8005988: d10c bne.n 80059a4 <Display+0x200>
{
BSP_LCD_DisplayStringAt(165, 195, "<22>142", CENTER_MODE);
800598a: 2301 movs r3, #1
800598c: 4a50 ldr r2, [pc, #320] ; (8005ad0 <Display+0x32c>)
800598e: 21c3 movs r1, #195 ; 0xc3
8005990: 20a5 movs r0, #165 ; 0xa5
8005992: f7fe fe77 bl 8004684 <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);
8005996: 2301 movs r3, #1
8005998: 4a4e ldr r2, [pc, #312] ; (8005ad4 <Display+0x330>)
800599a: 21ce movs r1, #206 ; 0xce
800599c: 20a5 movs r0, #165 ; 0xa5
800599e: f7fe fe71 bl 8004684 <BSP_LCD_DisplayStringAt>
80059a2: e005 b.n 80059b0 <Display+0x20c>
}
else
BSP_LCD_DisplayStringAt(165, 206, "Amplifier A142", CENTER_MODE);
80059a4: 2301 movs r3, #1
80059a6: 4a4c ldr r2, [pc, #304] ; (8005ad8 <Display+0x334>)
80059a8: 21ce movs r1, #206 ; 0xce
80059aa: 20a5 movs r0, #165 ; 0xa5
80059ac: f7fe fe6a bl 8004684 <BSP_LCD_DisplayStringAt>
else
BSP_LCD_DisplayStringAt(165, 206, "Amplifier A148", CENTER_MODE);
#endif
#endif
BSP_LCD_DisplayStringAt(160, 224, (char *) _VERSION, CENTER_MODE);
80059b0: 2301 movs r3, #1
80059b2: 4a4a ldr r2, [pc, #296] ; (8005adc <Display+0x338>)
80059b4: 21e0 movs r1, #224 ; 0xe0
80059b6: 20a0 movs r0, #160 ; 0xa0
80059b8: f7fe fe64 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 4, (char *) _SERIAL_DRAW, CENTER_MODE);
80059bc: 2301 movs r3, #1
80059be: 4a48 ldr r2, [pc, #288] ; (8005ae0 <Display+0x33c>)
80059c0: 2104 movs r1, #4
80059c2: 20a0 movs r0, #160 ; 0xa0
80059c4: f7fe fe5e bl 8004684 <BSP_LCD_DisplayStringAt>
memset(str, 0, sizeof(str));
80059c8: f507 7339 add.w r3, r7, #740 ; 0x2e4
80059cc: 223c movs r2, #60 ; 0x3c
80059ce: 2100 movs r1, #0
80059d0: 4618 mov r0, r3
80059d2: f00c fca0 bl 8012316 <memset>
l = 0;
80059d6: 2300 movs r3, #0
80059d8: f8c7 33e4 str.w r3, [r7, #996] ; 0x3e4
if(ip_assigned)
80059dc: 4b41 ldr r3, [pc, #260] ; (8005ae4 <Display+0x340>)
80059de: 781b ldrb r3, [r3, #0]
80059e0: b2db uxtb r3, r3
80059e2: 2b00 cmp r3, #0
80059e4: f000 80f9 beq.w 8005bda <Display+0x436>
{
for(j = 0; j < 4; j++)
80059e8: 2300 movs r3, #0
80059ea: f8c7 33ec str.w r3, [r7, #1004] ; 0x3ec
80059ee: e0d9 b.n 8005ba4 <Display+0x400>
{
k = ip[j];
80059f0: f8d7 33ec ldr.w r3, [r7, #1004] ; 0x3ec
80059f4: 4a3c ldr r2, [pc, #240] ; (8005ae8 <Display+0x344>)
80059f6: 5cd3 ldrb r3, [r2, r3]
80059f8: f8c7 33e8 str.w r3, [r7, #1000] ; 0x3e8
if(k < 10)
80059fc: f8d7 33e8 ldr.w r3, [r7, #1000] ; 0x3e8
8005a00: 2b09 cmp r3, #9
8005a02: d81b bhi.n 8005a3c <Display+0x298>
{
str[l++] = (uint8_t) (k + 48);
8005a04: f8d7 33e4 ldr.w r3, [r7, #996] ; 0x3e4
8005a08: 1c5a adds r2, r3, #1
8005a0a: f8c7 23e4 str.w r2, [r7, #996] ; 0x3e4
8005a0e: f8d7 23e8 ldr.w r2, [r7, #1000] ; 0x3e8
8005a12: b2d2 uxtb r2, r2
8005a14: 3230 adds r2, #48 ; 0x30
8005a16: b2d1 uxtb r1, r2
8005a18: f507 7239 add.w r2, r7, #740 ; 0x2e4
8005a1c: 54d1 strb r1, [r2, r3]
if(j < 3) {
8005a1e: f8d7 33ec ldr.w r3, [r7, #1004] ; 0x3ec
8005a22: 2b02 cmp r3, #2
8005a24: f200 80b9 bhi.w 8005b9a <Display+0x3f6>
str[l++] = '.';
8005a28: f8d7 33e4 ldr.w r3, [r7, #996] ; 0x3e4
8005a2c: 1c5a adds r2, r3, #1
8005a2e: f8c7 23e4 str.w r2, [r7, #996] ; 0x3e4
8005a32: f507 7239 add.w r2, r7, #740 ; 0x2e4
8005a36: 212e movs r1, #46 ; 0x2e
8005a38: 54d1 strb r1, [r2, r3]
8005a3a: e0ae b.n 8005b9a <Display+0x3f6>
}
}
else
if(k < 100)
8005a3c: f8d7 33e8 ldr.w r3, [r7, #1000] ; 0x3e8
8005a40: 2b63 cmp r3, #99 ; 0x63
8005a42: d855 bhi.n 8005af0 <Display+0x34c>
{
str[l++] = (uint8_t) ((k / 10) + 48);
8005a44: f8d7 33e4 ldr.w r3, [r7, #996] ; 0x3e4
8005a48: 1c5a adds r2, r3, #1
8005a4a: f8c7 23e4 str.w r2, [r7, #996] ; 0x3e4
8005a4e: f8d7 23e8 ldr.w r2, [r7, #1000] ; 0x3e8
8005a52: 4926 ldr r1, [pc, #152] ; (8005aec <Display+0x348>)
8005a54: fba1 1202 umull r1, r2, r1, r2
8005a58: 08d2 lsrs r2, r2, #3
8005a5a: b2d2 uxtb r2, r2
8005a5c: 3230 adds r2, #48 ; 0x30
8005a5e: b2d1 uxtb r1, r2
8005a60: f507 7239 add.w r2, r7, #740 ; 0x2e4
8005a64: 54d1 strb r1, [r2, r3]
str[l++] = (uint8_t) ((k % 10) + 48);
8005a66: f8d7 13e4 ldr.w r1, [r7, #996] ; 0x3e4
8005a6a: 1c4b adds r3, r1, #1
8005a6c: f8c7 33e4 str.w r3, [r7, #996] ; 0x3e4
8005a70: f8d7 03e8 ldr.w r0, [r7, #1000] ; 0x3e8
8005a74: 4b1d ldr r3, [pc, #116] ; (8005aec <Display+0x348>)
8005a76: fba3 2300 umull r2, r3, r3, r0
8005a7a: 08da lsrs r2, r3, #3
8005a7c: 4613 mov r3, r2
8005a7e: 009b lsls r3, r3, #2
8005a80: 4413 add r3, r2
8005a82: 005b lsls r3, r3, #1
8005a84: 1ac2 subs r2, r0, r3
8005a86: b2d3 uxtb r3, r2
8005a88: 3330 adds r3, #48 ; 0x30
8005a8a: b2da uxtb r2, r3
8005a8c: f507 7339 add.w r3, r7, #740 ; 0x2e4
8005a90: 545a strb r2, [r3, r1]
if(j < 3) {
8005a92: f8d7 33ec ldr.w r3, [r7, #1004] ; 0x3ec
8005a96: 2b02 cmp r3, #2
8005a98: d87f bhi.n 8005b9a <Display+0x3f6>
str[l++] = '.';
8005a9a: f8d7 33e4 ldr.w r3, [r7, #996] ; 0x3e4
8005a9e: 1c5a adds r2, r3, #1
8005aa0: f8c7 23e4 str.w r2, [r7, #996] ; 0x3e4
8005aa4: f507 7239 add.w r2, r7, #740 ; 0x2e4
8005aa8: 212e movs r1, #46 ; 0x2e
8005aaa: 54d1 strb r1, [r2, r3]
8005aac: e075 b.n 8005b9a <Display+0x3f6>
8005aae: bf00 nop
8005ab0: 2006b2e0 .word 0x2006b2e0
8005ab4: 2006b2e4 .word 0x2006b2e4
8005ab8: 2006b2dc .word 0x2006b2dc
8005abc: 20020245 .word 0x20020245
8005ac0: 0802a444 .word 0x0802a444
8005ac4: 2006b2d8 .word 0x2006b2d8
8005ac8: 20020000 .word 0x20020000
8005acc: 2006b510 .word 0x2006b510
8005ad0: 080128e8 .word 0x080128e8
8005ad4: 080128f0 .word 0x080128f0
8005ad8: 08012910 .word 0x08012910
8005adc: 08015524 .word 0x08015524
8005ae0: 2002001c .word 0x2002001c
8005ae4: 2006b2fc .word 0x2006b2fc
8005ae8: 2006b2f4 .word 0x2006b2f4
8005aec: cccccccd .word 0xcccccccd
}
}
else
{
str[l++] = (uint8_t) ((k / 100) + 48);
8005af0: f8d7 33e4 ldr.w r3, [r7, #996] ; 0x3e4
8005af4: 1c5a adds r2, r3, #1
8005af6: f8c7 23e4 str.w r2, [r7, #996] ; 0x3e4
8005afa: f8d7 23e8 ldr.w r2, [r7, #1000] ; 0x3e8
8005afe: 4999 ldr r1, [pc, #612] ; (8005d64 <Display+0x5c0>)
8005b00: fba1 1202 umull r1, r2, r1, r2
8005b04: 0952 lsrs r2, r2, #5
8005b06: b2d2 uxtb r2, r2
8005b08: 3230 adds r2, #48 ; 0x30
8005b0a: b2d1 uxtb r1, r2
8005b0c: f507 7239 add.w r2, r7, #740 ; 0x2e4
8005b10: 54d1 strb r1, [r2, r3]
str[l++] = (uint8_t) ((k % 100 / 10) + 48);
8005b12: f8d7 23e4 ldr.w r2, [r7, #996] ; 0x3e4
8005b16: 1c53 adds r3, r2, #1
8005b18: f8c7 33e4 str.w r3, [r7, #996] ; 0x3e4
8005b1c: f8d7 13e8 ldr.w r1, [r7, #1000] ; 0x3e8
8005b20: 4b90 ldr r3, [pc, #576] ; (8005d64 <Display+0x5c0>)
8005b22: fba3 0301 umull r0, r3, r3, r1
8005b26: 095b lsrs r3, r3, #5
8005b28: 2064 movs r0, #100 ; 0x64
8005b2a: fb00 f303 mul.w r3, r0, r3
8005b2e: 1acb subs r3, r1, r3
8005b30: 498d ldr r1, [pc, #564] ; (8005d68 <Display+0x5c4>)
8005b32: fba1 1303 umull r1, r3, r1, r3
8005b36: 08db lsrs r3, r3, #3
8005b38: b2db uxtb r3, r3
8005b3a: 3330 adds r3, #48 ; 0x30
8005b3c: b2d9 uxtb r1, r3
8005b3e: f507 7339 add.w r3, r7, #740 ; 0x2e4
8005b42: 5499 strb r1, [r3, r2]
str[l++] = (uint8_t) ((k % 100 % 10) + 48);
8005b44: f8d7 03e4 ldr.w r0, [r7, #996] ; 0x3e4
8005b48: 1c43 adds r3, r0, #1
8005b4a: f8c7 33e4 str.w r3, [r7, #996] ; 0x3e4
8005b4e: f8d7 33e8 ldr.w r3, [r7, #1000] ; 0x3e8
8005b52: 4a84 ldr r2, [pc, #528] ; (8005d64 <Display+0x5c0>)
8005b54: fba2 1203 umull r1, r2, r2, r3
8005b58: 0952 lsrs r2, r2, #5
8005b5a: 2164 movs r1, #100 ; 0x64
8005b5c: fb01 f202 mul.w r2, r1, r2
8005b60: 1a9a subs r2, r3, r2
8005b62: 4b81 ldr r3, [pc, #516] ; (8005d68 <Display+0x5c4>)
8005b64: fba3 1302 umull r1, r3, r3, r2
8005b68: 08d9 lsrs r1, r3, #3
8005b6a: 460b mov r3, r1
8005b6c: 009b lsls r3, r3, #2
8005b6e: 440b add r3, r1
8005b70: 005b lsls r3, r3, #1
8005b72: 1ad1 subs r1, r2, r3
8005b74: b2cb uxtb r3, r1
8005b76: 3330 adds r3, #48 ; 0x30
8005b78: b2da uxtb r2, r3
8005b7a: f507 7339 add.w r3, r7, #740 ; 0x2e4
8005b7e: 541a strb r2, [r3, r0]
if(j < 3) {
8005b80: f8d7 33ec ldr.w r3, [r7, #1004] ; 0x3ec
8005b84: 2b02 cmp r3, #2
8005b86: d808 bhi.n 8005b9a <Display+0x3f6>
str[l++] = '.';
8005b88: f8d7 33e4 ldr.w r3, [r7, #996] ; 0x3e4
8005b8c: 1c5a adds r2, r3, #1
8005b8e: f8c7 23e4 str.w r2, [r7, #996] ; 0x3e4
8005b92: f507 7239 add.w r2, r7, #740 ; 0x2e4
8005b96: 212e movs r1, #46 ; 0x2e
8005b98: 54d1 strb r1, [r2, r3]
for(j = 0; j < 4; j++)
8005b9a: f8d7 33ec ldr.w r3, [r7, #1004] ; 0x3ec
8005b9e: 3301 adds r3, #1
8005ba0: f8c7 33ec str.w r3, [r7, #1004] ; 0x3ec
8005ba4: f8d7 33ec ldr.w r3, [r7, #1004] ; 0x3ec
8005ba8: 2b03 cmp r3, #3
8005baa: f67f af21 bls.w 80059f0 <Display+0x24c>
}
}
}
strcat(str, ":7000");
8005bae: f507 7339 add.w r3, r7, #740 ; 0x2e4
8005bb2: 4618 mov r0, r3
8005bb4: f7fa fb40 bl 8000238 <strlen>
8005bb8: 4603 mov r3, r0
8005bba: 461a mov r2, r3
8005bbc: f507 7339 add.w r3, r7, #740 ; 0x2e4
8005bc0: 4413 add r3, r2
8005bc2: 4a6a ldr r2, [pc, #424] ; (8005d6c <Display+0x5c8>)
8005bc4: 6810 ldr r0, [r2, #0]
8005bc6: 6018 str r0, [r3, #0]
8005bc8: 8892 ldrh r2, [r2, #4]
8005bca: 809a strh r2, [r3, #4]
BSP_LCD_DisplayStringAt(160, 24, str, CENTER_MODE);
8005bcc: f507 7239 add.w r2, r7, #740 ; 0x2e4
8005bd0: 2301 movs r3, #1
8005bd2: 2118 movs r1, #24
8005bd4: 20a0 movs r0, #160 ; 0xa0
8005bd6: f7fe fd55 bl 8004684 <BSP_LCD_DisplayStringAt>
/*if(CORRECTION == false) {
BSP_LCD_DisplayStringAt(0, 4, ".", LEFT_MODE);
}*/
DrawSpinner(300, 20);
8005bda: 2114 movs r1, #20
8005bdc: f44f 7096 mov.w r0, #300 ; 0x12c
8005be0: f000 ffe2 bl 8006ba8 <DrawSpinner>
if(clbr)
8005be4: 4b62 ldr r3, [pc, #392] ; (8005d70 <Display+0x5cc>)
8005be6: 781b ldrb r3, [r3, #0]
8005be8: b2db uxtb r3, r3
8005bea: 2b00 cmp r3, #0
8005bec: d00b beq.n 8005c06 <Display+0x462>
{
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
8005bee: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8005bf2: f04f 30ff mov.w r0, #4294967295
8005bf6: f7fe fc7f bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 18, "<22><><C7><C0><CF><D3> <20><><CA><C0><CB><C8><C1><D0><CE><C2>", CENTER_MODE);
8005bfa: 2301 movs r3, #1
8005bfc: 4a5d ldr r2, [pc, #372] ; (8005d74 <Display+0x5d0>)
8005bfe: 2112 movs r1, #18
8005c00: 20a0 movs r0, #160 ; 0xa0
8005c02: f7fe fd3f bl 8004684 <BSP_LCD_DisplayStringAt>
}
if(ASK_COMPLETE)
8005c06: 4b5c ldr r3, [pc, #368] ; (8005d78 <Display+0x5d4>)
8005c08: 781b ldrb r3, [r3, #0]
8005c0a: b2db uxtb r3, r3
8005c0c: 2b00 cmp r3, #0
8005c0e: f000 8443 beq.w 8006498 <Display+0xcf4>
{
timesLOGO = 0;
8005c12: 4b5a ldr r3, [pc, #360] ; (8005d7c <Display+0x5d8>)
8005c14: 2200 movs r2, #0
8005c16: 601a str r2, [r3, #0]
if(clbr)
8005c18: 4b55 ldr r3, [pc, #340] ; (8005d70 <Display+0x5cc>)
8005c1a: 781b ldrb r3, [r3, #0]
8005c1c: b2db uxtb r3, r3
8005c1e: 2b00 cmp r3, #0
8005c20: d007 beq.n 8005c32 <Display+0x48e>
{
menu = CALIBR_00;
8005c22: 4b57 ldr r3, [pc, #348] ; (8005d80 <Display+0x5dc>)
8005c24: 2201 movs r2, #1
8005c26: 701a strb r2, [r3, #0]
menupos = Ch1;
8005c28: 4b56 ldr r3, [pc, #344] ; (8005d84 <Display+0x5e0>)
8005c2a: 2200 movs r2, #0
8005c2c: 701a strb r2, [r3, #0]
}
else
menu = MAIN;
}
}
break;
8005c2e: f000 bc33 b.w 8006498 <Display+0xcf4>
menu = MAIN;
8005c32: 4b53 ldr r3, [pc, #332] ; (8005d80 <Display+0x5dc>)
8005c34: 2200 movs r2, #0
8005c36: 701a strb r2, [r3, #0]
break;
8005c38: f000 bc2e b.w 8006498 <Display+0xcf4>
case MAIN:
BSP_LCD_SetFont(&Font12);
8005c3c: 4852 ldr r0, [pc, #328] ; (8005d88 <Display+0x5e4>)
8005c3e: f7fe fc97 bl 8004570 <BSP_LCD_SetFont>
if(CNT_CHANNELS < 5) //todo
8005c42: 4b52 ldr r3, [pc, #328] ; (8005d8c <Display+0x5e8>)
8005c44: 681b ldr r3, [r3, #0]
8005c46: 2b04 cmp r3, #4
8005c48: f200 8462 bhi.w 8006510 <Display+0xd6c>
{
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
8005c4c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8005c50: f04f 30ff mov.w r0, #4294967295
8005c54: f7fe fc50 bl 80044f8 <LCD_SetColors>
BSP_LCD_FillRect(0, 0, 158, 24);
8005c58: 2318 movs r3, #24
8005c5a: 229e movs r2, #158 ; 0x9e
8005c5c: 2100 movs r1, #0
8005c5e: 2000 movs r0, #0
8005c60: f7ff f80c bl 8004c7c <BSP_LCD_FillRect>
BSP_LCD_FillRect(0, 120, 158, 24);
8005c64: 2318 movs r3, #24
8005c66: 229e movs r2, #158 ; 0x9e
8005c68: 2178 movs r1, #120 ; 0x78
8005c6a: 2000 movs r0, #0
8005c6c: f7ff f806 bl 8004c7c <BSP_LCD_FillRect>
BSP_LCD_FillRect(161, 0, 158, 24);
8005c70: 2318 movs r3, #24
8005c72: 229e movs r2, #158 ; 0x9e
8005c74: 2100 movs r1, #0
8005c76: 20a1 movs r0, #161 ; 0xa1
8005c78: f7ff f800 bl 8004c7c <BSP_LCD_FillRect>
BSP_LCD_FillRect(161, 120, 158, 24);
8005c7c: 2318 movs r3, #24
8005c7e: 229e movs r2, #158 ; 0x9e
8005c80: 2178 movs r1, #120 ; 0x78
8005c82: 20a1 movs r0, #161 ; 0xa1
8005c84: f7fe fffa bl 8004c7c <BSP_LCD_FillRect>
BSP_LCD_DrawRect(0, 0, 318, 238);
8005c88: 23ee movs r3, #238 ; 0xee
8005c8a: f44f 729f mov.w r2, #318 ; 0x13e
8005c8e: 2100 movs r1, #0
8005c90: 2000 movs r0, #0
8005c92: f7fe fe6b bl 800496c <BSP_LCD_DrawRect>
BSP_LCD_DrawVLine(159, 0, 239);
8005c96: 22ef movs r2, #239 ; 0xef
8005c98: 2100 movs r1, #0
8005c9a: 209f movs r0, #159 ; 0x9f
8005c9c: f7fe fe04 bl 80048a8 <BSP_LCD_DrawVLine>
// 1-2 //
for(i = 0; i < 2; i++)
8005ca0: 2300 movs r3, #0
8005ca2: f8c7 33f0 str.w r3, [r7, #1008] ; 0x3f0
8005ca6: e054 b.n 8005d52 <Display+0x5ae>
{
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
8005ca8: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8005cac: 4838 ldr r0, [pc, #224] ; (8005d90 <Display+0x5ec>)
8005cae: f7fe fc23 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(4, 27 + 120*i, "<22><><C2><D5>:", LEFT_MODE);
8005cb2: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0
8005cb6: b29b uxth r3, r3
8005cb8: 461a mov r2, r3
8005cba: 0112 lsls r2, r2, #4
8005cbc: 1ad3 subs r3, r2, r3
8005cbe: 00db lsls r3, r3, #3
8005cc0: b29b uxth r3, r3
8005cc2: 331b adds r3, #27
8005cc4: b299 uxth r1, r3
8005cc6: 2303 movs r3, #3
8005cc8: 4a32 ldr r2, [pc, #200] ; (8005d94 <Display+0x5f0>)
8005cca: 2004 movs r0, #4
8005ccc: f7fe fcda bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(3, 46 + 120*i, "<22><><D4>:", LEFT_MODE);
8005cd0: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0
8005cd4: b29b uxth r3, r3
8005cd6: 461a mov r2, r3
8005cd8: 0112 lsls r2, r2, #4
8005cda: 1ad3 subs r3, r2, r3
8005cdc: 00db lsls r3, r3, #3
8005cde: b29b uxth r3, r3
8005ce0: 332e adds r3, #46 ; 0x2e
8005ce2: b299 uxth r1, r3
8005ce4: 2303 movs r3, #3
8005ce6: 4a2c ldr r2, [pc, #176] ; (8005d98 <Display+0x5f4>)
8005ce8: 2003 movs r0, #3
8005cea: f7fe fccb bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(3, 65 + 120*i, "<22><><D4>:", LEFT_MODE);
8005cee: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0
8005cf2: b29b uxth r3, r3
8005cf4: 461a mov r2, r3
8005cf6: 0112 lsls r2, r2, #4
8005cf8: 1ad3 subs r3, r2, r3
8005cfa: 00db lsls r3, r3, #3
8005cfc: b29b uxth r3, r3
8005cfe: 3341 adds r3, #65 ; 0x41
8005d00: b299 uxth r1, r3
8005d02: 2303 movs r3, #3
8005d04: 4a25 ldr r2, [pc, #148] ; (8005d9c <Display+0x5f8>)
8005d06: 2003 movs r0, #3
8005d08: f7fe fcbc bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(4, 84 + 120*i, "<22><><C4><C0><D2><D7>:", LEFT_MODE);
8005d0c: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0
8005d10: b29b uxth r3, r3
8005d12: 461a mov r2, r3
8005d14: 0112 lsls r2, r2, #4
8005d16: 1ad3 subs r3, r2, r3
8005d18: 00db lsls r3, r3, #3
8005d1a: b29b uxth r3, r3
8005d1c: 3354 adds r3, #84 ; 0x54
8005d1e: b299 uxth r1, r3
8005d20: 2303 movs r3, #3
8005d22: 4a1f ldr r2, [pc, #124] ; (8005da0 <Display+0x5fc>)
8005d24: 2004 movs r0, #4
8005d26: f7fe fcad bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(4, 103 + 120*i, "<22><><C2><DB><D5>:", LEFT_MODE);
8005d2a: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0
8005d2e: b29b uxth r3, r3
8005d30: 461a mov r2, r3
8005d32: 0112 lsls r2, r2, #4
8005d34: 1ad3 subs r3, r2, r3
8005d36: 00db lsls r3, r3, #3
8005d38: b29b uxth r3, r3
8005d3a: 3367 adds r3, #103 ; 0x67
8005d3c: b299 uxth r1, r3
8005d3e: 2303 movs r3, #3
8005d40: 4a18 ldr r2, [pc, #96] ; (8005da4 <Display+0x600>)
8005d42: 2004 movs r0, #4
8005d44: f7fe fc9e bl 8004684 <BSP_LCD_DisplayStringAt>
for(i = 0; i < 2; i++)
8005d48: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0
8005d4c: 3301 adds r3, #1
8005d4e: f8c7 33f0 str.w r3, [r7, #1008] ; 0x3f0
8005d52: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0
8005d56: 2b01 cmp r3, #1
8005d58: d9a6 bls.n 8005ca8 <Display+0x504>
//BSP_LCD_DisplayStringAt(4, 84 + 120*i, "<22><>:", LEFT_MODE);
//BSP_LCD_DisplayStringAt(4, 103 + 120*i, "<22><>:", LEFT_MODE);
}
// 3-4 //
for(i = 0; i < 2; i++)
8005d5a: 2300 movs r3, #0
8005d5c: f8c7 33f0 str.w r3, [r7, #1008] ; 0x3f0
8005d60: e077 b.n 8005e52 <Display+0x6ae>
8005d62: bf00 nop
8005d64: 51eb851f .word 0x51eb851f
8005d68: cccccccd .word 0xcccccccd
8005d6c: 08012920 .word 0x08012920
8005d70: 2006ba84 .word 0x2006ba84
8005d74: 08012928 .word 0x08012928
8005d78: 2006b2f8 .word 0x2006b2f8
8005d7c: 2006b2d8 .word 0x2006b2d8
8005d80: 20020245 .word 0x20020245
8005d84: 20020010 .word 0x20020010
8005d88: 20020000 .word 0x20020000
8005d8c: 2006b2d4 .word 0x2006b2d4
8005d90: ffd3d3d3 .word 0xffd3d3d3
8005d94: 0801293c .word 0x0801293c
8005d98: 08012944 .word 0x08012944
8005d9c: 0801294c .word 0x0801294c
8005da0: 08012954 .word 0x08012954
8005da4: 0801295c .word 0x0801295c
{
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
8005da8: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8005dac: 48cb ldr r0, [pc, #812] ; (80060dc <Display+0x938>)
8005dae: f7fe fba3 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(164, 27 + 120*i, "<22><><C2><D5>:", LEFT_MODE);
8005db2: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0
8005db6: b29b uxth r3, r3
8005db8: 461a mov r2, r3
8005dba: 0112 lsls r2, r2, #4
8005dbc: 1ad3 subs r3, r2, r3
8005dbe: 00db lsls r3, r3, #3
8005dc0: b29b uxth r3, r3
8005dc2: 331b adds r3, #27
8005dc4: b299 uxth r1, r3
8005dc6: 2303 movs r3, #3
8005dc8: 4ac5 ldr r2, [pc, #788] ; (80060e0 <Display+0x93c>)
8005dca: 20a4 movs r0, #164 ; 0xa4
8005dcc: f7fe fc5a bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(163, 46 + 120*i, "<22><><D4>:", LEFT_MODE);
8005dd0: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0
8005dd4: b29b uxth r3, r3
8005dd6: 461a mov r2, r3
8005dd8: 0112 lsls r2, r2, #4
8005dda: 1ad3 subs r3, r2, r3
8005ddc: 00db lsls r3, r3, #3
8005dde: b29b uxth r3, r3
8005de0: 332e adds r3, #46 ; 0x2e
8005de2: b299 uxth r1, r3
8005de4: 2303 movs r3, #3
8005de6: 4abf ldr r2, [pc, #764] ; (80060e4 <Display+0x940>)
8005de8: 20a3 movs r0, #163 ; 0xa3
8005dea: f7fe fc4b bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(163, 65 + 120*i, "<22><><D4>:", LEFT_MODE);
8005dee: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0
8005df2: b29b uxth r3, r3
8005df4: 461a mov r2, r3
8005df6: 0112 lsls r2, r2, #4
8005df8: 1ad3 subs r3, r2, r3
8005dfa: 00db lsls r3, r3, #3
8005dfc: b29b uxth r3, r3
8005dfe: 3341 adds r3, #65 ; 0x41
8005e00: b299 uxth r1, r3
8005e02: 2303 movs r3, #3
8005e04: 4ab8 ldr r2, [pc, #736] ; (80060e8 <Display+0x944>)
8005e06: 20a3 movs r0, #163 ; 0xa3
8005e08: f7fe fc3c bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(164, 84 + 120*i, "<22><><C4><C0><D2><D7>:", LEFT_MODE);
8005e0c: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0
8005e10: b29b uxth r3, r3
8005e12: 461a mov r2, r3
8005e14: 0112 lsls r2, r2, #4
8005e16: 1ad3 subs r3, r2, r3
8005e18: 00db lsls r3, r3, #3
8005e1a: b29b uxth r3, r3
8005e1c: 3354 adds r3, #84 ; 0x54
8005e1e: b299 uxth r1, r3
8005e20: 2303 movs r3, #3
8005e22: 4ab2 ldr r2, [pc, #712] ; (80060ec <Display+0x948>)
8005e24: 20a4 movs r0, #164 ; 0xa4
8005e26: f7fe fc2d bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(164, 103 + 120*i, "<22><><C2><DB><D5>:", LEFT_MODE);
8005e2a: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0
8005e2e: b29b uxth r3, r3
8005e30: 461a mov r2, r3
8005e32: 0112 lsls r2, r2, #4
8005e34: 1ad3 subs r3, r2, r3
8005e36: 00db lsls r3, r3, #3
8005e38: b29b uxth r3, r3
8005e3a: 3367 adds r3, #103 ; 0x67
8005e3c: b299 uxth r1, r3
8005e3e: 2303 movs r3, #3
8005e40: 4aab ldr r2, [pc, #684] ; (80060f0 <Display+0x94c>)
8005e42: 20a4 movs r0, #164 ; 0xa4
8005e44: f7fe fc1e bl 8004684 <BSP_LCD_DisplayStringAt>
for(i = 0; i < 2; i++)
8005e48: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0
8005e4c: 3301 adds r3, #1
8005e4e: f8c7 33f0 str.w r3, [r7, #1008] ; 0x3f0
8005e52: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0
8005e56: 2b01 cmp r3, #1
8005e58: d9a6 bls.n 8005da8 <Display+0x604>
//BSP_LCD_DisplayStringAt(164, 84 + 120*i, "<22><>:", LEFT_MODE);
//BSP_LCD_DisplayStringAt(164, 103 + 120*i, "<22><>:", LEFT_MODE);
}
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
8005e5a: f04f 31ff mov.w r1, #4294967295
8005e5e: f04f 407f mov.w r0, #4278190080 ; 0xff000000
8005e62: f7fe fb49 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(79, 8, "<22><><CA><C0><CD> 1", CENTER_MODE);
8005e66: 2301 movs r3, #1
8005e68: 4aa2 ldr r2, [pc, #648] ; (80060f4 <Display+0x950>)
8005e6a: 2108 movs r1, #8
8005e6c: 204f movs r0, #79 ; 0x4f
8005e6e: f7fe fc09 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(79, 128, "<22><><CA><C0><CD> 2", CENTER_MODE);
8005e72: 2301 movs r3, #1
8005e74: 4aa0 ldr r2, [pc, #640] ; (80060f8 <Display+0x954>)
8005e76: 2180 movs r1, #128 ; 0x80
8005e78: 204f movs r0, #79 ; 0x4f
8005e7a: f7fe fc03 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(239, 8, "<22><><CA><C0><CD> 3", CENTER_MODE);
8005e7e: 2301 movs r3, #1
8005e80: 4a9e ldr r2, [pc, #632] ; (80060fc <Display+0x958>)
8005e82: 2108 movs r1, #8
8005e84: 20ef movs r0, #239 ; 0xef
8005e86: f7fe fbfd bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(239, 128, "<22><><CA><C0><CD> 4", CENTER_MODE);
8005e8a: 2301 movs r3, #1
8005e8c: 4a9c ldr r2, [pc, #624] ; (8006100 <Display+0x95c>)
8005e8e: 2180 movs r1, #128 ; 0x80
8005e90: 20ef movs r0, #239 ; 0xef
8005e92: f7fe fbf7 bl 8004684 <BSP_LCD_DisplayStringAt>
for(i = 0; i < 4; i++)
8005e96: 2300 movs r3, #0
8005e98: f8c7 33f0 str.w r3, [r7, #1008] ; 0x3f0
8005e9c: e018 b.n 8005ed0 <Display+0x72c>
{
if(MASK_CHANNELS & (1 << i)) {
8005e9e: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0
8005ea2: 2201 movs r2, #1
8005ea4: fa02 f303 lsl.w r3, r2, r3
8005ea8: 461a mov r2, r3
8005eaa: 4b96 ldr r3, [pc, #600] ; (8006104 <Display+0x960>)
8005eac: 681b ldr r3, [r3, #0]
8005eae: 4013 ands r3, r2
8005eb0: 2b00 cmp r3, #0
8005eb2: d008 beq.n 8005ec6 <Display+0x722>
DrawChannel_4(i, blk);
8005eb4: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0
8005eb8: b2da uxtb r2, r3
8005eba: 4b93 ldr r3, [pc, #588] ; (8006108 <Display+0x964>)
8005ebc: 681b ldr r3, [r3, #0]
8005ebe: 4619 mov r1, r3
8005ec0: 4610 mov r0, r2
8005ec2: f000 fe93 bl 8006bec <DrawChannel_4>
for(i = 0; i < 4; i++)
8005ec6: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0
8005eca: 3301 adds r3, #1
8005ecc: f8c7 33f0 str.w r3, [r7, #1008] ; 0x3f0
8005ed0: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0
8005ed4: 2b03 cmp r3, #3
8005ed6: d9e2 bls.n 8005e9e <Display+0x6fa>
}
else
{
}
break;
8005ed8: e31a b.n 8006510 <Display+0xd6c>
case CALIBR_00:
BSP_LCD_SetFont(&Font12);
8005eda: 488c ldr r0, [pc, #560] ; (800610c <Display+0x968>)
8005edc: f7fe fb48 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
8005ee0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8005ee4: f06f 00ff mvn.w r0, #255 ; 0xff
8005ee8: f7fe fb06 bl 80044f8 <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);
8005eec: 2301 movs r3, #1
8005eee: 4a88 ldr r2, [pc, #544] ; (8006110 <Display+0x96c>)
8005ef0: 2118 movs r1, #24
8005ef2: 20a0 movs r0, #160 ; 0xa0
8005ef4: f7fe fbc6 bl 8004684 <BSP_LCD_DisplayStringAt>
if(menupos != Ch1)
8005ef8: 4b86 ldr r3, [pc, #536] ; (8006114 <Display+0x970>)
8005efa: 781b ldrb r3, [r3, #0]
8005efc: b2db uxtb r3, r3
8005efe: 2b00 cmp r3, #0
8005f00: d006 beq.n 8005f10 <Display+0x76c>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
8005f02: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8005f06: f04f 30ff mov.w r0, #4294967295
8005f0a: f7fe faf5 bl 80044f8 <LCD_SetColors>
8005f0e: e005 b.n 8005f1c <Display+0x778>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8005f10: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8005f14: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8005f18: f7fe faee bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 48+64, "<22><><CA><C0><CD> 1", CENTER_MODE);
8005f1c: 2301 movs r3, #1
8005f1e: 4a75 ldr r2, [pc, #468] ; (80060f4 <Display+0x950>)
8005f20: 2170 movs r1, #112 ; 0x70
8005f22: 20a0 movs r0, #160 ; 0xa0
8005f24: f7fe fbae bl 8004684 <BSP_LCD_DisplayStringAt>
if(menupos != Ch2)
8005f28: 4b7a ldr r3, [pc, #488] ; (8006114 <Display+0x970>)
8005f2a: 781b ldrb r3, [r3, #0]
8005f2c: b2db uxtb r3, r3
8005f2e: 2b01 cmp r3, #1
8005f30: d006 beq.n 8005f40 <Display+0x79c>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
8005f32: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8005f36: f04f 30ff mov.w r0, #4294967295
8005f3a: f7fe fadd bl 80044f8 <LCD_SetColors>
8005f3e: e005 b.n 8005f4c <Display+0x7a8>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8005f40: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8005f44: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8005f48: f7fe fad6 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 72+64, "<22><><CA><C0><CD> 2", CENTER_MODE);
8005f4c: 2301 movs r3, #1
8005f4e: 4a6a ldr r2, [pc, #424] ; (80060f8 <Display+0x954>)
8005f50: 2188 movs r1, #136 ; 0x88
8005f52: 20a0 movs r0, #160 ; 0xa0
8005f54: f7fe fb96 bl 8004684 <BSP_LCD_DisplayStringAt>
if(menupos != Ch3)
8005f58: 4b6e ldr r3, [pc, #440] ; (8006114 <Display+0x970>)
8005f5a: 781b ldrb r3, [r3, #0]
8005f5c: b2db uxtb r3, r3
8005f5e: 2b02 cmp r3, #2
8005f60: d006 beq.n 8005f70 <Display+0x7cc>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
8005f62: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8005f66: f04f 30ff mov.w r0, #4294967295
8005f6a: f7fe fac5 bl 80044f8 <LCD_SetColors>
8005f6e: e005 b.n 8005f7c <Display+0x7d8>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8005f70: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8005f74: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8005f78: f7fe fabe bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 96+64, "<22><><CA><C0><CD> 3", CENTER_MODE);
8005f7c: 2301 movs r3, #1
8005f7e: 4a5f ldr r2, [pc, #380] ; (80060fc <Display+0x958>)
8005f80: 21a0 movs r1, #160 ; 0xa0
8005f82: 20a0 movs r0, #160 ; 0xa0
8005f84: f7fe fb7e bl 8004684 <BSP_LCD_DisplayStringAt>
if(menupos != Ch4)
8005f88: 4b62 ldr r3, [pc, #392] ; (8006114 <Display+0x970>)
8005f8a: 781b ldrb r3, [r3, #0]
8005f8c: b2db uxtb r3, r3
8005f8e: 2b03 cmp r3, #3
8005f90: d006 beq.n 8005fa0 <Display+0x7fc>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
8005f92: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8005f96: f04f 30ff mov.w r0, #4294967295
8005f9a: f7fe faad bl 80044f8 <LCD_SetColors>
8005f9e: e005 b.n 8005fac <Display+0x808>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8005fa0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8005fa4: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8005fa8: f7fe faa6 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 120+64, "<22><><CA><C0><CD> 4", CENTER_MODE);
8005fac: 2301 movs r3, #1
8005fae: 4a54 ldr r2, [pc, #336] ; (8006100 <Display+0x95c>)
8005fb0: 21b8 movs r1, #184 ; 0xb8
8005fb2: 20a0 movs r0, #160 ; 0xa0
8005fb4: f7fe fb66 bl 8004684 <BSP_LCD_DisplayStringAt>
if(menupos != Ch5)
8005fb8: 4b56 ldr r3, [pc, #344] ; (8006114 <Display+0x970>)
8005fba: 781b ldrb r3, [r3, #0]
8005fbc: b2db uxtb r3, r3
8005fbe: 2b04 cmp r3, #4
8005fc0: d006 beq.n 8005fd0 <Display+0x82c>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
8005fc2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8005fc6: f04f 30ff mov.w r0, #4294967295
8005fca: f7fe fa95 bl 80044f8 <LCD_SetColors>
8005fce: e005 b.n 8005fdc <Display+0x838>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8005fd0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8005fd4: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8005fd8: f7fe fa8e bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 144+64, "<22><><C2><DB><D5>", CENTER_MODE);
8005fdc: 2301 movs r3, #1
8005fde: 4a4e ldr r2, [pc, #312] ; (8006118 <Display+0x974>)
8005fe0: 21d0 movs r1, #208 ; 0xd0
8005fe2: 20a0 movs r0, #160 ; 0xa0
8005fe4: f7fe fb4e bl 8004684 <BSP_LCD_DisplayStringAt>
break;
8005fe8: e293 b.n 8006512 <Display+0xd6e>
case CALIBR_0: // [CHARGE x1] + KU_1
BSP_LCD_SetFont(&Font12);
8005fea: 4848 ldr r0, [pc, #288] ; (800610c <Display+0x968>)
8005fec: f7fe fac0 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
8005ff0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8005ff4: f06f 00ff mvn.w r0, #255 ; 0xff
8005ff8: f7fe fa7e bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x0.1]:", CENTER_MODE);
8005ffc: 2301 movs r3, #1
8005ffe: 4a47 ldr r2, [pc, #284] ; (800611c <Display+0x978>)
8006000: 210a movs r1, #10
8006002: 20a0 movs r0, #160 ; 0xa0
8006004: f7fe fb3e bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5000<30><30>", CENTER_MODE);
8006008: 2301 movs r3, #1
800600a: 4a45 ldr r2, [pc, #276] ; (8006120 <Display+0x97c>)
800600c: 2118 movs r1, #24
800600e: 20a0 movs r0, #160 ; 0xa0
8006010: f7fe fb38 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
8006014: f005 fb50 bl 800b6b8 <DrawButtons>
break;
8006018: e27b b.n 8006512 <Display+0xd6e>
case CALIBR_1: // CHARGE x1 + [KU_2]
BSP_LCD_SetFont(&Font12);
800601a: 483c ldr r0, [pc, #240] ; (800610c <Display+0x968>)
800601c: f7fe faa8 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
8006020: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006024: f06f 00ff mvn.w r0, #255 ; 0xff
8006028: f7fe fa66 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x0.2]:", CENTER_MODE);
800602c: 2301 movs r3, #1
800602e: 4a3d ldr r2, [pc, #244] ; (8006124 <Display+0x980>)
8006030: 210a movs r1, #10
8006032: 20a0 movs r0, #160 ; 0xa0
8006034: f7fe fb26 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5000<30><30>", CENTER_MODE);
8006038: 2301 movs r3, #1
800603a: 4a39 ldr r2, [pc, #228] ; (8006120 <Display+0x97c>)
800603c: 2118 movs r1, #24
800603e: 20a0 movs r0, #160 ; 0xa0
8006040: f7fe fb20 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
8006044: f005 fb38 bl 800b6b8 <DrawButtons>
break;
8006048: e263 b.n 8006512 <Display+0xd6e>
case CALIBR_2: // CHARGE x1 + [KU_5]
BSP_LCD_SetFont(&Font12);
800604a: 4830 ldr r0, [pc, #192] ; (800610c <Display+0x968>)
800604c: f7fe fa90 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
8006050: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006054: f06f 00ff mvn.w r0, #255 ; 0xff
8006058: f7fe fa4e bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x0.5]:", CENTER_MODE);
800605c: 2301 movs r3, #1
800605e: 4a32 ldr r2, [pc, #200] ; (8006128 <Display+0x984>)
8006060: 210a movs r1, #10
8006062: 20a0 movs r0, #160 ; 0xa0
8006064: f7fe fb0e bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5000<30><30>", CENTER_MODE);
8006068: 2301 movs r3, #1
800606a: 4a2d ldr r2, [pc, #180] ; (8006120 <Display+0x97c>)
800606c: 2118 movs r1, #24
800606e: 20a0 movs r0, #160 ; 0xa0
8006070: f7fe fb08 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
8006074: f005 fb20 bl 800b6b8 <DrawButtons>
break;
8006078: e24b b.n 8006512 <Display+0xd6e>
case CALIBR_3: // CHARGE x1 + [KU_10]
BSP_LCD_SetFont(&Font12);
800607a: 4824 ldr r0, [pc, #144] ; (800610c <Display+0x968>)
800607c: f7fe fa78 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
8006080: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006084: f06f 00ff mvn.w r0, #255 ; 0xff
8006088: f7fe fa36 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x1]:", CENTER_MODE);
800608c: 2301 movs r3, #1
800608e: 4a27 ldr r2, [pc, #156] ; (800612c <Display+0x988>)
8006090: 210a movs r1, #10
8006092: 20a0 movs r0, #160 ; 0xa0
8006094: f7fe faf6 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5000<30><30>", CENTER_MODE);
8006098: 2301 movs r3, #1
800609a: 4a21 ldr r2, [pc, #132] ; (8006120 <Display+0x97c>)
800609c: 2118 movs r1, #24
800609e: 20a0 movs r0, #160 ; 0xa0
80060a0: f7fe faf0 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
80060a4: f005 fb08 bl 800b6b8 <DrawButtons>
break;
80060a8: e233 b.n 8006512 <Display+0xd6e>
case CALIBR_4: // CHARGE x1 + [KU_x10]
BSP_LCD_SetFont(&Font12);
80060aa: 4818 ldr r0, [pc, #96] ; (800610c <Display+0x968>)
80060ac: f7fe fa60 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
80060b0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80060b4: f06f 00ff mvn.w r0, #255 ; 0xff
80060b8: f7fe fa1e bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x2]:", CENTER_MODE);
80060bc: 2301 movs r3, #1
80060be: 4a1c ldr r2, [pc, #112] ; (8006130 <Display+0x98c>)
80060c0: 210a movs r1, #10
80060c2: 20a0 movs r0, #160 ; 0xa0
80060c4: f7fe fade bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 2500<30><30>", CENTER_MODE);
80060c8: 2301 movs r3, #1
80060ca: 4a1a ldr r2, [pc, #104] ; (8006134 <Display+0x990>)
80060cc: 2118 movs r1, #24
80060ce: 20a0 movs r0, #160 ; 0xa0
80060d0: f7fe fad8 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
80060d4: f005 faf0 bl 800b6b8 <DrawButtons>
break;
80060d8: e21b b.n 8006512 <Display+0xd6e>
80060da: bf00 nop
80060dc: ffd3d3d3 .word 0xffd3d3d3
80060e0: 0801293c .word 0x0801293c
80060e4: 08012944 .word 0x08012944
80060e8: 0801294c .word 0x0801294c
80060ec: 08012954 .word 0x08012954
80060f0: 0801295c .word 0x0801295c
80060f4: 08012964 .word 0x08012964
80060f8: 0801296c .word 0x0801296c
80060fc: 08012974 .word 0x08012974
8006100: 0801297c .word 0x0801297c
8006104: 20020028 .word 0x20020028
8006108: 2006b2e0 .word 0x2006b2e0
800610c: 20020000 .word 0x20020000
8006110: 08012984 .word 0x08012984
8006114: 20020010 .word 0x20020010
8006118: 080129a4 .word 0x080129a4
800611c: 080129ac .word 0x080129ac
8006120: 080129c4 .word 0x080129c4
8006124: 080129dc .word 0x080129dc
8006128: 080129f4 .word 0x080129f4
800612c: 08012a0c .word 0x08012a0c
8006130: 08012a24 .word 0x08012a24
8006134: 08012a3c .word 0x08012a3c
case CALIBR_5: // [CHARGE x10] + KU_1
BSP_LCD_SetFont(&Font12);
8006138: 48d8 ldr r0, [pc, #864] ; (800649c <Display+0xcf8>)
800613a: f7fe fa19 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800613e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006142: f06f 00ff mvn.w r0, #255 ; 0xff
8006146: f7fe f9d7 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x5]:", CENTER_MODE);
800614a: 2301 movs r3, #1
800614c: 4ad4 ldr r2, [pc, #848] ; (80064a0 <Display+0xcfc>)
800614e: 210a movs r1, #10
8006150: 20a0 movs r0, #160 ; 0xa0
8006152: f7fe fa97 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 1000<30><30>", CENTER_MODE);
8006156: 2301 movs r3, #1
8006158: 4ad2 ldr r2, [pc, #840] ; (80064a4 <Display+0xd00>)
800615a: 2118 movs r1, #24
800615c: 20a0 movs r0, #160 ; 0xa0
800615e: f7fe fa91 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
8006162: f005 faa9 bl 800b6b8 <DrawButtons>
break;
8006166: e1d4 b.n 8006512 <Display+0xd6e>
case CALIBR_6: // [CHARGE x0.1] + KU_1
BSP_LCD_SetFont(&Font12);
8006168: 48cc ldr r0, [pc, #816] ; (800649c <Display+0xcf8>)
800616a: f7fe fa01 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800616e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006172: f06f 00ff mvn.w r0, #255 ; 0xff
8006176: f7fe f9bf bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x10]:", CENTER_MODE);
800617a: 2301 movs r3, #1
800617c: 4aca ldr r2, [pc, #808] ; (80064a8 <Display+0xd04>)
800617e: 210a movs r1, #10
8006180: 20a0 movs r0, #160 ; 0xa0
8006182: f7fe fa7f bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 500<30><30>", CENTER_MODE);
8006186: 2301 movs r3, #1
8006188: 4ac8 ldr r2, [pc, #800] ; (80064ac <Display+0xd08>)
800618a: 2118 movs r1, #24
800618c: 20a0 movs r0, #160 ; 0xa0
800618e: f7fe fa79 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
8006192: f005 fa91 bl 800b6b8 <DrawButtons>
break;
8006196: e1bc b.n 8006512 <Display+0xd6e>
case CALIBR_7: // [ICP x1] + KU_1
BSP_LCD_SetFont(&Font12);
8006198: 48c0 ldr r0, [pc, #768] ; (800649c <Display+0xcf8>)
800619a: f7fe f9e9 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800619e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80061a2: f06f 00ff mvn.w r0, #255 ; 0xff
80061a6: f7fe f9a7 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x20]:", CENTER_MODE);
80061aa: 2301 movs r3, #1
80061ac: 4ac0 ldr r2, [pc, #768] ; (80064b0 <Display+0xd0c>)
80061ae: 210a movs r1, #10
80061b0: 20a0 movs r0, #160 ; 0xa0
80061b2: f7fe fa67 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 250<35><30>", CENTER_MODE);
80061b6: 2301 movs r3, #1
80061b8: 4abe ldr r2, [pc, #760] ; (80064b4 <Display+0xd10>)
80061ba: 2118 movs r1, #24
80061bc: 20a0 movs r0, #160 ; 0xa0
80061be: f7fe fa61 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
80061c2: f005 fa79 bl 800b6b8 <DrawButtons>
break;
80061c6: e1a4 b.n 8006512 <Display+0xd6e>
case CALIBR_8: // [ICP x10] + KU_1
BSP_LCD_SetFont(&Font12);
80061c8: 48b4 ldr r0, [pc, #720] ; (800649c <Display+0xcf8>)
80061ca: f7fe f9d1 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
80061ce: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80061d2: f06f 00ff mvn.w r0, #255 ; 0xff
80061d6: f7fe f98f bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x50]:", CENTER_MODE);
80061da: 2301 movs r3, #1
80061dc: 4ab6 ldr r2, [pc, #728] ; (80064b8 <Display+0xd14>)
80061de: 210a movs r1, #10
80061e0: 20a0 movs r0, #160 ; 0xa0
80061e2: f7fe fa4f bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 100<30><30>", CENTER_MODE);
80061e6: 2301 movs r3, #1
80061e8: 4ab4 ldr r2, [pc, #720] ; (80064bc <Display+0xd18>)
80061ea: 2118 movs r1, #24
80061ec: 20a0 movs r0, #160 ; 0xa0
80061ee: f7fe fa49 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
80061f2: f005 fa61 bl 800b6b8 <DrawButtons>
break;
80061f6: e18c b.n 8006512 <Display+0xd6e>
case CALIBR_9: // [CHARGE x10 + KU_2 + KU_x10]
BSP_LCD_SetFont(&Font12);
80061f8: 48a8 ldr r0, [pc, #672] ; (800649c <Display+0xcf8>)
80061fa: f7fe f9b9 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
80061fe: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006202: f06f 00ff mvn.w r0, #255 ; 0xff
8006206: f7fe f977 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x100]:", CENTER_MODE);
800620a: 2301 movs r3, #1
800620c: 4aac ldr r2, [pc, #688] ; (80064c0 <Display+0xd1c>)
800620e: 210a movs r1, #10
8006210: 20a0 movs r0, #160 ; 0xa0
8006212: f7fe fa37 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 50<35><30>", CENTER_MODE);
8006216: 2301 movs r3, #1
8006218: 4aaa ldr r2, [pc, #680] ; (80064c4 <Display+0xd20>)
800621a: 2118 movs r1, #24
800621c: 20a0 movs r0, #160 ; 0xa0
800621e: f7fe fa31 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
8006222: f005 fa49 bl 800b6b8 <DrawButtons>
break;
8006226: e174 b.n 8006512 <Display+0xd6e>
case CALIBR_10: // [CHARGE x10 + KU_5 + KU_x10]
BSP_LCD_SetFont(&Font12);
8006228: 489c ldr r0, [pc, #624] ; (800649c <Display+0xcf8>)
800622a: f7fe f9a1 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800622e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006232: f06f 00ff mvn.w r0, #255 ; 0xff
8006236: f7fe f95f bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x200]:", CENTER_MODE);
800623a: 2301 movs r3, #1
800623c: 4aa2 ldr r2, [pc, #648] ; (80064c8 <Display+0xd24>)
800623e: 210a movs r1, #10
8006240: 20a0 movs r0, #160 ; 0xa0
8006242: f7fe fa1f bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 25<32><35>", CENTER_MODE);
8006246: 2301 movs r3, #1
8006248: 4aa0 ldr r2, [pc, #640] ; (80064cc <Display+0xd28>)
800624a: 2118 movs r1, #24
800624c: 20a0 movs r0, #160 ; 0xa0
800624e: f7fe fa19 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
8006252: f005 fa31 bl 800b6b8 <DrawButtons>
break;
8006256: e15c b.n 8006512 <Display+0xd6e>
case CALIBR_11: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
8006258: 4890 ldr r0, [pc, #576] ; (800649c <Display+0xcf8>)
800625a: f7fe f989 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800625e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006262: f06f 00ff mvn.w r0, #255 ; 0xff
8006266: f7fe f947 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x500]:", CENTER_MODE);
800626a: 2301 movs r3, #1
800626c: 4a98 ldr r2, [pc, #608] ; (80064d0 <Display+0xd2c>)
800626e: 210a movs r1, #10
8006270: 20a0 movs r0, #160 ; 0xa0
8006272: f7fe fa07 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 10<31><30>", CENTER_MODE);
8006276: 2301 movs r3, #1
8006278: 4a96 ldr r2, [pc, #600] ; (80064d4 <Display+0xd30>)
800627a: 2118 movs r1, #24
800627c: 20a0 movs r0, #160 ; 0xa0
800627e: f7fe fa01 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
8006282: f005 fa19 bl 800b6b8 <DrawButtons>
break;
8006286: e144 b.n 8006512 <Display+0xd6e>
case CALIBR_12: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
8006288: 4884 ldr r0, [pc, #528] ; (800649c <Display+0xcf8>)
800628a: f7fe f971 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800628e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006292: f06f 00ff mvn.w r0, #255 ; 0xff
8006296: f7fe f92f bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x1000]:", CENTER_MODE);
800629a: 2301 movs r3, #1
800629c: 4a8e ldr r2, [pc, #568] ; (80064d8 <Display+0xd34>)
800629e: 210a movs r1, #10
80062a0: 20a0 movs r0, #160 ; 0xa0
80062a2: f7fe f9ef bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5<><35>", CENTER_MODE);
80062a6: 2301 movs r3, #1
80062a8: 4a8c ldr r2, [pc, #560] ; (80064dc <Display+0xd38>)
80062aa: 2118 movs r1, #24
80062ac: 20a0 movs r0, #160 ; 0xa0
80062ae: f7fe f9e9 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
80062b2: f005 fa01 bl 800b6b8 <DrawButtons>
break;
80062b6: e12c b.n 8006512 <Display+0xd6e>
case CALIBR_13: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
80062b8: 4878 ldr r0, [pc, #480] ; (800649c <Display+0xcf8>)
80062ba: f7fe f959 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
80062be: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80062c2: f06f 00ff mvn.w r0, #255 ; 0xff
80062c6: f7fe f917 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx1]:", CENTER_MODE);
80062ca: 2301 movs r3, #1
80062cc: 4a84 ldr r2, [pc, #528] ; (80064e0 <Display+0xd3c>)
80062ce: 210a movs r1, #10
80062d0: 20a0 movs r0, #160 ; 0xa0
80062d2: f7fe f9d7 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5000<30><30>", CENTER_MODE);
80062d6: 2301 movs r3, #1
80062d8: 4a82 ldr r2, [pc, #520] ; (80064e4 <Display+0xd40>)
80062da: 2118 movs r1, #24
80062dc: 20a0 movs r0, #160 ; 0xa0
80062de: f7fe f9d1 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
80062e2: f005 f9e9 bl 800b6b8 <DrawButtons>
break;
80062e6: e114 b.n 8006512 <Display+0xd6e>
case CALIBR_14: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
80062e8: 486c ldr r0, [pc, #432] ; (800649c <Display+0xcf8>)
80062ea: f7fe f941 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
80062ee: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80062f2: f06f 00ff mvn.w r0, #255 ; 0xff
80062f6: f7fe f8ff bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx2]:", CENTER_MODE);
80062fa: 2301 movs r3, #1
80062fc: 4a7a ldr r2, [pc, #488] ; (80064e8 <Display+0xd44>)
80062fe: 210a movs r1, #10
8006300: 20a0 movs r0, #160 ; 0xa0
8006302: f7fe f9bf bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 2500<30><30>", CENTER_MODE);
8006306: 2301 movs r3, #1
8006308: 4a78 ldr r2, [pc, #480] ; (80064ec <Display+0xd48>)
800630a: 2118 movs r1, #24
800630c: 20a0 movs r0, #160 ; 0xa0
800630e: f7fe f9b9 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
8006312: f005 f9d1 bl 800b6b8 <DrawButtons>
break;
8006316: e0fc b.n 8006512 <Display+0xd6e>
case CALIBR_15: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
8006318: 4860 ldr r0, [pc, #384] ; (800649c <Display+0xcf8>)
800631a: f7fe f929 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800631e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006322: f06f 00ff mvn.w r0, #255 ; 0xff
8006326: f7fe f8e7 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx5]:", CENTER_MODE);
800632a: 2301 movs r3, #1
800632c: 4a70 ldr r2, [pc, #448] ; (80064f0 <Display+0xd4c>)
800632e: 210a movs r1, #10
8006330: 20a0 movs r0, #160 ; 0xa0
8006332: f7fe f9a7 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 1000<30><30>", CENTER_MODE);
8006336: 2301 movs r3, #1
8006338: 4a5a ldr r2, [pc, #360] ; (80064a4 <Display+0xd00>)
800633a: 2118 movs r1, #24
800633c: 20a0 movs r0, #160 ; 0xa0
800633e: f7fe f9a1 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
8006342: f005 f9b9 bl 800b6b8 <DrawButtons>
break;
8006346: e0e4 b.n 8006512 <Display+0xd6e>
case CALIBR_16: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
8006348: 4854 ldr r0, [pc, #336] ; (800649c <Display+0xcf8>)
800634a: f7fe f911 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800634e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006352: f06f 00ff mvn.w r0, #255 ; 0xff
8006356: f7fe f8cf bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx10]:", CENTER_MODE);
800635a: 2301 movs r3, #1
800635c: 4a65 ldr r2, [pc, #404] ; (80064f4 <Display+0xd50>)
800635e: 210a movs r1, #10
8006360: 20a0 movs r0, #160 ; 0xa0
8006362: f7fe f98f bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 500<30><30>", CENTER_MODE);
8006366: 2301 movs r3, #1
8006368: 4a50 ldr r2, [pc, #320] ; (80064ac <Display+0xd08>)
800636a: 2118 movs r1, #24
800636c: 20a0 movs r0, #160 ; 0xa0
800636e: f7fe f989 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
8006372: f005 f9a1 bl 800b6b8 <DrawButtons>
break;
8006376: e0cc b.n 8006512 <Display+0xd6e>
case CALIBR_17: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
8006378: 4848 ldr r0, [pc, #288] ; (800649c <Display+0xcf8>)
800637a: f7fe f8f9 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800637e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006382: f06f 00ff mvn.w r0, #255 ; 0xff
8006386: f7fe f8b7 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx20]:", CENTER_MODE);
800638a: 2301 movs r3, #1
800638c: 4a5a ldr r2, [pc, #360] ; (80064f8 <Display+0xd54>)
800638e: 210a movs r1, #10
8006390: 20a0 movs r0, #160 ; 0xa0
8006392: f7fe f977 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 250<35><30>", CENTER_MODE);
8006396: 2301 movs r3, #1
8006398: 4a46 ldr r2, [pc, #280] ; (80064b4 <Display+0xd10>)
800639a: 2118 movs r1, #24
800639c: 20a0 movs r0, #160 ; 0xa0
800639e: f7fe f971 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
80063a2: f005 f989 bl 800b6b8 <DrawButtons>
break;
80063a6: e0b4 b.n 8006512 <Display+0xd6e>
case CALIBR_18: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
80063a8: 483c ldr r0, [pc, #240] ; (800649c <Display+0xcf8>)
80063aa: f7fe f8e1 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
80063ae: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80063b2: f06f 00ff mvn.w r0, #255 ; 0xff
80063b6: f7fe f89f bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx50]:", CENTER_MODE);
80063ba: 2301 movs r3, #1
80063bc: 4a4f ldr r2, [pc, #316] ; (80064fc <Display+0xd58>)
80063be: 210a movs r1, #10
80063c0: 20a0 movs r0, #160 ; 0xa0
80063c2: f7fe f95f bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 100<30><30>", CENTER_MODE);
80063c6: 2301 movs r3, #1
80063c8: 4a3c ldr r2, [pc, #240] ; (80064bc <Display+0xd18>)
80063ca: 2118 movs r1, #24
80063cc: 20a0 movs r0, #160 ; 0xa0
80063ce: f7fe f959 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
80063d2: f005 f971 bl 800b6b8 <DrawButtons>
break;
80063d6: e09c b.n 8006512 <Display+0xd6e>
case CALIBR_19: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
80063d8: 4830 ldr r0, [pc, #192] ; (800649c <Display+0xcf8>)
80063da: f7fe f8c9 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
80063de: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80063e2: f06f 00ff mvn.w r0, #255 ; 0xff
80063e6: f7fe f887 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx100]:", CENTER_MODE);
80063ea: 2301 movs r3, #1
80063ec: 4a44 ldr r2, [pc, #272] ; (8006500 <Display+0xd5c>)
80063ee: 210a movs r1, #10
80063f0: 20a0 movs r0, #160 ; 0xa0
80063f2: f7fe f947 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 50<35><30>", CENTER_MODE);
80063f6: 2301 movs r3, #1
80063f8: 4a32 ldr r2, [pc, #200] ; (80064c4 <Display+0xd20>)
80063fa: 2118 movs r1, #24
80063fc: 20a0 movs r0, #160 ; 0xa0
80063fe: f7fe f941 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
8006402: f005 f959 bl 800b6b8 <DrawButtons>
break;
8006406: e084 b.n 8006512 <Display+0xd6e>
case CALIBR_20: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
8006408: 4824 ldr r0, [pc, #144] ; (800649c <Display+0xcf8>)
800640a: f7fe f8b1 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800640e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006412: f06f 00ff mvn.w r0, #255 ; 0xff
8006416: f7fe f86f bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx200]:", CENTER_MODE);
800641a: 2301 movs r3, #1
800641c: 4a39 ldr r2, [pc, #228] ; (8006504 <Display+0xd60>)
800641e: 210a movs r1, #10
8006420: 20a0 movs r0, #160 ; 0xa0
8006422: f7fe f92f bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 25<32><35>", CENTER_MODE);
8006426: 2301 movs r3, #1
8006428: 4a28 ldr r2, [pc, #160] ; (80064cc <Display+0xd28>)
800642a: 2118 movs r1, #24
800642c: 20a0 movs r0, #160 ; 0xa0
800642e: f7fe f929 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
8006432: f005 f941 bl 800b6b8 <DrawButtons>
break;
8006436: e06c b.n 8006512 <Display+0xd6e>
case CALIBR_21: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
8006438: 4818 ldr r0, [pc, #96] ; (800649c <Display+0xcf8>)
800643a: f7fe f899 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800643e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006442: f06f 00ff mvn.w r0, #255 ; 0xff
8006446: f7fe f857 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx500]:", CENTER_MODE);
800644a: 2301 movs r3, #1
800644c: 4a2e ldr r2, [pc, #184] ; (8006508 <Display+0xd64>)
800644e: 210a movs r1, #10
8006450: 20a0 movs r0, #160 ; 0xa0
8006452: f7fe f917 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 10<31><30>", CENTER_MODE);
8006456: 2301 movs r3, #1
8006458: 4a1e ldr r2, [pc, #120] ; (80064d4 <Display+0xd30>)
800645a: 2118 movs r1, #24
800645c: 20a0 movs r0, #160 ; 0xa0
800645e: f7fe f911 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
8006462: f005 f929 bl 800b6b8 <DrawButtons>
break;
8006466: e054 b.n 8006512 <Display+0xd6e>
case CALIBR_22: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
8006468: 480c ldr r0, [pc, #48] ; (800649c <Display+0xcf8>)
800646a: f7fe f881 bl 8004570 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800646e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006472: f06f 00ff mvn.w r0, #255 ; 0xff
8006476: f7fe f83f bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx1000]:", CENTER_MODE);
800647a: 2301 movs r3, #1
800647c: 4a23 ldr r2, [pc, #140] ; (800650c <Display+0xd68>)
800647e: 210a movs r1, #10
8006480: 20a0 movs r0, #160 ; 0xa0
8006482: f7fe f8ff bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5<><35>", CENTER_MODE);
8006486: 2301 movs r3, #1
8006488: 4a14 ldr r2, [pc, #80] ; (80064dc <Display+0xd38>)
800648a: 2118 movs r1, #24
800648c: 20a0 movs r0, #160 ; 0xa0
800648e: f7fe f8f9 bl 8004684 <BSP_LCD_DisplayStringAt>
DrawButtons();
8006492: f005 f911 bl 800b6b8 <DrawButtons>
break;
8006496: e03c b.n 8006512 <Display+0xd6e>
break;
8006498: bf00 nop
800649a: e03a b.n 8006512 <Display+0xd6e>
800649c: 20020000 .word 0x20020000
80064a0: 08012a54 .word 0x08012a54
80064a4: 08012a6c .word 0x08012a6c
80064a8: 08012a84 .word 0x08012a84
80064ac: 08012a9c .word 0x08012a9c
80064b0: 08012ab4 .word 0x08012ab4
80064b4: 08012acc .word 0x08012acc
80064b8: 08012ae4 .word 0x08012ae4
80064bc: 08012afc .word 0x08012afc
80064c0: 08012b14 .word 0x08012b14
80064c4: 08012b2c .word 0x08012b2c
80064c8: 08012b44 .word 0x08012b44
80064cc: 08012b5c .word 0x08012b5c
80064d0: 08012b74 .word 0x08012b74
80064d4: 08012b8c .word 0x08012b8c
80064d8: 08012ba4 .word 0x08012ba4
80064dc: 08012bbc .word 0x08012bbc
80064e0: 08012bd4 .word 0x08012bd4
80064e4: 080129c4 .word 0x080129c4
80064e8: 08012be8 .word 0x08012be8
80064ec: 08012a3c .word 0x08012a3c
80064f0: 08012bfc .word 0x08012bfc
80064f4: 08012c10 .word 0x08012c10
80064f8: 08012c28 .word 0x08012c28
80064fc: 08012c40 .word 0x08012c40
8006500: 08012c58 .word 0x08012c58
8006504: 08012c70 .word 0x08012c70
8006508: 08012c88 .word 0x08012c88
800650c: 08012ca0 .word 0x08012ca0
break;
8006510: bf00 nop
Redrawing = false;
8006512: 4b07 ldr r3, [pc, #28] ; (8006530 <Display+0xd8c>)
8006514: 2200 movs r2, #0
8006516: 701a strb r2, [r3, #0]
RefreshScreen = true;
8006518: 4b06 ldr r3, [pc, #24] ; (8006534 <Display+0xd90>)
800651a: 2201 movs r2, #1
800651c: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0);
800651e: 2100 movs r1, #0
8006520: 4805 ldr r0, [pc, #20] ; (8006538 <Display+0xd94>)
8006522: f008 fca9 bl 800ee78 <HAL_LTDC_ProgramLineEvent>
//**************************************************************************************************************
//**************************************************************************************************************
}
8006526: bf00 nop
8006528: f507 6780 add.w r7, r7, #1024 ; 0x400
800652c: 46bd mov sp, r7
800652e: bd80 pop {r7, pc}
8006530: 2006b2dc .word 0x2006b2dc
8006534: 2006b2cc .word 0x2006b2cc
8006538: 2006b9dc .word 0x2006b9dc
0800653c <DrawMySpinner>:
void DrawMySpinner(uint16_t x, uint16_t y) //
{
800653c: b580 push {r7, lr}
800653e: b082 sub sp, #8
8006540: af00 add r7, sp, #0
8006542: 4603 mov r3, r0
8006544: 460a mov r2, r1
8006546: 80fb strh r3, [r7, #6]
8006548: 4613 mov r3, r2
800654a: 80bb strh r3, [r7, #4]
static uint32_t rotate = 0;
switch(rotate)
800654c: 4b98 ldr r3, [pc, #608] ; (80067b0 <DrawMySpinner+0x274>)
800654e: 681b ldr r3, [r3, #0]
8006550: 2b07 cmp r3, #7
8006552: f200 8311 bhi.w 8006b78 <DrawMySpinner+0x63c>
8006556: a201 add r2, pc, #4 ; (adr r2, 800655c <DrawMySpinner+0x20>)
8006558: f852 f023 ldr.w pc, [r2, r3, lsl #2]
800655c: 0800657d .word 0x0800657d
8006560: 08006639 .word 0x08006639
8006564: 080066f5 .word 0x080066f5
8006568: 080067c1 .word 0x080067c1
800656c: 0800687d .word 0x0800687d
8006570: 08006939 .word 0x08006939
8006574: 080069f5 .word 0x080069f5
8006578: 08006abd .word 0x08006abd
{
case 0:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800657c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006580: f04f 30ff mov.w r0, #4294967295
8006584: f7fd ffb8 bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
8006588: 88bb ldrh r3, [r7, #4]
800658a: 330a adds r3, #10
800658c: b299 uxth r1, r3
800658e: 88fb ldrh r3, [r7, #6]
8006590: 2203 movs r2, #3
8006592: 4618 mov r0, r3
8006594: f7fe fbec bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
8006598: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800659c: 4885 ldr r0, [pc, #532] ; (80067b4 <DrawMySpinner+0x278>)
800659e: f7fd ffab bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
80065a2: 88fb ldrh r3, [r7, #6]
80065a4: 3307 adds r3, #7
80065a6: b298 uxth r0, r3
80065a8: 88bb ldrh r3, [r7, #4]
80065aa: 3307 adds r3, #7
80065ac: b29b uxth r3, r3
80065ae: 2203 movs r2, #3
80065b0: 4619 mov r1, r3
80065b2: f7fe fbdd bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
80065b6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80065ba: 487f ldr r0, [pc, #508] ; (80067b8 <DrawMySpinner+0x27c>)
80065bc: f7fd ff9c bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
80065c0: 88fb ldrh r3, [r7, #6]
80065c2: 330a adds r3, #10
80065c4: b29b uxth r3, r3
80065c6: 88b9 ldrh r1, [r7, #4]
80065c8: 2203 movs r2, #3
80065ca: 4618 mov r0, r3
80065cc: f7fe fbd0 bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
80065d0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80065d4: 4879 ldr r0, [pc, #484] ; (80067bc <DrawMySpinner+0x280>)
80065d6: f7fd ff8f bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
80065da: 88fb ldrh r3, [r7, #6]
80065dc: 3b07 subs r3, #7
80065de: b298 uxth r0, r3
80065e0: 88bb ldrh r3, [r7, #4]
80065e2: 3307 adds r3, #7
80065e4: b29b uxth r3, r3
80065e6: 2203 movs r2, #3
80065e8: 4619 mov r1, r3
80065ea: f7fe fbc1 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
80065ee: 88fb ldrh r3, [r7, #6]
80065f0: 3b0a subs r3, #10
80065f2: b29b uxth r3, r3
80065f4: 88b9 ldrh r1, [r7, #4]
80065f6: 2203 movs r2, #3
80065f8: 4618 mov r0, r3
80065fa: f7fe fbb9 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
80065fe: 88fb ldrh r3, [r7, #6]
8006600: 3b07 subs r3, #7
8006602: b298 uxth r0, r3
8006604: 88bb ldrh r3, [r7, #4]
8006606: 3b07 subs r3, #7
8006608: b29b uxth r3, r3
800660a: 2203 movs r2, #3
800660c: 4619 mov r1, r3
800660e: f7fe fbaf bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
8006612: 88bb ldrh r3, [r7, #4]
8006614: 3b0a subs r3, #10
8006616: b299 uxth r1, r3
8006618: 88fb ldrh r3, [r7, #6]
800661a: 2203 movs r2, #3
800661c: 4618 mov r0, r3
800661e: f7fe fba7 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
8006622: 88fb ldrh r3, [r7, #6]
8006624: 3307 adds r3, #7
8006626: b298 uxth r0, r3
8006628: 88bb ldrh r3, [r7, #4]
800662a: 3b07 subs r3, #7
800662c: b29b uxth r3, r3
800662e: 2203 movs r2, #3
8006630: 4619 mov r1, r3
8006632: f7fe fb9d bl 8004d70 <BSP_LCD_FillCircle>
break;
8006636: e29f b.n 8006b78 <DrawMySpinner+0x63c>
case 1:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
8006638: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800663c: f04f 30ff mov.w r0, #4294967295
8006640: f7fd ff5a bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
8006644: 88fb ldrh r3, [r7, #6]
8006646: 3b07 subs r3, #7
8006648: b298 uxth r0, r3
800664a: 88bb ldrh r3, [r7, #4]
800664c: 3307 adds r3, #7
800664e: b29b uxth r3, r3
8006650: 2203 movs r2, #3
8006652: 4619 mov r1, r3
8006654: f7fe fb8c bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
8006658: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800665c: 4855 ldr r0, [pc, #340] ; (80067b4 <DrawMySpinner+0x278>)
800665e: f7fd ff4b bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
8006662: 88bb ldrh r3, [r7, #4]
8006664: 330a adds r3, #10
8006666: b299 uxth r1, r3
8006668: 88fb ldrh r3, [r7, #6]
800666a: 2203 movs r2, #3
800666c: 4618 mov r0, r3
800666e: f7fe fb7f bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
8006672: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006676: 4850 ldr r0, [pc, #320] ; (80067b8 <DrawMySpinner+0x27c>)
8006678: f7fd ff3e bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800667c: 88fb ldrh r3, [r7, #6]
800667e: 3307 adds r3, #7
8006680: b298 uxth r0, r3
8006682: 88bb ldrh r3, [r7, #4]
8006684: 3307 adds r3, #7
8006686: b29b uxth r3, r3
8006688: 2203 movs r2, #3
800668a: 4619 mov r1, r3
800668c: f7fe fb70 bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
8006690: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006694: 4849 ldr r0, [pc, #292] ; (80067bc <DrawMySpinner+0x280>)
8006696: f7fd ff2f bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800669a: 88fb ldrh r3, [r7, #6]
800669c: 3b0a subs r3, #10
800669e: b29b uxth r3, r3
80066a0: 88b9 ldrh r1, [r7, #4]
80066a2: 2203 movs r2, #3
80066a4: 4618 mov r0, r3
80066a6: f7fe fb63 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
80066aa: 88fb ldrh r3, [r7, #6]
80066ac: 3b07 subs r3, #7
80066ae: b298 uxth r0, r3
80066b0: 88bb ldrh r3, [r7, #4]
80066b2: 3b07 subs r3, #7
80066b4: b29b uxth r3, r3
80066b6: 2203 movs r2, #3
80066b8: 4619 mov r1, r3
80066ba: f7fe fb59 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
80066be: 88bb ldrh r3, [r7, #4]
80066c0: 3b0a subs r3, #10
80066c2: b299 uxth r1, r3
80066c4: 88fb ldrh r3, [r7, #6]
80066c6: 2203 movs r2, #3
80066c8: 4618 mov r0, r3
80066ca: f7fe fb51 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
80066ce: 88fb ldrh r3, [r7, #6]
80066d0: 3307 adds r3, #7
80066d2: b298 uxth r0, r3
80066d4: 88bb ldrh r3, [r7, #4]
80066d6: 3b07 subs r3, #7
80066d8: b29b uxth r3, r3
80066da: 2203 movs r2, #3
80066dc: 4619 mov r1, r3
80066de: f7fe fb47 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
80066e2: 88fb ldrh r3, [r7, #6]
80066e4: 330a adds r3, #10
80066e6: b29b uxth r3, r3
80066e8: 88b9 ldrh r1, [r7, #4]
80066ea: 2203 movs r2, #3
80066ec: 4618 mov r0, r3
80066ee: f7fe fb3f bl 8004d70 <BSP_LCD_FillCircle>
break;
80066f2: e241 b.n 8006b78 <DrawMySpinner+0x63c>
case 2:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
80066f4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80066f8: f04f 30ff mov.w r0, #4294967295
80066fc: f7fd fefc bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
8006700: 88fb ldrh r3, [r7, #6]
8006702: 3b0a subs r3, #10
8006704: b29b uxth r3, r3
8006706: 88b9 ldrh r1, [r7, #4]
8006708: 2203 movs r2, #3
800670a: 4618 mov r0, r3
800670c: f7fe fb30 bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
8006710: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006714: 4827 ldr r0, [pc, #156] ; (80067b4 <DrawMySpinner+0x278>)
8006716: f7fd feef bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800671a: 88fb ldrh r3, [r7, #6]
800671c: 3b07 subs r3, #7
800671e: b298 uxth r0, r3
8006720: 88bb ldrh r3, [r7, #4]
8006722: 3307 adds r3, #7
8006724: b29b uxth r3, r3
8006726: 2203 movs r2, #3
8006728: 4619 mov r1, r3
800672a: f7fe fb21 bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800672e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006732: 4821 ldr r0, [pc, #132] ; (80067b8 <DrawMySpinner+0x27c>)
8006734: f7fd fee0 bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
8006738: 88bb ldrh r3, [r7, #4]
800673a: 330a adds r3, #10
800673c: b299 uxth r1, r3
800673e: 88fb ldrh r3, [r7, #6]
8006740: 2203 movs r2, #3
8006742: 4618 mov r0, r3
8006744: f7fe fb14 bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
8006748: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800674c: 481b ldr r0, [pc, #108] ; (80067bc <DrawMySpinner+0x280>)
800674e: f7fd fed3 bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
8006752: 88fb ldrh r3, [r7, #6]
8006754: 3b07 subs r3, #7
8006756: b298 uxth r0, r3
8006758: 88bb ldrh r3, [r7, #4]
800675a: 3b07 subs r3, #7
800675c: b29b uxth r3, r3
800675e: 2203 movs r2, #3
8006760: 4619 mov r1, r3
8006762: f7fe fb05 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
8006766: 88bb ldrh r3, [r7, #4]
8006768: 3b0a subs r3, #10
800676a: b299 uxth r1, r3
800676c: 88fb ldrh r3, [r7, #6]
800676e: 2203 movs r2, #3
8006770: 4618 mov r0, r3
8006772: f7fe fafd bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
8006776: 88fb ldrh r3, [r7, #6]
8006778: 3307 adds r3, #7
800677a: b298 uxth r0, r3
800677c: 88bb ldrh r3, [r7, #4]
800677e: 3b07 subs r3, #7
8006780: b29b uxth r3, r3
8006782: 2203 movs r2, #3
8006784: 4619 mov r1, r3
8006786: f7fe faf3 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800678a: 88fb ldrh r3, [r7, #6]
800678c: 330a adds r3, #10
800678e: b29b uxth r3, r3
8006790: 88b9 ldrh r1, [r7, #4]
8006792: 2203 movs r2, #3
8006794: 4618 mov r0, r3
8006796: f7fe faeb bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800679a: 88fb ldrh r3, [r7, #6]
800679c: 3307 adds r3, #7
800679e: b298 uxth r0, r3
80067a0: 88bb ldrh r3, [r7, #4]
80067a2: 3307 adds r3, #7
80067a4: b29b uxth r3, r3
80067a6: 2203 movs r2, #3
80067a8: 4619 mov r1, r3
80067aa: f7fe fae1 bl 8004d70 <BSP_LCD_FillCircle>
break;
80067ae: e1e3 b.n 8006b78 <DrawMySpinner+0x63c>
80067b0: 2006b2e8 .word 0x2006b2e8
80067b4: ffd3d3d3 .word 0xffd3d3d3
80067b8: ff808080 .word 0xff808080
80067bc: ff404040 .word 0xff404040
case 3:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
80067c0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80067c4: f04f 30ff mov.w r0, #4294967295
80067c8: f7fd fe96 bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
80067cc: 88fb ldrh r3, [r7, #6]
80067ce: 3b07 subs r3, #7
80067d0: b298 uxth r0, r3
80067d2: 88bb ldrh r3, [r7, #4]
80067d4: 3b07 subs r3, #7
80067d6: b29b uxth r3, r3
80067d8: 2203 movs r2, #3
80067da: 4619 mov r1, r3
80067dc: f7fe fac8 bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
80067e0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80067e4: 48b2 ldr r0, [pc, #712] ; (8006ab0 <DrawMySpinner+0x574>)
80067e6: f7fd fe87 bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
80067ea: 88fb ldrh r3, [r7, #6]
80067ec: 3b0a subs r3, #10
80067ee: b29b uxth r3, r3
80067f0: 88b9 ldrh r1, [r7, #4]
80067f2: 2203 movs r2, #3
80067f4: 4618 mov r0, r3
80067f6: f7fe fabb bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
80067fa: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80067fe: 48ad ldr r0, [pc, #692] ; (8006ab4 <DrawMySpinner+0x578>)
8006800: f7fd fe7a bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
8006804: 88fb ldrh r3, [r7, #6]
8006806: 3b07 subs r3, #7
8006808: b298 uxth r0, r3
800680a: 88bb ldrh r3, [r7, #4]
800680c: 3307 adds r3, #7
800680e: b29b uxth r3, r3
8006810: 2203 movs r2, #3
8006812: 4619 mov r1, r3
8006814: f7fe faac bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
8006818: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800681c: 48a6 ldr r0, [pc, #664] ; (8006ab8 <DrawMySpinner+0x57c>)
800681e: f7fd fe6b bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
8006822: 88bb ldrh r3, [r7, #4]
8006824: 3b0a subs r3, #10
8006826: b299 uxth r1, r3
8006828: 88fb ldrh r3, [r7, #6]
800682a: 2203 movs r2, #3
800682c: 4618 mov r0, r3
800682e: f7fe fa9f bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
8006832: 88fb ldrh r3, [r7, #6]
8006834: 3307 adds r3, #7
8006836: b298 uxth r0, r3
8006838: 88bb ldrh r3, [r7, #4]
800683a: 3b07 subs r3, #7
800683c: b29b uxth r3, r3
800683e: 2203 movs r2, #3
8006840: 4619 mov r1, r3
8006842: f7fe fa95 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
8006846: 88fb ldrh r3, [r7, #6]
8006848: 330a adds r3, #10
800684a: b29b uxth r3, r3
800684c: 88b9 ldrh r1, [r7, #4]
800684e: 2203 movs r2, #3
8006850: 4618 mov r0, r3
8006852: f7fe fa8d bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
8006856: 88fb ldrh r3, [r7, #6]
8006858: 3307 adds r3, #7
800685a: b298 uxth r0, r3
800685c: 88bb ldrh r3, [r7, #4]
800685e: 3307 adds r3, #7
8006860: b29b uxth r3, r3
8006862: 2203 movs r2, #3
8006864: 4619 mov r1, r3
8006866: f7fe fa83 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800686a: 88bb ldrh r3, [r7, #4]
800686c: 330a adds r3, #10
800686e: b299 uxth r1, r3
8006870: 88fb ldrh r3, [r7, #6]
8006872: 2203 movs r2, #3
8006874: 4618 mov r0, r3
8006876: f7fe fa7b bl 8004d70 <BSP_LCD_FillCircle>
break;
800687a: e17d b.n 8006b78 <DrawMySpinner+0x63c>
case 4:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800687c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006880: f04f 30ff mov.w r0, #4294967295
8006884: f7fd fe38 bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
8006888: 88bb ldrh r3, [r7, #4]
800688a: 3b0a subs r3, #10
800688c: b299 uxth r1, r3
800688e: 88fb ldrh r3, [r7, #6]
8006890: 2203 movs r2, #3
8006892: 4618 mov r0, r3
8006894: f7fe fa6c bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
8006898: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800689c: 4884 ldr r0, [pc, #528] ; (8006ab0 <DrawMySpinner+0x574>)
800689e: f7fd fe2b bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
80068a2: 88fb ldrh r3, [r7, #6]
80068a4: 3b07 subs r3, #7
80068a6: b298 uxth r0, r3
80068a8: 88bb ldrh r3, [r7, #4]
80068aa: 3b07 subs r3, #7
80068ac: b29b uxth r3, r3
80068ae: 2203 movs r2, #3
80068b0: 4619 mov r1, r3
80068b2: f7fe fa5d bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
80068b6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80068ba: 487e ldr r0, [pc, #504] ; (8006ab4 <DrawMySpinner+0x578>)
80068bc: f7fd fe1c bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
80068c0: 88fb ldrh r3, [r7, #6]
80068c2: 3b0a subs r3, #10
80068c4: b29b uxth r3, r3
80068c6: 88b9 ldrh r1, [r7, #4]
80068c8: 2203 movs r2, #3
80068ca: 4618 mov r0, r3
80068cc: f7fe fa50 bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
80068d0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80068d4: 4878 ldr r0, [pc, #480] ; (8006ab8 <DrawMySpinner+0x57c>)
80068d6: f7fd fe0f bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
80068da: 88fb ldrh r3, [r7, #6]
80068dc: 3307 adds r3, #7
80068de: b298 uxth r0, r3
80068e0: 88bb ldrh r3, [r7, #4]
80068e2: 3b07 subs r3, #7
80068e4: b29b uxth r3, r3
80068e6: 2203 movs r2, #3
80068e8: 4619 mov r1, r3
80068ea: f7fe fa41 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
80068ee: 88fb ldrh r3, [r7, #6]
80068f0: 330a adds r3, #10
80068f2: b29b uxth r3, r3
80068f4: 88b9 ldrh r1, [r7, #4]
80068f6: 2203 movs r2, #3
80068f8: 4618 mov r0, r3
80068fa: f7fe fa39 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
80068fe: 88fb ldrh r3, [r7, #6]
8006900: 3307 adds r3, #7
8006902: b298 uxth r0, r3
8006904: 88bb ldrh r3, [r7, #4]
8006906: 3307 adds r3, #7
8006908: b29b uxth r3, r3
800690a: 2203 movs r2, #3
800690c: 4619 mov r1, r3
800690e: f7fe fa2f bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
8006912: 88bb ldrh r3, [r7, #4]
8006914: 330a adds r3, #10
8006916: b299 uxth r1, r3
8006918: 88fb ldrh r3, [r7, #6]
800691a: 2203 movs r2, #3
800691c: 4618 mov r0, r3
800691e: f7fe fa27 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
8006922: 88fb ldrh r3, [r7, #6]
8006924: 3b07 subs r3, #7
8006926: b298 uxth r0, r3
8006928: 88bb ldrh r3, [r7, #4]
800692a: 3307 adds r3, #7
800692c: b29b uxth r3, r3
800692e: 2203 movs r2, #3
8006930: 4619 mov r1, r3
8006932: f7fe fa1d bl 8004d70 <BSP_LCD_FillCircle>
break;
8006936: e11f b.n 8006b78 <DrawMySpinner+0x63c>
case 5:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
8006938: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800693c: f04f 30ff mov.w r0, #4294967295
8006940: f7fd fdda bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
8006944: 88fb ldrh r3, [r7, #6]
8006946: 3307 adds r3, #7
8006948: b298 uxth r0, r3
800694a: 88bb ldrh r3, [r7, #4]
800694c: 3b07 subs r3, #7
800694e: b29b uxth r3, r3
8006950: 2203 movs r2, #3
8006952: 4619 mov r1, r3
8006954: f7fe fa0c bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
8006958: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800695c: 4854 ldr r0, [pc, #336] ; (8006ab0 <DrawMySpinner+0x574>)
800695e: f7fd fdcb bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
8006962: 88bb ldrh r3, [r7, #4]
8006964: 3b0a subs r3, #10
8006966: b299 uxth r1, r3
8006968: 88fb ldrh r3, [r7, #6]
800696a: 2203 movs r2, #3
800696c: 4618 mov r0, r3
800696e: f7fe f9ff bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
8006972: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006976: 484f ldr r0, [pc, #316] ; (8006ab4 <DrawMySpinner+0x578>)
8006978: f7fd fdbe bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800697c: 88fb ldrh r3, [r7, #6]
800697e: 3b07 subs r3, #7
8006980: b298 uxth r0, r3
8006982: 88bb ldrh r3, [r7, #4]
8006984: 3b07 subs r3, #7
8006986: b29b uxth r3, r3
8006988: 2203 movs r2, #3
800698a: 4619 mov r1, r3
800698c: f7fe f9f0 bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
8006990: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006994: 4848 ldr r0, [pc, #288] ; (8006ab8 <DrawMySpinner+0x57c>)
8006996: f7fd fdaf bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800699a: 88fb ldrh r3, [r7, #6]
800699c: 330a adds r3, #10
800699e: b29b uxth r3, r3
80069a0: 88b9 ldrh r1, [r7, #4]
80069a2: 2203 movs r2, #3
80069a4: 4618 mov r0, r3
80069a6: f7fe f9e3 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
80069aa: 88fb ldrh r3, [r7, #6]
80069ac: 3307 adds r3, #7
80069ae: b298 uxth r0, r3
80069b0: 88bb ldrh r3, [r7, #4]
80069b2: 3307 adds r3, #7
80069b4: b29b uxth r3, r3
80069b6: 2203 movs r2, #3
80069b8: 4619 mov r1, r3
80069ba: f7fe f9d9 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
80069be: 88bb ldrh r3, [r7, #4]
80069c0: 330a adds r3, #10
80069c2: b299 uxth r1, r3
80069c4: 88fb ldrh r3, [r7, #6]
80069c6: 2203 movs r2, #3
80069c8: 4618 mov r0, r3
80069ca: f7fe f9d1 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
80069ce: 88fb ldrh r3, [r7, #6]
80069d0: 3b07 subs r3, #7
80069d2: b298 uxth r0, r3
80069d4: 88bb ldrh r3, [r7, #4]
80069d6: 3307 adds r3, #7
80069d8: b29b uxth r3, r3
80069da: 2203 movs r2, #3
80069dc: 4619 mov r1, r3
80069de: f7fe f9c7 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
80069e2: 88fb ldrh r3, [r7, #6]
80069e4: 3b0a subs r3, #10
80069e6: b29b uxth r3, r3
80069e8: 88b9 ldrh r1, [r7, #4]
80069ea: 2203 movs r2, #3
80069ec: 4618 mov r0, r3
80069ee: f7fe f9bf bl 8004d70 <BSP_LCD_FillCircle>
break;
80069f2: e0c1 b.n 8006b78 <DrawMySpinner+0x63c>
case 6:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
80069f4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80069f8: f04f 30ff mov.w r0, #4294967295
80069fc: f7fd fd7c bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
8006a00: 88fb ldrh r3, [r7, #6]
8006a02: 330a adds r3, #10
8006a04: b29b uxth r3, r3
8006a06: 88b9 ldrh r1, [r7, #4]
8006a08: 2203 movs r2, #3
8006a0a: 4618 mov r0, r3
8006a0c: f7fe f9b0 bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
8006a10: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006a14: 4826 ldr r0, [pc, #152] ; (8006ab0 <DrawMySpinner+0x574>)
8006a16: f7fd fd6f bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
8006a1a: 88fb ldrh r3, [r7, #6]
8006a1c: 3307 adds r3, #7
8006a1e: b298 uxth r0, r3
8006a20: 88bb ldrh r3, [r7, #4]
8006a22: 3b07 subs r3, #7
8006a24: b29b uxth r3, r3
8006a26: 2203 movs r2, #3
8006a28: 4619 mov r1, r3
8006a2a: f7fe f9a1 bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
8006a2e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006a32: 4820 ldr r0, [pc, #128] ; (8006ab4 <DrawMySpinner+0x578>)
8006a34: f7fd fd60 bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
8006a38: 88bb ldrh r3, [r7, #4]
8006a3a: 3b0a subs r3, #10
8006a3c: b299 uxth r1, r3
8006a3e: 88fb ldrh r3, [r7, #6]
8006a40: 2203 movs r2, #3
8006a42: 4618 mov r0, r3
8006a44: f7fe f994 bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
8006a48: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006a4c: 481a ldr r0, [pc, #104] ; (8006ab8 <DrawMySpinner+0x57c>)
8006a4e: f7fd fd53 bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
8006a52: 88fb ldrh r3, [r7, #6]
8006a54: 3307 adds r3, #7
8006a56: b298 uxth r0, r3
8006a58: 88bb ldrh r3, [r7, #4]
8006a5a: 3307 adds r3, #7
8006a5c: b29b uxth r3, r3
8006a5e: 2203 movs r2, #3
8006a60: 4619 mov r1, r3
8006a62: f7fe f985 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
8006a66: 88bb ldrh r3, [r7, #4]
8006a68: 330a adds r3, #10
8006a6a: b299 uxth r1, r3
8006a6c: 88fb ldrh r3, [r7, #6]
8006a6e: 2203 movs r2, #3
8006a70: 4618 mov r0, r3
8006a72: f7fe f97d bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
8006a76: 88fb ldrh r3, [r7, #6]
8006a78: 3b07 subs r3, #7
8006a7a: b298 uxth r0, r3
8006a7c: 88bb ldrh r3, [r7, #4]
8006a7e: 3307 adds r3, #7
8006a80: b29b uxth r3, r3
8006a82: 2203 movs r2, #3
8006a84: 4619 mov r1, r3
8006a86: f7fe f973 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
8006a8a: 88fb ldrh r3, [r7, #6]
8006a8c: 3b0a subs r3, #10
8006a8e: b29b uxth r3, r3
8006a90: 88b9 ldrh r1, [r7, #4]
8006a92: 2203 movs r2, #3
8006a94: 4618 mov r0, r3
8006a96: f7fe f96b bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
8006a9a: 88fb ldrh r3, [r7, #6]
8006a9c: 3b07 subs r3, #7
8006a9e: b298 uxth r0, r3
8006aa0: 88bb ldrh r3, [r7, #4]
8006aa2: 3b07 subs r3, #7
8006aa4: b29b uxth r3, r3
8006aa6: 2203 movs r2, #3
8006aa8: 4619 mov r1, r3
8006aaa: f7fe f961 bl 8004d70 <BSP_LCD_FillCircle>
break;
8006aae: e063 b.n 8006b78 <DrawMySpinner+0x63c>
8006ab0: ffd3d3d3 .word 0xffd3d3d3
8006ab4: ff808080 .word 0xff808080
8006ab8: ff404040 .word 0xff404040
case 7:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
8006abc: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006ac0: f04f 30ff mov.w r0, #4294967295
8006ac4: f7fd fd18 bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
8006ac8: 88fb ldrh r3, [r7, #6]
8006aca: 3307 adds r3, #7
8006acc: b298 uxth r0, r3
8006ace: 88bb ldrh r3, [r7, #4]
8006ad0: 3307 adds r3, #7
8006ad2: b29b uxth r3, r3
8006ad4: 2203 movs r2, #3
8006ad6: 4619 mov r1, r3
8006ad8: f7fe f94a bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
8006adc: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006ae0: 482d ldr r0, [pc, #180] ; (8006b98 <DrawMySpinner+0x65c>)
8006ae2: f7fd fd09 bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
8006ae6: 88fb ldrh r3, [r7, #6]
8006ae8: 330a adds r3, #10
8006aea: b29b uxth r3, r3
8006aec: 88b9 ldrh r1, [r7, #4]
8006aee: 2203 movs r2, #3
8006af0: 4618 mov r0, r3
8006af2: f7fe f93d bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
8006af6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006afa: 4828 ldr r0, [pc, #160] ; (8006b9c <DrawMySpinner+0x660>)
8006afc: f7fd fcfc bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
8006b00: 88fb ldrh r3, [r7, #6]
8006b02: 3307 adds r3, #7
8006b04: b298 uxth r0, r3
8006b06: 88bb ldrh r3, [r7, #4]
8006b08: 3b07 subs r3, #7
8006b0a: b29b uxth r3, r3
8006b0c: 2203 movs r2, #3
8006b0e: 4619 mov r1, r3
8006b10: f7fe f92e bl 8004d70 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
8006b14: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006b18: 4821 ldr r0, [pc, #132] ; (8006ba0 <DrawMySpinner+0x664>)
8006b1a: f7fd fced bl 80044f8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
8006b1e: 88bb ldrh r3, [r7, #4]
8006b20: 330a adds r3, #10
8006b22: b299 uxth r1, r3
8006b24: 88fb ldrh r3, [r7, #6]
8006b26: 2203 movs r2, #3
8006b28: 4618 mov r0, r3
8006b2a: f7fe f921 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
8006b2e: 88fb ldrh r3, [r7, #6]
8006b30: 3b07 subs r3, #7
8006b32: b298 uxth r0, r3
8006b34: 88bb ldrh r3, [r7, #4]
8006b36: 3307 adds r3, #7
8006b38: b29b uxth r3, r3
8006b3a: 2203 movs r2, #3
8006b3c: 4619 mov r1, r3
8006b3e: f7fe f917 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
8006b42: 88fb ldrh r3, [r7, #6]
8006b44: 3b0a subs r3, #10
8006b46: b29b uxth r3, r3
8006b48: 88b9 ldrh r1, [r7, #4]
8006b4a: 2203 movs r2, #3
8006b4c: 4618 mov r0, r3
8006b4e: f7fe f90f bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
8006b52: 88fb ldrh r3, [r7, #6]
8006b54: 3b07 subs r3, #7
8006b56: b298 uxth r0, r3
8006b58: 88bb ldrh r3, [r7, #4]
8006b5a: 3b07 subs r3, #7
8006b5c: b29b uxth r3, r3
8006b5e: 2203 movs r2, #3
8006b60: 4619 mov r1, r3
8006b62: f7fe f905 bl 8004d70 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
8006b66: 88bb ldrh r3, [r7, #4]
8006b68: 3b0a subs r3, #10
8006b6a: b299 uxth r1, r3
8006b6c: 88fb ldrh r3, [r7, #6]
8006b6e: 2203 movs r2, #3
8006b70: 4618 mov r0, r3
8006b72: f7fe f8fd bl 8004d70 <BSP_LCD_FillCircle>
break;
8006b76: bf00 nop
}
rotate++;
8006b78: 4b0a ldr r3, [pc, #40] ; (8006ba4 <DrawMySpinner+0x668>)
8006b7a: 681b ldr r3, [r3, #0]
8006b7c: 3301 adds r3, #1
8006b7e: 4a09 ldr r2, [pc, #36] ; (8006ba4 <DrawMySpinner+0x668>)
8006b80: 6013 str r3, [r2, #0]
if(rotate >= 8)
8006b82: 4b08 ldr r3, [pc, #32] ; (8006ba4 <DrawMySpinner+0x668>)
8006b84: 681b ldr r3, [r3, #0]
8006b86: 2b07 cmp r3, #7
8006b88: d902 bls.n 8006b90 <DrawMySpinner+0x654>
rotate = 0;
8006b8a: 4b06 ldr r3, [pc, #24] ; (8006ba4 <DrawMySpinner+0x668>)
8006b8c: 2200 movs r2, #0
8006b8e: 601a str r2, [r3, #0]
}
8006b90: bf00 nop
8006b92: 3708 adds r7, #8
8006b94: 46bd mov sp, r7
8006b96: bd80 pop {r7, pc}
8006b98: ffd3d3d3 .word 0xffd3d3d3
8006b9c: ff808080 .word 0xff808080
8006ba0: ff404040 .word 0xff404040
8006ba4: 2006b2e8 .word 0x2006b2e8
08006ba8 <DrawSpinner>:
void DrawSpinner(uint16_t x, uint16_t y)
{
8006ba8: b580 push {r7, lr}
8006baa: b082 sub sp, #8
8006bac: af00 add r7, sp, #0
8006bae: 4603 mov r3, r0
8006bb0: 460a mov r2, r1
8006bb2: 80fb strh r3, [r7, #6]
8006bb4: 4613 mov r3, r2
8006bb6: 80bb strh r3, [r7, #4]
//if(!clbr)
//{
spinner++;
8006bb8: 4b0b ldr r3, [pc, #44] ; (8006be8 <DrawSpinner+0x40>)
8006bba: 781b ldrb r3, [r3, #0]
8006bbc: 3301 adds r3, #1
8006bbe: b2da uxtb r2, r3
8006bc0: 4b09 ldr r3, [pc, #36] ; (8006be8 <DrawSpinner+0x40>)
8006bc2: 701a strb r2, [r3, #0]
if(spinner >= 10)
8006bc4: 4b08 ldr r3, [pc, #32] ; (8006be8 <DrawSpinner+0x40>)
8006bc6: 781b ldrb r3, [r3, #0]
8006bc8: 2b09 cmp r3, #9
8006bca: d902 bls.n 8006bd2 <DrawSpinner+0x2a>
spinner = 0;
8006bcc: 4b06 ldr r3, [pc, #24] ; (8006be8 <DrawSpinner+0x40>)
8006bce: 2200 movs r2, #0
8006bd0: 701a strb r2, [r3, #0]
DrawMySpinner(x, y);
8006bd2: 88ba ldrh r2, [r7, #4]
8006bd4: 88fb ldrh r3, [r7, #6]
8006bd6: 4611 mov r1, r2
8006bd8: 4618 mov r0, r3
8006bda: f7ff fcaf bl 800653c <DrawMySpinner>
//}
}
8006bde: bf00 nop
8006be0: 3708 adds r7, #8
8006be2: 46bd mov sp, r7
8006be4: bd80 pop {r7, pc}
8006be6: bf00 nop
8006be8: 2006b2dd .word 0x2006b2dd
08006bec <DrawChannel_4>:
}
void DrawChannel_4(uint8_t ch, uint32_t blk)
{
8006bec: b5b0 push {r4, r5, r7, lr}
8006bee: b08e sub sp, #56 ; 0x38
8006bf0: af00 add r7, sp, #0
8006bf2: 4603 mov r3, r0
8006bf4: 6039 str r1, [r7, #0]
8006bf6: 71fb strb r3, [r7, #7]
//pardata.amplif[ch].SENS = 1000.0f;
if(pardata.amplif[ch].SENS <= 0.0f) {
8006bf8: 79fb ldrb r3, [r7, #7]
8006bfa: 4ac1 ldr r2, [pc, #772] ; (8006f00 <DrawChannel_4+0x314>)
8006bfc: 015b lsls r3, r3, #5
8006bfe: 4413 add r3, r2
8006c00: 3318 adds r3, #24
8006c02: edd3 7a00 vldr s15, [r3]
8006c06: eef5 7ac0 vcmpe.f32 s15, #0.0
8006c0a: eef1 fa10 vmrs APSR_nzcv, fpscr
8006c0e: d80a bhi.n 8006c26 <DrawChannel_4+0x3a>
pardata.amplif[ch].SENS = 1.0f;
8006c10: 79fb ldrb r3, [r7, #7]
8006c12: 4abb ldr r2, [pc, #748] ; (8006f00 <DrawChannel_4+0x314>)
8006c14: 015b lsls r3, r3, #5
8006c16: 4413 add r3, r2
8006c18: 3318 adds r3, #24
8006c1a: f04f 527e mov.w r2, #1065353216 ; 0x3f800000
8006c1e: 601a str r2, [r3, #0]
s = 10000;
8006c20: f242 7310 movw r3, #10000 ; 0x2710
8006c24: 637b str r3, [r7, #52] ; 0x34
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10.0f) {
8006c26: 4bb7 ldr r3, [pc, #732] ; (8006f04 <DrawChannel_4+0x318>)
8006c28: 681b ldr r3, [r3, #0]
8006c2a: 4ab5 ldr r2, [pc, #724] ; (8006f00 <DrawChannel_4+0x314>)
8006c2c: 015b lsls r3, r3, #5
8006c2e: 4413 add r3, r2
8006c30: 3318 adds r3, #24
8006c32: edd3 7a00 vldr s15, [r3]
8006c36: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8006c3a: eef4 7ac7 vcmpe.f32 s15, s14
8006c3e: eef1 fa10 vmrs APSR_nzcv, fpscr
8006c42: d517 bpl.n 8006c74 <DrawChannel_4+0x88>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10000.0f) + 0.5f);
8006c44: 4baf ldr r3, [pc, #700] ; (8006f04 <DrawChannel_4+0x318>)
8006c46: 681b ldr r3, [r3, #0]
8006c48: 4aad ldr r2, [pc, #692] ; (8006f00 <DrawChannel_4+0x314>)
8006c4a: 015b lsls r3, r3, #5
8006c4c: 4413 add r3, r2
8006c4e: 3318 adds r3, #24
8006c50: edd3 7a00 vldr s15, [r3]
8006c54: ed9f 7aac vldr s14, [pc, #688] ; 8006f08 <DrawChannel_4+0x31c>
8006c58: ee67 7a87 vmul.f32 s15, s15, s14
8006c5c: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006c60: ee77 7a87 vadd.f32 s15, s15, s14
8006c64: eefc 7ae7 vcvt.u32.f32 s15, s15
8006c68: ee17 3a90 vmov r3, s15
8006c6c: 637b str r3, [r7, #52] ; 0x34
ipt = 4;
8006c6e: 2304 movs r3, #4
8006c70: 633b str r3, [r7, #48] ; 0x30
8006c72: e0b2 b.n 8006dda <DrawChannel_4+0x1ee>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100.0f) {
8006c74: 4ba3 ldr r3, [pc, #652] ; (8006f04 <DrawChannel_4+0x318>)
8006c76: 681b ldr r3, [r3, #0]
8006c78: 4aa1 ldr r2, [pc, #644] ; (8006f00 <DrawChannel_4+0x314>)
8006c7a: 015b lsls r3, r3, #5
8006c7c: 4413 add r3, r2
8006c7e: 3318 adds r3, #24
8006c80: edd3 7a00 vldr s15, [r3]
8006c84: ed9f 7aa1 vldr s14, [pc, #644] ; 8006f0c <DrawChannel_4+0x320>
8006c88: eef4 7ac7 vcmpe.f32 s15, s14
8006c8c: eef1 fa10 vmrs APSR_nzcv, fpscr
8006c90: d517 bpl.n 8006cc2 <DrawChannel_4+0xd6>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 1000.0f) + 0.5f);
8006c92: 4b9c ldr r3, [pc, #624] ; (8006f04 <DrawChannel_4+0x318>)
8006c94: 681b ldr r3, [r3, #0]
8006c96: 4a9a ldr r2, [pc, #616] ; (8006f00 <DrawChannel_4+0x314>)
8006c98: 015b lsls r3, r3, #5
8006c9a: 4413 add r3, r2
8006c9c: 3318 adds r3, #24
8006c9e: edd3 7a00 vldr s15, [r3]
8006ca2: ed9f 7a9b vldr s14, [pc, #620] ; 8006f10 <DrawChannel_4+0x324>
8006ca6: ee67 7a87 vmul.f32 s15, s15, s14
8006caa: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006cae: ee77 7a87 vadd.f32 s15, s15, s14
8006cb2: eefc 7ae7 vcvt.u32.f32 s15, s15
8006cb6: ee17 3a90 vmov r3, s15
8006cba: 637b str r3, [r7, #52] ; 0x34
ipt = 3;
8006cbc: 2303 movs r3, #3
8006cbe: 633b str r3, [r7, #48] ; 0x30
8006cc0: e08b b.n 8006dda <DrawChannel_4+0x1ee>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 1000.0f) {
8006cc2: 4b90 ldr r3, [pc, #576] ; (8006f04 <DrawChannel_4+0x318>)
8006cc4: 681b ldr r3, [r3, #0]
8006cc6: 4a8e ldr r2, [pc, #568] ; (8006f00 <DrawChannel_4+0x314>)
8006cc8: 015b lsls r3, r3, #5
8006cca: 4413 add r3, r2
8006ccc: 3318 adds r3, #24
8006cce: edd3 7a00 vldr s15, [r3]
8006cd2: ed9f 7a8f vldr s14, [pc, #572] ; 8006f10 <DrawChannel_4+0x324>
8006cd6: eef4 7ac7 vcmpe.f32 s15, s14
8006cda: eef1 fa10 vmrs APSR_nzcv, fpscr
8006cde: d517 bpl.n 8006d10 <DrawChannel_4+0x124>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 100.0f) + 0.5f);
8006ce0: 4b88 ldr r3, [pc, #544] ; (8006f04 <DrawChannel_4+0x318>)
8006ce2: 681b ldr r3, [r3, #0]
8006ce4: 4a86 ldr r2, [pc, #536] ; (8006f00 <DrawChannel_4+0x314>)
8006ce6: 015b lsls r3, r3, #5
8006ce8: 4413 add r3, r2
8006cea: 3318 adds r3, #24
8006cec: edd3 7a00 vldr s15, [r3]
8006cf0: ed9f 7a86 vldr s14, [pc, #536] ; 8006f0c <DrawChannel_4+0x320>
8006cf4: ee67 7a87 vmul.f32 s15, s15, s14
8006cf8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006cfc: ee77 7a87 vadd.f32 s15, s15, s14
8006d00: eefc 7ae7 vcvt.u32.f32 s15, s15
8006d04: ee17 3a90 vmov r3, s15
8006d08: 637b str r3, [r7, #52] ; 0x34
ipt = 2;
8006d0a: 2302 movs r3, #2
8006d0c: 633b str r3, [r7, #48] ; 0x30
8006d0e: e064 b.n 8006dda <DrawChannel_4+0x1ee>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10000.0f) {
8006d10: 4b7c ldr r3, [pc, #496] ; (8006f04 <DrawChannel_4+0x318>)
8006d12: 681b ldr r3, [r3, #0]
8006d14: 4a7a ldr r2, [pc, #488] ; (8006f00 <DrawChannel_4+0x314>)
8006d16: 015b lsls r3, r3, #5
8006d18: 4413 add r3, r2
8006d1a: 3318 adds r3, #24
8006d1c: edd3 7a00 vldr s15, [r3]
8006d20: ed9f 7a79 vldr s14, [pc, #484] ; 8006f08 <DrawChannel_4+0x31c>
8006d24: eef4 7ac7 vcmpe.f32 s15, s14
8006d28: eef1 fa10 vmrs APSR_nzcv, fpscr
8006d2c: d517 bpl.n 8006d5e <DrawChannel_4+0x172>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10.0f) + 0.5f);
8006d2e: 4b75 ldr r3, [pc, #468] ; (8006f04 <DrawChannel_4+0x318>)
8006d30: 681b ldr r3, [r3, #0]
8006d32: 4a73 ldr r2, [pc, #460] ; (8006f00 <DrawChannel_4+0x314>)
8006d34: 015b lsls r3, r3, #5
8006d36: 4413 add r3, r2
8006d38: 3318 adds r3, #24
8006d3a: edd3 7a00 vldr s15, [r3]
8006d3e: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8006d42: ee67 7a87 vmul.f32 s15, s15, s14
8006d46: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006d4a: ee77 7a87 vadd.f32 s15, s15, s14
8006d4e: eefc 7ae7 vcvt.u32.f32 s15, s15
8006d52: ee17 3a90 vmov r3, s15
8006d56: 637b str r3, [r7, #52] ; 0x34
ipt = 1;
8006d58: 2301 movs r3, #1
8006d5a: 633b str r3, [r7, #48] ; 0x30
8006d5c: e03d b.n 8006dda <DrawChannel_4+0x1ee>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) {
8006d5e: 4b69 ldr r3, [pc, #420] ; (8006f04 <DrawChannel_4+0x318>)
8006d60: 681b ldr r3, [r3, #0]
8006d62: 4a67 ldr r2, [pc, #412] ; (8006f00 <DrawChannel_4+0x314>)
8006d64: 015b lsls r3, r3, #5
8006d66: 4413 add r3, r2
8006d68: 3318 adds r3, #24
8006d6a: edd3 7a00 vldr s15, [r3]
8006d6e: ed9f 7a69 vldr s14, [pc, #420] ; 8006f14 <DrawChannel_4+0x328>
8006d72: eef4 7ac7 vcmpe.f32 s15, s14
8006d76: eef1 fa10 vmrs APSR_nzcv, fpscr
8006d7a: d513 bpl.n 8006da4 <DrawChannel_4+0x1b8>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS) + 0.5f);
8006d7c: 4b61 ldr r3, [pc, #388] ; (8006f04 <DrawChannel_4+0x318>)
8006d7e: 681b ldr r3, [r3, #0]
8006d80: 4a5f ldr r2, [pc, #380] ; (8006f00 <DrawChannel_4+0x314>)
8006d82: 015b lsls r3, r3, #5
8006d84: 4413 add r3, r2
8006d86: 3318 adds r3, #24
8006d88: edd3 7a00 vldr s15, [r3]
8006d8c: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006d90: ee77 7a87 vadd.f32 s15, s15, s14
8006d94: eefc 7ae7 vcvt.u32.f32 s15, s15
8006d98: ee17 3a90 vmov r3, s15
8006d9c: 637b str r3, [r7, #52] ; 0x34
ipt = 0;
8006d9e: 2300 movs r3, #0
8006da0: 633b str r3, [r7, #48] ; 0x30
8006da2: e01a b.n 8006dda <DrawChannel_4+0x1ee>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8006da4: 4b57 ldr r3, [pc, #348] ; (8006f04 <DrawChannel_4+0x318>)
8006da6: 681b ldr r3, [r3, #0]
8006da8: 4a55 ldr r2, [pc, #340] ; (8006f00 <DrawChannel_4+0x314>)
8006daa: 015b lsls r3, r3, #5
8006dac: 4413 add r3, r2
8006dae: 3318 adds r3, #24
8006db0: edd3 7a00 vldr s15, [r3]
8006db4: ed9f 7a57 vldr s14, [pc, #348] ; 8006f14 <DrawChannel_4+0x328>
8006db8: eef4 7ac7 vcmpe.f32 s15, s14
8006dbc: eef1 fa10 vmrs APSR_nzcv, fpscr
8006dc0: db0b blt.n 8006dda <DrawChannel_4+0x1ee>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
8006dc2: 4b50 ldr r3, [pc, #320] ; (8006f04 <DrawChannel_4+0x318>)
8006dc4: 681b ldr r3, [r3, #0]
8006dc6: 4a4e ldr r2, [pc, #312] ; (8006f00 <DrawChannel_4+0x314>)
8006dc8: 015b lsls r3, r3, #5
8006dca: 4413 add r3, r2
8006dcc: 3318 adds r3, #24
8006dce: 4a52 ldr r2, [pc, #328] ; (8006f18 <DrawChannel_4+0x32c>)
8006dd0: 601a str r2, [r3, #0]
s = 99999;
8006dd2: 4b52 ldr r3, [pc, #328] ; (8006f1c <DrawChannel_4+0x330>)
8006dd4: 637b str r3, [r7, #52] ; 0x34
ipt = 0;
8006dd6: 2300 movs r3, #0
8006dd8: 633b str r3, [r7, #48] ; 0x30
}
ikdt = (s / 10000);
8006dda: 6b7b ldr r3, [r7, #52] ; 0x34
8006ddc: 4a50 ldr r2, [pc, #320] ; (8006f20 <DrawChannel_4+0x334>)
8006dde: fba2 2303 umull r2, r3, r2, r3
8006de2: 0b5b lsrs r3, r3, #13
8006de4: 627b str r3, [r7, #36] ; 0x24
ikt = (s % 10000 / 1000);
8006de6: 6b7a ldr r2, [r7, #52] ; 0x34
8006de8: 4b4d ldr r3, [pc, #308] ; (8006f20 <DrawChannel_4+0x334>)
8006dea: fba3 1302 umull r1, r3, r3, r2
8006dee: 0b5b lsrs r3, r3, #13
8006df0: f242 7110 movw r1, #10000 ; 0x2710
8006df4: fb01 f303 mul.w r3, r1, r3
8006df8: 1ad3 subs r3, r2, r3
8006dfa: 4a4a ldr r2, [pc, #296] ; (8006f24 <DrawChannel_4+0x338>)
8006dfc: fba2 2303 umull r2, r3, r2, r3
8006e00: 099b lsrs r3, r3, #6
8006e02: 623b str r3, [r7, #32]
iks = (s % 10000 % 1000 / 100);
8006e04: 6b7a ldr r2, [r7, #52] ; 0x34
8006e06: 4b46 ldr r3, [pc, #280] ; (8006f20 <DrawChannel_4+0x334>)
8006e08: fba3 1302 umull r1, r3, r3, r2
8006e0c: 0b5b lsrs r3, r3, #13
8006e0e: f242 7110 movw r1, #10000 ; 0x2710
8006e12: fb01 f303 mul.w r3, r1, r3
8006e16: 1ad3 subs r3, r2, r3
8006e18: 4a42 ldr r2, [pc, #264] ; (8006f24 <DrawChannel_4+0x338>)
8006e1a: fba2 1203 umull r1, r2, r2, r3
8006e1e: 0992 lsrs r2, r2, #6
8006e20: f44f 717a mov.w r1, #1000 ; 0x3e8
8006e24: fb01 f202 mul.w r2, r1, r2
8006e28: 1a9a subs r2, r3, r2
8006e2a: 4b3f ldr r3, [pc, #252] ; (8006f28 <DrawChannel_4+0x33c>)
8006e2c: fba3 2302 umull r2, r3, r3, r2
8006e30: 095b lsrs r3, r3, #5
8006e32: 61fb str r3, [r7, #28]
ikd = (s % 10000 % 1000 % 100 / 10);
8006e34: 6b7b ldr r3, [r7, #52] ; 0x34
8006e36: 4a3a ldr r2, [pc, #232] ; (8006f20 <DrawChannel_4+0x334>)
8006e38: fba2 1203 umull r1, r2, r2, r3
8006e3c: 0b52 lsrs r2, r2, #13
8006e3e: f242 7110 movw r1, #10000 ; 0x2710
8006e42: fb01 f202 mul.w r2, r1, r2
8006e46: 1a9a subs r2, r3, r2
8006e48: 4b36 ldr r3, [pc, #216] ; (8006f24 <DrawChannel_4+0x338>)
8006e4a: fba3 1302 umull r1, r3, r3, r2
8006e4e: 099b lsrs r3, r3, #6
8006e50: f44f 717a mov.w r1, #1000 ; 0x3e8
8006e54: fb01 f303 mul.w r3, r1, r3
8006e58: 1ad3 subs r3, r2, r3
8006e5a: 4a33 ldr r2, [pc, #204] ; (8006f28 <DrawChannel_4+0x33c>)
8006e5c: fba2 1203 umull r1, r2, r2, r3
8006e60: 0952 lsrs r2, r2, #5
8006e62: 2164 movs r1, #100 ; 0x64
8006e64: fb01 f202 mul.w r2, r1, r2
8006e68: 1a9a subs r2, r3, r2
8006e6a: 4b30 ldr r3, [pc, #192] ; (8006f2c <DrawChannel_4+0x340>)
8006e6c: fba3 2302 umull r2, r3, r3, r2
8006e70: 08db lsrs r3, r3, #3
8006e72: 61bb str r3, [r7, #24]
ike = (s % 10000 % 1000 % 100 % 10);
8006e74: 6b7b ldr r3, [r7, #52] ; 0x34
8006e76: 4a2a ldr r2, [pc, #168] ; (8006f20 <DrawChannel_4+0x334>)
8006e78: fba2 1203 umull r1, r2, r2, r3
8006e7c: 0b52 lsrs r2, r2, #13
8006e7e: f242 7110 movw r1, #10000 ; 0x2710
8006e82: fb01 f202 mul.w r2, r1, r2
8006e86: 1a9a subs r2, r3, r2
8006e88: 4b26 ldr r3, [pc, #152] ; (8006f24 <DrawChannel_4+0x338>)
8006e8a: fba3 1302 umull r1, r3, r3, r2
8006e8e: 099b lsrs r3, r3, #6
8006e90: f44f 717a mov.w r1, #1000 ; 0x3e8
8006e94: fb01 f303 mul.w r3, r1, r3
8006e98: 1ad3 subs r3, r2, r3
8006e9a: 4a23 ldr r2, [pc, #140] ; (8006f28 <DrawChannel_4+0x33c>)
8006e9c: fba2 1203 umull r1, r2, r2, r3
8006ea0: 0952 lsrs r2, r2, #5
8006ea2: 2164 movs r1, #100 ; 0x64
8006ea4: fb01 f202 mul.w r2, r1, r2
8006ea8: 1a9a subs r2, r3, r2
8006eaa: 4b20 ldr r3, [pc, #128] ; (8006f2c <DrawChannel_4+0x340>)
8006eac: fba3 1302 umull r1, r3, r3, r2
8006eb0: 08d9 lsrs r1, r3, #3
8006eb2: 460b mov r3, r1
8006eb4: 009b lsls r3, r3, #2
8006eb6: 440b add r3, r1
8006eb8: 005b lsls r3, r3, #1
8006eba: 1ad3 subs r3, r2, r3
8006ebc: 617b str r3, [r7, #20]
p8 = str;
8006ebe: f107 0308 add.w r3, r7, #8
8006ec2: 62bb str r3, [r7, #40] ; 0x28
if(pardata.amplif[ch].SENS < 10.0f) {
8006ec4: 79fb ldrb r3, [r7, #7]
8006ec6: 4a0e ldr r2, [pc, #56] ; (8006f00 <DrawChannel_4+0x314>)
8006ec8: 015b lsls r3, r3, #5
8006eca: 4413 add r3, r2
8006ecc: 3318 adds r3, #24
8006ece: edd3 7a00 vldr s15, [r3]
8006ed2: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8006ed6: eef4 7ac7 vcmpe.f32 s15, s14
8006eda: eef1 fa10 vmrs APSR_nzcv, fpscr
8006ede: d527 bpl.n 8006f30 <DrawChannel_4+0x344>
p8 = FloatToASCII(pardata.amplif[ch].SENS, -4);
8006ee0: 79fb ldrb r3, [r7, #7]
8006ee2: 4a07 ldr r2, [pc, #28] ; (8006f00 <DrawChannel_4+0x314>)
8006ee4: 015b lsls r3, r3, #5
8006ee6: 4413 add r3, r2
8006ee8: 3318 adds r3, #24
8006eea: edd3 7a00 vldr s15, [r3]
8006eee: f06f 0003 mvn.w r0, #3
8006ef2: eeb0 0a67 vmov.f32 s0, s15
8006ef6: f004 fd37 bl 800b968 <FloatToASCII>
8006efa: 62b8 str r0, [r7, #40] ; 0x28
8006efc: e08a b.n 8007014 <DrawChannel_4+0x428>
8006efe: bf00 nop
8006f00: 2006b510 .word 0x2006b510
8006f04: 2006b2d0 .word 0x2006b2d0
8006f08: 461c4000 .word 0x461c4000
8006f0c: 42c80000 .word 0x42c80000
8006f10: 447a0000 .word 0x447a0000
8006f14: 47c35000 .word 0x47c35000
8006f18: 47c34f80 .word 0x47c34f80
8006f1c: 0001869f .word 0x0001869f
8006f20: d1b71759 .word 0xd1b71759
8006f24: 10624dd3 .word 0x10624dd3
8006f28: 51eb851f .word 0x51eb851f
8006f2c: cccccccd .word 0xcccccccd
}
else if(pardata.amplif[ch].SENS < 100.0f) {
8006f30: 79fb ldrb r3, [r7, #7]
8006f32: 4abf ldr r2, [pc, #764] ; (8007230 <DrawChannel_4+0x644>)
8006f34: 015b lsls r3, r3, #5
8006f36: 4413 add r3, r2
8006f38: 3318 adds r3, #24
8006f3a: edd3 7a00 vldr s15, [r3]
8006f3e: ed9f 7abd vldr s14, [pc, #756] ; 8007234 <DrawChannel_4+0x648>
8006f42: eef4 7ac7 vcmpe.f32 s15, s14
8006f46: eef1 fa10 vmrs APSR_nzcv, fpscr
8006f4a: d50e bpl.n 8006f6a <DrawChannel_4+0x37e>
p8 = FloatToASCII(pardata.amplif[ch].SENS, -3);
8006f4c: 79fb ldrb r3, [r7, #7]
8006f4e: 4ab8 ldr r2, [pc, #736] ; (8007230 <DrawChannel_4+0x644>)
8006f50: 015b lsls r3, r3, #5
8006f52: 4413 add r3, r2
8006f54: 3318 adds r3, #24
8006f56: edd3 7a00 vldr s15, [r3]
8006f5a: f06f 0002 mvn.w r0, #2
8006f5e: eeb0 0a67 vmov.f32 s0, s15
8006f62: f004 fd01 bl 800b968 <FloatToASCII>
8006f66: 62b8 str r0, [r7, #40] ; 0x28
8006f68: e054 b.n 8007014 <DrawChannel_4+0x428>
}
else if(pardata.amplif[ch].SENS < 1000.0f) {
8006f6a: 79fb ldrb r3, [r7, #7]
8006f6c: 4ab0 ldr r2, [pc, #704] ; (8007230 <DrawChannel_4+0x644>)
8006f6e: 015b lsls r3, r3, #5
8006f70: 4413 add r3, r2
8006f72: 3318 adds r3, #24
8006f74: edd3 7a00 vldr s15, [r3]
8006f78: ed9f 7aaf vldr s14, [pc, #700] ; 8007238 <DrawChannel_4+0x64c>
8006f7c: eef4 7ac7 vcmpe.f32 s15, s14
8006f80: eef1 fa10 vmrs APSR_nzcv, fpscr
8006f84: d50e bpl.n 8006fa4 <DrawChannel_4+0x3b8>
p8 = FloatToASCII(pardata.amplif[ch].SENS, -2);
8006f86: 79fb ldrb r3, [r7, #7]
8006f88: 4aa9 ldr r2, [pc, #676] ; (8007230 <DrawChannel_4+0x644>)
8006f8a: 015b lsls r3, r3, #5
8006f8c: 4413 add r3, r2
8006f8e: 3318 adds r3, #24
8006f90: edd3 7a00 vldr s15, [r3]
8006f94: f06f 0001 mvn.w r0, #1
8006f98: eeb0 0a67 vmov.f32 s0, s15
8006f9c: f004 fce4 bl 800b968 <FloatToASCII>
8006fa0: 62b8 str r0, [r7, #40] ; 0x28
8006fa2: e037 b.n 8007014 <DrawChannel_4+0x428>
}
else if(pardata.amplif[ch].SENS < 10000.0f) {
8006fa4: 79fb ldrb r3, [r7, #7]
8006fa6: 4aa2 ldr r2, [pc, #648] ; (8007230 <DrawChannel_4+0x644>)
8006fa8: 015b lsls r3, r3, #5
8006faa: 4413 add r3, r2
8006fac: 3318 adds r3, #24
8006fae: edd3 7a00 vldr s15, [r3]
8006fb2: ed9f 7aa2 vldr s14, [pc, #648] ; 800723c <DrawChannel_4+0x650>
8006fb6: eef4 7ac7 vcmpe.f32 s15, s14
8006fba: eef1 fa10 vmrs APSR_nzcv, fpscr
8006fbe: d50e bpl.n 8006fde <DrawChannel_4+0x3f2>
p8 = FloatToASCII(pardata.amplif[ch].SENS, -1);
8006fc0: 79fb ldrb r3, [r7, #7]
8006fc2: 4a9b ldr r2, [pc, #620] ; (8007230 <DrawChannel_4+0x644>)
8006fc4: 015b lsls r3, r3, #5
8006fc6: 4413 add r3, r2
8006fc8: 3318 adds r3, #24
8006fca: edd3 7a00 vldr s15, [r3]
8006fce: f04f 30ff mov.w r0, #4294967295
8006fd2: eeb0 0a67 vmov.f32 s0, s15
8006fd6: f004 fcc7 bl 800b968 <FloatToASCII>
8006fda: 62b8 str r0, [r7, #40] ; 0x28
8006fdc: e01a b.n 8007014 <DrawChannel_4+0x428>
}
else if(pardata.amplif[ch].SENS < 100000.0f) {
8006fde: 79fb ldrb r3, [r7, #7]
8006fe0: 4a93 ldr r2, [pc, #588] ; (8007230 <DrawChannel_4+0x644>)
8006fe2: 015b lsls r3, r3, #5
8006fe4: 4413 add r3, r2
8006fe6: 3318 adds r3, #24
8006fe8: edd3 7a00 vldr s15, [r3]
8006fec: ed9f 7a94 vldr s14, [pc, #592] ; 8007240 <DrawChannel_4+0x654>
8006ff0: eef4 7ac7 vcmpe.f32 s15, s14
8006ff4: eef1 fa10 vmrs APSR_nzcv, fpscr
8006ff8: d50c bpl.n 8007014 <DrawChannel_4+0x428>
p8 = FloatToASCII(pardata.amplif[ch].SENS, 0);
8006ffa: 79fb ldrb r3, [r7, #7]
8006ffc: 4a8c ldr r2, [pc, #560] ; (8007230 <DrawChannel_4+0x644>)
8006ffe: 015b lsls r3, r3, #5
8007000: 4413 add r3, r2
8007002: 3318 adds r3, #24
8007004: edd3 7a00 vldr s15, [r3]
8007008: 2000 movs r0, #0
800700a: eeb0 0a67 vmov.f32 s0, s15
800700e: f004 fcab bl 800b968 <FloatToASCII>
8007012: 62b8 str r0, [r7, #40] ; 0x28
}
strcpy((void *) str, (void *) p8);
8007014: f107 0308 add.w r3, r7, #8
8007018: 6ab9 ldr r1, [r7, #40] ; 0x28
800701a: 4618 mov r0, r3
800701c: f00b f983 bl 8012326 <strcpy>
//////////////////////////////////////////////////////////////////////////////////////
if(pardata.amplif[ch].SENS <= 0.0010f) //0.001
8007020: 79fb ldrb r3, [r7, #7]
8007022: 4a83 ldr r2, [pc, #524] ; (8007230 <DrawChannel_4+0x644>)
8007024: 015b lsls r3, r3, #5
8007026: 4413 add r3, r2
8007028: 3318 adds r3, #24
800702a: edd3 7a00 vldr s15, [r3]
800702e: ed9f 7a85 vldr s14, [pc, #532] ; 8007244 <DrawChannel_4+0x658>
8007032: eef4 7ac7 vcmpe.f32 s15, s14
8007036: eef1 fa10 vmrs APSR_nzcv, fpscr
800703a: d808 bhi.n 800704e <DrawChannel_4+0x462>
{
out = pardata.amplif[ch].IKU;
800703c: 79fb ldrb r3, [r7, #7]
800703e: 4a7c ldr r2, [pc, #496] ; (8007230 <DrawChannel_4+0x644>)
8007040: 015b lsls r3, r3, #5
8007042: 4413 add r3, r2
8007044: 3306 adds r3, #6
8007046: 881b ldrh r3, [r3, #0]
8007048: b29b uxth r3, r3
800704a: 62fb str r3, [r7, #44] ; 0x2c
800704c: e26f b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 0.0011f && */pardata.amplif[ch].SENS <= 0.0020f) //0.002
800704e: 79fb ldrb r3, [r7, #7]
8007050: 4a77 ldr r2, [pc, #476] ; (8007230 <DrawChannel_4+0x644>)
8007052: 015b lsls r3, r3, #5
8007054: 4413 add r3, r2
8007056: 3318 adds r3, #24
8007058: edd3 7a00 vldr s15, [r3]
800705c: ed9f 7a7a vldr s14, [pc, #488] ; 8007248 <DrawChannel_4+0x65c>
8007060: eef4 7ac7 vcmpe.f32 s15, s14
8007064: eef1 fa10 vmrs APSR_nzcv, fpscr
8007068: d809 bhi.n 800707e <DrawChannel_4+0x492>
{
out = pardata.amplif[ch].IKU + 1;
800706a: 79fb ldrb r3, [r7, #7]
800706c: 4a70 ldr r2, [pc, #448] ; (8007230 <DrawChannel_4+0x644>)
800706e: 015b lsls r3, r3, #5
8007070: 4413 add r3, r2
8007072: 3306 adds r3, #6
8007074: 881b ldrh r3, [r3, #0]
8007076: b29b uxth r3, r3
8007078: 3301 adds r3, #1
800707a: 62fb str r3, [r7, #44] ; 0x2c
800707c: e257 b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 0.0021f && */pardata.amplif[ch].SENS <= 0.0050f) //0.005
800707e: 79fb ldrb r3, [r7, #7]
8007080: 4a6b ldr r2, [pc, #428] ; (8007230 <DrawChannel_4+0x644>)
8007082: 015b lsls r3, r3, #5
8007084: 4413 add r3, r2
8007086: 3318 adds r3, #24
8007088: edd3 7a00 vldr s15, [r3]
800708c: ed9f 7a6f vldr s14, [pc, #444] ; 800724c <DrawChannel_4+0x660>
8007090: eef4 7ac7 vcmpe.f32 s15, s14
8007094: eef1 fa10 vmrs APSR_nzcv, fpscr
8007098: d809 bhi.n 80070ae <DrawChannel_4+0x4c2>
{
out = pardata.amplif[ch].IKU + 2;
800709a: 79fb ldrb r3, [r7, #7]
800709c: 4a64 ldr r2, [pc, #400] ; (8007230 <DrawChannel_4+0x644>)
800709e: 015b lsls r3, r3, #5
80070a0: 4413 add r3, r2
80070a2: 3306 adds r3, #6
80070a4: 881b ldrh r3, [r3, #0]
80070a6: b29b uxth r3, r3
80070a8: 3302 adds r3, #2
80070aa: 62fb str r3, [r7, #44] ; 0x2c
80070ac: e23f b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 0.0051f && */pardata.amplif[ch].SENS <= 0.0100f) //0.01
80070ae: 79fb ldrb r3, [r7, #7]
80070b0: 4a5f ldr r2, [pc, #380] ; (8007230 <DrawChannel_4+0x644>)
80070b2: 015b lsls r3, r3, #5
80070b4: 4413 add r3, r2
80070b6: 3318 adds r3, #24
80070b8: edd3 7a00 vldr s15, [r3]
80070bc: ed9f 7a64 vldr s14, [pc, #400] ; 8007250 <DrawChannel_4+0x664>
80070c0: eef4 7ac7 vcmpe.f32 s15, s14
80070c4: eef1 fa10 vmrs APSR_nzcv, fpscr
80070c8: d809 bhi.n 80070de <DrawChannel_4+0x4f2>
{
out = pardata.amplif[ch].IKU + 3;
80070ca: 79fb ldrb r3, [r7, #7]
80070cc: 4a58 ldr r2, [pc, #352] ; (8007230 <DrawChannel_4+0x644>)
80070ce: 015b lsls r3, r3, #5
80070d0: 4413 add r3, r2
80070d2: 3306 adds r3, #6
80070d4: 881b ldrh r3, [r3, #0]
80070d6: b29b uxth r3, r3
80070d8: 3303 adds r3, #3
80070da: 62fb str r3, [r7, #44] ; 0x2c
80070dc: e227 b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 0.0101f && */pardata.amplif[ch].SENS <= 0.0200f) //0.02
80070de: 79fb ldrb r3, [r7, #7]
80070e0: 4a53 ldr r2, [pc, #332] ; (8007230 <DrawChannel_4+0x644>)
80070e2: 015b lsls r3, r3, #5
80070e4: 4413 add r3, r2
80070e6: 3318 adds r3, #24
80070e8: edd3 7a00 vldr s15, [r3]
80070ec: ed9f 7a59 vldr s14, [pc, #356] ; 8007254 <DrawChannel_4+0x668>
80070f0: eef4 7ac7 vcmpe.f32 s15, s14
80070f4: eef1 fa10 vmrs APSR_nzcv, fpscr
80070f8: d809 bhi.n 800710e <DrawChannel_4+0x522>
{
out = pardata.amplif[ch].IKU + 4;
80070fa: 79fb ldrb r3, [r7, #7]
80070fc: 4a4c ldr r2, [pc, #304] ; (8007230 <DrawChannel_4+0x644>)
80070fe: 015b lsls r3, r3, #5
8007100: 4413 add r3, r2
8007102: 3306 adds r3, #6
8007104: 881b ldrh r3, [r3, #0]
8007106: b29b uxth r3, r3
8007108: 3304 adds r3, #4
800710a: 62fb str r3, [r7, #44] ; 0x2c
800710c: e20f b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 0.0201f && */pardata.amplif[ch].SENS <= 0.0500f) //0.05
800710e: 79fb ldrb r3, [r7, #7]
8007110: 4a47 ldr r2, [pc, #284] ; (8007230 <DrawChannel_4+0x644>)
8007112: 015b lsls r3, r3, #5
8007114: 4413 add r3, r2
8007116: 3318 adds r3, #24
8007118: edd3 7a00 vldr s15, [r3]
800711c: ed9f 7a4e vldr s14, [pc, #312] ; 8007258 <DrawChannel_4+0x66c>
8007120: eef4 7ac7 vcmpe.f32 s15, s14
8007124: eef1 fa10 vmrs APSR_nzcv, fpscr
8007128: d809 bhi.n 800713e <DrawChannel_4+0x552>
{
out = pardata.amplif[ch].IKU + 5;
800712a: 79fb ldrb r3, [r7, #7]
800712c: 4a40 ldr r2, [pc, #256] ; (8007230 <DrawChannel_4+0x644>)
800712e: 015b lsls r3, r3, #5
8007130: 4413 add r3, r2
8007132: 3306 adds r3, #6
8007134: 881b ldrh r3, [r3, #0]
8007136: b29b uxth r3, r3
8007138: 3305 adds r3, #5
800713a: 62fb str r3, [r7, #44] ; 0x2c
800713c: e1f7 b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 0.0501f && */pardata.amplif[ch].SENS <= 0.1000f) //0.1
800713e: 79fb ldrb r3, [r7, #7]
8007140: 4a3b ldr r2, [pc, #236] ; (8007230 <DrawChannel_4+0x644>)
8007142: 015b lsls r3, r3, #5
8007144: 4413 add r3, r2
8007146: 3318 adds r3, #24
8007148: edd3 7a00 vldr s15, [r3]
800714c: ed9f 7a43 vldr s14, [pc, #268] ; 800725c <DrawChannel_4+0x670>
8007150: eef4 7ac7 vcmpe.f32 s15, s14
8007154: eef1 fa10 vmrs APSR_nzcv, fpscr
8007158: d809 bhi.n 800716e <DrawChannel_4+0x582>
{
out = pardata.amplif[ch].IKU + 6;
800715a: 79fb ldrb r3, [r7, #7]
800715c: 4a34 ldr r2, [pc, #208] ; (8007230 <DrawChannel_4+0x644>)
800715e: 015b lsls r3, r3, #5
8007160: 4413 add r3, r2
8007162: 3306 adds r3, #6
8007164: 881b ldrh r3, [r3, #0]
8007166: b29b uxth r3, r3
8007168: 3306 adds r3, #6
800716a: 62fb str r3, [r7, #44] ; 0x2c
800716c: e1df b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 0.1001f && */pardata.amplif[ch].SENS <= 0.2000f) //0.2
800716e: 79fb ldrb r3, [r7, #7]
8007170: 4a2f ldr r2, [pc, #188] ; (8007230 <DrawChannel_4+0x644>)
8007172: 015b lsls r3, r3, #5
8007174: 4413 add r3, r2
8007176: 3318 adds r3, #24
8007178: edd3 7a00 vldr s15, [r3]
800717c: ed9f 7a38 vldr s14, [pc, #224] ; 8007260 <DrawChannel_4+0x674>
8007180: eef4 7ac7 vcmpe.f32 s15, s14
8007184: eef1 fa10 vmrs APSR_nzcv, fpscr
8007188: d809 bhi.n 800719e <DrawChannel_4+0x5b2>
{
out = pardata.amplif[ch].IKU + 7;
800718a: 79fb ldrb r3, [r7, #7]
800718c: 4a28 ldr r2, [pc, #160] ; (8007230 <DrawChannel_4+0x644>)
800718e: 015b lsls r3, r3, #5
8007190: 4413 add r3, r2
8007192: 3306 adds r3, #6
8007194: 881b ldrh r3, [r3, #0]
8007196: b29b uxth r3, r3
8007198: 3307 adds r3, #7
800719a: 62fb str r3, [r7, #44] ; 0x2c
800719c: e1c7 b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 0.2001f && */pardata.amplif[ch].SENS <= 0.5000f) //0.5
800719e: 79fb ldrb r3, [r7, #7]
80071a0: 4a23 ldr r2, [pc, #140] ; (8007230 <DrawChannel_4+0x644>)
80071a2: 015b lsls r3, r3, #5
80071a4: 4413 add r3, r2
80071a6: 3318 adds r3, #24
80071a8: edd3 7a00 vldr s15, [r3]
80071ac: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
80071b0: eef4 7ac7 vcmpe.f32 s15, s14
80071b4: eef1 fa10 vmrs APSR_nzcv, fpscr
80071b8: d809 bhi.n 80071ce <DrawChannel_4+0x5e2>
{
out = pardata.amplif[ch].IKU + 8;
80071ba: 79fb ldrb r3, [r7, #7]
80071bc: 4a1c ldr r2, [pc, #112] ; (8007230 <DrawChannel_4+0x644>)
80071be: 015b lsls r3, r3, #5
80071c0: 4413 add r3, r2
80071c2: 3306 adds r3, #6
80071c4: 881b ldrh r3, [r3, #0]
80071c6: b29b uxth r3, r3
80071c8: 3308 adds r3, #8
80071ca: 62fb str r3, [r7, #44] ; 0x2c
80071cc: e1af b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 0.5001f && */pardata.amplif[ch].SENS <= 1.0000f) //1
80071ce: 79fb ldrb r3, [r7, #7]
80071d0: 4a17 ldr r2, [pc, #92] ; (8007230 <DrawChannel_4+0x644>)
80071d2: 015b lsls r3, r3, #5
80071d4: 4413 add r3, r2
80071d6: 3318 adds r3, #24
80071d8: edd3 7a00 vldr s15, [r3]
80071dc: eeb7 7a00 vmov.f32 s14, #112 ; 0x3f800000 1.0
80071e0: eef4 7ac7 vcmpe.f32 s15, s14
80071e4: eef1 fa10 vmrs APSR_nzcv, fpscr
80071e8: d809 bhi.n 80071fe <DrawChannel_4+0x612>
{
out = pardata.amplif[ch].IKU + 9;
80071ea: 79fb ldrb r3, [r7, #7]
80071ec: 4a10 ldr r2, [pc, #64] ; (8007230 <DrawChannel_4+0x644>)
80071ee: 015b lsls r3, r3, #5
80071f0: 4413 add r3, r2
80071f2: 3306 adds r3, #6
80071f4: 881b ldrh r3, [r3, #0]
80071f6: b29b uxth r3, r3
80071f8: 3309 adds r3, #9
80071fa: 62fb str r3, [r7, #44] ; 0x2c
80071fc: e197 b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 1.0001f && */pardata.amplif[ch].SENS <= 2.0000f) //2
80071fe: 79fb ldrb r3, [r7, #7]
8007200: 4a0b ldr r2, [pc, #44] ; (8007230 <DrawChannel_4+0x644>)
8007202: 015b lsls r3, r3, #5
8007204: 4413 add r3, r2
8007206: 3318 adds r3, #24
8007208: edd3 7a00 vldr s15, [r3]
800720c: eeb0 7a00 vmov.f32 s14, #0 ; 0x40000000 2.0
8007210: eef4 7ac7 vcmpe.f32 s15, s14
8007214: eef1 fa10 vmrs APSR_nzcv, fpscr
8007218: d824 bhi.n 8007264 <DrawChannel_4+0x678>
{
out = pardata.amplif[ch].IKU + 10;
800721a: 79fb ldrb r3, [r7, #7]
800721c: 4a04 ldr r2, [pc, #16] ; (8007230 <DrawChannel_4+0x644>)
800721e: 015b lsls r3, r3, #5
8007220: 4413 add r3, r2
8007222: 3306 adds r3, #6
8007224: 881b ldrh r3, [r3, #0]
8007226: b29b uxth r3, r3
8007228: 330a adds r3, #10
800722a: 62fb str r3, [r7, #44] ; 0x2c
800722c: e17f b.n 800752e <DrawChannel_4+0x942>
800722e: bf00 nop
8007230: 2006b510 .word 0x2006b510
8007234: 42c80000 .word 0x42c80000
8007238: 447a0000 .word 0x447a0000
800723c: 461c4000 .word 0x461c4000
8007240: 47c35000 .word 0x47c35000
8007244: 3a83126f .word 0x3a83126f
8007248: 3b03126f .word 0x3b03126f
800724c: 3ba3d70a .word 0x3ba3d70a
8007250: 3c23d70a .word 0x3c23d70a
8007254: 3ca3d70a .word 0x3ca3d70a
8007258: 3d4ccccd .word 0x3d4ccccd
800725c: 3dcccccd .word 0x3dcccccd
8007260: 3e4ccccd .word 0x3e4ccccd
}
else
if(/*pardata.amplif[ch].SENS >= 2.0001f && */pardata.amplif[ch].SENS <= 5.0000f) //5
8007264: 79fb ldrb r3, [r7, #7]
8007266: 4a9b ldr r2, [pc, #620] ; (80074d4 <DrawChannel_4+0x8e8>)
8007268: 015b lsls r3, r3, #5
800726a: 4413 add r3, r2
800726c: 3318 adds r3, #24
800726e: edd3 7a00 vldr s15, [r3]
8007272: eeb1 7a04 vmov.f32 s14, #20 ; 0x40a00000 5.0
8007276: eef4 7ac7 vcmpe.f32 s15, s14
800727a: eef1 fa10 vmrs APSR_nzcv, fpscr
800727e: d809 bhi.n 8007294 <DrawChannel_4+0x6a8>
{
out = pardata.amplif[ch].IKU + 11;
8007280: 79fb ldrb r3, [r7, #7]
8007282: 4a94 ldr r2, [pc, #592] ; (80074d4 <DrawChannel_4+0x8e8>)
8007284: 015b lsls r3, r3, #5
8007286: 4413 add r3, r2
8007288: 3306 adds r3, #6
800728a: 881b ldrh r3, [r3, #0]
800728c: b29b uxth r3, r3
800728e: 330b adds r3, #11
8007290: 62fb str r3, [r7, #44] ; 0x2c
8007292: e14c b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 5.0001f && */pardata.amplif[ch].SENS <= 10.000f) //10
8007294: 79fb ldrb r3, [r7, #7]
8007296: 4a8f ldr r2, [pc, #572] ; (80074d4 <DrawChannel_4+0x8e8>)
8007298: 015b lsls r3, r3, #5
800729a: 4413 add r3, r2
800729c: 3318 adds r3, #24
800729e: edd3 7a00 vldr s15, [r3]
80072a2: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
80072a6: eef4 7ac7 vcmpe.f32 s15, s14
80072aa: eef1 fa10 vmrs APSR_nzcv, fpscr
80072ae: d809 bhi.n 80072c4 <DrawChannel_4+0x6d8>
{
out = pardata.amplif[ch].IKU + 12;
80072b0: 79fb ldrb r3, [r7, #7]
80072b2: 4a88 ldr r2, [pc, #544] ; (80074d4 <DrawChannel_4+0x8e8>)
80072b4: 015b lsls r3, r3, #5
80072b6: 4413 add r3, r2
80072b8: 3306 adds r3, #6
80072ba: 881b ldrh r3, [r3, #0]
80072bc: b29b uxth r3, r3
80072be: 330c adds r3, #12
80072c0: 62fb str r3, [r7, #44] ; 0x2c
80072c2: e134 b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 10.001f && */pardata.amplif[ch].SENS <= 20.000f) //20
80072c4: 79fb ldrb r3, [r7, #7]
80072c6: 4a83 ldr r2, [pc, #524] ; (80074d4 <DrawChannel_4+0x8e8>)
80072c8: 015b lsls r3, r3, #5
80072ca: 4413 add r3, r2
80072cc: 3318 adds r3, #24
80072ce: edd3 7a00 vldr s15, [r3]
80072d2: eeb3 7a04 vmov.f32 s14, #52 ; 0x41a00000 20.0
80072d6: eef4 7ac7 vcmpe.f32 s15, s14
80072da: eef1 fa10 vmrs APSR_nzcv, fpscr
80072de: d809 bhi.n 80072f4 <DrawChannel_4+0x708>
{
out = pardata.amplif[ch].IKU + 13;
80072e0: 79fb ldrb r3, [r7, #7]
80072e2: 4a7c ldr r2, [pc, #496] ; (80074d4 <DrawChannel_4+0x8e8>)
80072e4: 015b lsls r3, r3, #5
80072e6: 4413 add r3, r2
80072e8: 3306 adds r3, #6
80072ea: 881b ldrh r3, [r3, #0]
80072ec: b29b uxth r3, r3
80072ee: 330d adds r3, #13
80072f0: 62fb str r3, [r7, #44] ; 0x2c
80072f2: e11c b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 20.001f && */pardata.amplif[ch].SENS <= 50.000f) //50
80072f4: 79fb ldrb r3, [r7, #7]
80072f6: 4a77 ldr r2, [pc, #476] ; (80074d4 <DrawChannel_4+0x8e8>)
80072f8: 015b lsls r3, r3, #5
80072fa: 4413 add r3, r2
80072fc: 3318 adds r3, #24
80072fe: edd3 7a00 vldr s15, [r3]
8007302: ed9f 7a75 vldr s14, [pc, #468] ; 80074d8 <DrawChannel_4+0x8ec>
8007306: eef4 7ac7 vcmpe.f32 s15, s14
800730a: eef1 fa10 vmrs APSR_nzcv, fpscr
800730e: d809 bhi.n 8007324 <DrawChannel_4+0x738>
{
out = pardata.amplif[ch].IKU + 14;
8007310: 79fb ldrb r3, [r7, #7]
8007312: 4a70 ldr r2, [pc, #448] ; (80074d4 <DrawChannel_4+0x8e8>)
8007314: 015b lsls r3, r3, #5
8007316: 4413 add r3, r2
8007318: 3306 adds r3, #6
800731a: 881b ldrh r3, [r3, #0]
800731c: b29b uxth r3, r3
800731e: 330e adds r3, #14
8007320: 62fb str r3, [r7, #44] ; 0x2c
8007322: e104 b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 50.001f && */pardata.amplif[ch].SENS <= 100.00f) //100
8007324: 79fb ldrb r3, [r7, #7]
8007326: 4a6b ldr r2, [pc, #428] ; (80074d4 <DrawChannel_4+0x8e8>)
8007328: 015b lsls r3, r3, #5
800732a: 4413 add r3, r2
800732c: 3318 adds r3, #24
800732e: edd3 7a00 vldr s15, [r3]
8007332: ed9f 7a6a vldr s14, [pc, #424] ; 80074dc <DrawChannel_4+0x8f0>
8007336: eef4 7ac7 vcmpe.f32 s15, s14
800733a: eef1 fa10 vmrs APSR_nzcv, fpscr
800733e: d809 bhi.n 8007354 <DrawChannel_4+0x768>
{
out = pardata.amplif[ch].IKU + 15;
8007340: 79fb ldrb r3, [r7, #7]
8007342: 4a64 ldr r2, [pc, #400] ; (80074d4 <DrawChannel_4+0x8e8>)
8007344: 015b lsls r3, r3, #5
8007346: 4413 add r3, r2
8007348: 3306 adds r3, #6
800734a: 881b ldrh r3, [r3, #0]
800734c: b29b uxth r3, r3
800734e: 330f adds r3, #15
8007350: 62fb str r3, [r7, #44] ; 0x2c
8007352: e0ec b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 100.01f && */pardata.amplif[ch].SENS <= 200.00f) //200
8007354: 79fb ldrb r3, [r7, #7]
8007356: 4a5f ldr r2, [pc, #380] ; (80074d4 <DrawChannel_4+0x8e8>)
8007358: 015b lsls r3, r3, #5
800735a: 4413 add r3, r2
800735c: 3318 adds r3, #24
800735e: edd3 7a00 vldr s15, [r3]
8007362: ed9f 7a5f vldr s14, [pc, #380] ; 80074e0 <DrawChannel_4+0x8f4>
8007366: eef4 7ac7 vcmpe.f32 s15, s14
800736a: eef1 fa10 vmrs APSR_nzcv, fpscr
800736e: d809 bhi.n 8007384 <DrawChannel_4+0x798>
{
out = pardata.amplif[ch].IKU + 16;
8007370: 79fb ldrb r3, [r7, #7]
8007372: 4a58 ldr r2, [pc, #352] ; (80074d4 <DrawChannel_4+0x8e8>)
8007374: 015b lsls r3, r3, #5
8007376: 4413 add r3, r2
8007378: 3306 adds r3, #6
800737a: 881b ldrh r3, [r3, #0]
800737c: b29b uxth r3, r3
800737e: 3310 adds r3, #16
8007380: 62fb str r3, [r7, #44] ; 0x2c
8007382: e0d4 b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 200.01f && */pardata.amplif[ch].SENS <= 500.00f) //500
8007384: 79fb ldrb r3, [r7, #7]
8007386: 4a53 ldr r2, [pc, #332] ; (80074d4 <DrawChannel_4+0x8e8>)
8007388: 015b lsls r3, r3, #5
800738a: 4413 add r3, r2
800738c: 3318 adds r3, #24
800738e: edd3 7a00 vldr s15, [r3]
8007392: ed9f 7a54 vldr s14, [pc, #336] ; 80074e4 <DrawChannel_4+0x8f8>
8007396: eef4 7ac7 vcmpe.f32 s15, s14
800739a: eef1 fa10 vmrs APSR_nzcv, fpscr
800739e: d809 bhi.n 80073b4 <DrawChannel_4+0x7c8>
{
out = pardata.amplif[ch].IKU + 17;
80073a0: 79fb ldrb r3, [r7, #7]
80073a2: 4a4c ldr r2, [pc, #304] ; (80074d4 <DrawChannel_4+0x8e8>)
80073a4: 015b lsls r3, r3, #5
80073a6: 4413 add r3, r2
80073a8: 3306 adds r3, #6
80073aa: 881b ldrh r3, [r3, #0]
80073ac: b29b uxth r3, r3
80073ae: 3311 adds r3, #17
80073b0: 62fb str r3, [r7, #44] ; 0x2c
80073b2: e0bc b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 500.01f && */pardata.amplif[ch].SENS <= 1000.0f) //1000
80073b4: 79fb ldrb r3, [r7, #7]
80073b6: 4a47 ldr r2, [pc, #284] ; (80074d4 <DrawChannel_4+0x8e8>)
80073b8: 015b lsls r3, r3, #5
80073ba: 4413 add r3, r2
80073bc: 3318 adds r3, #24
80073be: edd3 7a00 vldr s15, [r3]
80073c2: ed9f 7a49 vldr s14, [pc, #292] ; 80074e8 <DrawChannel_4+0x8fc>
80073c6: eef4 7ac7 vcmpe.f32 s15, s14
80073ca: eef1 fa10 vmrs APSR_nzcv, fpscr
80073ce: d809 bhi.n 80073e4 <DrawChannel_4+0x7f8>
{
out = pardata.amplif[ch].IKU + 18;
80073d0: 79fb ldrb r3, [r7, #7]
80073d2: 4a40 ldr r2, [pc, #256] ; (80074d4 <DrawChannel_4+0x8e8>)
80073d4: 015b lsls r3, r3, #5
80073d6: 4413 add r3, r2
80073d8: 3306 adds r3, #6
80073da: 881b ldrh r3, [r3, #0]
80073dc: b29b uxth r3, r3
80073de: 3312 adds r3, #18
80073e0: 62fb str r3, [r7, #44] ; 0x2c
80073e2: e0a4 b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 1000.1f && */pardata.amplif[ch].SENS <= 2000.0f) //2000
80073e4: 79fb ldrb r3, [r7, #7]
80073e6: 4a3b ldr r2, [pc, #236] ; (80074d4 <DrawChannel_4+0x8e8>)
80073e8: 015b lsls r3, r3, #5
80073ea: 4413 add r3, r2
80073ec: 3318 adds r3, #24
80073ee: edd3 7a00 vldr s15, [r3]
80073f2: ed9f 7a3e vldr s14, [pc, #248] ; 80074ec <DrawChannel_4+0x900>
80073f6: eef4 7ac7 vcmpe.f32 s15, s14
80073fa: eef1 fa10 vmrs APSR_nzcv, fpscr
80073fe: d809 bhi.n 8007414 <DrawChannel_4+0x828>
{
out = pardata.amplif[ch].IKU + 19;
8007400: 79fb ldrb r3, [r7, #7]
8007402: 4a34 ldr r2, [pc, #208] ; (80074d4 <DrawChannel_4+0x8e8>)
8007404: 015b lsls r3, r3, #5
8007406: 4413 add r3, r2
8007408: 3306 adds r3, #6
800740a: 881b ldrh r3, [r3, #0]
800740c: b29b uxth r3, r3
800740e: 3313 adds r3, #19
8007410: 62fb str r3, [r7, #44] ; 0x2c
8007412: e08c b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 2000.1f && */pardata.amplif[ch].SENS <= 5000.0f) //2000
8007414: 79fb ldrb r3, [r7, #7]
8007416: 4a2f ldr r2, [pc, #188] ; (80074d4 <DrawChannel_4+0x8e8>)
8007418: 015b lsls r3, r3, #5
800741a: 4413 add r3, r2
800741c: 3318 adds r3, #24
800741e: edd3 7a00 vldr s15, [r3]
8007422: ed9f 7a33 vldr s14, [pc, #204] ; 80074f0 <DrawChannel_4+0x904>
8007426: eef4 7ac7 vcmpe.f32 s15, s14
800742a: eef1 fa10 vmrs APSR_nzcv, fpscr
800742e: d809 bhi.n 8007444 <DrawChannel_4+0x858>
{
out = pardata.amplif[ch].IKU + 20;
8007430: 79fb ldrb r3, [r7, #7]
8007432: 4a28 ldr r2, [pc, #160] ; (80074d4 <DrawChannel_4+0x8e8>)
8007434: 015b lsls r3, r3, #5
8007436: 4413 add r3, r2
8007438: 3306 adds r3, #6
800743a: 881b ldrh r3, [r3, #0]
800743c: b29b uxth r3, r3
800743e: 3314 adds r3, #20
8007440: 62fb str r3, [r7, #44] ; 0x2c
8007442: e074 b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 5000.1f && */pardata.amplif[ch].SENS <= 10000.0f) //10000
8007444: 79fb ldrb r3, [r7, #7]
8007446: 4a23 ldr r2, [pc, #140] ; (80074d4 <DrawChannel_4+0x8e8>)
8007448: 015b lsls r3, r3, #5
800744a: 4413 add r3, r2
800744c: 3318 adds r3, #24
800744e: edd3 7a00 vldr s15, [r3]
8007452: ed9f 7a28 vldr s14, [pc, #160] ; 80074f4 <DrawChannel_4+0x908>
8007456: eef4 7ac7 vcmpe.f32 s15, s14
800745a: eef1 fa10 vmrs APSR_nzcv, fpscr
800745e: d809 bhi.n 8007474 <DrawChannel_4+0x888>
{
out = pardata.amplif[ch].IKU + 21;
8007460: 79fb ldrb r3, [r7, #7]
8007462: 4a1c ldr r2, [pc, #112] ; (80074d4 <DrawChannel_4+0x8e8>)
8007464: 015b lsls r3, r3, #5
8007466: 4413 add r3, r2
8007468: 3306 adds r3, #6
800746a: 881b ldrh r3, [r3, #0]
800746c: b29b uxth r3, r3
800746e: 3315 adds r3, #21
8007470: 62fb str r3, [r7, #44] ; 0x2c
8007472: e05c b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 10001 && */pardata.amplif[ch].SENS <= 20000.0f) //20000
8007474: 79fb ldrb r3, [r7, #7]
8007476: 4a17 ldr r2, [pc, #92] ; (80074d4 <DrawChannel_4+0x8e8>)
8007478: 015b lsls r3, r3, #5
800747a: 4413 add r3, r2
800747c: 3318 adds r3, #24
800747e: edd3 7a00 vldr s15, [r3]
8007482: ed9f 7a1d vldr s14, [pc, #116] ; 80074f8 <DrawChannel_4+0x90c>
8007486: eef4 7ac7 vcmpe.f32 s15, s14
800748a: eef1 fa10 vmrs APSR_nzcv, fpscr
800748e: d809 bhi.n 80074a4 <DrawChannel_4+0x8b8>
{
out = pardata.amplif[ch].IKU + 22;
8007490: 79fb ldrb r3, [r7, #7]
8007492: 4a10 ldr r2, [pc, #64] ; (80074d4 <DrawChannel_4+0x8e8>)
8007494: 015b lsls r3, r3, #5
8007496: 4413 add r3, r2
8007498: 3306 adds r3, #6
800749a: 881b ldrh r3, [r3, #0]
800749c: b29b uxth r3, r3
800749e: 3316 adds r3, #22
80074a0: 62fb str r3, [r7, #44] ; 0x2c
80074a2: e044 b.n 800752e <DrawChannel_4+0x942>
}
else
if(/*pardata.amplif[ch].SENS >= 20001 && */pardata.amplif[ch].SENS <= 50000.0f) //50000
80074a4: 79fb ldrb r3, [r7, #7]
80074a6: 4a0b ldr r2, [pc, #44] ; (80074d4 <DrawChannel_4+0x8e8>)
80074a8: 015b lsls r3, r3, #5
80074aa: 4413 add r3, r2
80074ac: 3318 adds r3, #24
80074ae: edd3 7a00 vldr s15, [r3]
80074b2: ed9f 7a12 vldr s14, [pc, #72] ; 80074fc <DrawChannel_4+0x910>
80074b6: eef4 7ac7 vcmpe.f32 s15, s14
80074ba: eef1 fa10 vmrs APSR_nzcv, fpscr
80074be: d81f bhi.n 8007500 <DrawChannel_4+0x914>
{
out = pardata.amplif[ch].IKU + 23;
80074c0: 79fb ldrb r3, [r7, #7]
80074c2: 4a04 ldr r2, [pc, #16] ; (80074d4 <DrawChannel_4+0x8e8>)
80074c4: 015b lsls r3, r3, #5
80074c6: 4413 add r3, r2
80074c8: 3306 adds r3, #6
80074ca: 881b ldrh r3, [r3, #0]
80074cc: b29b uxth r3, r3
80074ce: 3317 adds r3, #23
80074d0: 62fb str r3, [r7, #44] ; 0x2c
80074d2: e02c b.n 800752e <DrawChannel_4+0x942>
80074d4: 2006b510 .word 0x2006b510
80074d8: 42480000 .word 0x42480000
80074dc: 42c80000 .word 0x42c80000
80074e0: 43480000 .word 0x43480000
80074e4: 43fa0000 .word 0x43fa0000
80074e8: 447a0000 .word 0x447a0000
80074ec: 44fa0000 .word 0x44fa0000
80074f0: 459c4000 .word 0x459c4000
80074f4: 461c4000 .word 0x461c4000
80074f8: 469c4000 .word 0x469c4000
80074fc: 47435000 .word 0x47435000
}
else
if(/*pardata.amplif[ch].SENS >= 50001 && */pardata.amplif[ch].SENS <= 100000) //100000
8007500: 79fb ldrb r3, [r7, #7]
8007502: 4a7e ldr r2, [pc, #504] ; (80076fc <DrawChannel_4+0xb10>)
8007504: 015b lsls r3, r3, #5
8007506: 4413 add r3, r2
8007508: 3318 adds r3, #24
800750a: edd3 7a00 vldr s15, [r3]
800750e: ed9f 7a7c vldr s14, [pc, #496] ; 8007700 <DrawChannel_4+0xb14>
8007512: eef4 7ac7 vcmpe.f32 s15, s14
8007516: eef1 fa10 vmrs APSR_nzcv, fpscr
800751a: d808 bhi.n 800752e <DrawChannel_4+0x942>
{
out = pardata.amplif[ch].IKU + 24;
800751c: 79fb ldrb r3, [r7, #7]
800751e: 4a77 ldr r2, [pc, #476] ; (80076fc <DrawChannel_4+0xb10>)
8007520: 015b lsls r3, r3, #5
8007522: 4413 add r3, r2
8007524: 3306 adds r3, #6
8007526: 881b ldrh r3, [r3, #0]
8007528: b29b uxth r3, r3
800752a: 3318 adds r3, #24
800752c: 62fb str r3, [r7, #44] ; 0x2c
}
if(menupos == Input)
800752e: 4b75 ldr r3, [pc, #468] ; (8007704 <DrawChannel_4+0xb18>)
8007530: 781b ldrb r3, [r3, #0]
8007532: b2db uxtb r3, r3
8007534: 2b00 cmp r3, #0
8007536: f040 81ba bne.w 80078ae <DrawChannel_4+0xcc2>
{
if(ACTIVE_CHANNEL == ch)
800753a: 79fa ldrb r2, [r7, #7]
800753c: 4b72 ldr r3, [pc, #456] ; (8007708 <DrawChannel_4+0xb1c>)
800753e: 681b ldr r3, [r3, #0]
8007540: 429a cmp r2, r3
8007542: f040 8105 bne.w 8007750 <DrawChannel_4+0xb64>
{
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8007546: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800754a: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800754e: f7fc ffd3 bl 80044f8 <LCD_SetColors>
if(focused)
8007552: 4b6e ldr r3, [pc, #440] ; (800770c <DrawChannel_4+0xb20>)
8007554: 781b ldrb r3, [r3, #0]
8007556: b2db uxtb r3, r3
8007558: 2b00 cmp r3, #0
800755a: d01f beq.n 800759c <DrawChannel_4+0x9b0>
{
if(blk)
800755c: 683b ldr r3, [r7, #0]
800755e: 2b00 cmp r3, #0
8007560: d038 beq.n 80075d4 <DrawChannel_4+0x9e8>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
8007562: 79fb ldrb r3, [r7, #7]
8007564: 4a6a ldr r2, [pc, #424] ; (8007710 <DrawChannel_4+0xb24>)
8007566: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800756a: 79fb ldrb r3, [r7, #7]
800756c: 4a69 ldr r2, [pc, #420] ; (8007714 <DrawChannel_4+0xb28>)
800756e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8007572: 4b62 ldr r3, [pc, #392] ; (80076fc <DrawChannel_4+0xb10>)
8007574: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007578: b29b uxth r3, r3
800757a: 461d mov r5, r3
800757c: 79fb ldrb r3, [r7, #7]
800757e: 4a5f ldr r2, [pc, #380] ; (80076fc <DrawChannel_4+0xb10>)
8007580: 015b lsls r3, r3, #5
8007582: 4413 add r3, r2
8007584: 881b ldrh r3, [r3, #0]
8007586: b29b uxth r3, r3
8007588: 461c mov r4, r3
800758a: 4a63 ldr r2, [pc, #396] ; (8007718 <DrawChannel_4+0xb2c>)
800758c: 006b lsls r3, r5, #1
800758e: 4423 add r3, r4
8007590: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8007594: 2303 movs r3, #3
8007596: f7fd f875 bl 8004684 <BSP_LCD_DisplayStringAt>
800759a: e01b b.n 80075d4 <DrawChannel_4+0x9e8>
}
else
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
800759c: 79fb ldrb r3, [r7, #7]
800759e: 4a5c ldr r2, [pc, #368] ; (8007710 <DrawChannel_4+0xb24>)
80075a0: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80075a4: 79fb ldrb r3, [r7, #7]
80075a6: 4a5b ldr r2, [pc, #364] ; (8007714 <DrawChannel_4+0xb28>)
80075a8: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80075ac: 4b53 ldr r3, [pc, #332] ; (80076fc <DrawChannel_4+0xb10>)
80075ae: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80075b2: b29b uxth r3, r3
80075b4: 461d mov r5, r3
80075b6: 79fb ldrb r3, [r7, #7]
80075b8: 4a50 ldr r2, [pc, #320] ; (80076fc <DrawChannel_4+0xb10>)
80075ba: 015b lsls r3, r3, #5
80075bc: 4413 add r3, r2
80075be: 881b ldrh r3, [r3, #0]
80075c0: b29b uxth r3, r3
80075c2: 461c mov r4, r3
80075c4: 4a54 ldr r2, [pc, #336] ; (8007718 <DrawChannel_4+0xb2c>)
80075c6: 006b lsls r3, r5, #1
80075c8: 4423 add r3, r4
80075ca: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80075ce: 2303 movs r3, #3
80075d0: f7fd f858 bl 8004684 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
80075d4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80075d8: 4850 ldr r0, [pc, #320] ; (800771c <DrawChannel_4+0xb30>)
80075da: f7fc ff8d bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
80075de: 79fb ldrb r3, [r7, #7]
80075e0: 4a4f ldr r2, [pc, #316] ; (8007720 <DrawChannel_4+0xb34>)
80075e2: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80075e6: 79fb ldrb r3, [r7, #7]
80075e8: 4a4e ldr r2, [pc, #312] ; (8007724 <DrawChannel_4+0xb38>)
80075ea: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
80075ee: 4b43 ldr r3, [pc, #268] ; (80076fc <DrawChannel_4+0xb10>)
80075f0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80075f4: b29b uxth r3, r3
80075f6: 4619 mov r1, r3
80075f8: 79fb ldrb r3, [r7, #7]
80075fa: 4a40 ldr r2, [pc, #256] ; (80076fc <DrawChannel_4+0xb10>)
80075fc: 015b lsls r3, r3, #5
80075fe: 4413 add r3, r2
8007600: 3302 adds r3, #2
8007602: 881b ldrh r3, [r3, #0]
8007604: b29b uxth r3, r3
8007606: 461d mov r5, r3
8007608: 4a47 ldr r2, [pc, #284] ; (8007728 <DrawChannel_4+0xb3c>)
800760a: 460b mov r3, r1
800760c: 009b lsls r3, r3, #2
800760e: 440b add r3, r1
8007610: 442b add r3, r5
8007612: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8007616: 2303 movs r3, #3
8007618: 4621 mov r1, r4
800761a: f7fd f833 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800761e: 79fb ldrb r3, [r7, #7]
8007620: 4a42 ldr r2, [pc, #264] ; (800772c <DrawChannel_4+0xb40>)
8007622: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007626: 79fb ldrb r3, [r7, #7]
8007628: 4a41 ldr r2, [pc, #260] ; (8007730 <DrawChannel_4+0xb44>)
800762a: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800762e: 4b33 ldr r3, [pc, #204] ; (80076fc <DrawChannel_4+0xb10>)
8007630: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007634: b29b uxth r3, r3
8007636: 461d mov r5, r3
8007638: 79fb ldrb r3, [r7, #7]
800763a: 4a30 ldr r2, [pc, #192] ; (80076fc <DrawChannel_4+0xb10>)
800763c: 015b lsls r3, r3, #5
800763e: 4413 add r3, r2
8007640: 3304 adds r3, #4
8007642: 881b ldrh r3, [r3, #0]
8007644: b29b uxth r3, r3
8007646: 461c mov r4, r3
8007648: 4a3a ldr r2, [pc, #232] ; (8007734 <DrawChannel_4+0xb48>)
800764a: 00eb lsls r3, r5, #3
800764c: 4423 add r3, r4
800764e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8007652: 2303 movs r3, #3
8007654: f7fd f816 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens
8007658: 79fb ldrb r3, [r7, #7]
800765a: 4a37 ldr r2, [pc, #220] ; (8007738 <DrawChannel_4+0xb4c>)
800765c: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007660: 79fb ldrb r3, [r7, #7]
8007662: 4a36 ldr r2, [pc, #216] ; (800773c <DrawChannel_4+0xb50>)
8007664: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8007668: f107 0208 add.w r2, r7, #8
800766c: 2303 movs r3, #3
800766e: f7fd f809 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
8007672: 79fb ldrb r3, [r7, #7]
8007674: 4a30 ldr r2, [pc, #192] ; (8007738 <DrawChannel_4+0xb4c>)
8007676: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800767a: 332d adds r3, #45 ; 0x2d
800767c: b298 uxth r0, r3
800767e: 79fb ldrb r3, [r7, #7]
8007680: 4a2e ldr r2, [pc, #184] ; (800773c <DrawChannel_4+0xb50>)
8007682: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8007686: 79fb ldrb r3, [r7, #7]
8007688: 4a1c ldr r2, [pc, #112] ; (80076fc <DrawChannel_4+0xb10>)
800768a: 015b lsls r3, r3, #5
800768c: 4413 add r3, r2
800768e: 881b ldrh r3, [r3, #0]
8007690: b29b uxth r3, r3
8007692: 4619 mov r1, r3
8007694: 79fb ldrb r3, [r7, #7]
8007696: 4a19 ldr r2, [pc, #100] ; (80076fc <DrawChannel_4+0xb10>)
8007698: 015b lsls r3, r3, #5
800769a: 4413 add r3, r2
800769c: 3312 adds r3, #18
800769e: 881b ldrh r3, [r3, #0]
80076a0: b29b uxth r3, r3
80076a2: 461d mov r5, r3
80076a4: 4a26 ldr r2, [pc, #152] ; (8007740 <DrawChannel_4+0xb54>)
80076a6: 460b mov r3, r1
80076a8: 005b lsls r3, r3, #1
80076aa: 440b add r3, r1
80076ac: 442b add r3, r5
80076ae: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80076b2: 2303 movs r3, #3
80076b4: 4621 mov r1, r4
80076b6: f7fc ffe5 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
80076ba: 79fb ldrb r3, [r7, #7]
80076bc: 4a21 ldr r2, [pc, #132] ; (8007744 <DrawChannel_4+0xb58>)
80076be: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80076c2: 79fb ldrb r3, [r7, #7]
80076c4: 4a20 ldr r2, [pc, #128] ; (8007748 <DrawChannel_4+0xb5c>)
80076c6: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
80076ca: 79fb ldrb r3, [r7, #7]
80076cc: 4a0b ldr r2, [pc, #44] ; (80076fc <DrawChannel_4+0xb10>)
80076ce: 015b lsls r3, r3, #5
80076d0: 4413 add r3, r2
80076d2: 3312 adds r3, #18
80076d4: 881b ldrh r3, [r3, #0]
80076d6: b29b uxth r3, r3
80076d8: 461a mov r2, r3
80076da: 491c ldr r1, [pc, #112] ; (800774c <DrawChannel_4+0xb60>)
80076dc: 4613 mov r3, r2
80076de: 009b lsls r3, r3, #2
80076e0: 4413 add r3, r2
80076e2: 009a lsls r2, r3, #2
80076e4: 4413 add r3, r2
80076e6: 6afa ldr r2, [r7, #44] ; 0x2c
80076e8: 4413 add r3, r2
80076ea: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80076ee: 2303 movs r3, #3
80076f0: 4621 mov r1, r4
80076f2: f7fc ffc7 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
}
}
}
80076f6: f003 bfb8 b.w 800b66a <DrawChannel_4+0x4a7e>
80076fa: bf00 nop
80076fc: 2006b510 .word 0x2006b510
8007700: 47c35000 .word 0x47c35000
8007704: 20020010 .word 0x20020010
8007708: 2006b2d0 .word 0x2006b2d0
800770c: 20020250 .word 0x20020250
8007710: 08015534 .word 0x08015534
8007714: 0801553c .word 0x0801553c
8007718: 20020030 .word 0x20020030
800771c: ffd8aa57 .word 0xffd8aa57
8007720: 08015544 .word 0x08015544
8007724: 0801554c .word 0x0801554c
8007728: 20020040 .word 0x20020040
800772c: 08015554 .word 0x08015554
8007730: 0801555c .word 0x0801555c
8007734: 20020068 .word 0x20020068
8007738: 08015564 .word 0x08015564
800773c: 0801556c .word 0x0801556c
8007740: 200200a8 .word 0x200200a8
8007744: 08015574 .word 0x08015574
8007748: 0801557c .word 0x0801557c
800774c: 200200c0 .word 0x200200c0
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8007750: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007754: 4873 ldr r0, [pc, #460] ; (8007924 <DrawChannel_4+0xd38>)
8007756: f7fc fecf bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
800775a: 79fb ldrb r3, [r7, #7]
800775c: 4a72 ldr r2, [pc, #456] ; (8007928 <DrawChannel_4+0xd3c>)
800775e: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007762: 79fb ldrb r3, [r7, #7]
8007764: 4a71 ldr r2, [pc, #452] ; (800792c <DrawChannel_4+0xd40>)
8007766: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800776a: 4b71 ldr r3, [pc, #452] ; (8007930 <DrawChannel_4+0xd44>)
800776c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007770: b29b uxth r3, r3
8007772: 461d mov r5, r3
8007774: 79fb ldrb r3, [r7, #7]
8007776: 4a6e ldr r2, [pc, #440] ; (8007930 <DrawChannel_4+0xd44>)
8007778: 015b lsls r3, r3, #5
800777a: 4413 add r3, r2
800777c: 881b ldrh r3, [r3, #0]
800777e: b29b uxth r3, r3
8007780: 461c mov r4, r3
8007782: 4a6c ldr r2, [pc, #432] ; (8007934 <DrawChannel_4+0xd48>)
8007784: 006b lsls r3, r5, #1
8007786: 4423 add r3, r4
8007788: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800778c: 2303 movs r3, #3
800778e: f7fc ff79 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
8007792: 79fb ldrb r3, [r7, #7]
8007794: 4a68 ldr r2, [pc, #416] ; (8007938 <DrawChannel_4+0xd4c>)
8007796: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800779a: 79fb ldrb r3, [r7, #7]
800779c: 4a67 ldr r2, [pc, #412] ; (800793c <DrawChannel_4+0xd50>)
800779e: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
80077a2: 4b63 ldr r3, [pc, #396] ; (8007930 <DrawChannel_4+0xd44>)
80077a4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80077a8: b29b uxth r3, r3
80077aa: 4619 mov r1, r3
80077ac: 79fb ldrb r3, [r7, #7]
80077ae: 4a60 ldr r2, [pc, #384] ; (8007930 <DrawChannel_4+0xd44>)
80077b0: 015b lsls r3, r3, #5
80077b2: 4413 add r3, r2
80077b4: 3302 adds r3, #2
80077b6: 881b ldrh r3, [r3, #0]
80077b8: b29b uxth r3, r3
80077ba: 461d mov r5, r3
80077bc: 4a60 ldr r2, [pc, #384] ; (8007940 <DrawChannel_4+0xd54>)
80077be: 460b mov r3, r1
80077c0: 009b lsls r3, r3, #2
80077c2: 440b add r3, r1
80077c4: 442b add r3, r5
80077c6: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80077ca: 2303 movs r3, #3
80077cc: 4621 mov r1, r4
80077ce: f7fc ff59 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
80077d2: 79fb ldrb r3, [r7, #7]
80077d4: 4a5b ldr r2, [pc, #364] ; (8007944 <DrawChannel_4+0xd58>)
80077d6: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80077da: 79fb ldrb r3, [r7, #7]
80077dc: 4a5a ldr r2, [pc, #360] ; (8007948 <DrawChannel_4+0xd5c>)
80077de: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80077e2: 4b53 ldr r3, [pc, #332] ; (8007930 <DrawChannel_4+0xd44>)
80077e4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80077e8: b29b uxth r3, r3
80077ea: 461d mov r5, r3
80077ec: 79fb ldrb r3, [r7, #7]
80077ee: 4a50 ldr r2, [pc, #320] ; (8007930 <DrawChannel_4+0xd44>)
80077f0: 015b lsls r3, r3, #5
80077f2: 4413 add r3, r2
80077f4: 3304 adds r3, #4
80077f6: 881b ldrh r3, [r3, #0]
80077f8: b29b uxth r3, r3
80077fa: 461c mov r4, r3
80077fc: 4a53 ldr r2, [pc, #332] ; (800794c <DrawChannel_4+0xd60>)
80077fe: 00eb lsls r3, r5, #3
8007800: 4423 add r3, r4
8007802: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8007806: 2303 movs r3, #3
8007808: f7fc ff3c bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens
800780c: 79fb ldrb r3, [r7, #7]
800780e: 4a50 ldr r2, [pc, #320] ; (8007950 <DrawChannel_4+0xd64>)
8007810: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007814: 79fb ldrb r3, [r7, #7]
8007816: 4a4f ldr r2, [pc, #316] ; (8007954 <DrawChannel_4+0xd68>)
8007818: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800781c: f107 0208 add.w r2, r7, #8
8007820: 2303 movs r3, #3
8007822: f7fc ff2f bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
8007826: 79fb ldrb r3, [r7, #7]
8007828: 4a49 ldr r2, [pc, #292] ; (8007950 <DrawChannel_4+0xd64>)
800782a: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800782e: 332d adds r3, #45 ; 0x2d
8007830: b298 uxth r0, r3
8007832: 79fb ldrb r3, [r7, #7]
8007834: 4a47 ldr r2, [pc, #284] ; (8007954 <DrawChannel_4+0xd68>)
8007836: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800783a: 79fb ldrb r3, [r7, #7]
800783c: 4a3c ldr r2, [pc, #240] ; (8007930 <DrawChannel_4+0xd44>)
800783e: 015b lsls r3, r3, #5
8007840: 4413 add r3, r2
8007842: 881b ldrh r3, [r3, #0]
8007844: b29b uxth r3, r3
8007846: 4619 mov r1, r3
8007848: 79fb ldrb r3, [r7, #7]
800784a: 4a39 ldr r2, [pc, #228] ; (8007930 <DrawChannel_4+0xd44>)
800784c: 015b lsls r3, r3, #5
800784e: 4413 add r3, r2
8007850: 3312 adds r3, #18
8007852: 881b ldrh r3, [r3, #0]
8007854: b29b uxth r3, r3
8007856: 461d mov r5, r3
8007858: 4a3f ldr r2, [pc, #252] ; (8007958 <DrawChannel_4+0xd6c>)
800785a: 460b mov r3, r1
800785c: 005b lsls r3, r3, #1
800785e: 440b add r3, r1
8007860: 442b add r3, r5
8007862: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8007866: 2303 movs r3, #3
8007868: 4621 mov r1, r4
800786a: f7fc ff0b bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800786e: 79fb ldrb r3, [r7, #7]
8007870: 4a3a ldr r2, [pc, #232] ; (800795c <DrawChannel_4+0xd70>)
8007872: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007876: 79fb ldrb r3, [r7, #7]
8007878: 4a39 ldr r2, [pc, #228] ; (8007960 <DrawChannel_4+0xd74>)
800787a: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800787e: 79fb ldrb r3, [r7, #7]
8007880: 4a2b ldr r2, [pc, #172] ; (8007930 <DrawChannel_4+0xd44>)
8007882: 015b lsls r3, r3, #5
8007884: 4413 add r3, r2
8007886: 3312 adds r3, #18
8007888: 881b ldrh r3, [r3, #0]
800788a: b29b uxth r3, r3
800788c: 461a mov r2, r3
800788e: 4935 ldr r1, [pc, #212] ; (8007964 <DrawChannel_4+0xd78>)
8007890: 4613 mov r3, r2
8007892: 009b lsls r3, r3, #2
8007894: 4413 add r3, r2
8007896: 009a lsls r2, r3, #2
8007898: 4413 add r3, r2
800789a: 6afa ldr r2, [r7, #44] ; 0x2c
800789c: 4413 add r3, r2
800789e: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80078a2: 2303 movs r3, #3
80078a4: 4621 mov r1, r4
80078a6: f7fc feed bl 8004684 <BSP_LCD_DisplayStringAt>
}
80078aa: f003 bede b.w 800b66a <DrawChannel_4+0x4a7e>
if(menupos == Hp)
80078ae: 4b2e ldr r3, [pc, #184] ; (8007968 <DrawChannel_4+0xd7c>)
80078b0: 781b ldrb r3, [r3, #0]
80078b2: b2db uxtb r3, r3
80078b4: 2b01 cmp r3, #1
80078b6: f040 81dd bne.w 8007c74 <DrawChannel_4+0x1088>
if(ACTIVE_CHANNEL == ch)
80078ba: 79fa ldrb r2, [r7, #7]
80078bc: 4b2b ldr r3, [pc, #172] ; (800796c <DrawChannel_4+0xd80>)
80078be: 681b ldr r3, [r3, #0]
80078c0: 429a cmp r2, r3
80078c2: f040 8106 bne.w 8007ad2 <DrawChannel_4+0xee6>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
80078c6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80078ca: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
80078ce: f7fc fe13 bl 80044f8 <LCD_SetColors>
if(focused)
80078d2: 4b27 ldr r3, [pc, #156] ; (8007970 <DrawChannel_4+0xd84>)
80078d4: 781b ldrb r3, [r3, #0]
80078d6: b2db uxtb r3, r3
80078d8: 2b00 cmp r3, #0
80078da: d04b beq.n 8007974 <DrawChannel_4+0xd88>
if(blk)
80078dc: 683b ldr r3, [r7, #0]
80078de: 2b00 cmp r3, #0
80078e0: d068 beq.n 80079b4 <DrawChannel_4+0xdc8>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
80078e2: 79fb ldrb r3, [r7, #7]
80078e4: 4a14 ldr r2, [pc, #80] ; (8007938 <DrawChannel_4+0xd4c>)
80078e6: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80078ea: 79fb ldrb r3, [r7, #7]
80078ec: 4a13 ldr r2, [pc, #76] ; (800793c <DrawChannel_4+0xd50>)
80078ee: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
80078f2: 4b0f ldr r3, [pc, #60] ; (8007930 <DrawChannel_4+0xd44>)
80078f4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80078f8: b29b uxth r3, r3
80078fa: 4619 mov r1, r3
80078fc: 79fb ldrb r3, [r7, #7]
80078fe: 4a0c ldr r2, [pc, #48] ; (8007930 <DrawChannel_4+0xd44>)
8007900: 015b lsls r3, r3, #5
8007902: 4413 add r3, r2
8007904: 3302 adds r3, #2
8007906: 881b ldrh r3, [r3, #0]
8007908: b29b uxth r3, r3
800790a: 461d mov r5, r3
800790c: 4a0c ldr r2, [pc, #48] ; (8007940 <DrawChannel_4+0xd54>)
800790e: 460b mov r3, r1
8007910: 009b lsls r3, r3, #2
8007912: 440b add r3, r1
8007914: 442b add r3, r5
8007916: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800791a: 2303 movs r3, #3
800791c: 4621 mov r1, r4
800791e: f7fc feb1 bl 8004684 <BSP_LCD_DisplayStringAt>
8007922: e047 b.n 80079b4 <DrawChannel_4+0xdc8>
8007924: ffd8aa57 .word 0xffd8aa57
8007928: 08015534 .word 0x08015534
800792c: 0801553c .word 0x0801553c
8007930: 2006b510 .word 0x2006b510
8007934: 20020030 .word 0x20020030
8007938: 08015544 .word 0x08015544
800793c: 0801554c .word 0x0801554c
8007940: 20020040 .word 0x20020040
8007944: 08015554 .word 0x08015554
8007948: 0801555c .word 0x0801555c
800794c: 20020068 .word 0x20020068
8007950: 08015564 .word 0x08015564
8007954: 0801556c .word 0x0801556c
8007958: 200200a8 .word 0x200200a8
800795c: 08015574 .word 0x08015574
8007960: 0801557c .word 0x0801557c
8007964: 200200c0 .word 0x200200c0
8007968: 20020010 .word 0x20020010
800796c: 2006b2d0 .word 0x2006b2d0
8007970: 20020250 .word 0x20020250
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
8007974: 79fb ldrb r3, [r7, #7]
8007976: 4aae ldr r2, [pc, #696] ; (8007c30 <DrawChannel_4+0x1044>)
8007978: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800797c: 79fb ldrb r3, [r7, #7]
800797e: 4aad ldr r2, [pc, #692] ; (8007c34 <DrawChannel_4+0x1048>)
8007980: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8007984: 4bac ldr r3, [pc, #688] ; (8007c38 <DrawChannel_4+0x104c>)
8007986: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800798a: b29b uxth r3, r3
800798c: 4619 mov r1, r3
800798e: 79fb ldrb r3, [r7, #7]
8007990: 4aa9 ldr r2, [pc, #676] ; (8007c38 <DrawChannel_4+0x104c>)
8007992: 015b lsls r3, r3, #5
8007994: 4413 add r3, r2
8007996: 3302 adds r3, #2
8007998: 881b ldrh r3, [r3, #0]
800799a: b29b uxth r3, r3
800799c: 461d mov r5, r3
800799e: 4aa7 ldr r2, [pc, #668] ; (8007c3c <DrawChannel_4+0x1050>)
80079a0: 460b mov r3, r1
80079a2: 009b lsls r3, r3, #2
80079a4: 440b add r3, r1
80079a6: 442b add r3, r5
80079a8: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80079ac: 2303 movs r3, #3
80079ae: 4621 mov r1, r4
80079b0: f7fc fe68 bl 8004684 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
80079b4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80079b8: 48a1 ldr r0, [pc, #644] ; (8007c40 <DrawChannel_4+0x1054>)
80079ba: f7fc fd9d bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
80079be: 79fb ldrb r3, [r7, #7]
80079c0: 4aa0 ldr r2, [pc, #640] ; (8007c44 <DrawChannel_4+0x1058>)
80079c2: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80079c6: 79fb ldrb r3, [r7, #7]
80079c8: 4a9f ldr r2, [pc, #636] ; (8007c48 <DrawChannel_4+0x105c>)
80079ca: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80079ce: 4b9a ldr r3, [pc, #616] ; (8007c38 <DrawChannel_4+0x104c>)
80079d0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80079d4: b29b uxth r3, r3
80079d6: 461d mov r5, r3
80079d8: 79fb ldrb r3, [r7, #7]
80079da: 4a97 ldr r2, [pc, #604] ; (8007c38 <DrawChannel_4+0x104c>)
80079dc: 015b lsls r3, r3, #5
80079de: 4413 add r3, r2
80079e0: 881b ldrh r3, [r3, #0]
80079e2: b29b uxth r3, r3
80079e4: 461c mov r4, r3
80079e6: 4a99 ldr r2, [pc, #612] ; (8007c4c <DrawChannel_4+0x1060>)
80079e8: 006b lsls r3, r5, #1
80079ea: 4423 add r3, r4
80079ec: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80079f0: 2303 movs r3, #3
80079f2: f7fc fe47 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
80079f6: 79fb ldrb r3, [r7, #7]
80079f8: 4a95 ldr r2, [pc, #596] ; (8007c50 <DrawChannel_4+0x1064>)
80079fa: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80079fe: 79fb ldrb r3, [r7, #7]
8007a00: 4a94 ldr r2, [pc, #592] ; (8007c54 <DrawChannel_4+0x1068>)
8007a02: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8007a06: 4b8c ldr r3, [pc, #560] ; (8007c38 <DrawChannel_4+0x104c>)
8007a08: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007a0c: b29b uxth r3, r3
8007a0e: 461d mov r5, r3
8007a10: 79fb ldrb r3, [r7, #7]
8007a12: 4a89 ldr r2, [pc, #548] ; (8007c38 <DrawChannel_4+0x104c>)
8007a14: 015b lsls r3, r3, #5
8007a16: 4413 add r3, r2
8007a18: 3304 adds r3, #4
8007a1a: 881b ldrh r3, [r3, #0]
8007a1c: b29b uxth r3, r3
8007a1e: 461c mov r4, r3
8007a20: 4a8d ldr r2, [pc, #564] ; (8007c58 <DrawChannel_4+0x106c>)
8007a22: 00eb lsls r3, r5, #3
8007a24: 4423 add r3, r4
8007a26: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8007a2a: 2303 movs r3, #3
8007a2c: f7fc fe2a bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens
8007a30: 79fb ldrb r3, [r7, #7]
8007a32: 4a8a ldr r2, [pc, #552] ; (8007c5c <DrawChannel_4+0x1070>)
8007a34: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007a38: 79fb ldrb r3, [r7, #7]
8007a3a: 4a89 ldr r2, [pc, #548] ; (8007c60 <DrawChannel_4+0x1074>)
8007a3c: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8007a40: f107 0208 add.w r2, r7, #8
8007a44: 2303 movs r3, #3
8007a46: f7fc fe1d bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
8007a4a: 79fb ldrb r3, [r7, #7]
8007a4c: 4a83 ldr r2, [pc, #524] ; (8007c5c <DrawChannel_4+0x1070>)
8007a4e: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8007a52: 332d adds r3, #45 ; 0x2d
8007a54: b298 uxth r0, r3
8007a56: 79fb ldrb r3, [r7, #7]
8007a58: 4a81 ldr r2, [pc, #516] ; (8007c60 <DrawChannel_4+0x1074>)
8007a5a: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8007a5e: 79fb ldrb r3, [r7, #7]
8007a60: 4a75 ldr r2, [pc, #468] ; (8007c38 <DrawChannel_4+0x104c>)
8007a62: 015b lsls r3, r3, #5
8007a64: 4413 add r3, r2
8007a66: 881b ldrh r3, [r3, #0]
8007a68: b29b uxth r3, r3
8007a6a: 4619 mov r1, r3
8007a6c: 79fb ldrb r3, [r7, #7]
8007a6e: 4a72 ldr r2, [pc, #456] ; (8007c38 <DrawChannel_4+0x104c>)
8007a70: 015b lsls r3, r3, #5
8007a72: 4413 add r3, r2
8007a74: 3312 adds r3, #18
8007a76: 881b ldrh r3, [r3, #0]
8007a78: b29b uxth r3, r3
8007a7a: 461d mov r5, r3
8007a7c: 4a79 ldr r2, [pc, #484] ; (8007c64 <DrawChannel_4+0x1078>)
8007a7e: 460b mov r3, r1
8007a80: 005b lsls r3, r3, #1
8007a82: 440b add r3, r1
8007a84: 442b add r3, r5
8007a86: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8007a8a: 2303 movs r3, #3
8007a8c: 4621 mov r1, r4
8007a8e: f7fc fdf9 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
8007a92: 79fb ldrb r3, [r7, #7]
8007a94: 4a74 ldr r2, [pc, #464] ; (8007c68 <DrawChannel_4+0x107c>)
8007a96: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007a9a: 79fb ldrb r3, [r7, #7]
8007a9c: 4a73 ldr r2, [pc, #460] ; (8007c6c <DrawChannel_4+0x1080>)
8007a9e: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8007aa2: 79fb ldrb r3, [r7, #7]
8007aa4: 4a64 ldr r2, [pc, #400] ; (8007c38 <DrawChannel_4+0x104c>)
8007aa6: 015b lsls r3, r3, #5
8007aa8: 4413 add r3, r2
8007aaa: 3312 adds r3, #18
8007aac: 881b ldrh r3, [r3, #0]
8007aae: b29b uxth r3, r3
8007ab0: 461a mov r2, r3
8007ab2: 496f ldr r1, [pc, #444] ; (8007c70 <DrawChannel_4+0x1084>)
8007ab4: 4613 mov r3, r2
8007ab6: 009b lsls r3, r3, #2
8007ab8: 4413 add r3, r2
8007aba: 009a lsls r2, r3, #2
8007abc: 4413 add r3, r2
8007abe: 6afa ldr r2, [r7, #44] ; 0x2c
8007ac0: 4413 add r3, r2
8007ac2: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007ac6: 2303 movs r3, #3
8007ac8: 4621 mov r1, r4
8007aca: f7fc fddb bl 8004684 <BSP_LCD_DisplayStringAt>
}
8007ace: f003 bdcc b.w 800b66a <DrawChannel_4+0x4a7e>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8007ad2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007ad6: 485a ldr r0, [pc, #360] ; (8007c40 <DrawChannel_4+0x1054>)
8007ad8: f7fc fd0e bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
8007adc: 79fb ldrb r3, [r7, #7]
8007ade: 4a59 ldr r2, [pc, #356] ; (8007c44 <DrawChannel_4+0x1058>)
8007ae0: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007ae4: 79fb ldrb r3, [r7, #7]
8007ae6: 4a58 ldr r2, [pc, #352] ; (8007c48 <DrawChannel_4+0x105c>)
8007ae8: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8007aec: 4b52 ldr r3, [pc, #328] ; (8007c38 <DrawChannel_4+0x104c>)
8007aee: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007af2: b29b uxth r3, r3
8007af4: 461d mov r5, r3
8007af6: 79fb ldrb r3, [r7, #7]
8007af8: 4a4f ldr r2, [pc, #316] ; (8007c38 <DrawChannel_4+0x104c>)
8007afa: 015b lsls r3, r3, #5
8007afc: 4413 add r3, r2
8007afe: 881b ldrh r3, [r3, #0]
8007b00: b29b uxth r3, r3
8007b02: 461c mov r4, r3
8007b04: 4a51 ldr r2, [pc, #324] ; (8007c4c <DrawChannel_4+0x1060>)
8007b06: 006b lsls r3, r5, #1
8007b08: 4423 add r3, r4
8007b0a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8007b0e: 2303 movs r3, #3
8007b10: f7fc fdb8 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
8007b14: 79fb ldrb r3, [r7, #7]
8007b16: 4a46 ldr r2, [pc, #280] ; (8007c30 <DrawChannel_4+0x1044>)
8007b18: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007b1c: 79fb ldrb r3, [r7, #7]
8007b1e: 4a45 ldr r2, [pc, #276] ; (8007c34 <DrawChannel_4+0x1048>)
8007b20: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8007b24: 4b44 ldr r3, [pc, #272] ; (8007c38 <DrawChannel_4+0x104c>)
8007b26: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007b2a: b29b uxth r3, r3
8007b2c: 4619 mov r1, r3
8007b2e: 79fb ldrb r3, [r7, #7]
8007b30: 4a41 ldr r2, [pc, #260] ; (8007c38 <DrawChannel_4+0x104c>)
8007b32: 015b lsls r3, r3, #5
8007b34: 4413 add r3, r2
8007b36: 3302 adds r3, #2
8007b38: 881b ldrh r3, [r3, #0]
8007b3a: b29b uxth r3, r3
8007b3c: 461d mov r5, r3
8007b3e: 4a3f ldr r2, [pc, #252] ; (8007c3c <DrawChannel_4+0x1050>)
8007b40: 460b mov r3, r1
8007b42: 009b lsls r3, r3, #2
8007b44: 440b add r3, r1
8007b46: 442b add r3, r5
8007b48: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8007b4c: 2303 movs r3, #3
8007b4e: 4621 mov r1, r4
8007b50: f7fc fd98 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
8007b54: 79fb ldrb r3, [r7, #7]
8007b56: 4a3e ldr r2, [pc, #248] ; (8007c50 <DrawChannel_4+0x1064>)
8007b58: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007b5c: 79fb ldrb r3, [r7, #7]
8007b5e: 4a3d ldr r2, [pc, #244] ; (8007c54 <DrawChannel_4+0x1068>)
8007b60: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8007b64: 4b34 ldr r3, [pc, #208] ; (8007c38 <DrawChannel_4+0x104c>)
8007b66: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007b6a: b29b uxth r3, r3
8007b6c: 461d mov r5, r3
8007b6e: 79fb ldrb r3, [r7, #7]
8007b70: 4a31 ldr r2, [pc, #196] ; (8007c38 <DrawChannel_4+0x104c>)
8007b72: 015b lsls r3, r3, #5
8007b74: 4413 add r3, r2
8007b76: 3304 adds r3, #4
8007b78: 881b ldrh r3, [r3, #0]
8007b7a: b29b uxth r3, r3
8007b7c: 461c mov r4, r3
8007b7e: 4a36 ldr r2, [pc, #216] ; (8007c58 <DrawChannel_4+0x106c>)
8007b80: 00eb lsls r3, r5, #3
8007b82: 4423 add r3, r4
8007b84: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8007b88: 2303 movs r3, #3
8007b8a: f7fc fd7b bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens
8007b8e: 79fb ldrb r3, [r7, #7]
8007b90: 4a32 ldr r2, [pc, #200] ; (8007c5c <DrawChannel_4+0x1070>)
8007b92: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007b96: 79fb ldrb r3, [r7, #7]
8007b98: 4a31 ldr r2, [pc, #196] ; (8007c60 <DrawChannel_4+0x1074>)
8007b9a: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8007b9e: f107 0208 add.w r2, r7, #8
8007ba2: 2303 movs r3, #3
8007ba4: f7fc fd6e bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
8007ba8: 79fb ldrb r3, [r7, #7]
8007baa: 4a2c ldr r2, [pc, #176] ; (8007c5c <DrawChannel_4+0x1070>)
8007bac: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8007bb0: 332d adds r3, #45 ; 0x2d
8007bb2: b298 uxth r0, r3
8007bb4: 79fb ldrb r3, [r7, #7]
8007bb6: 4a2a ldr r2, [pc, #168] ; (8007c60 <DrawChannel_4+0x1074>)
8007bb8: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8007bbc: 79fb ldrb r3, [r7, #7]
8007bbe: 4a1e ldr r2, [pc, #120] ; (8007c38 <DrawChannel_4+0x104c>)
8007bc0: 015b lsls r3, r3, #5
8007bc2: 4413 add r3, r2
8007bc4: 881b ldrh r3, [r3, #0]
8007bc6: b29b uxth r3, r3
8007bc8: 4619 mov r1, r3
8007bca: 79fb ldrb r3, [r7, #7]
8007bcc: 4a1a ldr r2, [pc, #104] ; (8007c38 <DrawChannel_4+0x104c>)
8007bce: 015b lsls r3, r3, #5
8007bd0: 4413 add r3, r2
8007bd2: 3312 adds r3, #18
8007bd4: 881b ldrh r3, [r3, #0]
8007bd6: b29b uxth r3, r3
8007bd8: 461d mov r5, r3
8007bda: 4a22 ldr r2, [pc, #136] ; (8007c64 <DrawChannel_4+0x1078>)
8007bdc: 460b mov r3, r1
8007bde: 005b lsls r3, r3, #1
8007be0: 440b add r3, r1
8007be2: 442b add r3, r5
8007be4: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8007be8: 2303 movs r3, #3
8007bea: 4621 mov r1, r4
8007bec: f7fc fd4a bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
8007bf0: 79fb ldrb r3, [r7, #7]
8007bf2: 4a1d ldr r2, [pc, #116] ; (8007c68 <DrawChannel_4+0x107c>)
8007bf4: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007bf8: 79fb ldrb r3, [r7, #7]
8007bfa: 4a1c ldr r2, [pc, #112] ; (8007c6c <DrawChannel_4+0x1080>)
8007bfc: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8007c00: 79fb ldrb r3, [r7, #7]
8007c02: 4a0d ldr r2, [pc, #52] ; (8007c38 <DrawChannel_4+0x104c>)
8007c04: 015b lsls r3, r3, #5
8007c06: 4413 add r3, r2
8007c08: 3312 adds r3, #18
8007c0a: 881b ldrh r3, [r3, #0]
8007c0c: b29b uxth r3, r3
8007c0e: 461a mov r2, r3
8007c10: 4917 ldr r1, [pc, #92] ; (8007c70 <DrawChannel_4+0x1084>)
8007c12: 4613 mov r3, r2
8007c14: 009b lsls r3, r3, #2
8007c16: 4413 add r3, r2
8007c18: 009a lsls r2, r3, #2
8007c1a: 4413 add r3, r2
8007c1c: 6afa ldr r2, [r7, #44] ; 0x2c
8007c1e: 4413 add r3, r2
8007c20: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007c24: 2303 movs r3, #3
8007c26: 4621 mov r1, r4
8007c28: f7fc fd2c bl 8004684 <BSP_LCD_DisplayStringAt>
}
8007c2c: f003 bd1d b.w 800b66a <DrawChannel_4+0x4a7e>
8007c30: 08015544 .word 0x08015544
8007c34: 0801554c .word 0x0801554c
8007c38: 2006b510 .word 0x2006b510
8007c3c: 20020040 .word 0x20020040
8007c40: ffd8aa57 .word 0xffd8aa57
8007c44: 08015534 .word 0x08015534
8007c48: 0801553c .word 0x0801553c
8007c4c: 20020030 .word 0x20020030
8007c50: 08015554 .word 0x08015554
8007c54: 0801555c .word 0x0801555c
8007c58: 20020068 .word 0x20020068
8007c5c: 08015564 .word 0x08015564
8007c60: 0801556c .word 0x0801556c
8007c64: 200200a8 .word 0x200200a8
8007c68: 08015574 .word 0x08015574
8007c6c: 0801557c .word 0x0801557c
8007c70: 200200c0 .word 0x200200c0
if(menupos == Lp)
8007c74: 4b73 ldr r3, [pc, #460] ; (8007e44 <DrawChannel_4+0x1258>)
8007c76: 781b ldrb r3, [r3, #0]
8007c78: b2db uxtb r3, r3
8007c7a: 2b02 cmp r3, #2
8007c7c: f040 81b9 bne.w 8007ff2 <DrawChannel_4+0x1406>
if(ACTIVE_CHANNEL == ch)
8007c80: 79fa ldrb r2, [r7, #7]
8007c82: 4b71 ldr r3, [pc, #452] ; (8007e48 <DrawChannel_4+0x125c>)
8007c84: 681b ldr r3, [r3, #0]
8007c86: 429a cmp r2, r3
8007c88: f040 8104 bne.w 8007e94 <DrawChannel_4+0x12a8>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8007c8c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007c90: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8007c94: f7fc fc30 bl 80044f8 <LCD_SetColors>
if(focused)
8007c98: 4b6c ldr r3, [pc, #432] ; (8007e4c <DrawChannel_4+0x1260>)
8007c9a: 781b ldrb r3, [r3, #0]
8007c9c: b2db uxtb r3, r3
8007c9e: 2b00 cmp r3, #0
8007ca0: d020 beq.n 8007ce4 <DrawChannel_4+0x10f8>
if(blk)
8007ca2: 683b ldr r3, [r7, #0]
8007ca4: 2b00 cmp r3, #0
8007ca6: d03a beq.n 8007d1e <DrawChannel_4+0x1132>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
8007ca8: 79fb ldrb r3, [r7, #7]
8007caa: 4a69 ldr r2, [pc, #420] ; (8007e50 <DrawChannel_4+0x1264>)
8007cac: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007cb0: 79fb ldrb r3, [r7, #7]
8007cb2: 4a68 ldr r2, [pc, #416] ; (8007e54 <DrawChannel_4+0x1268>)
8007cb4: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8007cb8: 4b67 ldr r3, [pc, #412] ; (8007e58 <DrawChannel_4+0x126c>)
8007cba: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007cbe: b29b uxth r3, r3
8007cc0: 461d mov r5, r3
8007cc2: 79fb ldrb r3, [r7, #7]
8007cc4: 4a64 ldr r2, [pc, #400] ; (8007e58 <DrawChannel_4+0x126c>)
8007cc6: 015b lsls r3, r3, #5
8007cc8: 4413 add r3, r2
8007cca: 3304 adds r3, #4
8007ccc: 881b ldrh r3, [r3, #0]
8007cce: b29b uxth r3, r3
8007cd0: 461c mov r4, r3
8007cd2: 4a62 ldr r2, [pc, #392] ; (8007e5c <DrawChannel_4+0x1270>)
8007cd4: 00eb lsls r3, r5, #3
8007cd6: 4423 add r3, r4
8007cd8: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8007cdc: 2303 movs r3, #3
8007cde: f7fc fcd1 bl 8004684 <BSP_LCD_DisplayStringAt>
8007ce2: e01c b.n 8007d1e <DrawChannel_4+0x1132>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
8007ce4: 79fb ldrb r3, [r7, #7]
8007ce6: 4a5a ldr r2, [pc, #360] ; (8007e50 <DrawChannel_4+0x1264>)
8007ce8: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007cec: 79fb ldrb r3, [r7, #7]
8007cee: 4a59 ldr r2, [pc, #356] ; (8007e54 <DrawChannel_4+0x1268>)
8007cf0: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8007cf4: 4b58 ldr r3, [pc, #352] ; (8007e58 <DrawChannel_4+0x126c>)
8007cf6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007cfa: b29b uxth r3, r3
8007cfc: 461d mov r5, r3
8007cfe: 79fb ldrb r3, [r7, #7]
8007d00: 4a55 ldr r2, [pc, #340] ; (8007e58 <DrawChannel_4+0x126c>)
8007d02: 015b lsls r3, r3, #5
8007d04: 4413 add r3, r2
8007d06: 3304 adds r3, #4
8007d08: 881b ldrh r3, [r3, #0]
8007d0a: b29b uxth r3, r3
8007d0c: 461c mov r4, r3
8007d0e: 4a53 ldr r2, [pc, #332] ; (8007e5c <DrawChannel_4+0x1270>)
8007d10: 00eb lsls r3, r5, #3
8007d12: 4423 add r3, r4
8007d14: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8007d18: 2303 movs r3, #3
8007d1a: f7fc fcb3 bl 8004684 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8007d1e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007d22: 484f ldr r0, [pc, #316] ; (8007e60 <DrawChannel_4+0x1274>)
8007d24: f7fc fbe8 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
8007d28: 79fb ldrb r3, [r7, #7]
8007d2a: 4a4e ldr r2, [pc, #312] ; (8007e64 <DrawChannel_4+0x1278>)
8007d2c: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007d30: 79fb ldrb r3, [r7, #7]
8007d32: 4a4d ldr r2, [pc, #308] ; (8007e68 <DrawChannel_4+0x127c>)
8007d34: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8007d38: 4b47 ldr r3, [pc, #284] ; (8007e58 <DrawChannel_4+0x126c>)
8007d3a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007d3e: b29b uxth r3, r3
8007d40: 461d mov r5, r3
8007d42: 79fb ldrb r3, [r7, #7]
8007d44: 4a44 ldr r2, [pc, #272] ; (8007e58 <DrawChannel_4+0x126c>)
8007d46: 015b lsls r3, r3, #5
8007d48: 4413 add r3, r2
8007d4a: 881b ldrh r3, [r3, #0]
8007d4c: b29b uxth r3, r3
8007d4e: 461c mov r4, r3
8007d50: 4a46 ldr r2, [pc, #280] ; (8007e6c <DrawChannel_4+0x1280>)
8007d52: 006b lsls r3, r5, #1
8007d54: 4423 add r3, r4
8007d56: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8007d5a: 2303 movs r3, #3
8007d5c: f7fc fc92 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
8007d60: 79fb ldrb r3, [r7, #7]
8007d62: 4a43 ldr r2, [pc, #268] ; (8007e70 <DrawChannel_4+0x1284>)
8007d64: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007d68: 79fb ldrb r3, [r7, #7]
8007d6a: 4a42 ldr r2, [pc, #264] ; (8007e74 <DrawChannel_4+0x1288>)
8007d6c: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8007d70: 4b39 ldr r3, [pc, #228] ; (8007e58 <DrawChannel_4+0x126c>)
8007d72: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007d76: b29b uxth r3, r3
8007d78: 4619 mov r1, r3
8007d7a: 79fb ldrb r3, [r7, #7]
8007d7c: 4a36 ldr r2, [pc, #216] ; (8007e58 <DrawChannel_4+0x126c>)
8007d7e: 015b lsls r3, r3, #5
8007d80: 4413 add r3, r2
8007d82: 3302 adds r3, #2
8007d84: 881b ldrh r3, [r3, #0]
8007d86: b29b uxth r3, r3
8007d88: 461d mov r5, r3
8007d8a: 4a3b ldr r2, [pc, #236] ; (8007e78 <DrawChannel_4+0x128c>)
8007d8c: 460b mov r3, r1
8007d8e: 009b lsls r3, r3, #2
8007d90: 440b add r3, r1
8007d92: 442b add r3, r5
8007d94: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8007d98: 2303 movs r3, #3
8007d9a: 4621 mov r1, r4
8007d9c: f7fc fc72 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens
8007da0: 79fb ldrb r3, [r7, #7]
8007da2: 4a36 ldr r2, [pc, #216] ; (8007e7c <DrawChannel_4+0x1290>)
8007da4: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007da8: 79fb ldrb r3, [r7, #7]
8007daa: 4a35 ldr r2, [pc, #212] ; (8007e80 <DrawChannel_4+0x1294>)
8007dac: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8007db0: f107 0208 add.w r2, r7, #8
8007db4: 2303 movs r3, #3
8007db6: f7fc fc65 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
8007dba: 79fb ldrb r3, [r7, #7]
8007dbc: 4a2f ldr r2, [pc, #188] ; (8007e7c <DrawChannel_4+0x1290>)
8007dbe: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8007dc2: 332d adds r3, #45 ; 0x2d
8007dc4: b298 uxth r0, r3
8007dc6: 79fb ldrb r3, [r7, #7]
8007dc8: 4a2d ldr r2, [pc, #180] ; (8007e80 <DrawChannel_4+0x1294>)
8007dca: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8007dce: 79fb ldrb r3, [r7, #7]
8007dd0: 4a21 ldr r2, [pc, #132] ; (8007e58 <DrawChannel_4+0x126c>)
8007dd2: 015b lsls r3, r3, #5
8007dd4: 4413 add r3, r2
8007dd6: 881b ldrh r3, [r3, #0]
8007dd8: b29b uxth r3, r3
8007dda: 4619 mov r1, r3
8007ddc: 79fb ldrb r3, [r7, #7]
8007dde: 4a1e ldr r2, [pc, #120] ; (8007e58 <DrawChannel_4+0x126c>)
8007de0: 015b lsls r3, r3, #5
8007de2: 4413 add r3, r2
8007de4: 3312 adds r3, #18
8007de6: 881b ldrh r3, [r3, #0]
8007de8: b29b uxth r3, r3
8007dea: 461d mov r5, r3
8007dec: 4a25 ldr r2, [pc, #148] ; (8007e84 <DrawChannel_4+0x1298>)
8007dee: 460b mov r3, r1
8007df0: 005b lsls r3, r3, #1
8007df2: 440b add r3, r1
8007df4: 442b add r3, r5
8007df6: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8007dfa: 2303 movs r3, #3
8007dfc: 4621 mov r1, r4
8007dfe: f7fc fc41 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
8007e02: 79fb ldrb r3, [r7, #7]
8007e04: 4a20 ldr r2, [pc, #128] ; (8007e88 <DrawChannel_4+0x129c>)
8007e06: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007e0a: 79fb ldrb r3, [r7, #7]
8007e0c: 4a1f ldr r2, [pc, #124] ; (8007e8c <DrawChannel_4+0x12a0>)
8007e0e: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8007e12: 79fb ldrb r3, [r7, #7]
8007e14: 4a10 ldr r2, [pc, #64] ; (8007e58 <DrawChannel_4+0x126c>)
8007e16: 015b lsls r3, r3, #5
8007e18: 4413 add r3, r2
8007e1a: 3312 adds r3, #18
8007e1c: 881b ldrh r3, [r3, #0]
8007e1e: b29b uxth r3, r3
8007e20: 461a mov r2, r3
8007e22: 491b ldr r1, [pc, #108] ; (8007e90 <DrawChannel_4+0x12a4>)
8007e24: 4613 mov r3, r2
8007e26: 009b lsls r3, r3, #2
8007e28: 4413 add r3, r2
8007e2a: 009a lsls r2, r3, #2
8007e2c: 4413 add r3, r2
8007e2e: 6afa ldr r2, [r7, #44] ; 0x2c
8007e30: 4413 add r3, r2
8007e32: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007e36: 2303 movs r3, #3
8007e38: 4621 mov r1, r4
8007e3a: f7fc fc23 bl 8004684 <BSP_LCD_DisplayStringAt>
}
8007e3e: f003 bc14 b.w 800b66a <DrawChannel_4+0x4a7e>
8007e42: bf00 nop
8007e44: 20020010 .word 0x20020010
8007e48: 2006b2d0 .word 0x2006b2d0
8007e4c: 20020250 .word 0x20020250
8007e50: 08015554 .word 0x08015554
8007e54: 0801555c .word 0x0801555c
8007e58: 2006b510 .word 0x2006b510
8007e5c: 20020068 .word 0x20020068
8007e60: ffd8aa57 .word 0xffd8aa57
8007e64: 08015534 .word 0x08015534
8007e68: 0801553c .word 0x0801553c
8007e6c: 20020030 .word 0x20020030
8007e70: 08015544 .word 0x08015544
8007e74: 0801554c .word 0x0801554c
8007e78: 20020040 .word 0x20020040
8007e7c: 08015564 .word 0x08015564
8007e80: 0801556c .word 0x0801556c
8007e84: 200200a8 .word 0x200200a8
8007e88: 08015574 .word 0x08015574
8007e8c: 0801557c .word 0x0801557c
8007e90: 200200c0 .word 0x200200c0
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8007e94: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007e98: 48b6 ldr r0, [pc, #728] ; (8008174 <DrawChannel_4+0x1588>)
8007e9a: f7fc fb2d bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
8007e9e: 79fb ldrb r3, [r7, #7]
8007ea0: 4ab5 ldr r2, [pc, #724] ; (8008178 <DrawChannel_4+0x158c>)
8007ea2: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007ea6: 79fb ldrb r3, [r7, #7]
8007ea8: 4ab4 ldr r2, [pc, #720] ; (800817c <DrawChannel_4+0x1590>)
8007eaa: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8007eae: 4bb4 ldr r3, [pc, #720] ; (8008180 <DrawChannel_4+0x1594>)
8007eb0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007eb4: b29b uxth r3, r3
8007eb6: 461d mov r5, r3
8007eb8: 79fb ldrb r3, [r7, #7]
8007eba: 4ab1 ldr r2, [pc, #708] ; (8008180 <DrawChannel_4+0x1594>)
8007ebc: 015b lsls r3, r3, #5
8007ebe: 4413 add r3, r2
8007ec0: 881b ldrh r3, [r3, #0]
8007ec2: b29b uxth r3, r3
8007ec4: 461c mov r4, r3
8007ec6: 4aaf ldr r2, [pc, #700] ; (8008184 <DrawChannel_4+0x1598>)
8007ec8: 006b lsls r3, r5, #1
8007eca: 4423 add r3, r4
8007ecc: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8007ed0: 2303 movs r3, #3
8007ed2: f7fc fbd7 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
8007ed6: 79fb ldrb r3, [r7, #7]
8007ed8: 4aab ldr r2, [pc, #684] ; (8008188 <DrawChannel_4+0x159c>)
8007eda: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007ede: 79fb ldrb r3, [r7, #7]
8007ee0: 4aaa ldr r2, [pc, #680] ; (800818c <DrawChannel_4+0x15a0>)
8007ee2: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8007ee6: 4ba6 ldr r3, [pc, #664] ; (8008180 <DrawChannel_4+0x1594>)
8007ee8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007eec: b29b uxth r3, r3
8007eee: 4619 mov r1, r3
8007ef0: 79fb ldrb r3, [r7, #7]
8007ef2: 4aa3 ldr r2, [pc, #652] ; (8008180 <DrawChannel_4+0x1594>)
8007ef4: 015b lsls r3, r3, #5
8007ef6: 4413 add r3, r2
8007ef8: 3302 adds r3, #2
8007efa: 881b ldrh r3, [r3, #0]
8007efc: b29b uxth r3, r3
8007efe: 461d mov r5, r3
8007f00: 4aa3 ldr r2, [pc, #652] ; (8008190 <DrawChannel_4+0x15a4>)
8007f02: 460b mov r3, r1
8007f04: 009b lsls r3, r3, #2
8007f06: 440b add r3, r1
8007f08: 442b add r3, r5
8007f0a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8007f0e: 2303 movs r3, #3
8007f10: 4621 mov r1, r4
8007f12: f7fc fbb7 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
8007f16: 79fb ldrb r3, [r7, #7]
8007f18: 4a9e ldr r2, [pc, #632] ; (8008194 <DrawChannel_4+0x15a8>)
8007f1a: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007f1e: 79fb ldrb r3, [r7, #7]
8007f20: 4a9d ldr r2, [pc, #628] ; (8008198 <DrawChannel_4+0x15ac>)
8007f22: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8007f26: 4b96 ldr r3, [pc, #600] ; (8008180 <DrawChannel_4+0x1594>)
8007f28: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007f2c: b29b uxth r3, r3
8007f2e: 461d mov r5, r3
8007f30: 79fb ldrb r3, [r7, #7]
8007f32: 4a93 ldr r2, [pc, #588] ; (8008180 <DrawChannel_4+0x1594>)
8007f34: 015b lsls r3, r3, #5
8007f36: 4413 add r3, r2
8007f38: 3304 adds r3, #4
8007f3a: 881b ldrh r3, [r3, #0]
8007f3c: b29b uxth r3, r3
8007f3e: 461c mov r4, r3
8007f40: 4a96 ldr r2, [pc, #600] ; (800819c <DrawChannel_4+0x15b0>)
8007f42: 00eb lsls r3, r5, #3
8007f44: 4423 add r3, r4
8007f46: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8007f4a: 2303 movs r3, #3
8007f4c: f7fc fb9a bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens
8007f50: 79fb ldrb r3, [r7, #7]
8007f52: 4a93 ldr r2, [pc, #588] ; (80081a0 <DrawChannel_4+0x15b4>)
8007f54: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007f58: 79fb ldrb r3, [r7, #7]
8007f5a: 4a92 ldr r2, [pc, #584] ; (80081a4 <DrawChannel_4+0x15b8>)
8007f5c: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8007f60: f107 0208 add.w r2, r7, #8
8007f64: 2303 movs r3, #3
8007f66: f7fc fb8d bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
8007f6a: 79fb ldrb r3, [r7, #7]
8007f6c: 4a8c ldr r2, [pc, #560] ; (80081a0 <DrawChannel_4+0x15b4>)
8007f6e: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8007f72: 332d adds r3, #45 ; 0x2d
8007f74: b298 uxth r0, r3
8007f76: 79fb ldrb r3, [r7, #7]
8007f78: 4a8a ldr r2, [pc, #552] ; (80081a4 <DrawChannel_4+0x15b8>)
8007f7a: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8007f7e: 79fb ldrb r3, [r7, #7]
8007f80: 4a7f ldr r2, [pc, #508] ; (8008180 <DrawChannel_4+0x1594>)
8007f82: 015b lsls r3, r3, #5
8007f84: 4413 add r3, r2
8007f86: 881b ldrh r3, [r3, #0]
8007f88: b29b uxth r3, r3
8007f8a: 4619 mov r1, r3
8007f8c: 79fb ldrb r3, [r7, #7]
8007f8e: 4a7c ldr r2, [pc, #496] ; (8008180 <DrawChannel_4+0x1594>)
8007f90: 015b lsls r3, r3, #5
8007f92: 4413 add r3, r2
8007f94: 3312 adds r3, #18
8007f96: 881b ldrh r3, [r3, #0]
8007f98: b29b uxth r3, r3
8007f9a: 461d mov r5, r3
8007f9c: 4a82 ldr r2, [pc, #520] ; (80081a8 <DrawChannel_4+0x15bc>)
8007f9e: 460b mov r3, r1
8007fa0: 005b lsls r3, r3, #1
8007fa2: 440b add r3, r1
8007fa4: 442b add r3, r5
8007fa6: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8007faa: 2303 movs r3, #3
8007fac: 4621 mov r1, r4
8007fae: f7fc fb69 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
8007fb2: 79fb ldrb r3, [r7, #7]
8007fb4: 4a7d ldr r2, [pc, #500] ; (80081ac <DrawChannel_4+0x15c0>)
8007fb6: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8007fba: 79fb ldrb r3, [r7, #7]
8007fbc: 4a7c ldr r2, [pc, #496] ; (80081b0 <DrawChannel_4+0x15c4>)
8007fbe: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8007fc2: 79fb ldrb r3, [r7, #7]
8007fc4: 4a6e ldr r2, [pc, #440] ; (8008180 <DrawChannel_4+0x1594>)
8007fc6: 015b lsls r3, r3, #5
8007fc8: 4413 add r3, r2
8007fca: 3312 adds r3, #18
8007fcc: 881b ldrh r3, [r3, #0]
8007fce: b29b uxth r3, r3
8007fd0: 461a mov r2, r3
8007fd2: 4978 ldr r1, [pc, #480] ; (80081b4 <DrawChannel_4+0x15c8>)
8007fd4: 4613 mov r3, r2
8007fd6: 009b lsls r3, r3, #2
8007fd8: 4413 add r3, r2
8007fda: 009a lsls r2, r3, #2
8007fdc: 4413 add r3, r2
8007fde: 6afa ldr r2, [r7, #44] ; 0x2c
8007fe0: 4413 add r3, r2
8007fe2: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007fe6: 2303 movs r3, #3
8007fe8: 4621 mov r1, r4
8007fea: f7fc fb4b bl 8004684 <BSP_LCD_DisplayStringAt>
}
8007fee: f003 bb3c b.w 800b66a <DrawChannel_4+0x4a7e>
if(menupos == Sens)
8007ff2: 4b71 ldr r3, [pc, #452] ; (80081b8 <DrawChannel_4+0x15cc>)
8007ff4: 781b ldrb r3, [r3, #0]
8007ff6: b2db uxtb r3, r3
8007ff8: 2b03 cmp r3, #3
8007ffa: f040 8190 bne.w 800831e <DrawChannel_4+0x1732>
if(ACTIVE_CHANNEL == ch)
8007ffe: 79fa ldrb r2, [r7, #7]
8008000: 4b6e ldr r3, [pc, #440] ; (80081bc <DrawChannel_4+0x15d0>)
8008002: 681b ldr r3, [r3, #0]
8008004: 429a cmp r2, r3
8008006: f040 80db bne.w 80081c0 <DrawChannel_4+0x15d4>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800800a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800800e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8008012: f7fc fa71 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE);
8008016: 79fb ldrb r3, [r7, #7]
8008018: 4a61 ldr r2, [pc, #388] ; (80081a0 <DrawChannel_4+0x15b4>)
800801a: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800801e: 79fb ldrb r3, [r7, #7]
8008020: 4a60 ldr r2, [pc, #384] ; (80081a4 <DrawChannel_4+0x15b8>)
8008022: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008026: f107 0208 add.w r2, r7, #8
800802a: 2303 movs r3, #3
800802c: f7fc fb2a bl 8004684 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8008030: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008034: 484f ldr r0, [pc, #316] ; (8008174 <DrawChannel_4+0x1588>)
8008036: f7fc fa5f bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
800803a: 79fb ldrb r3, [r7, #7]
800803c: 4a4e ldr r2, [pc, #312] ; (8008178 <DrawChannel_4+0x158c>)
800803e: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8008042: 79fb ldrb r3, [r7, #7]
8008044: 4a4d ldr r2, [pc, #308] ; (800817c <DrawChannel_4+0x1590>)
8008046: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800804a: 4b4d ldr r3, [pc, #308] ; (8008180 <DrawChannel_4+0x1594>)
800804c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008050: b29b uxth r3, r3
8008052: 461d mov r5, r3
8008054: 79fb ldrb r3, [r7, #7]
8008056: 4a4a ldr r2, [pc, #296] ; (8008180 <DrawChannel_4+0x1594>)
8008058: 015b lsls r3, r3, #5
800805a: 4413 add r3, r2
800805c: 881b ldrh r3, [r3, #0]
800805e: b29b uxth r3, r3
8008060: 461c mov r4, r3
8008062: 4a48 ldr r2, [pc, #288] ; (8008184 <DrawChannel_4+0x1598>)
8008064: 006b lsls r3, r5, #1
8008066: 4423 add r3, r4
8008068: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800806c: 2303 movs r3, #3
800806e: f7fc fb09 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
8008072: 79fb ldrb r3, [r7, #7]
8008074: 4a44 ldr r2, [pc, #272] ; (8008188 <DrawChannel_4+0x159c>)
8008076: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800807a: 79fb ldrb r3, [r7, #7]
800807c: 4a43 ldr r2, [pc, #268] ; (800818c <DrawChannel_4+0x15a0>)
800807e: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8008082: 4b3f ldr r3, [pc, #252] ; (8008180 <DrawChannel_4+0x1594>)
8008084: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008088: b29b uxth r3, r3
800808a: 4619 mov r1, r3
800808c: 79fb ldrb r3, [r7, #7]
800808e: 4a3c ldr r2, [pc, #240] ; (8008180 <DrawChannel_4+0x1594>)
8008090: 015b lsls r3, r3, #5
8008092: 4413 add r3, r2
8008094: 3302 adds r3, #2
8008096: 881b ldrh r3, [r3, #0]
8008098: b29b uxth r3, r3
800809a: 461d mov r5, r3
800809c: 4a3c ldr r2, [pc, #240] ; (8008190 <DrawChannel_4+0x15a4>)
800809e: 460b mov r3, r1
80080a0: 009b lsls r3, r3, #2
80080a2: 440b add r3, r1
80080a4: 442b add r3, r5
80080a6: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80080aa: 2303 movs r3, #3
80080ac: 4621 mov r1, r4
80080ae: f7fc fae9 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
80080b2: 79fb ldrb r3, [r7, #7]
80080b4: 4a37 ldr r2, [pc, #220] ; (8008194 <DrawChannel_4+0x15a8>)
80080b6: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80080ba: 79fb ldrb r3, [r7, #7]
80080bc: 4a36 ldr r2, [pc, #216] ; (8008198 <DrawChannel_4+0x15ac>)
80080be: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80080c2: 4b2f ldr r3, [pc, #188] ; (8008180 <DrawChannel_4+0x1594>)
80080c4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80080c8: b29b uxth r3, r3
80080ca: 461d mov r5, r3
80080cc: 79fb ldrb r3, [r7, #7]
80080ce: 4a2c ldr r2, [pc, #176] ; (8008180 <DrawChannel_4+0x1594>)
80080d0: 015b lsls r3, r3, #5
80080d2: 4413 add r3, r2
80080d4: 3304 adds r3, #4
80080d6: 881b ldrh r3, [r3, #0]
80080d8: b29b uxth r3, r3
80080da: 461c mov r4, r3
80080dc: 4a2f ldr r2, [pc, #188] ; (800819c <DrawChannel_4+0x15b0>)
80080de: 00eb lsls r3, r5, #3
80080e0: 4423 add r3, r4
80080e2: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80080e6: 2303 movs r3, #3
80080e8: f7fc facc bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
80080ec: 79fb ldrb r3, [r7, #7]
80080ee: 4a2c ldr r2, [pc, #176] ; (80081a0 <DrawChannel_4+0x15b4>)
80080f0: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
80080f4: 332d adds r3, #45 ; 0x2d
80080f6: b298 uxth r0, r3
80080f8: 79fb ldrb r3, [r7, #7]
80080fa: 4a2a ldr r2, [pc, #168] ; (80081a4 <DrawChannel_4+0x15b8>)
80080fc: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8008100: 79fb ldrb r3, [r7, #7]
8008102: 4a1f ldr r2, [pc, #124] ; (8008180 <DrawChannel_4+0x1594>)
8008104: 015b lsls r3, r3, #5
8008106: 4413 add r3, r2
8008108: 881b ldrh r3, [r3, #0]
800810a: b29b uxth r3, r3
800810c: 4619 mov r1, r3
800810e: 79fb ldrb r3, [r7, #7]
8008110: 4a1b ldr r2, [pc, #108] ; (8008180 <DrawChannel_4+0x1594>)
8008112: 015b lsls r3, r3, #5
8008114: 4413 add r3, r2
8008116: 3312 adds r3, #18
8008118: 881b ldrh r3, [r3, #0]
800811a: b29b uxth r3, r3
800811c: 461d mov r5, r3
800811e: 4a22 ldr r2, [pc, #136] ; (80081a8 <DrawChannel_4+0x15bc>)
8008120: 460b mov r3, r1
8008122: 005b lsls r3, r3, #1
8008124: 440b add r3, r1
8008126: 442b add r3, r5
8008128: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800812c: 2303 movs r3, #3
800812e: 4621 mov r1, r4
8008130: f7fc faa8 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
8008134: 79fb ldrb r3, [r7, #7]
8008136: 4a1d ldr r2, [pc, #116] ; (80081ac <DrawChannel_4+0x15c0>)
8008138: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800813c: 79fb ldrb r3, [r7, #7]
800813e: 4a1c ldr r2, [pc, #112] ; (80081b0 <DrawChannel_4+0x15c4>)
8008140: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8008144: 79fb ldrb r3, [r7, #7]
8008146: 4a0e ldr r2, [pc, #56] ; (8008180 <DrawChannel_4+0x1594>)
8008148: 015b lsls r3, r3, #5
800814a: 4413 add r3, r2
800814c: 3312 adds r3, #18
800814e: 881b ldrh r3, [r3, #0]
8008150: b29b uxth r3, r3
8008152: 461a mov r2, r3
8008154: 4917 ldr r1, [pc, #92] ; (80081b4 <DrawChannel_4+0x15c8>)
8008156: 4613 mov r3, r2
8008158: 009b lsls r3, r3, #2
800815a: 4413 add r3, r2
800815c: 009a lsls r2, r3, #2
800815e: 4413 add r3, r2
8008160: 6afa ldr r2, [r7, #44] ; 0x2c
8008162: 4413 add r3, r2
8008164: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008168: 2303 movs r3, #3
800816a: 4621 mov r1, r4
800816c: f7fc fa8a bl 8004684 <BSP_LCD_DisplayStringAt>
}
8008170: f003 ba7b b.w 800b66a <DrawChannel_4+0x4a7e>
8008174: ffd8aa57 .word 0xffd8aa57
8008178: 08015534 .word 0x08015534
800817c: 0801553c .word 0x0801553c
8008180: 2006b510 .word 0x2006b510
8008184: 20020030 .word 0x20020030
8008188: 08015544 .word 0x08015544
800818c: 0801554c .word 0x0801554c
8008190: 20020040 .word 0x20020040
8008194: 08015554 .word 0x08015554
8008198: 0801555c .word 0x0801555c
800819c: 20020068 .word 0x20020068
80081a0: 08015564 .word 0x08015564
80081a4: 0801556c .word 0x0801556c
80081a8: 200200a8 .word 0x200200a8
80081ac: 08015574 .word 0x08015574
80081b0: 0801557c .word 0x0801557c
80081b4: 200200c0 .word 0x200200c0
80081b8: 20020010 .word 0x20020010
80081bc: 2006b2d0 .word 0x2006b2d0
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
80081c0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80081c4: 4875 ldr r0, [pc, #468] ; (800839c <DrawChannel_4+0x17b0>)
80081c6: f7fc f997 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
80081ca: 79fb ldrb r3, [r7, #7]
80081cc: 4a74 ldr r2, [pc, #464] ; (80083a0 <DrawChannel_4+0x17b4>)
80081ce: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80081d2: 79fb ldrb r3, [r7, #7]
80081d4: 4a73 ldr r2, [pc, #460] ; (80083a4 <DrawChannel_4+0x17b8>)
80081d6: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80081da: 4b73 ldr r3, [pc, #460] ; (80083a8 <DrawChannel_4+0x17bc>)
80081dc: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80081e0: b29b uxth r3, r3
80081e2: 461d mov r5, r3
80081e4: 79fb ldrb r3, [r7, #7]
80081e6: 4a70 ldr r2, [pc, #448] ; (80083a8 <DrawChannel_4+0x17bc>)
80081e8: 015b lsls r3, r3, #5
80081ea: 4413 add r3, r2
80081ec: 881b ldrh r3, [r3, #0]
80081ee: b29b uxth r3, r3
80081f0: 461c mov r4, r3
80081f2: 4a6e ldr r2, [pc, #440] ; (80083ac <DrawChannel_4+0x17c0>)
80081f4: 006b lsls r3, r5, #1
80081f6: 4423 add r3, r4
80081f8: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80081fc: 2303 movs r3, #3
80081fe: f7fc fa41 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
8008202: 79fb ldrb r3, [r7, #7]
8008204: 4a6a ldr r2, [pc, #424] ; (80083b0 <DrawChannel_4+0x17c4>)
8008206: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800820a: 79fb ldrb r3, [r7, #7]
800820c: 4a69 ldr r2, [pc, #420] ; (80083b4 <DrawChannel_4+0x17c8>)
800820e: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8008212: 4b65 ldr r3, [pc, #404] ; (80083a8 <DrawChannel_4+0x17bc>)
8008214: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008218: b29b uxth r3, r3
800821a: 4619 mov r1, r3
800821c: 79fb ldrb r3, [r7, #7]
800821e: 4a62 ldr r2, [pc, #392] ; (80083a8 <DrawChannel_4+0x17bc>)
8008220: 015b lsls r3, r3, #5
8008222: 4413 add r3, r2
8008224: 3302 adds r3, #2
8008226: 881b ldrh r3, [r3, #0]
8008228: b29b uxth r3, r3
800822a: 461d mov r5, r3
800822c: 4a62 ldr r2, [pc, #392] ; (80083b8 <DrawChannel_4+0x17cc>)
800822e: 460b mov r3, r1
8008230: 009b lsls r3, r3, #2
8008232: 440b add r3, r1
8008234: 442b add r3, r5
8008236: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800823a: 2303 movs r3, #3
800823c: 4621 mov r1, r4
800823e: f7fc fa21 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
8008242: 79fb ldrb r3, [r7, #7]
8008244: 4a5d ldr r2, [pc, #372] ; (80083bc <DrawChannel_4+0x17d0>)
8008246: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800824a: 79fb ldrb r3, [r7, #7]
800824c: 4a5c ldr r2, [pc, #368] ; (80083c0 <DrawChannel_4+0x17d4>)
800824e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008252: 4b55 ldr r3, [pc, #340] ; (80083a8 <DrawChannel_4+0x17bc>)
8008254: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008258: b29b uxth r3, r3
800825a: 461d mov r5, r3
800825c: 79fb ldrb r3, [r7, #7]
800825e: 4a52 ldr r2, [pc, #328] ; (80083a8 <DrawChannel_4+0x17bc>)
8008260: 015b lsls r3, r3, #5
8008262: 4413 add r3, r2
8008264: 3304 adds r3, #4
8008266: 881b ldrh r3, [r3, #0]
8008268: b29b uxth r3, r3
800826a: 461c mov r4, r3
800826c: 4a55 ldr r2, [pc, #340] ; (80083c4 <DrawChannel_4+0x17d8>)
800826e: 00eb lsls r3, r5, #3
8008270: 4423 add r3, r4
8008272: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008276: 2303 movs r3, #3
8008278: f7fc fa04 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE);
800827c: 79fb ldrb r3, [r7, #7]
800827e: 4a52 ldr r2, [pc, #328] ; (80083c8 <DrawChannel_4+0x17dc>)
8008280: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8008284: 79fb ldrb r3, [r7, #7]
8008286: 4a51 ldr r2, [pc, #324] ; (80083cc <DrawChannel_4+0x17e0>)
8008288: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800828c: f107 0208 add.w r2, r7, #8
8008290: 2303 movs r3, #3
8008292: f7fc f9f7 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
8008296: 79fb ldrb r3, [r7, #7]
8008298: 4a4b ldr r2, [pc, #300] ; (80083c8 <DrawChannel_4+0x17dc>)
800829a: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800829e: 332d adds r3, #45 ; 0x2d
80082a0: b298 uxth r0, r3
80082a2: 79fb ldrb r3, [r7, #7]
80082a4: 4a49 ldr r2, [pc, #292] ; (80083cc <DrawChannel_4+0x17e0>)
80082a6: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
80082aa: 79fb ldrb r3, [r7, #7]
80082ac: 4a3e ldr r2, [pc, #248] ; (80083a8 <DrawChannel_4+0x17bc>)
80082ae: 015b lsls r3, r3, #5
80082b0: 4413 add r3, r2
80082b2: 881b ldrh r3, [r3, #0]
80082b4: b29b uxth r3, r3
80082b6: 4619 mov r1, r3
80082b8: 79fb ldrb r3, [r7, #7]
80082ba: 4a3b ldr r2, [pc, #236] ; (80083a8 <DrawChannel_4+0x17bc>)
80082bc: 015b lsls r3, r3, #5
80082be: 4413 add r3, r2
80082c0: 3312 adds r3, #18
80082c2: 881b ldrh r3, [r3, #0]
80082c4: b29b uxth r3, r3
80082c6: 461d mov r5, r3
80082c8: 4a41 ldr r2, [pc, #260] ; (80083d0 <DrawChannel_4+0x17e4>)
80082ca: 460b mov r3, r1
80082cc: 005b lsls r3, r3, #1
80082ce: 440b add r3, r1
80082d0: 442b add r3, r5
80082d2: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80082d6: 2303 movs r3, #3
80082d8: 4621 mov r1, r4
80082da: f7fc f9d3 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
80082de: 79fb ldrb r3, [r7, #7]
80082e0: 4a3c ldr r2, [pc, #240] ; (80083d4 <DrawChannel_4+0x17e8>)
80082e2: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80082e6: 79fb ldrb r3, [r7, #7]
80082e8: 4a3b ldr r2, [pc, #236] ; (80083d8 <DrawChannel_4+0x17ec>)
80082ea: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
80082ee: 79fb ldrb r3, [r7, #7]
80082f0: 4a2d ldr r2, [pc, #180] ; (80083a8 <DrawChannel_4+0x17bc>)
80082f2: 015b lsls r3, r3, #5
80082f4: 4413 add r3, r2
80082f6: 3312 adds r3, #18
80082f8: 881b ldrh r3, [r3, #0]
80082fa: b29b uxth r3, r3
80082fc: 461a mov r2, r3
80082fe: 4937 ldr r1, [pc, #220] ; (80083dc <DrawChannel_4+0x17f0>)
8008300: 4613 mov r3, r2
8008302: 009b lsls r3, r3, #2
8008304: 4413 add r3, r2
8008306: 009a lsls r2, r3, #2
8008308: 4413 add r3, r2
800830a: 6afa ldr r2, [r7, #44] ; 0x2c
800830c: 4413 add r3, r2
800830e: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008312: 2303 movs r3, #3
8008314: 4621 mov r1, r4
8008316: f7fc f9b5 bl 8004684 <BSP_LCD_DisplayStringAt>
}
800831a: f003 b9a6 b.w 800b66a <DrawChannel_4+0x4a7e>
if(menupos == Val)
800831e: 4b30 ldr r3, [pc, #192] ; (80083e0 <DrawChannel_4+0x17f4>)
8008320: 781b ldrb r3, [r3, #0]
8008322: b2db uxtb r3, r3
8008324: 2b04 cmp r3, #4
8008326: f040 81e1 bne.w 80086ec <DrawChannel_4+0x1b00>
if(ACTIVE_CHANNEL == ch)
800832a: 79fa ldrb r2, [r7, #7]
800832c: 4b2d ldr r3, [pc, #180] ; (80083e4 <DrawChannel_4+0x17f8>)
800832e: 681b ldr r3, [r3, #0]
8008330: 429a cmp r2, r3
8008332: f040 810a bne.w 800854a <DrawChannel_4+0x195e>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8008336: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800833a: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800833e: f7fc f8db bl 80044f8 <LCD_SetColors>
if(focused)
8008342: 4b29 ldr r3, [pc, #164] ; (80083e8 <DrawChannel_4+0x17fc>)
8008344: 781b ldrb r3, [r3, #0]
8008346: b2db uxtb r3, r3
8008348: 2b00 cmp r3, #0
800834a: d04f beq.n 80083ec <DrawChannel_4+0x1800>
if(blk)
800834c: 683b ldr r3, [r7, #0]
800834e: 2b00 cmp r3, #0
8008350: d070 beq.n 8008434 <DrawChannel_4+0x1848>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
8008352: 79fb ldrb r3, [r7, #7]
8008354: 4a1c ldr r2, [pc, #112] ; (80083c8 <DrawChannel_4+0x17dc>)
8008356: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800835a: 332d adds r3, #45 ; 0x2d
800835c: b298 uxth r0, r3
800835e: 79fb ldrb r3, [r7, #7]
8008360: 4a1a ldr r2, [pc, #104] ; (80083cc <DrawChannel_4+0x17e0>)
8008362: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8008366: 79fb ldrb r3, [r7, #7]
8008368: 4a0f ldr r2, [pc, #60] ; (80083a8 <DrawChannel_4+0x17bc>)
800836a: 015b lsls r3, r3, #5
800836c: 4413 add r3, r2
800836e: 881b ldrh r3, [r3, #0]
8008370: b29b uxth r3, r3
8008372: 4619 mov r1, r3
8008374: 79fb ldrb r3, [r7, #7]
8008376: 4a0c ldr r2, [pc, #48] ; (80083a8 <DrawChannel_4+0x17bc>)
8008378: 015b lsls r3, r3, #5
800837a: 4413 add r3, r2
800837c: 3312 adds r3, #18
800837e: 881b ldrh r3, [r3, #0]
8008380: b29b uxth r3, r3
8008382: 461d mov r5, r3
8008384: 4a12 ldr r2, [pc, #72] ; (80083d0 <DrawChannel_4+0x17e4>)
8008386: 460b mov r3, r1
8008388: 005b lsls r3, r3, #1
800838a: 440b add r3, r1
800838c: 442b add r3, r5
800838e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008392: 2303 movs r3, #3
8008394: 4621 mov r1, r4
8008396: f7fc f975 bl 8004684 <BSP_LCD_DisplayStringAt>
800839a: e04b b.n 8008434 <DrawChannel_4+0x1848>
800839c: ffd8aa57 .word 0xffd8aa57
80083a0: 08015534 .word 0x08015534
80083a4: 0801553c .word 0x0801553c
80083a8: 2006b510 .word 0x2006b510
80083ac: 20020030 .word 0x20020030
80083b0: 08015544 .word 0x08015544
80083b4: 0801554c .word 0x0801554c
80083b8: 20020040 .word 0x20020040
80083bc: 08015554 .word 0x08015554
80083c0: 0801555c .word 0x0801555c
80083c4: 20020068 .word 0x20020068
80083c8: 08015564 .word 0x08015564
80083cc: 0801556c .word 0x0801556c
80083d0: 200200a8 .word 0x200200a8
80083d4: 08015574 .word 0x08015574
80083d8: 0801557c .word 0x0801557c
80083dc: 200200c0 .word 0x200200c0
80083e0: 20020010 .word 0x20020010
80083e4: 2006b2d0 .word 0x2006b2d0
80083e8: 20020250 .word 0x20020250
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
80083ec: 79fb ldrb r3, [r7, #7]
80083ee: 4aae ldr r2, [pc, #696] ; (80086a8 <DrawChannel_4+0x1abc>)
80083f0: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
80083f4: 332d adds r3, #45 ; 0x2d
80083f6: b298 uxth r0, r3
80083f8: 79fb ldrb r3, [r7, #7]
80083fa: 4aac ldr r2, [pc, #688] ; (80086ac <DrawChannel_4+0x1ac0>)
80083fc: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8008400: 79fb ldrb r3, [r7, #7]
8008402: 4aab ldr r2, [pc, #684] ; (80086b0 <DrawChannel_4+0x1ac4>)
8008404: 015b lsls r3, r3, #5
8008406: 4413 add r3, r2
8008408: 881b ldrh r3, [r3, #0]
800840a: b29b uxth r3, r3
800840c: 4619 mov r1, r3
800840e: 79fb ldrb r3, [r7, #7]
8008410: 4aa7 ldr r2, [pc, #668] ; (80086b0 <DrawChannel_4+0x1ac4>)
8008412: 015b lsls r3, r3, #5
8008414: 4413 add r3, r2
8008416: 3312 adds r3, #18
8008418: 881b ldrh r3, [r3, #0]
800841a: b29b uxth r3, r3
800841c: 461d mov r5, r3
800841e: 4aa5 ldr r2, [pc, #660] ; (80086b4 <DrawChannel_4+0x1ac8>)
8008420: 460b mov r3, r1
8008422: 005b lsls r3, r3, #1
8008424: 440b add r3, r1
8008426: 442b add r3, r5
8008428: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800842c: 2303 movs r3, #3
800842e: 4621 mov r1, r4
8008430: f7fc f928 bl 8004684 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8008434: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008438: 489f ldr r0, [pc, #636] ; (80086b8 <DrawChannel_4+0x1acc>)
800843a: f7fc f85d bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
800843e: 79fb ldrb r3, [r7, #7]
8008440: 4a9e ldr r2, [pc, #632] ; (80086bc <DrawChannel_4+0x1ad0>)
8008442: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8008446: 79fb ldrb r3, [r7, #7]
8008448: 4a9d ldr r2, [pc, #628] ; (80086c0 <DrawChannel_4+0x1ad4>)
800844a: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800844e: 4b98 ldr r3, [pc, #608] ; (80086b0 <DrawChannel_4+0x1ac4>)
8008450: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008454: b29b uxth r3, r3
8008456: 461d mov r5, r3
8008458: 79fb ldrb r3, [r7, #7]
800845a: 4a95 ldr r2, [pc, #596] ; (80086b0 <DrawChannel_4+0x1ac4>)
800845c: 015b lsls r3, r3, #5
800845e: 4413 add r3, r2
8008460: 881b ldrh r3, [r3, #0]
8008462: b29b uxth r3, r3
8008464: 461c mov r4, r3
8008466: 4a97 ldr r2, [pc, #604] ; (80086c4 <DrawChannel_4+0x1ad8>)
8008468: 006b lsls r3, r5, #1
800846a: 4423 add r3, r4
800846c: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008470: 2303 movs r3, #3
8008472: f7fc f907 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
8008476: 79fb ldrb r3, [r7, #7]
8008478: 4a93 ldr r2, [pc, #588] ; (80086c8 <DrawChannel_4+0x1adc>)
800847a: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800847e: 79fb ldrb r3, [r7, #7]
8008480: 4a92 ldr r2, [pc, #584] ; (80086cc <DrawChannel_4+0x1ae0>)
8008482: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8008486: 4b8a ldr r3, [pc, #552] ; (80086b0 <DrawChannel_4+0x1ac4>)
8008488: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800848c: b29b uxth r3, r3
800848e: 4619 mov r1, r3
8008490: 79fb ldrb r3, [r7, #7]
8008492: 4a87 ldr r2, [pc, #540] ; (80086b0 <DrawChannel_4+0x1ac4>)
8008494: 015b lsls r3, r3, #5
8008496: 4413 add r3, r2
8008498: 3302 adds r3, #2
800849a: 881b ldrh r3, [r3, #0]
800849c: b29b uxth r3, r3
800849e: 461d mov r5, r3
80084a0: 4a8b ldr r2, [pc, #556] ; (80086d0 <DrawChannel_4+0x1ae4>)
80084a2: 460b mov r3, r1
80084a4: 009b lsls r3, r3, #2
80084a6: 440b add r3, r1
80084a8: 442b add r3, r5
80084aa: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80084ae: 2303 movs r3, #3
80084b0: 4621 mov r1, r4
80084b2: f7fc f8e7 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
80084b6: 79fb ldrb r3, [r7, #7]
80084b8: 4a86 ldr r2, [pc, #536] ; (80086d4 <DrawChannel_4+0x1ae8>)
80084ba: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80084be: 79fb ldrb r3, [r7, #7]
80084c0: 4a85 ldr r2, [pc, #532] ; (80086d8 <DrawChannel_4+0x1aec>)
80084c2: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80084c6: 4b7a ldr r3, [pc, #488] ; (80086b0 <DrawChannel_4+0x1ac4>)
80084c8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80084cc: b29b uxth r3, r3
80084ce: 461d mov r5, r3
80084d0: 79fb ldrb r3, [r7, #7]
80084d2: 4a77 ldr r2, [pc, #476] ; (80086b0 <DrawChannel_4+0x1ac4>)
80084d4: 015b lsls r3, r3, #5
80084d6: 4413 add r3, r2
80084d8: 3304 adds r3, #4
80084da: 881b ldrh r3, [r3, #0]
80084dc: b29b uxth r3, r3
80084de: 461c mov r4, r3
80084e0: 4a7e ldr r2, [pc, #504] ; (80086dc <DrawChannel_4+0x1af0>)
80084e2: 00eb lsls r3, r5, #3
80084e4: 4423 add r3, r4
80084e6: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80084ea: 2303 movs r3, #3
80084ec: f7fc f8ca bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE);
80084f0: 79fb ldrb r3, [r7, #7]
80084f2: 4a6d ldr r2, [pc, #436] ; (80086a8 <DrawChannel_4+0x1abc>)
80084f4: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80084f8: 79fb ldrb r3, [r7, #7]
80084fa: 4a6c ldr r2, [pc, #432] ; (80086ac <DrawChannel_4+0x1ac0>)
80084fc: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008500: f107 0208 add.w r2, r7, #8
8008504: 2303 movs r3, #3
8008506: f7fc f8bd bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800850a: 79fb ldrb r3, [r7, #7]
800850c: 4a74 ldr r2, [pc, #464] ; (80086e0 <DrawChannel_4+0x1af4>)
800850e: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8008512: 79fb ldrb r3, [r7, #7]
8008514: 4a73 ldr r2, [pc, #460] ; (80086e4 <DrawChannel_4+0x1af8>)
8008516: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800851a: 79fb ldrb r3, [r7, #7]
800851c: 4a64 ldr r2, [pc, #400] ; (80086b0 <DrawChannel_4+0x1ac4>)
800851e: 015b lsls r3, r3, #5
8008520: 4413 add r3, r2
8008522: 3312 adds r3, #18
8008524: 881b ldrh r3, [r3, #0]
8008526: b29b uxth r3, r3
8008528: 461a mov r2, r3
800852a: 496f ldr r1, [pc, #444] ; (80086e8 <DrawChannel_4+0x1afc>)
800852c: 4613 mov r3, r2
800852e: 009b lsls r3, r3, #2
8008530: 4413 add r3, r2
8008532: 009a lsls r2, r3, #2
8008534: 4413 add r3, r2
8008536: 6afa ldr r2, [r7, #44] ; 0x2c
8008538: 4413 add r3, r2
800853a: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800853e: 2303 movs r3, #3
8008540: 4621 mov r1, r4
8008542: f7fc f89f bl 8004684 <BSP_LCD_DisplayStringAt>
}
8008546: f003 b890 b.w 800b66a <DrawChannel_4+0x4a7e>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800854a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800854e: 485a ldr r0, [pc, #360] ; (80086b8 <DrawChannel_4+0x1acc>)
8008550: f7fb ffd2 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
8008554: 79fb ldrb r3, [r7, #7]
8008556: 4a59 ldr r2, [pc, #356] ; (80086bc <DrawChannel_4+0x1ad0>)
8008558: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800855c: 79fb ldrb r3, [r7, #7]
800855e: 4a58 ldr r2, [pc, #352] ; (80086c0 <DrawChannel_4+0x1ad4>)
8008560: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008564: 4b52 ldr r3, [pc, #328] ; (80086b0 <DrawChannel_4+0x1ac4>)
8008566: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800856a: b29b uxth r3, r3
800856c: 461d mov r5, r3
800856e: 79fb ldrb r3, [r7, #7]
8008570: 4a4f ldr r2, [pc, #316] ; (80086b0 <DrawChannel_4+0x1ac4>)
8008572: 015b lsls r3, r3, #5
8008574: 4413 add r3, r2
8008576: 881b ldrh r3, [r3, #0]
8008578: b29b uxth r3, r3
800857a: 461c mov r4, r3
800857c: 4a51 ldr r2, [pc, #324] ; (80086c4 <DrawChannel_4+0x1ad8>)
800857e: 006b lsls r3, r5, #1
8008580: 4423 add r3, r4
8008582: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008586: 2303 movs r3, #3
8008588: f7fc f87c bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800858c: 79fb ldrb r3, [r7, #7]
800858e: 4a4e ldr r2, [pc, #312] ; (80086c8 <DrawChannel_4+0x1adc>)
8008590: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8008594: 79fb ldrb r3, [r7, #7]
8008596: 4a4d ldr r2, [pc, #308] ; (80086cc <DrawChannel_4+0x1ae0>)
8008598: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800859c: 4b44 ldr r3, [pc, #272] ; (80086b0 <DrawChannel_4+0x1ac4>)
800859e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80085a2: b29b uxth r3, r3
80085a4: 4619 mov r1, r3
80085a6: 79fb ldrb r3, [r7, #7]
80085a8: 4a41 ldr r2, [pc, #260] ; (80086b0 <DrawChannel_4+0x1ac4>)
80085aa: 015b lsls r3, r3, #5
80085ac: 4413 add r3, r2
80085ae: 3302 adds r3, #2
80085b0: 881b ldrh r3, [r3, #0]
80085b2: b29b uxth r3, r3
80085b4: 461d mov r5, r3
80085b6: 4a46 ldr r2, [pc, #280] ; (80086d0 <DrawChannel_4+0x1ae4>)
80085b8: 460b mov r3, r1
80085ba: 009b lsls r3, r3, #2
80085bc: 440b add r3, r1
80085be: 442b add r3, r5
80085c0: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80085c4: 2303 movs r3, #3
80085c6: 4621 mov r1, r4
80085c8: f7fc f85c bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
80085cc: 79fb ldrb r3, [r7, #7]
80085ce: 4a41 ldr r2, [pc, #260] ; (80086d4 <DrawChannel_4+0x1ae8>)
80085d0: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80085d4: 79fb ldrb r3, [r7, #7]
80085d6: 4a40 ldr r2, [pc, #256] ; (80086d8 <DrawChannel_4+0x1aec>)
80085d8: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80085dc: 4b34 ldr r3, [pc, #208] ; (80086b0 <DrawChannel_4+0x1ac4>)
80085de: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80085e2: b29b uxth r3, r3
80085e4: 461d mov r5, r3
80085e6: 79fb ldrb r3, [r7, #7]
80085e8: 4a31 ldr r2, [pc, #196] ; (80086b0 <DrawChannel_4+0x1ac4>)
80085ea: 015b lsls r3, r3, #5
80085ec: 4413 add r3, r2
80085ee: 3304 adds r3, #4
80085f0: 881b ldrh r3, [r3, #0]
80085f2: b29b uxth r3, r3
80085f4: 461c mov r4, r3
80085f6: 4a39 ldr r2, [pc, #228] ; (80086dc <DrawChannel_4+0x1af0>)
80085f8: 00eb lsls r3, r5, #3
80085fa: 4423 add r3, r4
80085fc: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008600: 2303 movs r3, #3
8008602: f7fc f83f bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE);
8008606: 79fb ldrb r3, [r7, #7]
8008608: 4a27 ldr r2, [pc, #156] ; (80086a8 <DrawChannel_4+0x1abc>)
800860a: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800860e: 79fb ldrb r3, [r7, #7]
8008610: 4a26 ldr r2, [pc, #152] ; (80086ac <DrawChannel_4+0x1ac0>)
8008612: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008616: f107 0208 add.w r2, r7, #8
800861a: 2303 movs r3, #3
800861c: f7fc f832 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
8008620: 79fb ldrb r3, [r7, #7]
8008622: 4a21 ldr r2, [pc, #132] ; (80086a8 <DrawChannel_4+0x1abc>)
8008624: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008628: 332d adds r3, #45 ; 0x2d
800862a: b298 uxth r0, r3
800862c: 79fb ldrb r3, [r7, #7]
800862e: 4a1f ldr r2, [pc, #124] ; (80086ac <DrawChannel_4+0x1ac0>)
8008630: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8008634: 79fb ldrb r3, [r7, #7]
8008636: 4a1e ldr r2, [pc, #120] ; (80086b0 <DrawChannel_4+0x1ac4>)
8008638: 015b lsls r3, r3, #5
800863a: 4413 add r3, r2
800863c: 881b ldrh r3, [r3, #0]
800863e: b29b uxth r3, r3
8008640: 4619 mov r1, r3
8008642: 79fb ldrb r3, [r7, #7]
8008644: 4a1a ldr r2, [pc, #104] ; (80086b0 <DrawChannel_4+0x1ac4>)
8008646: 015b lsls r3, r3, #5
8008648: 4413 add r3, r2
800864a: 3312 adds r3, #18
800864c: 881b ldrh r3, [r3, #0]
800864e: b29b uxth r3, r3
8008650: 461d mov r5, r3
8008652: 4a18 ldr r2, [pc, #96] ; (80086b4 <DrawChannel_4+0x1ac8>)
8008654: 460b mov r3, r1
8008656: 005b lsls r3, r3, #1
8008658: 440b add r3, r1
800865a: 442b add r3, r5
800865c: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008660: 2303 movs r3, #3
8008662: 4621 mov r1, r4
8008664: f7fc f80e bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
8008668: 79fb ldrb r3, [r7, #7]
800866a: 4a1d ldr r2, [pc, #116] ; (80086e0 <DrawChannel_4+0x1af4>)
800866c: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8008670: 79fb ldrb r3, [r7, #7]
8008672: 4a1c ldr r2, [pc, #112] ; (80086e4 <DrawChannel_4+0x1af8>)
8008674: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8008678: 79fb ldrb r3, [r7, #7]
800867a: 4a0d ldr r2, [pc, #52] ; (80086b0 <DrawChannel_4+0x1ac4>)
800867c: 015b lsls r3, r3, #5
800867e: 4413 add r3, r2
8008680: 3312 adds r3, #18
8008682: 881b ldrh r3, [r3, #0]
8008684: b29b uxth r3, r3
8008686: 461a mov r2, r3
8008688: 4917 ldr r1, [pc, #92] ; (80086e8 <DrawChannel_4+0x1afc>)
800868a: 4613 mov r3, r2
800868c: 009b lsls r3, r3, #2
800868e: 4413 add r3, r2
8008690: 009a lsls r2, r3, #2
8008692: 4413 add r3, r2
8008694: 6afa ldr r2, [r7, #44] ; 0x2c
8008696: 4413 add r3, r2
8008698: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800869c: 2303 movs r3, #3
800869e: 4621 mov r1, r4
80086a0: f7fb fff0 bl 8004684 <BSP_LCD_DisplayStringAt>
}
80086a4: f002 bfe1 b.w 800b66a <DrawChannel_4+0x4a7e>
80086a8: 08015564 .word 0x08015564
80086ac: 0801556c .word 0x0801556c
80086b0: 2006b510 .word 0x2006b510
80086b4: 200200a8 .word 0x200200a8
80086b8: ffd8aa57 .word 0xffd8aa57
80086bc: 08015534 .word 0x08015534
80086c0: 0801553c .word 0x0801553c
80086c4: 20020030 .word 0x20020030
80086c8: 08015544 .word 0x08015544
80086cc: 0801554c .word 0x0801554c
80086d0: 20020040 .word 0x20020040
80086d4: 08015554 .word 0x08015554
80086d8: 0801555c .word 0x0801555c
80086dc: 20020068 .word 0x20020068
80086e0: 08015574 .word 0x08015574
80086e4: 0801557c .word 0x0801557c
80086e8: 200200c0 .word 0x200200c0
if(menupos == Out)
80086ec: 4b73 ldr r3, [pc, #460] ; (80088bc <DrawChannel_4+0x1cd0>)
80086ee: 781b ldrb r3, [r3, #0]
80086f0: b2db uxtb r3, r3
80086f2: 2b05 cmp r3, #5
80086f4: f040 81b9 bne.w 8008a6a <DrawChannel_4+0x1e7e>
if(ACTIVE_CHANNEL == ch)
80086f8: 79fa ldrb r2, [r7, #7]
80086fa: 4b71 ldr r3, [pc, #452] ; (80088c0 <DrawChannel_4+0x1cd4>)
80086fc: 681b ldr r3, [r3, #0]
80086fe: 429a cmp r2, r3
8008700: f040 8104 bne.w 800890c <DrawChannel_4+0x1d20>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8008704: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008708: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800870c: f7fb fef4 bl 80044f8 <LCD_SetColors>
if(focused)
8008710: 4b6c ldr r3, [pc, #432] ; (80088c4 <DrawChannel_4+0x1cd8>)
8008712: 781b ldrb r3, [r3, #0]
8008714: b2db uxtb r3, r3
8008716: 2b00 cmp r3, #0
8008718: d021 beq.n 800875e <DrawChannel_4+0x1b72>
if(blk)
800871a: 683b ldr r3, [r7, #0]
800871c: 2b00 cmp r3, #0
800871e: d03c beq.n 800879a <DrawChannel_4+0x1bae>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
8008720: 79fb ldrb r3, [r7, #7]
8008722: 4a69 ldr r2, [pc, #420] ; (80088c8 <DrawChannel_4+0x1cdc>)
8008724: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8008728: 79fb ldrb r3, [r7, #7]
800872a: 4a68 ldr r2, [pc, #416] ; (80088cc <DrawChannel_4+0x1ce0>)
800872c: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8008730: 79fb ldrb r3, [r7, #7]
8008732: 4a67 ldr r2, [pc, #412] ; (80088d0 <DrawChannel_4+0x1ce4>)
8008734: 015b lsls r3, r3, #5
8008736: 4413 add r3, r2
8008738: 3312 adds r3, #18
800873a: 881b ldrh r3, [r3, #0]
800873c: b29b uxth r3, r3
800873e: 461a mov r2, r3
8008740: 4964 ldr r1, [pc, #400] ; (80088d4 <DrawChannel_4+0x1ce8>)
8008742: 4613 mov r3, r2
8008744: 009b lsls r3, r3, #2
8008746: 4413 add r3, r2
8008748: 009a lsls r2, r3, #2
800874a: 4413 add r3, r2
800874c: 6afa ldr r2, [r7, #44] ; 0x2c
800874e: 4413 add r3, r2
8008750: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008754: 2303 movs r3, #3
8008756: 4621 mov r1, r4
8008758: f7fb ff94 bl 8004684 <BSP_LCD_DisplayStringAt>
800875c: e01d b.n 800879a <DrawChannel_4+0x1bae>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800875e: 79fb ldrb r3, [r7, #7]
8008760: 4a59 ldr r2, [pc, #356] ; (80088c8 <DrawChannel_4+0x1cdc>)
8008762: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8008766: 79fb ldrb r3, [r7, #7]
8008768: 4a58 ldr r2, [pc, #352] ; (80088cc <DrawChannel_4+0x1ce0>)
800876a: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800876e: 79fb ldrb r3, [r7, #7]
8008770: 4a57 ldr r2, [pc, #348] ; (80088d0 <DrawChannel_4+0x1ce4>)
8008772: 015b lsls r3, r3, #5
8008774: 4413 add r3, r2
8008776: 3312 adds r3, #18
8008778: 881b ldrh r3, [r3, #0]
800877a: b29b uxth r3, r3
800877c: 461a mov r2, r3
800877e: 4955 ldr r1, [pc, #340] ; (80088d4 <DrawChannel_4+0x1ce8>)
8008780: 4613 mov r3, r2
8008782: 009b lsls r3, r3, #2
8008784: 4413 add r3, r2
8008786: 009a lsls r2, r3, #2
8008788: 4413 add r3, r2
800878a: 6afa ldr r2, [r7, #44] ; 0x2c
800878c: 4413 add r3, r2
800878e: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008792: 2303 movs r3, #3
8008794: 4621 mov r1, r4
8008796: f7fb ff75 bl 8004684 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800879a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800879e: 484e ldr r0, [pc, #312] ; (80088d8 <DrawChannel_4+0x1cec>)
80087a0: f7fb feaa bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
80087a4: 79fb ldrb r3, [r7, #7]
80087a6: 4a4d ldr r2, [pc, #308] ; (80088dc <DrawChannel_4+0x1cf0>)
80087a8: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80087ac: 79fb ldrb r3, [r7, #7]
80087ae: 4a4c ldr r2, [pc, #304] ; (80088e0 <DrawChannel_4+0x1cf4>)
80087b0: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80087b4: 4b46 ldr r3, [pc, #280] ; (80088d0 <DrawChannel_4+0x1ce4>)
80087b6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80087ba: b29b uxth r3, r3
80087bc: 461d mov r5, r3
80087be: 79fb ldrb r3, [r7, #7]
80087c0: 4a43 ldr r2, [pc, #268] ; (80088d0 <DrawChannel_4+0x1ce4>)
80087c2: 015b lsls r3, r3, #5
80087c4: 4413 add r3, r2
80087c6: 881b ldrh r3, [r3, #0]
80087c8: b29b uxth r3, r3
80087ca: 461c mov r4, r3
80087cc: 4a45 ldr r2, [pc, #276] ; (80088e4 <DrawChannel_4+0x1cf8>)
80087ce: 006b lsls r3, r5, #1
80087d0: 4423 add r3, r4
80087d2: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80087d6: 2303 movs r3, #3
80087d8: f7fb ff54 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
80087dc: 79fb ldrb r3, [r7, #7]
80087de: 4a42 ldr r2, [pc, #264] ; (80088e8 <DrawChannel_4+0x1cfc>)
80087e0: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80087e4: 79fb ldrb r3, [r7, #7]
80087e6: 4a41 ldr r2, [pc, #260] ; (80088ec <DrawChannel_4+0x1d00>)
80087e8: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
80087ec: 4b38 ldr r3, [pc, #224] ; (80088d0 <DrawChannel_4+0x1ce4>)
80087ee: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80087f2: b29b uxth r3, r3
80087f4: 4619 mov r1, r3
80087f6: 79fb ldrb r3, [r7, #7]
80087f8: 4a35 ldr r2, [pc, #212] ; (80088d0 <DrawChannel_4+0x1ce4>)
80087fa: 015b lsls r3, r3, #5
80087fc: 4413 add r3, r2
80087fe: 3302 adds r3, #2
8008800: 881b ldrh r3, [r3, #0]
8008802: b29b uxth r3, r3
8008804: 461d mov r5, r3
8008806: 4a3a ldr r2, [pc, #232] ; (80088f0 <DrawChannel_4+0x1d04>)
8008808: 460b mov r3, r1
800880a: 009b lsls r3, r3, #2
800880c: 440b add r3, r1
800880e: 442b add r3, r5
8008810: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008814: 2303 movs r3, #3
8008816: 4621 mov r1, r4
8008818: f7fb ff34 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800881c: 79fb ldrb r3, [r7, #7]
800881e: 4a35 ldr r2, [pc, #212] ; (80088f4 <DrawChannel_4+0x1d08>)
8008820: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8008824: 79fb ldrb r3, [r7, #7]
8008826: 4a34 ldr r2, [pc, #208] ; (80088f8 <DrawChannel_4+0x1d0c>)
8008828: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800882c: 4b28 ldr r3, [pc, #160] ; (80088d0 <DrawChannel_4+0x1ce4>)
800882e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008832: b29b uxth r3, r3
8008834: 461d mov r5, r3
8008836: 79fb ldrb r3, [r7, #7]
8008838: 4a25 ldr r2, [pc, #148] ; (80088d0 <DrawChannel_4+0x1ce4>)
800883a: 015b lsls r3, r3, #5
800883c: 4413 add r3, r2
800883e: 3304 adds r3, #4
8008840: 881b ldrh r3, [r3, #0]
8008842: b29b uxth r3, r3
8008844: 461c mov r4, r3
8008846: 4a2d ldr r2, [pc, #180] ; (80088fc <DrawChannel_4+0x1d10>)
8008848: 00eb lsls r3, r5, #3
800884a: 4423 add r3, r4
800884c: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008850: 2303 movs r3, #3
8008852: f7fb ff17 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE);
8008856: 79fb ldrb r3, [r7, #7]
8008858: 4a29 ldr r2, [pc, #164] ; (8008900 <DrawChannel_4+0x1d14>)
800885a: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800885e: 79fb ldrb r3, [r7, #7]
8008860: 4a28 ldr r2, [pc, #160] ; (8008904 <DrawChannel_4+0x1d18>)
8008862: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008866: f107 0208 add.w r2, r7, #8
800886a: 2303 movs r3, #3
800886c: f7fb ff0a bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
8008870: 79fb ldrb r3, [r7, #7]
8008872: 4a23 ldr r2, [pc, #140] ; (8008900 <DrawChannel_4+0x1d14>)
8008874: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008878: 332d adds r3, #45 ; 0x2d
800887a: b298 uxth r0, r3
800887c: 79fb ldrb r3, [r7, #7]
800887e: 4a21 ldr r2, [pc, #132] ; (8008904 <DrawChannel_4+0x1d18>)
8008880: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8008884: 79fb ldrb r3, [r7, #7]
8008886: 4a12 ldr r2, [pc, #72] ; (80088d0 <DrawChannel_4+0x1ce4>)
8008888: 015b lsls r3, r3, #5
800888a: 4413 add r3, r2
800888c: 881b ldrh r3, [r3, #0]
800888e: b29b uxth r3, r3
8008890: 4619 mov r1, r3
8008892: 79fb ldrb r3, [r7, #7]
8008894: 4a0e ldr r2, [pc, #56] ; (80088d0 <DrawChannel_4+0x1ce4>)
8008896: 015b lsls r3, r3, #5
8008898: 4413 add r3, r2
800889a: 3312 adds r3, #18
800889c: 881b ldrh r3, [r3, #0]
800889e: b29b uxth r3, r3
80088a0: 461d mov r5, r3
80088a2: 4a19 ldr r2, [pc, #100] ; (8008908 <DrawChannel_4+0x1d1c>)
80088a4: 460b mov r3, r1
80088a6: 005b lsls r3, r3, #1
80088a8: 440b add r3, r1
80088aa: 442b add r3, r5
80088ac: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80088b0: 2303 movs r3, #3
80088b2: 4621 mov r1, r4
80088b4: f7fb fee6 bl 8004684 <BSP_LCD_DisplayStringAt>
}
80088b8: f002 bed7 b.w 800b66a <DrawChannel_4+0x4a7e>
80088bc: 20020010 .word 0x20020010
80088c0: 2006b2d0 .word 0x2006b2d0
80088c4: 20020250 .word 0x20020250
80088c8: 08015574 .word 0x08015574
80088cc: 0801557c .word 0x0801557c
80088d0: 2006b510 .word 0x2006b510
80088d4: 200200c0 .word 0x200200c0
80088d8: ffd8aa57 .word 0xffd8aa57
80088dc: 08015534 .word 0x08015534
80088e0: 0801553c .word 0x0801553c
80088e4: 20020030 .word 0x20020030
80088e8: 08015544 .word 0x08015544
80088ec: 0801554c .word 0x0801554c
80088f0: 20020040 .word 0x20020040
80088f4: 08015554 .word 0x08015554
80088f8: 0801555c .word 0x0801555c
80088fc: 20020068 .word 0x20020068
8008900: 08015564 .word 0x08015564
8008904: 0801556c .word 0x0801556c
8008908: 200200a8 .word 0x200200a8
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800890c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008910: 488c ldr r0, [pc, #560] ; (8008b44 <DrawChannel_4+0x1f58>)
8008912: f7fb fdf1 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
8008916: 79fb ldrb r3, [r7, #7]
8008918: 4a8b ldr r2, [pc, #556] ; (8008b48 <DrawChannel_4+0x1f5c>)
800891a: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800891e: 79fb ldrb r3, [r7, #7]
8008920: 4a8a ldr r2, [pc, #552] ; (8008b4c <DrawChannel_4+0x1f60>)
8008922: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008926: 4b8a ldr r3, [pc, #552] ; (8008b50 <DrawChannel_4+0x1f64>)
8008928: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800892c: b29b uxth r3, r3
800892e: 461d mov r5, r3
8008930: 79fb ldrb r3, [r7, #7]
8008932: 4a87 ldr r2, [pc, #540] ; (8008b50 <DrawChannel_4+0x1f64>)
8008934: 015b lsls r3, r3, #5
8008936: 4413 add r3, r2
8008938: 881b ldrh r3, [r3, #0]
800893a: b29b uxth r3, r3
800893c: 461c mov r4, r3
800893e: 4a85 ldr r2, [pc, #532] ; (8008b54 <DrawChannel_4+0x1f68>)
8008940: 006b lsls r3, r5, #1
8008942: 4423 add r3, r4
8008944: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008948: 2303 movs r3, #3
800894a: f7fb fe9b bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800894e: 79fb ldrb r3, [r7, #7]
8008950: 4a81 ldr r2, [pc, #516] ; (8008b58 <DrawChannel_4+0x1f6c>)
8008952: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8008956: 79fb ldrb r3, [r7, #7]
8008958: 4a80 ldr r2, [pc, #512] ; (8008b5c <DrawChannel_4+0x1f70>)
800895a: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800895e: 4b7c ldr r3, [pc, #496] ; (8008b50 <DrawChannel_4+0x1f64>)
8008960: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008964: b29b uxth r3, r3
8008966: 4619 mov r1, r3
8008968: 79fb ldrb r3, [r7, #7]
800896a: 4a79 ldr r2, [pc, #484] ; (8008b50 <DrawChannel_4+0x1f64>)
800896c: 015b lsls r3, r3, #5
800896e: 4413 add r3, r2
8008970: 3302 adds r3, #2
8008972: 881b ldrh r3, [r3, #0]
8008974: b29b uxth r3, r3
8008976: 461d mov r5, r3
8008978: 4a79 ldr r2, [pc, #484] ; (8008b60 <DrawChannel_4+0x1f74>)
800897a: 460b mov r3, r1
800897c: 009b lsls r3, r3, #2
800897e: 440b add r3, r1
8008980: 442b add r3, r5
8008982: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008986: 2303 movs r3, #3
8008988: 4621 mov r1, r4
800898a: f7fb fe7b bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800898e: 79fb ldrb r3, [r7, #7]
8008990: 4a74 ldr r2, [pc, #464] ; (8008b64 <DrawChannel_4+0x1f78>)
8008992: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8008996: 79fb ldrb r3, [r7, #7]
8008998: 4a73 ldr r2, [pc, #460] ; (8008b68 <DrawChannel_4+0x1f7c>)
800899a: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800899e: 4b6c ldr r3, [pc, #432] ; (8008b50 <DrawChannel_4+0x1f64>)
80089a0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80089a4: b29b uxth r3, r3
80089a6: 461d mov r5, r3
80089a8: 79fb ldrb r3, [r7, #7]
80089aa: 4a69 ldr r2, [pc, #420] ; (8008b50 <DrawChannel_4+0x1f64>)
80089ac: 015b lsls r3, r3, #5
80089ae: 4413 add r3, r2
80089b0: 3304 adds r3, #4
80089b2: 881b ldrh r3, [r3, #0]
80089b4: b29b uxth r3, r3
80089b6: 461c mov r4, r3
80089b8: 4a6c ldr r2, [pc, #432] ; (8008b6c <DrawChannel_4+0x1f80>)
80089ba: 00eb lsls r3, r5, #3
80089bc: 4423 add r3, r4
80089be: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80089c2: 2303 movs r3, #3
80089c4: f7fb fe5e bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE);
80089c8: 79fb ldrb r3, [r7, #7]
80089ca: 4a69 ldr r2, [pc, #420] ; (8008b70 <DrawChannel_4+0x1f84>)
80089cc: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80089d0: 79fb ldrb r3, [r7, #7]
80089d2: 4a68 ldr r2, [pc, #416] ; (8008b74 <DrawChannel_4+0x1f88>)
80089d4: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80089d8: f107 0208 add.w r2, r7, #8
80089dc: 2303 movs r3, #3
80089de: f7fb fe51 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
80089e2: 79fb ldrb r3, [r7, #7]
80089e4: 4a62 ldr r2, [pc, #392] ; (8008b70 <DrawChannel_4+0x1f84>)
80089e6: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
80089ea: 332d adds r3, #45 ; 0x2d
80089ec: b298 uxth r0, r3
80089ee: 79fb ldrb r3, [r7, #7]
80089f0: 4a60 ldr r2, [pc, #384] ; (8008b74 <DrawChannel_4+0x1f88>)
80089f2: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
80089f6: 79fb ldrb r3, [r7, #7]
80089f8: 4a55 ldr r2, [pc, #340] ; (8008b50 <DrawChannel_4+0x1f64>)
80089fa: 015b lsls r3, r3, #5
80089fc: 4413 add r3, r2
80089fe: 881b ldrh r3, [r3, #0]
8008a00: b29b uxth r3, r3
8008a02: 4619 mov r1, r3
8008a04: 79fb ldrb r3, [r7, #7]
8008a06: 4a52 ldr r2, [pc, #328] ; (8008b50 <DrawChannel_4+0x1f64>)
8008a08: 015b lsls r3, r3, #5
8008a0a: 4413 add r3, r2
8008a0c: 3312 adds r3, #18
8008a0e: 881b ldrh r3, [r3, #0]
8008a10: b29b uxth r3, r3
8008a12: 461d mov r5, r3
8008a14: 4a58 ldr r2, [pc, #352] ; (8008b78 <DrawChannel_4+0x1f8c>)
8008a16: 460b mov r3, r1
8008a18: 005b lsls r3, r3, #1
8008a1a: 440b add r3, r1
8008a1c: 442b add r3, r5
8008a1e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008a22: 2303 movs r3, #3
8008a24: 4621 mov r1, r4
8008a26: f7fb fe2d bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
8008a2a: 79fb ldrb r3, [r7, #7]
8008a2c: 4a53 ldr r2, [pc, #332] ; (8008b7c <DrawChannel_4+0x1f90>)
8008a2e: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8008a32: 79fb ldrb r3, [r7, #7]
8008a34: 4a52 ldr r2, [pc, #328] ; (8008b80 <DrawChannel_4+0x1f94>)
8008a36: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8008a3a: 79fb ldrb r3, [r7, #7]
8008a3c: 4a44 ldr r2, [pc, #272] ; (8008b50 <DrawChannel_4+0x1f64>)
8008a3e: 015b lsls r3, r3, #5
8008a40: 4413 add r3, r2
8008a42: 3312 adds r3, #18
8008a44: 881b ldrh r3, [r3, #0]
8008a46: b29b uxth r3, r3
8008a48: 461a mov r2, r3
8008a4a: 494e ldr r1, [pc, #312] ; (8008b84 <DrawChannel_4+0x1f98>)
8008a4c: 4613 mov r3, r2
8008a4e: 009b lsls r3, r3, #2
8008a50: 4413 add r3, r2
8008a52: 009a lsls r2, r3, #2
8008a54: 4413 add r3, r2
8008a56: 6afa ldr r2, [r7, #44] ; 0x2c
8008a58: 4413 add r3, r2
8008a5a: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008a5e: 2303 movs r3, #3
8008a60: 4621 mov r1, r4
8008a62: f7fb fe0f bl 8004684 <BSP_LCD_DisplayStringAt>
}
8008a66: f002 be00 b.w 800b66a <DrawChannel_4+0x4a7e>
if(menupos == Kikdt)
8008a6a: 4b47 ldr r3, [pc, #284] ; (8008b88 <DrawChannel_4+0x1f9c>)
8008a6c: 781b ldrb r3, [r3, #0]
8008a6e: b2db uxtb r3, r3
8008a70: 2b06 cmp r3, #6
8008a72: f040 8366 bne.w 8009142 <DrawChannel_4+0x2556>
if(ACTIVE_CHANNEL == ch)
8008a76: 79fa ldrb r2, [r7, #7]
8008a78: 4b44 ldr r3, [pc, #272] ; (8008b8c <DrawChannel_4+0x1fa0>)
8008a7a: 681b ldr r3, [r3, #0]
8008a7c: 429a cmp r2, r3
8008a7e: f040 82b1 bne.w 8008fe4 <DrawChannel_4+0x23f8>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8008a82: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008a86: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8008a8a: f7fb fd35 bl 80044f8 <LCD_SetColors>
if(blk)
8008a8e: 683b ldr r3, [r7, #0]
8008a90: 2b00 cmp r3, #0
8008a92: d00e beq.n 8008ab2 <DrawChannel_4+0x1ec6>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
8008a94: 79fb ldrb r3, [r7, #7]
8008a96: 4a36 ldr r2, [pc, #216] ; (8008b70 <DrawChannel_4+0x1f84>)
8008a98: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8008a9c: 79fb ldrb r3, [r7, #7]
8008a9e: 4a35 ldr r2, [pc, #212] ; (8008b74 <DrawChannel_4+0x1f88>)
8008aa0: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008aa4: 4a3a ldr r2, [pc, #232] ; (8008b90 <DrawChannel_4+0x1fa4>)
8008aa6: 6a7b ldr r3, [r7, #36] ; 0x24
8008aa8: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008aac: 2303 movs r3, #3
8008aae: f7fb fde9 bl 8004684 <BSP_LCD_DisplayStringAt>
if(!ipt)
8008ab2: 6b3b ldr r3, [r7, #48] ; 0x30
8008ab4: 2b00 cmp r3, #0
8008ab6: d16d bne.n 8008b94 <DrawChannel_4+0x1fa8>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
8008ab8: 79fb ldrb r3, [r7, #7]
8008aba: 4a2d ldr r2, [pc, #180] ; (8008b70 <DrawChannel_4+0x1f84>)
8008abc: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008ac0: 3307 adds r3, #7
8008ac2: b298 uxth r0, r3
8008ac4: 79fb ldrb r3, [r7, #7]
8008ac6: 4a2b ldr r2, [pc, #172] ; (8008b74 <DrawChannel_4+0x1f88>)
8008ac8: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008acc: 4a30 ldr r2, [pc, #192] ; (8008b90 <DrawChannel_4+0x1fa4>)
8008ace: 6a3b ldr r3, [r7, #32]
8008ad0: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008ad4: 2303 movs r3, #3
8008ad6: f7fb fdd5 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
8008ada: 79fb ldrb r3, [r7, #7]
8008adc: 4a24 ldr r2, [pc, #144] ; (8008b70 <DrawChannel_4+0x1f84>)
8008ade: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008ae2: 330e adds r3, #14
8008ae4: b298 uxth r0, r3
8008ae6: 79fb ldrb r3, [r7, #7]
8008ae8: 4a22 ldr r2, [pc, #136] ; (8008b74 <DrawChannel_4+0x1f88>)
8008aea: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008aee: 4a28 ldr r2, [pc, #160] ; (8008b90 <DrawChannel_4+0x1fa4>)
8008af0: 69fb ldr r3, [r7, #28]
8008af2: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008af6: 2303 movs r3, #3
8008af8: f7fb fdc4 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
8008afc: 79fb ldrb r3, [r7, #7]
8008afe: 4a1c ldr r2, [pc, #112] ; (8008b70 <DrawChannel_4+0x1f84>)
8008b00: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008b04: 3315 adds r3, #21
8008b06: b298 uxth r0, r3
8008b08: 79fb ldrb r3, [r7, #7]
8008b0a: 4a1a ldr r2, [pc, #104] ; (8008b74 <DrawChannel_4+0x1f88>)
8008b0c: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008b10: 4a1f ldr r2, [pc, #124] ; (8008b90 <DrawChannel_4+0x1fa4>)
8008b12: 69bb ldr r3, [r7, #24]
8008b14: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008b18: 2303 movs r3, #3
8008b1a: f7fb fdb3 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
8008b1e: 79fb ldrb r3, [r7, #7]
8008b20: 4a13 ldr r2, [pc, #76] ; (8008b70 <DrawChannel_4+0x1f84>)
8008b22: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008b26: 331c adds r3, #28
8008b28: b298 uxth r0, r3
8008b2a: 79fb ldrb r3, [r7, #7]
8008b2c: 4a11 ldr r2, [pc, #68] ; (8008b74 <DrawChannel_4+0x1f88>)
8008b2e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008b32: 4a17 ldr r2, [pc, #92] ; (8008b90 <DrawChannel_4+0x1fa4>)
8008b34: 697b ldr r3, [r7, #20]
8008b36: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008b3a: 2303 movs r3, #3
8008b3c: f7fb fda2 bl 8004684 <BSP_LCD_DisplayStringAt>
8008b40: e187 b.n 8008e52 <DrawChannel_4+0x2266>
8008b42: bf00 nop
8008b44: ffd8aa57 .word 0xffd8aa57
8008b48: 08015534 .word 0x08015534
8008b4c: 0801553c .word 0x0801553c
8008b50: 2006b510 .word 0x2006b510
8008b54: 20020030 .word 0x20020030
8008b58: 08015544 .word 0x08015544
8008b5c: 0801554c .word 0x0801554c
8008b60: 20020040 .word 0x20020040
8008b64: 08015554 .word 0x08015554
8008b68: 0801555c .word 0x0801555c
8008b6c: 20020068 .word 0x20020068
8008b70: 08015564 .word 0x08015564
8008b74: 0801556c .word 0x0801556c
8008b78: 200200a8 .word 0x200200a8
8008b7c: 08015574 .word 0x08015574
8008b80: 0801557c .word 0x0801557c
8008b84: 200200c0 .word 0x200200c0
8008b88: 20020010 .word 0x20020010
8008b8c: 2006b2d0 .word 0x2006b2d0
8008b90: 200201ec .word 0x200201ec
if(ipt == 1)
8008b94: 6b3b ldr r3, [r7, #48] ; 0x30
8008b96: 2b01 cmp r3, #1
8008b98: d152 bne.n 8008c40 <DrawChannel_4+0x2054>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
8008b9a: 79fb ldrb r3, [r7, #7]
8008b9c: 4a7e ldr r2, [pc, #504] ; (8008d98 <DrawChannel_4+0x21ac>)
8008b9e: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008ba2: 3307 adds r3, #7
8008ba4: b298 uxth r0, r3
8008ba6: 79fb ldrb r3, [r7, #7]
8008ba8: 4a7c ldr r2, [pc, #496] ; (8008d9c <DrawChannel_4+0x21b0>)
8008baa: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008bae: 4a7c ldr r2, [pc, #496] ; (8008da0 <DrawChannel_4+0x21b4>)
8008bb0: 6a3b ldr r3, [r7, #32]
8008bb2: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008bb6: 2303 movs r3, #3
8008bb8: f7fb fd64 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
8008bbc: 79fb ldrb r3, [r7, #7]
8008bbe: 4a76 ldr r2, [pc, #472] ; (8008d98 <DrawChannel_4+0x21ac>)
8008bc0: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008bc4: 330e adds r3, #14
8008bc6: b298 uxth r0, r3
8008bc8: 79fb ldrb r3, [r7, #7]
8008bca: 4a74 ldr r2, [pc, #464] ; (8008d9c <DrawChannel_4+0x21b0>)
8008bcc: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008bd0: 4a73 ldr r2, [pc, #460] ; (8008da0 <DrawChannel_4+0x21b4>)
8008bd2: 69fb ldr r3, [r7, #28]
8008bd4: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008bd8: 2303 movs r3, #3
8008bda: f7fb fd53 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
8008bde: 79fb ldrb r3, [r7, #7]
8008be0: 4a6d ldr r2, [pc, #436] ; (8008d98 <DrawChannel_4+0x21ac>)
8008be2: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008be6: 3315 adds r3, #21
8008be8: b298 uxth r0, r3
8008bea: 79fb ldrb r3, [r7, #7]
8008bec: 4a6b ldr r2, [pc, #428] ; (8008d9c <DrawChannel_4+0x21b0>)
8008bee: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008bf2: 4a6b ldr r2, [pc, #428] ; (8008da0 <DrawChannel_4+0x21b4>)
8008bf4: 69bb ldr r3, [r7, #24]
8008bf6: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008bfa: 2303 movs r3, #3
8008bfc: f7fb fd42 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], ".", LEFT_MODE);
8008c00: 79fb ldrb r3, [r7, #7]
8008c02: 4a65 ldr r2, [pc, #404] ; (8008d98 <DrawChannel_4+0x21ac>)
8008c04: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008c08: 331c adds r3, #28
8008c0a: b298 uxth r0, r3
8008c0c: 79fb ldrb r3, [r7, #7]
8008c0e: 4a63 ldr r2, [pc, #396] ; (8008d9c <DrawChannel_4+0x21b0>)
8008c10: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008c14: 2303 movs r3, #3
8008c16: 4a63 ldr r2, [pc, #396] ; (8008da4 <DrawChannel_4+0x21b8>)
8008c18: f7fb fd34 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
8008c1c: 79fb ldrb r3, [r7, #7]
8008c1e: 4a5e ldr r2, [pc, #376] ; (8008d98 <DrawChannel_4+0x21ac>)
8008c20: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008c24: 3323 adds r3, #35 ; 0x23
8008c26: b298 uxth r0, r3
8008c28: 79fb ldrb r3, [r7, #7]
8008c2a: 4a5c ldr r2, [pc, #368] ; (8008d9c <DrawChannel_4+0x21b0>)
8008c2c: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008c30: 4a5b ldr r2, [pc, #364] ; (8008da0 <DrawChannel_4+0x21b4>)
8008c32: 697b ldr r3, [r7, #20]
8008c34: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008c38: 2303 movs r3, #3
8008c3a: f7fb fd23 bl 8004684 <BSP_LCD_DisplayStringAt>
8008c3e: e108 b.n 8008e52 <DrawChannel_4+0x2266>
if(ipt == 2)
8008c40: 6b3b ldr r3, [r7, #48] ; 0x30
8008c42: 2b02 cmp r3, #2
8008c44: d152 bne.n 8008cec <DrawChannel_4+0x2100>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
8008c46: 79fb ldrb r3, [r7, #7]
8008c48: 4a53 ldr r2, [pc, #332] ; (8008d98 <DrawChannel_4+0x21ac>)
8008c4a: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008c4e: 3307 adds r3, #7
8008c50: b298 uxth r0, r3
8008c52: 79fb ldrb r3, [r7, #7]
8008c54: 4a51 ldr r2, [pc, #324] ; (8008d9c <DrawChannel_4+0x21b0>)
8008c56: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008c5a: 4a51 ldr r2, [pc, #324] ; (8008da0 <DrawChannel_4+0x21b4>)
8008c5c: 6a3b ldr r3, [r7, #32]
8008c5e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008c62: 2303 movs r3, #3
8008c64: f7fb fd0e bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
8008c68: 79fb ldrb r3, [r7, #7]
8008c6a: 4a4b ldr r2, [pc, #300] ; (8008d98 <DrawChannel_4+0x21ac>)
8008c6c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008c70: 330e adds r3, #14
8008c72: b298 uxth r0, r3
8008c74: 79fb ldrb r3, [r7, #7]
8008c76: 4a49 ldr r2, [pc, #292] ; (8008d9c <DrawChannel_4+0x21b0>)
8008c78: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008c7c: 4a48 ldr r2, [pc, #288] ; (8008da0 <DrawChannel_4+0x21b4>)
8008c7e: 69fb ldr r3, [r7, #28]
8008c80: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008c84: 2303 movs r3, #3
8008c86: f7fb fcfd bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], ".", LEFT_MODE);
8008c8a: 79fb ldrb r3, [r7, #7]
8008c8c: 4a42 ldr r2, [pc, #264] ; (8008d98 <DrawChannel_4+0x21ac>)
8008c8e: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008c92: 3315 adds r3, #21
8008c94: b298 uxth r0, r3
8008c96: 79fb ldrb r3, [r7, #7]
8008c98: 4a40 ldr r2, [pc, #256] ; (8008d9c <DrawChannel_4+0x21b0>)
8008c9a: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008c9e: 2303 movs r3, #3
8008ca0: 4a40 ldr r2, [pc, #256] ; (8008da4 <DrawChannel_4+0x21b8>)
8008ca2: f7fb fcef bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
8008ca6: 79fb ldrb r3, [r7, #7]
8008ca8: 4a3b ldr r2, [pc, #236] ; (8008d98 <DrawChannel_4+0x21ac>)
8008caa: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008cae: 331c adds r3, #28
8008cb0: b298 uxth r0, r3
8008cb2: 79fb ldrb r3, [r7, #7]
8008cb4: 4a39 ldr r2, [pc, #228] ; (8008d9c <DrawChannel_4+0x21b0>)
8008cb6: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008cba: 4a39 ldr r2, [pc, #228] ; (8008da0 <DrawChannel_4+0x21b4>)
8008cbc: 69bb ldr r3, [r7, #24]
8008cbe: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008cc2: 2303 movs r3, #3
8008cc4: f7fb fcde bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
8008cc8: 79fb ldrb r3, [r7, #7]
8008cca: 4a33 ldr r2, [pc, #204] ; (8008d98 <DrawChannel_4+0x21ac>)
8008ccc: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008cd0: 3323 adds r3, #35 ; 0x23
8008cd2: b298 uxth r0, r3
8008cd4: 79fb ldrb r3, [r7, #7]
8008cd6: 4a31 ldr r2, [pc, #196] ; (8008d9c <DrawChannel_4+0x21b0>)
8008cd8: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008cdc: 4a30 ldr r2, [pc, #192] ; (8008da0 <DrawChannel_4+0x21b4>)
8008cde: 697b ldr r3, [r7, #20]
8008ce0: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008ce4: 2303 movs r3, #3
8008ce6: f7fb fccd bl 8004684 <BSP_LCD_DisplayStringAt>
8008cea: e0b2 b.n 8008e52 <DrawChannel_4+0x2266>
if(ipt == 3)
8008cec: 6b3b ldr r3, [r7, #48] ; 0x30
8008cee: 2b03 cmp r3, #3
8008cf0: d15a bne.n 8008da8 <DrawChannel_4+0x21bc>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
8008cf2: 79fb ldrb r3, [r7, #7]
8008cf4: 4a28 ldr r2, [pc, #160] ; (8008d98 <DrawChannel_4+0x21ac>)
8008cf6: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008cfa: 3307 adds r3, #7
8008cfc: b298 uxth r0, r3
8008cfe: 79fb ldrb r3, [r7, #7]
8008d00: 4a26 ldr r2, [pc, #152] ; (8008d9c <DrawChannel_4+0x21b0>)
8008d02: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008d06: 4a26 ldr r2, [pc, #152] ; (8008da0 <DrawChannel_4+0x21b4>)
8008d08: 6a3b ldr r3, [r7, #32]
8008d0a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008d0e: 2303 movs r3, #3
8008d10: f7fb fcb8 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], ".", LEFT_MODE);
8008d14: 79fb ldrb r3, [r7, #7]
8008d16: 4a20 ldr r2, [pc, #128] ; (8008d98 <DrawChannel_4+0x21ac>)
8008d18: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008d1c: 330e adds r3, #14
8008d1e: b298 uxth r0, r3
8008d20: 79fb ldrb r3, [r7, #7]
8008d22: 4a1e ldr r2, [pc, #120] ; (8008d9c <DrawChannel_4+0x21b0>)
8008d24: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008d28: 2303 movs r3, #3
8008d2a: 4a1e ldr r2, [pc, #120] ; (8008da4 <DrawChannel_4+0x21b8>)
8008d2c: f7fb fcaa bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
8008d30: 79fb ldrb r3, [r7, #7]
8008d32: 4a19 ldr r2, [pc, #100] ; (8008d98 <DrawChannel_4+0x21ac>)
8008d34: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008d38: 3315 adds r3, #21
8008d3a: b298 uxth r0, r3
8008d3c: 79fb ldrb r3, [r7, #7]
8008d3e: 4a17 ldr r2, [pc, #92] ; (8008d9c <DrawChannel_4+0x21b0>)
8008d40: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008d44: 4a16 ldr r2, [pc, #88] ; (8008da0 <DrawChannel_4+0x21b4>)
8008d46: 69fb ldr r3, [r7, #28]
8008d48: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008d4c: 2303 movs r3, #3
8008d4e: f7fb fc99 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
8008d52: 79fb ldrb r3, [r7, #7]
8008d54: 4a10 ldr r2, [pc, #64] ; (8008d98 <DrawChannel_4+0x21ac>)
8008d56: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008d5a: 331c adds r3, #28
8008d5c: b298 uxth r0, r3
8008d5e: 79fb ldrb r3, [r7, #7]
8008d60: 4a0e ldr r2, [pc, #56] ; (8008d9c <DrawChannel_4+0x21b0>)
8008d62: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008d66: 4a0e ldr r2, [pc, #56] ; (8008da0 <DrawChannel_4+0x21b4>)
8008d68: 69bb ldr r3, [r7, #24]
8008d6a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008d6e: 2303 movs r3, #3
8008d70: f7fb fc88 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
8008d74: 79fb ldrb r3, [r7, #7]
8008d76: 4a08 ldr r2, [pc, #32] ; (8008d98 <DrawChannel_4+0x21ac>)
8008d78: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008d7c: 3323 adds r3, #35 ; 0x23
8008d7e: b298 uxth r0, r3
8008d80: 79fb ldrb r3, [r7, #7]
8008d82: 4a06 ldr r2, [pc, #24] ; (8008d9c <DrawChannel_4+0x21b0>)
8008d84: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008d88: 4a05 ldr r2, [pc, #20] ; (8008da0 <DrawChannel_4+0x21b4>)
8008d8a: 697b ldr r3, [r7, #20]
8008d8c: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008d90: 2303 movs r3, #3
8008d92: f7fb fc77 bl 8004684 <BSP_LCD_DisplayStringAt>
8008d96: e05c b.n 8008e52 <DrawChannel_4+0x2266>
8008d98: 08015564 .word 0x08015564
8008d9c: 0801556c .word 0x0801556c
8008da0: 200201ec .word 0x200201ec
8008da4: 08012cb8 .word 0x08012cb8
if(ipt == 4)
8008da8: 6b3b ldr r3, [r7, #48] ; 0x30
8008daa: 2b04 cmp r3, #4
8008dac: d151 bne.n 8008e52 <DrawChannel_4+0x2266>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], ".", LEFT_MODE);
8008dae: 79fb ldrb r3, [r7, #7]
8008db0: 4a79 ldr r2, [pc, #484] ; (8008f98 <DrawChannel_4+0x23ac>)
8008db2: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008db6: 3307 adds r3, #7
8008db8: b298 uxth r0, r3
8008dba: 79fb ldrb r3, [r7, #7]
8008dbc: 4a77 ldr r2, [pc, #476] ; (8008f9c <DrawChannel_4+0x23b0>)
8008dbe: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008dc2: 2303 movs r3, #3
8008dc4: 4a76 ldr r2, [pc, #472] ; (8008fa0 <DrawChannel_4+0x23b4>)
8008dc6: f7fb fc5d bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
8008dca: 79fb ldrb r3, [r7, #7]
8008dcc: 4a72 ldr r2, [pc, #456] ; (8008f98 <DrawChannel_4+0x23ac>)
8008dce: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008dd2: 330e adds r3, #14
8008dd4: b298 uxth r0, r3
8008dd6: 79fb ldrb r3, [r7, #7]
8008dd8: 4a70 ldr r2, [pc, #448] ; (8008f9c <DrawChannel_4+0x23b0>)
8008dda: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008dde: 4a71 ldr r2, [pc, #452] ; (8008fa4 <DrawChannel_4+0x23b8>)
8008de0: 6a3b ldr r3, [r7, #32]
8008de2: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008de6: 2303 movs r3, #3
8008de8: f7fb fc4c bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
8008dec: 79fb ldrb r3, [r7, #7]
8008dee: 4a6a ldr r2, [pc, #424] ; (8008f98 <DrawChannel_4+0x23ac>)
8008df0: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008df4: 3315 adds r3, #21
8008df6: b298 uxth r0, r3
8008df8: 79fb ldrb r3, [r7, #7]
8008dfa: 4a68 ldr r2, [pc, #416] ; (8008f9c <DrawChannel_4+0x23b0>)
8008dfc: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008e00: 4a68 ldr r2, [pc, #416] ; (8008fa4 <DrawChannel_4+0x23b8>)
8008e02: 69fb ldr r3, [r7, #28]
8008e04: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008e08: 2303 movs r3, #3
8008e0a: f7fb fc3b bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
8008e0e: 79fb ldrb r3, [r7, #7]
8008e10: 4a61 ldr r2, [pc, #388] ; (8008f98 <DrawChannel_4+0x23ac>)
8008e12: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008e16: 331c adds r3, #28
8008e18: b298 uxth r0, r3
8008e1a: 79fb ldrb r3, [r7, #7]
8008e1c: 4a5f ldr r2, [pc, #380] ; (8008f9c <DrawChannel_4+0x23b0>)
8008e1e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008e22: 4a60 ldr r2, [pc, #384] ; (8008fa4 <DrawChannel_4+0x23b8>)
8008e24: 69bb ldr r3, [r7, #24]
8008e26: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008e2a: 2303 movs r3, #3
8008e2c: f7fb fc2a bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
8008e30: 79fb ldrb r3, [r7, #7]
8008e32: 4a59 ldr r2, [pc, #356] ; (8008f98 <DrawChannel_4+0x23ac>)
8008e34: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008e38: 3323 adds r3, #35 ; 0x23
8008e3a: b298 uxth r0, r3
8008e3c: 79fb ldrb r3, [r7, #7]
8008e3e: 4a57 ldr r2, [pc, #348] ; (8008f9c <DrawChannel_4+0x23b0>)
8008e40: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008e44: 4a57 ldr r2, [pc, #348] ; (8008fa4 <DrawChannel_4+0x23b8>)
8008e46: 697b ldr r3, [r7, #20]
8008e48: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008e4c: 2303 movs r3, #3
8008e4e: f7fb fc19 bl 8004684 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8008e52: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008e56: 4854 ldr r0, [pc, #336] ; (8008fa8 <DrawChannel_4+0x23bc>)
8008e58: f7fb fb4e bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
8008e5c: 79fb ldrb r3, [r7, #7]
8008e5e: 4a53 ldr r2, [pc, #332] ; (8008fac <DrawChannel_4+0x23c0>)
8008e60: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8008e64: 79fb ldrb r3, [r7, #7]
8008e66: 4a52 ldr r2, [pc, #328] ; (8008fb0 <DrawChannel_4+0x23c4>)
8008e68: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008e6c: 4b51 ldr r3, [pc, #324] ; (8008fb4 <DrawChannel_4+0x23c8>)
8008e6e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008e72: b29b uxth r3, r3
8008e74: 461d mov r5, r3
8008e76: 79fb ldrb r3, [r7, #7]
8008e78: 4a4e ldr r2, [pc, #312] ; (8008fb4 <DrawChannel_4+0x23c8>)
8008e7a: 015b lsls r3, r3, #5
8008e7c: 4413 add r3, r2
8008e7e: 881b ldrh r3, [r3, #0]
8008e80: b29b uxth r3, r3
8008e82: 461c mov r4, r3
8008e84: 4a4c ldr r2, [pc, #304] ; (8008fb8 <DrawChannel_4+0x23cc>)
8008e86: 006b lsls r3, r5, #1
8008e88: 4423 add r3, r4
8008e8a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008e8e: 2303 movs r3, #3
8008e90: f7fb fbf8 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
8008e94: 79fb ldrb r3, [r7, #7]
8008e96: 4a49 ldr r2, [pc, #292] ; (8008fbc <DrawChannel_4+0x23d0>)
8008e98: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8008e9c: 79fb ldrb r3, [r7, #7]
8008e9e: 4a48 ldr r2, [pc, #288] ; (8008fc0 <DrawChannel_4+0x23d4>)
8008ea0: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8008ea4: 4b43 ldr r3, [pc, #268] ; (8008fb4 <DrawChannel_4+0x23c8>)
8008ea6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008eaa: b29b uxth r3, r3
8008eac: 4619 mov r1, r3
8008eae: 79fb ldrb r3, [r7, #7]
8008eb0: 4a40 ldr r2, [pc, #256] ; (8008fb4 <DrawChannel_4+0x23c8>)
8008eb2: 015b lsls r3, r3, #5
8008eb4: 4413 add r3, r2
8008eb6: 3302 adds r3, #2
8008eb8: 881b ldrh r3, [r3, #0]
8008eba: b29b uxth r3, r3
8008ebc: 461d mov r5, r3
8008ebe: 4a41 ldr r2, [pc, #260] ; (8008fc4 <DrawChannel_4+0x23d8>)
8008ec0: 460b mov r3, r1
8008ec2: 009b lsls r3, r3, #2
8008ec4: 440b add r3, r1
8008ec6: 442b add r3, r5
8008ec8: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008ecc: 2303 movs r3, #3
8008ece: 4621 mov r1, r4
8008ed0: f7fb fbd8 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
8008ed4: 79fb ldrb r3, [r7, #7]
8008ed6: 4a3c ldr r2, [pc, #240] ; (8008fc8 <DrawChannel_4+0x23dc>)
8008ed8: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8008edc: 79fb ldrb r3, [r7, #7]
8008ede: 4a3b ldr r2, [pc, #236] ; (8008fcc <DrawChannel_4+0x23e0>)
8008ee0: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008ee4: 4b33 ldr r3, [pc, #204] ; (8008fb4 <DrawChannel_4+0x23c8>)
8008ee6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008eea: b29b uxth r3, r3
8008eec: 461d mov r5, r3
8008eee: 79fb ldrb r3, [r7, #7]
8008ef0: 4a30 ldr r2, [pc, #192] ; (8008fb4 <DrawChannel_4+0x23c8>)
8008ef2: 015b lsls r3, r3, #5
8008ef4: 4413 add r3, r2
8008ef6: 3304 adds r3, #4
8008ef8: 881b ldrh r3, [r3, #0]
8008efa: b29b uxth r3, r3
8008efc: 461c mov r4, r3
8008efe: 4a34 ldr r2, [pc, #208] ; (8008fd0 <DrawChannel_4+0x23e4>)
8008f00: 00eb lsls r3, r5, #3
8008f02: 4423 add r3, r4
8008f04: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008f08: 2303 movs r3, #3
8008f0a: f7fb fbbb bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
8008f0e: 79fb ldrb r3, [r7, #7]
8008f10: 4a21 ldr r2, [pc, #132] ; (8008f98 <DrawChannel_4+0x23ac>)
8008f12: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8008f16: 332d adds r3, #45 ; 0x2d
8008f18: b298 uxth r0, r3
8008f1a: 79fb ldrb r3, [r7, #7]
8008f1c: 4a1f ldr r2, [pc, #124] ; (8008f9c <DrawChannel_4+0x23b0>)
8008f1e: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8008f22: 79fb ldrb r3, [r7, #7]
8008f24: 4a23 ldr r2, [pc, #140] ; (8008fb4 <DrawChannel_4+0x23c8>)
8008f26: 015b lsls r3, r3, #5
8008f28: 4413 add r3, r2
8008f2a: 881b ldrh r3, [r3, #0]
8008f2c: b29b uxth r3, r3
8008f2e: 4619 mov r1, r3
8008f30: 79fb ldrb r3, [r7, #7]
8008f32: 4a20 ldr r2, [pc, #128] ; (8008fb4 <DrawChannel_4+0x23c8>)
8008f34: 015b lsls r3, r3, #5
8008f36: 4413 add r3, r2
8008f38: 3312 adds r3, #18
8008f3a: 881b ldrh r3, [r3, #0]
8008f3c: b29b uxth r3, r3
8008f3e: 461d mov r5, r3
8008f40: 4a24 ldr r2, [pc, #144] ; (8008fd4 <DrawChannel_4+0x23e8>)
8008f42: 460b mov r3, r1
8008f44: 005b lsls r3, r3, #1
8008f46: 440b add r3, r1
8008f48: 442b add r3, r5
8008f4a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8008f4e: 2303 movs r3, #3
8008f50: 4621 mov r1, r4
8008f52: f7fb fb97 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
8008f56: 79fb ldrb r3, [r7, #7]
8008f58: 4a1f ldr r2, [pc, #124] ; (8008fd8 <DrawChannel_4+0x23ec>)
8008f5a: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8008f5e: 79fb ldrb r3, [r7, #7]
8008f60: 4a1e ldr r2, [pc, #120] ; (8008fdc <DrawChannel_4+0x23f0>)
8008f62: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8008f66: 79fb ldrb r3, [r7, #7]
8008f68: 4a12 ldr r2, [pc, #72] ; (8008fb4 <DrawChannel_4+0x23c8>)
8008f6a: 015b lsls r3, r3, #5
8008f6c: 4413 add r3, r2
8008f6e: 3312 adds r3, #18
8008f70: 881b ldrh r3, [r3, #0]
8008f72: b29b uxth r3, r3
8008f74: 461a mov r2, r3
8008f76: 491a ldr r1, [pc, #104] ; (8008fe0 <DrawChannel_4+0x23f4>)
8008f78: 4613 mov r3, r2
8008f7a: 009b lsls r3, r3, #2
8008f7c: 4413 add r3, r2
8008f7e: 009a lsls r2, r3, #2
8008f80: 4413 add r3, r2
8008f82: 6afa ldr r2, [r7, #44] ; 0x2c
8008f84: 4413 add r3, r2
8008f86: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008f8a: 2303 movs r3, #3
8008f8c: 4621 mov r1, r4
8008f8e: f7fb fb79 bl 8004684 <BSP_LCD_DisplayStringAt>
}
8008f92: f002 bb6a b.w 800b66a <DrawChannel_4+0x4a7e>
8008f96: bf00 nop
8008f98: 08015564 .word 0x08015564
8008f9c: 0801556c .word 0x0801556c
8008fa0: 08012cb8 .word 0x08012cb8
8008fa4: 200201ec .word 0x200201ec
8008fa8: ffd8aa57 .word 0xffd8aa57
8008fac: 08015534 .word 0x08015534
8008fb0: 0801553c .word 0x0801553c
8008fb4: 2006b510 .word 0x2006b510
8008fb8: 20020030 .word 0x20020030
8008fbc: 08015544 .word 0x08015544
8008fc0: 0801554c .word 0x0801554c
8008fc4: 20020040 .word 0x20020040
8008fc8: 08015554 .word 0x08015554
8008fcc: 0801555c .word 0x0801555c
8008fd0: 20020068 .word 0x20020068
8008fd4: 200200a8 .word 0x200200a8
8008fd8: 08015574 .word 0x08015574
8008fdc: 0801557c .word 0x0801557c
8008fe0: 200200c0 .word 0x200200c0
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8008fe4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008fe8: 488c ldr r0, [pc, #560] ; (800921c <DrawChannel_4+0x2630>)
8008fea: f7fb fa85 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
8008fee: 79fb ldrb r3, [r7, #7]
8008ff0: 4a8b ldr r2, [pc, #556] ; (8009220 <DrawChannel_4+0x2634>)
8008ff2: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8008ff6: 79fb ldrb r3, [r7, #7]
8008ff8: 4a8a ldr r2, [pc, #552] ; (8009224 <DrawChannel_4+0x2638>)
8008ffa: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8008ffe: 4b8a ldr r3, [pc, #552] ; (8009228 <DrawChannel_4+0x263c>)
8009000: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8009004: b29b uxth r3, r3
8009006: 461d mov r5, r3
8009008: 79fb ldrb r3, [r7, #7]
800900a: 4a87 ldr r2, [pc, #540] ; (8009228 <DrawChannel_4+0x263c>)
800900c: 015b lsls r3, r3, #5
800900e: 4413 add r3, r2
8009010: 881b ldrh r3, [r3, #0]
8009012: b29b uxth r3, r3
8009014: 461c mov r4, r3
8009016: 4a85 ldr r2, [pc, #532] ; (800922c <DrawChannel_4+0x2640>)
8009018: 006b lsls r3, r5, #1
800901a: 4423 add r3, r4
800901c: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009020: 2303 movs r3, #3
8009022: f7fb fb2f bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
8009026: 79fb ldrb r3, [r7, #7]
8009028: 4a81 ldr r2, [pc, #516] ; (8009230 <DrawChannel_4+0x2644>)
800902a: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800902e: 79fb ldrb r3, [r7, #7]
8009030: 4a80 ldr r2, [pc, #512] ; (8009234 <DrawChannel_4+0x2648>)
8009032: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8009036: 4b7c ldr r3, [pc, #496] ; (8009228 <DrawChannel_4+0x263c>)
8009038: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800903c: b29b uxth r3, r3
800903e: 4619 mov r1, r3
8009040: 79fb ldrb r3, [r7, #7]
8009042: 4a79 ldr r2, [pc, #484] ; (8009228 <DrawChannel_4+0x263c>)
8009044: 015b lsls r3, r3, #5
8009046: 4413 add r3, r2
8009048: 3302 adds r3, #2
800904a: 881b ldrh r3, [r3, #0]
800904c: b29b uxth r3, r3
800904e: 461d mov r5, r3
8009050: 4a79 ldr r2, [pc, #484] ; (8009238 <DrawChannel_4+0x264c>)
8009052: 460b mov r3, r1
8009054: 009b lsls r3, r3, #2
8009056: 440b add r3, r1
8009058: 442b add r3, r5
800905a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800905e: 2303 movs r3, #3
8009060: 4621 mov r1, r4
8009062: f7fb fb0f bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
8009066: 79fb ldrb r3, [r7, #7]
8009068: 4a74 ldr r2, [pc, #464] ; (800923c <DrawChannel_4+0x2650>)
800906a: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800906e: 79fb ldrb r3, [r7, #7]
8009070: 4a73 ldr r2, [pc, #460] ; (8009240 <DrawChannel_4+0x2654>)
8009072: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009076: 4b6c ldr r3, [pc, #432] ; (8009228 <DrawChannel_4+0x263c>)
8009078: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800907c: b29b uxth r3, r3
800907e: 461d mov r5, r3
8009080: 79fb ldrb r3, [r7, #7]
8009082: 4a69 ldr r2, [pc, #420] ; (8009228 <DrawChannel_4+0x263c>)
8009084: 015b lsls r3, r3, #5
8009086: 4413 add r3, r2
8009088: 3304 adds r3, #4
800908a: 881b ldrh r3, [r3, #0]
800908c: b29b uxth r3, r3
800908e: 461c mov r4, r3
8009090: 4a6c ldr r2, [pc, #432] ; (8009244 <DrawChannel_4+0x2658>)
8009092: 00eb lsls r3, r5, #3
8009094: 4423 add r3, r4
8009096: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800909a: 2303 movs r3, #3
800909c: f7fb faf2 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens
80090a0: 79fb ldrb r3, [r7, #7]
80090a2: 4a69 ldr r2, [pc, #420] ; (8009248 <DrawChannel_4+0x265c>)
80090a4: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80090a8: 79fb ldrb r3, [r7, #7]
80090aa: 4a68 ldr r2, [pc, #416] ; (800924c <DrawChannel_4+0x2660>)
80090ac: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80090b0: f107 0208 add.w r2, r7, #8
80090b4: 2303 movs r3, #3
80090b6: f7fb fae5 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
80090ba: 79fb ldrb r3, [r7, #7]
80090bc: 4a62 ldr r2, [pc, #392] ; (8009248 <DrawChannel_4+0x265c>)
80090be: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
80090c2: 332d adds r3, #45 ; 0x2d
80090c4: b298 uxth r0, r3
80090c6: 79fb ldrb r3, [r7, #7]
80090c8: 4a60 ldr r2, [pc, #384] ; (800924c <DrawChannel_4+0x2660>)
80090ca: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
80090ce: 79fb ldrb r3, [r7, #7]
80090d0: 4a55 ldr r2, [pc, #340] ; (8009228 <DrawChannel_4+0x263c>)
80090d2: 015b lsls r3, r3, #5
80090d4: 4413 add r3, r2
80090d6: 881b ldrh r3, [r3, #0]
80090d8: b29b uxth r3, r3
80090da: 4619 mov r1, r3
80090dc: 79fb ldrb r3, [r7, #7]
80090de: 4a52 ldr r2, [pc, #328] ; (8009228 <DrawChannel_4+0x263c>)
80090e0: 015b lsls r3, r3, #5
80090e2: 4413 add r3, r2
80090e4: 3312 adds r3, #18
80090e6: 881b ldrh r3, [r3, #0]
80090e8: b29b uxth r3, r3
80090ea: 461d mov r5, r3
80090ec: 4a58 ldr r2, [pc, #352] ; (8009250 <DrawChannel_4+0x2664>)
80090ee: 460b mov r3, r1
80090f0: 005b lsls r3, r3, #1
80090f2: 440b add r3, r1
80090f4: 442b add r3, r5
80090f6: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80090fa: 2303 movs r3, #3
80090fc: 4621 mov r1, r4
80090fe: f7fb fac1 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
8009102: 79fb ldrb r3, [r7, #7]
8009104: 4a53 ldr r2, [pc, #332] ; (8009254 <DrawChannel_4+0x2668>)
8009106: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800910a: 79fb ldrb r3, [r7, #7]
800910c: 4a52 ldr r2, [pc, #328] ; (8009258 <DrawChannel_4+0x266c>)
800910e: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8009112: 79fb ldrb r3, [r7, #7]
8009114: 4a44 ldr r2, [pc, #272] ; (8009228 <DrawChannel_4+0x263c>)
8009116: 015b lsls r3, r3, #5
8009118: 4413 add r3, r2
800911a: 3312 adds r3, #18
800911c: 881b ldrh r3, [r3, #0]
800911e: b29b uxth r3, r3
8009120: 461a mov r2, r3
8009122: 494e ldr r1, [pc, #312] ; (800925c <DrawChannel_4+0x2670>)
8009124: 4613 mov r3, r2
8009126: 009b lsls r3, r3, #2
8009128: 4413 add r3, r2
800912a: 009a lsls r2, r3, #2
800912c: 4413 add r3, r2
800912e: 6afa ldr r2, [r7, #44] ; 0x2c
8009130: 4413 add r3, r2
8009132: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8009136: 2303 movs r3, #3
8009138: 4621 mov r1, r4
800913a: f7fb faa3 bl 8004684 <BSP_LCD_DisplayStringAt>
}
800913e: f002 ba94 b.w 800b66a <DrawChannel_4+0x4a7e>
if(menupos == Kikt)
8009142: 4b47 ldr r3, [pc, #284] ; (8009260 <DrawChannel_4+0x2674>)
8009144: 781b ldrb r3, [r3, #0]
8009146: b2db uxtb r3, r3
8009148: 2b07 cmp r3, #7
800914a: f040 83ae bne.w 80098aa <DrawChannel_4+0x2cbe>
if(ACTIVE_CHANNEL == ch)
800914e: 79fa ldrb r2, [r7, #7]
8009150: 4b44 ldr r3, [pc, #272] ; (8009264 <DrawChannel_4+0x2678>)
8009152: 681b ldr r3, [r3, #0]
8009154: 429a cmp r2, r3
8009156: f040 82f9 bne.w 800974c <DrawChannel_4+0x2b60>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800915a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800915e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8009162: f7fb f9c9 bl 80044f8 <LCD_SetColors>
if(!ipt)
8009166: 6b3b ldr r3, [r7, #48] ; 0x30
8009168: 2b00 cmp r3, #0
800916a: d17f bne.n 800926c <DrawChannel_4+0x2680>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
800916c: 79fb ldrb r3, [r7, #7]
800916e: 4a36 ldr r2, [pc, #216] ; (8009248 <DrawChannel_4+0x265c>)
8009170: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8009174: 79fb ldrb r3, [r7, #7]
8009176: 4a35 ldr r2, [pc, #212] ; (800924c <DrawChannel_4+0x2660>)
8009178: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800917c: 4a3a ldr r2, [pc, #232] ; (8009268 <DrawChannel_4+0x267c>)
800917e: 6a7b ldr r3, [r7, #36] ; 0x24
8009180: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009184: 2303 movs r3, #3
8009186: f7fb fa7d bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
800918a: 683b ldr r3, [r7, #0]
800918c: 2b00 cmp r3, #0
800918e: d010 beq.n 80091b2 <DrawChannel_4+0x25c6>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
8009190: 79fb ldrb r3, [r7, #7]
8009192: 4a2d ldr r2, [pc, #180] ; (8009248 <DrawChannel_4+0x265c>)
8009194: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009198: 3307 adds r3, #7
800919a: b298 uxth r0, r3
800919c: 79fb ldrb r3, [r7, #7]
800919e: 4a2b ldr r2, [pc, #172] ; (800924c <DrawChannel_4+0x2660>)
80091a0: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80091a4: 4a30 ldr r2, [pc, #192] ; (8009268 <DrawChannel_4+0x267c>)
80091a6: 6a3b ldr r3, [r7, #32]
80091a8: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80091ac: 2303 movs r3, #3
80091ae: f7fb fa69 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
80091b2: 79fb ldrb r3, [r7, #7]
80091b4: 4a24 ldr r2, [pc, #144] ; (8009248 <DrawChannel_4+0x265c>)
80091b6: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
80091ba: 330e adds r3, #14
80091bc: b298 uxth r0, r3
80091be: 79fb ldrb r3, [r7, #7]
80091c0: 4a22 ldr r2, [pc, #136] ; (800924c <DrawChannel_4+0x2660>)
80091c2: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80091c6: 4a28 ldr r2, [pc, #160] ; (8009268 <DrawChannel_4+0x267c>)
80091c8: 69fb ldr r3, [r7, #28]
80091ca: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80091ce: 2303 movs r3, #3
80091d0: f7fb fa58 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
80091d4: 79fb ldrb r3, [r7, #7]
80091d6: 4a1c ldr r2, [pc, #112] ; (8009248 <DrawChannel_4+0x265c>)
80091d8: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
80091dc: 3315 adds r3, #21
80091de: b298 uxth r0, r3
80091e0: 79fb ldrb r3, [r7, #7]
80091e2: 4a1a ldr r2, [pc, #104] ; (800924c <DrawChannel_4+0x2660>)
80091e4: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80091e8: 4a1f ldr r2, [pc, #124] ; (8009268 <DrawChannel_4+0x267c>)
80091ea: 69bb ldr r3, [r7, #24]
80091ec: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80091f0: 2303 movs r3, #3
80091f2: f7fb fa47 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
80091f6: 79fb ldrb r3, [r7, #7]
80091f8: 4a13 ldr r2, [pc, #76] ; (8009248 <DrawChannel_4+0x265c>)
80091fa: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
80091fe: 331c adds r3, #28
8009200: b298 uxth r0, r3
8009202: 79fb ldrb r3, [r7, #7]
8009204: 4a11 ldr r2, [pc, #68] ; (800924c <DrawChannel_4+0x2660>)
8009206: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800920a: 4a17 ldr r2, [pc, #92] ; (8009268 <DrawChannel_4+0x267c>)
800920c: 697b ldr r3, [r7, #20]
800920e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009212: 2303 movs r3, #3
8009214: f7fb fa36 bl 8004684 <BSP_LCD_DisplayStringAt>
8009218: e1cf b.n 80095ba <DrawChannel_4+0x29ce>
800921a: bf00 nop
800921c: ffd8aa57 .word 0xffd8aa57
8009220: 08015534 .word 0x08015534
8009224: 0801553c .word 0x0801553c
8009228: 2006b510 .word 0x2006b510
800922c: 20020030 .word 0x20020030
8009230: 08015544 .word 0x08015544
8009234: 0801554c .word 0x0801554c
8009238: 20020040 .word 0x20020040
800923c: 08015554 .word 0x08015554
8009240: 0801555c .word 0x0801555c
8009244: 20020068 .word 0x20020068
8009248: 08015564 .word 0x08015564
800924c: 0801556c .word 0x0801556c
8009250: 200200a8 .word 0x200200a8
8009254: 08015574 .word 0x08015574
8009258: 0801557c .word 0x0801557c
800925c: 200200c0 .word 0x200200c0
8009260: 20020010 .word 0x20020010
8009264: 2006b2d0 .word 0x2006b2d0
8009268: 200201ec .word 0x200201ec
if(ipt == 1)
800926c: 6b3b ldr r3, [r7, #48] ; 0x30
800926e: 2b01 cmp r3, #1
8009270: d164 bne.n 800933c <DrawChannel_4+0x2750>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
8009272: 79fb ldrb r3, [r7, #7]
8009274: 4a99 ldr r2, [pc, #612] ; (80094dc <DrawChannel_4+0x28f0>)
8009276: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800927a: 79fb ldrb r3, [r7, #7]
800927c: 4a98 ldr r2, [pc, #608] ; (80094e0 <DrawChannel_4+0x28f4>)
800927e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009282: 4a98 ldr r2, [pc, #608] ; (80094e4 <DrawChannel_4+0x28f8>)
8009284: 6a7b ldr r3, [r7, #36] ; 0x24
8009286: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800928a: 2303 movs r3, #3
800928c: f7fb f9fa bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
8009290: 683b ldr r3, [r7, #0]
8009292: 2b00 cmp r3, #0
8009294: d010 beq.n 80092b8 <DrawChannel_4+0x26cc>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
8009296: 79fb ldrb r3, [r7, #7]
8009298: 4a90 ldr r2, [pc, #576] ; (80094dc <DrawChannel_4+0x28f0>)
800929a: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800929e: 3307 adds r3, #7
80092a0: b298 uxth r0, r3
80092a2: 79fb ldrb r3, [r7, #7]
80092a4: 4a8e ldr r2, [pc, #568] ; (80094e0 <DrawChannel_4+0x28f4>)
80092a6: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80092aa: 4a8e ldr r2, [pc, #568] ; (80094e4 <DrawChannel_4+0x28f8>)
80092ac: 6a3b ldr r3, [r7, #32]
80092ae: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80092b2: 2303 movs r3, #3
80092b4: f7fb f9e6 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
80092b8: 79fb ldrb r3, [r7, #7]
80092ba: 4a88 ldr r2, [pc, #544] ; (80094dc <DrawChannel_4+0x28f0>)
80092bc: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
80092c0: 330e adds r3, #14
80092c2: b298 uxth r0, r3
80092c4: 79fb ldrb r3, [r7, #7]
80092c6: 4a86 ldr r2, [pc, #536] ; (80094e0 <DrawChannel_4+0x28f4>)
80092c8: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80092cc: 4a85 ldr r2, [pc, #532] ; (80094e4 <DrawChannel_4+0x28f8>)
80092ce: 69fb ldr r3, [r7, #28]
80092d0: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80092d4: 2303 movs r3, #3
80092d6: f7fb f9d5 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
80092da: 79fb ldrb r3, [r7, #7]
80092dc: 4a7f ldr r2, [pc, #508] ; (80094dc <DrawChannel_4+0x28f0>)
80092de: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
80092e2: 3315 adds r3, #21
80092e4: b298 uxth r0, r3
80092e6: 79fb ldrb r3, [r7, #7]
80092e8: 4a7d ldr r2, [pc, #500] ; (80094e0 <DrawChannel_4+0x28f4>)
80092ea: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80092ee: 4a7d ldr r2, [pc, #500] ; (80094e4 <DrawChannel_4+0x28f8>)
80092f0: 69bb ldr r3, [r7, #24]
80092f2: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80092f6: 2303 movs r3, #3
80092f8: f7fb f9c4 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], ".", LEFT_MODE);
80092fc: 79fb ldrb r3, [r7, #7]
80092fe: 4a77 ldr r2, [pc, #476] ; (80094dc <DrawChannel_4+0x28f0>)
8009300: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009304: 331c adds r3, #28
8009306: b298 uxth r0, r3
8009308: 79fb ldrb r3, [r7, #7]
800930a: 4a75 ldr r2, [pc, #468] ; (80094e0 <DrawChannel_4+0x28f4>)
800930c: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009310: 2303 movs r3, #3
8009312: 4a75 ldr r2, [pc, #468] ; (80094e8 <DrawChannel_4+0x28fc>)
8009314: f7fb f9b6 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
8009318: 79fb ldrb r3, [r7, #7]
800931a: 4a70 ldr r2, [pc, #448] ; (80094dc <DrawChannel_4+0x28f0>)
800931c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009320: 3323 adds r3, #35 ; 0x23
8009322: b298 uxth r0, r3
8009324: 79fb ldrb r3, [r7, #7]
8009326: 4a6e ldr r2, [pc, #440] ; (80094e0 <DrawChannel_4+0x28f4>)
8009328: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800932c: 4a6d ldr r2, [pc, #436] ; (80094e4 <DrawChannel_4+0x28f8>)
800932e: 697b ldr r3, [r7, #20]
8009330: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009334: 2303 movs r3, #3
8009336: f7fb f9a5 bl 8004684 <BSP_LCD_DisplayStringAt>
800933a: e13e b.n 80095ba <DrawChannel_4+0x29ce>
if(ipt == 2)
800933c: 6b3b ldr r3, [r7, #48] ; 0x30
800933e: 2b02 cmp r3, #2
8009340: d164 bne.n 800940c <DrawChannel_4+0x2820>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
8009342: 79fb ldrb r3, [r7, #7]
8009344: 4a65 ldr r2, [pc, #404] ; (80094dc <DrawChannel_4+0x28f0>)
8009346: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800934a: 79fb ldrb r3, [r7, #7]
800934c: 4a64 ldr r2, [pc, #400] ; (80094e0 <DrawChannel_4+0x28f4>)
800934e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009352: 4a64 ldr r2, [pc, #400] ; (80094e4 <DrawChannel_4+0x28f8>)
8009354: 6a7b ldr r3, [r7, #36] ; 0x24
8009356: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800935a: 2303 movs r3, #3
800935c: f7fb f992 bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
8009360: 683b ldr r3, [r7, #0]
8009362: 2b00 cmp r3, #0
8009364: d010 beq.n 8009388 <DrawChannel_4+0x279c>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
8009366: 79fb ldrb r3, [r7, #7]
8009368: 4a5c ldr r2, [pc, #368] ; (80094dc <DrawChannel_4+0x28f0>)
800936a: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800936e: 3307 adds r3, #7
8009370: b298 uxth r0, r3
8009372: 79fb ldrb r3, [r7, #7]
8009374: 4a5a ldr r2, [pc, #360] ; (80094e0 <DrawChannel_4+0x28f4>)
8009376: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800937a: 4a5a ldr r2, [pc, #360] ; (80094e4 <DrawChannel_4+0x28f8>)
800937c: 6a3b ldr r3, [r7, #32]
800937e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009382: 2303 movs r3, #3
8009384: f7fb f97e bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
8009388: 79fb ldrb r3, [r7, #7]
800938a: 4a54 ldr r2, [pc, #336] ; (80094dc <DrawChannel_4+0x28f0>)
800938c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009390: 330e adds r3, #14
8009392: b298 uxth r0, r3
8009394: 79fb ldrb r3, [r7, #7]
8009396: 4a52 ldr r2, [pc, #328] ; (80094e0 <DrawChannel_4+0x28f4>)
8009398: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800939c: 4a51 ldr r2, [pc, #324] ; (80094e4 <DrawChannel_4+0x28f8>)
800939e: 69fb ldr r3, [r7, #28]
80093a0: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80093a4: 2303 movs r3, #3
80093a6: f7fb f96d bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], ".", LEFT_MODE);
80093aa: 79fb ldrb r3, [r7, #7]
80093ac: 4a4b ldr r2, [pc, #300] ; (80094dc <DrawChannel_4+0x28f0>)
80093ae: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
80093b2: 3315 adds r3, #21
80093b4: b298 uxth r0, r3
80093b6: 79fb ldrb r3, [r7, #7]
80093b8: 4a49 ldr r2, [pc, #292] ; (80094e0 <DrawChannel_4+0x28f4>)
80093ba: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80093be: 2303 movs r3, #3
80093c0: 4a49 ldr r2, [pc, #292] ; (80094e8 <DrawChannel_4+0x28fc>)
80093c2: f7fb f95f bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
80093c6: 79fb ldrb r3, [r7, #7]
80093c8: 4a44 ldr r2, [pc, #272] ; (80094dc <DrawChannel_4+0x28f0>)
80093ca: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
80093ce: 331c adds r3, #28
80093d0: b298 uxth r0, r3
80093d2: 79fb ldrb r3, [r7, #7]
80093d4: 4a42 ldr r2, [pc, #264] ; (80094e0 <DrawChannel_4+0x28f4>)
80093d6: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80093da: 4a42 ldr r2, [pc, #264] ; (80094e4 <DrawChannel_4+0x28f8>)
80093dc: 69bb ldr r3, [r7, #24]
80093de: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80093e2: 2303 movs r3, #3
80093e4: f7fb f94e bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
80093e8: 79fb ldrb r3, [r7, #7]
80093ea: 4a3c ldr r2, [pc, #240] ; (80094dc <DrawChannel_4+0x28f0>)
80093ec: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
80093f0: 3323 adds r3, #35 ; 0x23
80093f2: b298 uxth r0, r3
80093f4: 79fb ldrb r3, [r7, #7]
80093f6: 4a3a ldr r2, [pc, #232] ; (80094e0 <DrawChannel_4+0x28f4>)
80093f8: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80093fc: 4a39 ldr r2, [pc, #228] ; (80094e4 <DrawChannel_4+0x28f8>)
80093fe: 697b ldr r3, [r7, #20]
8009400: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009404: 2303 movs r3, #3
8009406: f7fb f93d bl 8004684 <BSP_LCD_DisplayStringAt>
800940a: e0d6 b.n 80095ba <DrawChannel_4+0x29ce>
if(ipt == 3)
800940c: 6b3b ldr r3, [r7, #48] ; 0x30
800940e: 2b03 cmp r3, #3
8009410: d16c bne.n 80094ec <DrawChannel_4+0x2900>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
8009412: 79fb ldrb r3, [r7, #7]
8009414: 4a31 ldr r2, [pc, #196] ; (80094dc <DrawChannel_4+0x28f0>)
8009416: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800941a: 79fb ldrb r3, [r7, #7]
800941c: 4a30 ldr r2, [pc, #192] ; (80094e0 <DrawChannel_4+0x28f4>)
800941e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009422: 4a30 ldr r2, [pc, #192] ; (80094e4 <DrawChannel_4+0x28f8>)
8009424: 6a7b ldr r3, [r7, #36] ; 0x24
8009426: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800942a: 2303 movs r3, #3
800942c: f7fb f92a bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
8009430: 683b ldr r3, [r7, #0]
8009432: 2b00 cmp r3, #0
8009434: d010 beq.n 8009458 <DrawChannel_4+0x286c>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
8009436: 79fb ldrb r3, [r7, #7]
8009438: 4a28 ldr r2, [pc, #160] ; (80094dc <DrawChannel_4+0x28f0>)
800943a: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800943e: 3307 adds r3, #7
8009440: b298 uxth r0, r3
8009442: 79fb ldrb r3, [r7, #7]
8009444: 4a26 ldr r2, [pc, #152] ; (80094e0 <DrawChannel_4+0x28f4>)
8009446: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800944a: 4a26 ldr r2, [pc, #152] ; (80094e4 <DrawChannel_4+0x28f8>)
800944c: 6a3b ldr r3, [r7, #32]
800944e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009452: 2303 movs r3, #3
8009454: f7fb f916 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], ".", LEFT_MODE);
8009458: 79fb ldrb r3, [r7, #7]
800945a: 4a20 ldr r2, [pc, #128] ; (80094dc <DrawChannel_4+0x28f0>)
800945c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009460: 330e adds r3, #14
8009462: b298 uxth r0, r3
8009464: 79fb ldrb r3, [r7, #7]
8009466: 4a1e ldr r2, [pc, #120] ; (80094e0 <DrawChannel_4+0x28f4>)
8009468: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800946c: 2303 movs r3, #3
800946e: 4a1e ldr r2, [pc, #120] ; (80094e8 <DrawChannel_4+0x28fc>)
8009470: f7fb f908 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
8009474: 79fb ldrb r3, [r7, #7]
8009476: 4a19 ldr r2, [pc, #100] ; (80094dc <DrawChannel_4+0x28f0>)
8009478: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800947c: 3315 adds r3, #21
800947e: b298 uxth r0, r3
8009480: 79fb ldrb r3, [r7, #7]
8009482: 4a17 ldr r2, [pc, #92] ; (80094e0 <DrawChannel_4+0x28f4>)
8009484: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009488: 4a16 ldr r2, [pc, #88] ; (80094e4 <DrawChannel_4+0x28f8>)
800948a: 69fb ldr r3, [r7, #28]
800948c: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009490: 2303 movs r3, #3
8009492: f7fb f8f7 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
8009496: 79fb ldrb r3, [r7, #7]
8009498: 4a10 ldr r2, [pc, #64] ; (80094dc <DrawChannel_4+0x28f0>)
800949a: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800949e: 331c adds r3, #28
80094a0: b298 uxth r0, r3
80094a2: 79fb ldrb r3, [r7, #7]
80094a4: 4a0e ldr r2, [pc, #56] ; (80094e0 <DrawChannel_4+0x28f4>)
80094a6: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80094aa: 4a0e ldr r2, [pc, #56] ; (80094e4 <DrawChannel_4+0x28f8>)
80094ac: 69bb ldr r3, [r7, #24]
80094ae: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80094b2: 2303 movs r3, #3
80094b4: f7fb f8e6 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
80094b8: 79fb ldrb r3, [r7, #7]
80094ba: 4a08 ldr r2, [pc, #32] ; (80094dc <DrawChannel_4+0x28f0>)
80094bc: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
80094c0: 3323 adds r3, #35 ; 0x23
80094c2: b298 uxth r0, r3
80094c4: 79fb ldrb r3, [r7, #7]
80094c6: 4a06 ldr r2, [pc, #24] ; (80094e0 <DrawChannel_4+0x28f4>)
80094c8: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80094cc: 4a05 ldr r2, [pc, #20] ; (80094e4 <DrawChannel_4+0x28f8>)
80094ce: 697b ldr r3, [r7, #20]
80094d0: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80094d4: 2303 movs r3, #3
80094d6: f7fb f8d5 bl 8004684 <BSP_LCD_DisplayStringAt>
80094da: e06e b.n 80095ba <DrawChannel_4+0x29ce>
80094dc: 08015564 .word 0x08015564
80094e0: 0801556c .word 0x0801556c
80094e4: 200201ec .word 0x200201ec
80094e8: 08012cb8 .word 0x08012cb8
if(ipt == 4)
80094ec: 6b3b ldr r3, [r7, #48] ; 0x30
80094ee: 2b04 cmp r3, #4
80094f0: d163 bne.n 80095ba <DrawChannel_4+0x29ce>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
80094f2: 79fb ldrb r3, [r7, #7]
80094f4: 4a82 ldr r2, [pc, #520] ; (8009700 <DrawChannel_4+0x2b14>)
80094f6: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80094fa: 79fb ldrb r3, [r7, #7]
80094fc: 4a81 ldr r2, [pc, #516] ; (8009704 <DrawChannel_4+0x2b18>)
80094fe: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009502: 4a81 ldr r2, [pc, #516] ; (8009708 <DrawChannel_4+0x2b1c>)
8009504: 6a7b ldr r3, [r7, #36] ; 0x24
8009506: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800950a: 2303 movs r3, #3
800950c: f7fb f8ba bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], ".", LEFT_MODE);
8009510: 79fb ldrb r3, [r7, #7]
8009512: 4a7b ldr r2, [pc, #492] ; (8009700 <DrawChannel_4+0x2b14>)
8009514: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009518: 3307 adds r3, #7
800951a: b298 uxth r0, r3
800951c: 79fb ldrb r3, [r7, #7]
800951e: 4a79 ldr r2, [pc, #484] ; (8009704 <DrawChannel_4+0x2b18>)
8009520: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009524: 2303 movs r3, #3
8009526: 4a79 ldr r2, [pc, #484] ; (800970c <DrawChannel_4+0x2b20>)
8009528: f7fb f8ac bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
800952c: 683b ldr r3, [r7, #0]
800952e: 2b00 cmp r3, #0
8009530: d010 beq.n 8009554 <DrawChannel_4+0x2968>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
8009532: 79fb ldrb r3, [r7, #7]
8009534: 4a72 ldr r2, [pc, #456] ; (8009700 <DrawChannel_4+0x2b14>)
8009536: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800953a: 330e adds r3, #14
800953c: b298 uxth r0, r3
800953e: 79fb ldrb r3, [r7, #7]
8009540: 4a70 ldr r2, [pc, #448] ; (8009704 <DrawChannel_4+0x2b18>)
8009542: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009546: 4a70 ldr r2, [pc, #448] ; (8009708 <DrawChannel_4+0x2b1c>)
8009548: 6a3b ldr r3, [r7, #32]
800954a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800954e: 2303 movs r3, #3
8009550: f7fb f898 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
8009554: 79fb ldrb r3, [r7, #7]
8009556: 4a6a ldr r2, [pc, #424] ; (8009700 <DrawChannel_4+0x2b14>)
8009558: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800955c: 3315 adds r3, #21
800955e: b298 uxth r0, r3
8009560: 79fb ldrb r3, [r7, #7]
8009562: 4a68 ldr r2, [pc, #416] ; (8009704 <DrawChannel_4+0x2b18>)
8009564: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009568: 4a67 ldr r2, [pc, #412] ; (8009708 <DrawChannel_4+0x2b1c>)
800956a: 69fb ldr r3, [r7, #28]
800956c: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009570: 2303 movs r3, #3
8009572: f7fb f887 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
8009576: 79fb ldrb r3, [r7, #7]
8009578: 4a61 ldr r2, [pc, #388] ; (8009700 <DrawChannel_4+0x2b14>)
800957a: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800957e: 331c adds r3, #28
8009580: b298 uxth r0, r3
8009582: 79fb ldrb r3, [r7, #7]
8009584: 4a5f ldr r2, [pc, #380] ; (8009704 <DrawChannel_4+0x2b18>)
8009586: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800958a: 4a5f ldr r2, [pc, #380] ; (8009708 <DrawChannel_4+0x2b1c>)
800958c: 69bb ldr r3, [r7, #24]
800958e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009592: 2303 movs r3, #3
8009594: f7fb f876 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
8009598: 79fb ldrb r3, [r7, #7]
800959a: 4a59 ldr r2, [pc, #356] ; (8009700 <DrawChannel_4+0x2b14>)
800959c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
80095a0: 3323 adds r3, #35 ; 0x23
80095a2: b298 uxth r0, r3
80095a4: 79fb ldrb r3, [r7, #7]
80095a6: 4a57 ldr r2, [pc, #348] ; (8009704 <DrawChannel_4+0x2b18>)
80095a8: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80095ac: 4a56 ldr r2, [pc, #344] ; (8009708 <DrawChannel_4+0x2b1c>)
80095ae: 697b ldr r3, [r7, #20]
80095b0: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80095b4: 2303 movs r3, #3
80095b6: f7fb f865 bl 8004684 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
80095ba: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80095be: 4854 ldr r0, [pc, #336] ; (8009710 <DrawChannel_4+0x2b24>)
80095c0: f7fa ff9a bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
80095c4: 79fb ldrb r3, [r7, #7]
80095c6: 4a53 ldr r2, [pc, #332] ; (8009714 <DrawChannel_4+0x2b28>)
80095c8: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80095cc: 79fb ldrb r3, [r7, #7]
80095ce: 4a52 ldr r2, [pc, #328] ; (8009718 <DrawChannel_4+0x2b2c>)
80095d0: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80095d4: 4b51 ldr r3, [pc, #324] ; (800971c <DrawChannel_4+0x2b30>)
80095d6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80095da: b29b uxth r3, r3
80095dc: 461d mov r5, r3
80095de: 79fb ldrb r3, [r7, #7]
80095e0: 4a4e ldr r2, [pc, #312] ; (800971c <DrawChannel_4+0x2b30>)
80095e2: 015b lsls r3, r3, #5
80095e4: 4413 add r3, r2
80095e6: 881b ldrh r3, [r3, #0]
80095e8: b29b uxth r3, r3
80095ea: 461c mov r4, r3
80095ec: 4a4c ldr r2, [pc, #304] ; (8009720 <DrawChannel_4+0x2b34>)
80095ee: 006b lsls r3, r5, #1
80095f0: 4423 add r3, r4
80095f2: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80095f6: 2303 movs r3, #3
80095f8: f7fb f844 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
80095fc: 79fb ldrb r3, [r7, #7]
80095fe: 4a49 ldr r2, [pc, #292] ; (8009724 <DrawChannel_4+0x2b38>)
8009600: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8009604: 79fb ldrb r3, [r7, #7]
8009606: 4a48 ldr r2, [pc, #288] ; (8009728 <DrawChannel_4+0x2b3c>)
8009608: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800960c: 4b43 ldr r3, [pc, #268] ; (800971c <DrawChannel_4+0x2b30>)
800960e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8009612: b29b uxth r3, r3
8009614: 4619 mov r1, r3
8009616: 79fb ldrb r3, [r7, #7]
8009618: 4a40 ldr r2, [pc, #256] ; (800971c <DrawChannel_4+0x2b30>)
800961a: 015b lsls r3, r3, #5
800961c: 4413 add r3, r2
800961e: 3302 adds r3, #2
8009620: 881b ldrh r3, [r3, #0]
8009622: b29b uxth r3, r3
8009624: 461d mov r5, r3
8009626: 4a41 ldr r2, [pc, #260] ; (800972c <DrawChannel_4+0x2b40>)
8009628: 460b mov r3, r1
800962a: 009b lsls r3, r3, #2
800962c: 440b add r3, r1
800962e: 442b add r3, r5
8009630: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009634: 2303 movs r3, #3
8009636: 4621 mov r1, r4
8009638: f7fb f824 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800963c: 79fb ldrb r3, [r7, #7]
800963e: 4a3c ldr r2, [pc, #240] ; (8009730 <DrawChannel_4+0x2b44>)
8009640: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8009644: 79fb ldrb r3, [r7, #7]
8009646: 4a3b ldr r2, [pc, #236] ; (8009734 <DrawChannel_4+0x2b48>)
8009648: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800964c: 4b33 ldr r3, [pc, #204] ; (800971c <DrawChannel_4+0x2b30>)
800964e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8009652: b29b uxth r3, r3
8009654: 461d mov r5, r3
8009656: 79fb ldrb r3, [r7, #7]
8009658: 4a30 ldr r2, [pc, #192] ; (800971c <DrawChannel_4+0x2b30>)
800965a: 015b lsls r3, r3, #5
800965c: 4413 add r3, r2
800965e: 3304 adds r3, #4
8009660: 881b ldrh r3, [r3, #0]
8009662: b29b uxth r3, r3
8009664: 461c mov r4, r3
8009666: 4a34 ldr r2, [pc, #208] ; (8009738 <DrawChannel_4+0x2b4c>)
8009668: 00eb lsls r3, r5, #3
800966a: 4423 add r3, r4
800966c: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009670: 2303 movs r3, #3
8009672: f7fb f807 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
8009676: 79fb ldrb r3, [r7, #7]
8009678: 4a21 ldr r2, [pc, #132] ; (8009700 <DrawChannel_4+0x2b14>)
800967a: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800967e: 332d adds r3, #45 ; 0x2d
8009680: b298 uxth r0, r3
8009682: 79fb ldrb r3, [r7, #7]
8009684: 4a1f ldr r2, [pc, #124] ; (8009704 <DrawChannel_4+0x2b18>)
8009686: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800968a: 79fb ldrb r3, [r7, #7]
800968c: 4a23 ldr r2, [pc, #140] ; (800971c <DrawChannel_4+0x2b30>)
800968e: 015b lsls r3, r3, #5
8009690: 4413 add r3, r2
8009692: 881b ldrh r3, [r3, #0]
8009694: b29b uxth r3, r3
8009696: 4619 mov r1, r3
8009698: 79fb ldrb r3, [r7, #7]
800969a: 4a20 ldr r2, [pc, #128] ; (800971c <DrawChannel_4+0x2b30>)
800969c: 015b lsls r3, r3, #5
800969e: 4413 add r3, r2
80096a0: 3312 adds r3, #18
80096a2: 881b ldrh r3, [r3, #0]
80096a4: b29b uxth r3, r3
80096a6: 461d mov r5, r3
80096a8: 4a24 ldr r2, [pc, #144] ; (800973c <DrawChannel_4+0x2b50>)
80096aa: 460b mov r3, r1
80096ac: 005b lsls r3, r3, #1
80096ae: 440b add r3, r1
80096b0: 442b add r3, r5
80096b2: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80096b6: 2303 movs r3, #3
80096b8: 4621 mov r1, r4
80096ba: f7fa ffe3 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
80096be: 79fb ldrb r3, [r7, #7]
80096c0: 4a1f ldr r2, [pc, #124] ; (8009740 <DrawChannel_4+0x2b54>)
80096c2: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80096c6: 79fb ldrb r3, [r7, #7]
80096c8: 4a1e ldr r2, [pc, #120] ; (8009744 <DrawChannel_4+0x2b58>)
80096ca: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
80096ce: 79fb ldrb r3, [r7, #7]
80096d0: 4a12 ldr r2, [pc, #72] ; (800971c <DrawChannel_4+0x2b30>)
80096d2: 015b lsls r3, r3, #5
80096d4: 4413 add r3, r2
80096d6: 3312 adds r3, #18
80096d8: 881b ldrh r3, [r3, #0]
80096da: b29b uxth r3, r3
80096dc: 461a mov r2, r3
80096de: 491a ldr r1, [pc, #104] ; (8009748 <DrawChannel_4+0x2b5c>)
80096e0: 4613 mov r3, r2
80096e2: 009b lsls r3, r3, #2
80096e4: 4413 add r3, r2
80096e6: 009a lsls r2, r3, #2
80096e8: 4413 add r3, r2
80096ea: 6afa ldr r2, [r7, #44] ; 0x2c
80096ec: 4413 add r3, r2
80096ee: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80096f2: 2303 movs r3, #3
80096f4: 4621 mov r1, r4
80096f6: f7fa ffc5 bl 8004684 <BSP_LCD_DisplayStringAt>
}
80096fa: f001 bfb6 b.w 800b66a <DrawChannel_4+0x4a7e>
80096fe: bf00 nop
8009700: 08015564 .word 0x08015564
8009704: 0801556c .word 0x0801556c
8009708: 200201ec .word 0x200201ec
800970c: 08012cb8 .word 0x08012cb8
8009710: ffd8aa57 .word 0xffd8aa57
8009714: 08015534 .word 0x08015534
8009718: 0801553c .word 0x0801553c
800971c: 2006b510 .word 0x2006b510
8009720: 20020030 .word 0x20020030
8009724: 08015544 .word 0x08015544
8009728: 0801554c .word 0x0801554c
800972c: 20020040 .word 0x20020040
8009730: 08015554 .word 0x08015554
8009734: 0801555c .word 0x0801555c
8009738: 20020068 .word 0x20020068
800973c: 200200a8 .word 0x200200a8
8009740: 08015574 .word 0x08015574
8009744: 0801557c .word 0x0801557c
8009748: 200200c0 .word 0x200200c0
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800974c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8009750: 488c ldr r0, [pc, #560] ; (8009984 <DrawChannel_4+0x2d98>)
8009752: f7fa fed1 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
8009756: 79fb ldrb r3, [r7, #7]
8009758: 4a8b ldr r2, [pc, #556] ; (8009988 <DrawChannel_4+0x2d9c>)
800975a: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800975e: 79fb ldrb r3, [r7, #7]
8009760: 4a8a ldr r2, [pc, #552] ; (800998c <DrawChannel_4+0x2da0>)
8009762: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009766: 4b8a ldr r3, [pc, #552] ; (8009990 <DrawChannel_4+0x2da4>)
8009768: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800976c: b29b uxth r3, r3
800976e: 461d mov r5, r3
8009770: 79fb ldrb r3, [r7, #7]
8009772: 4a87 ldr r2, [pc, #540] ; (8009990 <DrawChannel_4+0x2da4>)
8009774: 015b lsls r3, r3, #5
8009776: 4413 add r3, r2
8009778: 881b ldrh r3, [r3, #0]
800977a: b29b uxth r3, r3
800977c: 461c mov r4, r3
800977e: 4a85 ldr r2, [pc, #532] ; (8009994 <DrawChannel_4+0x2da8>)
8009780: 006b lsls r3, r5, #1
8009782: 4423 add r3, r4
8009784: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009788: 2303 movs r3, #3
800978a: f7fa ff7b bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800978e: 79fb ldrb r3, [r7, #7]
8009790: 4a81 ldr r2, [pc, #516] ; (8009998 <DrawChannel_4+0x2dac>)
8009792: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8009796: 79fb ldrb r3, [r7, #7]
8009798: 4a80 ldr r2, [pc, #512] ; (800999c <DrawChannel_4+0x2db0>)
800979a: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800979e: 4b7c ldr r3, [pc, #496] ; (8009990 <DrawChannel_4+0x2da4>)
80097a0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80097a4: b29b uxth r3, r3
80097a6: 4619 mov r1, r3
80097a8: 79fb ldrb r3, [r7, #7]
80097aa: 4a79 ldr r2, [pc, #484] ; (8009990 <DrawChannel_4+0x2da4>)
80097ac: 015b lsls r3, r3, #5
80097ae: 4413 add r3, r2
80097b0: 3302 adds r3, #2
80097b2: 881b ldrh r3, [r3, #0]
80097b4: b29b uxth r3, r3
80097b6: 461d mov r5, r3
80097b8: 4a79 ldr r2, [pc, #484] ; (80099a0 <DrawChannel_4+0x2db4>)
80097ba: 460b mov r3, r1
80097bc: 009b lsls r3, r3, #2
80097be: 440b add r3, r1
80097c0: 442b add r3, r5
80097c2: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80097c6: 2303 movs r3, #3
80097c8: 4621 mov r1, r4
80097ca: f7fa ff5b bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
80097ce: 79fb ldrb r3, [r7, #7]
80097d0: 4a74 ldr r2, [pc, #464] ; (80099a4 <DrawChannel_4+0x2db8>)
80097d2: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80097d6: 79fb ldrb r3, [r7, #7]
80097d8: 4a73 ldr r2, [pc, #460] ; (80099a8 <DrawChannel_4+0x2dbc>)
80097da: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80097de: 4b6c ldr r3, [pc, #432] ; (8009990 <DrawChannel_4+0x2da4>)
80097e0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80097e4: b29b uxth r3, r3
80097e6: 461d mov r5, r3
80097e8: 79fb ldrb r3, [r7, #7]
80097ea: 4a69 ldr r2, [pc, #420] ; (8009990 <DrawChannel_4+0x2da4>)
80097ec: 015b lsls r3, r3, #5
80097ee: 4413 add r3, r2
80097f0: 3304 adds r3, #4
80097f2: 881b ldrh r3, [r3, #0]
80097f4: b29b uxth r3, r3
80097f6: 461c mov r4, r3
80097f8: 4a6c ldr r2, [pc, #432] ; (80099ac <DrawChannel_4+0x2dc0>)
80097fa: 00eb lsls r3, r5, #3
80097fc: 4423 add r3, r4
80097fe: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009802: 2303 movs r3, #3
8009804: f7fa ff3e bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens
8009808: 79fb ldrb r3, [r7, #7]
800980a: 4a69 ldr r2, [pc, #420] ; (80099b0 <DrawChannel_4+0x2dc4>)
800980c: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8009810: 79fb ldrb r3, [r7, #7]
8009812: 4a68 ldr r2, [pc, #416] ; (80099b4 <DrawChannel_4+0x2dc8>)
8009814: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009818: f107 0208 add.w r2, r7, #8
800981c: 2303 movs r3, #3
800981e: f7fa ff31 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
8009822: 79fb ldrb r3, [r7, #7]
8009824: 4a62 ldr r2, [pc, #392] ; (80099b0 <DrawChannel_4+0x2dc4>)
8009826: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800982a: 332d adds r3, #45 ; 0x2d
800982c: b298 uxth r0, r3
800982e: 79fb ldrb r3, [r7, #7]
8009830: 4a60 ldr r2, [pc, #384] ; (80099b4 <DrawChannel_4+0x2dc8>)
8009832: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8009836: 79fb ldrb r3, [r7, #7]
8009838: 4a55 ldr r2, [pc, #340] ; (8009990 <DrawChannel_4+0x2da4>)
800983a: 015b lsls r3, r3, #5
800983c: 4413 add r3, r2
800983e: 881b ldrh r3, [r3, #0]
8009840: b29b uxth r3, r3
8009842: 4619 mov r1, r3
8009844: 79fb ldrb r3, [r7, #7]
8009846: 4a52 ldr r2, [pc, #328] ; (8009990 <DrawChannel_4+0x2da4>)
8009848: 015b lsls r3, r3, #5
800984a: 4413 add r3, r2
800984c: 3312 adds r3, #18
800984e: 881b ldrh r3, [r3, #0]
8009850: b29b uxth r3, r3
8009852: 461d mov r5, r3
8009854: 4a58 ldr r2, [pc, #352] ; (80099b8 <DrawChannel_4+0x2dcc>)
8009856: 460b mov r3, r1
8009858: 005b lsls r3, r3, #1
800985a: 440b add r3, r1
800985c: 442b add r3, r5
800985e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009862: 2303 movs r3, #3
8009864: 4621 mov r1, r4
8009866: f7fa ff0d bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800986a: 79fb ldrb r3, [r7, #7]
800986c: 4a53 ldr r2, [pc, #332] ; (80099bc <DrawChannel_4+0x2dd0>)
800986e: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8009872: 79fb ldrb r3, [r7, #7]
8009874: 4a52 ldr r2, [pc, #328] ; (80099c0 <DrawChannel_4+0x2dd4>)
8009876: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800987a: 79fb ldrb r3, [r7, #7]
800987c: 4a44 ldr r2, [pc, #272] ; (8009990 <DrawChannel_4+0x2da4>)
800987e: 015b lsls r3, r3, #5
8009880: 4413 add r3, r2
8009882: 3312 adds r3, #18
8009884: 881b ldrh r3, [r3, #0]
8009886: b29b uxth r3, r3
8009888: 461a mov r2, r3
800988a: 494e ldr r1, [pc, #312] ; (80099c4 <DrawChannel_4+0x2dd8>)
800988c: 4613 mov r3, r2
800988e: 009b lsls r3, r3, #2
8009890: 4413 add r3, r2
8009892: 009a lsls r2, r3, #2
8009894: 4413 add r3, r2
8009896: 6afa ldr r2, [r7, #44] ; 0x2c
8009898: 4413 add r3, r2
800989a: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800989e: 2303 movs r3, #3
80098a0: 4621 mov r1, r4
80098a2: f7fa feef bl 8004684 <BSP_LCD_DisplayStringAt>
}
80098a6: f001 bee0 b.w 800b66a <DrawChannel_4+0x4a7e>
if(menupos == Kiks)
80098aa: 4b47 ldr r3, [pc, #284] ; (80099c8 <DrawChannel_4+0x2ddc>)
80098ac: 781b ldrb r3, [r3, #0]
80098ae: b2db uxtb r3, r3
80098b0: 2b08 cmp r3, #8
80098b2: f040 83ae bne.w 800a012 <DrawChannel_4+0x3426>
if(ACTIVE_CHANNEL == ch)
80098b6: 79fa ldrb r2, [r7, #7]
80098b8: 4b44 ldr r3, [pc, #272] ; (80099cc <DrawChannel_4+0x2de0>)
80098ba: 681b ldr r3, [r3, #0]
80098bc: 429a cmp r2, r3
80098be: f040 82f9 bne.w 8009eb4 <DrawChannel_4+0x32c8>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
80098c2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80098c6: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
80098ca: f7fa fe15 bl 80044f8 <LCD_SetColors>
if(!ipt)
80098ce: 6b3b ldr r3, [r7, #48] ; 0x30
80098d0: 2b00 cmp r3, #0
80098d2: d17f bne.n 80099d4 <DrawChannel_4+0x2de8>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
80098d4: 79fb ldrb r3, [r7, #7]
80098d6: 4a36 ldr r2, [pc, #216] ; (80099b0 <DrawChannel_4+0x2dc4>)
80098d8: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80098dc: 79fb ldrb r3, [r7, #7]
80098de: 4a35 ldr r2, [pc, #212] ; (80099b4 <DrawChannel_4+0x2dc8>)
80098e0: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80098e4: 4a3a ldr r2, [pc, #232] ; (80099d0 <DrawChannel_4+0x2de4>)
80098e6: 6a7b ldr r3, [r7, #36] ; 0x24
80098e8: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80098ec: 2303 movs r3, #3
80098ee: f7fa fec9 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
80098f2: 79fb ldrb r3, [r7, #7]
80098f4: 4a2e ldr r2, [pc, #184] ; (80099b0 <DrawChannel_4+0x2dc4>)
80098f6: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
80098fa: 3307 adds r3, #7
80098fc: b298 uxth r0, r3
80098fe: 79fb ldrb r3, [r7, #7]
8009900: 4a2c ldr r2, [pc, #176] ; (80099b4 <DrawChannel_4+0x2dc8>)
8009902: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009906: 4a32 ldr r2, [pc, #200] ; (80099d0 <DrawChannel_4+0x2de4>)
8009908: 6a3b ldr r3, [r7, #32]
800990a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800990e: 2303 movs r3, #3
8009910: f7fa feb8 bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
8009914: 683b ldr r3, [r7, #0]
8009916: 2b00 cmp r3, #0
8009918: d010 beq.n 800993c <DrawChannel_4+0x2d50>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
800991a: 79fb ldrb r3, [r7, #7]
800991c: 4a24 ldr r2, [pc, #144] ; (80099b0 <DrawChannel_4+0x2dc4>)
800991e: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009922: 330e adds r3, #14
8009924: b298 uxth r0, r3
8009926: 79fb ldrb r3, [r7, #7]
8009928: 4a22 ldr r2, [pc, #136] ; (80099b4 <DrawChannel_4+0x2dc8>)
800992a: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800992e: 4a28 ldr r2, [pc, #160] ; (80099d0 <DrawChannel_4+0x2de4>)
8009930: 69fb ldr r3, [r7, #28]
8009932: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009936: 2303 movs r3, #3
8009938: f7fa fea4 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
800993c: 79fb ldrb r3, [r7, #7]
800993e: 4a1c ldr r2, [pc, #112] ; (80099b0 <DrawChannel_4+0x2dc4>)
8009940: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009944: 3315 adds r3, #21
8009946: b298 uxth r0, r3
8009948: 79fb ldrb r3, [r7, #7]
800994a: 4a1a ldr r2, [pc, #104] ; (80099b4 <DrawChannel_4+0x2dc8>)
800994c: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009950: 4a1f ldr r2, [pc, #124] ; (80099d0 <DrawChannel_4+0x2de4>)
8009952: 69bb ldr r3, [r7, #24]
8009954: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009958: 2303 movs r3, #3
800995a: f7fa fe93 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
800995e: 79fb ldrb r3, [r7, #7]
8009960: 4a13 ldr r2, [pc, #76] ; (80099b0 <DrawChannel_4+0x2dc4>)
8009962: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009966: 331c adds r3, #28
8009968: b298 uxth r0, r3
800996a: 79fb ldrb r3, [r7, #7]
800996c: 4a11 ldr r2, [pc, #68] ; (80099b4 <DrawChannel_4+0x2dc8>)
800996e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009972: 4a17 ldr r2, [pc, #92] ; (80099d0 <DrawChannel_4+0x2de4>)
8009974: 697b ldr r3, [r7, #20]
8009976: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800997a: 2303 movs r3, #3
800997c: f7fa fe82 bl 8004684 <BSP_LCD_DisplayStringAt>
8009980: e1cf b.n 8009d22 <DrawChannel_4+0x3136>
8009982: bf00 nop
8009984: ffd8aa57 .word 0xffd8aa57
8009988: 08015534 .word 0x08015534
800998c: 0801553c .word 0x0801553c
8009990: 2006b510 .word 0x2006b510
8009994: 20020030 .word 0x20020030
8009998: 08015544 .word 0x08015544
800999c: 0801554c .word 0x0801554c
80099a0: 20020040 .word 0x20020040
80099a4: 08015554 .word 0x08015554
80099a8: 0801555c .word 0x0801555c
80099ac: 20020068 .word 0x20020068
80099b0: 08015564 .word 0x08015564
80099b4: 0801556c .word 0x0801556c
80099b8: 200200a8 .word 0x200200a8
80099bc: 08015574 .word 0x08015574
80099c0: 0801557c .word 0x0801557c
80099c4: 200200c0 .word 0x200200c0
80099c8: 20020010 .word 0x20020010
80099cc: 2006b2d0 .word 0x2006b2d0
80099d0: 200201ec .word 0x200201ec
if(ipt == 1)
80099d4: 6b3b ldr r3, [r7, #48] ; 0x30
80099d6: 2b01 cmp r3, #1
80099d8: d164 bne.n 8009aa4 <DrawChannel_4+0x2eb8>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
80099da: 79fb ldrb r3, [r7, #7]
80099dc: 4a99 ldr r2, [pc, #612] ; (8009c44 <DrawChannel_4+0x3058>)
80099de: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
80099e2: 79fb ldrb r3, [r7, #7]
80099e4: 4a98 ldr r2, [pc, #608] ; (8009c48 <DrawChannel_4+0x305c>)
80099e6: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
80099ea: 4a98 ldr r2, [pc, #608] ; (8009c4c <DrawChannel_4+0x3060>)
80099ec: 6a7b ldr r3, [r7, #36] ; 0x24
80099ee: f852 2023 ldr.w r2, [r2, r3, lsl #2]
80099f2: 2303 movs r3, #3
80099f4: f7fa fe46 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
80099f8: 79fb ldrb r3, [r7, #7]
80099fa: 4a92 ldr r2, [pc, #584] ; (8009c44 <DrawChannel_4+0x3058>)
80099fc: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009a00: 3307 adds r3, #7
8009a02: b298 uxth r0, r3
8009a04: 79fb ldrb r3, [r7, #7]
8009a06: 4a90 ldr r2, [pc, #576] ; (8009c48 <DrawChannel_4+0x305c>)
8009a08: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009a0c: 4a8f ldr r2, [pc, #572] ; (8009c4c <DrawChannel_4+0x3060>)
8009a0e: 6a3b ldr r3, [r7, #32]
8009a10: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009a14: 2303 movs r3, #3
8009a16: f7fa fe35 bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
8009a1a: 683b ldr r3, [r7, #0]
8009a1c: 2b00 cmp r3, #0
8009a1e: d010 beq.n 8009a42 <DrawChannel_4+0x2e56>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
8009a20: 79fb ldrb r3, [r7, #7]
8009a22: 4a88 ldr r2, [pc, #544] ; (8009c44 <DrawChannel_4+0x3058>)
8009a24: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009a28: 330e adds r3, #14
8009a2a: b298 uxth r0, r3
8009a2c: 79fb ldrb r3, [r7, #7]
8009a2e: 4a86 ldr r2, [pc, #536] ; (8009c48 <DrawChannel_4+0x305c>)
8009a30: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009a34: 4a85 ldr r2, [pc, #532] ; (8009c4c <DrawChannel_4+0x3060>)
8009a36: 69fb ldr r3, [r7, #28]
8009a38: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009a3c: 2303 movs r3, #3
8009a3e: f7fa fe21 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
8009a42: 79fb ldrb r3, [r7, #7]
8009a44: 4a7f ldr r2, [pc, #508] ; (8009c44 <DrawChannel_4+0x3058>)
8009a46: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009a4a: 3315 adds r3, #21
8009a4c: b298 uxth r0, r3
8009a4e: 79fb ldrb r3, [r7, #7]
8009a50: 4a7d ldr r2, [pc, #500] ; (8009c48 <DrawChannel_4+0x305c>)
8009a52: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009a56: 4a7d ldr r2, [pc, #500] ; (8009c4c <DrawChannel_4+0x3060>)
8009a58: 69bb ldr r3, [r7, #24]
8009a5a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009a5e: 2303 movs r3, #3
8009a60: f7fa fe10 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], ".", LEFT_MODE);
8009a64: 79fb ldrb r3, [r7, #7]
8009a66: 4a77 ldr r2, [pc, #476] ; (8009c44 <DrawChannel_4+0x3058>)
8009a68: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009a6c: 331c adds r3, #28
8009a6e: b298 uxth r0, r3
8009a70: 79fb ldrb r3, [r7, #7]
8009a72: 4a75 ldr r2, [pc, #468] ; (8009c48 <DrawChannel_4+0x305c>)
8009a74: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009a78: 2303 movs r3, #3
8009a7a: 4a75 ldr r2, [pc, #468] ; (8009c50 <DrawChannel_4+0x3064>)
8009a7c: f7fa fe02 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
8009a80: 79fb ldrb r3, [r7, #7]
8009a82: 4a70 ldr r2, [pc, #448] ; (8009c44 <DrawChannel_4+0x3058>)
8009a84: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009a88: 3323 adds r3, #35 ; 0x23
8009a8a: b298 uxth r0, r3
8009a8c: 79fb ldrb r3, [r7, #7]
8009a8e: 4a6e ldr r2, [pc, #440] ; (8009c48 <DrawChannel_4+0x305c>)
8009a90: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009a94: 4a6d ldr r2, [pc, #436] ; (8009c4c <DrawChannel_4+0x3060>)
8009a96: 697b ldr r3, [r7, #20]
8009a98: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009a9c: 2303 movs r3, #3
8009a9e: f7fa fdf1 bl 8004684 <BSP_LCD_DisplayStringAt>
8009aa2: e13e b.n 8009d22 <DrawChannel_4+0x3136>
if(ipt == 2)
8009aa4: 6b3b ldr r3, [r7, #48] ; 0x30
8009aa6: 2b02 cmp r3, #2
8009aa8: d164 bne.n 8009b74 <DrawChannel_4+0x2f88>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
8009aaa: 79fb ldrb r3, [r7, #7]
8009aac: 4a65 ldr r2, [pc, #404] ; (8009c44 <DrawChannel_4+0x3058>)
8009aae: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8009ab2: 79fb ldrb r3, [r7, #7]
8009ab4: 4a64 ldr r2, [pc, #400] ; (8009c48 <DrawChannel_4+0x305c>)
8009ab6: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009aba: 4a64 ldr r2, [pc, #400] ; (8009c4c <DrawChannel_4+0x3060>)
8009abc: 6a7b ldr r3, [r7, #36] ; 0x24
8009abe: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009ac2: 2303 movs r3, #3
8009ac4: f7fa fdde bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
8009ac8: 79fb ldrb r3, [r7, #7]
8009aca: 4a5e ldr r2, [pc, #376] ; (8009c44 <DrawChannel_4+0x3058>)
8009acc: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009ad0: 3307 adds r3, #7
8009ad2: b298 uxth r0, r3
8009ad4: 79fb ldrb r3, [r7, #7]
8009ad6: 4a5c ldr r2, [pc, #368] ; (8009c48 <DrawChannel_4+0x305c>)
8009ad8: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009adc: 4a5b ldr r2, [pc, #364] ; (8009c4c <DrawChannel_4+0x3060>)
8009ade: 6a3b ldr r3, [r7, #32]
8009ae0: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009ae4: 2303 movs r3, #3
8009ae6: f7fa fdcd bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
8009aea: 683b ldr r3, [r7, #0]
8009aec: 2b00 cmp r3, #0
8009aee: d010 beq.n 8009b12 <DrawChannel_4+0x2f26>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
8009af0: 79fb ldrb r3, [r7, #7]
8009af2: 4a54 ldr r2, [pc, #336] ; (8009c44 <DrawChannel_4+0x3058>)
8009af4: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009af8: 330e adds r3, #14
8009afa: b298 uxth r0, r3
8009afc: 79fb ldrb r3, [r7, #7]
8009afe: 4a52 ldr r2, [pc, #328] ; (8009c48 <DrawChannel_4+0x305c>)
8009b00: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009b04: 4a51 ldr r2, [pc, #324] ; (8009c4c <DrawChannel_4+0x3060>)
8009b06: 69fb ldr r3, [r7, #28]
8009b08: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009b0c: 2303 movs r3, #3
8009b0e: f7fa fdb9 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], ".", LEFT_MODE);
8009b12: 79fb ldrb r3, [r7, #7]
8009b14: 4a4b ldr r2, [pc, #300] ; (8009c44 <DrawChannel_4+0x3058>)
8009b16: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009b1a: 3315 adds r3, #21
8009b1c: b298 uxth r0, r3
8009b1e: 79fb ldrb r3, [r7, #7]
8009b20: 4a49 ldr r2, [pc, #292] ; (8009c48 <DrawChannel_4+0x305c>)
8009b22: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009b26: 2303 movs r3, #3
8009b28: 4a49 ldr r2, [pc, #292] ; (8009c50 <DrawChannel_4+0x3064>)
8009b2a: f7fa fdab bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
8009b2e: 79fb ldrb r3, [r7, #7]
8009b30: 4a44 ldr r2, [pc, #272] ; (8009c44 <DrawChannel_4+0x3058>)
8009b32: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009b36: 331c adds r3, #28
8009b38: b298 uxth r0, r3
8009b3a: 79fb ldrb r3, [r7, #7]
8009b3c: 4a42 ldr r2, [pc, #264] ; (8009c48 <DrawChannel_4+0x305c>)
8009b3e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009b42: 4a42 ldr r2, [pc, #264] ; (8009c4c <DrawChannel_4+0x3060>)
8009b44: 69bb ldr r3, [r7, #24]
8009b46: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009b4a: 2303 movs r3, #3
8009b4c: f7fa fd9a bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
8009b50: 79fb ldrb r3, [r7, #7]
8009b52: 4a3c ldr r2, [pc, #240] ; (8009c44 <DrawChannel_4+0x3058>)
8009b54: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009b58: 3323 adds r3, #35 ; 0x23
8009b5a: b298 uxth r0, r3
8009b5c: 79fb ldrb r3, [r7, #7]
8009b5e: 4a3a ldr r2, [pc, #232] ; (8009c48 <DrawChannel_4+0x305c>)
8009b60: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009b64: 4a39 ldr r2, [pc, #228] ; (8009c4c <DrawChannel_4+0x3060>)
8009b66: 697b ldr r3, [r7, #20]
8009b68: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009b6c: 2303 movs r3, #3
8009b6e: f7fa fd89 bl 8004684 <BSP_LCD_DisplayStringAt>
8009b72: e0d6 b.n 8009d22 <DrawChannel_4+0x3136>
if(ipt == 3)
8009b74: 6b3b ldr r3, [r7, #48] ; 0x30
8009b76: 2b03 cmp r3, #3
8009b78: d16c bne.n 8009c54 <DrawChannel_4+0x3068>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
8009b7a: 79fb ldrb r3, [r7, #7]
8009b7c: 4a31 ldr r2, [pc, #196] ; (8009c44 <DrawChannel_4+0x3058>)
8009b7e: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8009b82: 79fb ldrb r3, [r7, #7]
8009b84: 4a30 ldr r2, [pc, #192] ; (8009c48 <DrawChannel_4+0x305c>)
8009b86: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009b8a: 4a30 ldr r2, [pc, #192] ; (8009c4c <DrawChannel_4+0x3060>)
8009b8c: 6a7b ldr r3, [r7, #36] ; 0x24
8009b8e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009b92: 2303 movs r3, #3
8009b94: f7fa fd76 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
8009b98: 79fb ldrb r3, [r7, #7]
8009b9a: 4a2a ldr r2, [pc, #168] ; (8009c44 <DrawChannel_4+0x3058>)
8009b9c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009ba0: 3307 adds r3, #7
8009ba2: b298 uxth r0, r3
8009ba4: 79fb ldrb r3, [r7, #7]
8009ba6: 4a28 ldr r2, [pc, #160] ; (8009c48 <DrawChannel_4+0x305c>)
8009ba8: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009bac: 4a27 ldr r2, [pc, #156] ; (8009c4c <DrawChannel_4+0x3060>)
8009bae: 6a3b ldr r3, [r7, #32]
8009bb0: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009bb4: 2303 movs r3, #3
8009bb6: f7fa fd65 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], ".", LEFT_MODE);
8009bba: 79fb ldrb r3, [r7, #7]
8009bbc: 4a21 ldr r2, [pc, #132] ; (8009c44 <DrawChannel_4+0x3058>)
8009bbe: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009bc2: 330e adds r3, #14
8009bc4: b298 uxth r0, r3
8009bc6: 79fb ldrb r3, [r7, #7]
8009bc8: 4a1f ldr r2, [pc, #124] ; (8009c48 <DrawChannel_4+0x305c>)
8009bca: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009bce: 2303 movs r3, #3
8009bd0: 4a1f ldr r2, [pc, #124] ; (8009c50 <DrawChannel_4+0x3064>)
8009bd2: f7fa fd57 bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
8009bd6: 683b ldr r3, [r7, #0]
8009bd8: 2b00 cmp r3, #0
8009bda: d010 beq.n 8009bfe <DrawChannel_4+0x3012>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
8009bdc: 79fb ldrb r3, [r7, #7]
8009bde: 4a19 ldr r2, [pc, #100] ; (8009c44 <DrawChannel_4+0x3058>)
8009be0: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009be4: 3315 adds r3, #21
8009be6: b298 uxth r0, r3
8009be8: 79fb ldrb r3, [r7, #7]
8009bea: 4a17 ldr r2, [pc, #92] ; (8009c48 <DrawChannel_4+0x305c>)
8009bec: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009bf0: 4a16 ldr r2, [pc, #88] ; (8009c4c <DrawChannel_4+0x3060>)
8009bf2: 69fb ldr r3, [r7, #28]
8009bf4: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009bf8: 2303 movs r3, #3
8009bfa: f7fa fd43 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
8009bfe: 79fb ldrb r3, [r7, #7]
8009c00: 4a10 ldr r2, [pc, #64] ; (8009c44 <DrawChannel_4+0x3058>)
8009c02: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009c06: 331c adds r3, #28
8009c08: b298 uxth r0, r3
8009c0a: 79fb ldrb r3, [r7, #7]
8009c0c: 4a0e ldr r2, [pc, #56] ; (8009c48 <DrawChannel_4+0x305c>)
8009c0e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009c12: 4a0e ldr r2, [pc, #56] ; (8009c4c <DrawChannel_4+0x3060>)
8009c14: 69bb ldr r3, [r7, #24]
8009c16: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009c1a: 2303 movs r3, #3
8009c1c: f7fa fd32 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
8009c20: 79fb ldrb r3, [r7, #7]
8009c22: 4a08 ldr r2, [pc, #32] ; (8009c44 <DrawChannel_4+0x3058>)
8009c24: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009c28: 3323 adds r3, #35 ; 0x23
8009c2a: b298 uxth r0, r3
8009c2c: 79fb ldrb r3, [r7, #7]
8009c2e: 4a06 ldr r2, [pc, #24] ; (8009c48 <DrawChannel_4+0x305c>)
8009c30: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009c34: 4a05 ldr r2, [pc, #20] ; (8009c4c <DrawChannel_4+0x3060>)
8009c36: 697b ldr r3, [r7, #20]
8009c38: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009c3c: 2303 movs r3, #3
8009c3e: f7fa fd21 bl 8004684 <BSP_LCD_DisplayStringAt>
8009c42: e06e b.n 8009d22 <DrawChannel_4+0x3136>
8009c44: 08015564 .word 0x08015564
8009c48: 0801556c .word 0x0801556c
8009c4c: 200201ec .word 0x200201ec
8009c50: 08012cb8 .word 0x08012cb8
if(ipt == 4)
8009c54: 6b3b ldr r3, [r7, #48] ; 0x30
8009c56: 2b04 cmp r3, #4
8009c58: d163 bne.n 8009d22 <DrawChannel_4+0x3136>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
8009c5a: 79fb ldrb r3, [r7, #7]
8009c5c: 4a82 ldr r2, [pc, #520] ; (8009e68 <DrawChannel_4+0x327c>)
8009c5e: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8009c62: 79fb ldrb r3, [r7, #7]
8009c64: 4a81 ldr r2, [pc, #516] ; (8009e6c <DrawChannel_4+0x3280>)
8009c66: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009c6a: 4a81 ldr r2, [pc, #516] ; (8009e70 <DrawChannel_4+0x3284>)
8009c6c: 6a7b ldr r3, [r7, #36] ; 0x24
8009c6e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009c72: 2303 movs r3, #3
8009c74: f7fa fd06 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], ".", LEFT_MODE);
8009c78: 79fb ldrb r3, [r7, #7]
8009c7a: 4a7b ldr r2, [pc, #492] ; (8009e68 <DrawChannel_4+0x327c>)
8009c7c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009c80: 3307 adds r3, #7
8009c82: b298 uxth r0, r3
8009c84: 79fb ldrb r3, [r7, #7]
8009c86: 4a79 ldr r2, [pc, #484] ; (8009e6c <DrawChannel_4+0x3280>)
8009c88: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009c8c: 2303 movs r3, #3
8009c8e: 4a79 ldr r2, [pc, #484] ; (8009e74 <DrawChannel_4+0x3288>)
8009c90: f7fa fcf8 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
8009c94: 79fb ldrb r3, [r7, #7]
8009c96: 4a74 ldr r2, [pc, #464] ; (8009e68 <DrawChannel_4+0x327c>)
8009c98: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009c9c: 330e adds r3, #14
8009c9e: b298 uxth r0, r3
8009ca0: 79fb ldrb r3, [r7, #7]
8009ca2: 4a72 ldr r2, [pc, #456] ; (8009e6c <DrawChannel_4+0x3280>)
8009ca4: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009ca8: 4a71 ldr r2, [pc, #452] ; (8009e70 <DrawChannel_4+0x3284>)
8009caa: 6a3b ldr r3, [r7, #32]
8009cac: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009cb0: 2303 movs r3, #3
8009cb2: f7fa fce7 bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
8009cb6: 683b ldr r3, [r7, #0]
8009cb8: 2b00 cmp r3, #0
8009cba: d010 beq.n 8009cde <DrawChannel_4+0x30f2>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
8009cbc: 79fb ldrb r3, [r7, #7]
8009cbe: 4a6a ldr r2, [pc, #424] ; (8009e68 <DrawChannel_4+0x327c>)
8009cc0: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009cc4: 3315 adds r3, #21
8009cc6: b298 uxth r0, r3
8009cc8: 79fb ldrb r3, [r7, #7]
8009cca: 4a68 ldr r2, [pc, #416] ; (8009e6c <DrawChannel_4+0x3280>)
8009ccc: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009cd0: 4a67 ldr r2, [pc, #412] ; (8009e70 <DrawChannel_4+0x3284>)
8009cd2: 69fb ldr r3, [r7, #28]
8009cd4: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009cd8: 2303 movs r3, #3
8009cda: f7fa fcd3 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
8009cde: 79fb ldrb r3, [r7, #7]
8009ce0: 4a61 ldr r2, [pc, #388] ; (8009e68 <DrawChannel_4+0x327c>)
8009ce2: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009ce6: 331c adds r3, #28
8009ce8: b298 uxth r0, r3
8009cea: 79fb ldrb r3, [r7, #7]
8009cec: 4a5f ldr r2, [pc, #380] ; (8009e6c <DrawChannel_4+0x3280>)
8009cee: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009cf2: 4a5f ldr r2, [pc, #380] ; (8009e70 <DrawChannel_4+0x3284>)
8009cf4: 69bb ldr r3, [r7, #24]
8009cf6: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009cfa: 2303 movs r3, #3
8009cfc: f7fa fcc2 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
8009d00: 79fb ldrb r3, [r7, #7]
8009d02: 4a59 ldr r2, [pc, #356] ; (8009e68 <DrawChannel_4+0x327c>)
8009d04: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009d08: 3323 adds r3, #35 ; 0x23
8009d0a: b298 uxth r0, r3
8009d0c: 79fb ldrb r3, [r7, #7]
8009d0e: 4a57 ldr r2, [pc, #348] ; (8009e6c <DrawChannel_4+0x3280>)
8009d10: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009d14: 4a56 ldr r2, [pc, #344] ; (8009e70 <DrawChannel_4+0x3284>)
8009d16: 697b ldr r3, [r7, #20]
8009d18: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009d1c: 2303 movs r3, #3
8009d1e: f7fa fcb1 bl 8004684 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8009d22: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8009d26: 4854 ldr r0, [pc, #336] ; (8009e78 <DrawChannel_4+0x328c>)
8009d28: f7fa fbe6 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
8009d2c: 79fb ldrb r3, [r7, #7]
8009d2e: 4a53 ldr r2, [pc, #332] ; (8009e7c <DrawChannel_4+0x3290>)
8009d30: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8009d34: 79fb ldrb r3, [r7, #7]
8009d36: 4a52 ldr r2, [pc, #328] ; (8009e80 <DrawChannel_4+0x3294>)
8009d38: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009d3c: 4b51 ldr r3, [pc, #324] ; (8009e84 <DrawChannel_4+0x3298>)
8009d3e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8009d42: b29b uxth r3, r3
8009d44: 461d mov r5, r3
8009d46: 79fb ldrb r3, [r7, #7]
8009d48: 4a4e ldr r2, [pc, #312] ; (8009e84 <DrawChannel_4+0x3298>)
8009d4a: 015b lsls r3, r3, #5
8009d4c: 4413 add r3, r2
8009d4e: 881b ldrh r3, [r3, #0]
8009d50: b29b uxth r3, r3
8009d52: 461c mov r4, r3
8009d54: 4a4c ldr r2, [pc, #304] ; (8009e88 <DrawChannel_4+0x329c>)
8009d56: 006b lsls r3, r5, #1
8009d58: 4423 add r3, r4
8009d5a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009d5e: 2303 movs r3, #3
8009d60: f7fa fc90 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
8009d64: 79fb ldrb r3, [r7, #7]
8009d66: 4a49 ldr r2, [pc, #292] ; (8009e8c <DrawChannel_4+0x32a0>)
8009d68: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8009d6c: 79fb ldrb r3, [r7, #7]
8009d6e: 4a48 ldr r2, [pc, #288] ; (8009e90 <DrawChannel_4+0x32a4>)
8009d70: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8009d74: 4b43 ldr r3, [pc, #268] ; (8009e84 <DrawChannel_4+0x3298>)
8009d76: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8009d7a: b29b uxth r3, r3
8009d7c: 4619 mov r1, r3
8009d7e: 79fb ldrb r3, [r7, #7]
8009d80: 4a40 ldr r2, [pc, #256] ; (8009e84 <DrawChannel_4+0x3298>)
8009d82: 015b lsls r3, r3, #5
8009d84: 4413 add r3, r2
8009d86: 3302 adds r3, #2
8009d88: 881b ldrh r3, [r3, #0]
8009d8a: b29b uxth r3, r3
8009d8c: 461d mov r5, r3
8009d8e: 4a41 ldr r2, [pc, #260] ; (8009e94 <DrawChannel_4+0x32a8>)
8009d90: 460b mov r3, r1
8009d92: 009b lsls r3, r3, #2
8009d94: 440b add r3, r1
8009d96: 442b add r3, r5
8009d98: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009d9c: 2303 movs r3, #3
8009d9e: 4621 mov r1, r4
8009da0: f7fa fc70 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
8009da4: 79fb ldrb r3, [r7, #7]
8009da6: 4a3c ldr r2, [pc, #240] ; (8009e98 <DrawChannel_4+0x32ac>)
8009da8: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8009dac: 79fb ldrb r3, [r7, #7]
8009dae: 4a3b ldr r2, [pc, #236] ; (8009e9c <DrawChannel_4+0x32b0>)
8009db0: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009db4: 4b33 ldr r3, [pc, #204] ; (8009e84 <DrawChannel_4+0x3298>)
8009db6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8009dba: b29b uxth r3, r3
8009dbc: 461d mov r5, r3
8009dbe: 79fb ldrb r3, [r7, #7]
8009dc0: 4a30 ldr r2, [pc, #192] ; (8009e84 <DrawChannel_4+0x3298>)
8009dc2: 015b lsls r3, r3, #5
8009dc4: 4413 add r3, r2
8009dc6: 3304 adds r3, #4
8009dc8: 881b ldrh r3, [r3, #0]
8009dca: b29b uxth r3, r3
8009dcc: 461c mov r4, r3
8009dce: 4a34 ldr r2, [pc, #208] ; (8009ea0 <DrawChannel_4+0x32b4>)
8009dd0: 00eb lsls r3, r5, #3
8009dd2: 4423 add r3, r4
8009dd4: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009dd8: 2303 movs r3, #3
8009dda: f7fa fc53 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
8009dde: 79fb ldrb r3, [r7, #7]
8009de0: 4a21 ldr r2, [pc, #132] ; (8009e68 <DrawChannel_4+0x327c>)
8009de2: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009de6: 332d adds r3, #45 ; 0x2d
8009de8: b298 uxth r0, r3
8009dea: 79fb ldrb r3, [r7, #7]
8009dec: 4a1f ldr r2, [pc, #124] ; (8009e6c <DrawChannel_4+0x3280>)
8009dee: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8009df2: 79fb ldrb r3, [r7, #7]
8009df4: 4a23 ldr r2, [pc, #140] ; (8009e84 <DrawChannel_4+0x3298>)
8009df6: 015b lsls r3, r3, #5
8009df8: 4413 add r3, r2
8009dfa: 881b ldrh r3, [r3, #0]
8009dfc: b29b uxth r3, r3
8009dfe: 4619 mov r1, r3
8009e00: 79fb ldrb r3, [r7, #7]
8009e02: 4a20 ldr r2, [pc, #128] ; (8009e84 <DrawChannel_4+0x3298>)
8009e04: 015b lsls r3, r3, #5
8009e06: 4413 add r3, r2
8009e08: 3312 adds r3, #18
8009e0a: 881b ldrh r3, [r3, #0]
8009e0c: b29b uxth r3, r3
8009e0e: 461d mov r5, r3
8009e10: 4a24 ldr r2, [pc, #144] ; (8009ea4 <DrawChannel_4+0x32b8>)
8009e12: 460b mov r3, r1
8009e14: 005b lsls r3, r3, #1
8009e16: 440b add r3, r1
8009e18: 442b add r3, r5
8009e1a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009e1e: 2303 movs r3, #3
8009e20: 4621 mov r1, r4
8009e22: f7fa fc2f bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
8009e26: 79fb ldrb r3, [r7, #7]
8009e28: 4a1f ldr r2, [pc, #124] ; (8009ea8 <DrawChannel_4+0x32bc>)
8009e2a: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8009e2e: 79fb ldrb r3, [r7, #7]
8009e30: 4a1e ldr r2, [pc, #120] ; (8009eac <DrawChannel_4+0x32c0>)
8009e32: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8009e36: 79fb ldrb r3, [r7, #7]
8009e38: 4a12 ldr r2, [pc, #72] ; (8009e84 <DrawChannel_4+0x3298>)
8009e3a: 015b lsls r3, r3, #5
8009e3c: 4413 add r3, r2
8009e3e: 3312 adds r3, #18
8009e40: 881b ldrh r3, [r3, #0]
8009e42: b29b uxth r3, r3
8009e44: 461a mov r2, r3
8009e46: 491a ldr r1, [pc, #104] ; (8009eb0 <DrawChannel_4+0x32c4>)
8009e48: 4613 mov r3, r2
8009e4a: 009b lsls r3, r3, #2
8009e4c: 4413 add r3, r2
8009e4e: 009a lsls r2, r3, #2
8009e50: 4413 add r3, r2
8009e52: 6afa ldr r2, [r7, #44] ; 0x2c
8009e54: 4413 add r3, r2
8009e56: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8009e5a: 2303 movs r3, #3
8009e5c: 4621 mov r1, r4
8009e5e: f7fa fc11 bl 8004684 <BSP_LCD_DisplayStringAt>
}
8009e62: f001 bc02 b.w 800b66a <DrawChannel_4+0x4a7e>
8009e66: bf00 nop
8009e68: 08015564 .word 0x08015564
8009e6c: 0801556c .word 0x0801556c
8009e70: 200201ec .word 0x200201ec
8009e74: 08012cb8 .word 0x08012cb8
8009e78: ffd8aa57 .word 0xffd8aa57
8009e7c: 08015534 .word 0x08015534
8009e80: 0801553c .word 0x0801553c
8009e84: 2006b510 .word 0x2006b510
8009e88: 20020030 .word 0x20020030
8009e8c: 08015544 .word 0x08015544
8009e90: 0801554c .word 0x0801554c
8009e94: 20020040 .word 0x20020040
8009e98: 08015554 .word 0x08015554
8009e9c: 0801555c .word 0x0801555c
8009ea0: 20020068 .word 0x20020068
8009ea4: 200200a8 .word 0x200200a8
8009ea8: 08015574 .word 0x08015574
8009eac: 0801557c .word 0x0801557c
8009eb0: 200200c0 .word 0x200200c0
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8009eb4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8009eb8: 488c ldr r0, [pc, #560] ; (800a0ec <DrawChannel_4+0x3500>)
8009eba: f7fa fb1d bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
8009ebe: 79fb ldrb r3, [r7, #7]
8009ec0: 4a8b ldr r2, [pc, #556] ; (800a0f0 <DrawChannel_4+0x3504>)
8009ec2: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8009ec6: 79fb ldrb r3, [r7, #7]
8009ec8: 4a8a ldr r2, [pc, #552] ; (800a0f4 <DrawChannel_4+0x3508>)
8009eca: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009ece: 4b8a ldr r3, [pc, #552] ; (800a0f8 <DrawChannel_4+0x350c>)
8009ed0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8009ed4: b29b uxth r3, r3
8009ed6: 461d mov r5, r3
8009ed8: 79fb ldrb r3, [r7, #7]
8009eda: 4a87 ldr r2, [pc, #540] ; (800a0f8 <DrawChannel_4+0x350c>)
8009edc: 015b lsls r3, r3, #5
8009ede: 4413 add r3, r2
8009ee0: 881b ldrh r3, [r3, #0]
8009ee2: b29b uxth r3, r3
8009ee4: 461c mov r4, r3
8009ee6: 4a85 ldr r2, [pc, #532] ; (800a0fc <DrawChannel_4+0x3510>)
8009ee8: 006b lsls r3, r5, #1
8009eea: 4423 add r3, r4
8009eec: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009ef0: 2303 movs r3, #3
8009ef2: f7fa fbc7 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
8009ef6: 79fb ldrb r3, [r7, #7]
8009ef8: 4a81 ldr r2, [pc, #516] ; (800a100 <DrawChannel_4+0x3514>)
8009efa: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8009efe: 79fb ldrb r3, [r7, #7]
8009f00: 4a80 ldr r2, [pc, #512] ; (800a104 <DrawChannel_4+0x3518>)
8009f02: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8009f06: 4b7c ldr r3, [pc, #496] ; (800a0f8 <DrawChannel_4+0x350c>)
8009f08: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8009f0c: b29b uxth r3, r3
8009f0e: 4619 mov r1, r3
8009f10: 79fb ldrb r3, [r7, #7]
8009f12: 4a79 ldr r2, [pc, #484] ; (800a0f8 <DrawChannel_4+0x350c>)
8009f14: 015b lsls r3, r3, #5
8009f16: 4413 add r3, r2
8009f18: 3302 adds r3, #2
8009f1a: 881b ldrh r3, [r3, #0]
8009f1c: b29b uxth r3, r3
8009f1e: 461d mov r5, r3
8009f20: 4a79 ldr r2, [pc, #484] ; (800a108 <DrawChannel_4+0x351c>)
8009f22: 460b mov r3, r1
8009f24: 009b lsls r3, r3, #2
8009f26: 440b add r3, r1
8009f28: 442b add r3, r5
8009f2a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009f2e: 2303 movs r3, #3
8009f30: 4621 mov r1, r4
8009f32: f7fa fba7 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
8009f36: 79fb ldrb r3, [r7, #7]
8009f38: 4a74 ldr r2, [pc, #464] ; (800a10c <DrawChannel_4+0x3520>)
8009f3a: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8009f3e: 79fb ldrb r3, [r7, #7]
8009f40: 4a73 ldr r2, [pc, #460] ; (800a110 <DrawChannel_4+0x3524>)
8009f42: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009f46: 4b6c ldr r3, [pc, #432] ; (800a0f8 <DrawChannel_4+0x350c>)
8009f48: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8009f4c: b29b uxth r3, r3
8009f4e: 461d mov r5, r3
8009f50: 79fb ldrb r3, [r7, #7]
8009f52: 4a69 ldr r2, [pc, #420] ; (800a0f8 <DrawChannel_4+0x350c>)
8009f54: 015b lsls r3, r3, #5
8009f56: 4413 add r3, r2
8009f58: 3304 adds r3, #4
8009f5a: 881b ldrh r3, [r3, #0]
8009f5c: b29b uxth r3, r3
8009f5e: 461c mov r4, r3
8009f60: 4a6c ldr r2, [pc, #432] ; (800a114 <DrawChannel_4+0x3528>)
8009f62: 00eb lsls r3, r5, #3
8009f64: 4423 add r3, r4
8009f66: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009f6a: 2303 movs r3, #3
8009f6c: f7fa fb8a bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens
8009f70: 79fb ldrb r3, [r7, #7]
8009f72: 4a69 ldr r2, [pc, #420] ; (800a118 <DrawChannel_4+0x352c>)
8009f74: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8009f78: 79fb ldrb r3, [r7, #7]
8009f7a: 4a68 ldr r2, [pc, #416] ; (800a11c <DrawChannel_4+0x3530>)
8009f7c: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
8009f80: f107 0208 add.w r2, r7, #8
8009f84: 2303 movs r3, #3
8009f86: f7fa fb7d bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
8009f8a: 79fb ldrb r3, [r7, #7]
8009f8c: 4a62 ldr r2, [pc, #392] ; (800a118 <DrawChannel_4+0x352c>)
8009f8e: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
8009f92: 332d adds r3, #45 ; 0x2d
8009f94: b298 uxth r0, r3
8009f96: 79fb ldrb r3, [r7, #7]
8009f98: 4a60 ldr r2, [pc, #384] ; (800a11c <DrawChannel_4+0x3530>)
8009f9a: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8009f9e: 79fb ldrb r3, [r7, #7]
8009fa0: 4a55 ldr r2, [pc, #340] ; (800a0f8 <DrawChannel_4+0x350c>)
8009fa2: 015b lsls r3, r3, #5
8009fa4: 4413 add r3, r2
8009fa6: 881b ldrh r3, [r3, #0]
8009fa8: b29b uxth r3, r3
8009faa: 4619 mov r1, r3
8009fac: 79fb ldrb r3, [r7, #7]
8009fae: 4a52 ldr r2, [pc, #328] ; (800a0f8 <DrawChannel_4+0x350c>)
8009fb0: 015b lsls r3, r3, #5
8009fb2: 4413 add r3, r2
8009fb4: 3312 adds r3, #18
8009fb6: 881b ldrh r3, [r3, #0]
8009fb8: b29b uxth r3, r3
8009fba: 461d mov r5, r3
8009fbc: 4a58 ldr r2, [pc, #352] ; (800a120 <DrawChannel_4+0x3534>)
8009fbe: 460b mov r3, r1
8009fc0: 005b lsls r3, r3, #1
8009fc2: 440b add r3, r1
8009fc4: 442b add r3, r5
8009fc6: f852 2023 ldr.w r2, [r2, r3, lsl #2]
8009fca: 2303 movs r3, #3
8009fcc: 4621 mov r1, r4
8009fce: f7fa fb59 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
8009fd2: 79fb ldrb r3, [r7, #7]
8009fd4: 4a53 ldr r2, [pc, #332] ; (800a124 <DrawChannel_4+0x3538>)
8009fd6: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
8009fda: 79fb ldrb r3, [r7, #7]
8009fdc: 4a52 ldr r2, [pc, #328] ; (800a128 <DrawChannel_4+0x353c>)
8009fde: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
8009fe2: 79fb ldrb r3, [r7, #7]
8009fe4: 4a44 ldr r2, [pc, #272] ; (800a0f8 <DrawChannel_4+0x350c>)
8009fe6: 015b lsls r3, r3, #5
8009fe8: 4413 add r3, r2
8009fea: 3312 adds r3, #18
8009fec: 881b ldrh r3, [r3, #0]
8009fee: b29b uxth r3, r3
8009ff0: 461a mov r2, r3
8009ff2: 494e ldr r1, [pc, #312] ; (800a12c <DrawChannel_4+0x3540>)
8009ff4: 4613 mov r3, r2
8009ff6: 009b lsls r3, r3, #2
8009ff8: 4413 add r3, r2
8009ffa: 009a lsls r2, r3, #2
8009ffc: 4413 add r3, r2
8009ffe: 6afa ldr r2, [r7, #44] ; 0x2c
800a000: 4413 add r3, r2
800a002: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800a006: 2303 movs r3, #3
800a008: 4621 mov r1, r4
800a00a: f7fa fb3b bl 8004684 <BSP_LCD_DisplayStringAt>
}
800a00e: f001 bb2c b.w 800b66a <DrawChannel_4+0x4a7e>
if(menupos == Kikd)
800a012: 4b47 ldr r3, [pc, #284] ; (800a130 <DrawChannel_4+0x3544>)
800a014: 781b ldrb r3, [r3, #0]
800a016: b2db uxtb r3, r3
800a018: 2b09 cmp r3, #9
800a01a: f040 83ae bne.w 800a77a <DrawChannel_4+0x3b8e>
if(ACTIVE_CHANNEL == ch)
800a01e: 79fa ldrb r2, [r7, #7]
800a020: 4b44 ldr r3, [pc, #272] ; (800a134 <DrawChannel_4+0x3548>)
800a022: 681b ldr r3, [r3, #0]
800a024: 429a cmp r2, r3
800a026: f040 82f9 bne.w 800a61c <DrawChannel_4+0x3a30>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800a02a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800a02e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800a032: f7fa fa61 bl 80044f8 <LCD_SetColors>
if(!ipt)
800a036: 6b3b ldr r3, [r7, #48] ; 0x30
800a038: 2b00 cmp r3, #0
800a03a: d17f bne.n 800a13c <DrawChannel_4+0x3550>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
800a03c: 79fb ldrb r3, [r7, #7]
800a03e: 4a36 ldr r2, [pc, #216] ; (800a118 <DrawChannel_4+0x352c>)
800a040: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800a044: 79fb ldrb r3, [r7, #7]
800a046: 4a35 ldr r2, [pc, #212] ; (800a11c <DrawChannel_4+0x3530>)
800a048: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a04c: 4a3a ldr r2, [pc, #232] ; (800a138 <DrawChannel_4+0x354c>)
800a04e: 6a7b ldr r3, [r7, #36] ; 0x24
800a050: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a054: 2303 movs r3, #3
800a056: f7fa fb15 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
800a05a: 79fb ldrb r3, [r7, #7]
800a05c: 4a2e ldr r2, [pc, #184] ; (800a118 <DrawChannel_4+0x352c>)
800a05e: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a062: 3307 adds r3, #7
800a064: b298 uxth r0, r3
800a066: 79fb ldrb r3, [r7, #7]
800a068: 4a2c ldr r2, [pc, #176] ; (800a11c <DrawChannel_4+0x3530>)
800a06a: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a06e: 4a32 ldr r2, [pc, #200] ; (800a138 <DrawChannel_4+0x354c>)
800a070: 6a3b ldr r3, [r7, #32]
800a072: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a076: 2303 movs r3, #3
800a078: f7fa fb04 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
800a07c: 79fb ldrb r3, [r7, #7]
800a07e: 4a26 ldr r2, [pc, #152] ; (800a118 <DrawChannel_4+0x352c>)
800a080: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a084: 330e adds r3, #14
800a086: b298 uxth r0, r3
800a088: 79fb ldrb r3, [r7, #7]
800a08a: 4a24 ldr r2, [pc, #144] ; (800a11c <DrawChannel_4+0x3530>)
800a08c: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a090: 4a29 ldr r2, [pc, #164] ; (800a138 <DrawChannel_4+0x354c>)
800a092: 69fb ldr r3, [r7, #28]
800a094: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a098: 2303 movs r3, #3
800a09a: f7fa faf3 bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
800a09e: 683b ldr r3, [r7, #0]
800a0a0: 2b00 cmp r3, #0
800a0a2: d010 beq.n 800a0c6 <DrawChannel_4+0x34da>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
800a0a4: 79fb ldrb r3, [r7, #7]
800a0a6: 4a1c ldr r2, [pc, #112] ; (800a118 <DrawChannel_4+0x352c>)
800a0a8: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a0ac: 3315 adds r3, #21
800a0ae: b298 uxth r0, r3
800a0b0: 79fb ldrb r3, [r7, #7]
800a0b2: 4a1a ldr r2, [pc, #104] ; (800a11c <DrawChannel_4+0x3530>)
800a0b4: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a0b8: 4a1f ldr r2, [pc, #124] ; (800a138 <DrawChannel_4+0x354c>)
800a0ba: 69bb ldr r3, [r7, #24]
800a0bc: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a0c0: 2303 movs r3, #3
800a0c2: f7fa fadf bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
800a0c6: 79fb ldrb r3, [r7, #7]
800a0c8: 4a13 ldr r2, [pc, #76] ; (800a118 <DrawChannel_4+0x352c>)
800a0ca: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a0ce: 331c adds r3, #28
800a0d0: b298 uxth r0, r3
800a0d2: 79fb ldrb r3, [r7, #7]
800a0d4: 4a11 ldr r2, [pc, #68] ; (800a11c <DrawChannel_4+0x3530>)
800a0d6: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a0da: 4a17 ldr r2, [pc, #92] ; (800a138 <DrawChannel_4+0x354c>)
800a0dc: 697b ldr r3, [r7, #20]
800a0de: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a0e2: 2303 movs r3, #3
800a0e4: f7fa face bl 8004684 <BSP_LCD_DisplayStringAt>
800a0e8: e1cf b.n 800a48a <DrawChannel_4+0x389e>
800a0ea: bf00 nop
800a0ec: ffd8aa57 .word 0xffd8aa57
800a0f0: 08015534 .word 0x08015534
800a0f4: 0801553c .word 0x0801553c
800a0f8: 2006b510 .word 0x2006b510
800a0fc: 20020030 .word 0x20020030
800a100: 08015544 .word 0x08015544
800a104: 0801554c .word 0x0801554c
800a108: 20020040 .word 0x20020040
800a10c: 08015554 .word 0x08015554
800a110: 0801555c .word 0x0801555c
800a114: 20020068 .word 0x20020068
800a118: 08015564 .word 0x08015564
800a11c: 0801556c .word 0x0801556c
800a120: 200200a8 .word 0x200200a8
800a124: 08015574 .word 0x08015574
800a128: 0801557c .word 0x0801557c
800a12c: 200200c0 .word 0x200200c0
800a130: 20020010 .word 0x20020010
800a134: 2006b2d0 .word 0x2006b2d0
800a138: 200201ec .word 0x200201ec
if(ipt == 1)
800a13c: 6b3b ldr r3, [r7, #48] ; 0x30
800a13e: 2b01 cmp r3, #1
800a140: d164 bne.n 800a20c <DrawChannel_4+0x3620>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
800a142: 79fb ldrb r3, [r7, #7]
800a144: 4a99 ldr r2, [pc, #612] ; (800a3ac <DrawChannel_4+0x37c0>)
800a146: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800a14a: 79fb ldrb r3, [r7, #7]
800a14c: 4a98 ldr r2, [pc, #608] ; (800a3b0 <DrawChannel_4+0x37c4>)
800a14e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a152: 4a98 ldr r2, [pc, #608] ; (800a3b4 <DrawChannel_4+0x37c8>)
800a154: 6a7b ldr r3, [r7, #36] ; 0x24
800a156: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a15a: 2303 movs r3, #3
800a15c: f7fa fa92 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
800a160: 79fb ldrb r3, [r7, #7]
800a162: 4a92 ldr r2, [pc, #584] ; (800a3ac <DrawChannel_4+0x37c0>)
800a164: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a168: 3307 adds r3, #7
800a16a: b298 uxth r0, r3
800a16c: 79fb ldrb r3, [r7, #7]
800a16e: 4a90 ldr r2, [pc, #576] ; (800a3b0 <DrawChannel_4+0x37c4>)
800a170: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a174: 4a8f ldr r2, [pc, #572] ; (800a3b4 <DrawChannel_4+0x37c8>)
800a176: 6a3b ldr r3, [r7, #32]
800a178: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a17c: 2303 movs r3, #3
800a17e: f7fa fa81 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
800a182: 79fb ldrb r3, [r7, #7]
800a184: 4a89 ldr r2, [pc, #548] ; (800a3ac <DrawChannel_4+0x37c0>)
800a186: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a18a: 330e adds r3, #14
800a18c: b298 uxth r0, r3
800a18e: 79fb ldrb r3, [r7, #7]
800a190: 4a87 ldr r2, [pc, #540] ; (800a3b0 <DrawChannel_4+0x37c4>)
800a192: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a196: 4a87 ldr r2, [pc, #540] ; (800a3b4 <DrawChannel_4+0x37c8>)
800a198: 69fb ldr r3, [r7, #28]
800a19a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a19e: 2303 movs r3, #3
800a1a0: f7fa fa70 bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
800a1a4: 683b ldr r3, [r7, #0]
800a1a6: 2b00 cmp r3, #0
800a1a8: d010 beq.n 800a1cc <DrawChannel_4+0x35e0>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
800a1aa: 79fb ldrb r3, [r7, #7]
800a1ac: 4a7f ldr r2, [pc, #508] ; (800a3ac <DrawChannel_4+0x37c0>)
800a1ae: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a1b2: 3315 adds r3, #21
800a1b4: b298 uxth r0, r3
800a1b6: 79fb ldrb r3, [r7, #7]
800a1b8: 4a7d ldr r2, [pc, #500] ; (800a3b0 <DrawChannel_4+0x37c4>)
800a1ba: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a1be: 4a7d ldr r2, [pc, #500] ; (800a3b4 <DrawChannel_4+0x37c8>)
800a1c0: 69bb ldr r3, [r7, #24]
800a1c2: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a1c6: 2303 movs r3, #3
800a1c8: f7fa fa5c bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], ".", LEFT_MODE);
800a1cc: 79fb ldrb r3, [r7, #7]
800a1ce: 4a77 ldr r2, [pc, #476] ; (800a3ac <DrawChannel_4+0x37c0>)
800a1d0: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a1d4: 331c adds r3, #28
800a1d6: b298 uxth r0, r3
800a1d8: 79fb ldrb r3, [r7, #7]
800a1da: 4a75 ldr r2, [pc, #468] ; (800a3b0 <DrawChannel_4+0x37c4>)
800a1dc: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a1e0: 2303 movs r3, #3
800a1e2: 4a75 ldr r2, [pc, #468] ; (800a3b8 <DrawChannel_4+0x37cc>)
800a1e4: f7fa fa4e bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
800a1e8: 79fb ldrb r3, [r7, #7]
800a1ea: 4a70 ldr r2, [pc, #448] ; (800a3ac <DrawChannel_4+0x37c0>)
800a1ec: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a1f0: 3323 adds r3, #35 ; 0x23
800a1f2: b298 uxth r0, r3
800a1f4: 79fb ldrb r3, [r7, #7]
800a1f6: 4a6e ldr r2, [pc, #440] ; (800a3b0 <DrawChannel_4+0x37c4>)
800a1f8: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a1fc: 4a6d ldr r2, [pc, #436] ; (800a3b4 <DrawChannel_4+0x37c8>)
800a1fe: 697b ldr r3, [r7, #20]
800a200: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a204: 2303 movs r3, #3
800a206: f7fa fa3d bl 8004684 <BSP_LCD_DisplayStringAt>
800a20a: e13e b.n 800a48a <DrawChannel_4+0x389e>
if(ipt == 2)
800a20c: 6b3b ldr r3, [r7, #48] ; 0x30
800a20e: 2b02 cmp r3, #2
800a210: d164 bne.n 800a2dc <DrawChannel_4+0x36f0>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
800a212: 79fb ldrb r3, [r7, #7]
800a214: 4a65 ldr r2, [pc, #404] ; (800a3ac <DrawChannel_4+0x37c0>)
800a216: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800a21a: 79fb ldrb r3, [r7, #7]
800a21c: 4a64 ldr r2, [pc, #400] ; (800a3b0 <DrawChannel_4+0x37c4>)
800a21e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a222: 4a64 ldr r2, [pc, #400] ; (800a3b4 <DrawChannel_4+0x37c8>)
800a224: 6a7b ldr r3, [r7, #36] ; 0x24
800a226: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a22a: 2303 movs r3, #3
800a22c: f7fa fa2a bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
800a230: 79fb ldrb r3, [r7, #7]
800a232: 4a5e ldr r2, [pc, #376] ; (800a3ac <DrawChannel_4+0x37c0>)
800a234: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a238: 3307 adds r3, #7
800a23a: b298 uxth r0, r3
800a23c: 79fb ldrb r3, [r7, #7]
800a23e: 4a5c ldr r2, [pc, #368] ; (800a3b0 <DrawChannel_4+0x37c4>)
800a240: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a244: 4a5b ldr r2, [pc, #364] ; (800a3b4 <DrawChannel_4+0x37c8>)
800a246: 6a3b ldr r3, [r7, #32]
800a248: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a24c: 2303 movs r3, #3
800a24e: f7fa fa19 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
800a252: 79fb ldrb r3, [r7, #7]
800a254: 4a55 ldr r2, [pc, #340] ; (800a3ac <DrawChannel_4+0x37c0>)
800a256: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a25a: 330e adds r3, #14
800a25c: b298 uxth r0, r3
800a25e: 79fb ldrb r3, [r7, #7]
800a260: 4a53 ldr r2, [pc, #332] ; (800a3b0 <DrawChannel_4+0x37c4>)
800a262: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a266: 4a53 ldr r2, [pc, #332] ; (800a3b4 <DrawChannel_4+0x37c8>)
800a268: 69fb ldr r3, [r7, #28]
800a26a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a26e: 2303 movs r3, #3
800a270: f7fa fa08 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], ".", LEFT_MODE);
800a274: 79fb ldrb r3, [r7, #7]
800a276: 4a4d ldr r2, [pc, #308] ; (800a3ac <DrawChannel_4+0x37c0>)
800a278: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a27c: 3315 adds r3, #21
800a27e: b298 uxth r0, r3
800a280: 79fb ldrb r3, [r7, #7]
800a282: 4a4b ldr r2, [pc, #300] ; (800a3b0 <DrawChannel_4+0x37c4>)
800a284: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a288: 2303 movs r3, #3
800a28a: 4a4b ldr r2, [pc, #300] ; (800a3b8 <DrawChannel_4+0x37cc>)
800a28c: f7fa f9fa bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
800a290: 683b ldr r3, [r7, #0]
800a292: 2b00 cmp r3, #0
800a294: d010 beq.n 800a2b8 <DrawChannel_4+0x36cc>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
800a296: 79fb ldrb r3, [r7, #7]
800a298: 4a44 ldr r2, [pc, #272] ; (800a3ac <DrawChannel_4+0x37c0>)
800a29a: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a29e: 331c adds r3, #28
800a2a0: b298 uxth r0, r3
800a2a2: 79fb ldrb r3, [r7, #7]
800a2a4: 4a42 ldr r2, [pc, #264] ; (800a3b0 <DrawChannel_4+0x37c4>)
800a2a6: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a2aa: 4a42 ldr r2, [pc, #264] ; (800a3b4 <DrawChannel_4+0x37c8>)
800a2ac: 69bb ldr r3, [r7, #24]
800a2ae: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a2b2: 2303 movs r3, #3
800a2b4: f7fa f9e6 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
800a2b8: 79fb ldrb r3, [r7, #7]
800a2ba: 4a3c ldr r2, [pc, #240] ; (800a3ac <DrawChannel_4+0x37c0>)
800a2bc: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a2c0: 3323 adds r3, #35 ; 0x23
800a2c2: b298 uxth r0, r3
800a2c4: 79fb ldrb r3, [r7, #7]
800a2c6: 4a3a ldr r2, [pc, #232] ; (800a3b0 <DrawChannel_4+0x37c4>)
800a2c8: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a2cc: 4a39 ldr r2, [pc, #228] ; (800a3b4 <DrawChannel_4+0x37c8>)
800a2ce: 697b ldr r3, [r7, #20]
800a2d0: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a2d4: 2303 movs r3, #3
800a2d6: f7fa f9d5 bl 8004684 <BSP_LCD_DisplayStringAt>
800a2da: e0d6 b.n 800a48a <DrawChannel_4+0x389e>
if(ipt == 3)
800a2dc: 6b3b ldr r3, [r7, #48] ; 0x30
800a2de: 2b03 cmp r3, #3
800a2e0: d16c bne.n 800a3bc <DrawChannel_4+0x37d0>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
800a2e2: 79fb ldrb r3, [r7, #7]
800a2e4: 4a31 ldr r2, [pc, #196] ; (800a3ac <DrawChannel_4+0x37c0>)
800a2e6: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800a2ea: 79fb ldrb r3, [r7, #7]
800a2ec: 4a30 ldr r2, [pc, #192] ; (800a3b0 <DrawChannel_4+0x37c4>)
800a2ee: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a2f2: 4a30 ldr r2, [pc, #192] ; (800a3b4 <DrawChannel_4+0x37c8>)
800a2f4: 6a7b ldr r3, [r7, #36] ; 0x24
800a2f6: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a2fa: 2303 movs r3, #3
800a2fc: f7fa f9c2 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
800a300: 79fb ldrb r3, [r7, #7]
800a302: 4a2a ldr r2, [pc, #168] ; (800a3ac <DrawChannel_4+0x37c0>)
800a304: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a308: 3307 adds r3, #7
800a30a: b298 uxth r0, r3
800a30c: 79fb ldrb r3, [r7, #7]
800a30e: 4a28 ldr r2, [pc, #160] ; (800a3b0 <DrawChannel_4+0x37c4>)
800a310: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a314: 4a27 ldr r2, [pc, #156] ; (800a3b4 <DrawChannel_4+0x37c8>)
800a316: 6a3b ldr r3, [r7, #32]
800a318: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a31c: 2303 movs r3, #3
800a31e: f7fa f9b1 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], ".", LEFT_MODE);
800a322: 79fb ldrb r3, [r7, #7]
800a324: 4a21 ldr r2, [pc, #132] ; (800a3ac <DrawChannel_4+0x37c0>)
800a326: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a32a: 330e adds r3, #14
800a32c: b298 uxth r0, r3
800a32e: 79fb ldrb r3, [r7, #7]
800a330: 4a1f ldr r2, [pc, #124] ; (800a3b0 <DrawChannel_4+0x37c4>)
800a332: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a336: 2303 movs r3, #3
800a338: 4a1f ldr r2, [pc, #124] ; (800a3b8 <DrawChannel_4+0x37cc>)
800a33a: f7fa f9a3 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
800a33e: 79fb ldrb r3, [r7, #7]
800a340: 4a1a ldr r2, [pc, #104] ; (800a3ac <DrawChannel_4+0x37c0>)
800a342: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a346: 3315 adds r3, #21
800a348: b298 uxth r0, r3
800a34a: 79fb ldrb r3, [r7, #7]
800a34c: 4a18 ldr r2, [pc, #96] ; (800a3b0 <DrawChannel_4+0x37c4>)
800a34e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a352: 4a18 ldr r2, [pc, #96] ; (800a3b4 <DrawChannel_4+0x37c8>)
800a354: 69fb ldr r3, [r7, #28]
800a356: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a35a: 2303 movs r3, #3
800a35c: f7fa f992 bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
800a360: 683b ldr r3, [r7, #0]
800a362: 2b00 cmp r3, #0
800a364: d010 beq.n 800a388 <DrawChannel_4+0x379c>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
800a366: 79fb ldrb r3, [r7, #7]
800a368: 4a10 ldr r2, [pc, #64] ; (800a3ac <DrawChannel_4+0x37c0>)
800a36a: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a36e: 331c adds r3, #28
800a370: b298 uxth r0, r3
800a372: 79fb ldrb r3, [r7, #7]
800a374: 4a0e ldr r2, [pc, #56] ; (800a3b0 <DrawChannel_4+0x37c4>)
800a376: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a37a: 4a0e ldr r2, [pc, #56] ; (800a3b4 <DrawChannel_4+0x37c8>)
800a37c: 69bb ldr r3, [r7, #24]
800a37e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a382: 2303 movs r3, #3
800a384: f7fa f97e bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
800a388: 79fb ldrb r3, [r7, #7]
800a38a: 4a08 ldr r2, [pc, #32] ; (800a3ac <DrawChannel_4+0x37c0>)
800a38c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a390: 3323 adds r3, #35 ; 0x23
800a392: b298 uxth r0, r3
800a394: 79fb ldrb r3, [r7, #7]
800a396: 4a06 ldr r2, [pc, #24] ; (800a3b0 <DrawChannel_4+0x37c4>)
800a398: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a39c: 4a05 ldr r2, [pc, #20] ; (800a3b4 <DrawChannel_4+0x37c8>)
800a39e: 697b ldr r3, [r7, #20]
800a3a0: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a3a4: 2303 movs r3, #3
800a3a6: f7fa f96d bl 8004684 <BSP_LCD_DisplayStringAt>
800a3aa: e06e b.n 800a48a <DrawChannel_4+0x389e>
800a3ac: 08015564 .word 0x08015564
800a3b0: 0801556c .word 0x0801556c
800a3b4: 200201ec .word 0x200201ec
800a3b8: 08012cb8 .word 0x08012cb8
if(ipt == 4)
800a3bc: 6b3b ldr r3, [r7, #48] ; 0x30
800a3be: 2b04 cmp r3, #4
800a3c0: d163 bne.n 800a48a <DrawChannel_4+0x389e>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
800a3c2: 79fb ldrb r3, [r7, #7]
800a3c4: 4a82 ldr r2, [pc, #520] ; (800a5d0 <DrawChannel_4+0x39e4>)
800a3c6: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800a3ca: 79fb ldrb r3, [r7, #7]
800a3cc: 4a81 ldr r2, [pc, #516] ; (800a5d4 <DrawChannel_4+0x39e8>)
800a3ce: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a3d2: 4a81 ldr r2, [pc, #516] ; (800a5d8 <DrawChannel_4+0x39ec>)
800a3d4: 6a7b ldr r3, [r7, #36] ; 0x24
800a3d6: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a3da: 2303 movs r3, #3
800a3dc: f7fa f952 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], ".", LEFT_MODE);
800a3e0: 79fb ldrb r3, [r7, #7]
800a3e2: 4a7b ldr r2, [pc, #492] ; (800a5d0 <DrawChannel_4+0x39e4>)
800a3e4: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a3e8: 3307 adds r3, #7
800a3ea: b298 uxth r0, r3
800a3ec: 79fb ldrb r3, [r7, #7]
800a3ee: 4a79 ldr r2, [pc, #484] ; (800a5d4 <DrawChannel_4+0x39e8>)
800a3f0: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a3f4: 2303 movs r3, #3
800a3f6: 4a79 ldr r2, [pc, #484] ; (800a5dc <DrawChannel_4+0x39f0>)
800a3f8: f7fa f944 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
800a3fc: 79fb ldrb r3, [r7, #7]
800a3fe: 4a74 ldr r2, [pc, #464] ; (800a5d0 <DrawChannel_4+0x39e4>)
800a400: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a404: 330e adds r3, #14
800a406: b298 uxth r0, r3
800a408: 79fb ldrb r3, [r7, #7]
800a40a: 4a72 ldr r2, [pc, #456] ; (800a5d4 <DrawChannel_4+0x39e8>)
800a40c: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a410: 4a71 ldr r2, [pc, #452] ; (800a5d8 <DrawChannel_4+0x39ec>)
800a412: 6a3b ldr r3, [r7, #32]
800a414: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a418: 2303 movs r3, #3
800a41a: f7fa f933 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
800a41e: 79fb ldrb r3, [r7, #7]
800a420: 4a6b ldr r2, [pc, #428] ; (800a5d0 <DrawChannel_4+0x39e4>)
800a422: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a426: 3315 adds r3, #21
800a428: b298 uxth r0, r3
800a42a: 79fb ldrb r3, [r7, #7]
800a42c: 4a69 ldr r2, [pc, #420] ; (800a5d4 <DrawChannel_4+0x39e8>)
800a42e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a432: 4a69 ldr r2, [pc, #420] ; (800a5d8 <DrawChannel_4+0x39ec>)
800a434: 69fb ldr r3, [r7, #28]
800a436: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a43a: 2303 movs r3, #3
800a43c: f7fa f922 bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
800a440: 683b ldr r3, [r7, #0]
800a442: 2b00 cmp r3, #0
800a444: d010 beq.n 800a468 <DrawChannel_4+0x387c>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
800a446: 79fb ldrb r3, [r7, #7]
800a448: 4a61 ldr r2, [pc, #388] ; (800a5d0 <DrawChannel_4+0x39e4>)
800a44a: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a44e: 331c adds r3, #28
800a450: b298 uxth r0, r3
800a452: 79fb ldrb r3, [r7, #7]
800a454: 4a5f ldr r2, [pc, #380] ; (800a5d4 <DrawChannel_4+0x39e8>)
800a456: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a45a: 4a5f ldr r2, [pc, #380] ; (800a5d8 <DrawChannel_4+0x39ec>)
800a45c: 69bb ldr r3, [r7, #24]
800a45e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a462: 2303 movs r3, #3
800a464: f7fa f90e bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
800a468: 79fb ldrb r3, [r7, #7]
800a46a: 4a59 ldr r2, [pc, #356] ; (800a5d0 <DrawChannel_4+0x39e4>)
800a46c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a470: 3323 adds r3, #35 ; 0x23
800a472: b298 uxth r0, r3
800a474: 79fb ldrb r3, [r7, #7]
800a476: 4a57 ldr r2, [pc, #348] ; (800a5d4 <DrawChannel_4+0x39e8>)
800a478: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a47c: 4a56 ldr r2, [pc, #344] ; (800a5d8 <DrawChannel_4+0x39ec>)
800a47e: 697b ldr r3, [r7, #20]
800a480: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a484: 2303 movs r3, #3
800a486: f7fa f8fd bl 8004684 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800a48a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800a48e: 4854 ldr r0, [pc, #336] ; (800a5e0 <DrawChannel_4+0x39f4>)
800a490: f7fa f832 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
800a494: 79fb ldrb r3, [r7, #7]
800a496: 4a53 ldr r2, [pc, #332] ; (800a5e4 <DrawChannel_4+0x39f8>)
800a498: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800a49c: 79fb ldrb r3, [r7, #7]
800a49e: 4a52 ldr r2, [pc, #328] ; (800a5e8 <DrawChannel_4+0x39fc>)
800a4a0: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a4a4: 4b51 ldr r3, [pc, #324] ; (800a5ec <DrawChannel_4+0x3a00>)
800a4a6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800a4aa: b29b uxth r3, r3
800a4ac: 461d mov r5, r3
800a4ae: 79fb ldrb r3, [r7, #7]
800a4b0: 4a4e ldr r2, [pc, #312] ; (800a5ec <DrawChannel_4+0x3a00>)
800a4b2: 015b lsls r3, r3, #5
800a4b4: 4413 add r3, r2
800a4b6: 881b ldrh r3, [r3, #0]
800a4b8: b29b uxth r3, r3
800a4ba: 461c mov r4, r3
800a4bc: 4a4c ldr r2, [pc, #304] ; (800a5f0 <DrawChannel_4+0x3a04>)
800a4be: 006b lsls r3, r5, #1
800a4c0: 4423 add r3, r4
800a4c2: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a4c6: 2303 movs r3, #3
800a4c8: f7fa f8dc bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800a4cc: 79fb ldrb r3, [r7, #7]
800a4ce: 4a49 ldr r2, [pc, #292] ; (800a5f4 <DrawChannel_4+0x3a08>)
800a4d0: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800a4d4: 79fb ldrb r3, [r7, #7]
800a4d6: 4a48 ldr r2, [pc, #288] ; (800a5f8 <DrawChannel_4+0x3a0c>)
800a4d8: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800a4dc: 4b43 ldr r3, [pc, #268] ; (800a5ec <DrawChannel_4+0x3a00>)
800a4de: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800a4e2: b29b uxth r3, r3
800a4e4: 4619 mov r1, r3
800a4e6: 79fb ldrb r3, [r7, #7]
800a4e8: 4a40 ldr r2, [pc, #256] ; (800a5ec <DrawChannel_4+0x3a00>)
800a4ea: 015b lsls r3, r3, #5
800a4ec: 4413 add r3, r2
800a4ee: 3302 adds r3, #2
800a4f0: 881b ldrh r3, [r3, #0]
800a4f2: b29b uxth r3, r3
800a4f4: 461d mov r5, r3
800a4f6: 4a41 ldr r2, [pc, #260] ; (800a5fc <DrawChannel_4+0x3a10>)
800a4f8: 460b mov r3, r1
800a4fa: 009b lsls r3, r3, #2
800a4fc: 440b add r3, r1
800a4fe: 442b add r3, r5
800a500: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a504: 2303 movs r3, #3
800a506: 4621 mov r1, r4
800a508: f7fa f8bc bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800a50c: 79fb ldrb r3, [r7, #7]
800a50e: 4a3c ldr r2, [pc, #240] ; (800a600 <DrawChannel_4+0x3a14>)
800a510: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800a514: 79fb ldrb r3, [r7, #7]
800a516: 4a3b ldr r2, [pc, #236] ; (800a604 <DrawChannel_4+0x3a18>)
800a518: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a51c: 4b33 ldr r3, [pc, #204] ; (800a5ec <DrawChannel_4+0x3a00>)
800a51e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800a522: b29b uxth r3, r3
800a524: 461d mov r5, r3
800a526: 79fb ldrb r3, [r7, #7]
800a528: 4a30 ldr r2, [pc, #192] ; (800a5ec <DrawChannel_4+0x3a00>)
800a52a: 015b lsls r3, r3, #5
800a52c: 4413 add r3, r2
800a52e: 3304 adds r3, #4
800a530: 881b ldrh r3, [r3, #0]
800a532: b29b uxth r3, r3
800a534: 461c mov r4, r3
800a536: 4a34 ldr r2, [pc, #208] ; (800a608 <DrawChannel_4+0x3a1c>)
800a538: 00eb lsls r3, r5, #3
800a53a: 4423 add r3, r4
800a53c: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a540: 2303 movs r3, #3
800a542: f7fa f89f bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
800a546: 79fb ldrb r3, [r7, #7]
800a548: 4a21 ldr r2, [pc, #132] ; (800a5d0 <DrawChannel_4+0x39e4>)
800a54a: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a54e: 332d adds r3, #45 ; 0x2d
800a550: b298 uxth r0, r3
800a552: 79fb ldrb r3, [r7, #7]
800a554: 4a1f ldr r2, [pc, #124] ; (800a5d4 <DrawChannel_4+0x39e8>)
800a556: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800a55a: 79fb ldrb r3, [r7, #7]
800a55c: 4a23 ldr r2, [pc, #140] ; (800a5ec <DrawChannel_4+0x3a00>)
800a55e: 015b lsls r3, r3, #5
800a560: 4413 add r3, r2
800a562: 881b ldrh r3, [r3, #0]
800a564: b29b uxth r3, r3
800a566: 4619 mov r1, r3
800a568: 79fb ldrb r3, [r7, #7]
800a56a: 4a20 ldr r2, [pc, #128] ; (800a5ec <DrawChannel_4+0x3a00>)
800a56c: 015b lsls r3, r3, #5
800a56e: 4413 add r3, r2
800a570: 3312 adds r3, #18
800a572: 881b ldrh r3, [r3, #0]
800a574: b29b uxth r3, r3
800a576: 461d mov r5, r3
800a578: 4a24 ldr r2, [pc, #144] ; (800a60c <DrawChannel_4+0x3a20>)
800a57a: 460b mov r3, r1
800a57c: 005b lsls r3, r3, #1
800a57e: 440b add r3, r1
800a580: 442b add r3, r5
800a582: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a586: 2303 movs r3, #3
800a588: 4621 mov r1, r4
800a58a: f7fa f87b bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800a58e: 79fb ldrb r3, [r7, #7]
800a590: 4a1f ldr r2, [pc, #124] ; (800a610 <DrawChannel_4+0x3a24>)
800a592: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800a596: 79fb ldrb r3, [r7, #7]
800a598: 4a1e ldr r2, [pc, #120] ; (800a614 <DrawChannel_4+0x3a28>)
800a59a: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800a59e: 79fb ldrb r3, [r7, #7]
800a5a0: 4a12 ldr r2, [pc, #72] ; (800a5ec <DrawChannel_4+0x3a00>)
800a5a2: 015b lsls r3, r3, #5
800a5a4: 4413 add r3, r2
800a5a6: 3312 adds r3, #18
800a5a8: 881b ldrh r3, [r3, #0]
800a5aa: b29b uxth r3, r3
800a5ac: 461a mov r2, r3
800a5ae: 491a ldr r1, [pc, #104] ; (800a618 <DrawChannel_4+0x3a2c>)
800a5b0: 4613 mov r3, r2
800a5b2: 009b lsls r3, r3, #2
800a5b4: 4413 add r3, r2
800a5b6: 009a lsls r2, r3, #2
800a5b8: 4413 add r3, r2
800a5ba: 6afa ldr r2, [r7, #44] ; 0x2c
800a5bc: 4413 add r3, r2
800a5be: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800a5c2: 2303 movs r3, #3
800a5c4: 4621 mov r1, r4
800a5c6: f7fa f85d bl 8004684 <BSP_LCD_DisplayStringAt>
}
800a5ca: f001 b84e b.w 800b66a <DrawChannel_4+0x4a7e>
800a5ce: bf00 nop
800a5d0: 08015564 .word 0x08015564
800a5d4: 0801556c .word 0x0801556c
800a5d8: 200201ec .word 0x200201ec
800a5dc: 08012cb8 .word 0x08012cb8
800a5e0: ffd8aa57 .word 0xffd8aa57
800a5e4: 08015534 .word 0x08015534
800a5e8: 0801553c .word 0x0801553c
800a5ec: 2006b510 .word 0x2006b510
800a5f0: 20020030 .word 0x20020030
800a5f4: 08015544 .word 0x08015544
800a5f8: 0801554c .word 0x0801554c
800a5fc: 20020040 .word 0x20020040
800a600: 08015554 .word 0x08015554
800a604: 0801555c .word 0x0801555c
800a608: 20020068 .word 0x20020068
800a60c: 200200a8 .word 0x200200a8
800a610: 08015574 .word 0x08015574
800a614: 0801557c .word 0x0801557c
800a618: 200200c0 .word 0x200200c0
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800a61c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800a620: 488c ldr r0, [pc, #560] ; (800a854 <DrawChannel_4+0x3c68>)
800a622: f7f9 ff69 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
800a626: 79fb ldrb r3, [r7, #7]
800a628: 4a8b ldr r2, [pc, #556] ; (800a858 <DrawChannel_4+0x3c6c>)
800a62a: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800a62e: 79fb ldrb r3, [r7, #7]
800a630: 4a8a ldr r2, [pc, #552] ; (800a85c <DrawChannel_4+0x3c70>)
800a632: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a636: 4b8a ldr r3, [pc, #552] ; (800a860 <DrawChannel_4+0x3c74>)
800a638: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800a63c: b29b uxth r3, r3
800a63e: 461d mov r5, r3
800a640: 79fb ldrb r3, [r7, #7]
800a642: 4a87 ldr r2, [pc, #540] ; (800a860 <DrawChannel_4+0x3c74>)
800a644: 015b lsls r3, r3, #5
800a646: 4413 add r3, r2
800a648: 881b ldrh r3, [r3, #0]
800a64a: b29b uxth r3, r3
800a64c: 461c mov r4, r3
800a64e: 4a85 ldr r2, [pc, #532] ; (800a864 <DrawChannel_4+0x3c78>)
800a650: 006b lsls r3, r5, #1
800a652: 4423 add r3, r4
800a654: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a658: 2303 movs r3, #3
800a65a: f7fa f813 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800a65e: 79fb ldrb r3, [r7, #7]
800a660: 4a81 ldr r2, [pc, #516] ; (800a868 <DrawChannel_4+0x3c7c>)
800a662: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800a666: 79fb ldrb r3, [r7, #7]
800a668: 4a80 ldr r2, [pc, #512] ; (800a86c <DrawChannel_4+0x3c80>)
800a66a: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800a66e: 4b7c ldr r3, [pc, #496] ; (800a860 <DrawChannel_4+0x3c74>)
800a670: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800a674: b29b uxth r3, r3
800a676: 4619 mov r1, r3
800a678: 79fb ldrb r3, [r7, #7]
800a67a: 4a79 ldr r2, [pc, #484] ; (800a860 <DrawChannel_4+0x3c74>)
800a67c: 015b lsls r3, r3, #5
800a67e: 4413 add r3, r2
800a680: 3302 adds r3, #2
800a682: 881b ldrh r3, [r3, #0]
800a684: b29b uxth r3, r3
800a686: 461d mov r5, r3
800a688: 4a79 ldr r2, [pc, #484] ; (800a870 <DrawChannel_4+0x3c84>)
800a68a: 460b mov r3, r1
800a68c: 009b lsls r3, r3, #2
800a68e: 440b add r3, r1
800a690: 442b add r3, r5
800a692: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a696: 2303 movs r3, #3
800a698: 4621 mov r1, r4
800a69a: f7f9 fff3 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800a69e: 79fb ldrb r3, [r7, #7]
800a6a0: 4a74 ldr r2, [pc, #464] ; (800a874 <DrawChannel_4+0x3c88>)
800a6a2: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800a6a6: 79fb ldrb r3, [r7, #7]
800a6a8: 4a73 ldr r2, [pc, #460] ; (800a878 <DrawChannel_4+0x3c8c>)
800a6aa: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a6ae: 4b6c ldr r3, [pc, #432] ; (800a860 <DrawChannel_4+0x3c74>)
800a6b0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800a6b4: b29b uxth r3, r3
800a6b6: 461d mov r5, r3
800a6b8: 79fb ldrb r3, [r7, #7]
800a6ba: 4a69 ldr r2, [pc, #420] ; (800a860 <DrawChannel_4+0x3c74>)
800a6bc: 015b lsls r3, r3, #5
800a6be: 4413 add r3, r2
800a6c0: 3304 adds r3, #4
800a6c2: 881b ldrh r3, [r3, #0]
800a6c4: b29b uxth r3, r3
800a6c6: 461c mov r4, r3
800a6c8: 4a6c ldr r2, [pc, #432] ; (800a87c <DrawChannel_4+0x3c90>)
800a6ca: 00eb lsls r3, r5, #3
800a6cc: 4423 add r3, r4
800a6ce: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a6d2: 2303 movs r3, #3
800a6d4: f7f9 ffd6 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens
800a6d8: 79fb ldrb r3, [r7, #7]
800a6da: 4a69 ldr r2, [pc, #420] ; (800a880 <DrawChannel_4+0x3c94>)
800a6dc: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800a6e0: 79fb ldrb r3, [r7, #7]
800a6e2: 4a68 ldr r2, [pc, #416] ; (800a884 <DrawChannel_4+0x3c98>)
800a6e4: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a6e8: f107 0208 add.w r2, r7, #8
800a6ec: 2303 movs r3, #3
800a6ee: f7f9 ffc9 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
800a6f2: 79fb ldrb r3, [r7, #7]
800a6f4: 4a62 ldr r2, [pc, #392] ; (800a880 <DrawChannel_4+0x3c94>)
800a6f6: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a6fa: 332d adds r3, #45 ; 0x2d
800a6fc: b298 uxth r0, r3
800a6fe: 79fb ldrb r3, [r7, #7]
800a700: 4a60 ldr r2, [pc, #384] ; (800a884 <DrawChannel_4+0x3c98>)
800a702: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800a706: 79fb ldrb r3, [r7, #7]
800a708: 4a55 ldr r2, [pc, #340] ; (800a860 <DrawChannel_4+0x3c74>)
800a70a: 015b lsls r3, r3, #5
800a70c: 4413 add r3, r2
800a70e: 881b ldrh r3, [r3, #0]
800a710: b29b uxth r3, r3
800a712: 4619 mov r1, r3
800a714: 79fb ldrb r3, [r7, #7]
800a716: 4a52 ldr r2, [pc, #328] ; (800a860 <DrawChannel_4+0x3c74>)
800a718: 015b lsls r3, r3, #5
800a71a: 4413 add r3, r2
800a71c: 3312 adds r3, #18
800a71e: 881b ldrh r3, [r3, #0]
800a720: b29b uxth r3, r3
800a722: 461d mov r5, r3
800a724: 4a58 ldr r2, [pc, #352] ; (800a888 <DrawChannel_4+0x3c9c>)
800a726: 460b mov r3, r1
800a728: 005b lsls r3, r3, #1
800a72a: 440b add r3, r1
800a72c: 442b add r3, r5
800a72e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a732: 2303 movs r3, #3
800a734: 4621 mov r1, r4
800a736: f7f9 ffa5 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800a73a: 79fb ldrb r3, [r7, #7]
800a73c: 4a53 ldr r2, [pc, #332] ; (800a88c <DrawChannel_4+0x3ca0>)
800a73e: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800a742: 79fb ldrb r3, [r7, #7]
800a744: 4a52 ldr r2, [pc, #328] ; (800a890 <DrawChannel_4+0x3ca4>)
800a746: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800a74a: 79fb ldrb r3, [r7, #7]
800a74c: 4a44 ldr r2, [pc, #272] ; (800a860 <DrawChannel_4+0x3c74>)
800a74e: 015b lsls r3, r3, #5
800a750: 4413 add r3, r2
800a752: 3312 adds r3, #18
800a754: 881b ldrh r3, [r3, #0]
800a756: b29b uxth r3, r3
800a758: 461a mov r2, r3
800a75a: 494e ldr r1, [pc, #312] ; (800a894 <DrawChannel_4+0x3ca8>)
800a75c: 4613 mov r3, r2
800a75e: 009b lsls r3, r3, #2
800a760: 4413 add r3, r2
800a762: 009a lsls r2, r3, #2
800a764: 4413 add r3, r2
800a766: 6afa ldr r2, [r7, #44] ; 0x2c
800a768: 4413 add r3, r2
800a76a: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800a76e: 2303 movs r3, #3
800a770: 4621 mov r1, r4
800a772: f7f9 ff87 bl 8004684 <BSP_LCD_DisplayStringAt>
}
800a776: f000 bf78 b.w 800b66a <DrawChannel_4+0x4a7e>
if(menupos == Kike)
800a77a: 4b47 ldr r3, [pc, #284] ; (800a898 <DrawChannel_4+0x3cac>)
800a77c: 781b ldrb r3, [r3, #0]
800a77e: b2db uxtb r3, r3
800a780: 2b0a cmp r3, #10
800a782: f040 83b1 bne.w 800aee8 <DrawChannel_4+0x42fc>
if(ACTIVE_CHANNEL == ch)
800a786: 79fa ldrb r2, [r7, #7]
800a788: 4b44 ldr r3, [pc, #272] ; (800a89c <DrawChannel_4+0x3cb0>)
800a78a: 681b ldr r3, [r3, #0]
800a78c: 429a cmp r2, r3
800a78e: f040 82fd bne.w 800ad8c <DrawChannel_4+0x41a0>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800a792: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800a796: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800a79a: f7f9 fead bl 80044f8 <LCD_SetColors>
if(!ipt)
800a79e: 6b3b ldr r3, [r7, #48] ; 0x30
800a7a0: 2b00 cmp r3, #0
800a7a2: d17f bne.n 800a8a4 <DrawChannel_4+0x3cb8>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
800a7a4: 79fb ldrb r3, [r7, #7]
800a7a6: 4a36 ldr r2, [pc, #216] ; (800a880 <DrawChannel_4+0x3c94>)
800a7a8: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800a7ac: 79fb ldrb r3, [r7, #7]
800a7ae: 4a35 ldr r2, [pc, #212] ; (800a884 <DrawChannel_4+0x3c98>)
800a7b0: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a7b4: 4a3a ldr r2, [pc, #232] ; (800a8a0 <DrawChannel_4+0x3cb4>)
800a7b6: 6a7b ldr r3, [r7, #36] ; 0x24
800a7b8: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a7bc: 2303 movs r3, #3
800a7be: f7f9 ff61 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
800a7c2: 79fb ldrb r3, [r7, #7]
800a7c4: 4a2e ldr r2, [pc, #184] ; (800a880 <DrawChannel_4+0x3c94>)
800a7c6: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a7ca: 3307 adds r3, #7
800a7cc: b298 uxth r0, r3
800a7ce: 79fb ldrb r3, [r7, #7]
800a7d0: 4a2c ldr r2, [pc, #176] ; (800a884 <DrawChannel_4+0x3c98>)
800a7d2: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a7d6: 4a32 ldr r2, [pc, #200] ; (800a8a0 <DrawChannel_4+0x3cb4>)
800a7d8: 6a3b ldr r3, [r7, #32]
800a7da: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a7de: 2303 movs r3, #3
800a7e0: f7f9 ff50 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
800a7e4: 79fb ldrb r3, [r7, #7]
800a7e6: 4a26 ldr r2, [pc, #152] ; (800a880 <DrawChannel_4+0x3c94>)
800a7e8: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a7ec: 330e adds r3, #14
800a7ee: b298 uxth r0, r3
800a7f0: 79fb ldrb r3, [r7, #7]
800a7f2: 4a24 ldr r2, [pc, #144] ; (800a884 <DrawChannel_4+0x3c98>)
800a7f4: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a7f8: 4a29 ldr r2, [pc, #164] ; (800a8a0 <DrawChannel_4+0x3cb4>)
800a7fa: 69fb ldr r3, [r7, #28]
800a7fc: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a800: 2303 movs r3, #3
800a802: f7f9 ff3f bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
800a806: 79fb ldrb r3, [r7, #7]
800a808: 4a1d ldr r2, [pc, #116] ; (800a880 <DrawChannel_4+0x3c94>)
800a80a: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a80e: 3315 adds r3, #21
800a810: b298 uxth r0, r3
800a812: 79fb ldrb r3, [r7, #7]
800a814: 4a1b ldr r2, [pc, #108] ; (800a884 <DrawChannel_4+0x3c98>)
800a816: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a81a: 4a21 ldr r2, [pc, #132] ; (800a8a0 <DrawChannel_4+0x3cb4>)
800a81c: 69bb ldr r3, [r7, #24]
800a81e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a822: 2303 movs r3, #3
800a824: f7f9 ff2e bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
800a828: 683b ldr r3, [r7, #0]
800a82a: 2b00 cmp r3, #0
800a82c: f000 81e5 beq.w 800abfa <DrawChannel_4+0x400e>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
800a830: 79fb ldrb r3, [r7, #7]
800a832: 4a13 ldr r2, [pc, #76] ; (800a880 <DrawChannel_4+0x3c94>)
800a834: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a838: 331c adds r3, #28
800a83a: b298 uxth r0, r3
800a83c: 79fb ldrb r3, [r7, #7]
800a83e: 4a11 ldr r2, [pc, #68] ; (800a884 <DrawChannel_4+0x3c98>)
800a840: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a844: 4a16 ldr r2, [pc, #88] ; (800a8a0 <DrawChannel_4+0x3cb4>)
800a846: 697b ldr r3, [r7, #20]
800a848: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a84c: 2303 movs r3, #3
800a84e: f7f9 ff19 bl 8004684 <BSP_LCD_DisplayStringAt>
800a852: e1d2 b.n 800abfa <DrawChannel_4+0x400e>
800a854: ffd8aa57 .word 0xffd8aa57
800a858: 08015534 .word 0x08015534
800a85c: 0801553c .word 0x0801553c
800a860: 2006b510 .word 0x2006b510
800a864: 20020030 .word 0x20020030
800a868: 08015544 .word 0x08015544
800a86c: 0801554c .word 0x0801554c
800a870: 20020040 .word 0x20020040
800a874: 08015554 .word 0x08015554
800a878: 0801555c .word 0x0801555c
800a87c: 20020068 .word 0x20020068
800a880: 08015564 .word 0x08015564
800a884: 0801556c .word 0x0801556c
800a888: 200200a8 .word 0x200200a8
800a88c: 08015574 .word 0x08015574
800a890: 0801557c .word 0x0801557c
800a894: 200200c0 .word 0x200200c0
800a898: 20020010 .word 0x20020010
800a89c: 2006b2d0 .word 0x2006b2d0
800a8a0: 200201ec .word 0x200201ec
if(ipt == 1)
800a8a4: 6b3b ldr r3, [r7, #48] ; 0x30
800a8a6: 2b01 cmp r3, #1
800a8a8: d165 bne.n 800a976 <DrawChannel_4+0x3d8a>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
800a8aa: 79fb ldrb r3, [r7, #7]
800a8ac: 4a9b ldr r2, [pc, #620] ; (800ab1c <DrawChannel_4+0x3f30>)
800a8ae: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800a8b2: 79fb ldrb r3, [r7, #7]
800a8b4: 4a9a ldr r2, [pc, #616] ; (800ab20 <DrawChannel_4+0x3f34>)
800a8b6: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a8ba: 4a9a ldr r2, [pc, #616] ; (800ab24 <DrawChannel_4+0x3f38>)
800a8bc: 6a7b ldr r3, [r7, #36] ; 0x24
800a8be: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a8c2: 2303 movs r3, #3
800a8c4: f7f9 fede bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
800a8c8: 79fb ldrb r3, [r7, #7]
800a8ca: 4a94 ldr r2, [pc, #592] ; (800ab1c <DrawChannel_4+0x3f30>)
800a8cc: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a8d0: 3307 adds r3, #7
800a8d2: b298 uxth r0, r3
800a8d4: 79fb ldrb r3, [r7, #7]
800a8d6: 4a92 ldr r2, [pc, #584] ; (800ab20 <DrawChannel_4+0x3f34>)
800a8d8: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a8dc: 4a91 ldr r2, [pc, #580] ; (800ab24 <DrawChannel_4+0x3f38>)
800a8de: 6a3b ldr r3, [r7, #32]
800a8e0: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a8e4: 2303 movs r3, #3
800a8e6: f7f9 fecd bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
800a8ea: 79fb ldrb r3, [r7, #7]
800a8ec: 4a8b ldr r2, [pc, #556] ; (800ab1c <DrawChannel_4+0x3f30>)
800a8ee: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a8f2: 330e adds r3, #14
800a8f4: b298 uxth r0, r3
800a8f6: 79fb ldrb r3, [r7, #7]
800a8f8: 4a89 ldr r2, [pc, #548] ; (800ab20 <DrawChannel_4+0x3f34>)
800a8fa: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a8fe: 4a89 ldr r2, [pc, #548] ; (800ab24 <DrawChannel_4+0x3f38>)
800a900: 69fb ldr r3, [r7, #28]
800a902: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a906: 2303 movs r3, #3
800a908: f7f9 febc bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
800a90c: 79fb ldrb r3, [r7, #7]
800a90e: 4a83 ldr r2, [pc, #524] ; (800ab1c <DrawChannel_4+0x3f30>)
800a910: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a914: 3315 adds r3, #21
800a916: b298 uxth r0, r3
800a918: 79fb ldrb r3, [r7, #7]
800a91a: 4a81 ldr r2, [pc, #516] ; (800ab20 <DrawChannel_4+0x3f34>)
800a91c: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a920: 4a80 ldr r2, [pc, #512] ; (800ab24 <DrawChannel_4+0x3f38>)
800a922: 69bb ldr r3, [r7, #24]
800a924: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a928: 2303 movs r3, #3
800a92a: f7f9 feab bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], ".", LEFT_MODE);
800a92e: 79fb ldrb r3, [r7, #7]
800a930: 4a7a ldr r2, [pc, #488] ; (800ab1c <DrawChannel_4+0x3f30>)
800a932: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a936: 331c adds r3, #28
800a938: b298 uxth r0, r3
800a93a: 79fb ldrb r3, [r7, #7]
800a93c: 4a78 ldr r2, [pc, #480] ; (800ab20 <DrawChannel_4+0x3f34>)
800a93e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a942: 2303 movs r3, #3
800a944: 4a78 ldr r2, [pc, #480] ; (800ab28 <DrawChannel_4+0x3f3c>)
800a946: f7f9 fe9d bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
800a94a: 683b ldr r3, [r7, #0]
800a94c: 2b00 cmp r3, #0
800a94e: f000 8154 beq.w 800abfa <DrawChannel_4+0x400e>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
800a952: 79fb ldrb r3, [r7, #7]
800a954: 4a71 ldr r2, [pc, #452] ; (800ab1c <DrawChannel_4+0x3f30>)
800a956: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a95a: 3323 adds r3, #35 ; 0x23
800a95c: b298 uxth r0, r3
800a95e: 79fb ldrb r3, [r7, #7]
800a960: 4a6f ldr r2, [pc, #444] ; (800ab20 <DrawChannel_4+0x3f34>)
800a962: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a966: 4a6f ldr r2, [pc, #444] ; (800ab24 <DrawChannel_4+0x3f38>)
800a968: 697b ldr r3, [r7, #20]
800a96a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a96e: 2303 movs r3, #3
800a970: f7f9 fe88 bl 8004684 <BSP_LCD_DisplayStringAt>
800a974: e141 b.n 800abfa <DrawChannel_4+0x400e>
if(ipt == 2)
800a976: 6b3b ldr r3, [r7, #48] ; 0x30
800a978: 2b02 cmp r3, #2
800a97a: d165 bne.n 800aa48 <DrawChannel_4+0x3e5c>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
800a97c: 79fb ldrb r3, [r7, #7]
800a97e: 4a67 ldr r2, [pc, #412] ; (800ab1c <DrawChannel_4+0x3f30>)
800a980: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800a984: 79fb ldrb r3, [r7, #7]
800a986: 4a66 ldr r2, [pc, #408] ; (800ab20 <DrawChannel_4+0x3f34>)
800a988: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a98c: 4a65 ldr r2, [pc, #404] ; (800ab24 <DrawChannel_4+0x3f38>)
800a98e: 6a7b ldr r3, [r7, #36] ; 0x24
800a990: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a994: 2303 movs r3, #3
800a996: f7f9 fe75 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
800a99a: 79fb ldrb r3, [r7, #7]
800a99c: 4a5f ldr r2, [pc, #380] ; (800ab1c <DrawChannel_4+0x3f30>)
800a99e: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a9a2: 3307 adds r3, #7
800a9a4: b298 uxth r0, r3
800a9a6: 79fb ldrb r3, [r7, #7]
800a9a8: 4a5d ldr r2, [pc, #372] ; (800ab20 <DrawChannel_4+0x3f34>)
800a9aa: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a9ae: 4a5d ldr r2, [pc, #372] ; (800ab24 <DrawChannel_4+0x3f38>)
800a9b0: 6a3b ldr r3, [r7, #32]
800a9b2: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a9b6: 2303 movs r3, #3
800a9b8: f7f9 fe64 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
800a9bc: 79fb ldrb r3, [r7, #7]
800a9be: 4a57 ldr r2, [pc, #348] ; (800ab1c <DrawChannel_4+0x3f30>)
800a9c0: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a9c4: 330e adds r3, #14
800a9c6: b298 uxth r0, r3
800a9c8: 79fb ldrb r3, [r7, #7]
800a9ca: 4a55 ldr r2, [pc, #340] ; (800ab20 <DrawChannel_4+0x3f34>)
800a9cc: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a9d0: 4a54 ldr r2, [pc, #336] ; (800ab24 <DrawChannel_4+0x3f38>)
800a9d2: 69fb ldr r3, [r7, #28]
800a9d4: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800a9d8: 2303 movs r3, #3
800a9da: f7f9 fe53 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], ".", LEFT_MODE);
800a9de: 79fb ldrb r3, [r7, #7]
800a9e0: 4a4e ldr r2, [pc, #312] ; (800ab1c <DrawChannel_4+0x3f30>)
800a9e2: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800a9e6: 3315 adds r3, #21
800a9e8: b298 uxth r0, r3
800a9ea: 79fb ldrb r3, [r7, #7]
800a9ec: 4a4c ldr r2, [pc, #304] ; (800ab20 <DrawChannel_4+0x3f34>)
800a9ee: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800a9f2: 2303 movs r3, #3
800a9f4: 4a4c ldr r2, [pc, #304] ; (800ab28 <DrawChannel_4+0x3f3c>)
800a9f6: f7f9 fe45 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
800a9fa: 79fb ldrb r3, [r7, #7]
800a9fc: 4a47 ldr r2, [pc, #284] ; (800ab1c <DrawChannel_4+0x3f30>)
800a9fe: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800aa02: 331c adds r3, #28
800aa04: b298 uxth r0, r3
800aa06: 79fb ldrb r3, [r7, #7]
800aa08: 4a45 ldr r2, [pc, #276] ; (800ab20 <DrawChannel_4+0x3f34>)
800aa0a: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800aa0e: 4a45 ldr r2, [pc, #276] ; (800ab24 <DrawChannel_4+0x3f38>)
800aa10: 69bb ldr r3, [r7, #24]
800aa12: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800aa16: 2303 movs r3, #3
800aa18: f7f9 fe34 bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
800aa1c: 683b ldr r3, [r7, #0]
800aa1e: 2b00 cmp r3, #0
800aa20: f000 80eb beq.w 800abfa <DrawChannel_4+0x400e>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
800aa24: 79fb ldrb r3, [r7, #7]
800aa26: 4a3d ldr r2, [pc, #244] ; (800ab1c <DrawChannel_4+0x3f30>)
800aa28: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800aa2c: 3323 adds r3, #35 ; 0x23
800aa2e: b298 uxth r0, r3
800aa30: 79fb ldrb r3, [r7, #7]
800aa32: 4a3b ldr r2, [pc, #236] ; (800ab20 <DrawChannel_4+0x3f34>)
800aa34: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800aa38: 4a3a ldr r2, [pc, #232] ; (800ab24 <DrawChannel_4+0x3f38>)
800aa3a: 697b ldr r3, [r7, #20]
800aa3c: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800aa40: 2303 movs r3, #3
800aa42: f7f9 fe1f bl 8004684 <BSP_LCD_DisplayStringAt>
800aa46: e0d8 b.n 800abfa <DrawChannel_4+0x400e>
if(ipt == 3)
800aa48: 6b3b ldr r3, [r7, #48] ; 0x30
800aa4a: 2b03 cmp r3, #3
800aa4c: d16e bne.n 800ab2c <DrawChannel_4+0x3f40>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
800aa4e: 79fb ldrb r3, [r7, #7]
800aa50: 4a32 ldr r2, [pc, #200] ; (800ab1c <DrawChannel_4+0x3f30>)
800aa52: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800aa56: 79fb ldrb r3, [r7, #7]
800aa58: 4a31 ldr r2, [pc, #196] ; (800ab20 <DrawChannel_4+0x3f34>)
800aa5a: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800aa5e: 4a31 ldr r2, [pc, #196] ; (800ab24 <DrawChannel_4+0x3f38>)
800aa60: 6a7b ldr r3, [r7, #36] ; 0x24
800aa62: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800aa66: 2303 movs r3, #3
800aa68: f7f9 fe0c bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
800aa6c: 79fb ldrb r3, [r7, #7]
800aa6e: 4a2b ldr r2, [pc, #172] ; (800ab1c <DrawChannel_4+0x3f30>)
800aa70: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800aa74: 3307 adds r3, #7
800aa76: b298 uxth r0, r3
800aa78: 79fb ldrb r3, [r7, #7]
800aa7a: 4a29 ldr r2, [pc, #164] ; (800ab20 <DrawChannel_4+0x3f34>)
800aa7c: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800aa80: 4a28 ldr r2, [pc, #160] ; (800ab24 <DrawChannel_4+0x3f38>)
800aa82: 6a3b ldr r3, [r7, #32]
800aa84: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800aa88: 2303 movs r3, #3
800aa8a: f7f9 fdfb bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], ".", LEFT_MODE);
800aa8e: 79fb ldrb r3, [r7, #7]
800aa90: 4a22 ldr r2, [pc, #136] ; (800ab1c <DrawChannel_4+0x3f30>)
800aa92: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800aa96: 330e adds r3, #14
800aa98: b298 uxth r0, r3
800aa9a: 79fb ldrb r3, [r7, #7]
800aa9c: 4a20 ldr r2, [pc, #128] ; (800ab20 <DrawChannel_4+0x3f34>)
800aa9e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800aaa2: 2303 movs r3, #3
800aaa4: 4a20 ldr r2, [pc, #128] ; (800ab28 <DrawChannel_4+0x3f3c>)
800aaa6: f7f9 fded bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
800aaaa: 79fb ldrb r3, [r7, #7]
800aaac: 4a1b ldr r2, [pc, #108] ; (800ab1c <DrawChannel_4+0x3f30>)
800aaae: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800aab2: 3315 adds r3, #21
800aab4: b298 uxth r0, r3
800aab6: 79fb ldrb r3, [r7, #7]
800aab8: 4a19 ldr r2, [pc, #100] ; (800ab20 <DrawChannel_4+0x3f34>)
800aaba: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800aabe: 4a19 ldr r2, [pc, #100] ; (800ab24 <DrawChannel_4+0x3f38>)
800aac0: 69fb ldr r3, [r7, #28]
800aac2: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800aac6: 2303 movs r3, #3
800aac8: f7f9 fddc bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
800aacc: 79fb ldrb r3, [r7, #7]
800aace: 4a13 ldr r2, [pc, #76] ; (800ab1c <DrawChannel_4+0x3f30>)
800aad0: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800aad4: 331c adds r3, #28
800aad6: b298 uxth r0, r3
800aad8: 79fb ldrb r3, [r7, #7]
800aada: 4a11 ldr r2, [pc, #68] ; (800ab20 <DrawChannel_4+0x3f34>)
800aadc: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800aae0: 4a10 ldr r2, [pc, #64] ; (800ab24 <DrawChannel_4+0x3f38>)
800aae2: 69bb ldr r3, [r7, #24]
800aae4: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800aae8: 2303 movs r3, #3
800aaea: f7f9 fdcb bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
800aaee: 683b ldr r3, [r7, #0]
800aaf0: 2b00 cmp r3, #0
800aaf2: f000 8082 beq.w 800abfa <DrawChannel_4+0x400e>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
800aaf6: 79fb ldrb r3, [r7, #7]
800aaf8: 4a08 ldr r2, [pc, #32] ; (800ab1c <DrawChannel_4+0x3f30>)
800aafa: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800aafe: 3323 adds r3, #35 ; 0x23
800ab00: b298 uxth r0, r3
800ab02: 79fb ldrb r3, [r7, #7]
800ab04: 4a06 ldr r2, [pc, #24] ; (800ab20 <DrawChannel_4+0x3f34>)
800ab06: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800ab0a: 4a06 ldr r2, [pc, #24] ; (800ab24 <DrawChannel_4+0x3f38>)
800ab0c: 697b ldr r3, [r7, #20]
800ab0e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800ab12: 2303 movs r3, #3
800ab14: f7f9 fdb6 bl 8004684 <BSP_LCD_DisplayStringAt>
800ab18: e06f b.n 800abfa <DrawChannel_4+0x400e>
800ab1a: bf00 nop
800ab1c: 08015564 .word 0x08015564
800ab20: 0801556c .word 0x0801556c
800ab24: 200201ec .word 0x200201ec
800ab28: 08012cb8 .word 0x08012cb8
if(ipt == 4)
800ab2c: 6b3b ldr r3, [r7, #48] ; 0x30
800ab2e: 2b04 cmp r3, #4
800ab30: d163 bne.n 800abfa <DrawChannel_4+0x400e>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
800ab32: 79fb ldrb r3, [r7, #7]
800ab34: 4a82 ldr r2, [pc, #520] ; (800ad40 <DrawChannel_4+0x4154>)
800ab36: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800ab3a: 79fb ldrb r3, [r7, #7]
800ab3c: 4a81 ldr r2, [pc, #516] ; (800ad44 <DrawChannel_4+0x4158>)
800ab3e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800ab42: 4a81 ldr r2, [pc, #516] ; (800ad48 <DrawChannel_4+0x415c>)
800ab44: 6a7b ldr r3, [r7, #36] ; 0x24
800ab46: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800ab4a: 2303 movs r3, #3
800ab4c: f7f9 fd9a bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], ".", LEFT_MODE);
800ab50: 79fb ldrb r3, [r7, #7]
800ab52: 4a7b ldr r2, [pc, #492] ; (800ad40 <DrawChannel_4+0x4154>)
800ab54: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ab58: 3307 adds r3, #7
800ab5a: b298 uxth r0, r3
800ab5c: 79fb ldrb r3, [r7, #7]
800ab5e: 4a79 ldr r2, [pc, #484] ; (800ad44 <DrawChannel_4+0x4158>)
800ab60: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800ab64: 2303 movs r3, #3
800ab66: 4a79 ldr r2, [pc, #484] ; (800ad4c <DrawChannel_4+0x4160>)
800ab68: f7f9 fd8c bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
800ab6c: 79fb ldrb r3, [r7, #7]
800ab6e: 4a74 ldr r2, [pc, #464] ; (800ad40 <DrawChannel_4+0x4154>)
800ab70: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ab74: 330e adds r3, #14
800ab76: b298 uxth r0, r3
800ab78: 79fb ldrb r3, [r7, #7]
800ab7a: 4a72 ldr r2, [pc, #456] ; (800ad44 <DrawChannel_4+0x4158>)
800ab7c: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800ab80: 4a71 ldr r2, [pc, #452] ; (800ad48 <DrawChannel_4+0x415c>)
800ab82: 6a3b ldr r3, [r7, #32]
800ab84: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800ab88: 2303 movs r3, #3
800ab8a: f7f9 fd7b bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
800ab8e: 79fb ldrb r3, [r7, #7]
800ab90: 4a6b ldr r2, [pc, #428] ; (800ad40 <DrawChannel_4+0x4154>)
800ab92: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ab96: 3315 adds r3, #21
800ab98: b298 uxth r0, r3
800ab9a: 79fb ldrb r3, [r7, #7]
800ab9c: 4a69 ldr r2, [pc, #420] ; (800ad44 <DrawChannel_4+0x4158>)
800ab9e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800aba2: 4a69 ldr r2, [pc, #420] ; (800ad48 <DrawChannel_4+0x415c>)
800aba4: 69fb ldr r3, [r7, #28]
800aba6: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800abaa: 2303 movs r3, #3
800abac: f7f9 fd6a bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
800abb0: 79fb ldrb r3, [r7, #7]
800abb2: 4a63 ldr r2, [pc, #396] ; (800ad40 <DrawChannel_4+0x4154>)
800abb4: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800abb8: 331c adds r3, #28
800abba: b298 uxth r0, r3
800abbc: 79fb ldrb r3, [r7, #7]
800abbe: 4a61 ldr r2, [pc, #388] ; (800ad44 <DrawChannel_4+0x4158>)
800abc0: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800abc4: 4a60 ldr r2, [pc, #384] ; (800ad48 <DrawChannel_4+0x415c>)
800abc6: 69bb ldr r3, [r7, #24]
800abc8: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800abcc: 2303 movs r3, #3
800abce: f7f9 fd59 bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
800abd2: 683b ldr r3, [r7, #0]
800abd4: 2b00 cmp r3, #0
800abd6: d010 beq.n 800abfa <DrawChannel_4+0x400e>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
800abd8: 79fb ldrb r3, [r7, #7]
800abda: 4a59 ldr r2, [pc, #356] ; (800ad40 <DrawChannel_4+0x4154>)
800abdc: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800abe0: 3323 adds r3, #35 ; 0x23
800abe2: b298 uxth r0, r3
800abe4: 79fb ldrb r3, [r7, #7]
800abe6: 4a57 ldr r2, [pc, #348] ; (800ad44 <DrawChannel_4+0x4158>)
800abe8: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800abec: 4a56 ldr r2, [pc, #344] ; (800ad48 <DrawChannel_4+0x415c>)
800abee: 697b ldr r3, [r7, #20]
800abf0: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800abf4: 2303 movs r3, #3
800abf6: f7f9 fd45 bl 8004684 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800abfa: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800abfe: 4854 ldr r0, [pc, #336] ; (800ad50 <DrawChannel_4+0x4164>)
800ac00: f7f9 fc7a bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
800ac04: 79fb ldrb r3, [r7, #7]
800ac06: 4a53 ldr r2, [pc, #332] ; (800ad54 <DrawChannel_4+0x4168>)
800ac08: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800ac0c: 79fb ldrb r3, [r7, #7]
800ac0e: 4a52 ldr r2, [pc, #328] ; (800ad58 <DrawChannel_4+0x416c>)
800ac10: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800ac14: 4b51 ldr r3, [pc, #324] ; (800ad5c <DrawChannel_4+0x4170>)
800ac16: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ac1a: b29b uxth r3, r3
800ac1c: 461d mov r5, r3
800ac1e: 79fb ldrb r3, [r7, #7]
800ac20: 4a4e ldr r2, [pc, #312] ; (800ad5c <DrawChannel_4+0x4170>)
800ac22: 015b lsls r3, r3, #5
800ac24: 4413 add r3, r2
800ac26: 881b ldrh r3, [r3, #0]
800ac28: b29b uxth r3, r3
800ac2a: 461c mov r4, r3
800ac2c: 4a4c ldr r2, [pc, #304] ; (800ad60 <DrawChannel_4+0x4174>)
800ac2e: 006b lsls r3, r5, #1
800ac30: 4423 add r3, r4
800ac32: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800ac36: 2303 movs r3, #3
800ac38: f7f9 fd24 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800ac3c: 79fb ldrb r3, [r7, #7]
800ac3e: 4a49 ldr r2, [pc, #292] ; (800ad64 <DrawChannel_4+0x4178>)
800ac40: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800ac44: 79fb ldrb r3, [r7, #7]
800ac46: 4a48 ldr r2, [pc, #288] ; (800ad68 <DrawChannel_4+0x417c>)
800ac48: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ac4c: 4b43 ldr r3, [pc, #268] ; (800ad5c <DrawChannel_4+0x4170>)
800ac4e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ac52: b29b uxth r3, r3
800ac54: 4619 mov r1, r3
800ac56: 79fb ldrb r3, [r7, #7]
800ac58: 4a40 ldr r2, [pc, #256] ; (800ad5c <DrawChannel_4+0x4170>)
800ac5a: 015b lsls r3, r3, #5
800ac5c: 4413 add r3, r2
800ac5e: 3302 adds r3, #2
800ac60: 881b ldrh r3, [r3, #0]
800ac62: b29b uxth r3, r3
800ac64: 461d mov r5, r3
800ac66: 4a41 ldr r2, [pc, #260] ; (800ad6c <DrawChannel_4+0x4180>)
800ac68: 460b mov r3, r1
800ac6a: 009b lsls r3, r3, #2
800ac6c: 440b add r3, r1
800ac6e: 442b add r3, r5
800ac70: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800ac74: 2303 movs r3, #3
800ac76: 4621 mov r1, r4
800ac78: f7f9 fd04 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800ac7c: 79fb ldrb r3, [r7, #7]
800ac7e: 4a3c ldr r2, [pc, #240] ; (800ad70 <DrawChannel_4+0x4184>)
800ac80: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800ac84: 79fb ldrb r3, [r7, #7]
800ac86: 4a3b ldr r2, [pc, #236] ; (800ad74 <DrawChannel_4+0x4188>)
800ac88: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800ac8c: 4b33 ldr r3, [pc, #204] ; (800ad5c <DrawChannel_4+0x4170>)
800ac8e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ac92: b29b uxth r3, r3
800ac94: 461d mov r5, r3
800ac96: 79fb ldrb r3, [r7, #7]
800ac98: 4a30 ldr r2, [pc, #192] ; (800ad5c <DrawChannel_4+0x4170>)
800ac9a: 015b lsls r3, r3, #5
800ac9c: 4413 add r3, r2
800ac9e: 3304 adds r3, #4
800aca0: 881b ldrh r3, [r3, #0]
800aca2: b29b uxth r3, r3
800aca4: 461c mov r4, r3
800aca6: 4a34 ldr r2, [pc, #208] ; (800ad78 <DrawChannel_4+0x418c>)
800aca8: 00eb lsls r3, r5, #3
800acaa: 4423 add r3, r4
800acac: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800acb0: 2303 movs r3, #3
800acb2: f7f9 fce7 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
800acb6: 79fb ldrb r3, [r7, #7]
800acb8: 4a21 ldr r2, [pc, #132] ; (800ad40 <DrawChannel_4+0x4154>)
800acba: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800acbe: 332d adds r3, #45 ; 0x2d
800acc0: b298 uxth r0, r3
800acc2: 79fb ldrb r3, [r7, #7]
800acc4: 4a1f ldr r2, [pc, #124] ; (800ad44 <DrawChannel_4+0x4158>)
800acc6: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800acca: 79fb ldrb r3, [r7, #7]
800accc: 4a23 ldr r2, [pc, #140] ; (800ad5c <DrawChannel_4+0x4170>)
800acce: 015b lsls r3, r3, #5
800acd0: 4413 add r3, r2
800acd2: 881b ldrh r3, [r3, #0]
800acd4: b29b uxth r3, r3
800acd6: 4619 mov r1, r3
800acd8: 79fb ldrb r3, [r7, #7]
800acda: 4a20 ldr r2, [pc, #128] ; (800ad5c <DrawChannel_4+0x4170>)
800acdc: 015b lsls r3, r3, #5
800acde: 4413 add r3, r2
800ace0: 3312 adds r3, #18
800ace2: 881b ldrh r3, [r3, #0]
800ace4: b29b uxth r3, r3
800ace6: 461d mov r5, r3
800ace8: 4a24 ldr r2, [pc, #144] ; (800ad7c <DrawChannel_4+0x4190>)
800acea: 460b mov r3, r1
800acec: 005b lsls r3, r3, #1
800acee: 440b add r3, r1
800acf0: 442b add r3, r5
800acf2: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800acf6: 2303 movs r3, #3
800acf8: 4621 mov r1, r4
800acfa: f7f9 fcc3 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800acfe: 79fb ldrb r3, [r7, #7]
800ad00: 4a1f ldr r2, [pc, #124] ; (800ad80 <DrawChannel_4+0x4194>)
800ad02: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800ad06: 79fb ldrb r3, [r7, #7]
800ad08: 4a1e ldr r2, [pc, #120] ; (800ad84 <DrawChannel_4+0x4198>)
800ad0a: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ad0e: 79fb ldrb r3, [r7, #7]
800ad10: 4a12 ldr r2, [pc, #72] ; (800ad5c <DrawChannel_4+0x4170>)
800ad12: 015b lsls r3, r3, #5
800ad14: 4413 add r3, r2
800ad16: 3312 adds r3, #18
800ad18: 881b ldrh r3, [r3, #0]
800ad1a: b29b uxth r3, r3
800ad1c: 461a mov r2, r3
800ad1e: 491a ldr r1, [pc, #104] ; (800ad88 <DrawChannel_4+0x419c>)
800ad20: 4613 mov r3, r2
800ad22: 009b lsls r3, r3, #2
800ad24: 4413 add r3, r2
800ad26: 009a lsls r2, r3, #2
800ad28: 4413 add r3, r2
800ad2a: 6afa ldr r2, [r7, #44] ; 0x2c
800ad2c: 4413 add r3, r2
800ad2e: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800ad32: 2303 movs r3, #3
800ad34: 4621 mov r1, r4
800ad36: f7f9 fca5 bl 8004684 <BSP_LCD_DisplayStringAt>
}
800ad3a: f000 bc96 b.w 800b66a <DrawChannel_4+0x4a7e>
800ad3e: bf00 nop
800ad40: 08015564 .word 0x08015564
800ad44: 0801556c .word 0x0801556c
800ad48: 200201ec .word 0x200201ec
800ad4c: 08012cb8 .word 0x08012cb8
800ad50: ffd8aa57 .word 0xffd8aa57
800ad54: 08015534 .word 0x08015534
800ad58: 0801553c .word 0x0801553c
800ad5c: 2006b510 .word 0x2006b510
800ad60: 20020030 .word 0x20020030
800ad64: 08015544 .word 0x08015544
800ad68: 0801554c .word 0x0801554c
800ad6c: 20020040 .word 0x20020040
800ad70: 08015554 .word 0x08015554
800ad74: 0801555c .word 0x0801555c
800ad78: 20020068 .word 0x20020068
800ad7c: 200200a8 .word 0x200200a8
800ad80: 08015574 .word 0x08015574
800ad84: 0801557c .word 0x0801557c
800ad88: 200200c0 .word 0x200200c0
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800ad8c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800ad90: 4893 ldr r0, [pc, #588] ; (800afe0 <DrawChannel_4+0x43f4>)
800ad92: f7f9 fbb1 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
800ad96: 79fb ldrb r3, [r7, #7]
800ad98: 4a92 ldr r2, [pc, #584] ; (800afe4 <DrawChannel_4+0x43f8>)
800ad9a: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800ad9e: 79fb ldrb r3, [r7, #7]
800ada0: 4a91 ldr r2, [pc, #580] ; (800afe8 <DrawChannel_4+0x43fc>)
800ada2: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800ada6: 4b91 ldr r3, [pc, #580] ; (800afec <DrawChannel_4+0x4400>)
800ada8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800adac: b29b uxth r3, r3
800adae: 461d mov r5, r3
800adb0: 79fb ldrb r3, [r7, #7]
800adb2: 4a8e ldr r2, [pc, #568] ; (800afec <DrawChannel_4+0x4400>)
800adb4: 015b lsls r3, r3, #5
800adb6: 4413 add r3, r2
800adb8: 881b ldrh r3, [r3, #0]
800adba: b29b uxth r3, r3
800adbc: 461c mov r4, r3
800adbe: 4a8c ldr r2, [pc, #560] ; (800aff0 <DrawChannel_4+0x4404>)
800adc0: 006b lsls r3, r5, #1
800adc2: 4423 add r3, r4
800adc4: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800adc8: 2303 movs r3, #3
800adca: f7f9 fc5b bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800adce: 79fb ldrb r3, [r7, #7]
800add0: 4a88 ldr r2, [pc, #544] ; (800aff4 <DrawChannel_4+0x4408>)
800add2: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800add6: 79fb ldrb r3, [r7, #7]
800add8: 4a87 ldr r2, [pc, #540] ; (800aff8 <DrawChannel_4+0x440c>)
800adda: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800adde: 4b83 ldr r3, [pc, #524] ; (800afec <DrawChannel_4+0x4400>)
800ade0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ade4: b29b uxth r3, r3
800ade6: 4619 mov r1, r3
800ade8: 79fb ldrb r3, [r7, #7]
800adea: 4a80 ldr r2, [pc, #512] ; (800afec <DrawChannel_4+0x4400>)
800adec: 015b lsls r3, r3, #5
800adee: 4413 add r3, r2
800adf0: 3302 adds r3, #2
800adf2: 881b ldrh r3, [r3, #0]
800adf4: b29b uxth r3, r3
800adf6: 461d mov r5, r3
800adf8: 4a80 ldr r2, [pc, #512] ; (800affc <DrawChannel_4+0x4410>)
800adfa: 460b mov r3, r1
800adfc: 009b lsls r3, r3, #2
800adfe: 440b add r3, r1
800ae00: 442b add r3, r5
800ae02: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800ae06: 2303 movs r3, #3
800ae08: 4621 mov r1, r4
800ae0a: f7f9 fc3b bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800ae0e: 79fb ldrb r3, [r7, #7]
800ae10: 4a7b ldr r2, [pc, #492] ; (800b000 <DrawChannel_4+0x4414>)
800ae12: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800ae16: 79fb ldrb r3, [r7, #7]
800ae18: 4a7a ldr r2, [pc, #488] ; (800b004 <DrawChannel_4+0x4418>)
800ae1a: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800ae1e: 4b73 ldr r3, [pc, #460] ; (800afec <DrawChannel_4+0x4400>)
800ae20: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ae24: b29b uxth r3, r3
800ae26: 461d mov r5, r3
800ae28: 79fb ldrb r3, [r7, #7]
800ae2a: 4a70 ldr r2, [pc, #448] ; (800afec <DrawChannel_4+0x4400>)
800ae2c: 015b lsls r3, r3, #5
800ae2e: 4413 add r3, r2
800ae30: 3304 adds r3, #4
800ae32: 881b ldrh r3, [r3, #0]
800ae34: b29b uxth r3, r3
800ae36: 461c mov r4, r3
800ae38: 4a73 ldr r2, [pc, #460] ; (800b008 <DrawChannel_4+0x441c>)
800ae3a: 00eb lsls r3, r5, #3
800ae3c: 4423 add r3, r4
800ae3e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800ae42: 2303 movs r3, #3
800ae44: f7f9 fc1e bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens
800ae48: 79fb ldrb r3, [r7, #7]
800ae4a: 4a70 ldr r2, [pc, #448] ; (800b00c <DrawChannel_4+0x4420>)
800ae4c: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800ae50: 79fb ldrb r3, [r7, #7]
800ae52: 4a6f ldr r2, [pc, #444] ; (800b010 <DrawChannel_4+0x4424>)
800ae54: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800ae58: f107 0208 add.w r2, r7, #8
800ae5c: 2303 movs r3, #3
800ae5e: f7f9 fc11 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
800ae62: 79fb ldrb r3, [r7, #7]
800ae64: 4a69 ldr r2, [pc, #420] ; (800b00c <DrawChannel_4+0x4420>)
800ae66: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ae6a: 332d adds r3, #45 ; 0x2d
800ae6c: b298 uxth r0, r3
800ae6e: 79fb ldrb r3, [r7, #7]
800ae70: 4a67 ldr r2, [pc, #412] ; (800b010 <DrawChannel_4+0x4424>)
800ae72: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ae76: 79fb ldrb r3, [r7, #7]
800ae78: 4a5c ldr r2, [pc, #368] ; (800afec <DrawChannel_4+0x4400>)
800ae7a: 015b lsls r3, r3, #5
800ae7c: 4413 add r3, r2
800ae7e: 881b ldrh r3, [r3, #0]
800ae80: b29b uxth r3, r3
800ae82: 4619 mov r1, r3
800ae84: 79fb ldrb r3, [r7, #7]
800ae86: 4a59 ldr r2, [pc, #356] ; (800afec <DrawChannel_4+0x4400>)
800ae88: 015b lsls r3, r3, #5
800ae8a: 4413 add r3, r2
800ae8c: 3312 adds r3, #18
800ae8e: 881b ldrh r3, [r3, #0]
800ae90: b29b uxth r3, r3
800ae92: 461d mov r5, r3
800ae94: 4a5f ldr r2, [pc, #380] ; (800b014 <DrawChannel_4+0x4428>)
800ae96: 460b mov r3, r1
800ae98: 005b lsls r3, r3, #1
800ae9a: 440b add r3, r1
800ae9c: 442b add r3, r5
800ae9e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800aea2: 2303 movs r3, #3
800aea4: 4621 mov r1, r4
800aea6: f7f9 fbed bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800aeaa: 79fb ldrb r3, [r7, #7]
800aeac: 4a5a ldr r2, [pc, #360] ; (800b018 <DrawChannel_4+0x442c>)
800aeae: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800aeb2: 79fb ldrb r3, [r7, #7]
800aeb4: 4a59 ldr r2, [pc, #356] ; (800b01c <DrawChannel_4+0x4430>)
800aeb6: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800aeba: 79fb ldrb r3, [r7, #7]
800aebc: 4a4b ldr r2, [pc, #300] ; (800afec <DrawChannel_4+0x4400>)
800aebe: 015b lsls r3, r3, #5
800aec0: 4413 add r3, r2
800aec2: 3312 adds r3, #18
800aec4: 881b ldrh r3, [r3, #0]
800aec6: b29b uxth r3, r3
800aec8: 461a mov r2, r3
800aeca: 4955 ldr r1, [pc, #340] ; (800b020 <DrawChannel_4+0x4434>)
800aecc: 4613 mov r3, r2
800aece: 009b lsls r3, r3, #2
800aed0: 4413 add r3, r2
800aed2: 009a lsls r2, r3, #2
800aed4: 4413 add r3, r2
800aed6: 6afa ldr r2, [r7, #44] ; 0x2c
800aed8: 4413 add r3, r2
800aeda: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800aede: 2303 movs r3, #3
800aee0: 4621 mov r1, r4
800aee2: f7f9 fbcf bl 8004684 <BSP_LCD_DisplayStringAt>
}
800aee6: e3c0 b.n 800b66a <DrawChannel_4+0x4a7e>
if(menupos == Kpt)
800aee8: 4b4e ldr r3, [pc, #312] ; (800b024 <DrawChannel_4+0x4438>)
800aeea: 781b ldrb r3, [r3, #0]
800aeec: b2db uxtb r3, r3
800aeee: 2b0b cmp r3, #11
800aef0: f040 83bb bne.w 800b66a <DrawChannel_4+0x4a7e>
if(ACTIVE_CHANNEL == ch)
800aef4: 79fa ldrb r2, [r7, #7]
800aef6: 4b4c ldr r3, [pc, #304] ; (800b028 <DrawChannel_4+0x443c>)
800aef8: 681b ldr r3, [r3, #0]
800aefa: 429a cmp r2, r3
800aefc: f040 8308 bne.w 800b510 <DrawChannel_4+0x4924>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800af00: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800af04: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800af08: f7f9 faf6 bl 80044f8 <LCD_SetColors>
if(!ipt)
800af0c: 6b3b ldr r3, [r7, #48] ; 0x30
800af0e: 2b00 cmp r3, #0
800af10: f040 8090 bne.w 800b034 <DrawChannel_4+0x4448>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
800af14: 79fb ldrb r3, [r7, #7]
800af16: 4a3d ldr r2, [pc, #244] ; (800b00c <DrawChannel_4+0x4420>)
800af18: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800af1c: 79fb ldrb r3, [r7, #7]
800af1e: 4a3c ldr r2, [pc, #240] ; (800b010 <DrawChannel_4+0x4424>)
800af20: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800af24: 4a41 ldr r2, [pc, #260] ; (800b02c <DrawChannel_4+0x4440>)
800af26: 6a7b ldr r3, [r7, #36] ; 0x24
800af28: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800af2c: 2303 movs r3, #3
800af2e: f7f9 fba9 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
800af32: 79fb ldrb r3, [r7, #7]
800af34: 4a35 ldr r2, [pc, #212] ; (800b00c <DrawChannel_4+0x4420>)
800af36: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800af3a: 3307 adds r3, #7
800af3c: b298 uxth r0, r3
800af3e: 79fb ldrb r3, [r7, #7]
800af40: 4a33 ldr r2, [pc, #204] ; (800b010 <DrawChannel_4+0x4424>)
800af42: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800af46: 4a39 ldr r2, [pc, #228] ; (800b02c <DrawChannel_4+0x4440>)
800af48: 6a3b ldr r3, [r7, #32]
800af4a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800af4e: 2303 movs r3, #3
800af50: f7f9 fb98 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
800af54: 79fb ldrb r3, [r7, #7]
800af56: 4a2d ldr r2, [pc, #180] ; (800b00c <DrawChannel_4+0x4420>)
800af58: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800af5c: 330e adds r3, #14
800af5e: b298 uxth r0, r3
800af60: 79fb ldrb r3, [r7, #7]
800af62: 4a2b ldr r2, [pc, #172] ; (800b010 <DrawChannel_4+0x4424>)
800af64: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800af68: 4a30 ldr r2, [pc, #192] ; (800b02c <DrawChannel_4+0x4440>)
800af6a: 69fb ldr r3, [r7, #28]
800af6c: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800af70: 2303 movs r3, #3
800af72: f7f9 fb87 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
800af76: 79fb ldrb r3, [r7, #7]
800af78: 4a24 ldr r2, [pc, #144] ; (800b00c <DrawChannel_4+0x4420>)
800af7a: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800af7e: 3315 adds r3, #21
800af80: b298 uxth r0, r3
800af82: 79fb ldrb r3, [r7, #7]
800af84: 4a22 ldr r2, [pc, #136] ; (800b010 <DrawChannel_4+0x4424>)
800af86: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800af8a: 4a28 ldr r2, [pc, #160] ; (800b02c <DrawChannel_4+0x4440>)
800af8c: 69bb ldr r3, [r7, #24]
800af8e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800af92: 2303 movs r3, #3
800af94: f7f9 fb76 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
800af98: 79fb ldrb r3, [r7, #7]
800af9a: 4a1c ldr r2, [pc, #112] ; (800b00c <DrawChannel_4+0x4420>)
800af9c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800afa0: 331c adds r3, #28
800afa2: b298 uxth r0, r3
800afa4: 79fb ldrb r3, [r7, #7]
800afa6: 4a1a ldr r2, [pc, #104] ; (800b010 <DrawChannel_4+0x4424>)
800afa8: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800afac: 4a1f ldr r2, [pc, #124] ; (800b02c <DrawChannel_4+0x4440>)
800afae: 697b ldr r3, [r7, #20]
800afb0: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800afb4: 2303 movs r3, #3
800afb6: f7f9 fb65 bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
800afba: 683b ldr r3, [r7, #0]
800afbc: 2b00 cmp r3, #0
800afbe: f000 81e0 beq.w 800b382 <DrawChannel_4+0x4796>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], ".", LEFT_MODE);
800afc2: 79fb ldrb r3, [r7, #7]
800afc4: 4a11 ldr r2, [pc, #68] ; (800b00c <DrawChannel_4+0x4420>)
800afc6: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800afca: 3323 adds r3, #35 ; 0x23
800afcc: b298 uxth r0, r3
800afce: 79fb ldrb r3, [r7, #7]
800afd0: 4a0f ldr r2, [pc, #60] ; (800b010 <DrawChannel_4+0x4424>)
800afd2: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800afd6: 2303 movs r3, #3
800afd8: 4a15 ldr r2, [pc, #84] ; (800b030 <DrawChannel_4+0x4444>)
800afda: f7f9 fb53 bl 8004684 <BSP_LCD_DisplayStringAt>
800afde: e1d0 b.n 800b382 <DrawChannel_4+0x4796>
800afe0: ffd8aa57 .word 0xffd8aa57
800afe4: 08015534 .word 0x08015534
800afe8: 0801553c .word 0x0801553c
800afec: 2006b510 .word 0x2006b510
800aff0: 20020030 .word 0x20020030
800aff4: 08015544 .word 0x08015544
800aff8: 0801554c .word 0x0801554c
800affc: 20020040 .word 0x20020040
800b000: 08015554 .word 0x08015554
800b004: 0801555c .word 0x0801555c
800b008: 20020068 .word 0x20020068
800b00c: 08015564 .word 0x08015564
800b010: 0801556c .word 0x0801556c
800b014: 200200a8 .word 0x200200a8
800b018: 08015574 .word 0x08015574
800b01c: 0801557c .word 0x0801557c
800b020: 200200c0 .word 0x200200c0
800b024: 20020010 .word 0x20020010
800b028: 2006b2d0 .word 0x2006b2d0
800b02c: 200201ec .word 0x200201ec
800b030: 08012cb8 .word 0x08012cb8
if(ipt == 1)
800b034: 6b3b ldr r3, [r7, #48] ; 0x30
800b036: 2b01 cmp r3, #1
800b038: d164 bne.n 800b104 <DrawChannel_4+0x4518>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
800b03a: 79fb ldrb r3, [r7, #7]
800b03c: 4a99 ldr r2, [pc, #612] ; (800b2a4 <DrawChannel_4+0x46b8>)
800b03e: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800b042: 79fb ldrb r3, [r7, #7]
800b044: 4a98 ldr r2, [pc, #608] ; (800b2a8 <DrawChannel_4+0x46bc>)
800b046: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b04a: 4a98 ldr r2, [pc, #608] ; (800b2ac <DrawChannel_4+0x46c0>)
800b04c: 6a7b ldr r3, [r7, #36] ; 0x24
800b04e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b052: 2303 movs r3, #3
800b054: f7f9 fb16 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
800b058: 79fb ldrb r3, [r7, #7]
800b05a: 4a92 ldr r2, [pc, #584] ; (800b2a4 <DrawChannel_4+0x46b8>)
800b05c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b060: 3307 adds r3, #7
800b062: b298 uxth r0, r3
800b064: 79fb ldrb r3, [r7, #7]
800b066: 4a90 ldr r2, [pc, #576] ; (800b2a8 <DrawChannel_4+0x46bc>)
800b068: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b06c: 4a8f ldr r2, [pc, #572] ; (800b2ac <DrawChannel_4+0x46c0>)
800b06e: 6a3b ldr r3, [r7, #32]
800b070: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b074: 2303 movs r3, #3
800b076: f7f9 fb05 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
800b07a: 79fb ldrb r3, [r7, #7]
800b07c: 4a89 ldr r2, [pc, #548] ; (800b2a4 <DrawChannel_4+0x46b8>)
800b07e: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b082: 330e adds r3, #14
800b084: b298 uxth r0, r3
800b086: 79fb ldrb r3, [r7, #7]
800b088: 4a87 ldr r2, [pc, #540] ; (800b2a8 <DrawChannel_4+0x46bc>)
800b08a: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b08e: 4a87 ldr r2, [pc, #540] ; (800b2ac <DrawChannel_4+0x46c0>)
800b090: 69fb ldr r3, [r7, #28]
800b092: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b096: 2303 movs r3, #3
800b098: f7f9 faf4 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
800b09c: 79fb ldrb r3, [r7, #7]
800b09e: 4a81 ldr r2, [pc, #516] ; (800b2a4 <DrawChannel_4+0x46b8>)
800b0a0: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b0a4: 3315 adds r3, #21
800b0a6: b298 uxth r0, r3
800b0a8: 79fb ldrb r3, [r7, #7]
800b0aa: 4a7f ldr r2, [pc, #508] ; (800b2a8 <DrawChannel_4+0x46bc>)
800b0ac: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b0b0: 4a7e ldr r2, [pc, #504] ; (800b2ac <DrawChannel_4+0x46c0>)
800b0b2: 69bb ldr r3, [r7, #24]
800b0b4: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b0b8: 2303 movs r3, #3
800b0ba: f7f9 fae3 bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
800b0be: 683b ldr r3, [r7, #0]
800b0c0: 2b00 cmp r3, #0
800b0c2: d00d beq.n 800b0e0 <DrawChannel_4+0x44f4>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], ".", LEFT_MODE);
800b0c4: 79fb ldrb r3, [r7, #7]
800b0c6: 4a77 ldr r2, [pc, #476] ; (800b2a4 <DrawChannel_4+0x46b8>)
800b0c8: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b0cc: 331c adds r3, #28
800b0ce: b298 uxth r0, r3
800b0d0: 79fb ldrb r3, [r7, #7]
800b0d2: 4a75 ldr r2, [pc, #468] ; (800b2a8 <DrawChannel_4+0x46bc>)
800b0d4: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b0d8: 2303 movs r3, #3
800b0da: 4a75 ldr r2, [pc, #468] ; (800b2b0 <DrawChannel_4+0x46c4>)
800b0dc: f7f9 fad2 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
800b0e0: 79fb ldrb r3, [r7, #7]
800b0e2: 4a70 ldr r2, [pc, #448] ; (800b2a4 <DrawChannel_4+0x46b8>)
800b0e4: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b0e8: 3323 adds r3, #35 ; 0x23
800b0ea: b298 uxth r0, r3
800b0ec: 79fb ldrb r3, [r7, #7]
800b0ee: 4a6e ldr r2, [pc, #440] ; (800b2a8 <DrawChannel_4+0x46bc>)
800b0f0: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b0f4: 4a6d ldr r2, [pc, #436] ; (800b2ac <DrawChannel_4+0x46c0>)
800b0f6: 697b ldr r3, [r7, #20]
800b0f8: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b0fc: 2303 movs r3, #3
800b0fe: f7f9 fac1 bl 8004684 <BSP_LCD_DisplayStringAt>
800b102: e13e b.n 800b382 <DrawChannel_4+0x4796>
if(ipt == 2)
800b104: 6b3b ldr r3, [r7, #48] ; 0x30
800b106: 2b02 cmp r3, #2
800b108: d164 bne.n 800b1d4 <DrawChannel_4+0x45e8>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
800b10a: 79fb ldrb r3, [r7, #7]
800b10c: 4a65 ldr r2, [pc, #404] ; (800b2a4 <DrawChannel_4+0x46b8>)
800b10e: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800b112: 79fb ldrb r3, [r7, #7]
800b114: 4a64 ldr r2, [pc, #400] ; (800b2a8 <DrawChannel_4+0x46bc>)
800b116: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b11a: 4a64 ldr r2, [pc, #400] ; (800b2ac <DrawChannel_4+0x46c0>)
800b11c: 6a7b ldr r3, [r7, #36] ; 0x24
800b11e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b122: 2303 movs r3, #3
800b124: f7f9 faae bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
800b128: 79fb ldrb r3, [r7, #7]
800b12a: 4a5e ldr r2, [pc, #376] ; (800b2a4 <DrawChannel_4+0x46b8>)
800b12c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b130: 3307 adds r3, #7
800b132: b298 uxth r0, r3
800b134: 79fb ldrb r3, [r7, #7]
800b136: 4a5c ldr r2, [pc, #368] ; (800b2a8 <DrawChannel_4+0x46bc>)
800b138: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b13c: 4a5b ldr r2, [pc, #364] ; (800b2ac <DrawChannel_4+0x46c0>)
800b13e: 6a3b ldr r3, [r7, #32]
800b140: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b144: 2303 movs r3, #3
800b146: f7f9 fa9d bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
800b14a: 79fb ldrb r3, [r7, #7]
800b14c: 4a55 ldr r2, [pc, #340] ; (800b2a4 <DrawChannel_4+0x46b8>)
800b14e: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b152: 330e adds r3, #14
800b154: b298 uxth r0, r3
800b156: 79fb ldrb r3, [r7, #7]
800b158: 4a53 ldr r2, [pc, #332] ; (800b2a8 <DrawChannel_4+0x46bc>)
800b15a: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b15e: 4a53 ldr r2, [pc, #332] ; (800b2ac <DrawChannel_4+0x46c0>)
800b160: 69fb ldr r3, [r7, #28]
800b162: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b166: 2303 movs r3, #3
800b168: f7f9 fa8c bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
800b16c: 683b ldr r3, [r7, #0]
800b16e: 2b00 cmp r3, #0
800b170: d00d beq.n 800b18e <DrawChannel_4+0x45a2>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], ".", LEFT_MODE);
800b172: 79fb ldrb r3, [r7, #7]
800b174: 4a4b ldr r2, [pc, #300] ; (800b2a4 <DrawChannel_4+0x46b8>)
800b176: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b17a: 3315 adds r3, #21
800b17c: b298 uxth r0, r3
800b17e: 79fb ldrb r3, [r7, #7]
800b180: 4a49 ldr r2, [pc, #292] ; (800b2a8 <DrawChannel_4+0x46bc>)
800b182: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b186: 2303 movs r3, #3
800b188: 4a49 ldr r2, [pc, #292] ; (800b2b0 <DrawChannel_4+0x46c4>)
800b18a: f7f9 fa7b bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
800b18e: 79fb ldrb r3, [r7, #7]
800b190: 4a44 ldr r2, [pc, #272] ; (800b2a4 <DrawChannel_4+0x46b8>)
800b192: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b196: 331c adds r3, #28
800b198: b298 uxth r0, r3
800b19a: 79fb ldrb r3, [r7, #7]
800b19c: 4a42 ldr r2, [pc, #264] ; (800b2a8 <DrawChannel_4+0x46bc>)
800b19e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b1a2: 4a42 ldr r2, [pc, #264] ; (800b2ac <DrawChannel_4+0x46c0>)
800b1a4: 69bb ldr r3, [r7, #24]
800b1a6: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b1aa: 2303 movs r3, #3
800b1ac: f7f9 fa6a bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
800b1b0: 79fb ldrb r3, [r7, #7]
800b1b2: 4a3c ldr r2, [pc, #240] ; (800b2a4 <DrawChannel_4+0x46b8>)
800b1b4: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b1b8: 3323 adds r3, #35 ; 0x23
800b1ba: b298 uxth r0, r3
800b1bc: 79fb ldrb r3, [r7, #7]
800b1be: 4a3a ldr r2, [pc, #232] ; (800b2a8 <DrawChannel_4+0x46bc>)
800b1c0: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b1c4: 4a39 ldr r2, [pc, #228] ; (800b2ac <DrawChannel_4+0x46c0>)
800b1c6: 697b ldr r3, [r7, #20]
800b1c8: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b1cc: 2303 movs r3, #3
800b1ce: f7f9 fa59 bl 8004684 <BSP_LCD_DisplayStringAt>
800b1d2: e0d6 b.n 800b382 <DrawChannel_4+0x4796>
if(ipt == 3)
800b1d4: 6b3b ldr r3, [r7, #48] ; 0x30
800b1d6: 2b03 cmp r3, #3
800b1d8: d16c bne.n 800b2b4 <DrawChannel_4+0x46c8>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
800b1da: 79fb ldrb r3, [r7, #7]
800b1dc: 4a31 ldr r2, [pc, #196] ; (800b2a4 <DrawChannel_4+0x46b8>)
800b1de: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800b1e2: 79fb ldrb r3, [r7, #7]
800b1e4: 4a30 ldr r2, [pc, #192] ; (800b2a8 <DrawChannel_4+0x46bc>)
800b1e6: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b1ea: 4a30 ldr r2, [pc, #192] ; (800b2ac <DrawChannel_4+0x46c0>)
800b1ec: 6a7b ldr r3, [r7, #36] ; 0x24
800b1ee: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b1f2: 2303 movs r3, #3
800b1f4: f7f9 fa46 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
800b1f8: 79fb ldrb r3, [r7, #7]
800b1fa: 4a2a ldr r2, [pc, #168] ; (800b2a4 <DrawChannel_4+0x46b8>)
800b1fc: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b200: 3307 adds r3, #7
800b202: b298 uxth r0, r3
800b204: 79fb ldrb r3, [r7, #7]
800b206: 4a28 ldr r2, [pc, #160] ; (800b2a8 <DrawChannel_4+0x46bc>)
800b208: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b20c: 4a27 ldr r2, [pc, #156] ; (800b2ac <DrawChannel_4+0x46c0>)
800b20e: 6a3b ldr r3, [r7, #32]
800b210: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b214: 2303 movs r3, #3
800b216: f7f9 fa35 bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
800b21a: 683b ldr r3, [r7, #0]
800b21c: 2b00 cmp r3, #0
800b21e: d00d beq.n 800b23c <DrawChannel_4+0x4650>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], ".", LEFT_MODE);
800b220: 79fb ldrb r3, [r7, #7]
800b222: 4a20 ldr r2, [pc, #128] ; (800b2a4 <DrawChannel_4+0x46b8>)
800b224: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b228: 330e adds r3, #14
800b22a: b298 uxth r0, r3
800b22c: 79fb ldrb r3, [r7, #7]
800b22e: 4a1e ldr r2, [pc, #120] ; (800b2a8 <DrawChannel_4+0x46bc>)
800b230: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b234: 2303 movs r3, #3
800b236: 4a1e ldr r2, [pc, #120] ; (800b2b0 <DrawChannel_4+0x46c4>)
800b238: f7f9 fa24 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
800b23c: 79fb ldrb r3, [r7, #7]
800b23e: 4a19 ldr r2, [pc, #100] ; (800b2a4 <DrawChannel_4+0x46b8>)
800b240: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b244: 3315 adds r3, #21
800b246: b298 uxth r0, r3
800b248: 79fb ldrb r3, [r7, #7]
800b24a: 4a17 ldr r2, [pc, #92] ; (800b2a8 <DrawChannel_4+0x46bc>)
800b24c: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b250: 4a16 ldr r2, [pc, #88] ; (800b2ac <DrawChannel_4+0x46c0>)
800b252: 69fb ldr r3, [r7, #28]
800b254: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b258: 2303 movs r3, #3
800b25a: f7f9 fa13 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
800b25e: 79fb ldrb r3, [r7, #7]
800b260: 4a10 ldr r2, [pc, #64] ; (800b2a4 <DrawChannel_4+0x46b8>)
800b262: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b266: 331c adds r3, #28
800b268: b298 uxth r0, r3
800b26a: 79fb ldrb r3, [r7, #7]
800b26c: 4a0e ldr r2, [pc, #56] ; (800b2a8 <DrawChannel_4+0x46bc>)
800b26e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b272: 4a0e ldr r2, [pc, #56] ; (800b2ac <DrawChannel_4+0x46c0>)
800b274: 69bb ldr r3, [r7, #24]
800b276: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b27a: 2303 movs r3, #3
800b27c: f7f9 fa02 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
800b280: 79fb ldrb r3, [r7, #7]
800b282: 4a08 ldr r2, [pc, #32] ; (800b2a4 <DrawChannel_4+0x46b8>)
800b284: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b288: 3323 adds r3, #35 ; 0x23
800b28a: b298 uxth r0, r3
800b28c: 79fb ldrb r3, [r7, #7]
800b28e: 4a06 ldr r2, [pc, #24] ; (800b2a8 <DrawChannel_4+0x46bc>)
800b290: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b294: 4a05 ldr r2, [pc, #20] ; (800b2ac <DrawChannel_4+0x46c0>)
800b296: 697b ldr r3, [r7, #20]
800b298: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b29c: 2303 movs r3, #3
800b29e: f7f9 f9f1 bl 8004684 <BSP_LCD_DisplayStringAt>
800b2a2: e06e b.n 800b382 <DrawChannel_4+0x4796>
800b2a4: 08015564 .word 0x08015564
800b2a8: 0801556c .word 0x0801556c
800b2ac: 200201ec .word 0x200201ec
800b2b0: 08012cb8 .word 0x08012cb8
if(ipt == 4)
800b2b4: 6b3b ldr r3, [r7, #48] ; 0x30
800b2b6: 2b04 cmp r3, #4
800b2b8: d163 bne.n 800b382 <DrawChannel_4+0x4796>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE);
800b2ba: 79fb ldrb r3, [r7, #7]
800b2bc: 4a81 ldr r2, [pc, #516] ; (800b4c4 <DrawChannel_4+0x48d8>)
800b2be: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800b2c2: 79fb ldrb r3, [r7, #7]
800b2c4: 4a80 ldr r2, [pc, #512] ; (800b4c8 <DrawChannel_4+0x48dc>)
800b2c6: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b2ca: 4a80 ldr r2, [pc, #512] ; (800b4cc <DrawChannel_4+0x48e0>)
800b2cc: 6a7b ldr r3, [r7, #36] ; 0x24
800b2ce: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b2d2: 2303 movs r3, #3
800b2d4: f7f9 f9d6 bl 8004684 <BSP_LCD_DisplayStringAt>
if(blk)
800b2d8: 683b ldr r3, [r7, #0]
800b2da: 2b00 cmp r3, #0
800b2dc: d00d beq.n 800b2fa <DrawChannel_4+0x470e>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], ".", LEFT_MODE);
800b2de: 79fb ldrb r3, [r7, #7]
800b2e0: 4a78 ldr r2, [pc, #480] ; (800b4c4 <DrawChannel_4+0x48d8>)
800b2e2: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b2e6: 3307 adds r3, #7
800b2e8: b298 uxth r0, r3
800b2ea: 79fb ldrb r3, [r7, #7]
800b2ec: 4a76 ldr r2, [pc, #472] ; (800b4c8 <DrawChannel_4+0x48dc>)
800b2ee: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b2f2: 2303 movs r3, #3
800b2f4: 4a76 ldr r2, [pc, #472] ; (800b4d0 <DrawChannel_4+0x48e4>)
800b2f6: f7f9 f9c5 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE);
800b2fa: 79fb ldrb r3, [r7, #7]
800b2fc: 4a71 ldr r2, [pc, #452] ; (800b4c4 <DrawChannel_4+0x48d8>)
800b2fe: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b302: 330e adds r3, #14
800b304: b298 uxth r0, r3
800b306: 79fb ldrb r3, [r7, #7]
800b308: 4a6f ldr r2, [pc, #444] ; (800b4c8 <DrawChannel_4+0x48dc>)
800b30a: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b30e: 4a6f ldr r2, [pc, #444] ; (800b4cc <DrawChannel_4+0x48e0>)
800b310: 6a3b ldr r3, [r7, #32]
800b312: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b316: 2303 movs r3, #3
800b318: f7f9 f9b4 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE);
800b31c: 79fb ldrb r3, [r7, #7]
800b31e: 4a69 ldr r2, [pc, #420] ; (800b4c4 <DrawChannel_4+0x48d8>)
800b320: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b324: 3315 adds r3, #21
800b326: b298 uxth r0, r3
800b328: 79fb ldrb r3, [r7, #7]
800b32a: 4a67 ldr r2, [pc, #412] ; (800b4c8 <DrawChannel_4+0x48dc>)
800b32c: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b330: 4a66 ldr r2, [pc, #408] ; (800b4cc <DrawChannel_4+0x48e0>)
800b332: 69fb ldr r3, [r7, #28]
800b334: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b338: 2303 movs r3, #3
800b33a: f7f9 f9a3 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE);
800b33e: 79fb ldrb r3, [r7, #7]
800b340: 4a60 ldr r2, [pc, #384] ; (800b4c4 <DrawChannel_4+0x48d8>)
800b342: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b346: 331c adds r3, #28
800b348: b298 uxth r0, r3
800b34a: 79fb ldrb r3, [r7, #7]
800b34c: 4a5e ldr r2, [pc, #376] ; (800b4c8 <DrawChannel_4+0x48dc>)
800b34e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b352: 4a5e ldr r2, [pc, #376] ; (800b4cc <DrawChannel_4+0x48e0>)
800b354: 69bb ldr r3, [r7, #24]
800b356: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b35a: 2303 movs r3, #3
800b35c: f7f9 f992 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE);
800b360: 79fb ldrb r3, [r7, #7]
800b362: 4a58 ldr r2, [pc, #352] ; (800b4c4 <DrawChannel_4+0x48d8>)
800b364: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b368: 3323 adds r3, #35 ; 0x23
800b36a: b298 uxth r0, r3
800b36c: 79fb ldrb r3, [r7, #7]
800b36e: 4a56 ldr r2, [pc, #344] ; (800b4c8 <DrawChannel_4+0x48dc>)
800b370: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b374: 4a55 ldr r2, [pc, #340] ; (800b4cc <DrawChannel_4+0x48e0>)
800b376: 697b ldr r3, [r7, #20]
800b378: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b37c: 2303 movs r3, #3
800b37e: f7f9 f981 bl 8004684 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800b382: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b386: 4853 ldr r0, [pc, #332] ; (800b4d4 <DrawChannel_4+0x48e8>)
800b388: f7f9 f8b6 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
800b38c: 79fb ldrb r3, [r7, #7]
800b38e: 4a52 ldr r2, [pc, #328] ; (800b4d8 <DrawChannel_4+0x48ec>)
800b390: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800b394: 79fb ldrb r3, [r7, #7]
800b396: 4a51 ldr r2, [pc, #324] ; (800b4dc <DrawChannel_4+0x48f0>)
800b398: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b39c: 4b50 ldr r3, [pc, #320] ; (800b4e0 <DrawChannel_4+0x48f4>)
800b39e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800b3a2: b29b uxth r3, r3
800b3a4: 461d mov r5, r3
800b3a6: 79fb ldrb r3, [r7, #7]
800b3a8: 4a4d ldr r2, [pc, #308] ; (800b4e0 <DrawChannel_4+0x48f4>)
800b3aa: 015b lsls r3, r3, #5
800b3ac: 4413 add r3, r2
800b3ae: 881b ldrh r3, [r3, #0]
800b3b0: b29b uxth r3, r3
800b3b2: 461c mov r4, r3
800b3b4: 4a4b ldr r2, [pc, #300] ; (800b4e4 <DrawChannel_4+0x48f8>)
800b3b6: 006b lsls r3, r5, #1
800b3b8: 4423 add r3, r4
800b3ba: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b3be: 2303 movs r3, #3
800b3c0: f7f9 f960 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800b3c4: 79fb ldrb r3, [r7, #7]
800b3c6: 4a48 ldr r2, [pc, #288] ; (800b4e8 <DrawChannel_4+0x48fc>)
800b3c8: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800b3cc: 79fb ldrb r3, [r7, #7]
800b3ce: 4a47 ldr r2, [pc, #284] ; (800b4ec <DrawChannel_4+0x4900>)
800b3d0: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800b3d4: 4b42 ldr r3, [pc, #264] ; (800b4e0 <DrawChannel_4+0x48f4>)
800b3d6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800b3da: b29b uxth r3, r3
800b3dc: 4619 mov r1, r3
800b3de: 79fb ldrb r3, [r7, #7]
800b3e0: 4a3f ldr r2, [pc, #252] ; (800b4e0 <DrawChannel_4+0x48f4>)
800b3e2: 015b lsls r3, r3, #5
800b3e4: 4413 add r3, r2
800b3e6: 3302 adds r3, #2
800b3e8: 881b ldrh r3, [r3, #0]
800b3ea: b29b uxth r3, r3
800b3ec: 461d mov r5, r3
800b3ee: 4a40 ldr r2, [pc, #256] ; (800b4f0 <DrawChannel_4+0x4904>)
800b3f0: 460b mov r3, r1
800b3f2: 009b lsls r3, r3, #2
800b3f4: 440b add r3, r1
800b3f6: 442b add r3, r5
800b3f8: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b3fc: 2303 movs r3, #3
800b3fe: 4621 mov r1, r4
800b400: f7f9 f940 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800b404: 79fb ldrb r3, [r7, #7]
800b406: 4a3b ldr r2, [pc, #236] ; (800b4f4 <DrawChannel_4+0x4908>)
800b408: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800b40c: 79fb ldrb r3, [r7, #7]
800b40e: 4a3a ldr r2, [pc, #232] ; (800b4f8 <DrawChannel_4+0x490c>)
800b410: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b414: 4b32 ldr r3, [pc, #200] ; (800b4e0 <DrawChannel_4+0x48f4>)
800b416: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800b41a: b29b uxth r3, r3
800b41c: 461d mov r5, r3
800b41e: 79fb ldrb r3, [r7, #7]
800b420: 4a2f ldr r2, [pc, #188] ; (800b4e0 <DrawChannel_4+0x48f4>)
800b422: 015b lsls r3, r3, #5
800b424: 4413 add r3, r2
800b426: 3304 adds r3, #4
800b428: 881b ldrh r3, [r3, #0]
800b42a: b29b uxth r3, r3
800b42c: 461c mov r4, r3
800b42e: 4a33 ldr r2, [pc, #204] ; (800b4fc <DrawChannel_4+0x4910>)
800b430: 00eb lsls r3, r5, #3
800b432: 4423 add r3, r4
800b434: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b438: 2303 movs r3, #3
800b43a: f7f9 f923 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
800b43e: 79fb ldrb r3, [r7, #7]
800b440: 4a20 ldr r2, [pc, #128] ; (800b4c4 <DrawChannel_4+0x48d8>)
800b442: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b446: 332d adds r3, #45 ; 0x2d
800b448: b298 uxth r0, r3
800b44a: 79fb ldrb r3, [r7, #7]
800b44c: 4a1e ldr r2, [pc, #120] ; (800b4c8 <DrawChannel_4+0x48dc>)
800b44e: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800b452: 79fb ldrb r3, [r7, #7]
800b454: 4a22 ldr r2, [pc, #136] ; (800b4e0 <DrawChannel_4+0x48f4>)
800b456: 015b lsls r3, r3, #5
800b458: 4413 add r3, r2
800b45a: 881b ldrh r3, [r3, #0]
800b45c: b29b uxth r3, r3
800b45e: 4619 mov r1, r3
800b460: 79fb ldrb r3, [r7, #7]
800b462: 4a1f ldr r2, [pc, #124] ; (800b4e0 <DrawChannel_4+0x48f4>)
800b464: 015b lsls r3, r3, #5
800b466: 4413 add r3, r2
800b468: 3312 adds r3, #18
800b46a: 881b ldrh r3, [r3, #0]
800b46c: b29b uxth r3, r3
800b46e: 461d mov r5, r3
800b470: 4a23 ldr r2, [pc, #140] ; (800b500 <DrawChannel_4+0x4914>)
800b472: 460b mov r3, r1
800b474: 005b lsls r3, r3, #1
800b476: 440b add r3, r1
800b478: 442b add r3, r5
800b47a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b47e: 2303 movs r3, #3
800b480: 4621 mov r1, r4
800b482: f7f9 f8ff bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800b486: 79fb ldrb r3, [r7, #7]
800b488: 4a1e ldr r2, [pc, #120] ; (800b504 <DrawChannel_4+0x4918>)
800b48a: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800b48e: 79fb ldrb r3, [r7, #7]
800b490: 4a1d ldr r2, [pc, #116] ; (800b508 <DrawChannel_4+0x491c>)
800b492: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800b496: 79fb ldrb r3, [r7, #7]
800b498: 4a11 ldr r2, [pc, #68] ; (800b4e0 <DrawChannel_4+0x48f4>)
800b49a: 015b lsls r3, r3, #5
800b49c: 4413 add r3, r2
800b49e: 3312 adds r3, #18
800b4a0: 881b ldrh r3, [r3, #0]
800b4a2: b29b uxth r3, r3
800b4a4: 461a mov r2, r3
800b4a6: 4919 ldr r1, [pc, #100] ; (800b50c <DrawChannel_4+0x4920>)
800b4a8: 4613 mov r3, r2
800b4aa: 009b lsls r3, r3, #2
800b4ac: 4413 add r3, r2
800b4ae: 009a lsls r2, r3, #2
800b4b0: 4413 add r3, r2
800b4b2: 6afa ldr r2, [r7, #44] ; 0x2c
800b4b4: 4413 add r3, r2
800b4b6: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800b4ba: 2303 movs r3, #3
800b4bc: 4621 mov r1, r4
800b4be: f7f9 f8e1 bl 8004684 <BSP_LCD_DisplayStringAt>
}
800b4c2: e0d2 b.n 800b66a <DrawChannel_4+0x4a7e>
800b4c4: 08015564 .word 0x08015564
800b4c8: 0801556c .word 0x0801556c
800b4cc: 200201ec .word 0x200201ec
800b4d0: 08012cb8 .word 0x08012cb8
800b4d4: ffd8aa57 .word 0xffd8aa57
800b4d8: 08015534 .word 0x08015534
800b4dc: 0801553c .word 0x0801553c
800b4e0: 2006b510 .word 0x2006b510
800b4e4: 20020030 .word 0x20020030
800b4e8: 08015544 .word 0x08015544
800b4ec: 0801554c .word 0x0801554c
800b4f0: 20020040 .word 0x20020040
800b4f4: 08015554 .word 0x08015554
800b4f8: 0801555c .word 0x0801555c
800b4fc: 20020068 .word 0x20020068
800b500: 200200a8 .word 0x200200a8
800b504: 08015574 .word 0x08015574
800b508: 0801557c .word 0x0801557c
800b50c: 200200c0 .word 0x200200c0
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800b510: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b514: 4857 ldr r0, [pc, #348] ; (800b674 <DrawChannel_4+0x4a88>)
800b516: f7f8 ffef bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
800b51a: 79fb ldrb r3, [r7, #7]
800b51c: 4a56 ldr r2, [pc, #344] ; (800b678 <DrawChannel_4+0x4a8c>)
800b51e: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800b522: 79fb ldrb r3, [r7, #7]
800b524: 4a55 ldr r2, [pc, #340] ; (800b67c <DrawChannel_4+0x4a90>)
800b526: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b52a: 4b55 ldr r3, [pc, #340] ; (800b680 <DrawChannel_4+0x4a94>)
800b52c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800b530: b29b uxth r3, r3
800b532: 461d mov r5, r3
800b534: 79fb ldrb r3, [r7, #7]
800b536: 4a52 ldr r2, [pc, #328] ; (800b680 <DrawChannel_4+0x4a94>)
800b538: 015b lsls r3, r3, #5
800b53a: 4413 add r3, r2
800b53c: 881b ldrh r3, [r3, #0]
800b53e: b29b uxth r3, r3
800b540: 461c mov r4, r3
800b542: 4a50 ldr r2, [pc, #320] ; (800b684 <DrawChannel_4+0x4a98>)
800b544: 006b lsls r3, r5, #1
800b546: 4423 add r3, r4
800b548: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b54c: 2303 movs r3, #3
800b54e: f7f9 f899 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800b552: 79fb ldrb r3, [r7, #7]
800b554: 4a4c ldr r2, [pc, #304] ; (800b688 <DrawChannel_4+0x4a9c>)
800b556: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800b55a: 79fb ldrb r3, [r7, #7]
800b55c: 4a4b ldr r2, [pc, #300] ; (800b68c <DrawChannel_4+0x4aa0>)
800b55e: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800b562: 4b47 ldr r3, [pc, #284] ; (800b680 <DrawChannel_4+0x4a94>)
800b564: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800b568: b29b uxth r3, r3
800b56a: 4619 mov r1, r3
800b56c: 79fb ldrb r3, [r7, #7]
800b56e: 4a44 ldr r2, [pc, #272] ; (800b680 <DrawChannel_4+0x4a94>)
800b570: 015b lsls r3, r3, #5
800b572: 4413 add r3, r2
800b574: 3302 adds r3, #2
800b576: 881b ldrh r3, [r3, #0]
800b578: b29b uxth r3, r3
800b57a: 461d mov r5, r3
800b57c: 4a44 ldr r2, [pc, #272] ; (800b690 <DrawChannel_4+0x4aa4>)
800b57e: 460b mov r3, r1
800b580: 009b lsls r3, r3, #2
800b582: 440b add r3, r1
800b584: 442b add r3, r5
800b586: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b58a: 2303 movs r3, #3
800b58c: 4621 mov r1, r4
800b58e: f7f9 f879 bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800b592: 79fb ldrb r3, [r7, #7]
800b594: 4a3f ldr r2, [pc, #252] ; (800b694 <DrawChannel_4+0x4aa8>)
800b596: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800b59a: 79fb ldrb r3, [r7, #7]
800b59c: 4a3e ldr r2, [pc, #248] ; (800b698 <DrawChannel_4+0x4aac>)
800b59e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b5a2: 4b37 ldr r3, [pc, #220] ; (800b680 <DrawChannel_4+0x4a94>)
800b5a4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800b5a8: b29b uxth r3, r3
800b5aa: 461d mov r5, r3
800b5ac: 79fb ldrb r3, [r7, #7]
800b5ae: 4a34 ldr r2, [pc, #208] ; (800b680 <DrawChannel_4+0x4a94>)
800b5b0: 015b lsls r3, r3, #5
800b5b2: 4413 add r3, r2
800b5b4: 3304 adds r3, #4
800b5b6: 881b ldrh r3, [r3, #0]
800b5b8: b29b uxth r3, r3
800b5ba: 461c mov r4, r3
800b5bc: 4a37 ldr r2, [pc, #220] ; (800b69c <DrawChannel_4+0x4ab0>)
800b5be: 00eb lsls r3, r5, #3
800b5c0: 4423 add r3, r4
800b5c2: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b5c6: 2303 movs r3, #3
800b5c8: f7f9 f85c bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens
800b5cc: 79fb ldrb r3, [r7, #7]
800b5ce: 4a34 ldr r2, [pc, #208] ; (800b6a0 <DrawChannel_4+0x4ab4>)
800b5d0: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800b5d4: 79fb ldrb r3, [r7, #7]
800b5d6: 4a33 ldr r2, [pc, #204] ; (800b6a4 <DrawChannel_4+0x4ab8>)
800b5d8: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800b5dc: f107 0208 add.w r2, r7, #8
800b5e0: 2303 movs r3, #3
800b5e2: f7f9 f84f bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE);
800b5e6: 79fb ldrb r3, [r7, #7]
800b5e8: 4a2d ldr r2, [pc, #180] ; (800b6a0 <DrawChannel_4+0x4ab4>)
800b5ea: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800b5ee: 332d adds r3, #45 ; 0x2d
800b5f0: b298 uxth r0, r3
800b5f2: 79fb ldrb r3, [r7, #7]
800b5f4: 4a2b ldr r2, [pc, #172] ; (800b6a4 <DrawChannel_4+0x4ab8>)
800b5f6: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800b5fa: 79fb ldrb r3, [r7, #7]
800b5fc: 4a20 ldr r2, [pc, #128] ; (800b680 <DrawChannel_4+0x4a94>)
800b5fe: 015b lsls r3, r3, #5
800b600: 4413 add r3, r2
800b602: 881b ldrh r3, [r3, #0]
800b604: b29b uxth r3, r3
800b606: 4619 mov r1, r3
800b608: 79fb ldrb r3, [r7, #7]
800b60a: 4a1d ldr r2, [pc, #116] ; (800b680 <DrawChannel_4+0x4a94>)
800b60c: 015b lsls r3, r3, #5
800b60e: 4413 add r3, r2
800b610: 3312 adds r3, #18
800b612: 881b ldrh r3, [r3, #0]
800b614: b29b uxth r3, r3
800b616: 461d mov r5, r3
800b618: 4a23 ldr r2, [pc, #140] ; (800b6a8 <DrawChannel_4+0x4abc>)
800b61a: 460b mov r3, r1
800b61c: 005b lsls r3, r3, #1
800b61e: 440b add r3, r1
800b620: 442b add r3, r5
800b622: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800b626: 2303 movs r3, #3
800b628: 4621 mov r1, r4
800b62a: f7f9 f82b bl 8004684 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800b62e: 79fb ldrb r3, [r7, #7]
800b630: 4a1e ldr r2, [pc, #120] ; (800b6ac <DrawChannel_4+0x4ac0>)
800b632: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800b636: 79fb ldrb r3, [r7, #7]
800b638: 4a1d ldr r2, [pc, #116] ; (800b6b0 <DrawChannel_4+0x4ac4>)
800b63a: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800b63e: 79fb ldrb r3, [r7, #7]
800b640: 4a0f ldr r2, [pc, #60] ; (800b680 <DrawChannel_4+0x4a94>)
800b642: 015b lsls r3, r3, #5
800b644: 4413 add r3, r2
800b646: 3312 adds r3, #18
800b648: 881b ldrh r3, [r3, #0]
800b64a: b29b uxth r3, r3
800b64c: 461a mov r2, r3
800b64e: 4919 ldr r1, [pc, #100] ; (800b6b4 <DrawChannel_4+0x4ac8>)
800b650: 4613 mov r3, r2
800b652: 009b lsls r3, r3, #2
800b654: 4413 add r3, r2
800b656: 009a lsls r2, r3, #2
800b658: 4413 add r3, r2
800b65a: 6afa ldr r2, [r7, #44] ; 0x2c
800b65c: 4413 add r3, r2
800b65e: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800b662: 2303 movs r3, #3
800b664: 4621 mov r1, r4
800b666: f7f9 f80d bl 8004684 <BSP_LCD_DisplayStringAt>
}
800b66a: bf00 nop
800b66c: 3738 adds r7, #56 ; 0x38
800b66e: 46bd mov sp, r7
800b670: bdb0 pop {r4, r5, r7, pc}
800b672: bf00 nop
800b674: ffd8aa57 .word 0xffd8aa57
800b678: 08015534 .word 0x08015534
800b67c: 0801553c .word 0x0801553c
800b680: 2006b510 .word 0x2006b510
800b684: 20020030 .word 0x20020030
800b688: 08015544 .word 0x08015544
800b68c: 0801554c .word 0x0801554c
800b690: 20020040 .word 0x20020040
800b694: 08015554 .word 0x08015554
800b698: 0801555c .word 0x0801555c
800b69c: 20020068 .word 0x20020068
800b6a0: 08015564 .word 0x08015564
800b6a4: 0801556c .word 0x0801556c
800b6a8: 200200a8 .word 0x200200a8
800b6ac: 08015574 .word 0x08015574
800b6b0: 0801557c .word 0x0801557c
800b6b4: 200200c0 .word 0x200200c0
0800b6b8 <DrawButtons>:
void DrawButtons(void)
{
800b6b8: b580 push {r7, lr}
800b6ba: af00 add r7, sp, #0
if(menupos == Set100)
800b6bc: 4ba1 ldr r3, [pc, #644] ; (800b944 <DrawButtons+0x28c>)
800b6be: 781b ldrb r3, [r3, #0]
800b6c0: b2db uxtb r3, r3
800b6c2: 2b00 cmp r3, #0
800b6c4: d106 bne.n 800b6d4 <DrawButtons+0x1c>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800b6c6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b6ca: f04f 30ff mov.w r0, #4294967295
800b6ce: f7f8 ff13 bl 80044f8 <LCD_SetColors>
800b6d2: e004 b.n 800b6de <DrawButtons+0x26>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800b6d4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b6d8: 489b ldr r0, [pc, #620] ; (800b948 <DrawButtons+0x290>)
800b6da: f7f8 ff0d bl 80044f8 <LCD_SetColors>
BSP_LCD_FillRect(120, 40, 80, 20); //+100
800b6de: 2314 movs r3, #20
800b6e0: 2250 movs r2, #80 ; 0x50
800b6e2: 2128 movs r1, #40 ; 0x28
800b6e4: 2078 movs r0, #120 ; 0x78
800b6e6: f7f9 fac9 bl 8004c7c <BSP_LCD_FillRect>
if(menupos == Set_100)
800b6ea: 4b96 ldr r3, [pc, #600] ; (800b944 <DrawButtons+0x28c>)
800b6ec: 781b ldrb r3, [r3, #0]
800b6ee: b2db uxtb r3, r3
800b6f0: 2b01 cmp r3, #1
800b6f2: d106 bne.n 800b702 <DrawButtons+0x4a>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800b6f4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b6f8: f04f 30ff mov.w r0, #4294967295
800b6fc: f7f8 fefc bl 80044f8 <LCD_SetColors>
800b700: e004 b.n 800b70c <DrawButtons+0x54>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800b702: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b706: 4890 ldr r0, [pc, #576] ; (800b948 <DrawButtons+0x290>)
800b708: f7f8 fef6 bl 80044f8 <LCD_SetColors>
BSP_LCD_FillRect(120, 65, 80, 20); //-100
800b70c: 2314 movs r3, #20
800b70e: 2250 movs r2, #80 ; 0x50
800b710: 2141 movs r1, #65 ; 0x41
800b712: 2078 movs r0, #120 ; 0x78
800b714: f7f9 fab2 bl 8004c7c <BSP_LCD_FillRect>
if(menupos == Set10)
800b718: 4b8a ldr r3, [pc, #552] ; (800b944 <DrawButtons+0x28c>)
800b71a: 781b ldrb r3, [r3, #0]
800b71c: b2db uxtb r3, r3
800b71e: 2b02 cmp r3, #2
800b720: d106 bne.n 800b730 <DrawButtons+0x78>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800b722: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b726: f04f 30ff mov.w r0, #4294967295
800b72a: f7f8 fee5 bl 80044f8 <LCD_SetColors>
800b72e: e004 b.n 800b73a <DrawButtons+0x82>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800b730: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b734: 4884 ldr r0, [pc, #528] ; (800b948 <DrawButtons+0x290>)
800b736: f7f8 fedf bl 80044f8 <LCD_SetColors>
BSP_LCD_FillRect(120, 90, 80, 20); //+10
800b73a: 2314 movs r3, #20
800b73c: 2250 movs r2, #80 ; 0x50
800b73e: 215a movs r1, #90 ; 0x5a
800b740: 2078 movs r0, #120 ; 0x78
800b742: f7f9 fa9b bl 8004c7c <BSP_LCD_FillRect>
if(menupos == Set_10)
800b746: 4b7f ldr r3, [pc, #508] ; (800b944 <DrawButtons+0x28c>)
800b748: 781b ldrb r3, [r3, #0]
800b74a: b2db uxtb r3, r3
800b74c: 2b03 cmp r3, #3
800b74e: d106 bne.n 800b75e <DrawButtons+0xa6>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800b750: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b754: f04f 30ff mov.w r0, #4294967295
800b758: f7f8 fece bl 80044f8 <LCD_SetColors>
800b75c: e004 b.n 800b768 <DrawButtons+0xb0>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800b75e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b762: 4879 ldr r0, [pc, #484] ; (800b948 <DrawButtons+0x290>)
800b764: f7f8 fec8 bl 80044f8 <LCD_SetColors>
BSP_LCD_FillRect(120, 115, 80, 20); //-10
800b768: 2314 movs r3, #20
800b76a: 2250 movs r2, #80 ; 0x50
800b76c: 2173 movs r1, #115 ; 0x73
800b76e: 2078 movs r0, #120 ; 0x78
800b770: f7f9 fa84 bl 8004c7c <BSP_LCD_FillRect>
if(menupos == Set1)
800b774: 4b73 ldr r3, [pc, #460] ; (800b944 <DrawButtons+0x28c>)
800b776: 781b ldrb r3, [r3, #0]
800b778: b2db uxtb r3, r3
800b77a: 2b04 cmp r3, #4
800b77c: d106 bne.n 800b78c <DrawButtons+0xd4>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800b77e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b782: f04f 30ff mov.w r0, #4294967295
800b786: f7f8 feb7 bl 80044f8 <LCD_SetColors>
800b78a: e004 b.n 800b796 <DrawButtons+0xde>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800b78c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b790: 486d ldr r0, [pc, #436] ; (800b948 <DrawButtons+0x290>)
800b792: f7f8 feb1 bl 80044f8 <LCD_SetColors>
BSP_LCD_FillRect(120, 140, 80, 20); //+1
800b796: 2314 movs r3, #20
800b798: 2250 movs r2, #80 ; 0x50
800b79a: 218c movs r1, #140 ; 0x8c
800b79c: 2078 movs r0, #120 ; 0x78
800b79e: f7f9 fa6d bl 8004c7c <BSP_LCD_FillRect>
if(menupos == Set_1)
800b7a2: 4b68 ldr r3, [pc, #416] ; (800b944 <DrawButtons+0x28c>)
800b7a4: 781b ldrb r3, [r3, #0]
800b7a6: b2db uxtb r3, r3
800b7a8: 2b05 cmp r3, #5
800b7aa: d106 bne.n 800b7ba <DrawButtons+0x102>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800b7ac: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b7b0: f04f 30ff mov.w r0, #4294967295
800b7b4: f7f8 fea0 bl 80044f8 <LCD_SetColors>
800b7b8: e004 b.n 800b7c4 <DrawButtons+0x10c>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800b7ba: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b7be: 4862 ldr r0, [pc, #392] ; (800b948 <DrawButtons+0x290>)
800b7c0: f7f8 fe9a bl 80044f8 <LCD_SetColors>
BSP_LCD_FillRect(120, 165, 80, 20); //-1
800b7c4: 2314 movs r3, #20
800b7c6: 2250 movs r2, #80 ; 0x50
800b7c8: 21a5 movs r1, #165 ; 0xa5
800b7ca: 2078 movs r0, #120 ; 0x78
800b7cc: f7f9 fa56 bl 8004c7c <BSP_LCD_FillRect>
if(menupos == Next)
800b7d0: 4b5c ldr r3, [pc, #368] ; (800b944 <DrawButtons+0x28c>)
800b7d2: 781b ldrb r3, [r3, #0]
800b7d4: b2db uxtb r3, r3
800b7d6: 2b06 cmp r3, #6
800b7d8: d106 bne.n 800b7e8 <DrawButtons+0x130>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800b7da: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b7de: f04f 30ff mov.w r0, #4294967295
800b7e2: f7f8 fe89 bl 80044f8 <LCD_SetColors>
800b7e6: e004 b.n 800b7f2 <DrawButtons+0x13a>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800b7e8: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b7ec: 4856 ldr r0, [pc, #344] ; (800b948 <DrawButtons+0x290>)
800b7ee: f7f8 fe83 bl 80044f8 <LCD_SetColors>
BSP_LCD_FillRect(120, 190, 80, 20); //Next
800b7f2: 2314 movs r3, #20
800b7f4: 2250 movs r2, #80 ; 0x50
800b7f6: 21be movs r1, #190 ; 0xbe
800b7f8: 2078 movs r0, #120 ; 0x78
800b7fa: f7f9 fa3f bl 8004c7c <BSP_LCD_FillRect>
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
if(menupos == Set100)
800b7fe: 4b51 ldr r3, [pc, #324] ; (800b944 <DrawButtons+0x28c>)
800b800: 781b ldrb r3, [r3, #0]
800b802: b2db uxtb r3, r3
800b804: 2b00 cmp r3, #0
800b806: d106 bne.n 800b816 <DrawButtons+0x15e>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800b808: f04f 31ff mov.w r1, #4294967295
800b80c: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800b810: f7f8 fe72 bl 80044f8 <LCD_SetColors>
800b814: e004 b.n 800b820 <DrawButtons+0x168>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800b816: 494c ldr r1, [pc, #304] ; (800b948 <DrawButtons+0x290>)
800b818: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800b81c: f7f8 fe6c bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 40+5, "+100", CENTER_MODE);
800b820: 2301 movs r3, #1
800b822: 4a4a ldr r2, [pc, #296] ; (800b94c <DrawButtons+0x294>)
800b824: 212d movs r1, #45 ; 0x2d
800b826: 20a0 movs r0, #160 ; 0xa0
800b828: f7f8 ff2c bl 8004684 <BSP_LCD_DisplayStringAt>
if(menupos == Set_100)
800b82c: 4b45 ldr r3, [pc, #276] ; (800b944 <DrawButtons+0x28c>)
800b82e: 781b ldrb r3, [r3, #0]
800b830: b2db uxtb r3, r3
800b832: 2b01 cmp r3, #1
800b834: d106 bne.n 800b844 <DrawButtons+0x18c>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800b836: f04f 31ff mov.w r1, #4294967295
800b83a: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800b83e: f7f8 fe5b bl 80044f8 <LCD_SetColors>
800b842: e004 b.n 800b84e <DrawButtons+0x196>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800b844: 4940 ldr r1, [pc, #256] ; (800b948 <DrawButtons+0x290>)
800b846: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800b84a: f7f8 fe55 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 65+5, "-100", CENTER_MODE);
800b84e: 2301 movs r3, #1
800b850: 4a3f ldr r2, [pc, #252] ; (800b950 <DrawButtons+0x298>)
800b852: 2146 movs r1, #70 ; 0x46
800b854: 20a0 movs r0, #160 ; 0xa0
800b856: f7f8 ff15 bl 8004684 <BSP_LCD_DisplayStringAt>
if(menupos == Set10)
800b85a: 4b3a ldr r3, [pc, #232] ; (800b944 <DrawButtons+0x28c>)
800b85c: 781b ldrb r3, [r3, #0]
800b85e: b2db uxtb r3, r3
800b860: 2b02 cmp r3, #2
800b862: d106 bne.n 800b872 <DrawButtons+0x1ba>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800b864: f04f 31ff mov.w r1, #4294967295
800b868: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800b86c: f7f8 fe44 bl 80044f8 <LCD_SetColors>
800b870: e004 b.n 800b87c <DrawButtons+0x1c4>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800b872: 4935 ldr r1, [pc, #212] ; (800b948 <DrawButtons+0x290>)
800b874: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800b878: f7f8 fe3e bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 90+5, "+10", CENTER_MODE);
800b87c: 2301 movs r3, #1
800b87e: 4a35 ldr r2, [pc, #212] ; (800b954 <DrawButtons+0x29c>)
800b880: 215f movs r1, #95 ; 0x5f
800b882: 20a0 movs r0, #160 ; 0xa0
800b884: f7f8 fefe bl 8004684 <BSP_LCD_DisplayStringAt>
if(menupos == Set_10)
800b888: 4b2e ldr r3, [pc, #184] ; (800b944 <DrawButtons+0x28c>)
800b88a: 781b ldrb r3, [r3, #0]
800b88c: b2db uxtb r3, r3
800b88e: 2b03 cmp r3, #3
800b890: d106 bne.n 800b8a0 <DrawButtons+0x1e8>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800b892: f04f 31ff mov.w r1, #4294967295
800b896: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800b89a: f7f8 fe2d bl 80044f8 <LCD_SetColors>
800b89e: e004 b.n 800b8aa <DrawButtons+0x1f2>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800b8a0: 4929 ldr r1, [pc, #164] ; (800b948 <DrawButtons+0x290>)
800b8a2: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800b8a6: f7f8 fe27 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 115+5, "-10", CENTER_MODE);
800b8aa: 2301 movs r3, #1
800b8ac: 4a2a ldr r2, [pc, #168] ; (800b958 <DrawButtons+0x2a0>)
800b8ae: 2178 movs r1, #120 ; 0x78
800b8b0: 20a0 movs r0, #160 ; 0xa0
800b8b2: f7f8 fee7 bl 8004684 <BSP_LCD_DisplayStringAt>
if(menupos == Set1)
800b8b6: 4b23 ldr r3, [pc, #140] ; (800b944 <DrawButtons+0x28c>)
800b8b8: 781b ldrb r3, [r3, #0]
800b8ba: b2db uxtb r3, r3
800b8bc: 2b04 cmp r3, #4
800b8be: d106 bne.n 800b8ce <DrawButtons+0x216>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800b8c0: f04f 31ff mov.w r1, #4294967295
800b8c4: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800b8c8: f7f8 fe16 bl 80044f8 <LCD_SetColors>
800b8cc: e004 b.n 800b8d8 <DrawButtons+0x220>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800b8ce: 491e ldr r1, [pc, #120] ; (800b948 <DrawButtons+0x290>)
800b8d0: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800b8d4: f7f8 fe10 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 140+5, "+1", CENTER_MODE);
800b8d8: 2301 movs r3, #1
800b8da: 4a20 ldr r2, [pc, #128] ; (800b95c <DrawButtons+0x2a4>)
800b8dc: 2191 movs r1, #145 ; 0x91
800b8de: 20a0 movs r0, #160 ; 0xa0
800b8e0: f7f8 fed0 bl 8004684 <BSP_LCD_DisplayStringAt>
if(menupos == Set_1)
800b8e4: 4b17 ldr r3, [pc, #92] ; (800b944 <DrawButtons+0x28c>)
800b8e6: 781b ldrb r3, [r3, #0]
800b8e8: b2db uxtb r3, r3
800b8ea: 2b05 cmp r3, #5
800b8ec: d106 bne.n 800b8fc <DrawButtons+0x244>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800b8ee: f04f 31ff mov.w r1, #4294967295
800b8f2: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800b8f6: f7f8 fdff bl 80044f8 <LCD_SetColors>
800b8fa: e004 b.n 800b906 <DrawButtons+0x24e>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800b8fc: 4912 ldr r1, [pc, #72] ; (800b948 <DrawButtons+0x290>)
800b8fe: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800b902: f7f8 fdf9 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 165+5, "-1", CENTER_MODE);
800b906: 2301 movs r3, #1
800b908: 4a15 ldr r2, [pc, #84] ; (800b960 <DrawButtons+0x2a8>)
800b90a: 21aa movs r1, #170 ; 0xaa
800b90c: 20a0 movs r0, #160 ; 0xa0
800b90e: f7f8 feb9 bl 8004684 <BSP_LCD_DisplayStringAt>
if(menupos == Next)
800b912: 4b0c ldr r3, [pc, #48] ; (800b944 <DrawButtons+0x28c>)
800b914: 781b ldrb r3, [r3, #0]
800b916: b2db uxtb r3, r3
800b918: 2b06 cmp r3, #6
800b91a: d106 bne.n 800b92a <DrawButtons+0x272>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800b91c: f04f 31ff mov.w r1, #4294967295
800b920: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800b924: f7f8 fde8 bl 80044f8 <LCD_SetColors>
800b928: e004 b.n 800b934 <DrawButtons+0x27c>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800b92a: 4907 ldr r1, [pc, #28] ; (800b948 <DrawButtons+0x290>)
800b92c: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800b930: f7f8 fde2 bl 80044f8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 190+5, "<22><><C4><E0><EB>", CENTER_MODE);
800b934: 2301 movs r3, #1
800b936: 4a0b ldr r2, [pc, #44] ; (800b964 <DrawButtons+0x2ac>)
800b938: 21c3 movs r1, #195 ; 0xc3
800b93a: 20a0 movs r0, #160 ; 0xa0
800b93c: f7f8 fea2 bl 8004684 <BSP_LCD_DisplayStringAt>
}
800b940: bf00 nop
800b942: bd80 pop {r7, pc}
800b944: 20020010 .word 0x20020010
800b948: ff808080 .word 0xff808080
800b94c: 08012cbc .word 0x08012cbc
800b950: 08012cc4 .word 0x08012cc4
800b954: 08012ccc .word 0x08012ccc
800b958: 08012cd0 .word 0x08012cd0
800b95c: 08012cd4 .word 0x08012cd4
800b960: 08012cd8 .word 0x08012cd8
800b964: 08012cdc .word 0x08012cdc
0800b968 <FloatToASCII>:
char * FloatToASCII(float32_t Val, int32_t RoundTo)
{
800b968: b580 push {r7, lr}
800b96a: b098 sub sp, #96 ; 0x60
800b96c: af00 add r7, sp, #0
800b96e: ed87 0a01 vstr s0, [r7, #4]
800b972: 6038 str r0, [r7, #0]
uint8_t idx = 0;
800b974: 2300 movs r3, #0
800b976: f887 305f strb.w r3, [r7, #95] ; 0x5f
int32_t i;
float32_t value, F, I;
uint32_t rnd = 0;
800b97a: 2300 movs r3, #0
800b97c: 653b str r3, [r7, #80] ; 0x50
uint32_t Tmp32 = 0;
800b97e: 2300 movs r3, #0
800b980: 63fb str r3, [r7, #60] ; 0x3c
uint32_t Int32 = 0;
800b982: 2300 movs r3, #0
800b984: 64fb str r3, [r7, #76] ; 0x4c
uint32_t Frac32 = 0;
800b986: 2300 movs r3, #0
800b988: 64bb str r3, [r7, #72] ; 0x48
uint32_t _I32 = 0;
800b98a: 2300 movs r3, #0
800b98c: 63bb str r3, [r7, #56] ; 0x38
uint32_t _F32 = 0;
800b98e: 2300 movs r3, #0
800b990: 637b str r3, [r7, #52] ; 0x34
uint32_t d = 0, dd = 0;
800b992: 2300 movs r3, #0
800b994: 647b str r3, [r7, #68] ; 0x44
800b996: 2300 movs r3, #0
800b998: 643b str r3, [r7, #64] ; 0x40
char tmparray[32];
volatile bool minus = false;
800b99a: 2300 movs r3, #0
800b99c: 72fb strb r3, [r7, #11]
memset(tmparray, 0, 32);
800b99e: f107 030c add.w r3, r7, #12
800b9a2: 2220 movs r2, #32
800b9a4: 2100 movs r1, #0
800b9a6: 4618 mov r0, r3
800b9a8: f006 fcb5 bl 8012316 <memset>
memset(pString, 0, 16);
800b9ac: 2210 movs r2, #16
800b9ae: 2100 movs r1, #0
800b9b0: 48b7 ldr r0, [pc, #732] ; (800bc90 <FloatToASCII+0x328>)
800b9b2: f006 fcb0 bl 8012316 <memset>
value = Val;
800b9b6: 687b ldr r3, [r7, #4]
800b9b8: 633b str r3, [r7, #48] ; 0x30
if(value < 0)
800b9ba: edd7 7a0c vldr s15, [r7, #48] ; 0x30
800b9be: eef5 7ac0 vcmpe.f32 s15, #0.0
800b9c2: eef1 fa10 vmrs APSR_nzcv, fpscr
800b9c6: d501 bpl.n 800b9cc <FloatToASCII+0x64>
minus = true;
800b9c8: 2301 movs r3, #1
800b9ca: 72fb strb r3, [r7, #11]
if(Val > 99999.0)
800b9cc: edd7 7a01 vldr s15, [r7, #4]
800b9d0: ed9f 7ab0 vldr s14, [pc, #704] ; 800bc94 <FloatToASCII+0x32c>
800b9d4: eef4 7ac7 vcmpe.f32 s15, s14
800b9d8: eef1 fa10 vmrs APSR_nzcv, fpscr
800b9dc: dd30 ble.n 800ba40 <FloatToASCII+0xd8>
{
if(Val < 0)
800b9de: edd7 7a01 vldr s15, [r7, #4]
800b9e2: eef5 7ac0 vcmpe.f32 s15, #0.0
800b9e6: eef1 fa10 vmrs APSR_nzcv, fpscr
800b9ea: d515 bpl.n 800ba18 <FloatToASCII+0xb0>
{
pString[0] = '1';
800b9ec: 4ba8 ldr r3, [pc, #672] ; (800bc90 <FloatToASCII+0x328>)
800b9ee: 2231 movs r2, #49 ; 0x31
800b9f0: 701a strb r2, [r3, #0]
pString[1] = '.';
800b9f2: 4ba7 ldr r3, [pc, #668] ; (800bc90 <FloatToASCII+0x328>)
800b9f4: 222e movs r2, #46 ; 0x2e
800b9f6: 705a strb r2, [r3, #1]
pString[2] = '0';
800b9f8: 4ba5 ldr r3, [pc, #660] ; (800bc90 <FloatToASCII+0x328>)
800b9fa: 2230 movs r2, #48 ; 0x30
800b9fc: 709a strb r2, [r3, #2]
pString[3] = '0';
800b9fe: 4ba4 ldr r3, [pc, #656] ; (800bc90 <FloatToASCII+0x328>)
800ba00: 2230 movs r2, #48 ; 0x30
800ba02: 70da strb r2, [r3, #3]
pString[4] = '0';
800ba04: 4ba2 ldr r3, [pc, #648] ; (800bc90 <FloatToASCII+0x328>)
800ba06: 2230 movs r2, #48 ; 0x30
800ba08: 711a strb r2, [r3, #4]
pString[5] = '0';
800ba0a: 4ba1 ldr r3, [pc, #644] ; (800bc90 <FloatToASCII+0x328>)
800ba0c: 2230 movs r2, #48 ; 0x30
800ba0e: 715a strb r2, [r3, #5]
pString[6] = '\0';
800ba10: 4b9f ldr r3, [pc, #636] ; (800bc90 <FloatToASCII+0x328>)
800ba12: 2200 movs r2, #0
800ba14: 719a strb r2, [r3, #6]
800ba16: e011 b.n 800ba3c <FloatToASCII+0xd4>
}
else
{
pString[0] = '9';
800ba18: 4b9d ldr r3, [pc, #628] ; (800bc90 <FloatToASCII+0x328>)
800ba1a: 2239 movs r2, #57 ; 0x39
800ba1c: 701a strb r2, [r3, #0]
pString[1] = '9';
800ba1e: 4b9c ldr r3, [pc, #624] ; (800bc90 <FloatToASCII+0x328>)
800ba20: 2239 movs r2, #57 ; 0x39
800ba22: 705a strb r2, [r3, #1]
pString[2] = '9';
800ba24: 4b9a ldr r3, [pc, #616] ; (800bc90 <FloatToASCII+0x328>)
800ba26: 2239 movs r2, #57 ; 0x39
800ba28: 709a strb r2, [r3, #2]
pString[3] = '9';
800ba2a: 4b99 ldr r3, [pc, #612] ; (800bc90 <FloatToASCII+0x328>)
800ba2c: 2239 movs r2, #57 ; 0x39
800ba2e: 70da strb r2, [r3, #3]
pString[4] = '9';
800ba30: 4b97 ldr r3, [pc, #604] ; (800bc90 <FloatToASCII+0x328>)
800ba32: 2239 movs r2, #57 ; 0x39
800ba34: 711a strb r2, [r3, #4]
pString[5] = '\0';
800ba36: 4b96 ldr r3, [pc, #600] ; (800bc90 <FloatToASCII+0x328>)
800ba38: 2200 movs r2, #0
800ba3a: 715a strb r2, [r3, #5]
}
return pString;
800ba3c: 4b94 ldr r3, [pc, #592] ; (800bc90 <FloatToASCII+0x328>)
800ba3e: e168 b.n 800bd12 <FloatToASCII+0x3aa>
}
value = ABS(Val);
800ba40: edd7 7a01 vldr s15, [r7, #4]
800ba44: eef5 7ac0 vcmpe.f32 s15, #0.0
800ba48: eef1 fa10 vmrs APSR_nzcv, fpscr
800ba4c: dd02 ble.n 800ba54 <FloatToASCII+0xec>
800ba4e: edd7 7a01 vldr s15, [r7, #4]
800ba52: e003 b.n 800ba5c <FloatToASCII+0xf4>
800ba54: edd7 7a01 vldr s15, [r7, #4]
800ba58: eef1 7a67 vneg.f32 s15, s15
800ba5c: edc7 7a0c vstr s15, [r7, #48] ; 0x30
rnd = ABS(RoundTo);
800ba60: 683b ldr r3, [r7, #0]
800ba62: 2b00 cmp r3, #0
800ba64: bfb8 it lt
800ba66: 425b neglt r3, r3
800ba68: 653b str r3, [r7, #80] ; 0x50
if(RoundTo < 0)
800ba6a: 683b ldr r3, [r7, #0]
800ba6c: 2b00 cmp r3, #0
800ba6e: da47 bge.n 800bb00 <FloatToASCII+0x198>
{
F = modff(value, &I);
800ba70: f107 032c add.w r3, r7, #44 ; 0x2c
800ba74: 4618 mov r0, r3
800ba76: ed97 0a0c vldr s0, [r7, #48] ; 0x30
800ba7a: f006 fbcf bl 801221c <modff>
800ba7e: ed87 0a15 vstr s0, [r7, #84] ; 0x54
while(rnd)
800ba82: e00d b.n 800baa0 <FloatToASCII+0x138>
{
F *= 10.0f;
800ba84: edd7 7a15 vldr s15, [r7, #84] ; 0x54
800ba88: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800ba8c: ee67 7a87 vmul.f32 s15, s15, s14
800ba90: edc7 7a15 vstr s15, [r7, #84] ; 0x54
rnd--;
800ba94: 6d3b ldr r3, [r7, #80] ; 0x50
800ba96: 3b01 subs r3, #1
800ba98: 653b str r3, [r7, #80] ; 0x50
d++;
800ba9a: 6c7b ldr r3, [r7, #68] ; 0x44
800ba9c: 3301 adds r3, #1
800ba9e: 647b str r3, [r7, #68] ; 0x44
while(rnd)
800baa0: 6d3b ldr r3, [r7, #80] ; 0x50
800baa2: 2b00 cmp r3, #0
800baa4: d1ee bne.n 800ba84 <FloatToASCII+0x11c>
}
F = roundf(F);
800baa6: ed97 0a15 vldr s0, [r7, #84] ; 0x54
800baaa: f006 fbdf bl 801226c <roundf>
800baae: ed87 0a15 vstr s0, [r7, #84] ; 0x54
dd = 1;
800bab2: 2301 movs r3, #1
800bab4: 643b str r3, [r7, #64] ; 0x40
for(i = 0; i < d; i++)
800bab6: 2300 movs r3, #0
800bab8: 65bb str r3, [r7, #88] ; 0x58
800baba: e008 b.n 800bace <FloatToASCII+0x166>
dd *= 10;
800babc: 6c3a ldr r2, [r7, #64] ; 0x40
800babe: 4613 mov r3, r2
800bac0: 009b lsls r3, r3, #2
800bac2: 4413 add r3, r2
800bac4: 005b lsls r3, r3, #1
800bac6: 643b str r3, [r7, #64] ; 0x40
for(i = 0; i < d; i++)
800bac8: 6dbb ldr r3, [r7, #88] ; 0x58
800baca: 3301 adds r3, #1
800bacc: 65bb str r3, [r7, #88] ; 0x58
800bace: 6dba ldr r2, [r7, #88] ; 0x58
800bad0: 6c7b ldr r3, [r7, #68] ; 0x44
800bad2: 429a cmp r2, r3
800bad4: d3f2 bcc.n 800babc <FloatToASCII+0x154>
if((uint32_t) F == dd)
800bad6: edd7 7a15 vldr s15, [r7, #84] ; 0x54
800bada: eefc 7ae7 vcvt.u32.f32 s15, s15
800bade: ee17 2a90 vmov r2, s15
800bae2: 6c3b ldr r3, [r7, #64] ; 0x40
800bae4: 429a cmp r2, r3
800bae6: d116 bne.n 800bb16 <FloatToASCII+0x1ae>
{
F = 0;
800bae8: f04f 0300 mov.w r3, #0
800baec: 657b str r3, [r7, #84] ; 0x54
I += 1;
800baee: edd7 7a0b vldr s15, [r7, #44] ; 0x2c
800baf2: eeb7 7a00 vmov.f32 s14, #112 ; 0x3f800000 1.0
800baf6: ee77 7a87 vadd.f32 s15, s15, s14
800bafa: edc7 7a0b vstr s15, [r7, #44] ; 0x2c
800bafe: e00a b.n 800bb16 <FloatToASCII+0x1ae>
}
}
else
{
I = roundf(value);
800bb00: ed97 0a0c vldr s0, [r7, #48] ; 0x30
800bb04: f006 fbb2 bl 801226c <roundf>
800bb08: eef0 7a40 vmov.f32 s15, s0
800bb0c: edc7 7a0b vstr s15, [r7, #44] ; 0x2c
F = 0.0f;
800bb10: f04f 0300 mov.w r3, #0
800bb14: 657b str r3, [r7, #84] ; 0x54
}
Int32 = (uint32_t) I;
800bb16: edd7 7a0b vldr s15, [r7, #44] ; 0x2c
800bb1a: eefc 7ae7 vcvt.u32.f32 s15, s15
800bb1e: ee17 3a90 vmov r3, s15
800bb22: 64fb str r3, [r7, #76] ; 0x4c
Frac32 = (uint32_t) F;
800bb24: edd7 7a15 vldr s15, [r7, #84] ; 0x54
800bb28: eefc 7ae7 vcvt.u32.f32 s15, s15
800bb2c: ee17 3a90 vmov r3, s15
800bb30: 64bb str r3, [r7, #72] ; 0x48
_I32 = Int32;
800bb32: 6cfb ldr r3, [r7, #76] ; 0x4c
800bb34: 63bb str r3, [r7, #56] ; 0x38
_F32 = Frac32;
800bb36: 6cbb ldr r3, [r7, #72] ; 0x48
800bb38: 637b str r3, [r7, #52] ; 0x34
idx = 0;
800bb3a: 2300 movs r3, #0
800bb3c: f887 305f strb.w r3, [r7, #95] ; 0x5f
tmparray[idx++] = '\0';
800bb40: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800bb44: 1c5a adds r2, r3, #1
800bb46: f887 205f strb.w r2, [r7, #95] ; 0x5f
800bb4a: f107 0260 add.w r2, r7, #96 ; 0x60
800bb4e: 4413 add r3, r2
800bb50: 2200 movs r2, #0
800bb52: f803 2c54 strb.w r2, [r3, #-84]
if((Int32 == 0) && (Frac32 == 0))
800bb56: 6cfb ldr r3, [r7, #76] ; 0x4c
800bb58: 2b00 cmp r3, #0
800bb5a: d135 bne.n 800bbc8 <FloatToASCII+0x260>
800bb5c: 6cbb ldr r3, [r7, #72] ; 0x48
800bb5e: 2b00 cmp r3, #0
800bb60: d132 bne.n 800bbc8 <FloatToASCII+0x260>
{
if(RoundTo < 0)
800bb62: 683b ldr r3, [r7, #0]
800bb64: 2b00 cmp r3, #0
800bb66: da23 bge.n 800bbb0 <FloatToASCII+0x248>
{
for(i = 0; i < ABS(RoundTo); i++)
800bb68: 2300 movs r3, #0
800bb6a: 65bb str r3, [r7, #88] ; 0x58
800bb6c: e00d b.n 800bb8a <FloatToASCII+0x222>
tmparray[idx++] = '0';
800bb6e: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800bb72: 1c5a adds r2, r3, #1
800bb74: f887 205f strb.w r2, [r7, #95] ; 0x5f
800bb78: f107 0260 add.w r2, r7, #96 ; 0x60
800bb7c: 4413 add r3, r2
800bb7e: 2230 movs r2, #48 ; 0x30
800bb80: f803 2c54 strb.w r2, [r3, #-84]
for(i = 0; i < ABS(RoundTo); i++)
800bb84: 6dbb ldr r3, [r7, #88] ; 0x58
800bb86: 3301 adds r3, #1
800bb88: 65bb str r3, [r7, #88] ; 0x58
800bb8a: 683b ldr r3, [r7, #0]
800bb8c: ea83 72e3 eor.w r2, r3, r3, asr #31
800bb90: eba2 72e3 sub.w r2, r2, r3, asr #31
800bb94: 6dbb ldr r3, [r7, #88] ; 0x58
800bb96: 429a cmp r2, r3
800bb98: dce9 bgt.n 800bb6e <FloatToASCII+0x206>
tmparray[idx++] = '.';
800bb9a: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800bb9e: 1c5a adds r2, r3, #1
800bba0: f887 205f strb.w r2, [r7, #95] ; 0x5f
800bba4: f107 0260 add.w r2, r7, #96 ; 0x60
800bba8: 4413 add r3, r2
800bbaa: 222e movs r2, #46 ; 0x2e
800bbac: f803 2c54 strb.w r2, [r3, #-84]
}
tmparray[idx++] = '0';
800bbb0: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800bbb4: 1c5a adds r2, r3, #1
800bbb6: f887 205f strb.w r2, [r7, #95] ; 0x5f
800bbba: f107 0260 add.w r2, r7, #96 ; 0x60
800bbbe: 4413 add r3, r2
800bbc0: 2230 movs r2, #48 ; 0x30
800bbc2: f803 2c54 strb.w r2, [r3, #-84]
800bbc6: e089 b.n 800bcdc <FloatToASCII+0x374>
}
else
{
if(RoundTo < 0)
800bbc8: 683b ldr r3, [r7, #0]
800bbca: 2b00 cmp r3, #0
800bbcc: da38 bge.n 800bc40 <FloatToASCII+0x2d8>
{
for(i = 0; i < ABS(RoundTo); i++)
800bbce: 2300 movs r3, #0
800bbd0: 65bb str r3, [r7, #88] ; 0x58
800bbd2: e022 b.n 800bc1a <FloatToASCII+0x2b2>
{
Tmp32 = Frac32;
800bbd4: 6cbb ldr r3, [r7, #72] ; 0x48
800bbd6: 63fb str r3, [r7, #60] ; 0x3c
Frac32 /= 10;
800bbd8: 6cbb ldr r3, [r7, #72] ; 0x48
800bbda: 4a2f ldr r2, [pc, #188] ; (800bc98 <FloatToASCII+0x330>)
800bbdc: fba2 2303 umull r2, r3, r2, r3
800bbe0: 08db lsrs r3, r3, #3
800bbe2: 64bb str r3, [r7, #72] ; 0x48
Tmp32 = Tmp32 - Frac32 * 10;
800bbe4: 6cba ldr r2, [r7, #72] ; 0x48
800bbe6: 4613 mov r3, r2
800bbe8: 009b lsls r3, r3, #2
800bbea: 4413 add r3, r2
800bbec: 005b lsls r3, r3, #1
800bbee: 461a mov r2, r3
800bbf0: 6bfb ldr r3, [r7, #60] ; 0x3c
800bbf2: 1a9b subs r3, r3, r2
800bbf4: 63fb str r3, [r7, #60] ; 0x3c
tmparray[idx++] = '0' + Tmp32;
800bbf6: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800bbfa: 1c5a adds r2, r3, #1
800bbfc: f887 205f strb.w r2, [r7, #95] ; 0x5f
800bc00: 4619 mov r1, r3
800bc02: 6bfb ldr r3, [r7, #60] ; 0x3c
800bc04: b2db uxtb r3, r3
800bc06: 3330 adds r3, #48 ; 0x30
800bc08: b2da uxtb r2, r3
800bc0a: f107 0360 add.w r3, r7, #96 ; 0x60
800bc0e: 440b add r3, r1
800bc10: f803 2c54 strb.w r2, [r3, #-84]
for(i = 0; i < ABS(RoundTo); i++)
800bc14: 6dbb ldr r3, [r7, #88] ; 0x58
800bc16: 3301 adds r3, #1
800bc18: 65bb str r3, [r7, #88] ; 0x58
800bc1a: 683b ldr r3, [r7, #0]
800bc1c: ea83 72e3 eor.w r2, r3, r3, asr #31
800bc20: eba2 72e3 sub.w r2, r2, r3, asr #31
800bc24: 6dbb ldr r3, [r7, #88] ; 0x58
800bc26: 429a cmp r2, r3
800bc28: dcd4 bgt.n 800bbd4 <FloatToASCII+0x26c>
}
tmparray[idx++] = '.';
800bc2a: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800bc2e: 1c5a adds r2, r3, #1
800bc30: f887 205f strb.w r2, [r7, #95] ; 0x5f
800bc34: f107 0260 add.w r2, r7, #96 ; 0x60
800bc38: 4413 add r3, r2
800bc3a: 222e movs r2, #46 ; 0x2e
800bc3c: f803 2c54 strb.w r2, [r3, #-84]
}
if(Int32 != 0)
800bc40: 6cfb ldr r3, [r7, #76] ; 0x4c
800bc42: 2b00 cmp r3, #0
800bc44: d02a beq.n 800bc9c <FloatToASCII+0x334>
{
while(Int32)
800bc46: e01f b.n 800bc88 <FloatToASCII+0x320>
{
Tmp32 = Int32;
800bc48: 6cfb ldr r3, [r7, #76] ; 0x4c
800bc4a: 63fb str r3, [r7, #60] ; 0x3c
Int32 /= 10;
800bc4c: 6cfb ldr r3, [r7, #76] ; 0x4c
800bc4e: 4a12 ldr r2, [pc, #72] ; (800bc98 <FloatToASCII+0x330>)
800bc50: fba2 2303 umull r2, r3, r2, r3
800bc54: 08db lsrs r3, r3, #3
800bc56: 64fb str r3, [r7, #76] ; 0x4c
Tmp32 = Tmp32 - Int32 * 10;
800bc58: 6cfa ldr r2, [r7, #76] ; 0x4c
800bc5a: 4613 mov r3, r2
800bc5c: 009b lsls r3, r3, #2
800bc5e: 4413 add r3, r2
800bc60: 005b lsls r3, r3, #1
800bc62: 461a mov r2, r3
800bc64: 6bfb ldr r3, [r7, #60] ; 0x3c
800bc66: 1a9b subs r3, r3, r2
800bc68: 63fb str r3, [r7, #60] ; 0x3c
tmparray[idx++] = '0' + Tmp32;
800bc6a: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800bc6e: 1c5a adds r2, r3, #1
800bc70: f887 205f strb.w r2, [r7, #95] ; 0x5f
800bc74: 4619 mov r1, r3
800bc76: 6bfb ldr r3, [r7, #60] ; 0x3c
800bc78: b2db uxtb r3, r3
800bc7a: 3330 adds r3, #48 ; 0x30
800bc7c: b2da uxtb r2, r3
800bc7e: f107 0360 add.w r3, r7, #96 ; 0x60
800bc82: 440b add r3, r1
800bc84: f803 2c54 strb.w r2, [r3, #-84]
while(Int32)
800bc88: 6cfb ldr r3, [r7, #76] ; 0x4c
800bc8a: 2b00 cmp r3, #0
800bc8c: d1dc bne.n 800bc48 <FloatToASCII+0x2e0>
800bc8e: e010 b.n 800bcb2 <FloatToASCII+0x34a>
800bc90: 2006bab4 .word 0x2006bab4
800bc94: 47c34f80 .word 0x47c34f80
800bc98: cccccccd .word 0xcccccccd
}
}
else
tmparray[idx++] = '0';
800bc9c: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800bca0: 1c5a adds r2, r3, #1
800bca2: f887 205f strb.w r2, [r7, #95] ; 0x5f
800bca6: f107 0260 add.w r2, r7, #96 ; 0x60
800bcaa: 4413 add r3, r2
800bcac: 2230 movs r2, #48 ; 0x30
800bcae: f803 2c54 strb.w r2, [r3, #-84]
if(minus)
800bcb2: 7afb ldrb r3, [r7, #11]
800bcb4: b2db uxtb r3, r3
800bcb6: 2b00 cmp r3, #0
800bcb8: d010 beq.n 800bcdc <FloatToASCII+0x374>
{
if((_I32 != 0) || (_F32 != 0))
800bcba: 6bbb ldr r3, [r7, #56] ; 0x38
800bcbc: 2b00 cmp r3, #0
800bcbe: d102 bne.n 800bcc6 <FloatToASCII+0x35e>
800bcc0: 6b7b ldr r3, [r7, #52] ; 0x34
800bcc2: 2b00 cmp r3, #0
800bcc4: d00a beq.n 800bcdc <FloatToASCII+0x374>
tmparray[idx++] = '-';
800bcc6: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800bcca: 1c5a adds r2, r3, #1
800bccc: f887 205f strb.w r2, [r7, #95] ; 0x5f
800bcd0: f107 0260 add.w r2, r7, #96 ; 0x60
800bcd4: 4413 add r3, r2
800bcd6: 222d movs r2, #45 ; 0x2d
800bcd8: f803 2c54 strb.w r2, [r3, #-84]
}
}
for(i = 0; i < idx; i++)
800bcdc: 2300 movs r3, #0
800bcde: 65bb str r3, [r7, #88] ; 0x58
800bce0: e011 b.n 800bd06 <FloatToASCII+0x39e>
pString[i] = tmparray[idx - i - 1];
800bce2: f897 205f ldrb.w r2, [r7, #95] ; 0x5f
800bce6: 6dbb ldr r3, [r7, #88] ; 0x58
800bce8: 1ad3 subs r3, r2, r3
800bcea: 3b01 subs r3, #1
800bcec: f107 0260 add.w r2, r7, #96 ; 0x60
800bcf0: 4413 add r3, r2
800bcf2: f813 1c54 ldrb.w r1, [r3, #-84]
800bcf6: 4a09 ldr r2, [pc, #36] ; (800bd1c <FloatToASCII+0x3b4>)
800bcf8: 6dbb ldr r3, [r7, #88] ; 0x58
800bcfa: 4413 add r3, r2
800bcfc: 460a mov r2, r1
800bcfe: 701a strb r2, [r3, #0]
for(i = 0; i < idx; i++)
800bd00: 6dbb ldr r3, [r7, #88] ; 0x58
800bd02: 3301 adds r3, #1
800bd04: 65bb str r3, [r7, #88] ; 0x58
800bd06: f897 205f ldrb.w r2, [r7, #95] ; 0x5f
800bd0a: 6dbb ldr r3, [r7, #88] ; 0x58
800bd0c: 429a cmp r2, r3
800bd0e: dce8 bgt.n 800bce2 <FloatToASCII+0x37a>
return pString;
800bd10: 4b02 ldr r3, [pc, #8] ; (800bd1c <FloatToASCII+0x3b4>)
}
800bd12: 4618 mov r0, r3
800bd14: 3760 adds r7, #96 ; 0x60
800bd16: 46bd mov sp, r7
800bd18: bd80 pop {r7, pc}
800bd1a: bf00 nop
800bd1c: 2006bab4 .word 0x2006bab4
0800bd20 <HAL_MspInit>:
/* USER CODE END 0 */
/**
* Initializes the Global MSP.
*/
void HAL_MspInit(void)
{
800bd20: b480 push {r7}
800bd22: b083 sub sp, #12
800bd24: af00 add r7, sp, #0
/* USER CODE BEGIN MspInit 0 */
/* USER CODE END MspInit 0 */
__HAL_RCC_PWR_CLK_ENABLE();
800bd26: 4a0f ldr r2, [pc, #60] ; (800bd64 <HAL_MspInit+0x44>)
800bd28: 4b0e ldr r3, [pc, #56] ; (800bd64 <HAL_MspInit+0x44>)
800bd2a: 6c1b ldr r3, [r3, #64] ; 0x40
800bd2c: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
800bd30: 6413 str r3, [r2, #64] ; 0x40
800bd32: 4b0c ldr r3, [pc, #48] ; (800bd64 <HAL_MspInit+0x44>)
800bd34: 6c1b ldr r3, [r3, #64] ; 0x40
800bd36: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
800bd3a: 607b str r3, [r7, #4]
800bd3c: 687b ldr r3, [r7, #4]
__HAL_RCC_SYSCFG_CLK_ENABLE();
800bd3e: 4a09 ldr r2, [pc, #36] ; (800bd64 <HAL_MspInit+0x44>)
800bd40: 4b08 ldr r3, [pc, #32] ; (800bd64 <HAL_MspInit+0x44>)
800bd42: 6c5b ldr r3, [r3, #68] ; 0x44
800bd44: f443 4380 orr.w r3, r3, #16384 ; 0x4000
800bd48: 6453 str r3, [r2, #68] ; 0x44
800bd4a: 4b06 ldr r3, [pc, #24] ; (800bd64 <HAL_MspInit+0x44>)
800bd4c: 6c5b ldr r3, [r3, #68] ; 0x44
800bd4e: f403 4380 and.w r3, r3, #16384 ; 0x4000
800bd52: 603b str r3, [r7, #0]
800bd54: 683b ldr r3, [r7, #0]
/* System interrupt init*/
/* USER CODE BEGIN MspInit 1 */
/* USER CODE END MspInit 1 */
}
800bd56: bf00 nop
800bd58: 370c adds r7, #12
800bd5a: 46bd mov sp, r7
800bd5c: f85d 7b04 ldr.w r7, [sp], #4
800bd60: 4770 bx lr
800bd62: bf00 nop
800bd64: 40023800 .word 0x40023800
0800bd68 <NMI_Handler>:
/******************************************************************************/
/**
* @brief This function handles Non maskable interrupt.
*/
void NMI_Handler(void)
{
800bd68: b480 push {r7}
800bd6a: 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)
800bd6c: e7fe b.n 800bd6c <NMI_Handler+0x4>
0800bd6e <HardFault_Handler>:
/**
* @brief This function handles Hard fault interrupt.
*/
void HardFault_Handler(void)
{
800bd6e: b480 push {r7}
800bd70: af00 add r7, sp, #0
/* USER CODE BEGIN HardFault_IRQn 0 */
/* USER CODE END HardFault_IRQn 0 */
while (1)
800bd72: e7fe b.n 800bd72 <HardFault_Handler+0x4>
0800bd74 <MemManage_Handler>:
/**
* @brief This function handles Memory management fault.
*/
void MemManage_Handler(void)
{
800bd74: b480 push {r7}
800bd76: af00 add r7, sp, #0
/* USER CODE BEGIN MemoryManagement_IRQn 0 */
/* USER CODE END MemoryManagement_IRQn 0 */
while (1)
800bd78: e7fe b.n 800bd78 <MemManage_Handler+0x4>
0800bd7a <BusFault_Handler>:
/**
* @brief This function handles Pre-fetch fault, memory access fault.
*/
void BusFault_Handler(void)
{
800bd7a: b480 push {r7}
800bd7c: af00 add r7, sp, #0
/* USER CODE BEGIN BusFault_IRQn 0 */
/* USER CODE END BusFault_IRQn 0 */
while (1)
800bd7e: e7fe b.n 800bd7e <BusFault_Handler+0x4>
0800bd80 <UsageFault_Handler>:
/**
* @brief This function handles Undefined instruction or illegal state.
*/
void UsageFault_Handler(void)
{
800bd80: b480 push {r7}
800bd82: af00 add r7, sp, #0
/* USER CODE BEGIN UsageFault_IRQn 0 */
/* USER CODE END UsageFault_IRQn 0 */
while (1)
800bd84: e7fe b.n 800bd84 <UsageFault_Handler+0x4>
0800bd86 <SVC_Handler>:
/**
* @brief This function handles System service call via SWI instruction.
*/
void SVC_Handler(void)
{
800bd86: b480 push {r7}
800bd88: af00 add r7, sp, #0
/* USER CODE END SVCall_IRQn 0 */
/* USER CODE BEGIN SVCall_IRQn 1 */
/* USER CODE END SVCall_IRQn 1 */
}
800bd8a: bf00 nop
800bd8c: 46bd mov sp, r7
800bd8e: f85d 7b04 ldr.w r7, [sp], #4
800bd92: 4770 bx lr
0800bd94 <DebugMon_Handler>:
/**
* @brief This function handles Debug monitor.
*/
void DebugMon_Handler(void)
{
800bd94: b480 push {r7}
800bd96: af00 add r7, sp, #0
/* USER CODE END DebugMonitor_IRQn 0 */
/* USER CODE BEGIN DebugMonitor_IRQn 1 */
/* USER CODE END DebugMonitor_IRQn 1 */
}
800bd98: bf00 nop
800bd9a: 46bd mov sp, r7
800bd9c: f85d 7b04 ldr.w r7, [sp], #4
800bda0: 4770 bx lr
0800bda2 <PendSV_Handler>:
/**
* @brief This function handles Pendable request for system service.
*/
void PendSV_Handler(void)
{
800bda2: b480 push {r7}
800bda4: af00 add r7, sp, #0
/* USER CODE END PendSV_IRQn 0 */
/* USER CODE BEGIN PendSV_IRQn 1 */
/* USER CODE END PendSV_IRQn 1 */
}
800bda6: bf00 nop
800bda8: 46bd mov sp, r7
800bdaa: f85d 7b04 ldr.w r7, [sp], #4
800bdae: 4770 bx lr
0800bdb0 <SysTick_Handler>:
/**
* @brief This function handles System tick timer.
*/
void SysTick_Handler(void)
{
800bdb0: b580 push {r7, lr}
800bdb2: af00 add r7, sp, #0
/* USER CODE BEGIN SysTick_IRQn 0 */
/* USER CODE END SysTick_IRQn 0 */
HAL_IncTick();
800bdb4: f001 fe62 bl 800da7c <HAL_IncTick>
/* USER CODE BEGIN SysTick_IRQn 1 */
/* USER CODE END SysTick_IRQn 1 */
}
800bdb8: bf00 nop
800bdba: bd80 pop {r7, pc}
0800bdbc <EXTI2_IRQHandler>:
/**
* @brief This function handles EXTI line2 interrupt.
*/
void EXTI2_IRQHandler(void)
{
800bdbc: b580 push {r7, lr}
800bdbe: af00 add r7, sp, #0
/* USER CODE BEGIN EXTI2_IRQn 0 */
/* USER CODE END EXTI2_IRQn 0 */
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2);
800bdc0: 2004 movs r0, #4
800bdc2: f002 fe7b bl 800eabc <HAL_GPIO_EXTI_IRQHandler>
/* USER CODE BEGIN EXTI2_IRQn 1 */
/* USER CODE END EXTI2_IRQn 1 */
}
800bdc6: bf00 nop
800bdc8: bd80 pop {r7, pc}
0800bdca <EXTI3_IRQHandler>:
/**
* @brief This function handles EXTI line3 interrupt.
*/
void EXTI3_IRQHandler(void)
{
800bdca: b580 push {r7, lr}
800bdcc: af00 add r7, sp, #0
/* USER CODE BEGIN EXTI3_IRQn 0 */
/* USER CODE END EXTI3_IRQn 0 */
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_3);
800bdce: 2008 movs r0, #8
800bdd0: f002 fe74 bl 800eabc <HAL_GPIO_EXTI_IRQHandler>
/* USER CODE BEGIN EXTI3_IRQn 1 */
/* USER CODE END EXTI3_IRQn 1 */
}
800bdd4: bf00 nop
800bdd6: bd80 pop {r7, pc}
0800bdd8 <TIM7_IRQHandler>:
/**
* @brief This function handles TIM7 global interrupt.
*/
void TIM7_IRQHandler(void)
{
800bdd8: b580 push {r7, lr}
800bdda: af00 add r7, sp, #0
/* USER CODE BEGIN TIM7_IRQn 0 */
/* USER CODE END TIM7_IRQn 0 */
HAL_TIM_IRQHandler(&htim7);
800bddc: 4802 ldr r0, [pc, #8] ; (800bde8 <TIM7_IRQHandler+0x10>)
800bdde: f004 fbcf bl 8010580 <HAL_TIM_IRQHandler>
/* USER CODE BEGIN TIM7_IRQn 1 */
/* USER CODE END TIM7_IRQn 1 */
}
800bde2: bf00 nop
800bde4: bd80 pop {r7, pc}
800bde6: bf00 nop
800bde8: 2006bc50 .word 0x2006bc50
0800bdec <DMA2_Stream1_IRQHandler>:
* @brief This function handles DMA2 stream3 global interrupt.
*/
void DMA2_Stream1_IRQHandler(void)
{
800bdec: b580 push {r7, lr}
800bdee: af00 add r7, sp, #0
/* USER CODE BEGIN DMA2_Stream3_IRQn 0 */
/* USER CODE END DMA2_Stream3_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_adc3);
800bdf0: 4802 ldr r0, [pc, #8] ; (800bdfc <DMA2_Stream1_IRQHandler+0x10>)
800bdf2: f002 f857 bl 800dea4 <HAL_DMA_IRQHandler>
/* USER CODE BEGIN DMA2_Stream3_IRQn 1 */
/* USER CODE END DMA2_Stream3_IRQn 1 */
}
800bdf6: bf00 nop
800bdf8: bd80 pop {r7, pc}
800bdfa: bf00 nop
800bdfc: 2006b348 .word 0x2006b348
0800be00 <DMA2_Stream4_IRQHandler>:
/**
* @brief This function handles DMA2 stream4 global interrupt.
*/
void DMA2_Stream4_IRQHandler(void)
{
800be00: b580 push {r7, lr}
800be02: af00 add r7, sp, #0
/* USER CODE BEGIN DMA2_Stream4_IRQn 0 */
/* USER CODE END DMA2_Stream4_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_adc1);
800be04: 4802 ldr r0, [pc, #8] ; (800be10 <DMA2_Stream4_IRQHandler+0x10>)
800be06: f002 f84d bl 800dea4 <HAL_DMA_IRQHandler>
/* USER CODE BEGIN DMA2_Stream4_IRQn 1 */
/* USER CODE END DMA2_Stream4_IRQn 1 */
}
800be0a: bf00 nop
800be0c: bd80 pop {r7, pc}
800be0e: bf00 nop
800be10: 2006b438 .word 0x2006b438
0800be14 <LTDC_IRQHandler>:
/**
* @brief This function handles LTDC global interrupt.
*/
void LTDC_IRQHandler(void)
{
800be14: b580 push {r7, lr}
800be16: af00 add r7, sp, #0
/* USER CODE BEGIN LTDC_IRQn 0 */
/* USER CODE END LTDC_IRQn 0 */
HAL_LTDC_IRQHandler(&hLtdcHandler);
800be18: 4802 ldr r0, [pc, #8] ; (800be24 <LTDC_IRQHandler+0x10>)
800be1a: f002 ff37 bl 800ec8c <HAL_LTDC_IRQHandler>
/* USER CODE BEGIN LTDC_IRQn 1 */
/* USER CODE END LTDC_IRQn 1 */
}
800be1e: bf00 nop
800be20: bd80 pop {r7, pc}
800be22: bf00 nop
800be24: 2006b9dc .word 0x2006b9dc
0800be28 <LTDC_ER_IRQHandler>:
/**
* @brief This function handles LTDC global error interrupt.
*/
void LTDC_ER_IRQHandler(void)
{
800be28: b580 push {r7, lr}
800be2a: af00 add r7, sp, #0
/* USER CODE BEGIN LTDC_ER_IRQn 0 */
/* USER CODE END LTDC_ER_IRQn 0 */
HAL_LTDC_IRQHandler(&hLtdcHandler);
800be2c: 4802 ldr r0, [pc, #8] ; (800be38 <LTDC_ER_IRQHandler+0x10>)
800be2e: f002 ff2d bl 800ec8c <HAL_LTDC_IRQHandler>
/* USER CODE BEGIN LTDC_ER_IRQn 1 */
/* USER CODE END LTDC_ER_IRQn 1 */
}
800be32: bf00 nop
800be34: bd80 pop {r7, pc}
800be36: bf00 nop
800be38: 2006b9dc .word 0x2006b9dc
0800be3c <SystemInit>:
* SystemFrequency variable.
* @param None
* @retval None
*/
void SystemInit(void)
{
800be3c: b480 push {r7}
800be3e: 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 */
800be40: 4a06 ldr r2, [pc, #24] ; (800be5c <SystemInit+0x20>)
800be42: 4b06 ldr r3, [pc, #24] ; (800be5c <SystemInit+0x20>)
800be44: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
800be48: f443 0370 orr.w r3, r3, #15728640 ; 0xf00000
800be4c: 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 */
}
800be50: bf00 nop
800be52: 46bd mov sp, r7
800be54: f85d 7b04 ldr.w r7, [sp], #4
800be58: 4770 bx lr
800be5a: bf00 nop
800be5c: e000ed00 .word 0xe000ed00
0800be60 <MX_TIM7_Init>:
}
/* TIM7 init function */
void MX_TIM7_Init(void)
{
800be60: b580 push {r7, lr}
800be62: b084 sub sp, #16
800be64: af00 add r7, sp, #0
TIM_MasterConfigTypeDef sMasterConfig;
htim7.Instance = TIM7;
800be66: 4b16 ldr r3, [pc, #88] ; (800bec0 <MX_TIM7_Init+0x60>)
800be68: 4a16 ldr r2, [pc, #88] ; (800bec4 <MX_TIM7_Init+0x64>)
800be6a: 601a str r2, [r3, #0]
htim7.Init.Prescaler = (10 - 1);
800be6c: 4b14 ldr r3, [pc, #80] ; (800bec0 <MX_TIM7_Init+0x60>)
800be6e: 2209 movs r2, #9
800be70: 605a str r2, [r3, #4]
htim7.Init.CounterMode = TIM_COUNTERMODE_UP;
800be72: 4b13 ldr r3, [pc, #76] ; (800bec0 <MX_TIM7_Init+0x60>)
800be74: 2200 movs r2, #0
800be76: 609a str r2, [r3, #8]
htim7.Init.Period = (54000 - 1);
800be78: 4b11 ldr r3, [pc, #68] ; (800bec0 <MX_TIM7_Init+0x60>)
800be7a: f24d 22ef movw r2, #53999 ; 0xd2ef
800be7e: 60da str r2, [r3, #12]
htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
800be80: 4b0f ldr r3, [pc, #60] ; (800bec0 <MX_TIM7_Init+0x60>)
800be82: 2200 movs r2, #0
800be84: 619a str r2, [r3, #24]
if(HAL_TIM_Base_Init(&htim7) != HAL_OK) {
800be86: 480e ldr r0, [pc, #56] ; (800bec0 <MX_TIM7_Init+0x60>)
800be88: f004 faaa bl 80103e0 <HAL_TIM_Base_Init>
800be8c: 4603 mov r3, r0
800be8e: 2b00 cmp r3, #0
800be90: d001 beq.n 800be96 <MX_TIM7_Init+0x36>
Error_Handler();
800be92: f7f9 fb81 bl 8005598 <Error_Handler>
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
800be96: 2300 movs r3, #0
800be98: 607b str r3, [r7, #4]
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
800be9a: 2300 movs r3, #0
800be9c: 60fb str r3, [r7, #12]
if (HAL_TIMEx_MasterConfigSynchronization(&htim7, &sMasterConfig) != HAL_OK) {
800be9e: 1d3b adds r3, r7, #4
800bea0: 4619 mov r1, r3
800bea2: 4807 ldr r0, [pc, #28] ; (800bec0 <MX_TIM7_Init+0x60>)
800bea4: f004 fd54 bl 8010950 <HAL_TIMEx_MasterConfigSynchronization>
800bea8: 4603 mov r3, r0
800beaa: 2b00 cmp r3, #0
800beac: d001 beq.n 800beb2 <MX_TIM7_Init+0x52>
Error_Handler();
800beae: f7f9 fb73 bl 8005598 <Error_Handler>
}
HAL_TIM_Base_Start_IT(&htim7);
800beb2: 4803 ldr r0, [pc, #12] ; (800bec0 <MX_TIM7_Init+0x60>)
800beb4: f004 faec bl 8010490 <HAL_TIM_Base_Start_IT>
}
800beb8: bf00 nop
800beba: 3710 adds r7, #16
800bebc: 46bd mov sp, r7
800bebe: bd80 pop {r7, pc}
800bec0: 2006bc50 .word 0x2006bc50
800bec4: 40001400 .word 0x40001400
0800bec8 <HAL_TIM_Base_MspInit>:
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
{
800bec8: b580 push {r7, lr}
800beca: b086 sub sp, #24
800becc: af00 add r7, sp, #0
800bece: 6078 str r0, [r7, #4]
if(tim_baseHandle->Instance == TIM1)
800bed0: 687b ldr r3, [r7, #4]
800bed2: 681b ldr r3, [r3, #0]
800bed4: 4a1f ldr r2, [pc, #124] ; (800bf54 <HAL_TIM_Base_MspInit+0x8c>)
800bed6: 4293 cmp r3, r2
800bed8: d10c bne.n 800bef4 <HAL_TIM_Base_MspInit+0x2c>
{
__HAL_RCC_TIM1_CLK_ENABLE();
800beda: 4a1f ldr r2, [pc, #124] ; (800bf58 <HAL_TIM_Base_MspInit+0x90>)
800bedc: 4b1e ldr r3, [pc, #120] ; (800bf58 <HAL_TIM_Base_MspInit+0x90>)
800bede: 6c5b ldr r3, [r3, #68] ; 0x44
800bee0: f043 0301 orr.w r3, r3, #1
800bee4: 6453 str r3, [r2, #68] ; 0x44
800bee6: 4b1c ldr r3, [pc, #112] ; (800bf58 <HAL_TIM_Base_MspInit+0x90>)
800bee8: 6c5b ldr r3, [r3, #68] ; 0x44
800beea: f003 0301 and.w r3, r3, #1
800beee: 617b str r3, [r7, #20]
800bef0: 697b ldr r3, [r7, #20]
{
__HAL_RCC_TIM7_CLK_ENABLE();
HAL_NVIC_SetPriority(TIM7_IRQn, 3, 0);
HAL_NVIC_EnableIRQ(TIM7_IRQn);
}
}
800bef2: e02a b.n 800bf4a <HAL_TIM_Base_MspInit+0x82>
if(tim_baseHandle->Instance == TIM5)
800bef4: 687b ldr r3, [r7, #4]
800bef6: 681b ldr r3, [r3, #0]
800bef8: 4a18 ldr r2, [pc, #96] ; (800bf5c <HAL_TIM_Base_MspInit+0x94>)
800befa: 4293 cmp r3, r2
800befc: d10c bne.n 800bf18 <HAL_TIM_Base_MspInit+0x50>
__HAL_RCC_TIM5_CLK_ENABLE();
800befe: 4a16 ldr r2, [pc, #88] ; (800bf58 <HAL_TIM_Base_MspInit+0x90>)
800bf00: 4b15 ldr r3, [pc, #84] ; (800bf58 <HAL_TIM_Base_MspInit+0x90>)
800bf02: 6c1b ldr r3, [r3, #64] ; 0x40
800bf04: f043 0308 orr.w r3, r3, #8
800bf08: 6413 str r3, [r2, #64] ; 0x40
800bf0a: 4b13 ldr r3, [pc, #76] ; (800bf58 <HAL_TIM_Base_MspInit+0x90>)
800bf0c: 6c1b ldr r3, [r3, #64] ; 0x40
800bf0e: f003 0308 and.w r3, r3, #8
800bf12: 613b str r3, [r7, #16]
800bf14: 693b ldr r3, [r7, #16]
}
800bf16: e018 b.n 800bf4a <HAL_TIM_Base_MspInit+0x82>
if(tim_baseHandle->Instance == TIM7)
800bf18: 687b ldr r3, [r7, #4]
800bf1a: 681b ldr r3, [r3, #0]
800bf1c: 4a10 ldr r2, [pc, #64] ; (800bf60 <HAL_TIM_Base_MspInit+0x98>)
800bf1e: 4293 cmp r3, r2
800bf20: d113 bne.n 800bf4a <HAL_TIM_Base_MspInit+0x82>
__HAL_RCC_TIM7_CLK_ENABLE();
800bf22: 4a0d ldr r2, [pc, #52] ; (800bf58 <HAL_TIM_Base_MspInit+0x90>)
800bf24: 4b0c ldr r3, [pc, #48] ; (800bf58 <HAL_TIM_Base_MspInit+0x90>)
800bf26: 6c1b ldr r3, [r3, #64] ; 0x40
800bf28: f043 0320 orr.w r3, r3, #32
800bf2c: 6413 str r3, [r2, #64] ; 0x40
800bf2e: 4b0a ldr r3, [pc, #40] ; (800bf58 <HAL_TIM_Base_MspInit+0x90>)
800bf30: 6c1b ldr r3, [r3, #64] ; 0x40
800bf32: f003 0320 and.w r3, r3, #32
800bf36: 60fb str r3, [r7, #12]
800bf38: 68fb ldr r3, [r7, #12]
HAL_NVIC_SetPriority(TIM7_IRQn, 3, 0);
800bf3a: 2200 movs r2, #0
800bf3c: 2103 movs r1, #3
800bf3e: 2037 movs r0, #55 ; 0x37
800bf40: f001 fed9 bl 800dcf6 <HAL_NVIC_SetPriority>
HAL_NVIC_EnableIRQ(TIM7_IRQn);
800bf44: 2037 movs r0, #55 ; 0x37
800bf46: f001 fef2 bl 800dd2e <HAL_NVIC_EnableIRQ>
}
800bf4a: bf00 nop
800bf4c: 3718 adds r7, #24
800bf4e: 46bd mov sp, r7
800bf50: bd80 pop {r7, pc}
800bf52: bf00 nop
800bf54: 40010000 .word 0x40010000
800bf58: 40023800 .word 0x40023800
800bf5c: 40000c00 .word 0x40000c00
800bf60: 40001400 .word 0x40001400
0800bf64 <HAL_TIM_PeriodElapsedCallback>:
__IO uint32_t maxtime = 0;
/* USER CODE BEGIN 1 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
800bf64: b580 push {r7, lr}
800bf66: b084 sub sp, #16
800bf68: af00 add r7, sp, #0
800bf6a: 6078 str r0, [r7, #4]
__IO uint16_t Data32, i;
switch((uint32_t) htim->Instance)
800bf6c: 687b ldr r3, [r7, #4]
800bf6e: 681b ldr r3, [r3, #0]
800bf70: 461a mov r2, r3
800bf72: 4b3c ldr r3, [pc, #240] ; (800c064 <HAL_TIM_PeriodElapsedCallback+0x100>)
800bf74: 429a cmp r2, r3
800bf76: d000 beq.n 800bf7a <HAL_TIM_PeriodElapsedCallback+0x16>
if(repeat)
repeat--;
break;
}
}
800bf78: e070 b.n 800c05c <HAL_TIM_PeriodElapsedCallback+0xf8>
__HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE);
800bf7a: 687b ldr r3, [r7, #4]
800bf7c: 681b ldr r3, [r3, #0]
800bf7e: f06f 0201 mvn.w r2, #1
800bf82: 611a str r2, [r3, #16]
if((--timerAsk) == 0)
800bf84: 4b38 ldr r3, [pc, #224] ; (800c068 <HAL_TIM_PeriodElapsedCallback+0x104>)
800bf86: 881b ldrh r3, [r3, #0]
800bf88: b29b uxth r3, r3
800bf8a: 3b01 subs r3, #1
800bf8c: b29b uxth r3, r3
800bf8e: 4a36 ldr r2, [pc, #216] ; (800c068 <HAL_TIM_PeriodElapsedCallback+0x104>)
800bf90: 4619 mov r1, r3
800bf92: 8011 strh r1, [r2, #0]
800bf94: 2b00 cmp r3, #0
800bf96: d105 bne.n 800bfa4 <HAL_TIM_PeriodElapsedCallback+0x40>
timerAsk = msec1900;
800bf98: 4b33 ldr r3, [pc, #204] ; (800c068 <HAL_TIM_PeriodElapsedCallback+0x104>)
800bf9a: 22be movs r2, #190 ; 0xbe
800bf9c: 801a strh r2, [r3, #0]
FlagAsk = true;
800bf9e: 4b33 ldr r3, [pc, #204] ; (800c06c <HAL_TIM_PeriodElapsedCallback+0x108>)
800bfa0: 2201 movs r2, #1
800bfa2: 701a strb r2, [r3, #0]
if(timerKeys)
800bfa4: 4b32 ldr r3, [pc, #200] ; (800c070 <HAL_TIM_PeriodElapsedCallback+0x10c>)
800bfa6: 881b ldrh r3, [r3, #0]
800bfa8: b29b uxth r3, r3
800bfaa: 2b00 cmp r3, #0
800bfac: d007 beq.n 800bfbe <HAL_TIM_PeriodElapsedCallback+0x5a>
timerKeys--;
800bfae: 4b30 ldr r3, [pc, #192] ; (800c070 <HAL_TIM_PeriodElapsedCallback+0x10c>)
800bfb0: 881b ldrh r3, [r3, #0]
800bfb2: b29b uxth r3, r3
800bfb4: 3b01 subs r3, #1
800bfb6: b29a uxth r2, r3
800bfb8: 4b2d ldr r3, [pc, #180] ; (800c070 <HAL_TIM_PeriodElapsedCallback+0x10c>)
800bfba: 801a strh r2, [r3, #0]
800bfbc: e00b b.n 800bfd6 <HAL_TIM_PeriodElapsedCallback+0x72>
timerKeys = 2;
800bfbe: 4b2c ldr r3, [pc, #176] ; (800c070 <HAL_TIM_PeriodElapsedCallback+0x10c>)
800bfc0: 2202 movs r2, #2
800bfc2: 801a strh r2, [r3, #0]
if(!KEY_STATE)
800bfc4: 4b2b ldr r3, [pc, #172] ; (800c074 <HAL_TIM_PeriodElapsedCallback+0x110>)
800bfc6: 681b ldr r3, [r3, #0]
800bfc8: 2b00 cmp r3, #0
800bfca: d104 bne.n 800bfd6 <HAL_TIM_PeriodElapsedCallback+0x72>
KEY_STATE = kbhit();
800bfcc: f7f4 fcca bl 8000964 <kbhit>
800bfd0: 4602 mov r2, r0
800bfd2: 4b28 ldr r3, [pc, #160] ; (800c074 <HAL_TIM_PeriodElapsedCallback+0x110>)
800bfd4: 601a str r2, [r3, #0]
if(timerRefreshScreen)
800bfd6: 4b28 ldr r3, [pc, #160] ; (800c078 <HAL_TIM_PeriodElapsedCallback+0x114>)
800bfd8: 881b ldrh r3, [r3, #0]
800bfda: b29b uxth r3, r3
800bfdc: 2b00 cmp r3, #0
800bfde: d007 beq.n 800bff0 <HAL_TIM_PeriodElapsedCallback+0x8c>
timerRefreshScreen--;
800bfe0: 4b25 ldr r3, [pc, #148] ; (800c078 <HAL_TIM_PeriodElapsedCallback+0x114>)
800bfe2: 881b ldrh r3, [r3, #0]
800bfe4: b29b uxth r3, r3
800bfe6: 3b01 subs r3, #1
800bfe8: b29a uxth r2, r3
800bfea: 4b23 ldr r3, [pc, #140] ; (800c078 <HAL_TIM_PeriodElapsedCallback+0x114>)
800bfec: 801a strh r2, [r3, #0]
800bfee: e028 b.n 800c042 <HAL_TIM_PeriodElapsedCallback+0xde>
timerRefreshScreen = MSEC_REFRESH[0];
800bff0: 220a movs r2, #10
800bff2: 4b21 ldr r3, [pc, #132] ; (800c078 <HAL_TIM_PeriodElapsedCallback+0x114>)
800bff4: 801a strh r2, [r3, #0]
Cursorblink ^= 1;
800bff6: 4b21 ldr r3, [pc, #132] ; (800c07c <HAL_TIM_PeriodElapsedCallback+0x118>)
800bff8: 781b ldrb r3, [r3, #0]
800bffa: b2db uxtb r3, r3
800bffc: f083 0301 eor.w r3, r3, #1
800c000: b2da uxtb r2, r3
800c002: 4b1e ldr r3, [pc, #120] ; (800c07c <HAL_TIM_PeriodElapsedCallback+0x118>)
800c004: 701a strb r2, [r3, #0]
if(cntblink)
800c006: 4b1e ldr r3, [pc, #120] ; (800c080 <HAL_TIM_PeriodElapsedCallback+0x11c>)
800c008: 881b ldrh r3, [r3, #0]
800c00a: b29b uxth r3, r3
800c00c: 2b00 cmp r3, #0
800c00e: d007 beq.n 800c020 <HAL_TIM_PeriodElapsedCallback+0xbc>
cntblink--;
800c010: 4b1b ldr r3, [pc, #108] ; (800c080 <HAL_TIM_PeriodElapsedCallback+0x11c>)
800c012: 881b ldrh r3, [r3, #0]
800c014: b29b uxth r3, r3
800c016: 3b01 subs r3, #1
800c018: b29a uxth r2, r3
800c01a: 4b19 ldr r3, [pc, #100] ; (800c080 <HAL_TIM_PeriodElapsedCallback+0x11c>)
800c01c: 801a strh r2, [r3, #0]
800c01e: e00d b.n 800c03c <HAL_TIM_PeriodElapsedCallback+0xd8>
cntblink = 2;
800c020: 4b17 ldr r3, [pc, #92] ; (800c080 <HAL_TIM_PeriodElapsedCallback+0x11c>)
800c022: 2202 movs r2, #2
800c024: 801a strh r2, [r3, #0]
blink ^= 1;
800c026: 4b17 ldr r3, [pc, #92] ; (800c084 <HAL_TIM_PeriodElapsedCallback+0x120>)
800c028: 781b ldrb r3, [r3, #0]
800c02a: b2db uxtb r3, r3
800c02c: f083 0301 eor.w r3, r3, #1
800c030: b2da uxtb r2, r3
800c032: 4b14 ldr r3, [pc, #80] ; (800c084 <HAL_TIM_PeriodElapsedCallback+0x120>)
800c034: 701a strb r2, [r3, #0]
cntBat = 1;
800c036: 4b14 ldr r3, [pc, #80] ; (800c088 <HAL_TIM_PeriodElapsedCallback+0x124>)
800c038: 2201 movs r2, #1
800c03a: 701a strb r2, [r3, #0]
screen = true;
800c03c: 4b13 ldr r3, [pc, #76] ; (800c08c <HAL_TIM_PeriodElapsedCallback+0x128>)
800c03e: 2201 movs r2, #1
800c040: 701a strb r2, [r3, #0]
if(repeat)
800c042: 4b13 ldr r3, [pc, #76] ; (800c090 <HAL_TIM_PeriodElapsedCallback+0x12c>)
800c044: 881b ldrh r3, [r3, #0]
800c046: b29b uxth r3, r3
800c048: 2b00 cmp r3, #0
800c04a: d006 beq.n 800c05a <HAL_TIM_PeriodElapsedCallback+0xf6>
repeat--;
800c04c: 4b10 ldr r3, [pc, #64] ; (800c090 <HAL_TIM_PeriodElapsedCallback+0x12c>)
800c04e: 881b ldrh r3, [r3, #0]
800c050: b29b uxth r3, r3
800c052: 3b01 subs r3, #1
800c054: b29a uxth r2, r3
800c056: 4b0e ldr r3, [pc, #56] ; (800c090 <HAL_TIM_PeriodElapsedCallback+0x12c>)
800c058: 801a strh r2, [r3, #0]
break;
800c05a: bf00 nop
}
800c05c: bf00 nop
800c05e: 3710 adds r7, #16
800c060: 46bd mov sp, r7
800c062: bd80 pop {r7, pc}
800c064: 40001400 .word 0x40001400
800c068: 2002021e .word 0x2002021e
800c06c: 2006b2ef .word 0x2006b2ef
800c070: 2002021a .word 0x2002021a
800c074: 2002024c .word 0x2002024c
800c078: 2002021c .word 0x2002021c
800c07c: 2006b2ed .word 0x2006b2ed
800c080: 20020218 .word 0x20020218
800c084: 2006b2ec .word 0x2006b2ec
800c088: 2006b2ee .word 0x2006b2ee
800c08c: 2002002c .word 0x2002002c
800c090: 20020246 .word 0x20020246
0800c094 <MX_UART7_Init>:
void MX_UART7_Init(void)
{
800c094: b580 push {r7, lr}
800c096: af00 add r7, sp, #0
huart7.Instance = UART7;
800c098: 4b47 ldr r3, [pc, #284] ; (800c1b8 <MX_UART7_Init+0x124>)
800c09a: 4a48 ldr r2, [pc, #288] ; (800c1bc <MX_UART7_Init+0x128>)
800c09c: 601a str r2, [r3, #0]
huart7.Init.BaudRate = BAUDRATE[pardata.BAUD];
800c09e: 4b48 ldr r3, [pc, #288] ; (800c1c0 <MX_UART7_Init+0x12c>)
800c0a0: f8b3 3202 ldrh.w r3, [r3, #514] ; 0x202
800c0a4: b29b uxth r3, r3
800c0a6: 461a mov r2, r3
800c0a8: 4b46 ldr r3, [pc, #280] ; (800c1c4 <MX_UART7_Init+0x130>)
800c0aa: f853 3022 ldr.w r3, [r3, r2, lsl #2]
800c0ae: 4a42 ldr r2, [pc, #264] ; (800c1b8 <MX_UART7_Init+0x124>)
800c0b0: 6053 str r3, [r2, #4]
switch(pardata.INFB)
800c0b2: 4b43 ldr r3, [pc, #268] ; (800c1c0 <MX_UART7_Init+0x12c>)
800c0b4: f8b3 3204 ldrh.w r3, [r3, #516] ; 0x204
800c0b8: b29b uxth r3, r3
800c0ba: 2b01 cmp r3, #1
800c0bc: d00a beq.n 800c0d4 <MX_UART7_Init+0x40>
800c0be: 2b02 cmp r3, #2
800c0c0: d011 beq.n 800c0e6 <MX_UART7_Init+0x52>
800c0c2: 2b00 cmp r3, #0
800c0c4: d118 bne.n 800c0f8 <MX_UART7_Init+0x64>
{
case 0: //NONE
huart7.Init.WordLength = UART_WORDLENGTH_8B;
800c0c6: 4b3c ldr r3, [pc, #240] ; (800c1b8 <MX_UART7_Init+0x124>)
800c0c8: 2200 movs r2, #0
800c0ca: 609a str r2, [r3, #8]
huart7.Init.Parity = UART_PARITY_NONE;
800c0cc: 4b3a ldr r3, [pc, #232] ; (800c1b8 <MX_UART7_Init+0x124>)
800c0ce: 2200 movs r2, #0
800c0d0: 611a str r2, [r3, #16]
break;
800c0d2: e011 b.n 800c0f8 <MX_UART7_Init+0x64>
case 1: //ODD
huart7.Init.WordLength = UART_WORDLENGTH_9B;
800c0d4: 4b38 ldr r3, [pc, #224] ; (800c1b8 <MX_UART7_Init+0x124>)
800c0d6: f44f 5280 mov.w r2, #4096 ; 0x1000
800c0da: 609a str r2, [r3, #8]
huart7.Init.Parity = UART_PARITY_ODD;
800c0dc: 4b36 ldr r3, [pc, #216] ; (800c1b8 <MX_UART7_Init+0x124>)
800c0de: f44f 62c0 mov.w r2, #1536 ; 0x600
800c0e2: 611a str r2, [r3, #16]
break;
800c0e4: e008 b.n 800c0f8 <MX_UART7_Init+0x64>
case 2: //EVEN
huart7.Init.WordLength = UART_WORDLENGTH_9B;
800c0e6: 4b34 ldr r3, [pc, #208] ; (800c1b8 <MX_UART7_Init+0x124>)
800c0e8: f44f 5280 mov.w r2, #4096 ; 0x1000
800c0ec: 609a str r2, [r3, #8]
huart7.Init.Parity = UART_PARITY_EVEN;
800c0ee: 4b32 ldr r3, [pc, #200] ; (800c1b8 <MX_UART7_Init+0x124>)
800c0f0: f44f 6280 mov.w r2, #1024 ; 0x400
800c0f4: 611a str r2, [r3, #16]
break;
800c0f6: bf00 nop
}
huart7.Init.StopBits = UART_STOPBITS_1;
800c0f8: 4b2f ldr r3, [pc, #188] ; (800c1b8 <MX_UART7_Init+0x124>)
800c0fa: 2200 movs r2, #0
800c0fc: 60da str r2, [r3, #12]
huart7.Init.Mode = UART_MODE_TX_RX;
800c0fe: 4b2e ldr r3, [pc, #184] ; (800c1b8 <MX_UART7_Init+0x124>)
800c100: 220c movs r2, #12
800c102: 615a str r2, [r3, #20]
huart7.Init.HwFlowCtl = UART_HWCONTROL_NONE;
800c104: 4b2c ldr r3, [pc, #176] ; (800c1b8 <MX_UART7_Init+0x124>)
800c106: 2200 movs r2, #0
800c108: 619a str r2, [r3, #24]
if(pardata.BAUD < 9)
800c10a: 4b2d ldr r3, [pc, #180] ; (800c1c0 <MX_UART7_Init+0x12c>)
800c10c: f8b3 3202 ldrh.w r3, [r3, #514] ; 0x202
800c110: b29b uxth r3, r3
800c112: 2b08 cmp r3, #8
800c114: d803 bhi.n 800c11e <MX_UART7_Init+0x8a>
huart7.Init.OverSampling = UART_OVERSAMPLING_16;
800c116: 4b28 ldr r3, [pc, #160] ; (800c1b8 <MX_UART7_Init+0x124>)
800c118: 2200 movs r2, #0
800c11a: 61da str r2, [r3, #28]
800c11c: e003 b.n 800c126 <MX_UART7_Init+0x92>
else huart7.Init.OverSampling = UART_OVERSAMPLING_8;
800c11e: 4b26 ldr r3, [pc, #152] ; (800c1b8 <MX_UART7_Init+0x124>)
800c120: f44f 4200 mov.w r2, #32768 ; 0x8000
800c124: 61da str r2, [r3, #28]
huart7.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
800c126: 4b24 ldr r3, [pc, #144] ; (800c1b8 <MX_UART7_Init+0x124>)
800c128: 2200 movs r2, #0
800c12a: 621a str r2, [r3, #32]
huart7.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_SWAP_INIT;
800c12c: 4b22 ldr r3, [pc, #136] ; (800c1b8 <MX_UART7_Init+0x124>)
800c12e: 2208 movs r2, #8
800c130: 625a str r2, [r3, #36] ; 0x24
huart7.AdvancedInit.Swap = UART_ADVFEATURE_SWAP_ENABLE;
800c132: 4b21 ldr r3, [pc, #132] ; (800c1b8 <MX_UART7_Init+0x124>)
800c134: f44f 4200 mov.w r2, #32768 ; 0x8000
800c138: 635a str r2, [r3, #52] ; 0x34
if(HAL_UART_Init(&huart7) != HAL_OK) {
800c13a: 481f ldr r0, [pc, #124] ; (800c1b8 <MX_UART7_Init+0x124>)
800c13c: f004 fcb4 bl 8010aa8 <HAL_UART_Init>
800c140: 4603 mov r3, r0
800c142: 2b00 cmp r3, #0
800c144: d001 beq.n 800c14a <MX_UART7_Init+0xb6>
Error_Handler();
800c146: f7f9 fa27 bl 8005598 <Error_Handler>
}
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
800c14a: 4b1b ldr r3, [pc, #108] ; (800c1b8 <MX_UART7_Init+0x124>)
800c14c: 681b ldr r3, [r3, #0]
800c14e: 69db ldr r3, [r3, #28]
800c150: f003 0308 and.w r3, r3, #8
800c154: 2b08 cmp r3, #8
800c156: d103 bne.n 800c160 <MX_UART7_Init+0xcc>
__HAL_UART_CLEAR_OREFLAG(&huart7);
800c158: 4b17 ldr r3, [pc, #92] ; (800c1b8 <MX_UART7_Init+0x124>)
800c15a: 681b ldr r3, [r3, #0]
800c15c: 2208 movs r2, #8
800c15e: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
800c160: 4b15 ldr r3, [pc, #84] ; (800c1b8 <MX_UART7_Init+0x124>)
800c162: 681b ldr r3, [r3, #0]
800c164: 69db ldr r3, [r3, #28]
800c166: f003 0301 and.w r3, r3, #1
800c16a: 2b01 cmp r3, #1
800c16c: d103 bne.n 800c176 <MX_UART7_Init+0xe2>
__HAL_UART_CLEAR_PEFLAG(&huart7);
800c16e: 4b12 ldr r3, [pc, #72] ; (800c1b8 <MX_UART7_Init+0x124>)
800c170: 681b ldr r3, [r3, #0]
800c172: 2201 movs r2, #1
800c174: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
800c176: 4b10 ldr r3, [pc, #64] ; (800c1b8 <MX_UART7_Init+0x124>)
800c178: 681b ldr r3, [r3, #0]
800c17a: 69db ldr r3, [r3, #28]
800c17c: f003 0302 and.w r3, r3, #2
800c180: 2b02 cmp r3, #2
800c182: d103 bne.n 800c18c <MX_UART7_Init+0xf8>
__HAL_UART_CLEAR_FEFLAG(&huart7);
800c184: 4b0c ldr r3, [pc, #48] ; (800c1b8 <MX_UART7_Init+0x124>)
800c186: 681b ldr r3, [r3, #0]
800c188: 2202 movs r2, #2
800c18a: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
800c18c: 4b0a ldr r3, [pc, #40] ; (800c1b8 <MX_UART7_Init+0x124>)
800c18e: 681b ldr r3, [r3, #0]
800c190: 69db ldr r3, [r3, #28]
800c192: f003 0304 and.w r3, r3, #4
800c196: 2b04 cmp r3, #4
800c198: d103 bne.n 800c1a2 <MX_UART7_Init+0x10e>
__HAL_UART_CLEAR_NEFLAG(&huart7);
800c19a: 4b07 ldr r3, [pc, #28] ; (800c1b8 <MX_UART7_Init+0x124>)
800c19c: 681b ldr r3, [r3, #0]
800c19e: 2204 movs r2, #4
800c1a0: 621a str r2, [r3, #32]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800c1a2: 2200 movs r2, #0
800c1a4: f44f 7100 mov.w r1, #512 ; 0x200
800c1a8: 4807 ldr r0, [pc, #28] ; (800c1c8 <MX_UART7_Init+0x134>)
800c1aa: f002 fc6d bl 800ea88 <HAL_GPIO_WritePin>
HAL_Delay(1);
800c1ae: 2001 movs r0, #1
800c1b0: f001 fc84 bl 800dabc <HAL_Delay>
//SET_BIT(huart7.Instance->CR1, /*USART_CR1_RXNEIE |*/ USART_CR1_PEIE);
}
800c1b4: bf00 nop
800c1b6: bd80 pop {r7, pc}
800c1b8: 2006bc9c .word 0x2006bc9c
800c1bc: 40007800 .word 0x40007800
800c1c0: 2006b510 .word 0x2006b510
800c1c4: 0801579c .word 0x0801579c
800c1c8: 40021400 .word 0x40021400
0800c1cc <HAL_UART_MspInit>:
HAL_NVIC_DisableIRQ(UART7_IRQn);
}
void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
{
800c1cc: b580 push {r7, lr}
800c1ce: b08a sub sp, #40 ; 0x28
800c1d0: af00 add r7, sp, #0
800c1d2: 6078 str r0, [r7, #4]
GPIO_InitTypeDef GPIO_InitStruct = {0};
800c1d4: f107 0314 add.w r3, r7, #20
800c1d8: 2200 movs r2, #0
800c1da: 601a str r2, [r3, #0]
800c1dc: 605a str r2, [r3, #4]
800c1de: 609a str r2, [r3, #8]
800c1e0: 60da str r2, [r3, #12]
800c1e2: 611a str r2, [r3, #16]
if(uartHandle->Instance==UART7)
800c1e4: 687b ldr r3, [r7, #4]
800c1e6: 681b ldr r3, [r3, #0]
800c1e8: 4a1b ldr r2, [pc, #108] ; (800c258 <HAL_UART_MspInit+0x8c>)
800c1ea: 4293 cmp r3, r2
800c1ec: d12f bne.n 800c24e <HAL_UART_MspInit+0x82>
{
__HAL_RCC_UART7_CLK_ENABLE();
800c1ee: 4a1b ldr r2, [pc, #108] ; (800c25c <HAL_UART_MspInit+0x90>)
800c1f0: 4b1a ldr r3, [pc, #104] ; (800c25c <HAL_UART_MspInit+0x90>)
800c1f2: 6c1b ldr r3, [r3, #64] ; 0x40
800c1f4: f043 4380 orr.w r3, r3, #1073741824 ; 0x40000000
800c1f8: 6413 str r3, [r2, #64] ; 0x40
800c1fa: 4b18 ldr r3, [pc, #96] ; (800c25c <HAL_UART_MspInit+0x90>)
800c1fc: 6c1b ldr r3, [r3, #64] ; 0x40
800c1fe: f003 4380 and.w r3, r3, #1073741824 ; 0x40000000
800c202: 613b str r3, [r7, #16]
800c204: 693b ldr r3, [r7, #16]
__HAL_RCC_GPIOF_CLK_ENABLE();
800c206: 4a15 ldr r2, [pc, #84] ; (800c25c <HAL_UART_MspInit+0x90>)
800c208: 4b14 ldr r3, [pc, #80] ; (800c25c <HAL_UART_MspInit+0x90>)
800c20a: 6b1b ldr r3, [r3, #48] ; 0x30
800c20c: f043 0320 orr.w r3, r3, #32
800c210: 6313 str r3, [r2, #48] ; 0x30
800c212: 4b12 ldr r3, [pc, #72] ; (800c25c <HAL_UART_MspInit+0x90>)
800c214: 6b1b ldr r3, [r3, #48] ; 0x30
800c216: f003 0320 and.w r3, r3, #32
800c21a: 60fb str r3, [r7, #12]
800c21c: 68fb ldr r3, [r7, #12]
/**UART7 GPIO Configuration
PF6 ------> UART7_RX
PF7 ------> UART7_TX
*/
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
800c21e: 23c0 movs r3, #192 ; 0xc0
800c220: 617b str r3, [r7, #20]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
800c222: 2302 movs r3, #2
800c224: 61bb str r3, [r7, #24]
GPIO_InitStruct.Pull = GPIO_NOPULL;
800c226: 2300 movs r3, #0
800c228: 61fb str r3, [r7, #28]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
800c22a: 2303 movs r3, #3
800c22c: 623b str r3, [r7, #32]
GPIO_InitStruct.Alternate = GPIO_AF8_UART7;
800c22e: 2308 movs r3, #8
800c230: 627b str r3, [r7, #36] ; 0x24
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
800c232: f107 0314 add.w r3, r7, #20
800c236: 4619 mov r1, r3
800c238: 4809 ldr r0, [pc, #36] ; (800c260 <HAL_UART_MspInit+0x94>)
800c23a: f002 fa63 bl 800e704 <HAL_GPIO_Init>
/* UART7 interrupt Init */
HAL_NVIC_SetPriority(UART7_IRQn, 10, 0);
800c23e: 2200 movs r2, #0
800c240: 210a movs r1, #10
800c242: 2052 movs r0, #82 ; 0x52
800c244: f001 fd57 bl 800dcf6 <HAL_NVIC_SetPriority>
HAL_NVIC_EnableIRQ(UART7_IRQn);
800c248: 2052 movs r0, #82 ; 0x52
800c24a: f001 fd70 bl 800dd2e <HAL_NVIC_EnableIRQ>
}
}
800c24e: bf00 nop
800c250: 3728 adds r7, #40 ; 0x28
800c252: 46bd mov sp, r7
800c254: bd80 pop {r7, pc}
800c256: bf00 nop
800c258: 40007800 .word 0x40007800
800c25c: 40023800 .word 0x40023800
800c260: 40021400 .word 0x40021400
0800c264 <UART7_IRQHandler>:
}
}
void UART7_IRQHandler(void)
{
800c264: b580 push {r7, lr}
800c266: af00 add r7, sp, #0
if((__HAL_UART_GET_IT_SOURCE(&huart7, UART_IT_RXNE)) && (__HAL_UART_GET_FLAG(&huart7, UART_FLAG_RXNE)))
800c268: 4b26 ldr r3, [pc, #152] ; (800c304 <UART7_IRQHandler+0xa0>)
800c26a: 681b ldr r3, [r3, #0]
800c26c: 681b ldr r3, [r3, #0]
800c26e: f003 0320 and.w r3, r3, #32
800c272: 2b00 cmp r3, #0
800c274: d00a beq.n 800c28c <UART7_IRQHandler+0x28>
800c276: 4b23 ldr r3, [pc, #140] ; (800c304 <UART7_IRQHandler+0xa0>)
800c278: 681b ldr r3, [r3, #0]
800c27a: 69db ldr r3, [r3, #28]
800c27c: f003 0320 and.w r3, r3, #32
800c280: 2b20 cmp r3, #32
800c282: d103 bne.n 800c28c <UART7_IRQHandler+0x28>
{
HAL_UART_RxCpltCallback(&huart7);
800c284: 481f ldr r0, [pc, #124] ; (800c304 <UART7_IRQHandler+0xa0>)
800c286: f000 f8ad bl 800c3e4 <HAL_UART_RxCpltCallback>
800c28a: e002 b.n 800c292 <UART7_IRQHandler+0x2e>
}
else
{
HAL_UART_IRQHandler(&huart7);
800c28c: 481d ldr r0, [pc, #116] ; (800c304 <UART7_IRQHandler+0xa0>)
800c28e: f004 febd bl 801100c <HAL_UART_IRQHandler>
}
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
800c292: 4b1c ldr r3, [pc, #112] ; (800c304 <UART7_IRQHandler+0xa0>)
800c294: 681b ldr r3, [r3, #0]
800c296: 69db ldr r3, [r3, #28]
800c298: f003 0308 and.w r3, r3, #8
800c29c: 2b08 cmp r3, #8
800c29e: d103 bne.n 800c2a8 <UART7_IRQHandler+0x44>
__HAL_UART_CLEAR_OREFLAG(&huart7);
800c2a0: 4b18 ldr r3, [pc, #96] ; (800c304 <UART7_IRQHandler+0xa0>)
800c2a2: 681b ldr r3, [r3, #0]
800c2a4: 2208 movs r2, #8
800c2a6: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
800c2a8: 4b16 ldr r3, [pc, #88] ; (800c304 <UART7_IRQHandler+0xa0>)
800c2aa: 681b ldr r3, [r3, #0]
800c2ac: 69db ldr r3, [r3, #28]
800c2ae: f003 0301 and.w r3, r3, #1
800c2b2: 2b01 cmp r3, #1
800c2b4: d103 bne.n 800c2be <UART7_IRQHandler+0x5a>
__HAL_UART_CLEAR_PEFLAG(&huart7);
800c2b6: 4b13 ldr r3, [pc, #76] ; (800c304 <UART7_IRQHandler+0xa0>)
800c2b8: 681b ldr r3, [r3, #0]
800c2ba: 2201 movs r2, #1
800c2bc: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
800c2be: 4b11 ldr r3, [pc, #68] ; (800c304 <UART7_IRQHandler+0xa0>)
800c2c0: 681b ldr r3, [r3, #0]
800c2c2: 69db ldr r3, [r3, #28]
800c2c4: f003 0302 and.w r3, r3, #2
800c2c8: 2b02 cmp r3, #2
800c2ca: d103 bne.n 800c2d4 <UART7_IRQHandler+0x70>
__HAL_UART_CLEAR_FEFLAG(&huart7);
800c2cc: 4b0d ldr r3, [pc, #52] ; (800c304 <UART7_IRQHandler+0xa0>)
800c2ce: 681b ldr r3, [r3, #0]
800c2d0: 2202 movs r2, #2
800c2d2: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
800c2d4: 4b0b ldr r3, [pc, #44] ; (800c304 <UART7_IRQHandler+0xa0>)
800c2d6: 681b ldr r3, [r3, #0]
800c2d8: 69db ldr r3, [r3, #28]
800c2da: f003 0304 and.w r3, r3, #4
800c2de: 2b04 cmp r3, #4
800c2e0: d103 bne.n 800c2ea <UART7_IRQHandler+0x86>
__HAL_UART_CLEAR_NEFLAG(&huart7);
800c2e2: 4b08 ldr r3, [pc, #32] ; (800c304 <UART7_IRQHandler+0xa0>)
800c2e4: 681b ldr r3, [r3, #0]
800c2e6: 2204 movs r2, #4
800c2e8: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_IDLE))
800c2ea: 4b06 ldr r3, [pc, #24] ; (800c304 <UART7_IRQHandler+0xa0>)
800c2ec: 681b ldr r3, [r3, #0]
800c2ee: 69db ldr r3, [r3, #28]
800c2f0: f003 0310 and.w r3, r3, #16
800c2f4: 2b10 cmp r3, #16
800c2f6: d103 bne.n 800c300 <UART7_IRQHandler+0x9c>
__HAL_UART_CLEAR_IDLEFLAG(&huart7);
800c2f8: 4b02 ldr r3, [pc, #8] ; (800c304 <UART7_IRQHandler+0xa0>)
800c2fa: 681b ldr r3, [r3, #0]
800c2fc: 2210 movs r2, #16
800c2fe: 621a str r2, [r3, #32]
}
800c300: bf00 nop
800c302: bd80 pop {r7, pc}
800c304: 2006bc9c .word 0x2006bc9c
0800c308 <Crc16>:
uint16_t Crc16(uint16_t len)
{
800c308: b480 push {r7}
800c30a: b085 sub sp, #20
800c30c: af00 add r7, sp, #0
800c30e: 4603 mov r3, r0
800c310: 80fb strh r3, [r7, #6]
uint16_t i;
uint16_t crc = 0xFFFF;
800c312: f64f 73ff movw r3, #65535 ; 0xffff
800c316: 81bb strh r3, [r7, #12]
for(i = 0; i < len; i++) {
800c318: 2300 movs r3, #0
800c31a: 81fb strh r3, [r7, #14]
800c31c: e010 b.n 800c340 <Crc16+0x38>
crc = (crc >> 8) ^ Crc16Table[(crc & 0xFF) ^ iobuf[i]];
800c31e: 89bb ldrh r3, [r7, #12]
800c320: 0a1b lsrs r3, r3, #8
800c322: b29a uxth r2, r3
800c324: 89bb ldrh r3, [r7, #12]
800c326: b2db uxtb r3, r3
800c328: 89f9 ldrh r1, [r7, #14]
800c32a: 480b ldr r0, [pc, #44] ; (800c358 <Crc16+0x50>)
800c32c: 5c41 ldrb r1, [r0, r1]
800c32e: 404b eors r3, r1
800c330: 490a ldr r1, [pc, #40] ; (800c35c <Crc16+0x54>)
800c332: f831 3013 ldrh.w r3, [r1, r3, lsl #1]
800c336: 4053 eors r3, r2
800c338: 81bb strh r3, [r7, #12]
for(i = 0; i < len; i++) {
800c33a: 89fb ldrh r3, [r7, #14]
800c33c: 3301 adds r3, #1
800c33e: 81fb strh r3, [r7, #14]
800c340: 89fa ldrh r2, [r7, #14]
800c342: 88fb ldrh r3, [r7, #6]
800c344: 429a cmp r2, r3
800c346: d3ea bcc.n 800c31e <Crc16+0x16>
}
return crc;
800c348: 89bb ldrh r3, [r7, #12]
}
800c34a: 4618 mov r0, r3
800c34c: 3714 adds r7, #20
800c34e: 46bd mov sp, r7
800c350: f85d 7b04 ldr.w r7, [sp], #4
800c354: 4770 bx lr
800c356: bf00 nop
800c358: 2006be2c .word 0x2006be2c
800c35c: 0801559c .word 0x0801559c
0800c360 <Crc16_RX>:
uint16_t Crc16_RX(uint16_t len)
{
800c360: b480 push {r7}
800c362: b085 sub sp, #20
800c364: af00 add r7, sp, #0
800c366: 4603 mov r3, r0
800c368: 80fb strh r3, [r7, #6]
uint16_t i;
uint16_t crc = 0xFFFF;
800c36a: f64f 73ff movw r3, #65535 ; 0xffff
800c36e: 81bb strh r3, [r7, #12]
for(i = 0; i < len; i++) {
800c370: 2300 movs r3, #0
800c372: 81fb strh r3, [r7, #14]
800c374: e010 b.n 800c398 <Crc16_RX+0x38>
crc = (crc >> 8) ^ Crc16Table[(crc & 0xFF) ^ rx[i]];
800c376: 89bb ldrh r3, [r7, #12]
800c378: 0a1b lsrs r3, r3, #8
800c37a: b29a uxth r2, r3
800c37c: 89bb ldrh r3, [r7, #12]
800c37e: b2db uxtb r3, r3
800c380: 89f9 ldrh r1, [r7, #14]
800c382: 480b ldr r0, [pc, #44] ; (800c3b0 <Crc16_RX+0x50>)
800c384: 5c41 ldrb r1, [r0, r1]
800c386: 404b eors r3, r1
800c388: 490a ldr r1, [pc, #40] ; (800c3b4 <Crc16_RX+0x54>)
800c38a: f831 3013 ldrh.w r3, [r1, r3, lsl #1]
800c38e: 4053 eors r3, r2
800c390: 81bb strh r3, [r7, #12]
for(i = 0; i < len; i++) {
800c392: 89fb ldrh r3, [r7, #14]
800c394: 3301 adds r3, #1
800c396: 81fb strh r3, [r7, #14]
800c398: 89fa ldrh r2, [r7, #14]
800c39a: 88fb ldrh r3, [r7, #6]
800c39c: 429a cmp r2, r3
800c39e: d3ea bcc.n 800c376 <Crc16_RX+0x16>
}
return crc;
800c3a0: 89bb ldrh r3, [r7, #12]
}
800c3a2: 4618 mov r0, r3
800c3a4: 3714 adds r7, #20
800c3a6: 46bd mov sp, r7
800c3a8: f85d 7b04 ldr.w r7, [sp], #4
800c3ac: 4770 bx lr
800c3ae: bf00 nop
800c3b0: 2006bd24 .word 0x2006bd24
800c3b4: 0801559c .word 0x0801559c
0800c3b8 <HAL_UART_TxCpltCallback>:
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
{
800c3b8: b580 push {r7, lr}
800c3ba: b082 sub sp, #8
800c3bc: af00 add r7, sp, #0
800c3be: 6078 str r0, [r7, #4]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800c3c0: 2200 movs r2, #0
800c3c2: f44f 7100 mov.w r1, #512 ; 0x200
800c3c6: 4805 ldr r0, [pc, #20] ; (800c3dc <HAL_UART_TxCpltCallback+0x24>)
800c3c8: f002 fb5e bl 800ea88 <HAL_GPIO_WritePin>
TX_OK = true;
800c3cc: 4b04 ldr r3, [pc, #16] ; (800c3e0 <HAL_UART_TxCpltCallback+0x28>)
800c3ce: 2201 movs r2, #1
800c3d0: 701a strb r2, [r3, #0]
}
800c3d2: bf00 nop
800c3d4: 3708 adds r7, #8
800c3d6: 46bd mov sp, r7
800c3d8: bd80 pop {r7, pc}
800c3da: bf00 nop
800c3dc: 40021400 .word 0x40021400
800c3e0: 2006b2fa .word 0x2006b2fa
0800c3e4 <HAL_UART_RxCpltCallback>:
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
800c3e4: b480 push {r7}
800c3e6: b083 sub sp, #12
800c3e8: af00 add r7, sp, #0
800c3ea: 6078 str r0, [r7, #4]
RX_OK = true;
800c3ec: 4b04 ldr r3, [pc, #16] ; (800c400 <HAL_UART_RxCpltCallback+0x1c>)
800c3ee: 2201 movs r2, #1
800c3f0: 701a strb r2, [r3, #0]
}
800c3f2: bf00 nop
800c3f4: 370c adds r7, #12
800c3f6: 46bd mov sp, r7
800c3f8: f85d 7b04 ldr.w r7, [sp], #4
800c3fc: 4770 bx lr
800c3fe: bf00 nop
800c400: 2006b2fb .word 0x2006b2fb
0800c404 <HAL_UART_ErrorCallback>:
void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)
{
800c404: b580 push {r7, lr}
800c406: b082 sub sp, #8
800c408: af00 add r7, sp, #0
800c40a: 6078 str r0, [r7, #4]
RX_OK = TX_OK = false;
800c40c: 2100 movs r1, #0
800c40e: 4b0b ldr r3, [pc, #44] ; (800c43c <HAL_UART_ErrorCallback+0x38>)
800c410: 460a mov r2, r1
800c412: 701a strb r2, [r3, #0]
800c414: 4b0a ldr r3, [pc, #40] ; (800c440 <HAL_UART_ErrorCallback+0x3c>)
800c416: 460a mov r2, r1
800c418: 701a strb r2, [r3, #0]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800c41a: 2200 movs r2, #0
800c41c: f44f 7100 mov.w r1, #512 ; 0x200
800c420: 4808 ldr r0, [pc, #32] ; (800c444 <HAL_UART_ErrorCallback+0x40>)
800c422: f002 fb31 bl 800ea88 <HAL_GPIO_WritePin>
HAL_UART_Abort_IT(&huart7);
800c426: 4808 ldr r0, [pc, #32] ; (800c448 <HAL_UART_ErrorCallback+0x44>)
800c428: f004 fcca bl 8010dc0 <HAL_UART_Abort_IT>
UART_ERROR = true;
800c42c: 4b07 ldr r3, [pc, #28] ; (800c44c <HAL_UART_ErrorCallback+0x48>)
800c42e: 2201 movs r2, #1
800c430: 701a strb r2, [r3, #0]
}
800c432: bf00 nop
800c434: 3708 adds r7, #8
800c436: 46bd mov sp, r7
800c438: bd80 pop {r7, pc}
800c43a: bf00 nop
800c43c: 2006b2fa .word 0x2006b2fa
800c440: 2006b2fb .word 0x2006b2fb
800c444: 40021400 .word 0x40021400
800c448: 2006bc9c .word 0x2006bc9c
800c44c: 2006b2f9 .word 0x2006b2f9
0800c450 <ReadIP>:
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
int8_t ReadIP(void)
{
800c450: b580 push {r7, lr}
800c452: b084 sub sp, #16
800c454: af00 add r7, sp, #0
int8_t res = -1;
800c456: 23ff movs r3, #255 ; 0xff
800c458: 73fb strb r3, [r7, #15]
uint16_t i, len = 0, cnt = 0;
800c45a: 2300 movs r3, #0
800c45c: 81bb strh r3, [r7, #12]
800c45e: 2300 movs r3, #0
800c460: 817b strh r3, [r7, #10]
uint16_t crc;
__IO uint32_t timeout;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
800c462: 4b82 ldr r3, [pc, #520] ; (800c66c <ReadIP+0x21c>)
800c464: 681b ldr r3, [r3, #0]
800c466: 69db ldr r3, [r3, #28]
800c468: f003 0308 and.w r3, r3, #8
800c46c: 2b08 cmp r3, #8
800c46e: d103 bne.n 800c478 <ReadIP+0x28>
__HAL_UART_CLEAR_OREFLAG(&huart7);
800c470: 4b7e ldr r3, [pc, #504] ; (800c66c <ReadIP+0x21c>)
800c472: 681b ldr r3, [r3, #0]
800c474: 2208 movs r2, #8
800c476: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
800c478: 4b7c ldr r3, [pc, #496] ; (800c66c <ReadIP+0x21c>)
800c47a: 681b ldr r3, [r3, #0]
800c47c: 69db ldr r3, [r3, #28]
800c47e: f003 0301 and.w r3, r3, #1
800c482: 2b01 cmp r3, #1
800c484: d103 bne.n 800c48e <ReadIP+0x3e>
__HAL_UART_CLEAR_PEFLAG(&huart7);
800c486: 4b79 ldr r3, [pc, #484] ; (800c66c <ReadIP+0x21c>)
800c488: 681b ldr r3, [r3, #0]
800c48a: 2201 movs r2, #1
800c48c: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
800c48e: 4b77 ldr r3, [pc, #476] ; (800c66c <ReadIP+0x21c>)
800c490: 681b ldr r3, [r3, #0]
800c492: 69db ldr r3, [r3, #28]
800c494: f003 0302 and.w r3, r3, #2
800c498: 2b02 cmp r3, #2
800c49a: d103 bne.n 800c4a4 <ReadIP+0x54>
__HAL_UART_CLEAR_FEFLAG(&huart7);
800c49c: 4b73 ldr r3, [pc, #460] ; (800c66c <ReadIP+0x21c>)
800c49e: 681b ldr r3, [r3, #0]
800c4a0: 2202 movs r2, #2
800c4a2: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
800c4a4: 4b71 ldr r3, [pc, #452] ; (800c66c <ReadIP+0x21c>)
800c4a6: 681b ldr r3, [r3, #0]
800c4a8: 69db ldr r3, [r3, #28]
800c4aa: f003 0304 and.w r3, r3, #4
800c4ae: 2b04 cmp r3, #4
800c4b0: d103 bne.n 800c4ba <ReadIP+0x6a>
__HAL_UART_CLEAR_NEFLAG(&huart7);
800c4b2: 4b6e ldr r3, [pc, #440] ; (800c66c <ReadIP+0x21c>)
800c4b4: 681b ldr r3, [r3, #0]
800c4b6: 2204 movs r2, #4
800c4b8: 621a str r2, [r3, #32]
HAL_Delay(20);
800c4ba: 2014 movs r0, #20
800c4bc: f001 fafe bl 800dabc <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
800c4c0: 2200 movs r2, #0
800c4c2: 4b6b ldr r3, [pc, #428] ; (800c670 <ReadIP+0x220>)
800c4c4: 4611 mov r1, r2
800c4c6: 7019 strb r1, [r3, #0]
800c4c8: 4b6a ldr r3, [pc, #424] ; (800c674 <ReadIP+0x224>)
800c4ca: 4611 mov r1, r2
800c4cc: 7019 strb r1, [r3, #0]
800c4ce: 4b6a ldr r3, [pc, #424] ; (800c678 <ReadIP+0x228>)
800c4d0: 701a strb r2, [r3, #0]
len = 0;
800c4d2: 2300 movs r3, #0
800c4d4: 81bb strh r3, [r7, #12]
memset((void *) &rx, 0, sizeof(rx));
800c4d6: f44f 7280 mov.w r2, #256 ; 0x100
800c4da: 2100 movs r1, #0
800c4dc: 4867 ldr r0, [pc, #412] ; (800c67c <ReadIP+0x22c>)
800c4de: f005 ff1a bl 8012316 <memset>
iobuf[len++] = 17;
800c4e2: 89bb ldrh r3, [r7, #12]
800c4e4: 1c5a adds r2, r3, #1
800c4e6: 81ba strh r2, [r7, #12]
800c4e8: 461a mov r2, r3
800c4ea: 4b65 ldr r3, [pc, #404] ; (800c680 <ReadIP+0x230>)
800c4ec: 2111 movs r1, #17
800c4ee: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x03;
800c4f0: 89bb ldrh r3, [r7, #12]
800c4f2: 1c5a adds r2, r3, #1
800c4f4: 81ba strh r2, [r7, #12]
800c4f6: 461a mov r2, r3
800c4f8: 4b61 ldr r3, [pc, #388] ; (800c680 <ReadIP+0x230>)
800c4fa: 2103 movs r1, #3
800c4fc: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(4001);
800c4fe: 89bb ldrh r3, [r7, #12]
800c500: 1c5a adds r2, r3, #1
800c502: 81ba strh r2, [r7, #12]
800c504: 461a mov r2, r3
800c506: 4b5e ldr r3, [pc, #376] ; (800c680 <ReadIP+0x230>)
800c508: 210f movs r1, #15
800c50a: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(4001);
800c50c: 89bb ldrh r3, [r7, #12]
800c50e: 1c5a adds r2, r3, #1
800c510: 81ba strh r2, [r7, #12]
800c512: 461a mov r2, r3
800c514: 4b5a ldr r3, [pc, #360] ; (800c680 <ReadIP+0x230>)
800c516: 21a1 movs r1, #161 ; 0xa1
800c518: 5499 strb r1, [r3, r2]
iobuf[len++] = 0; //
800c51a: 89bb ldrh r3, [r7, #12]
800c51c: 1c5a adds r2, r3, #1
800c51e: 81ba strh r2, [r7, #12]
800c520: 461a mov r2, r3
800c522: 4b57 ldr r3, [pc, #348] ; (800c680 <ReadIP+0x230>)
800c524: 2100 movs r1, #0
800c526: 5499 strb r1, [r3, r2]
iobuf[len++] = 2; //
800c528: 89bb ldrh r3, [r7, #12]
800c52a: 1c5a adds r2, r3, #1
800c52c: 81ba strh r2, [r7, #12]
800c52e: 461a mov r2, r3
800c530: 4b53 ldr r3, [pc, #332] ; (800c680 <ReadIP+0x230>)
800c532: 2102 movs r1, #2
800c534: 5499 strb r1, [r3, r2]
crc = Crc16(len);
800c536: 89bb ldrh r3, [r7, #12]
800c538: 4618 mov r0, r3
800c53a: f7ff fee5 bl 800c308 <Crc16>
800c53e: 4603 mov r3, r0
800c540: 813b strh r3, [r7, #8]
iobuf[len++] = LO(crc);
800c542: 89bb ldrh r3, [r7, #12]
800c544: 1c5a adds r2, r3, #1
800c546: 81ba strh r2, [r7, #12]
800c548: 461a mov r2, r3
800c54a: 893b ldrh r3, [r7, #8]
800c54c: b2d9 uxtb r1, r3
800c54e: 4b4c ldr r3, [pc, #304] ; (800c680 <ReadIP+0x230>)
800c550: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
800c552: 89bb ldrh r3, [r7, #12]
800c554: 1c5a adds r2, r3, #1
800c556: 81ba strh r2, [r7, #12]
800c558: 461a mov r2, r3
800c55a: 893b ldrh r3, [r7, #8]
800c55c: 0a1b lsrs r3, r3, #8
800c55e: b29b uxth r3, r3
800c560: b2d9 uxtb r1, r3
800c562: 4b47 ldr r3, [pc, #284] ; (800c680 <ReadIP+0x230>)
800c564: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
800c566: f001 fa9d bl 800daa4 <HAL_GetTick>
800c56a: 4603 mov r3, r0
800c56c: 607b str r3, [r7, #4]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
800c56e: 2201 movs r2, #1
800c570: f44f 7100 mov.w r1, #512 ; 0x200
800c574: 4843 ldr r0, [pc, #268] ; (800c684 <ReadIP+0x234>)
800c576: f002 fa87 bl 800ea88 <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
800c57a: 89bb ldrh r3, [r7, #12]
800c57c: 461a mov r2, r3
800c57e: 4940 ldr r1, [pc, #256] ; (800c680 <ReadIP+0x230>)
800c580: 483a ldr r0, [pc, #232] ; (800c66c <ReadIP+0x21c>)
800c582: f004 fbaf bl 8010ce4 <HAL_UART_Transmit_IT>
800c586: 4603 mov r3, r0
800c588: 2b00 cmp r3, #0
800c58a: d168 bne.n 800c65e <ReadIP+0x20e>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 50));
800c58c: bf00 nop
800c58e: 4b3a ldr r3, [pc, #232] ; (800c678 <ReadIP+0x228>)
800c590: 781b ldrb r3, [r3, #0]
800c592: b2db uxtb r3, r3
800c594: f083 0301 eor.w r3, r3, #1
800c598: b2db uxtb r3, r3
800c59a: 2b00 cmp r3, #0
800c59c: d006 beq.n 800c5ac <ReadIP+0x15c>
800c59e: f001 fa81 bl 800daa4 <HAL_GetTick>
800c5a2: 4602 mov r2, r0
800c5a4: 687b ldr r3, [r7, #4]
800c5a6: 1ad3 subs r3, r2, r3
800c5a8: 2b31 cmp r3, #49 ; 0x31
800c5aa: d9f0 bls.n 800c58e <ReadIP+0x13e>
if(!TX_OK)
800c5ac: 4b32 ldr r3, [pc, #200] ; (800c678 <ReadIP+0x228>)
800c5ae: 781b ldrb r3, [r3, #0]
800c5b0: b2db uxtb r3, r3
800c5b2: f083 0301 eor.w r3, r3, #1
800c5b6: b2db uxtb r3, r3
800c5b8: 2b00 cmp r3, #0
800c5ba: d00b beq.n 800c5d4 <ReadIP+0x184>
{
HAL_UART_Abort_IT(&huart7);
800c5bc: 482b ldr r0, [pc, #172] ; (800c66c <ReadIP+0x21c>)
800c5be: f004 fbff bl 8010dc0 <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800c5c2: 2200 movs r2, #0
800c5c4: f44f 7100 mov.w r1, #512 ; 0x200
800c5c8: 482e ldr r0, [pc, #184] ; (800c684 <ReadIP+0x234>)
800c5ca: f002 fa5d bl 800ea88 <HAL_GPIO_WritePin>
return (-1);
800c5ce: f04f 33ff mov.w r3, #4294967295
800c5d2: e046 b.n 800c662 <ReadIP+0x212>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800c5d4: 2200 movs r2, #0
800c5d6: f44f 7100 mov.w r1, #512 ; 0x200
800c5da: 482a ldr r0, [pc, #168] ; (800c684 <ReadIP+0x234>)
800c5dc: f002 fa54 bl 800ea88 <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
800c5e0: 2364 movs r3, #100 ; 0x64
800c5e2: 2201 movs r2, #1
800c5e4: 4925 ldr r1, [pc, #148] ; (800c67c <ReadIP+0x22c>)
800c5e6: 4821 ldr r0, [pc, #132] ; (800c66c <ReadIP+0x21c>)
800c5e8: f004 faac bl 8010b44 <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 9, 100) == HAL_OK)
800c5ec: 2364 movs r3, #100 ; 0x64
800c5ee: 2209 movs r2, #9
800c5f0: 4922 ldr r1, [pc, #136] ; (800c67c <ReadIP+0x22c>)
800c5f2: 481e ldr r0, [pc, #120] ; (800c66c <ReadIP+0x21c>)
800c5f4: f004 faa6 bl 8010b44 <HAL_UART_Receive>
800c5f8: 4603 mov r3, r0
800c5fa: 2b00 cmp r3, #0
800c5fc: d126 bne.n 800c64c <ReadIP+0x1fc>
{
crc = (uint16_t) ((rx[8]) << 8 | rx[7]);
800c5fe: 4b1f ldr r3, [pc, #124] ; (800c67c <ReadIP+0x22c>)
800c600: 7a1b ldrb r3, [r3, #8]
800c602: 021b lsls r3, r3, #8
800c604: b21a sxth r2, r3
800c606: 4b1d ldr r3, [pc, #116] ; (800c67c <ReadIP+0x22c>)
800c608: 79db ldrb r3, [r3, #7]
800c60a: b21b sxth r3, r3
800c60c: 4313 orrs r3, r2
800c60e: b21b sxth r3, r3
800c610: 813b strh r3, [r7, #8]
if(crc == Crc16_RX(7))
800c612: 2007 movs r0, #7
800c614: f7ff fea4 bl 800c360 <Crc16_RX>
800c618: 4603 mov r3, r0
800c61a: 461a mov r2, r3
800c61c: 893b ldrh r3, [r7, #8]
800c61e: 4293 cmp r3, r2
800c620: d111 bne.n 800c646 <ReadIP+0x1f6>
{
ip[0] = rx[3];
800c622: 4b16 ldr r3, [pc, #88] ; (800c67c <ReadIP+0x22c>)
800c624: 78da ldrb r2, [r3, #3]
800c626: 4b18 ldr r3, [pc, #96] ; (800c688 <ReadIP+0x238>)
800c628: 701a strb r2, [r3, #0]
ip[1] = rx[4];
800c62a: 4b14 ldr r3, [pc, #80] ; (800c67c <ReadIP+0x22c>)
800c62c: 791a ldrb r2, [r3, #4]
800c62e: 4b16 ldr r3, [pc, #88] ; (800c688 <ReadIP+0x238>)
800c630: 705a strb r2, [r3, #1]
ip[2] = rx[5];
800c632: 4b12 ldr r3, [pc, #72] ; (800c67c <ReadIP+0x22c>)
800c634: 795a ldrb r2, [r3, #5]
800c636: 4b14 ldr r3, [pc, #80] ; (800c688 <ReadIP+0x238>)
800c638: 709a strb r2, [r3, #2]
ip[3] = rx[6];
800c63a: 4b10 ldr r3, [pc, #64] ; (800c67c <ReadIP+0x22c>)
800c63c: 799a ldrb r2, [r3, #6]
800c63e: 4b12 ldr r3, [pc, #72] ; (800c688 <ReadIP+0x238>)
800c640: 70da strb r2, [r3, #3]
return 0;
800c642: 2300 movs r3, #0
800c644: e00d b.n 800c662 <ReadIP+0x212>
}
else
{
return (-1);
800c646: f04f 33ff mov.w r3, #4294967295
800c64a: e00a b.n 800c662 <ReadIP+0x212>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800c64c: 2200 movs r2, #0
800c64e: f44f 7100 mov.w r1, #512 ; 0x200
800c652: 480c ldr r0, [pc, #48] ; (800c684 <ReadIP+0x234>)
800c654: f002 fa18 bl 800ea88 <HAL_GPIO_WritePin>
return (-1);
800c658: f04f 33ff mov.w r3, #4294967295
800c65c: e001 b.n 800c662 <ReadIP+0x212>
}
}
return res;
800c65e: f997 300f ldrsb.w r3, [r7, #15]
}
800c662: 4618 mov r0, r3
800c664: 3710 adds r7, #16
800c666: 46bd mov sp, r7
800c668: bd80 pop {r7, pc}
800c66a: bf00 nop
800c66c: 2006bc9c .word 0x2006bc9c
800c670: 2006b2f9 .word 0x2006b2f9
800c674: 2006b2fb .word 0x2006b2fb
800c678: 2006b2fa .word 0x2006b2fa
800c67c: 2006bd24 .word 0x2006bd24
800c680: 2006be2c .word 0x2006be2c
800c684: 40021400 .word 0x40021400
800c688: 2006b2f4 .word 0x2006b2f4
0800c68c <ReadChannel>:
int8_t ReadChannel(uint8_t ch)
{
800c68c: b580 push {r7, lr}
800c68e: b086 sub sp, #24
800c690: af00 add r7, sp, #0
800c692: 4603 mov r3, r0
800c694: 71fb strb r3, [r7, #7]
int8_t res = -1;
800c696: 23ff movs r3, #255 ; 0xff
800c698: 75fb strb r3, [r7, #23]
uint16_t i, len = 0, cnt = 0;
800c69a: 2300 movs r3, #0
800c69c: 82bb strh r3, [r7, #20]
800c69e: 2300 movs r3, #0
800c6a0: 827b strh r3, [r7, #18]
uint16_t crc;
__IO uint32_t timeout;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
800c6a2: 4b5e ldr r3, [pc, #376] ; (800c81c <ReadChannel+0x190>)
800c6a4: 681b ldr r3, [r3, #0]
800c6a6: 69db ldr r3, [r3, #28]
800c6a8: f003 0308 and.w r3, r3, #8
800c6ac: 2b08 cmp r3, #8
800c6ae: d103 bne.n 800c6b8 <ReadChannel+0x2c>
__HAL_UART_CLEAR_OREFLAG(&huart7);
800c6b0: 4b5a ldr r3, [pc, #360] ; (800c81c <ReadChannel+0x190>)
800c6b2: 681b ldr r3, [r3, #0]
800c6b4: 2208 movs r2, #8
800c6b6: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
800c6b8: 4b58 ldr r3, [pc, #352] ; (800c81c <ReadChannel+0x190>)
800c6ba: 681b ldr r3, [r3, #0]
800c6bc: 69db ldr r3, [r3, #28]
800c6be: f003 0301 and.w r3, r3, #1
800c6c2: 2b01 cmp r3, #1
800c6c4: d103 bne.n 800c6ce <ReadChannel+0x42>
__HAL_UART_CLEAR_PEFLAG(&huart7);
800c6c6: 4b55 ldr r3, [pc, #340] ; (800c81c <ReadChannel+0x190>)
800c6c8: 681b ldr r3, [r3, #0]
800c6ca: 2201 movs r2, #1
800c6cc: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
800c6ce: 4b53 ldr r3, [pc, #332] ; (800c81c <ReadChannel+0x190>)
800c6d0: 681b ldr r3, [r3, #0]
800c6d2: 69db ldr r3, [r3, #28]
800c6d4: f003 0302 and.w r3, r3, #2
800c6d8: 2b02 cmp r3, #2
800c6da: d103 bne.n 800c6e4 <ReadChannel+0x58>
__HAL_UART_CLEAR_FEFLAG(&huart7);
800c6dc: 4b4f ldr r3, [pc, #316] ; (800c81c <ReadChannel+0x190>)
800c6de: 681b ldr r3, [r3, #0]
800c6e0: 2202 movs r2, #2
800c6e2: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
800c6e4: 4b4d ldr r3, [pc, #308] ; (800c81c <ReadChannel+0x190>)
800c6e6: 681b ldr r3, [r3, #0]
800c6e8: 69db ldr r3, [r3, #28]
800c6ea: f003 0304 and.w r3, r3, #4
800c6ee: 2b04 cmp r3, #4
800c6f0: d103 bne.n 800c6fa <ReadChannel+0x6e>
__HAL_UART_CLEAR_NEFLAG(&huart7);
800c6f2: 4b4a ldr r3, [pc, #296] ; (800c81c <ReadChannel+0x190>)
800c6f4: 681b ldr r3, [r3, #0]
800c6f6: 2204 movs r2, #4
800c6f8: 621a str r2, [r3, #32]
HAL_Delay(20);
800c6fa: 2014 movs r0, #20
800c6fc: f001 f9de bl 800dabc <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
800c700: 2200 movs r2, #0
800c702: 4b47 ldr r3, [pc, #284] ; (800c820 <ReadChannel+0x194>)
800c704: 4611 mov r1, r2
800c706: 7019 strb r1, [r3, #0]
800c708: 4b46 ldr r3, [pc, #280] ; (800c824 <ReadChannel+0x198>)
800c70a: 4611 mov r1, r2
800c70c: 7019 strb r1, [r3, #0]
800c70e: 4b46 ldr r3, [pc, #280] ; (800c828 <ReadChannel+0x19c>)
800c710: 701a strb r2, [r3, #0]
len = 0;
800c712: 2300 movs r3, #0
800c714: 82bb strh r3, [r7, #20]
memset((void *) &rx, 0, sizeof(rx));
800c716: f44f 7280 mov.w r2, #256 ; 0x100
800c71a: 2100 movs r1, #0
800c71c: 4843 ldr r0, [pc, #268] ; (800c82c <ReadChannel+0x1a0>)
800c71e: f005 fdfa bl 8012316 <memset>
iobuf[len++] = ch + 1;
800c722: 8abb ldrh r3, [r7, #20]
800c724: 1c5a adds r2, r3, #1
800c726: 82ba strh r2, [r7, #20]
800c728: 461a mov r2, r3
800c72a: 79fb ldrb r3, [r7, #7]
800c72c: 3301 adds r3, #1
800c72e: b2d9 uxtb r1, r3
800c730: 4b3f ldr r3, [pc, #252] ; (800c830 <ReadChannel+0x1a4>)
800c732: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x03;
800c734: 8abb ldrh r3, [r7, #20]
800c736: 1c5a adds r2, r3, #1
800c738: 82ba strh r2, [r7, #20]
800c73a: 461a mov r2, r3
800c73c: 4b3c ldr r3, [pc, #240] ; (800c830 <ReadChannel+0x1a4>)
800c73e: 2103 movs r1, #3
800c740: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(5001);
800c742: 8abb ldrh r3, [r7, #20]
800c744: 1c5a adds r2, r3, #1
800c746: 82ba strh r2, [r7, #20]
800c748: 461a mov r2, r3
800c74a: 4b39 ldr r3, [pc, #228] ; (800c830 <ReadChannel+0x1a4>)
800c74c: 2113 movs r1, #19
800c74e: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(5001);
800c750: 8abb ldrh r3, [r7, #20]
800c752: 1c5a adds r2, r3, #1
800c754: 82ba strh r2, [r7, #20]
800c756: 461a mov r2, r3
800c758: 4b35 ldr r3, [pc, #212] ; (800c830 <ReadChannel+0x1a4>)
800c75a: 2189 movs r1, #137 ; 0x89
800c75c: 5499 strb r1, [r3, r2]
iobuf[len++] = 0; //
800c75e: 8abb ldrh r3, [r7, #20]
800c760: 1c5a adds r2, r3, #1
800c762: 82ba strh r2, [r7, #20]
800c764: 461a mov r2, r3
800c766: 4b32 ldr r3, [pc, #200] ; (800c830 <ReadChannel+0x1a4>)
800c768: 2100 movs r1, #0
800c76a: 5499 strb r1, [r3, r2]
iobuf[len++] = 10; // IIN,IFV,IFN,IKU,IKE,IKD,IKS
800c76c: 8abb ldrh r3, [r7, #20]
800c76e: 1c5a adds r2, r3, #1
800c770: 82ba strh r2, [r7, #20]
800c772: 461a mov r2, r3
800c774: 4b2e ldr r3, [pc, #184] ; (800c830 <ReadChannel+0x1a4>)
800c776: 210a movs r1, #10
800c778: 5499 strb r1, [r3, r2]
crc = Crc16(len);
800c77a: 8abb ldrh r3, [r7, #20]
800c77c: 4618 mov r0, r3
800c77e: f7ff fdc3 bl 800c308 <Crc16>
800c782: 4603 mov r3, r0
800c784: 823b strh r3, [r7, #16]
iobuf[len++] = LO(crc);
800c786: 8abb ldrh r3, [r7, #20]
800c788: 1c5a adds r2, r3, #1
800c78a: 82ba strh r2, [r7, #20]
800c78c: 461a mov r2, r3
800c78e: 8a3b ldrh r3, [r7, #16]
800c790: b2d9 uxtb r1, r3
800c792: 4b27 ldr r3, [pc, #156] ; (800c830 <ReadChannel+0x1a4>)
800c794: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
800c796: 8abb ldrh r3, [r7, #20]
800c798: 1c5a adds r2, r3, #1
800c79a: 82ba strh r2, [r7, #20]
800c79c: 461a mov r2, r3
800c79e: 8a3b ldrh r3, [r7, #16]
800c7a0: 0a1b lsrs r3, r3, #8
800c7a2: b29b uxth r3, r3
800c7a4: b2d9 uxtb r1, r3
800c7a6: 4b22 ldr r3, [pc, #136] ; (800c830 <ReadChannel+0x1a4>)
800c7a8: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
800c7aa: f001 f97b bl 800daa4 <HAL_GetTick>
800c7ae: 4603 mov r3, r0
800c7b0: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
800c7b2: 2201 movs r2, #1
800c7b4: f44f 7100 mov.w r1, #512 ; 0x200
800c7b8: 481e ldr r0, [pc, #120] ; (800c834 <ReadChannel+0x1a8>)
800c7ba: f002 f965 bl 800ea88 <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
800c7be: 8abb ldrh r3, [r7, #20]
800c7c0: 461a mov r2, r3
800c7c2: 491b ldr r1, [pc, #108] ; (800c830 <ReadChannel+0x1a4>)
800c7c4: 4815 ldr r0, [pc, #84] ; (800c81c <ReadChannel+0x190>)
800c7c6: f004 fa8d bl 8010ce4 <HAL_UART_Transmit_IT>
800c7ca: 4603 mov r3, r0
800c7cc: 2b00 cmp r3, #0
800c7ce: f040 8113 bne.w 800c9f8 <ReadChannel+0x36c>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 50));
800c7d2: bf00 nop
800c7d4: 4b14 ldr r3, [pc, #80] ; (800c828 <ReadChannel+0x19c>)
800c7d6: 781b ldrb r3, [r3, #0]
800c7d8: b2db uxtb r3, r3
800c7da: f083 0301 eor.w r3, r3, #1
800c7de: b2db uxtb r3, r3
800c7e0: 2b00 cmp r3, #0
800c7e2: d006 beq.n 800c7f2 <ReadChannel+0x166>
800c7e4: f001 f95e bl 800daa4 <HAL_GetTick>
800c7e8: 4602 mov r2, r0
800c7ea: 68fb ldr r3, [r7, #12]
800c7ec: 1ad3 subs r3, r2, r3
800c7ee: 2b31 cmp r3, #49 ; 0x31
800c7f0: d9f0 bls.n 800c7d4 <ReadChannel+0x148>
if(!TX_OK)
800c7f2: 4b0d ldr r3, [pc, #52] ; (800c828 <ReadChannel+0x19c>)
800c7f4: 781b ldrb r3, [r3, #0]
800c7f6: b2db uxtb r3, r3
800c7f8: f083 0301 eor.w r3, r3, #1
800c7fc: b2db uxtb r3, r3
800c7fe: 2b00 cmp r3, #0
800c800: d01a beq.n 800c838 <ReadChannel+0x1ac>
{
HAL_UART_Abort_IT(&huart7);
800c802: 4806 ldr r0, [pc, #24] ; (800c81c <ReadChannel+0x190>)
800c804: f004 fadc bl 8010dc0 <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800c808: 2200 movs r2, #0
800c80a: f44f 7100 mov.w r1, #512 ; 0x200
800c80e: 4809 ldr r0, [pc, #36] ; (800c834 <ReadChannel+0x1a8>)
800c810: f002 f93a bl 800ea88 <HAL_GPIO_WritePin>
return (-1);
800c814: f04f 33ff mov.w r3, #4294967295
800c818: e0f0 b.n 800c9fc <ReadChannel+0x370>
800c81a: bf00 nop
800c81c: 2006bc9c .word 0x2006bc9c
800c820: 2006b2f9 .word 0x2006b2f9
800c824: 2006b2fb .word 0x2006b2fb
800c828: 2006b2fa .word 0x2006b2fa
800c82c: 2006bd24 .word 0x2006bd24
800c830: 2006be2c .word 0x2006be2c
800c834: 40021400 .word 0x40021400
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800c838: 2200 movs r2, #0
800c83a: f44f 7100 mov.w r1, #512 ; 0x200
800c83e: 4871 ldr r0, [pc, #452] ; (800ca04 <ReadChannel+0x378>)
800c840: f002 f922 bl 800ea88 <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
800c844: 2364 movs r3, #100 ; 0x64
800c846: 2201 movs r2, #1
800c848: 496f ldr r1, [pc, #444] ; (800ca08 <ReadChannel+0x37c>)
800c84a: 4870 ldr r0, [pc, #448] ; (800ca0c <ReadChannel+0x380>)
800c84c: f004 f97a bl 8010b44 <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 25, 100) == HAL_OK)
800c850: 2364 movs r3, #100 ; 0x64
800c852: 2219 movs r2, #25
800c854: 496c ldr r1, [pc, #432] ; (800ca08 <ReadChannel+0x37c>)
800c856: 486d ldr r0, [pc, #436] ; (800ca0c <ReadChannel+0x380>)
800c858: f004 f974 bl 8010b44 <HAL_UART_Receive>
800c85c: 4603 mov r3, r0
800c85e: 2b00 cmp r3, #0
800c860: f040 80c1 bne.w 800c9e6 <ReadChannel+0x35a>
{
crc = (uint16_t) ((rx[24]) << 8 | rx[23]);
800c864: 4b68 ldr r3, [pc, #416] ; (800ca08 <ReadChannel+0x37c>)
800c866: 7e1b ldrb r3, [r3, #24]
800c868: 021b lsls r3, r3, #8
800c86a: b21a sxth r2, r3
800c86c: 4b66 ldr r3, [pc, #408] ; (800ca08 <ReadChannel+0x37c>)
800c86e: 7ddb ldrb r3, [r3, #23]
800c870: b21b sxth r3, r3
800c872: 4313 orrs r3, r2
800c874: b21b sxth r3, r3
800c876: 823b strh r3, [r7, #16]
if(crc == Crc16_RX(23))
800c878: 2017 movs r0, #23
800c87a: f7ff fd71 bl 800c360 <Crc16_RX>
800c87e: 4603 mov r3, r0
800c880: 461a mov r2, r3
800c882: 8a3b ldrh r3, [r7, #16]
800c884: 4293 cmp r3, r2
800c886: f040 80ab bne.w 800c9e0 <ReadChannel+0x354>
{
pardata.amplif[ch].IIN = (uint16_t) ((rx[3]) << 8 | rx[4]);
800c88a: 79fb ldrb r3, [r7, #7]
800c88c: 4a5e ldr r2, [pc, #376] ; (800ca08 <ReadChannel+0x37c>)
800c88e: 78d2 ldrb r2, [r2, #3]
800c890: 0212 lsls r2, r2, #8
800c892: b211 sxth r1, r2
800c894: 4a5c ldr r2, [pc, #368] ; (800ca08 <ReadChannel+0x37c>)
800c896: 7912 ldrb r2, [r2, #4]
800c898: b212 sxth r2, r2
800c89a: 430a orrs r2, r1
800c89c: b212 sxth r2, r2
800c89e: b291 uxth r1, r2
800c8a0: 4a5b ldr r2, [pc, #364] ; (800ca10 <ReadChannel+0x384>)
800c8a2: 015b lsls r3, r3, #5
800c8a4: 4413 add r3, r2
800c8a6: 460a mov r2, r1
800c8a8: 801a strh r2, [r3, #0]
pardata.amplif[ch].IFV = (uint16_t) ((rx[5]) << 8 | rx[6]);
800c8aa: 79fb ldrb r3, [r7, #7]
800c8ac: 4a56 ldr r2, [pc, #344] ; (800ca08 <ReadChannel+0x37c>)
800c8ae: 7952 ldrb r2, [r2, #5]
800c8b0: 0212 lsls r2, r2, #8
800c8b2: b211 sxth r1, r2
800c8b4: 4a54 ldr r2, [pc, #336] ; (800ca08 <ReadChannel+0x37c>)
800c8b6: 7992 ldrb r2, [r2, #6]
800c8b8: b212 sxth r2, r2
800c8ba: 430a orrs r2, r1
800c8bc: b212 sxth r2, r2
800c8be: b291 uxth r1, r2
800c8c0: 4a53 ldr r2, [pc, #332] ; (800ca10 <ReadChannel+0x384>)
800c8c2: 015b lsls r3, r3, #5
800c8c4: 4413 add r3, r2
800c8c6: 3302 adds r3, #2
800c8c8: 460a mov r2, r1
800c8ca: 801a strh r2, [r3, #0]
pardata.amplif[ch].IFN = (uint16_t) ((rx[7]) << 8 | rx[8]);
800c8cc: 79fb ldrb r3, [r7, #7]
800c8ce: 4a4e ldr r2, [pc, #312] ; (800ca08 <ReadChannel+0x37c>)
800c8d0: 79d2 ldrb r2, [r2, #7]
800c8d2: 0212 lsls r2, r2, #8
800c8d4: b211 sxth r1, r2
800c8d6: 4a4c ldr r2, [pc, #304] ; (800ca08 <ReadChannel+0x37c>)
800c8d8: 7a12 ldrb r2, [r2, #8]
800c8da: b212 sxth r2, r2
800c8dc: 430a orrs r2, r1
800c8de: b212 sxth r2, r2
800c8e0: b291 uxth r1, r2
800c8e2: 4a4b ldr r2, [pc, #300] ; (800ca10 <ReadChannel+0x384>)
800c8e4: 015b lsls r3, r3, #5
800c8e6: 4413 add r3, r2
800c8e8: 3304 adds r3, #4
800c8ea: 460a mov r2, r1
800c8ec: 801a strh r2, [r3, #0]
pardata.amplif[ch].IKU = (uint16_t) ((rx[9]) << 8 | rx[10]);
800c8ee: 79fb ldrb r3, [r7, #7]
800c8f0: 4a45 ldr r2, [pc, #276] ; (800ca08 <ReadChannel+0x37c>)
800c8f2: 7a52 ldrb r2, [r2, #9]
800c8f4: 0212 lsls r2, r2, #8
800c8f6: b211 sxth r1, r2
800c8f8: 4a43 ldr r2, [pc, #268] ; (800ca08 <ReadChannel+0x37c>)
800c8fa: 7a92 ldrb r2, [r2, #10]
800c8fc: b212 sxth r2, r2
800c8fe: 430a orrs r2, r1
800c900: b212 sxth r2, r2
800c902: b291 uxth r1, r2
800c904: 4a42 ldr r2, [pc, #264] ; (800ca10 <ReadChannel+0x384>)
800c906: 015b lsls r3, r3, #5
800c908: 4413 add r3, r2
800c90a: 3306 adds r3, #6
800c90c: 460a mov r2, r1
800c90e: 801a strh r2, [r3, #0]
pardata.amplif[ch].IKE = (uint16_t) ((rx[11]) << 8 | rx[12]);
800c910: 79fb ldrb r3, [r7, #7]
800c912: 4a3d ldr r2, [pc, #244] ; (800ca08 <ReadChannel+0x37c>)
800c914: 7ad2 ldrb r2, [r2, #11]
800c916: 0212 lsls r2, r2, #8
800c918: b211 sxth r1, r2
800c91a: 4a3b ldr r2, [pc, #236] ; (800ca08 <ReadChannel+0x37c>)
800c91c: 7b12 ldrb r2, [r2, #12]
800c91e: b212 sxth r2, r2
800c920: 430a orrs r2, r1
800c922: b212 sxth r2, r2
800c924: b291 uxth r1, r2
800c926: 4a3a ldr r2, [pc, #232] ; (800ca10 <ReadChannel+0x384>)
800c928: 015b lsls r3, r3, #5
800c92a: 4413 add r3, r2
800c92c: 3308 adds r3, #8
800c92e: 460a mov r2, r1
800c930: 801a strh r2, [r3, #0]
pardata.amplif[ch].IKD = (uint16_t) ((rx[13]) << 8 | rx[14]);
800c932: 79fb ldrb r3, [r7, #7]
800c934: 4a34 ldr r2, [pc, #208] ; (800ca08 <ReadChannel+0x37c>)
800c936: 7b52 ldrb r2, [r2, #13]
800c938: 0212 lsls r2, r2, #8
800c93a: b211 sxth r1, r2
800c93c: 4a32 ldr r2, [pc, #200] ; (800ca08 <ReadChannel+0x37c>)
800c93e: 7b92 ldrb r2, [r2, #14]
800c940: b212 sxth r2, r2
800c942: 430a orrs r2, r1
800c944: b212 sxth r2, r2
800c946: b291 uxth r1, r2
800c948: 4a31 ldr r2, [pc, #196] ; (800ca10 <ReadChannel+0x384>)
800c94a: 015b lsls r3, r3, #5
800c94c: 4413 add r3, r2
800c94e: 330a adds r3, #10
800c950: 460a mov r2, r1
800c952: 801a strh r2, [r3, #0]
pardata.amplif[ch].IKS = (uint16_t) ((rx[15]) << 8 | rx[16]);
800c954: 79fb ldrb r3, [r7, #7]
800c956: 4a2c ldr r2, [pc, #176] ; (800ca08 <ReadChannel+0x37c>)
800c958: 7bd2 ldrb r2, [r2, #15]
800c95a: 0212 lsls r2, r2, #8
800c95c: b211 sxth r1, r2
800c95e: 4a2a ldr r2, [pc, #168] ; (800ca08 <ReadChannel+0x37c>)
800c960: 7c12 ldrb r2, [r2, #16]
800c962: b212 sxth r2, r2
800c964: 430a orrs r2, r1
800c966: b212 sxth r2, r2
800c968: b291 uxth r1, r2
800c96a: 4a29 ldr r2, [pc, #164] ; (800ca10 <ReadChannel+0x384>)
800c96c: 015b lsls r3, r3, #5
800c96e: 4413 add r3, r2
800c970: 330c adds r3, #12
800c972: 460a mov r2, r1
800c974: 801a strh r2, [r3, #0]
pardata.amplif[ch].IPZ = (uint16_t) ((rx[17]) << 8 | rx[18]);
800c976: 79fb ldrb r3, [r7, #7]
800c978: 4a23 ldr r2, [pc, #140] ; (800ca08 <ReadChannel+0x37c>)
800c97a: 7c52 ldrb r2, [r2, #17]
800c97c: 0212 lsls r2, r2, #8
800c97e: b211 sxth r1, r2
800c980: 4a21 ldr r2, [pc, #132] ; (800ca08 <ReadChannel+0x37c>)
800c982: 7c92 ldrb r2, [r2, #18]
800c984: b212 sxth r2, r2
800c986: 430a orrs r2, r1
800c988: b212 sxth r2, r2
800c98a: b291 uxth r1, r2
800c98c: 4a20 ldr r2, [pc, #128] ; (800ca10 <ReadChannel+0x384>)
800c98e: 015b lsls r3, r3, #5
800c990: 4413 add r3, r2
800c992: 330e adds r3, #14
800c994: 460a mov r2, r1
800c996: 801a strh r2, [r3, #0]
pardata.amplif[ch].OPZ = (uint16_t) ((rx[19]) << 8 | rx[20]);
800c998: 79fb ldrb r3, [r7, #7]
800c99a: 4a1b ldr r2, [pc, #108] ; (800ca08 <ReadChannel+0x37c>)
800c99c: 7cd2 ldrb r2, [r2, #19]
800c99e: 0212 lsls r2, r2, #8
800c9a0: b211 sxth r1, r2
800c9a2: 4a19 ldr r2, [pc, #100] ; (800ca08 <ReadChannel+0x37c>)
800c9a4: 7d12 ldrb r2, [r2, #20]
800c9a6: b212 sxth r2, r2
800c9a8: 430a orrs r2, r1
800c9aa: b212 sxth r2, r2
800c9ac: b291 uxth r1, r2
800c9ae: 4a18 ldr r2, [pc, #96] ; (800ca10 <ReadChannel+0x384>)
800c9b0: 015b lsls r3, r3, #5
800c9b2: 4413 add r3, r2
800c9b4: 3310 adds r3, #16
800c9b6: 460a mov r2, r1
800c9b8: 801a strh r2, [r3, #0]
pardata.amplif[ch].VAL = (uint16_t) ((rx[21]) << 8 | rx[22]);
800c9ba: 79fb ldrb r3, [r7, #7]
800c9bc: 4a12 ldr r2, [pc, #72] ; (800ca08 <ReadChannel+0x37c>)
800c9be: 7d52 ldrb r2, [r2, #21]
800c9c0: 0212 lsls r2, r2, #8
800c9c2: b211 sxth r1, r2
800c9c4: 4a10 ldr r2, [pc, #64] ; (800ca08 <ReadChannel+0x37c>)
800c9c6: 7d92 ldrb r2, [r2, #22]
800c9c8: b212 sxth r2, r2
800c9ca: 430a orrs r2, r1
800c9cc: b212 sxth r2, r2
800c9ce: b291 uxth r1, r2
800c9d0: 4a0f ldr r2, [pc, #60] ; (800ca10 <ReadChannel+0x384>)
800c9d2: 015b lsls r3, r3, #5
800c9d4: 4413 add r3, r2
800c9d6: 3312 adds r3, #18
800c9d8: 460a mov r2, r1
800c9da: 801a strh r2, [r3, #0]
return 0;
800c9dc: 2300 movs r3, #0
800c9de: e00d b.n 800c9fc <ReadChannel+0x370>
}
else
{
return (-1);
800c9e0: f04f 33ff mov.w r3, #4294967295
800c9e4: e00a b.n 800c9fc <ReadChannel+0x370>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800c9e6: 2200 movs r2, #0
800c9e8: f44f 7100 mov.w r1, #512 ; 0x200
800c9ec: 4805 ldr r0, [pc, #20] ; (800ca04 <ReadChannel+0x378>)
800c9ee: f002 f84b bl 800ea88 <HAL_GPIO_WritePin>
return (-1);
800c9f2: f04f 33ff mov.w r3, #4294967295
800c9f6: e001 b.n 800c9fc <ReadChannel+0x370>
}
}
return res;
800c9f8: f997 3017 ldrsb.w r3, [r7, #23]
}
800c9fc: 4618 mov r0, r3
800c9fe: 3718 adds r7, #24
800ca00: 46bd mov sp, r7
800ca02: bd80 pop {r7, pc}
800ca04: 40021400 .word 0x40021400
800ca08: 2006bd24 .word 0x2006bd24
800ca0c: 2006bc9c .word 0x2006bc9c
800ca10: 2006b510 .word 0x2006b510
0800ca14 <WriteChannel>:
int8_t WriteChannel(uint8_t ch)
{
800ca14: b580 push {r7, lr}
800ca16: b086 sub sp, #24
800ca18: af00 add r7, sp, #0
800ca1a: 4603 mov r3, r0
800ca1c: 71fb strb r3, [r7, #7]
int8_t res = -1;
800ca1e: 23ff movs r3, #255 ; 0xff
800ca20: 75fb strb r3, [r7, #23]
uint16_t i, len = 0;
800ca22: 2300 movs r3, #0
800ca24: 82bb strh r3, [r7, #20]
uint16_t crc;
__IO uint32_t timeout;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
800ca26: 4ba8 ldr r3, [pc, #672] ; (800ccc8 <WriteChannel+0x2b4>)
800ca28: 681b ldr r3, [r3, #0]
800ca2a: 69db ldr r3, [r3, #28]
800ca2c: f003 0308 and.w r3, r3, #8
800ca30: 2b08 cmp r3, #8
800ca32: d103 bne.n 800ca3c <WriteChannel+0x28>
__HAL_UART_CLEAR_OREFLAG(&huart7);
800ca34: 4ba4 ldr r3, [pc, #656] ; (800ccc8 <WriteChannel+0x2b4>)
800ca36: 681b ldr r3, [r3, #0]
800ca38: 2208 movs r2, #8
800ca3a: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
800ca3c: 4ba2 ldr r3, [pc, #648] ; (800ccc8 <WriteChannel+0x2b4>)
800ca3e: 681b ldr r3, [r3, #0]
800ca40: 69db ldr r3, [r3, #28]
800ca42: f003 0301 and.w r3, r3, #1
800ca46: 2b01 cmp r3, #1
800ca48: d103 bne.n 800ca52 <WriteChannel+0x3e>
__HAL_UART_CLEAR_PEFLAG(&huart7);
800ca4a: 4b9f ldr r3, [pc, #636] ; (800ccc8 <WriteChannel+0x2b4>)
800ca4c: 681b ldr r3, [r3, #0]
800ca4e: 2201 movs r2, #1
800ca50: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
800ca52: 4b9d ldr r3, [pc, #628] ; (800ccc8 <WriteChannel+0x2b4>)
800ca54: 681b ldr r3, [r3, #0]
800ca56: 69db ldr r3, [r3, #28]
800ca58: f003 0302 and.w r3, r3, #2
800ca5c: 2b02 cmp r3, #2
800ca5e: d103 bne.n 800ca68 <WriteChannel+0x54>
__HAL_UART_CLEAR_FEFLAG(&huart7);
800ca60: 4b99 ldr r3, [pc, #612] ; (800ccc8 <WriteChannel+0x2b4>)
800ca62: 681b ldr r3, [r3, #0]
800ca64: 2202 movs r2, #2
800ca66: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
800ca68: 4b97 ldr r3, [pc, #604] ; (800ccc8 <WriteChannel+0x2b4>)
800ca6a: 681b ldr r3, [r3, #0]
800ca6c: 69db ldr r3, [r3, #28]
800ca6e: f003 0304 and.w r3, r3, #4
800ca72: 2b04 cmp r3, #4
800ca74: d103 bne.n 800ca7e <WriteChannel+0x6a>
__HAL_UART_CLEAR_NEFLAG(&huart7);
800ca76: 4b94 ldr r3, [pc, #592] ; (800ccc8 <WriteChannel+0x2b4>)
800ca78: 681b ldr r3, [r3, #0]
800ca7a: 2204 movs r2, #4
800ca7c: 621a str r2, [r3, #32]
HAL_Delay(20);
800ca7e: 2014 movs r0, #20
800ca80: f001 f81c bl 800dabc <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
800ca84: 2200 movs r2, #0
800ca86: 4b91 ldr r3, [pc, #580] ; (800cccc <WriteChannel+0x2b8>)
800ca88: 4611 mov r1, r2
800ca8a: 7019 strb r1, [r3, #0]
800ca8c: 4b90 ldr r3, [pc, #576] ; (800ccd0 <WriteChannel+0x2bc>)
800ca8e: 4611 mov r1, r2
800ca90: 7019 strb r1, [r3, #0]
800ca92: 4b90 ldr r3, [pc, #576] ; (800ccd4 <WriteChannel+0x2c0>)
800ca94: 701a strb r2, [r3, #0]
len = 0;
800ca96: 2300 movs r3, #0
800ca98: 82bb strh r3, [r7, #20]
memset((void *) &rx, 0, sizeof(rx));
800ca9a: f44f 7280 mov.w r2, #256 ; 0x100
800ca9e: 2100 movs r1, #0
800caa0: 488d ldr r0, [pc, #564] ; (800ccd8 <WriteChannel+0x2c4>)
800caa2: f005 fc38 bl 8012316 <memset>
iobuf[len++] = ch + 1;
800caa6: 8abb ldrh r3, [r7, #20]
800caa8: 1c5a adds r2, r3, #1
800caaa: 82ba strh r2, [r7, #20]
800caac: 461a mov r2, r3
800caae: 79fb ldrb r3, [r7, #7]
800cab0: 3301 adds r3, #1
800cab2: b2d9 uxtb r1, r3
800cab4: 4b89 ldr r3, [pc, #548] ; (800ccdc <WriteChannel+0x2c8>)
800cab6: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x10;
800cab8: 8abb ldrh r3, [r7, #20]
800caba: 1c5a adds r2, r3, #1
800cabc: 82ba strh r2, [r7, #20]
800cabe: 461a mov r2, r3
800cac0: 4b86 ldr r3, [pc, #536] ; (800ccdc <WriteChannel+0x2c8>)
800cac2: 2110 movs r1, #16
800cac4: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(5001);
800cac6: 8abb ldrh r3, [r7, #20]
800cac8: 1c5a adds r2, r3, #1
800caca: 82ba strh r2, [r7, #20]
800cacc: 461a mov r2, r3
800cace: 4b83 ldr r3, [pc, #524] ; (800ccdc <WriteChannel+0x2c8>)
800cad0: 2113 movs r1, #19
800cad2: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(5001);
800cad4: 8abb ldrh r3, [r7, #20]
800cad6: 1c5a adds r2, r3, #1
800cad8: 82ba strh r2, [r7, #20]
800cada: 461a mov r2, r3
800cadc: 4b7f ldr r3, [pc, #508] ; (800ccdc <WriteChannel+0x2c8>)
800cade: 2189 movs r1, #137 ; 0x89
800cae0: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
800cae2: 8abb ldrh r3, [r7, #20]
800cae4: 1c5a adds r2, r3, #1
800cae6: 82ba strh r2, [r7, #20]
800cae8: 461a mov r2, r3
800caea: 4b7c ldr r3, [pc, #496] ; (800ccdc <WriteChannel+0x2c8>)
800caec: 2100 movs r1, #0
800caee: 5499 strb r1, [r3, r2]
iobuf[len++] = 10;
800caf0: 8abb ldrh r3, [r7, #20]
800caf2: 1c5a adds r2, r3, #1
800caf4: 82ba strh r2, [r7, #20]
800caf6: 461a mov r2, r3
800caf8: 4b78 ldr r3, [pc, #480] ; (800ccdc <WriteChannel+0x2c8>)
800cafa: 210a movs r1, #10
800cafc: 5499 strb r1, [r3, r2]
iobuf[len++] = 20;
800cafe: 8abb ldrh r3, [r7, #20]
800cb00: 1c5a adds r2, r3, #1
800cb02: 82ba strh r2, [r7, #20]
800cb04: 461a mov r2, r3
800cb06: 4b75 ldr r3, [pc, #468] ; (800ccdc <WriteChannel+0x2c8>)
800cb08: 2114 movs r1, #20
800cb0a: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
800cb0c: 8abb ldrh r3, [r7, #20]
800cb0e: 1c5a adds r2, r3, #1
800cb10: 82ba strh r2, [r7, #20]
800cb12: 461a mov r2, r3
800cb14: 4b71 ldr r3, [pc, #452] ; (800ccdc <WriteChannel+0x2c8>)
800cb16: 2100 movs r1, #0
800cb18: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IIN;
800cb1a: 8abb ldrh r3, [r7, #20]
800cb1c: 1c5a adds r2, r3, #1
800cb1e: 82ba strh r2, [r7, #20]
800cb20: 4619 mov r1, r3
800cb22: 79fb ldrb r3, [r7, #7]
800cb24: 4a6e ldr r2, [pc, #440] ; (800cce0 <WriteChannel+0x2cc>)
800cb26: 015b lsls r3, r3, #5
800cb28: 4413 add r3, r2
800cb2a: 881b ldrh r3, [r3, #0]
800cb2c: b29b uxth r3, r3
800cb2e: b2da uxtb r2, r3
800cb30: 4b6a ldr r3, [pc, #424] ; (800ccdc <WriteChannel+0x2c8>)
800cb32: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
800cb34: 8abb ldrh r3, [r7, #20]
800cb36: 1c5a adds r2, r3, #1
800cb38: 82ba strh r2, [r7, #20]
800cb3a: 461a mov r2, r3
800cb3c: 4b67 ldr r3, [pc, #412] ; (800ccdc <WriteChannel+0x2c8>)
800cb3e: 2100 movs r1, #0
800cb40: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IFV;
800cb42: 8abb ldrh r3, [r7, #20]
800cb44: 1c5a adds r2, r3, #1
800cb46: 82ba strh r2, [r7, #20]
800cb48: 4619 mov r1, r3
800cb4a: 79fb ldrb r3, [r7, #7]
800cb4c: 4a64 ldr r2, [pc, #400] ; (800cce0 <WriteChannel+0x2cc>)
800cb4e: 015b lsls r3, r3, #5
800cb50: 4413 add r3, r2
800cb52: 3302 adds r3, #2
800cb54: 881b ldrh r3, [r3, #0]
800cb56: b29b uxth r3, r3
800cb58: b2da uxtb r2, r3
800cb5a: 4b60 ldr r3, [pc, #384] ; (800ccdc <WriteChannel+0x2c8>)
800cb5c: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
800cb5e: 8abb ldrh r3, [r7, #20]
800cb60: 1c5a adds r2, r3, #1
800cb62: 82ba strh r2, [r7, #20]
800cb64: 461a mov r2, r3
800cb66: 4b5d ldr r3, [pc, #372] ; (800ccdc <WriteChannel+0x2c8>)
800cb68: 2100 movs r1, #0
800cb6a: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IFN;
800cb6c: 8abb ldrh r3, [r7, #20]
800cb6e: 1c5a adds r2, r3, #1
800cb70: 82ba strh r2, [r7, #20]
800cb72: 4619 mov r1, r3
800cb74: 79fb ldrb r3, [r7, #7]
800cb76: 4a5a ldr r2, [pc, #360] ; (800cce0 <WriteChannel+0x2cc>)
800cb78: 015b lsls r3, r3, #5
800cb7a: 4413 add r3, r2
800cb7c: 3304 adds r3, #4
800cb7e: 881b ldrh r3, [r3, #0]
800cb80: b29b uxth r3, r3
800cb82: b2da uxtb r2, r3
800cb84: 4b55 ldr r3, [pc, #340] ; (800ccdc <WriteChannel+0x2c8>)
800cb86: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
800cb88: 8abb ldrh r3, [r7, #20]
800cb8a: 1c5a adds r2, r3, #1
800cb8c: 82ba strh r2, [r7, #20]
800cb8e: 461a mov r2, r3
800cb90: 4b52 ldr r3, [pc, #328] ; (800ccdc <WriteChannel+0x2c8>)
800cb92: 2100 movs r1, #0
800cb94: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IKU;
800cb96: 8abb ldrh r3, [r7, #20]
800cb98: 1c5a adds r2, r3, #1
800cb9a: 82ba strh r2, [r7, #20]
800cb9c: 4619 mov r1, r3
800cb9e: 79fb ldrb r3, [r7, #7]
800cba0: 4a4f ldr r2, [pc, #316] ; (800cce0 <WriteChannel+0x2cc>)
800cba2: 015b lsls r3, r3, #5
800cba4: 4413 add r3, r2
800cba6: 3306 adds r3, #6
800cba8: 881b ldrh r3, [r3, #0]
800cbaa: b29b uxth r3, r3
800cbac: b2da uxtb r2, r3
800cbae: 4b4b ldr r3, [pc, #300] ; (800ccdc <WriteChannel+0x2c8>)
800cbb0: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
800cbb2: 8abb ldrh r3, [r7, #20]
800cbb4: 1c5a adds r2, r3, #1
800cbb6: 82ba strh r2, [r7, #20]
800cbb8: 461a mov r2, r3
800cbba: 4b48 ldr r3, [pc, #288] ; (800ccdc <WriteChannel+0x2c8>)
800cbbc: 2100 movs r1, #0
800cbbe: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IKE;
800cbc0: 8abb ldrh r3, [r7, #20]
800cbc2: 1c5a adds r2, r3, #1
800cbc4: 82ba strh r2, [r7, #20]
800cbc6: 4619 mov r1, r3
800cbc8: 79fb ldrb r3, [r7, #7]
800cbca: 4a45 ldr r2, [pc, #276] ; (800cce0 <WriteChannel+0x2cc>)
800cbcc: 015b lsls r3, r3, #5
800cbce: 4413 add r3, r2
800cbd0: 3308 adds r3, #8
800cbd2: 881b ldrh r3, [r3, #0]
800cbd4: b29b uxth r3, r3
800cbd6: b2da uxtb r2, r3
800cbd8: 4b40 ldr r3, [pc, #256] ; (800ccdc <WriteChannel+0x2c8>)
800cbda: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
800cbdc: 8abb ldrh r3, [r7, #20]
800cbde: 1c5a adds r2, r3, #1
800cbe0: 82ba strh r2, [r7, #20]
800cbe2: 461a mov r2, r3
800cbe4: 4b3d ldr r3, [pc, #244] ; (800ccdc <WriteChannel+0x2c8>)
800cbe6: 2100 movs r1, #0
800cbe8: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IKD;
800cbea: 8abb ldrh r3, [r7, #20]
800cbec: 1c5a adds r2, r3, #1
800cbee: 82ba strh r2, [r7, #20]
800cbf0: 4619 mov r1, r3
800cbf2: 79fb ldrb r3, [r7, #7]
800cbf4: 4a3a ldr r2, [pc, #232] ; (800cce0 <WriteChannel+0x2cc>)
800cbf6: 015b lsls r3, r3, #5
800cbf8: 4413 add r3, r2
800cbfa: 330a adds r3, #10
800cbfc: 881b ldrh r3, [r3, #0]
800cbfe: b29b uxth r3, r3
800cc00: b2da uxtb r2, r3
800cc02: 4b36 ldr r3, [pc, #216] ; (800ccdc <WriteChannel+0x2c8>)
800cc04: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
800cc06: 8abb ldrh r3, [r7, #20]
800cc08: 1c5a adds r2, r3, #1
800cc0a: 82ba strh r2, [r7, #20]
800cc0c: 461a mov r2, r3
800cc0e: 4b33 ldr r3, [pc, #204] ; (800ccdc <WriteChannel+0x2c8>)
800cc10: 2100 movs r1, #0
800cc12: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IKS;
800cc14: 8abb ldrh r3, [r7, #20]
800cc16: 1c5a adds r2, r3, #1
800cc18: 82ba strh r2, [r7, #20]
800cc1a: 4619 mov r1, r3
800cc1c: 79fb ldrb r3, [r7, #7]
800cc1e: 4a30 ldr r2, [pc, #192] ; (800cce0 <WriteChannel+0x2cc>)
800cc20: 015b lsls r3, r3, #5
800cc22: 4413 add r3, r2
800cc24: 330c adds r3, #12
800cc26: 881b ldrh r3, [r3, #0]
800cc28: b29b uxth r3, r3
800cc2a: b2da uxtb r2, r3
800cc2c: 4b2b ldr r3, [pc, #172] ; (800ccdc <WriteChannel+0x2c8>)
800cc2e: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
800cc30: 8abb ldrh r3, [r7, #20]
800cc32: 1c5a adds r2, r3, #1
800cc34: 82ba strh r2, [r7, #20]
800cc36: 461a mov r2, r3
800cc38: 4b28 ldr r3, [pc, #160] ; (800ccdc <WriteChannel+0x2c8>)
800cc3a: 2100 movs r1, #0
800cc3c: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IPZ;
800cc3e: 8abb ldrh r3, [r7, #20]
800cc40: 1c5a adds r2, r3, #1
800cc42: 82ba strh r2, [r7, #20]
800cc44: 4619 mov r1, r3
800cc46: 79fb ldrb r3, [r7, #7]
800cc48: 4a25 ldr r2, [pc, #148] ; (800cce0 <WriteChannel+0x2cc>)
800cc4a: 015b lsls r3, r3, #5
800cc4c: 4413 add r3, r2
800cc4e: 330e adds r3, #14
800cc50: 881b ldrh r3, [r3, #0]
800cc52: b29b uxth r3, r3
800cc54: b2da uxtb r2, r3
800cc56: 4b21 ldr r3, [pc, #132] ; (800ccdc <WriteChannel+0x2c8>)
800cc58: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
800cc5a: 8abb ldrh r3, [r7, #20]
800cc5c: 1c5a adds r2, r3, #1
800cc5e: 82ba strh r2, [r7, #20]
800cc60: 461a mov r2, r3
800cc62: 4b1e ldr r3, [pc, #120] ; (800ccdc <WriteChannel+0x2c8>)
800cc64: 2100 movs r1, #0
800cc66: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].OPZ;
800cc68: 8abb ldrh r3, [r7, #20]
800cc6a: 1c5a adds r2, r3, #1
800cc6c: 82ba strh r2, [r7, #20]
800cc6e: 4619 mov r1, r3
800cc70: 79fb ldrb r3, [r7, #7]
800cc72: 4a1b ldr r2, [pc, #108] ; (800cce0 <WriteChannel+0x2cc>)
800cc74: 015b lsls r3, r3, #5
800cc76: 4413 add r3, r2
800cc78: 3310 adds r3, #16
800cc7a: 881b ldrh r3, [r3, #0]
800cc7c: b29b uxth r3, r3
800cc7e: b2da uxtb r2, r3
800cc80: 4b16 ldr r3, [pc, #88] ; (800ccdc <WriteChannel+0x2c8>)
800cc82: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
800cc84: 8abb ldrh r3, [r7, #20]
800cc86: 1c5a adds r2, r3, #1
800cc88: 82ba strh r2, [r7, #20]
800cc8a: 461a mov r2, r3
800cc8c: 4b13 ldr r3, [pc, #76] ; (800ccdc <WriteChannel+0x2c8>)
800cc8e: 2100 movs r1, #0
800cc90: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].VAL;
800cc92: 8abb ldrh r3, [r7, #20]
800cc94: 1c5a adds r2, r3, #1
800cc96: 82ba strh r2, [r7, #20]
800cc98: 4619 mov r1, r3
800cc9a: 79fb ldrb r3, [r7, #7]
800cc9c: 4a10 ldr r2, [pc, #64] ; (800cce0 <WriteChannel+0x2cc>)
800cc9e: 015b lsls r3, r3, #5
800cca0: 4413 add r3, r2
800cca2: 3312 adds r3, #18
800cca4: 881b ldrh r3, [r3, #0]
800cca6: b29b uxth r3, r3
800cca8: b2da uxtb r2, r3
800ccaa: 4b0c ldr r3, [pc, #48] ; (800ccdc <WriteChannel+0x2c8>)
800ccac: 545a strb r2, [r3, r1]
crc = Crc16(len);
800ccae: 8abb ldrh r3, [r7, #20]
800ccb0: 4618 mov r0, r3
800ccb2: f7ff fb29 bl 800c308 <Crc16>
800ccb6: 4603 mov r3, r0
800ccb8: 827b strh r3, [r7, #18]
iobuf[len++] = LO(crc);
800ccba: 8abb ldrh r3, [r7, #20]
800ccbc: 1c5a adds r2, r3, #1
800ccbe: 82ba strh r2, [r7, #20]
800ccc0: 461a mov r2, r3
800ccc2: 8a7b ldrh r3, [r7, #18]
800ccc4: b2d9 uxtb r1, r3
800ccc6: e00d b.n 800cce4 <WriteChannel+0x2d0>
800ccc8: 2006bc9c .word 0x2006bc9c
800cccc: 2006b2f9 .word 0x2006b2f9
800ccd0: 2006b2fb .word 0x2006b2fb
800ccd4: 2006b2fa .word 0x2006b2fa
800ccd8: 2006bd24 .word 0x2006bd24
800ccdc: 2006be2c .word 0x2006be2c
800cce0: 2006b510 .word 0x2006b510
800cce4: 4b44 ldr r3, [pc, #272] ; (800cdf8 <WriteChannel+0x3e4>)
800cce6: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
800cce8: 8abb ldrh r3, [r7, #20]
800ccea: 1c5a adds r2, r3, #1
800ccec: 82ba strh r2, [r7, #20]
800ccee: 461a mov r2, r3
800ccf0: 8a7b ldrh r3, [r7, #18]
800ccf2: 0a1b lsrs r3, r3, #8
800ccf4: b29b uxth r3, r3
800ccf6: b2d9 uxtb r1, r3
800ccf8: 4b3f ldr r3, [pc, #252] ; (800cdf8 <WriteChannel+0x3e4>)
800ccfa: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
800ccfc: f000 fed2 bl 800daa4 <HAL_GetTick>
800cd00: 4603 mov r3, r0
800cd02: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
800cd04: 2201 movs r2, #1
800cd06: f44f 7100 mov.w r1, #512 ; 0x200
800cd0a: 483c ldr r0, [pc, #240] ; (800cdfc <WriteChannel+0x3e8>)
800cd0c: f001 febc bl 800ea88 <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
800cd10: 8abb ldrh r3, [r7, #20]
800cd12: 461a mov r2, r3
800cd14: 4938 ldr r1, [pc, #224] ; (800cdf8 <WriteChannel+0x3e4>)
800cd16: 483a ldr r0, [pc, #232] ; (800ce00 <WriteChannel+0x3ec>)
800cd18: f003 ffe4 bl 8010ce4 <HAL_UART_Transmit_IT>
800cd1c: 4603 mov r3, r0
800cd1e: 2b00 cmp r3, #0
800cd20: d163 bne.n 800cdea <WriteChannel+0x3d6>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 200));
800cd22: bf00 nop
800cd24: 4b37 ldr r3, [pc, #220] ; (800ce04 <WriteChannel+0x3f0>)
800cd26: 781b ldrb r3, [r3, #0]
800cd28: b2db uxtb r3, r3
800cd2a: f083 0301 eor.w r3, r3, #1
800cd2e: b2db uxtb r3, r3
800cd30: 2b00 cmp r3, #0
800cd32: d006 beq.n 800cd42 <WriteChannel+0x32e>
800cd34: f000 feb6 bl 800daa4 <HAL_GetTick>
800cd38: 4602 mov r2, r0
800cd3a: 68fb ldr r3, [r7, #12]
800cd3c: 1ad3 subs r3, r2, r3
800cd3e: 2bc7 cmp r3, #199 ; 0xc7
800cd40: d9f0 bls.n 800cd24 <WriteChannel+0x310>
if(!TX_OK)
800cd42: 4b30 ldr r3, [pc, #192] ; (800ce04 <WriteChannel+0x3f0>)
800cd44: 781b ldrb r3, [r3, #0]
800cd46: b2db uxtb r3, r3
800cd48: f083 0301 eor.w r3, r3, #1
800cd4c: b2db uxtb r3, r3
800cd4e: 2b00 cmp r3, #0
800cd50: d00b beq.n 800cd6a <WriteChannel+0x356>
{
HAL_UART_Abort_IT(&huart7);
800cd52: 482b ldr r0, [pc, #172] ; (800ce00 <WriteChannel+0x3ec>)
800cd54: f004 f834 bl 8010dc0 <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800cd58: 2200 movs r2, #0
800cd5a: f44f 7100 mov.w r1, #512 ; 0x200
800cd5e: 4827 ldr r0, [pc, #156] ; (800cdfc <WriteChannel+0x3e8>)
800cd60: f001 fe92 bl 800ea88 <HAL_GPIO_WritePin>
return (-1);
800cd64: f04f 33ff mov.w r3, #4294967295
800cd68: e041 b.n 800cdee <WriteChannel+0x3da>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800cd6a: 2200 movs r2, #0
800cd6c: f44f 7100 mov.w r1, #512 ; 0x200
800cd70: 4822 ldr r0, [pc, #136] ; (800cdfc <WriteChannel+0x3e8>)
800cd72: f001 fe89 bl 800ea88 <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
800cd76: 2364 movs r3, #100 ; 0x64
800cd78: 2201 movs r2, #1
800cd7a: 4923 ldr r1, [pc, #140] ; (800ce08 <WriteChannel+0x3f4>)
800cd7c: 4820 ldr r0, [pc, #128] ; (800ce00 <WriteChannel+0x3ec>)
800cd7e: f003 fee1 bl 8010b44 <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK)
800cd82: f44f 73fa mov.w r3, #500 ; 0x1f4
800cd86: 2208 movs r2, #8
800cd88: 491f ldr r1, [pc, #124] ; (800ce08 <WriteChannel+0x3f4>)
800cd8a: 481d ldr r0, [pc, #116] ; (800ce00 <WriteChannel+0x3ec>)
800cd8c: f003 feda bl 8010b44 <HAL_UART_Receive>
800cd90: 4603 mov r3, r0
800cd92: 2b00 cmp r3, #0
800cd94: d120 bne.n 800cdd8 <WriteChannel+0x3c4>
{
crc = (uint16_t) ((rx[7]) << 8 | rx[6]);
800cd96: 4b1c ldr r3, [pc, #112] ; (800ce08 <WriteChannel+0x3f4>)
800cd98: 79db ldrb r3, [r3, #7]
800cd9a: 021b lsls r3, r3, #8
800cd9c: b21a sxth r2, r3
800cd9e: 4b1a ldr r3, [pc, #104] ; (800ce08 <WriteChannel+0x3f4>)
800cda0: 799b ldrb r3, [r3, #6]
800cda2: b21b sxth r3, r3
800cda4: 4313 orrs r3, r2
800cda6: b21b sxth r3, r3
800cda8: 827b strh r3, [r7, #18]
if(crc == Crc16_RX(6))
800cdaa: 2006 movs r0, #6
800cdac: f7ff fad8 bl 800c360 <Crc16_RX>
800cdb0: 4603 mov r3, r0
800cdb2: 461a mov r2, r3
800cdb4: 8a7b ldrh r3, [r7, #18]
800cdb6: 4293 cmp r3, r2
800cdb8: d10b bne.n 800cdd2 <WriteChannel+0x3be>
{
if(rx[0] == (ch + 1))
800cdba: 4b13 ldr r3, [pc, #76] ; (800ce08 <WriteChannel+0x3f4>)
800cdbc: 781b ldrb r3, [r3, #0]
800cdbe: 461a mov r2, r3
800cdc0: 79fb ldrb r3, [r7, #7]
800cdc2: 3301 adds r3, #1
800cdc4: 429a cmp r2, r3
800cdc6: d101 bne.n 800cdcc <WriteChannel+0x3b8>
return 0;
800cdc8: 2300 movs r3, #0
800cdca: e010 b.n 800cdee <WriteChannel+0x3da>
else return (-1);
800cdcc: f04f 33ff mov.w r3, #4294967295
800cdd0: e00d b.n 800cdee <WriteChannel+0x3da>
}
else
{
return (-1);
800cdd2: f04f 33ff mov.w r3, #4294967295
800cdd6: e00a b.n 800cdee <WriteChannel+0x3da>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800cdd8: 2200 movs r2, #0
800cdda: f44f 7100 mov.w r1, #512 ; 0x200
800cdde: 4807 ldr r0, [pc, #28] ; (800cdfc <WriteChannel+0x3e8>)
800cde0: f001 fe52 bl 800ea88 <HAL_GPIO_WritePin>
return (-1);
800cde4: f04f 33ff mov.w r3, #4294967295
800cde8: e001 b.n 800cdee <WriteChannel+0x3da>
}
}
return res;
800cdea: f997 3017 ldrsb.w r3, [r7, #23]
}
800cdee: 4618 mov r0, r3
800cdf0: 3718 adds r7, #24
800cdf2: 46bd mov sp, r7
800cdf4: bd80 pop {r7, pc}
800cdf6: bf00 nop
800cdf8: 2006be2c .word 0x2006be2c
800cdfc: 40021400 .word 0x40021400
800ce00: 2006bc9c .word 0x2006bc9c
800ce04: 2006b2fa .word 0x2006b2fa
800ce08: 2006bd24 .word 0x2006bd24
0800ce0c <ReadChannelSens>:
int8_t ReadChannelSens(uint8_t ch)
{
800ce0c: b580 push {r7, lr}
800ce0e: b086 sub sp, #24
800ce10: af00 add r7, sp, #0
800ce12: 4603 mov r3, r0
800ce14: 71fb strb r3, [r7, #7]
int8_t res = -1;
800ce16: 23ff movs r3, #255 ; 0xff
800ce18: 75fb strb r3, [r7, #23]
uint16_t i, len = 0, cnt = 0;
800ce1a: 2300 movs r3, #0
800ce1c: 82bb strh r3, [r7, #20]
800ce1e: 2300 movs r3, #0
800ce20: 827b strh r3, [r7, #18]
uint16_t crc;
__IO uint32_t timeout;
sfloat f;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
800ce22: 4b8a ldr r3, [pc, #552] ; (800d04c <ReadChannelSens+0x240>)
800ce24: 681b ldr r3, [r3, #0]
800ce26: 69db ldr r3, [r3, #28]
800ce28: f003 0308 and.w r3, r3, #8
800ce2c: 2b08 cmp r3, #8
800ce2e: d103 bne.n 800ce38 <ReadChannelSens+0x2c>
__HAL_UART_CLEAR_OREFLAG(&huart7);
800ce30: 4b86 ldr r3, [pc, #536] ; (800d04c <ReadChannelSens+0x240>)
800ce32: 681b ldr r3, [r3, #0]
800ce34: 2208 movs r2, #8
800ce36: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
800ce38: 4b84 ldr r3, [pc, #528] ; (800d04c <ReadChannelSens+0x240>)
800ce3a: 681b ldr r3, [r3, #0]
800ce3c: 69db ldr r3, [r3, #28]
800ce3e: f003 0301 and.w r3, r3, #1
800ce42: 2b01 cmp r3, #1
800ce44: d103 bne.n 800ce4e <ReadChannelSens+0x42>
__HAL_UART_CLEAR_PEFLAG(&huart7);
800ce46: 4b81 ldr r3, [pc, #516] ; (800d04c <ReadChannelSens+0x240>)
800ce48: 681b ldr r3, [r3, #0]
800ce4a: 2201 movs r2, #1
800ce4c: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
800ce4e: 4b7f ldr r3, [pc, #508] ; (800d04c <ReadChannelSens+0x240>)
800ce50: 681b ldr r3, [r3, #0]
800ce52: 69db ldr r3, [r3, #28]
800ce54: f003 0302 and.w r3, r3, #2
800ce58: 2b02 cmp r3, #2
800ce5a: d103 bne.n 800ce64 <ReadChannelSens+0x58>
__HAL_UART_CLEAR_FEFLAG(&huart7);
800ce5c: 4b7b ldr r3, [pc, #492] ; (800d04c <ReadChannelSens+0x240>)
800ce5e: 681b ldr r3, [r3, #0]
800ce60: 2202 movs r2, #2
800ce62: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
800ce64: 4b79 ldr r3, [pc, #484] ; (800d04c <ReadChannelSens+0x240>)
800ce66: 681b ldr r3, [r3, #0]
800ce68: 69db ldr r3, [r3, #28]
800ce6a: f003 0304 and.w r3, r3, #4
800ce6e: 2b04 cmp r3, #4
800ce70: d103 bne.n 800ce7a <ReadChannelSens+0x6e>
__HAL_UART_CLEAR_NEFLAG(&huart7);
800ce72: 4b76 ldr r3, [pc, #472] ; (800d04c <ReadChannelSens+0x240>)
800ce74: 681b ldr r3, [r3, #0]
800ce76: 2204 movs r2, #4
800ce78: 621a str r2, [r3, #32]
HAL_Delay(20);
800ce7a: 2014 movs r0, #20
800ce7c: f000 fe1e bl 800dabc <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
800ce80: 2200 movs r2, #0
800ce82: 4b73 ldr r3, [pc, #460] ; (800d050 <ReadChannelSens+0x244>)
800ce84: 4611 mov r1, r2
800ce86: 7019 strb r1, [r3, #0]
800ce88: 4b72 ldr r3, [pc, #456] ; (800d054 <ReadChannelSens+0x248>)
800ce8a: 4611 mov r1, r2
800ce8c: 7019 strb r1, [r3, #0]
800ce8e: 4b72 ldr r3, [pc, #456] ; (800d058 <ReadChannelSens+0x24c>)
800ce90: 701a strb r2, [r3, #0]
len = 0;
800ce92: 2300 movs r3, #0
800ce94: 82bb strh r3, [r7, #20]
memset((void *) &rx, 0, sizeof(rx));
800ce96: f44f 7280 mov.w r2, #256 ; 0x100
800ce9a: 2100 movs r1, #0
800ce9c: 486f ldr r0, [pc, #444] ; (800d05c <ReadChannelSens+0x250>)
800ce9e: f005 fa3a bl 8012316 <memset>
iobuf[len++] = ch + 1;
800cea2: 8abb ldrh r3, [r7, #20]
800cea4: 1c5a adds r2, r3, #1
800cea6: 82ba strh r2, [r7, #20]
800cea8: 461a mov r2, r3
800ceaa: 79fb ldrb r3, [r7, #7]
800ceac: 3301 adds r3, #1
800ceae: b2d9 uxtb r1, r3
800ceb0: 4b6b ldr r3, [pc, #428] ; (800d060 <ReadChannelSens+0x254>)
800ceb2: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x03;
800ceb4: 8abb ldrh r3, [r7, #20]
800ceb6: 1c5a adds r2, r3, #1
800ceb8: 82ba strh r2, [r7, #20]
800ceba: 461a mov r2, r3
800cebc: 4b68 ldr r3, [pc, #416] ; (800d060 <ReadChannelSens+0x254>)
800cebe: 2103 movs r1, #3
800cec0: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(7502);
800cec2: 8abb ldrh r3, [r7, #20]
800cec4: 1c5a adds r2, r3, #1
800cec6: 82ba strh r2, [r7, #20]
800cec8: 461a mov r2, r3
800ceca: 4b65 ldr r3, [pc, #404] ; (800d060 <ReadChannelSens+0x254>)
800cecc: 211d movs r1, #29
800cece: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(7502);
800ced0: 8abb ldrh r3, [r7, #20]
800ced2: 1c5a adds r2, r3, #1
800ced4: 82ba strh r2, [r7, #20]
800ced6: 461a mov r2, r3
800ced8: 4b61 ldr r3, [pc, #388] ; (800d060 <ReadChannelSens+0x254>)
800ceda: 214e movs r1, #78 ; 0x4e
800cedc: 5499 strb r1, [r3, r2]
iobuf[len++] = 0; //
800cede: 8abb ldrh r3, [r7, #20]
800cee0: 1c5a adds r2, r3, #1
800cee2: 82ba strh r2, [r7, #20]
800cee4: 461a mov r2, r3
800cee6: 4b5e ldr r3, [pc, #376] ; (800d060 <ReadChannelSens+0x254>)
800cee8: 2100 movs r1, #0
800ceea: 5499 strb r1, [r3, r2]
iobuf[len++] = 1; // SENS
800ceec: 8abb ldrh r3, [r7, #20]
800ceee: 1c5a adds r2, r3, #1
800cef0: 82ba strh r2, [r7, #20]
800cef2: 461a mov r2, r3
800cef4: 4b5a ldr r3, [pc, #360] ; (800d060 <ReadChannelSens+0x254>)
800cef6: 2101 movs r1, #1
800cef8: 5499 strb r1, [r3, r2]
crc = Crc16(len);
800cefa: 8abb ldrh r3, [r7, #20]
800cefc: 4618 mov r0, r3
800cefe: f7ff fa03 bl 800c308 <Crc16>
800cf02: 4603 mov r3, r0
800cf04: 823b strh r3, [r7, #16]
iobuf[len++] = LO(crc);
800cf06: 8abb ldrh r3, [r7, #20]
800cf08: 1c5a adds r2, r3, #1
800cf0a: 82ba strh r2, [r7, #20]
800cf0c: 461a mov r2, r3
800cf0e: 8a3b ldrh r3, [r7, #16]
800cf10: b2d9 uxtb r1, r3
800cf12: 4b53 ldr r3, [pc, #332] ; (800d060 <ReadChannelSens+0x254>)
800cf14: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
800cf16: 8abb ldrh r3, [r7, #20]
800cf18: 1c5a adds r2, r3, #1
800cf1a: 82ba strh r2, [r7, #20]
800cf1c: 461a mov r2, r3
800cf1e: 8a3b ldrh r3, [r7, #16]
800cf20: 0a1b lsrs r3, r3, #8
800cf22: b29b uxth r3, r3
800cf24: b2d9 uxtb r1, r3
800cf26: 4b4e ldr r3, [pc, #312] ; (800d060 <ReadChannelSens+0x254>)
800cf28: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
800cf2a: f000 fdbb bl 800daa4 <HAL_GetTick>
800cf2e: 4603 mov r3, r0
800cf30: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
800cf32: 2201 movs r2, #1
800cf34: f44f 7100 mov.w r1, #512 ; 0x200
800cf38: 484a ldr r0, [pc, #296] ; (800d064 <ReadChannelSens+0x258>)
800cf3a: f001 fda5 bl 800ea88 <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
800cf3e: 8abb ldrh r3, [r7, #20]
800cf40: 461a mov r2, r3
800cf42: 4947 ldr r1, [pc, #284] ; (800d060 <ReadChannelSens+0x254>)
800cf44: 4841 ldr r0, [pc, #260] ; (800d04c <ReadChannelSens+0x240>)
800cf46: f003 fecd bl 8010ce4 <HAL_UART_Transmit_IT>
800cf4a: 4603 mov r3, r0
800cf4c: 2b00 cmp r3, #0
800cf4e: d177 bne.n 800d040 <ReadChannelSens+0x234>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 50));
800cf50: bf00 nop
800cf52: 4b41 ldr r3, [pc, #260] ; (800d058 <ReadChannelSens+0x24c>)
800cf54: 781b ldrb r3, [r3, #0]
800cf56: b2db uxtb r3, r3
800cf58: f083 0301 eor.w r3, r3, #1
800cf5c: b2db uxtb r3, r3
800cf5e: 2b00 cmp r3, #0
800cf60: d006 beq.n 800cf70 <ReadChannelSens+0x164>
800cf62: f000 fd9f bl 800daa4 <HAL_GetTick>
800cf66: 4602 mov r2, r0
800cf68: 68fb ldr r3, [r7, #12]
800cf6a: 1ad3 subs r3, r2, r3
800cf6c: 2b31 cmp r3, #49 ; 0x31
800cf6e: d9f0 bls.n 800cf52 <ReadChannelSens+0x146>
if(!TX_OK)
800cf70: 4b39 ldr r3, [pc, #228] ; (800d058 <ReadChannelSens+0x24c>)
800cf72: 781b ldrb r3, [r3, #0]
800cf74: b2db uxtb r3, r3
800cf76: f083 0301 eor.w r3, r3, #1
800cf7a: b2db uxtb r3, r3
800cf7c: 2b00 cmp r3, #0
800cf7e: d00b beq.n 800cf98 <ReadChannelSens+0x18c>
{
HAL_UART_Abort_IT(&huart7);
800cf80: 4832 ldr r0, [pc, #200] ; (800d04c <ReadChannelSens+0x240>)
800cf82: f003 ff1d bl 8010dc0 <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800cf86: 2200 movs r2, #0
800cf88: f44f 7100 mov.w r1, #512 ; 0x200
800cf8c: 4835 ldr r0, [pc, #212] ; (800d064 <ReadChannelSens+0x258>)
800cf8e: f001 fd7b bl 800ea88 <HAL_GPIO_WritePin>
return (-1);
800cf92: f04f 33ff mov.w r3, #4294967295
800cf96: e055 b.n 800d044 <ReadChannelSens+0x238>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800cf98: 2200 movs r2, #0
800cf9a: f44f 7100 mov.w r1, #512 ; 0x200
800cf9e: 4831 ldr r0, [pc, #196] ; (800d064 <ReadChannelSens+0x258>)
800cfa0: f001 fd72 bl 800ea88 <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
800cfa4: 2364 movs r3, #100 ; 0x64
800cfa6: 2201 movs r2, #1
800cfa8: 492c ldr r1, [pc, #176] ; (800d05c <ReadChannelSens+0x250>)
800cfaa: 4828 ldr r0, [pc, #160] ; (800d04c <ReadChannelSens+0x240>)
800cfac: f003 fdca bl 8010b44 <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 9, 100) == HAL_OK)
800cfb0: 2364 movs r3, #100 ; 0x64
800cfb2: 2209 movs r2, #9
800cfb4: 4929 ldr r1, [pc, #164] ; (800d05c <ReadChannelSens+0x250>)
800cfb6: 4825 ldr r0, [pc, #148] ; (800d04c <ReadChannelSens+0x240>)
800cfb8: f003 fdc4 bl 8010b44 <HAL_UART_Receive>
800cfbc: 4603 mov r3, r0
800cfbe: 2b00 cmp r3, #0
800cfc0: d135 bne.n 800d02e <ReadChannelSens+0x222>
{
crc = (uint16_t) ((rx[8]) << 8 | rx[7]);
800cfc2: 4b26 ldr r3, [pc, #152] ; (800d05c <ReadChannelSens+0x250>)
800cfc4: 7a1b ldrb r3, [r3, #8]
800cfc6: 021b lsls r3, r3, #8
800cfc8: b21a sxth r2, r3
800cfca: 4b24 ldr r3, [pc, #144] ; (800d05c <ReadChannelSens+0x250>)
800cfcc: 79db ldrb r3, [r3, #7]
800cfce: b21b sxth r3, r3
800cfd0: 4313 orrs r3, r2
800cfd2: b21b sxth r3, r3
800cfd4: 823b strh r3, [r7, #16]
if(crc == Crc16_RX(7))
800cfd6: 2007 movs r0, #7
800cfd8: f7ff f9c2 bl 800c360 <Crc16_RX>
800cfdc: 4603 mov r3, r0
800cfde: 461a mov r2, r3
800cfe0: 8a3b ldrh r3, [r7, #16]
800cfe2: 4293 cmp r3, r2
800cfe4: d120 bne.n 800d028 <ReadChannelSens+0x21c>
{
f.ch[3] = rx[3];
800cfe6: 4b1d ldr r3, [pc, #116] ; (800d05c <ReadChannelSens+0x250>)
800cfe8: 78db ldrb r3, [r3, #3]
800cfea: 72fb strb r3, [r7, #11]
f.ch[2] = rx[4];
800cfec: 4b1b ldr r3, [pc, #108] ; (800d05c <ReadChannelSens+0x250>)
800cfee: 791b ldrb r3, [r3, #4]
800cff0: 72bb strb r3, [r7, #10]
f.ch[1] = rx[5];
800cff2: 4b1a ldr r3, [pc, #104] ; (800d05c <ReadChannelSens+0x250>)
800cff4: 795b ldrb r3, [r3, #5]
800cff6: 727b strb r3, [r7, #9]
f.ch[0] = rx[6];
800cff8: 4b18 ldr r3, [pc, #96] ; (800d05c <ReadChannelSens+0x250>)
800cffa: 799b ldrb r3, [r3, #6]
800cffc: 723b strb r3, [r7, #8]
if(f.fl < 0.0001f) {
800cffe: edd7 7a02 vldr s15, [r7, #8]
800d002: ed9f 7a19 vldr s14, [pc, #100] ; 800d068 <ReadChannelSens+0x25c>
800d006: eef4 7ac7 vcmpe.f32 s15, s14
800d00a: eef1 fa10 vmrs APSR_nzcv, fpscr
800d00e: d502 bpl.n 800d016 <ReadChannelSens+0x20a>
return (-1);
800d010: f04f 33ff mov.w r3, #4294967295
800d014: e016 b.n 800d044 <ReadChannelSens+0x238>
}
else
{
pardata.amplif[ch].SENS = f.fl;
800d016: 79fb ldrb r3, [r7, #7]
800d018: 68ba ldr r2, [r7, #8]
800d01a: 4914 ldr r1, [pc, #80] ; (800d06c <ReadChannelSens+0x260>)
800d01c: 015b lsls r3, r3, #5
800d01e: 440b add r3, r1
800d020: 3318 adds r3, #24
800d022: 601a str r2, [r3, #0]
}
return 0;
800d024: 2300 movs r3, #0
800d026: e00d b.n 800d044 <ReadChannelSens+0x238>
}
else
{
return (-1);
800d028: f04f 33ff mov.w r3, #4294967295
800d02c: e00a b.n 800d044 <ReadChannelSens+0x238>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800d02e: 2200 movs r2, #0
800d030: f44f 7100 mov.w r1, #512 ; 0x200
800d034: 480b ldr r0, [pc, #44] ; (800d064 <ReadChannelSens+0x258>)
800d036: f001 fd27 bl 800ea88 <HAL_GPIO_WritePin>
return (-1);
800d03a: f04f 33ff mov.w r3, #4294967295
800d03e: e001 b.n 800d044 <ReadChannelSens+0x238>
}
}
return res;
800d040: f997 3017 ldrsb.w r3, [r7, #23]
}
800d044: 4618 mov r0, r3
800d046: 3718 adds r7, #24
800d048: 46bd mov sp, r7
800d04a: bd80 pop {r7, pc}
800d04c: 2006bc9c .word 0x2006bc9c
800d050: 2006b2f9 .word 0x2006b2f9
800d054: 2006b2fb .word 0x2006b2fb
800d058: 2006b2fa .word 0x2006b2fa
800d05c: 2006bd24 .word 0x2006bd24
800d060: 2006be2c .word 0x2006be2c
800d064: 40021400 .word 0x40021400
800d068: 38d1b717 .word 0x38d1b717
800d06c: 2006b510 .word 0x2006b510
0800d070 <WriteChannelSens>:
int8_t WriteChannelSens(uint8_t ch)
{
800d070: b580 push {r7, lr}
800d072: b086 sub sp, #24
800d074: af00 add r7, sp, #0
800d076: 4603 mov r3, r0
800d078: 71fb strb r3, [r7, #7]
int8_t res = -1;
800d07a: 23ff movs r3, #255 ; 0xff
800d07c: 75fb strb r3, [r7, #23]
uint16_t i, len = 0;
800d07e: 2300 movs r3, #0
800d080: 82bb strh r3, [r7, #20]
uint16_t crc;
__IO uint32_t timeout;
sfloat f;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
800d082: 4b95 ldr r3, [pc, #596] ; (800d2d8 <WriteChannelSens+0x268>)
800d084: 681b ldr r3, [r3, #0]
800d086: 69db ldr r3, [r3, #28]
800d088: f003 0308 and.w r3, r3, #8
800d08c: 2b08 cmp r3, #8
800d08e: d103 bne.n 800d098 <WriteChannelSens+0x28>
__HAL_UART_CLEAR_OREFLAG(&huart7);
800d090: 4b91 ldr r3, [pc, #580] ; (800d2d8 <WriteChannelSens+0x268>)
800d092: 681b ldr r3, [r3, #0]
800d094: 2208 movs r2, #8
800d096: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
800d098: 4b8f ldr r3, [pc, #572] ; (800d2d8 <WriteChannelSens+0x268>)
800d09a: 681b ldr r3, [r3, #0]
800d09c: 69db ldr r3, [r3, #28]
800d09e: f003 0301 and.w r3, r3, #1
800d0a2: 2b01 cmp r3, #1
800d0a4: d103 bne.n 800d0ae <WriteChannelSens+0x3e>
__HAL_UART_CLEAR_PEFLAG(&huart7);
800d0a6: 4b8c ldr r3, [pc, #560] ; (800d2d8 <WriteChannelSens+0x268>)
800d0a8: 681b ldr r3, [r3, #0]
800d0aa: 2201 movs r2, #1
800d0ac: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
800d0ae: 4b8a ldr r3, [pc, #552] ; (800d2d8 <WriteChannelSens+0x268>)
800d0b0: 681b ldr r3, [r3, #0]
800d0b2: 69db ldr r3, [r3, #28]
800d0b4: f003 0302 and.w r3, r3, #2
800d0b8: 2b02 cmp r3, #2
800d0ba: d103 bne.n 800d0c4 <WriteChannelSens+0x54>
__HAL_UART_CLEAR_FEFLAG(&huart7);
800d0bc: 4b86 ldr r3, [pc, #536] ; (800d2d8 <WriteChannelSens+0x268>)
800d0be: 681b ldr r3, [r3, #0]
800d0c0: 2202 movs r2, #2
800d0c2: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
800d0c4: 4b84 ldr r3, [pc, #528] ; (800d2d8 <WriteChannelSens+0x268>)
800d0c6: 681b ldr r3, [r3, #0]
800d0c8: 69db ldr r3, [r3, #28]
800d0ca: f003 0304 and.w r3, r3, #4
800d0ce: 2b04 cmp r3, #4
800d0d0: d103 bne.n 800d0da <WriteChannelSens+0x6a>
__HAL_UART_CLEAR_NEFLAG(&huart7);
800d0d2: 4b81 ldr r3, [pc, #516] ; (800d2d8 <WriteChannelSens+0x268>)
800d0d4: 681b ldr r3, [r3, #0]
800d0d6: 2204 movs r2, #4
800d0d8: 621a str r2, [r3, #32]
HAL_Delay(20);
800d0da: 2014 movs r0, #20
800d0dc: f000 fcee bl 800dabc <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
800d0e0: 2200 movs r2, #0
800d0e2: 4b7e ldr r3, [pc, #504] ; (800d2dc <WriteChannelSens+0x26c>)
800d0e4: 4611 mov r1, r2
800d0e6: 7019 strb r1, [r3, #0]
800d0e8: 4b7d ldr r3, [pc, #500] ; (800d2e0 <WriteChannelSens+0x270>)
800d0ea: 4611 mov r1, r2
800d0ec: 7019 strb r1, [r3, #0]
800d0ee: 4b7d ldr r3, [pc, #500] ; (800d2e4 <WriteChannelSens+0x274>)
800d0f0: 701a strb r2, [r3, #0]
len = 0;
800d0f2: 2300 movs r3, #0
800d0f4: 82bb strh r3, [r7, #20]
memset((void *) &rx, 0, sizeof(rx));
800d0f6: f44f 7280 mov.w r2, #256 ; 0x100
800d0fa: 2100 movs r1, #0
800d0fc: 487a ldr r0, [pc, #488] ; (800d2e8 <WriteChannelSens+0x278>)
800d0fe: f005 f90a bl 8012316 <memset>
iobuf[len++] = ch + 1;
800d102: 8abb ldrh r3, [r7, #20]
800d104: 1c5a adds r2, r3, #1
800d106: 82ba strh r2, [r7, #20]
800d108: 461a mov r2, r3
800d10a: 79fb ldrb r3, [r7, #7]
800d10c: 3301 adds r3, #1
800d10e: b2d9 uxtb r1, r3
800d110: 4b76 ldr r3, [pc, #472] ; (800d2ec <WriteChannelSens+0x27c>)
800d112: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x10;
800d114: 8abb ldrh r3, [r7, #20]
800d116: 1c5a adds r2, r3, #1
800d118: 82ba strh r2, [r7, #20]
800d11a: 461a mov r2, r3
800d11c: 4b73 ldr r3, [pc, #460] ; (800d2ec <WriteChannelSens+0x27c>)
800d11e: 2110 movs r1, #16
800d120: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(7502);
800d122: 8abb ldrh r3, [r7, #20]
800d124: 1c5a adds r2, r3, #1
800d126: 82ba strh r2, [r7, #20]
800d128: 461a mov r2, r3
800d12a: 4b70 ldr r3, [pc, #448] ; (800d2ec <WriteChannelSens+0x27c>)
800d12c: 211d movs r1, #29
800d12e: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(7502);
800d130: 8abb ldrh r3, [r7, #20]
800d132: 1c5a adds r2, r3, #1
800d134: 82ba strh r2, [r7, #20]
800d136: 461a mov r2, r3
800d138: 4b6c ldr r3, [pc, #432] ; (800d2ec <WriteChannelSens+0x27c>)
800d13a: 214e movs r1, #78 ; 0x4e
800d13c: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
800d13e: 8abb ldrh r3, [r7, #20]
800d140: 1c5a adds r2, r3, #1
800d142: 82ba strh r2, [r7, #20]
800d144: 461a mov r2, r3
800d146: 4b69 ldr r3, [pc, #420] ; (800d2ec <WriteChannelSens+0x27c>)
800d148: 2100 movs r1, #0
800d14a: 5499 strb r1, [r3, r2]
iobuf[len++] = 1;
800d14c: 8abb ldrh r3, [r7, #20]
800d14e: 1c5a adds r2, r3, #1
800d150: 82ba strh r2, [r7, #20]
800d152: 461a mov r2, r3
800d154: 4b65 ldr r3, [pc, #404] ; (800d2ec <WriteChannelSens+0x27c>)
800d156: 2101 movs r1, #1
800d158: 5499 strb r1, [r3, r2]
iobuf[len++] = 4;
800d15a: 8abb ldrh r3, [r7, #20]
800d15c: 1c5a adds r2, r3, #1
800d15e: 82ba strh r2, [r7, #20]
800d160: 461a mov r2, r3
800d162: 4b62 ldr r3, [pc, #392] ; (800d2ec <WriteChannelSens+0x27c>)
800d164: 2104 movs r1, #4
800d166: 5499 strb r1, [r3, r2]
f.fl = pardata.amplif[ch].SENS;
800d168: 79fb ldrb r3, [r7, #7]
800d16a: 4a61 ldr r2, [pc, #388] ; (800d2f0 <WriteChannelSens+0x280>)
800d16c: 015b lsls r3, r3, #5
800d16e: 4413 add r3, r2
800d170: 3318 adds r3, #24
800d172: 681b ldr r3, [r3, #0]
800d174: 60bb str r3, [r7, #8]
iobuf[len++] = f.ch[3];
800d176: 8abb ldrh r3, [r7, #20]
800d178: 1c5a adds r2, r3, #1
800d17a: 82ba strh r2, [r7, #20]
800d17c: 461a mov r2, r3
800d17e: 7af9 ldrb r1, [r7, #11]
800d180: 4b5a ldr r3, [pc, #360] ; (800d2ec <WriteChannelSens+0x27c>)
800d182: 5499 strb r1, [r3, r2]
iobuf[len++] = f.ch[2];
800d184: 8abb ldrh r3, [r7, #20]
800d186: 1c5a adds r2, r3, #1
800d188: 82ba strh r2, [r7, #20]
800d18a: 461a mov r2, r3
800d18c: 7ab9 ldrb r1, [r7, #10]
800d18e: 4b57 ldr r3, [pc, #348] ; (800d2ec <WriteChannelSens+0x27c>)
800d190: 5499 strb r1, [r3, r2]
iobuf[len++] = f.ch[1];
800d192: 8abb ldrh r3, [r7, #20]
800d194: 1c5a adds r2, r3, #1
800d196: 82ba strh r2, [r7, #20]
800d198: 461a mov r2, r3
800d19a: 7a79 ldrb r1, [r7, #9]
800d19c: 4b53 ldr r3, [pc, #332] ; (800d2ec <WriteChannelSens+0x27c>)
800d19e: 5499 strb r1, [r3, r2]
iobuf[len++] = f.ch[0];
800d1a0: 8abb ldrh r3, [r7, #20]
800d1a2: 1c5a adds r2, r3, #1
800d1a4: 82ba strh r2, [r7, #20]
800d1a6: 461a mov r2, r3
800d1a8: 7a39 ldrb r1, [r7, #8]
800d1aa: 4b50 ldr r3, [pc, #320] ; (800d2ec <WriteChannelSens+0x27c>)
800d1ac: 5499 strb r1, [r3, r2]
crc = Crc16(len);
800d1ae: 8abb ldrh r3, [r7, #20]
800d1b0: 4618 mov r0, r3
800d1b2: f7ff f8a9 bl 800c308 <Crc16>
800d1b6: 4603 mov r3, r0
800d1b8: 827b strh r3, [r7, #18]
iobuf[len++] = LO(crc);
800d1ba: 8abb ldrh r3, [r7, #20]
800d1bc: 1c5a adds r2, r3, #1
800d1be: 82ba strh r2, [r7, #20]
800d1c0: 461a mov r2, r3
800d1c2: 8a7b ldrh r3, [r7, #18]
800d1c4: b2d9 uxtb r1, r3
800d1c6: 4b49 ldr r3, [pc, #292] ; (800d2ec <WriteChannelSens+0x27c>)
800d1c8: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
800d1ca: 8abb ldrh r3, [r7, #20]
800d1cc: 1c5a adds r2, r3, #1
800d1ce: 82ba strh r2, [r7, #20]
800d1d0: 461a mov r2, r3
800d1d2: 8a7b ldrh r3, [r7, #18]
800d1d4: 0a1b lsrs r3, r3, #8
800d1d6: b29b uxth r3, r3
800d1d8: b2d9 uxtb r1, r3
800d1da: 4b44 ldr r3, [pc, #272] ; (800d2ec <WriteChannelSens+0x27c>)
800d1dc: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
800d1de: f000 fc61 bl 800daa4 <HAL_GetTick>
800d1e2: 4603 mov r3, r0
800d1e4: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
800d1e6: 2201 movs r2, #1
800d1e8: f44f 7100 mov.w r1, #512 ; 0x200
800d1ec: 4841 ldr r0, [pc, #260] ; (800d2f4 <WriteChannelSens+0x284>)
800d1ee: f001 fc4b bl 800ea88 <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
800d1f2: 8abb ldrh r3, [r7, #20]
800d1f4: 461a mov r2, r3
800d1f6: 493d ldr r1, [pc, #244] ; (800d2ec <WriteChannelSens+0x27c>)
800d1f8: 4837 ldr r0, [pc, #220] ; (800d2d8 <WriteChannelSens+0x268>)
800d1fa: f003 fd73 bl 8010ce4 <HAL_UART_Transmit_IT>
800d1fe: 4603 mov r3, r0
800d200: 2b00 cmp r3, #0
800d202: d163 bne.n 800d2cc <WriteChannelSens+0x25c>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 200));
800d204: bf00 nop
800d206: 4b37 ldr r3, [pc, #220] ; (800d2e4 <WriteChannelSens+0x274>)
800d208: 781b ldrb r3, [r3, #0]
800d20a: b2db uxtb r3, r3
800d20c: f083 0301 eor.w r3, r3, #1
800d210: b2db uxtb r3, r3
800d212: 2b00 cmp r3, #0
800d214: d006 beq.n 800d224 <WriteChannelSens+0x1b4>
800d216: f000 fc45 bl 800daa4 <HAL_GetTick>
800d21a: 4602 mov r2, r0
800d21c: 68fb ldr r3, [r7, #12]
800d21e: 1ad3 subs r3, r2, r3
800d220: 2bc7 cmp r3, #199 ; 0xc7
800d222: d9f0 bls.n 800d206 <WriteChannelSens+0x196>
if(!TX_OK)
800d224: 4b2f ldr r3, [pc, #188] ; (800d2e4 <WriteChannelSens+0x274>)
800d226: 781b ldrb r3, [r3, #0]
800d228: b2db uxtb r3, r3
800d22a: f083 0301 eor.w r3, r3, #1
800d22e: b2db uxtb r3, r3
800d230: 2b00 cmp r3, #0
800d232: d00b beq.n 800d24c <WriteChannelSens+0x1dc>
{
HAL_UART_Abort_IT(&huart7);
800d234: 4828 ldr r0, [pc, #160] ; (800d2d8 <WriteChannelSens+0x268>)
800d236: f003 fdc3 bl 8010dc0 <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800d23a: 2200 movs r2, #0
800d23c: f44f 7100 mov.w r1, #512 ; 0x200
800d240: 482c ldr r0, [pc, #176] ; (800d2f4 <WriteChannelSens+0x284>)
800d242: f001 fc21 bl 800ea88 <HAL_GPIO_WritePin>
return (-1);
800d246: f04f 33ff mov.w r3, #4294967295
800d24a: e041 b.n 800d2d0 <WriteChannelSens+0x260>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800d24c: 2200 movs r2, #0
800d24e: f44f 7100 mov.w r1, #512 ; 0x200
800d252: 4828 ldr r0, [pc, #160] ; (800d2f4 <WriteChannelSens+0x284>)
800d254: f001 fc18 bl 800ea88 <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
800d258: 2364 movs r3, #100 ; 0x64
800d25a: 2201 movs r2, #1
800d25c: 4922 ldr r1, [pc, #136] ; (800d2e8 <WriteChannelSens+0x278>)
800d25e: 481e ldr r0, [pc, #120] ; (800d2d8 <WriteChannelSens+0x268>)
800d260: f003 fc70 bl 8010b44 <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK)
800d264: f44f 73fa mov.w r3, #500 ; 0x1f4
800d268: 2208 movs r2, #8
800d26a: 491f ldr r1, [pc, #124] ; (800d2e8 <WriteChannelSens+0x278>)
800d26c: 481a ldr r0, [pc, #104] ; (800d2d8 <WriteChannelSens+0x268>)
800d26e: f003 fc69 bl 8010b44 <HAL_UART_Receive>
800d272: 4603 mov r3, r0
800d274: 2b00 cmp r3, #0
800d276: d120 bne.n 800d2ba <WriteChannelSens+0x24a>
{
crc = (uint16_t) ((rx[7]) << 8 | rx[6]);
800d278: 4b1b ldr r3, [pc, #108] ; (800d2e8 <WriteChannelSens+0x278>)
800d27a: 79db ldrb r3, [r3, #7]
800d27c: 021b lsls r3, r3, #8
800d27e: b21a sxth r2, r3
800d280: 4b19 ldr r3, [pc, #100] ; (800d2e8 <WriteChannelSens+0x278>)
800d282: 799b ldrb r3, [r3, #6]
800d284: b21b sxth r3, r3
800d286: 4313 orrs r3, r2
800d288: b21b sxth r3, r3
800d28a: 827b strh r3, [r7, #18]
if(crc == Crc16_RX(6))
800d28c: 2006 movs r0, #6
800d28e: f7ff f867 bl 800c360 <Crc16_RX>
800d292: 4603 mov r3, r0
800d294: 461a mov r2, r3
800d296: 8a7b ldrh r3, [r7, #18]
800d298: 4293 cmp r3, r2
800d29a: d10b bne.n 800d2b4 <WriteChannelSens+0x244>
{
if(rx[0] == (ch + 1))
800d29c: 4b12 ldr r3, [pc, #72] ; (800d2e8 <WriteChannelSens+0x278>)
800d29e: 781b ldrb r3, [r3, #0]
800d2a0: 461a mov r2, r3
800d2a2: 79fb ldrb r3, [r7, #7]
800d2a4: 3301 adds r3, #1
800d2a6: 429a cmp r2, r3
800d2a8: d101 bne.n 800d2ae <WriteChannelSens+0x23e>
return 0;
800d2aa: 2300 movs r3, #0
800d2ac: e010 b.n 800d2d0 <WriteChannelSens+0x260>
else return (-1);
800d2ae: f04f 33ff mov.w r3, #4294967295
800d2b2: e00d b.n 800d2d0 <WriteChannelSens+0x260>
}
else
{
return (-1);
800d2b4: f04f 33ff mov.w r3, #4294967295
800d2b8: e00a b.n 800d2d0 <WriteChannelSens+0x260>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800d2ba: 2200 movs r2, #0
800d2bc: f44f 7100 mov.w r1, #512 ; 0x200
800d2c0: 480c ldr r0, [pc, #48] ; (800d2f4 <WriteChannelSens+0x284>)
800d2c2: f001 fbe1 bl 800ea88 <HAL_GPIO_WritePin>
return (-1);
800d2c6: f04f 33ff mov.w r3, #4294967295
800d2ca: e001 b.n 800d2d0 <WriteChannelSens+0x260>
}
}
return res;
800d2cc: f997 3017 ldrsb.w r3, [r7, #23]
}
800d2d0: 4618 mov r0, r3
800d2d2: 3718 adds r7, #24
800d2d4: 46bd mov sp, r7
800d2d6: bd80 pop {r7, pc}
800d2d8: 2006bc9c .word 0x2006bc9c
800d2dc: 2006b2f9 .word 0x2006b2f9
800d2e0: 2006b2fb .word 0x2006b2fb
800d2e4: 2006b2fa .word 0x2006b2fa
800d2e8: 2006bd24 .word 0x2006bd24
800d2ec: 2006be2c .word 0x2006be2c
800d2f0: 2006b510 .word 0x2006b510
800d2f4: 40021400 .word 0x40021400
0800d2f8 <Calibr>:
int8_t Calibr(uint8_t ch, uint8_t on)
{
800d2f8: b580 push {r7, lr}
800d2fa: b086 sub sp, #24
800d2fc: af00 add r7, sp, #0
800d2fe: 4603 mov r3, r0
800d300: 460a mov r2, r1
800d302: 71fb strb r3, [r7, #7]
800d304: 4613 mov r3, r2
800d306: 71bb strb r3, [r7, #6]
int8_t res = -1;
800d308: 23ff movs r3, #255 ; 0xff
800d30a: 757b strb r3, [r7, #21]
uint16_t i, len = 0;
800d30c: 2300 movs r3, #0
800d30e: 82fb strh r3, [r7, #22]
uint16_t crc;
uint16_t reg;
__IO uint32_t timeout;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
800d310: 4b92 ldr r3, [pc, #584] ; (800d55c <Calibr+0x264>)
800d312: 681b ldr r3, [r3, #0]
800d314: 69db ldr r3, [r3, #28]
800d316: f003 0308 and.w r3, r3, #8
800d31a: 2b08 cmp r3, #8
800d31c: d103 bne.n 800d326 <Calibr+0x2e>
__HAL_UART_CLEAR_OREFLAG(&huart7);
800d31e: 4b8f ldr r3, [pc, #572] ; (800d55c <Calibr+0x264>)
800d320: 681b ldr r3, [r3, #0]
800d322: 2208 movs r2, #8
800d324: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
800d326: 4b8d ldr r3, [pc, #564] ; (800d55c <Calibr+0x264>)
800d328: 681b ldr r3, [r3, #0]
800d32a: 69db ldr r3, [r3, #28]
800d32c: f003 0301 and.w r3, r3, #1
800d330: 2b01 cmp r3, #1
800d332: d103 bne.n 800d33c <Calibr+0x44>
__HAL_UART_CLEAR_PEFLAG(&huart7);
800d334: 4b89 ldr r3, [pc, #548] ; (800d55c <Calibr+0x264>)
800d336: 681b ldr r3, [r3, #0]
800d338: 2201 movs r2, #1
800d33a: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
800d33c: 4b87 ldr r3, [pc, #540] ; (800d55c <Calibr+0x264>)
800d33e: 681b ldr r3, [r3, #0]
800d340: 69db ldr r3, [r3, #28]
800d342: f003 0302 and.w r3, r3, #2
800d346: 2b02 cmp r3, #2
800d348: d103 bne.n 800d352 <Calibr+0x5a>
__HAL_UART_CLEAR_FEFLAG(&huart7);
800d34a: 4b84 ldr r3, [pc, #528] ; (800d55c <Calibr+0x264>)
800d34c: 681b ldr r3, [r3, #0]
800d34e: 2202 movs r2, #2
800d350: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
800d352: 4b82 ldr r3, [pc, #520] ; (800d55c <Calibr+0x264>)
800d354: 681b ldr r3, [r3, #0]
800d356: 69db ldr r3, [r3, #28]
800d358: f003 0304 and.w r3, r3, #4
800d35c: 2b04 cmp r3, #4
800d35e: d103 bne.n 800d368 <Calibr+0x70>
__HAL_UART_CLEAR_NEFLAG(&huart7);
800d360: 4b7e ldr r3, [pc, #504] ; (800d55c <Calibr+0x264>)
800d362: 681b ldr r3, [r3, #0]
800d364: 2204 movs r2, #4
800d366: 621a str r2, [r3, #32]
HAL_Delay(20);
800d368: 2014 movs r0, #20
800d36a: f000 fba7 bl 800dabc <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
800d36e: 2200 movs r2, #0
800d370: 4b7b ldr r3, [pc, #492] ; (800d560 <Calibr+0x268>)
800d372: 4611 mov r1, r2
800d374: 7019 strb r1, [r3, #0]
800d376: 4b7b ldr r3, [pc, #492] ; (800d564 <Calibr+0x26c>)
800d378: 4611 mov r1, r2
800d37a: 7019 strb r1, [r3, #0]
800d37c: 4b7a ldr r3, [pc, #488] ; (800d568 <Calibr+0x270>)
800d37e: 701a strb r2, [r3, #0]
len = 0;
800d380: 2300 movs r3, #0
800d382: 82fb strh r3, [r7, #22]
memset((void *) &rx, 0, sizeof(rx));
800d384: f44f 7280 mov.w r2, #256 ; 0x100
800d388: 2100 movs r1, #0
800d38a: 4878 ldr r0, [pc, #480] ; (800d56c <Calibr+0x274>)
800d38c: f004 ffc3 bl 8012316 <memset>
iobuf[len++] = ch + 1;
800d390: 8afb ldrh r3, [r7, #22]
800d392: 1c5a adds r2, r3, #1
800d394: 82fa strh r2, [r7, #22]
800d396: 461a mov r2, r3
800d398: 79fb ldrb r3, [r7, #7]
800d39a: 3301 adds r3, #1
800d39c: b2d9 uxtb r1, r3
800d39e: 4b74 ldr r3, [pc, #464] ; (800d570 <Calibr+0x278>)
800d3a0: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x10;
800d3a2: 8afb ldrh r3, [r7, #22]
800d3a4: 1c5a adds r2, r3, #1
800d3a6: 82fa strh r2, [r7, #22]
800d3a8: 461a mov r2, r3
800d3aa: 4b71 ldr r3, [pc, #452] ; (800d570 <Calibr+0x278>)
800d3ac: 2110 movs r1, #16
800d3ae: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(3000);
800d3b0: 8afb ldrh r3, [r7, #22]
800d3b2: 1c5a adds r2, r3, #1
800d3b4: 82fa strh r2, [r7, #22]
800d3b6: 461a mov r2, r3
800d3b8: 4b6d ldr r3, [pc, #436] ; (800d570 <Calibr+0x278>)
800d3ba: 210b movs r1, #11
800d3bc: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(3000);
800d3be: 8afb ldrh r3, [r7, #22]
800d3c0: 1c5a adds r2, r3, #1
800d3c2: 82fa strh r2, [r7, #22]
800d3c4: 461a mov r2, r3
800d3c6: 4b6a ldr r3, [pc, #424] ; (800d570 <Calibr+0x278>)
800d3c8: 21b8 movs r1, #184 ; 0xb8
800d3ca: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
800d3cc: 8afb ldrh r3, [r7, #22]
800d3ce: 1c5a adds r2, r3, #1
800d3d0: 82fa strh r2, [r7, #22]
800d3d2: 461a mov r2, r3
800d3d4: 4b66 ldr r3, [pc, #408] ; (800d570 <Calibr+0x278>)
800d3d6: 2100 movs r1, #0
800d3d8: 5499 strb r1, [r3, r2]
iobuf[len++] = 1;
800d3da: 8afb ldrh r3, [r7, #22]
800d3dc: 1c5a adds r2, r3, #1
800d3de: 82fa strh r2, [r7, #22]
800d3e0: 461a mov r2, r3
800d3e2: 4b63 ldr r3, [pc, #396] ; (800d570 <Calibr+0x278>)
800d3e4: 2101 movs r1, #1
800d3e6: 5499 strb r1, [r3, r2]
iobuf[len++] = 2;
800d3e8: 8afb ldrh r3, [r7, #22]
800d3ea: 1c5a adds r2, r3, #1
800d3ec: 82fa strh r2, [r7, #22]
800d3ee: 461a mov r2, r3
800d3f0: 4b5f ldr r3, [pc, #380] ; (800d570 <Calibr+0x278>)
800d3f2: 2102 movs r1, #2
800d3f4: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
800d3f6: 8afb ldrh r3, [r7, #22]
800d3f8: 1c5a adds r2, r3, #1
800d3fa: 82fa strh r2, [r7, #22]
800d3fc: 461a mov r2, r3
800d3fe: 4b5c ldr r3, [pc, #368] ; (800d570 <Calibr+0x278>)
800d400: 2100 movs r1, #0
800d402: 5499 strb r1, [r3, r2]
if(on)
800d404: 79bb ldrb r3, [r7, #6]
800d406: 2b00 cmp r3, #0
800d408: d00b beq.n 800d422 <Calibr+0x12a>
iobuf[len++] = menu - 1;
800d40a: 8afb ldrh r3, [r7, #22]
800d40c: 1c5a adds r2, r3, #1
800d40e: 82fa strh r2, [r7, #22]
800d410: 461a mov r2, r3
800d412: 4b58 ldr r3, [pc, #352] ; (800d574 <Calibr+0x27c>)
800d414: 781b ldrb r3, [r3, #0]
800d416: b2db uxtb r3, r3
800d418: 3b01 subs r3, #1
800d41a: b2d9 uxtb r1, r3
800d41c: 4b54 ldr r3, [pc, #336] ; (800d570 <Calibr+0x278>)
800d41e: 5499 strb r1, [r3, r2]
800d420: e006 b.n 800d430 <Calibr+0x138>
else iobuf[len++] = 0;
800d422: 8afb ldrh r3, [r7, #22]
800d424: 1c5a adds r2, r3, #1
800d426: 82fa strh r2, [r7, #22]
800d428: 461a mov r2, r3
800d42a: 4b51 ldr r3, [pc, #324] ; (800d570 <Calibr+0x278>)
800d42c: 2100 movs r1, #0
800d42e: 5499 strb r1, [r3, r2]
crc = Crc16(len);
800d430: 8afb ldrh r3, [r7, #22]
800d432: 4618 mov r0, r3
800d434: f7fe ff68 bl 800c308 <Crc16>
800d438: 4603 mov r3, r0
800d43a: 827b strh r3, [r7, #18]
iobuf[len++] = LO(crc);
800d43c: 8afb ldrh r3, [r7, #22]
800d43e: 1c5a adds r2, r3, #1
800d440: 82fa strh r2, [r7, #22]
800d442: 461a mov r2, r3
800d444: 8a7b ldrh r3, [r7, #18]
800d446: b2d9 uxtb r1, r3
800d448: 4b49 ldr r3, [pc, #292] ; (800d570 <Calibr+0x278>)
800d44a: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
800d44c: 8afb ldrh r3, [r7, #22]
800d44e: 1c5a adds r2, r3, #1
800d450: 82fa strh r2, [r7, #22]
800d452: 461a mov r2, r3
800d454: 8a7b ldrh r3, [r7, #18]
800d456: 0a1b lsrs r3, r3, #8
800d458: b29b uxth r3, r3
800d45a: b2d9 uxtb r1, r3
800d45c: 4b44 ldr r3, [pc, #272] ; (800d570 <Calibr+0x278>)
800d45e: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
800d460: f000 fb20 bl 800daa4 <HAL_GetTick>
800d464: 4603 mov r3, r0
800d466: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
800d468: 2201 movs r2, #1
800d46a: f44f 7100 mov.w r1, #512 ; 0x200
800d46e: 4842 ldr r0, [pc, #264] ; (800d578 <Calibr+0x280>)
800d470: f001 fb0a bl 800ea88 <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
800d474: 8afb ldrh r3, [r7, #22]
800d476: 461a mov r2, r3
800d478: 493d ldr r1, [pc, #244] ; (800d570 <Calibr+0x278>)
800d47a: 4838 ldr r0, [pc, #224] ; (800d55c <Calibr+0x264>)
800d47c: f003 fc32 bl 8010ce4 <HAL_UART_Transmit_IT>
800d480: 4603 mov r3, r0
800d482: 2b00 cmp r3, #0
800d484: d163 bne.n 800d54e <Calibr+0x256>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 200));
800d486: bf00 nop
800d488: 4b37 ldr r3, [pc, #220] ; (800d568 <Calibr+0x270>)
800d48a: 781b ldrb r3, [r3, #0]
800d48c: b2db uxtb r3, r3
800d48e: f083 0301 eor.w r3, r3, #1
800d492: b2db uxtb r3, r3
800d494: 2b00 cmp r3, #0
800d496: d006 beq.n 800d4a6 <Calibr+0x1ae>
800d498: f000 fb04 bl 800daa4 <HAL_GetTick>
800d49c: 4602 mov r2, r0
800d49e: 68fb ldr r3, [r7, #12]
800d4a0: 1ad3 subs r3, r2, r3
800d4a2: 2bc7 cmp r3, #199 ; 0xc7
800d4a4: d9f0 bls.n 800d488 <Calibr+0x190>
if(!TX_OK)
800d4a6: 4b30 ldr r3, [pc, #192] ; (800d568 <Calibr+0x270>)
800d4a8: 781b ldrb r3, [r3, #0]
800d4aa: b2db uxtb r3, r3
800d4ac: f083 0301 eor.w r3, r3, #1
800d4b0: b2db uxtb r3, r3
800d4b2: 2b00 cmp r3, #0
800d4b4: d00b beq.n 800d4ce <Calibr+0x1d6>
{
HAL_UART_Abort_IT(&huart7);
800d4b6: 4829 ldr r0, [pc, #164] ; (800d55c <Calibr+0x264>)
800d4b8: f003 fc82 bl 8010dc0 <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800d4bc: 2200 movs r2, #0
800d4be: f44f 7100 mov.w r1, #512 ; 0x200
800d4c2: 482d ldr r0, [pc, #180] ; (800d578 <Calibr+0x280>)
800d4c4: f001 fae0 bl 800ea88 <HAL_GPIO_WritePin>
return (-1);
800d4c8: f04f 33ff mov.w r3, #4294967295
800d4cc: e041 b.n 800d552 <Calibr+0x25a>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800d4ce: 2200 movs r2, #0
800d4d0: f44f 7100 mov.w r1, #512 ; 0x200
800d4d4: 4828 ldr r0, [pc, #160] ; (800d578 <Calibr+0x280>)
800d4d6: f001 fad7 bl 800ea88 <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
800d4da: 2364 movs r3, #100 ; 0x64
800d4dc: 2201 movs r2, #1
800d4de: 4923 ldr r1, [pc, #140] ; (800d56c <Calibr+0x274>)
800d4e0: 481e ldr r0, [pc, #120] ; (800d55c <Calibr+0x264>)
800d4e2: f003 fb2f bl 8010b44 <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK)
800d4e6: f44f 73fa mov.w r3, #500 ; 0x1f4
800d4ea: 2208 movs r2, #8
800d4ec: 491f ldr r1, [pc, #124] ; (800d56c <Calibr+0x274>)
800d4ee: 481b ldr r0, [pc, #108] ; (800d55c <Calibr+0x264>)
800d4f0: f003 fb28 bl 8010b44 <HAL_UART_Receive>
800d4f4: 4603 mov r3, r0
800d4f6: 2b00 cmp r3, #0
800d4f8: d120 bne.n 800d53c <Calibr+0x244>
{
crc = (uint16_t) ((rx[7]) << 8 | rx[6]);
800d4fa: 4b1c ldr r3, [pc, #112] ; (800d56c <Calibr+0x274>)
800d4fc: 79db ldrb r3, [r3, #7]
800d4fe: 021b lsls r3, r3, #8
800d500: b21a sxth r2, r3
800d502: 4b1a ldr r3, [pc, #104] ; (800d56c <Calibr+0x274>)
800d504: 799b ldrb r3, [r3, #6]
800d506: b21b sxth r3, r3
800d508: 4313 orrs r3, r2
800d50a: b21b sxth r3, r3
800d50c: 827b strh r3, [r7, #18]
if(crc == Crc16_RX(6))
800d50e: 2006 movs r0, #6
800d510: f7fe ff26 bl 800c360 <Crc16_RX>
800d514: 4603 mov r3, r0
800d516: 461a mov r2, r3
800d518: 8a7b ldrh r3, [r7, #18]
800d51a: 4293 cmp r3, r2
800d51c: d10b bne.n 800d536 <Calibr+0x23e>
{
if(rx[0] == (ch + 1))
800d51e: 4b13 ldr r3, [pc, #76] ; (800d56c <Calibr+0x274>)
800d520: 781b ldrb r3, [r3, #0]
800d522: 461a mov r2, r3
800d524: 79fb ldrb r3, [r7, #7]
800d526: 3301 adds r3, #1
800d528: 429a cmp r2, r3
800d52a: d101 bne.n 800d530 <Calibr+0x238>
return 0;
800d52c: 2300 movs r3, #0
800d52e: e010 b.n 800d552 <Calibr+0x25a>
else return (-1);
800d530: f04f 33ff mov.w r3, #4294967295
800d534: e00d b.n 800d552 <Calibr+0x25a>
}
else
{
return (-1);
800d536: f04f 33ff mov.w r3, #4294967295
800d53a: e00a b.n 800d552 <Calibr+0x25a>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800d53c: 2200 movs r2, #0
800d53e: f44f 7100 mov.w r1, #512 ; 0x200
800d542: 480d ldr r0, [pc, #52] ; (800d578 <Calibr+0x280>)
800d544: f001 faa0 bl 800ea88 <HAL_GPIO_WritePin>
return (-1);
800d548: f04f 33ff mov.w r3, #4294967295
800d54c: e001 b.n 800d552 <Calibr+0x25a>
}
}
return res;
800d54e: f997 3015 ldrsb.w r3, [r7, #21]
}
800d552: 4618 mov r0, r3
800d554: 3718 adds r7, #24
800d556: 46bd mov sp, r7
800d558: bd80 pop {r7, pc}
800d55a: bf00 nop
800d55c: 2006bc9c .word 0x2006bc9c
800d560: 2006b2f9 .word 0x2006b2f9
800d564: 2006b2fb .word 0x2006b2fb
800d568: 2006b2fa .word 0x2006b2fa
800d56c: 2006bd24 .word 0x2006bd24
800d570: 2006be2c .word 0x2006be2c
800d574: 20020245 .word 0x20020245
800d578: 40021400 .word 0x40021400
0800d57c <WriteCorr>:
int8_t WriteCorr(uint8_t ch, uint8_t fasecor, uint8_t up)
{
800d57c: b580 push {r7, lr}
800d57e: b086 sub sp, #24
800d580: af00 add r7, sp, #0
800d582: 4603 mov r3, r0
800d584: 71fb strb r3, [r7, #7]
800d586: 460b mov r3, r1
800d588: 71bb strb r3, [r7, #6]
800d58a: 4613 mov r3, r2
800d58c: 717b strb r3, [r7, #5]
int8_t res = -1;
800d58e: 23ff movs r3, #255 ; 0xff
800d590: 75fb strb r3, [r7, #23]
uint16_t i, len = 0;
800d592: 2300 movs r3, #0
800d594: 82bb strh r3, [r7, #20]
uint16_t crc;
uint16_t reg;
__IO uint32_t timeout;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
800d596: 4b8e ldr r3, [pc, #568] ; (800d7d0 <WriteCorr+0x254>)
800d598: 681b ldr r3, [r3, #0]
800d59a: 69db ldr r3, [r3, #28]
800d59c: f003 0308 and.w r3, r3, #8
800d5a0: 2b08 cmp r3, #8
800d5a2: d103 bne.n 800d5ac <WriteCorr+0x30>
__HAL_UART_CLEAR_OREFLAG(&huart7);
800d5a4: 4b8a ldr r3, [pc, #552] ; (800d7d0 <WriteCorr+0x254>)
800d5a6: 681b ldr r3, [r3, #0]
800d5a8: 2208 movs r2, #8
800d5aa: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
800d5ac: 4b88 ldr r3, [pc, #544] ; (800d7d0 <WriteCorr+0x254>)
800d5ae: 681b ldr r3, [r3, #0]
800d5b0: 69db ldr r3, [r3, #28]
800d5b2: f003 0301 and.w r3, r3, #1
800d5b6: 2b01 cmp r3, #1
800d5b8: d103 bne.n 800d5c2 <WriteCorr+0x46>
__HAL_UART_CLEAR_PEFLAG(&huart7);
800d5ba: 4b85 ldr r3, [pc, #532] ; (800d7d0 <WriteCorr+0x254>)
800d5bc: 681b ldr r3, [r3, #0]
800d5be: 2201 movs r2, #1
800d5c0: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
800d5c2: 4b83 ldr r3, [pc, #524] ; (800d7d0 <WriteCorr+0x254>)
800d5c4: 681b ldr r3, [r3, #0]
800d5c6: 69db ldr r3, [r3, #28]
800d5c8: f003 0302 and.w r3, r3, #2
800d5cc: 2b02 cmp r3, #2
800d5ce: d103 bne.n 800d5d8 <WriteCorr+0x5c>
__HAL_UART_CLEAR_FEFLAG(&huart7);
800d5d0: 4b7f ldr r3, [pc, #508] ; (800d7d0 <WriteCorr+0x254>)
800d5d2: 681b ldr r3, [r3, #0]
800d5d4: 2202 movs r2, #2
800d5d6: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
800d5d8: 4b7d ldr r3, [pc, #500] ; (800d7d0 <WriteCorr+0x254>)
800d5da: 681b ldr r3, [r3, #0]
800d5dc: 69db ldr r3, [r3, #28]
800d5de: f003 0304 and.w r3, r3, #4
800d5e2: 2b04 cmp r3, #4
800d5e4: d103 bne.n 800d5ee <WriteCorr+0x72>
__HAL_UART_CLEAR_NEFLAG(&huart7);
800d5e6: 4b7a ldr r3, [pc, #488] ; (800d7d0 <WriteCorr+0x254>)
800d5e8: 681b ldr r3, [r3, #0]
800d5ea: 2204 movs r2, #4
800d5ec: 621a str r2, [r3, #32]
HAL_Delay(20);
800d5ee: 2014 movs r0, #20
800d5f0: f000 fa64 bl 800dabc <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
800d5f4: 2200 movs r2, #0
800d5f6: 4b77 ldr r3, [pc, #476] ; (800d7d4 <WriteCorr+0x258>)
800d5f8: 4611 mov r1, r2
800d5fa: 7019 strb r1, [r3, #0]
800d5fc: 4b76 ldr r3, [pc, #472] ; (800d7d8 <WriteCorr+0x25c>)
800d5fe: 4611 mov r1, r2
800d600: 7019 strb r1, [r3, #0]
800d602: 4b76 ldr r3, [pc, #472] ; (800d7dc <WriteCorr+0x260>)
800d604: 701a strb r2, [r3, #0]
len = 0;
800d606: 2300 movs r3, #0
800d608: 82bb strh r3, [r7, #20]
memset((void *) &rx, 0, sizeof(rx));
800d60a: f44f 7280 mov.w r2, #256 ; 0x100
800d60e: 2100 movs r1, #0
800d610: 4873 ldr r0, [pc, #460] ; (800d7e0 <WriteCorr+0x264>)
800d612: f004 fe80 bl 8012316 <memset>
/*if(fasecor == CALIBR_00) {
return (-1);
}*/
iobuf[len++] = ch + 1;
800d616: 8abb ldrh r3, [r7, #20]
800d618: 1c5a adds r2, r3, #1
800d61a: 82ba strh r2, [r7, #20]
800d61c: 461a mov r2, r3
800d61e: 79fb ldrb r3, [r7, #7]
800d620: 3301 adds r3, #1
800d622: b2d9 uxtb r1, r3
800d624: 4b6f ldr r3, [pc, #444] ; (800d7e4 <WriteCorr+0x268>)
800d626: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x10;
800d628: 8abb ldrh r3, [r7, #20]
800d62a: 1c5a adds r2, r3, #1
800d62c: 82ba strh r2, [r7, #20]
800d62e: 461a mov r2, r3
800d630: 4b6c ldr r3, [pc, #432] ; (800d7e4 <WriteCorr+0x268>)
800d632: 2110 movs r1, #16
800d634: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(fasecor + 3001);
800d636: 8abb ldrh r3, [r7, #20]
800d638: 1c5a adds r2, r3, #1
800d63a: 82ba strh r2, [r7, #20]
800d63c: 461a mov r2, r3
800d63e: 79bb ldrb r3, [r7, #6]
800d640: f603 33b9 addw r3, r3, #3001 ; 0xbb9
800d644: 121b asrs r3, r3, #8
800d646: b2d9 uxtb r1, r3
800d648: 4b66 ldr r3, [pc, #408] ; (800d7e4 <WriteCorr+0x268>)
800d64a: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(fasecor + 3001);
800d64c: 8abb ldrh r3, [r7, #20]
800d64e: 1c5a adds r2, r3, #1
800d650: 82ba strh r2, [r7, #20]
800d652: 461a mov r2, r3
800d654: 79bb ldrb r3, [r7, #6]
800d656: 3b47 subs r3, #71 ; 0x47
800d658: b2d9 uxtb r1, r3
800d65a: 4b62 ldr r3, [pc, #392] ; (800d7e4 <WriteCorr+0x268>)
800d65c: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
800d65e: 8abb ldrh r3, [r7, #20]
800d660: 1c5a adds r2, r3, #1
800d662: 82ba strh r2, [r7, #20]
800d664: 461a mov r2, r3
800d666: 4b5f ldr r3, [pc, #380] ; (800d7e4 <WriteCorr+0x268>)
800d668: 2100 movs r1, #0
800d66a: 5499 strb r1, [r3, r2]
iobuf[len++] = 1;
800d66c: 8abb ldrh r3, [r7, #20]
800d66e: 1c5a adds r2, r3, #1
800d670: 82ba strh r2, [r7, #20]
800d672: 461a mov r2, r3
800d674: 4b5b ldr r3, [pc, #364] ; (800d7e4 <WriteCorr+0x268>)
800d676: 2101 movs r1, #1
800d678: 5499 strb r1, [r3, r2]
iobuf[len++] = 2;
800d67a: 8abb ldrh r3, [r7, #20]
800d67c: 1c5a adds r2, r3, #1
800d67e: 82ba strh r2, [r7, #20]
800d680: 461a mov r2, r3
800d682: 4b58 ldr r3, [pc, #352] ; (800d7e4 <WriteCorr+0x268>)
800d684: 2102 movs r1, #2
800d686: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
800d688: 8abb ldrh r3, [r7, #20]
800d68a: 1c5a adds r2, r3, #1
800d68c: 82ba strh r2, [r7, #20]
800d68e: 461a mov r2, r3
800d690: 4b54 ldr r3, [pc, #336] ; (800d7e4 <WriteCorr+0x268>)
800d692: 2100 movs r1, #0
800d694: 5499 strb r1, [r3, r2]
iobuf[len++] = up;
800d696: 8abb ldrh r3, [r7, #20]
800d698: 1c5a adds r2, r3, #1
800d69a: 82ba strh r2, [r7, #20]
800d69c: 4619 mov r1, r3
800d69e: 4a51 ldr r2, [pc, #324] ; (800d7e4 <WriteCorr+0x268>)
800d6a0: 797b ldrb r3, [r7, #5]
800d6a2: 5453 strb r3, [r2, r1]
crc = Crc16(len);
800d6a4: 8abb ldrh r3, [r7, #20]
800d6a6: 4618 mov r0, r3
800d6a8: f7fe fe2e bl 800c308 <Crc16>
800d6ac: 4603 mov r3, r0
800d6ae: 827b strh r3, [r7, #18]
iobuf[len++] = LO(crc);
800d6b0: 8abb ldrh r3, [r7, #20]
800d6b2: 1c5a adds r2, r3, #1
800d6b4: 82ba strh r2, [r7, #20]
800d6b6: 461a mov r2, r3
800d6b8: 8a7b ldrh r3, [r7, #18]
800d6ba: b2d9 uxtb r1, r3
800d6bc: 4b49 ldr r3, [pc, #292] ; (800d7e4 <WriteCorr+0x268>)
800d6be: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
800d6c0: 8abb ldrh r3, [r7, #20]
800d6c2: 1c5a adds r2, r3, #1
800d6c4: 82ba strh r2, [r7, #20]
800d6c6: 461a mov r2, r3
800d6c8: 8a7b ldrh r3, [r7, #18]
800d6ca: 0a1b lsrs r3, r3, #8
800d6cc: b29b uxth r3, r3
800d6ce: b2d9 uxtb r1, r3
800d6d0: 4b44 ldr r3, [pc, #272] ; (800d7e4 <WriteCorr+0x268>)
800d6d2: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
800d6d4: f000 f9e6 bl 800daa4 <HAL_GetTick>
800d6d8: 4603 mov r3, r0
800d6da: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
800d6dc: 2201 movs r2, #1
800d6de: f44f 7100 mov.w r1, #512 ; 0x200
800d6e2: 4841 ldr r0, [pc, #260] ; (800d7e8 <WriteCorr+0x26c>)
800d6e4: f001 f9d0 bl 800ea88 <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
800d6e8: 8abb ldrh r3, [r7, #20]
800d6ea: 461a mov r2, r3
800d6ec: 493d ldr r1, [pc, #244] ; (800d7e4 <WriteCorr+0x268>)
800d6ee: 4838 ldr r0, [pc, #224] ; (800d7d0 <WriteCorr+0x254>)
800d6f0: f003 faf8 bl 8010ce4 <HAL_UART_Transmit_IT>
800d6f4: 4603 mov r3, r0
800d6f6: 2b00 cmp r3, #0
800d6f8: d163 bne.n 800d7c2 <WriteCorr+0x246>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 200));
800d6fa: bf00 nop
800d6fc: 4b37 ldr r3, [pc, #220] ; (800d7dc <WriteCorr+0x260>)
800d6fe: 781b ldrb r3, [r3, #0]
800d700: b2db uxtb r3, r3
800d702: f083 0301 eor.w r3, r3, #1
800d706: b2db uxtb r3, r3
800d708: 2b00 cmp r3, #0
800d70a: d006 beq.n 800d71a <WriteCorr+0x19e>
800d70c: f000 f9ca bl 800daa4 <HAL_GetTick>
800d710: 4602 mov r2, r0
800d712: 68fb ldr r3, [r7, #12]
800d714: 1ad3 subs r3, r2, r3
800d716: 2bc7 cmp r3, #199 ; 0xc7
800d718: d9f0 bls.n 800d6fc <WriteCorr+0x180>
if(!TX_OK)
800d71a: 4b30 ldr r3, [pc, #192] ; (800d7dc <WriteCorr+0x260>)
800d71c: 781b ldrb r3, [r3, #0]
800d71e: b2db uxtb r3, r3
800d720: f083 0301 eor.w r3, r3, #1
800d724: b2db uxtb r3, r3
800d726: 2b00 cmp r3, #0
800d728: d00b beq.n 800d742 <WriteCorr+0x1c6>
{
HAL_UART_Abort_IT(&huart7);
800d72a: 4829 ldr r0, [pc, #164] ; (800d7d0 <WriteCorr+0x254>)
800d72c: f003 fb48 bl 8010dc0 <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800d730: 2200 movs r2, #0
800d732: f44f 7100 mov.w r1, #512 ; 0x200
800d736: 482c ldr r0, [pc, #176] ; (800d7e8 <WriteCorr+0x26c>)
800d738: f001 f9a6 bl 800ea88 <HAL_GPIO_WritePin>
return (-1);
800d73c: f04f 33ff mov.w r3, #4294967295
800d740: e041 b.n 800d7c6 <WriteCorr+0x24a>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800d742: 2200 movs r2, #0
800d744: f44f 7100 mov.w r1, #512 ; 0x200
800d748: 4827 ldr r0, [pc, #156] ; (800d7e8 <WriteCorr+0x26c>)
800d74a: f001 f99d bl 800ea88 <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
800d74e: 2364 movs r3, #100 ; 0x64
800d750: 2201 movs r2, #1
800d752: 4923 ldr r1, [pc, #140] ; (800d7e0 <WriteCorr+0x264>)
800d754: 481e ldr r0, [pc, #120] ; (800d7d0 <WriteCorr+0x254>)
800d756: f003 f9f5 bl 8010b44 <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK)
800d75a: f44f 73fa mov.w r3, #500 ; 0x1f4
800d75e: 2208 movs r2, #8
800d760: 491f ldr r1, [pc, #124] ; (800d7e0 <WriteCorr+0x264>)
800d762: 481b ldr r0, [pc, #108] ; (800d7d0 <WriteCorr+0x254>)
800d764: f003 f9ee bl 8010b44 <HAL_UART_Receive>
800d768: 4603 mov r3, r0
800d76a: 2b00 cmp r3, #0
800d76c: d120 bne.n 800d7b0 <WriteCorr+0x234>
{
crc = (uint16_t) ((rx[7]) << 8 | rx[6]);
800d76e: 4b1c ldr r3, [pc, #112] ; (800d7e0 <WriteCorr+0x264>)
800d770: 79db ldrb r3, [r3, #7]
800d772: 021b lsls r3, r3, #8
800d774: b21a sxth r2, r3
800d776: 4b1a ldr r3, [pc, #104] ; (800d7e0 <WriteCorr+0x264>)
800d778: 799b ldrb r3, [r3, #6]
800d77a: b21b sxth r3, r3
800d77c: 4313 orrs r3, r2
800d77e: b21b sxth r3, r3
800d780: 827b strh r3, [r7, #18]
if(crc == Crc16_RX(6))
800d782: 2006 movs r0, #6
800d784: f7fe fdec bl 800c360 <Crc16_RX>
800d788: 4603 mov r3, r0
800d78a: 461a mov r2, r3
800d78c: 8a7b ldrh r3, [r7, #18]
800d78e: 4293 cmp r3, r2
800d790: d10b bne.n 800d7aa <WriteCorr+0x22e>
{
if(rx[0] == (ch + 1))
800d792: 4b13 ldr r3, [pc, #76] ; (800d7e0 <WriteCorr+0x264>)
800d794: 781b ldrb r3, [r3, #0]
800d796: 461a mov r2, r3
800d798: 79fb ldrb r3, [r7, #7]
800d79a: 3301 adds r3, #1
800d79c: 429a cmp r2, r3
800d79e: d101 bne.n 800d7a4 <WriteCorr+0x228>
return 0;
800d7a0: 2300 movs r3, #0
800d7a2: e010 b.n 800d7c6 <WriteCorr+0x24a>
else return (-1);
800d7a4: f04f 33ff mov.w r3, #4294967295
800d7a8: e00d b.n 800d7c6 <WriteCorr+0x24a>
}
else
{
return (-1);
800d7aa: f04f 33ff mov.w r3, #4294967295
800d7ae: e00a b.n 800d7c6 <WriteCorr+0x24a>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800d7b0: 2200 movs r2, #0
800d7b2: f44f 7100 mov.w r1, #512 ; 0x200
800d7b6: 480c ldr r0, [pc, #48] ; (800d7e8 <WriteCorr+0x26c>)
800d7b8: f001 f966 bl 800ea88 <HAL_GPIO_WritePin>
return (-1);
800d7bc: f04f 33ff mov.w r3, #4294967295
800d7c0: e001 b.n 800d7c6 <WriteCorr+0x24a>
}
}
return res;
800d7c2: f997 3017 ldrsb.w r3, [r7, #23]
}
800d7c6: 4618 mov r0, r3
800d7c8: 3718 adds r7, #24
800d7ca: 46bd mov sp, r7
800d7cc: bd80 pop {r7, pc}
800d7ce: bf00 nop
800d7d0: 2006bc9c .word 0x2006bc9c
800d7d4: 2006b2f9 .word 0x2006b2f9
800d7d8: 2006b2fb .word 0x2006b2fb
800d7dc: 2006b2fa .word 0x2006b2fa
800d7e0: 2006bd24 .word 0x2006bd24
800d7e4: 2006be2c .word 0x2006be2c
800d7e8: 40021400 .word 0x40021400
0800d7ec <CalibrOFF>:
}
}
void CalibrOFF(void)
{
800d7ec: b580 push {r7, lr}
800d7ee: b084 sub sp, #16
800d7f0: af00 add r7, sp, #0
uint8_t i, ch;
uint32_t MASK_CHANNELS = 0;
800d7f2: 2300 movs r3, #0
800d7f4: 60bb str r3, [r7, #8]
uint32_t CNT_CHANNELS = 0;
800d7f6: 2300 movs r3, #0
800d7f8: 607b str r3, [r7, #4]
for(ch = 0; ch < 4; ch++)
800d7fa: 2300 movs r3, #0
800d7fc: 73bb strb r3, [r7, #14]
800d7fe: e01f b.n 800d840 <CalibrOFF+0x54>
{
for(i = 0; i < 3; i++)
800d800: 2300 movs r3, #0
800d802: 73fb strb r3, [r7, #15]
800d804: e016 b.n 800d834 <CalibrOFF+0x48>
{
if(Calibr(ch, 0) == 0)
800d806: 7bbb ldrb r3, [r7, #14]
800d808: 2100 movs r1, #0
800d80a: 4618 mov r0, r3
800d80c: f7ff fd74 bl 800d2f8 <Calibr>
800d810: 4603 mov r3, r0
800d812: 2b00 cmp r3, #0
800d814: d10b bne.n 800d82e <CalibrOFF+0x42>
{
MASK_CHANNELS |= (1 << ch);
800d816: 7bbb ldrb r3, [r7, #14]
800d818: 2201 movs r2, #1
800d81a: fa02 f303 lsl.w r3, r2, r3
800d81e: 461a mov r2, r3
800d820: 68bb ldr r3, [r7, #8]
800d822: 4313 orrs r3, r2
800d824: 60bb str r3, [r7, #8]
CNT_CHANNELS++;
800d826: 687b ldr r3, [r7, #4]
800d828: 3301 adds r3, #1
800d82a: 607b str r3, [r7, #4]
break;
800d82c: e005 b.n 800d83a <CalibrOFF+0x4e>
for(i = 0; i < 3; i++)
800d82e: 7bfb ldrb r3, [r7, #15]
800d830: 3301 adds r3, #1
800d832: 73fb strb r3, [r7, #15]
800d834: 7bfb ldrb r3, [r7, #15]
800d836: 2b02 cmp r3, #2
800d838: d9e5 bls.n 800d806 <CalibrOFF+0x1a>
for(ch = 0; ch < 4; ch++)
800d83a: 7bbb ldrb r3, [r7, #14]
800d83c: 3301 adds r3, #1
800d83e: 73bb strb r3, [r7, #14]
800d840: 7bbb ldrb r3, [r7, #14]
800d842: 2b03 cmp r3, #3
800d844: d9dc bls.n 800d800 <CalibrOFF+0x14>
}
}
}
}
800d846: bf00 nop
800d848: 3710 adds r7, #16
800d84a: 46bd mov sp, r7
800d84c: bd80 pop {r7, pc}
...
0800d850 <AskChannels>:
void AskChannels(void)
{
800d850: b580 push {r7, lr}
800d852: b082 sub sp, #8
800d854: af00 add r7, sp, #0
uint8_t i, ch;
ASK_COMPLETE = false;
800d856: 4b46 ldr r3, [pc, #280] ; (800d970 <AskChannels+0x120>)
800d858: 2200 movs r2, #0
800d85a: 701a strb r2, [r3, #0]
for(i = 0; i < 100; i++)
800d85c: 2300 movs r3, #0
800d85e: 71fb strb r3, [r7, #7]
800d860: e007 b.n 800d872 <AskChannels+0x22>
{
RedrawScreen();
800d862: f7f7 fef1 bl 8005648 <RedrawScreen>
HAL_Delay(10);
800d866: 200a movs r0, #10
800d868: f000 f928 bl 800dabc <HAL_Delay>
for(i = 0; i < 100; i++)
800d86c: 79fb ldrb r3, [r7, #7]
800d86e: 3301 adds r3, #1
800d870: 71fb strb r3, [r7, #7]
800d872: 79fb ldrb r3, [r7, #7]
800d874: 2b63 cmp r3, #99 ; 0x63
800d876: d9f4 bls.n 800d862 <AskChannels+0x12>
}
ip_assigned = false;
800d878: 4b3e ldr r3, [pc, #248] ; (800d974 <AskChannels+0x124>)
800d87a: 2200 movs r2, #0
800d87c: 701a strb r2, [r3, #0]
for(i = 0; i < 2; i++)
800d87e: 2300 movs r3, #0
800d880: 71fb strb r3, [r7, #7]
800d882: e00e b.n 800d8a2 <AskChannels+0x52>
{
if(ReadIP() == 0) {
800d884: f7fe fde4 bl 800c450 <ReadIP>
800d888: 4603 mov r3, r0
800d88a: 2b00 cmp r3, #0
800d88c: d103 bne.n 800d896 <AskChannels+0x46>
ip_assigned = true;
800d88e: 4b39 ldr r3, [pc, #228] ; (800d974 <AskChannels+0x124>)
800d890: 2201 movs r2, #1
800d892: 701a strb r2, [r3, #0]
break;
800d894: e008 b.n 800d8a8 <AskChannels+0x58>
}
HAL_Delay(50);
800d896: 2032 movs r0, #50 ; 0x32
800d898: f000 f910 bl 800dabc <HAL_Delay>
for(i = 0; i < 2; i++)
800d89c: 79fb ldrb r3, [r7, #7]
800d89e: 3301 adds r3, #1
800d8a0: 71fb strb r3, [r7, #7]
800d8a2: 79fb ldrb r3, [r7, #7]
800d8a4: 2b01 cmp r3, #1
800d8a6: d9ed bls.n 800d884 <AskChannels+0x34>
}
memset((void *) &pardata.amplif[0], 0, sizeof(AmplifData_TypeDef) * 16u);
800d8a8: f44f 7200 mov.w r2, #512 ; 0x200
800d8ac: 2100 movs r1, #0
800d8ae: 4832 ldr r0, [pc, #200] ; (800d978 <AskChannels+0x128>)
800d8b0: f004 fd31 bl 8012316 <memset>
MASK_CHANNELS = CNT_CHANNELS = ACTIVE_CHANNEL = 0;
800d8b4: 2300 movs r3, #0
800d8b6: 4a31 ldr r2, [pc, #196] ; (800d97c <AskChannels+0x12c>)
800d8b8: 6013 str r3, [r2, #0]
800d8ba: 4a31 ldr r2, [pc, #196] ; (800d980 <AskChannels+0x130>)
800d8bc: 6013 str r3, [r2, #0]
800d8be: 4a31 ldr r2, [pc, #196] ; (800d984 <AskChannels+0x134>)
800d8c0: 6013 str r3, [r2, #0]
for(ch = 0; ch < 8; ch++)
800d8c2: 2300 movs r3, #0
800d8c4: 71bb strb r3, [r7, #6]
800d8c6: e02a b.n 800d91e <AskChannels+0xce>
{
for(i = 0; i < 2; i++)
800d8c8: 2300 movs r3, #0
800d8ca: 71fb strb r3, [r7, #7]
800d8cc: e021 b.n 800d912 <AskChannels+0xc2>
{
if(ReadChannel(ch) == 0)
800d8ce: 79bb ldrb r3, [r7, #6]
800d8d0: 4618 mov r0, r3
800d8d2: f7fe fedb bl 800c68c <ReadChannel>
800d8d6: 4603 mov r3, r0
800d8d8: 2b00 cmp r3, #0
800d8da: d115 bne.n 800d908 <AskChannels+0xb8>
{
RedrawScreen();
800d8dc: f7f7 feb4 bl 8005648 <RedrawScreen>
MASK_CHANNELS |= (1 << ch);
800d8e0: 79bb ldrb r3, [r7, #6]
800d8e2: 2201 movs r2, #1
800d8e4: fa02 f303 lsl.w r3, r2, r3
800d8e8: 461a mov r2, r3
800d8ea: 4b26 ldr r3, [pc, #152] ; (800d984 <AskChannels+0x134>)
800d8ec: 681b ldr r3, [r3, #0]
800d8ee: 4313 orrs r3, r2
800d8f0: 4a24 ldr r2, [pc, #144] ; (800d984 <AskChannels+0x134>)
800d8f2: 6013 str r3, [r2, #0]
CNT_CHANNELS++;
800d8f4: 4b22 ldr r3, [pc, #136] ; (800d980 <AskChannels+0x130>)
800d8f6: 681b ldr r3, [r3, #0]
800d8f8: 3301 adds r3, #1
800d8fa: 4a21 ldr r2, [pc, #132] ; (800d980 <AskChannels+0x130>)
800d8fc: 6013 str r3, [r2, #0]
ReadChannelSens(ch);
800d8fe: 79bb ldrb r3, [r7, #6]
800d900: 4618 mov r0, r3
800d902: f7ff fa83 bl 800ce0c <ReadChannelSens>
break;
800d906: e007 b.n 800d918 <AskChannels+0xc8>
}
else
RedrawScreen();
800d908: f7f7 fe9e bl 8005648 <RedrawScreen>
for(i = 0; i < 2; i++)
800d90c: 79fb ldrb r3, [r7, #7]
800d90e: 3301 adds r3, #1
800d910: 71fb strb r3, [r7, #7]
800d912: 79fb ldrb r3, [r7, #7]
800d914: 2b01 cmp r3, #1
800d916: d9da bls.n 800d8ce <AskChannels+0x7e>
for(ch = 0; ch < 8; ch++)
800d918: 79bb ldrb r3, [r7, #6]
800d91a: 3301 adds r3, #1
800d91c: 71bb strb r3, [r7, #6]
800d91e: 79bb ldrb r3, [r7, #6]
800d920: 2b07 cmp r3, #7
800d922: d9d1 bls.n 800d8c8 <AskChannels+0x78>
}
}
if(CNT_CHANNELS != 0)
800d924: 4b16 ldr r3, [pc, #88] ; (800d980 <AskChannels+0x130>)
800d926: 681b ldr r3, [r3, #0]
800d928: 2b00 cmp r3, #0
800d92a: d019 beq.n 800d960 <AskChannels+0x110>
{
for(i = 0; i < 8; i++)
800d92c: 2300 movs r3, #0
800d92e: 71fb strb r3, [r7, #7]
800d930: e010 b.n 800d954 <AskChannels+0x104>
{
if(MASK_CHANNELS & (1 << i))
800d932: 79fb ldrb r3, [r7, #7]
800d934: 2201 movs r2, #1
800d936: fa02 f303 lsl.w r3, r2, r3
800d93a: 461a mov r2, r3
800d93c: 4b11 ldr r3, [pc, #68] ; (800d984 <AskChannels+0x134>)
800d93e: 681b ldr r3, [r3, #0]
800d940: 4013 ands r3, r2
800d942: 2b00 cmp r3, #0
800d944: d003 beq.n 800d94e <AskChannels+0xfe>
{
ACTIVE_CHANNEL = i;
800d946: 79fb ldrb r3, [r7, #7]
800d948: 4a0c ldr r2, [pc, #48] ; (800d97c <AskChannels+0x12c>)
800d94a: 6013 str r3, [r2, #0]
break;
800d94c: e005 b.n 800d95a <AskChannels+0x10a>
for(i = 0; i < 8; i++)
800d94e: 79fb ldrb r3, [r7, #7]
800d950: 3301 adds r3, #1
800d952: 71fb strb r3, [r7, #7]
800d954: 79fb ldrb r3, [r7, #7]
800d956: 2b07 cmp r3, #7
800d958: d9eb bls.n 800d932 <AskChannels+0xe2>
}
}
ASK_COMPLETE = true;
800d95a: 4b05 ldr r3, [pc, #20] ; (800d970 <AskChannels+0x120>)
800d95c: 2201 movs r2, #1
800d95e: 701a strb r2, [r3, #0]
{
//Off();
}
HAL_Delay(2000);
800d960: f44f 60fa mov.w r0, #2000 ; 0x7d0
800d964: f000 f8aa bl 800dabc <HAL_Delay>
//MASK_CHANNELS = 0xf; //TODO Удалить
//CNT_CHANNELS = 4; //TODO Удалить
}
800d968: bf00 nop
800d96a: 3708 adds r7, #8
800d96c: 46bd mov sp, r7
800d96e: bd80 pop {r7, pc}
800d970: 2006b2f8 .word 0x2006b2f8
800d974: 2006b2fc .word 0x2006b2fc
800d978: 2006b510 .word 0x2006b510
800d97c: 2006b2d0 .word 0x2006b2d0
800d980: 2006b2d4 .word 0x2006b2d4
800d984: 20020028 .word 0x20020028
0800d988 <AskPeriodic>:
void AskPeriodic(void)
{
800d988: b580 push {r7, lr}
800d98a: b082 sub sp, #8
800d98c: af00 add r7, sp, #0
uint8_t ch;
for(ch = 0; ch < 8; ch++)
800d98e: 2300 movs r3, #0
800d990: 71fb strb r3, [r7, #7]
800d992: e01c b.n 800d9ce <AskPeriodic+0x46>
{
if(MASK_CHANNELS & (1 << ch))
800d994: 79fb ldrb r3, [r7, #7]
800d996: 2201 movs r2, #1
800d998: fa02 f303 lsl.w r3, r2, r3
800d99c: 461a mov r2, r3
800d99e: 4b0f ldr r3, [pc, #60] ; (800d9dc <AskPeriodic+0x54>)
800d9a0: 681b ldr r3, [r3, #0]
800d9a2: 4013 ands r3, r2
800d9a4: 2b00 cmp r3, #0
800d9a6: d00f beq.n 800d9c8 <AskPeriodic+0x40>
{
if(!focused)
800d9a8: 4b0d ldr r3, [pc, #52] ; (800d9e0 <AskPeriodic+0x58>)
800d9aa: 781b ldrb r3, [r3, #0]
800d9ac: b2db uxtb r3, r3
800d9ae: f083 0301 eor.w r3, r3, #1
800d9b2: b2db uxtb r3, r3
800d9b4: 2b00 cmp r3, #0
800d9b6: d007 beq.n 800d9c8 <AskPeriodic+0x40>
{
ReadChannel(ch);
800d9b8: 79fb ldrb r3, [r7, #7]
800d9ba: 4618 mov r0, r3
800d9bc: f7fe fe66 bl 800c68c <ReadChannel>
ReadChannelSens(ch);
800d9c0: 79fb ldrb r3, [r7, #7]
800d9c2: 4618 mov r0, r3
800d9c4: f7ff fa22 bl 800ce0c <ReadChannelSens>
for(ch = 0; ch < 8; ch++)
800d9c8: 79fb ldrb r3, [r7, #7]
800d9ca: 3301 adds r3, #1
800d9cc: 71fb strb r3, [r7, #7]
800d9ce: 79fb ldrb r3, [r7, #7]
800d9d0: 2b07 cmp r3, #7
800d9d2: d9df bls.n 800d994 <AskPeriodic+0xc>
}
}
}
}
800d9d4: bf00 nop
800d9d6: 3708 adds r7, #8
800d9d8: 46bd mov sp, r7
800d9da: bd80 pop {r7, pc}
800d9dc: 20020028 .word 0x20020028
800d9e0: 20020250 .word 0x20020250
0800d9e4 <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)
{
800d9e4: b580 push {r7, lr}
800d9e6: af00 add r7, sp, #0
/* Configure Instruction cache through ART accelerator */
#if (ART_ACCLERATOR_ENABLE != 0)
__HAL_FLASH_ART_ENABLE();
800d9e8: 4a0b ldr r2, [pc, #44] ; (800da18 <HAL_Init+0x34>)
800d9ea: 4b0b ldr r3, [pc, #44] ; (800da18 <HAL_Init+0x34>)
800d9ec: 681b ldr r3, [r3, #0]
800d9ee: f443 7300 orr.w r3, r3, #512 ; 0x200
800d9f2: 6013 str r3, [r2, #0]
#endif /* ART_ACCLERATOR_ENABLE */
/* Configure Flash prefetch */
#if (PREFETCH_ENABLE != 0U)
__HAL_FLASH_PREFETCH_BUFFER_ENABLE();
800d9f4: 4a08 ldr r2, [pc, #32] ; (800da18 <HAL_Init+0x34>)
800d9f6: 4b08 ldr r3, [pc, #32] ; (800da18 <HAL_Init+0x34>)
800d9f8: 681b ldr r3, [r3, #0]
800d9fa: f443 7380 orr.w r3, r3, #256 ; 0x100
800d9fe: 6013 str r3, [r2, #0]
#endif /* PREFETCH_ENABLE */
/* Set Interrupt Group Priority */
HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
800da00: 2003 movs r0, #3
800da02: f000 f96d bl 800dce0 <HAL_NVIC_SetPriorityGrouping>
/* Use systick as time base source and configure 1ms tick (default clock after Reset is HSI) */
HAL_InitTick(TICK_INT_PRIORITY);
800da06: 2000 movs r0, #0
800da08: f000 f808 bl 800da1c <HAL_InitTick>
/* Init the low level hardware */
HAL_MspInit();
800da0c: f7fe f988 bl 800bd20 <HAL_MspInit>
/* Return function status */
return HAL_OK;
800da10: 2300 movs r3, #0
}
800da12: 4618 mov r0, r3
800da14: bd80 pop {r7, pc}
800da16: bf00 nop
800da18: 40023c00 .word 0x40023c00
0800da1c <HAL_InitTick>:
* implementation in user file.
* @param TickPriority Tick interrupt priority.
* @retval HAL status
*/
__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
{
800da1c: b580 push {r7, lr}
800da1e: b082 sub sp, #8
800da20: af00 add r7, sp, #0
800da22: 6078 str r0, [r7, #4]
/* Configure the SysTick to have interrupt in 1ms time basis*/
if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U)
800da24: 4b12 ldr r3, [pc, #72] ; (800da70 <HAL_InitTick+0x54>)
800da26: 681a ldr r2, [r3, #0]
800da28: 4b12 ldr r3, [pc, #72] ; (800da74 <HAL_InitTick+0x58>)
800da2a: 781b ldrb r3, [r3, #0]
800da2c: 4619 mov r1, r3
800da2e: f44f 737a mov.w r3, #1000 ; 0x3e8
800da32: fbb3 f3f1 udiv r3, r3, r1
800da36: fbb2 f3f3 udiv r3, r2, r3
800da3a: 4618 mov r0, r3
800da3c: f000 f993 bl 800dd66 <HAL_SYSTICK_Config>
800da40: 4603 mov r3, r0
800da42: 2b00 cmp r3, #0
800da44: d001 beq.n 800da4a <HAL_InitTick+0x2e>
{
return HAL_ERROR;
800da46: 2301 movs r3, #1
800da48: e00e b.n 800da68 <HAL_InitTick+0x4c>
}
/* Configure the SysTick IRQ priority */
if (TickPriority < (1UL << __NVIC_PRIO_BITS))
800da4a: 687b ldr r3, [r7, #4]
800da4c: 2b0f cmp r3, #15
800da4e: d80a bhi.n 800da66 <HAL_InitTick+0x4a>
{
HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U);
800da50: 2200 movs r2, #0
800da52: 6879 ldr r1, [r7, #4]
800da54: f04f 30ff mov.w r0, #4294967295
800da58: f000 f94d bl 800dcf6 <HAL_NVIC_SetPriority>
uwTickPrio = TickPriority;
800da5c: 4a06 ldr r2, [pc, #24] ; (800da78 <HAL_InitTick+0x5c>)
800da5e: 687b ldr r3, [r7, #4]
800da60: 6013 str r3, [r2, #0]
{
return HAL_ERROR;
}
/* Return function status */
return HAL_OK;
800da62: 2300 movs r3, #0
800da64: e000 b.n 800da68 <HAL_InitTick+0x4c>
return HAL_ERROR;
800da66: 2301 movs r3, #1
}
800da68: 4618 mov r0, r3
800da6a: 3708 adds r7, #8
800da6c: 46bd mov sp, r7
800da6e: bd80 pop {r7, pc}
800da70: 20020214 .word 0x20020214
800da74: 20020224 .word 0x20020224
800da78: 20020220 .word 0x20020220
0800da7c <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)
{
800da7c: b480 push {r7}
800da7e: af00 add r7, sp, #0
uwTick += uwTickFreq;
800da80: 4b06 ldr r3, [pc, #24] ; (800da9c <HAL_IncTick+0x20>)
800da82: 781b ldrb r3, [r3, #0]
800da84: 461a mov r2, r3
800da86: 4b06 ldr r3, [pc, #24] ; (800daa0 <HAL_IncTick+0x24>)
800da88: 681b ldr r3, [r3, #0]
800da8a: 4413 add r3, r2
800da8c: 4a04 ldr r2, [pc, #16] ; (800daa0 <HAL_IncTick+0x24>)
800da8e: 6013 str r3, [r2, #0]
}
800da90: bf00 nop
800da92: 46bd mov sp, r7
800da94: f85d 7b04 ldr.w r7, [sp], #4
800da98: 4770 bx lr
800da9a: bf00 nop
800da9c: 20020224 .word 0x20020224
800daa0: 2006bf2c .word 0x2006bf2c
0800daa4 <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)
{
800daa4: b480 push {r7}
800daa6: af00 add r7, sp, #0
return uwTick;
800daa8: 4b03 ldr r3, [pc, #12] ; (800dab8 <HAL_GetTick+0x14>)
800daaa: 681b ldr r3, [r3, #0]
}
800daac: 4618 mov r0, r3
800daae: 46bd mov sp, r7
800dab0: f85d 7b04 ldr.w r7, [sp], #4
800dab4: 4770 bx lr
800dab6: bf00 nop
800dab8: 2006bf2c .word 0x2006bf2c
0800dabc <HAL_Delay>:
* implementations in user file.
* @param Delay specifies the delay time length, in milliseconds.
* @retval None
*/
__weak void HAL_Delay(uint32_t Delay)
{
800dabc: b580 push {r7, lr}
800dabe: b084 sub sp, #16
800dac0: af00 add r7, sp, #0
800dac2: 6078 str r0, [r7, #4]
uint32_t tickstart = HAL_GetTick();
800dac4: f7ff ffee bl 800daa4 <HAL_GetTick>
800dac8: 60b8 str r0, [r7, #8]
uint32_t wait = Delay;
800daca: 687b ldr r3, [r7, #4]
800dacc: 60fb str r3, [r7, #12]
/* Add a freq to guarantee minimum wait */
if (wait < HAL_MAX_DELAY)
800dace: 68fb ldr r3, [r7, #12]
800dad0: f1b3 3fff cmp.w r3, #4294967295
800dad4: d005 beq.n 800dae2 <HAL_Delay+0x26>
{
wait += (uint32_t)(uwTickFreq);
800dad6: 4b09 ldr r3, [pc, #36] ; (800dafc <HAL_Delay+0x40>)
800dad8: 781b ldrb r3, [r3, #0]
800dada: 461a mov r2, r3
800dadc: 68fb ldr r3, [r7, #12]
800dade: 4413 add r3, r2
800dae0: 60fb str r3, [r7, #12]
}
while ((HAL_GetTick() - tickstart) < wait)
800dae2: bf00 nop
800dae4: f7ff ffde bl 800daa4 <HAL_GetTick>
800dae8: 4602 mov r2, r0
800daea: 68bb ldr r3, [r7, #8]
800daec: 1ad2 subs r2, r2, r3
800daee: 68fb ldr r3, [r7, #12]
800daf0: 429a cmp r2, r3
800daf2: d3f7 bcc.n 800dae4 <HAL_Delay+0x28>
{
}
}
800daf4: bf00 nop
800daf6: 3710 adds r7, #16
800daf8: 46bd mov sp, r7
800dafa: bd80 pop {r7, pc}
800dafc: 20020224 .word 0x20020224
0800db00 <__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)
{
800db00: b480 push {r7}
800db02: b085 sub sp, #20
800db04: af00 add r7, sp, #0
800db06: 6078 str r0, [r7, #4]
uint32_t reg_value;
uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
800db08: 687b ldr r3, [r7, #4]
800db0a: f003 0307 and.w r3, r3, #7
800db0e: 60fb str r3, [r7, #12]
reg_value = SCB->AIRCR; /* read old register configuration */
800db10: 4b0b ldr r3, [pc, #44] ; (800db40 <__NVIC_SetPriorityGrouping+0x40>)
800db12: 68db ldr r3, [r3, #12]
800db14: 60bb str r3, [r7, #8]
reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */
800db16: 68ba ldr r2, [r7, #8]
800db18: f64f 03ff movw r3, #63743 ; 0xf8ff
800db1c: 4013 ands r3, r2
800db1e: 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 */
800db20: 68fb ldr r3, [r7, #12]
800db22: 021a lsls r2, r3, #8
((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
800db24: 68bb ldr r3, [r7, #8]
800db26: 431a orrs r2, r3
reg_value = (reg_value |
800db28: 4b06 ldr r3, [pc, #24] ; (800db44 <__NVIC_SetPriorityGrouping+0x44>)
800db2a: 4313 orrs r3, r2
800db2c: 60bb str r3, [r7, #8]
SCB->AIRCR = reg_value;
800db2e: 4a04 ldr r2, [pc, #16] ; (800db40 <__NVIC_SetPriorityGrouping+0x40>)
800db30: 68bb ldr r3, [r7, #8]
800db32: 60d3 str r3, [r2, #12]
}
800db34: bf00 nop
800db36: 3714 adds r7, #20
800db38: 46bd mov sp, r7
800db3a: f85d 7b04 ldr.w r7, [sp], #4
800db3e: 4770 bx lr
800db40: e000ed00 .word 0xe000ed00
800db44: 05fa0000 .word 0x05fa0000
0800db48 <__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)
{
800db48: b480 push {r7}
800db4a: af00 add r7, sp, #0
return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos));
800db4c: 4b04 ldr r3, [pc, #16] ; (800db60 <__NVIC_GetPriorityGrouping+0x18>)
800db4e: 68db ldr r3, [r3, #12]
800db50: 0a1b lsrs r3, r3, #8
800db52: f003 0307 and.w r3, r3, #7
}
800db56: 4618 mov r0, r3
800db58: 46bd mov sp, r7
800db5a: f85d 7b04 ldr.w r7, [sp], #4
800db5e: 4770 bx lr
800db60: e000ed00 .word 0xe000ed00
0800db64 <__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)
{
800db64: b480 push {r7}
800db66: b083 sub sp, #12
800db68: af00 add r7, sp, #0
800db6a: 4603 mov r3, r0
800db6c: 71fb strb r3, [r7, #7]
if ((int32_t)(IRQn) >= 0)
800db6e: f997 3007 ldrsb.w r3, [r7, #7]
800db72: 2b00 cmp r3, #0
800db74: db0b blt.n 800db8e <__NVIC_EnableIRQ+0x2a>
{
NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
800db76: 4909 ldr r1, [pc, #36] ; (800db9c <__NVIC_EnableIRQ+0x38>)
800db78: f997 3007 ldrsb.w r3, [r7, #7]
800db7c: 095b lsrs r3, r3, #5
800db7e: 79fa ldrb r2, [r7, #7]
800db80: f002 021f and.w r2, r2, #31
800db84: 2001 movs r0, #1
800db86: fa00 f202 lsl.w r2, r0, r2
800db8a: f841 2023 str.w r2, [r1, r3, lsl #2]
}
}
800db8e: bf00 nop
800db90: 370c adds r7, #12
800db92: 46bd mov sp, r7
800db94: f85d 7b04 ldr.w r7, [sp], #4
800db98: 4770 bx lr
800db9a: bf00 nop
800db9c: e000e100 .word 0xe000e100
0800dba0 <__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)
{
800dba0: b480 push {r7}
800dba2: b083 sub sp, #12
800dba4: af00 add r7, sp, #0
800dba6: 4603 mov r3, r0
800dba8: 71fb strb r3, [r7, #7]
if ((int32_t)(IRQn) >= 0)
800dbaa: f997 3007 ldrsb.w r3, [r7, #7]
800dbae: 2b00 cmp r3, #0
800dbb0: db10 blt.n 800dbd4 <__NVIC_DisableIRQ+0x34>
{
NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
800dbb2: 490b ldr r1, [pc, #44] ; (800dbe0 <__NVIC_DisableIRQ+0x40>)
800dbb4: f997 3007 ldrsb.w r3, [r7, #7]
800dbb8: 095b lsrs r3, r3, #5
800dbba: 79fa ldrb r2, [r7, #7]
800dbbc: f002 021f and.w r2, r2, #31
800dbc0: 2001 movs r0, #1
800dbc2: fa00 f202 lsl.w r2, r0, r2
800dbc6: 3320 adds r3, #32
800dbc8: 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");
800dbcc: f3bf 8f4f dsb sy
__ASM volatile ("isb 0xF":::"memory");
800dbd0: f3bf 8f6f isb sy
__DSB();
__ISB();
}
}
800dbd4: bf00 nop
800dbd6: 370c adds r7, #12
800dbd8: 46bd mov sp, r7
800dbda: f85d 7b04 ldr.w r7, [sp], #4
800dbde: 4770 bx lr
800dbe0: e000e100 .word 0xe000e100
0800dbe4 <__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)
{
800dbe4: b480 push {r7}
800dbe6: b083 sub sp, #12
800dbe8: af00 add r7, sp, #0
800dbea: 4603 mov r3, r0
800dbec: 6039 str r1, [r7, #0]
800dbee: 71fb strb r3, [r7, #7]
if ((int32_t)(IRQn) >= 0)
800dbf0: f997 3007 ldrsb.w r3, [r7, #7]
800dbf4: 2b00 cmp r3, #0
800dbf6: db0a blt.n 800dc0e <__NVIC_SetPriority+0x2a>
{
NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
800dbf8: 490d ldr r1, [pc, #52] ; (800dc30 <__NVIC_SetPriority+0x4c>)
800dbfa: f997 3007 ldrsb.w r3, [r7, #7]
800dbfe: 683a ldr r2, [r7, #0]
800dc00: b2d2 uxtb r2, r2
800dc02: 0112 lsls r2, r2, #4
800dc04: b2d2 uxtb r2, r2
800dc06: 440b add r3, r1
800dc08: 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);
}
}
800dc0c: e00a b.n 800dc24 <__NVIC_SetPriority+0x40>
SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
800dc0e: 4909 ldr r1, [pc, #36] ; (800dc34 <__NVIC_SetPriority+0x50>)
800dc10: 79fb ldrb r3, [r7, #7]
800dc12: f003 030f and.w r3, r3, #15
800dc16: 3b04 subs r3, #4
800dc18: 683a ldr r2, [r7, #0]
800dc1a: b2d2 uxtb r2, r2
800dc1c: 0112 lsls r2, r2, #4
800dc1e: b2d2 uxtb r2, r2
800dc20: 440b add r3, r1
800dc22: 761a strb r2, [r3, #24]
}
800dc24: bf00 nop
800dc26: 370c adds r7, #12
800dc28: 46bd mov sp, r7
800dc2a: f85d 7b04 ldr.w r7, [sp], #4
800dc2e: 4770 bx lr
800dc30: e000e100 .word 0xe000e100
800dc34: e000ed00 .word 0xe000ed00
0800dc38 <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)
{
800dc38: b480 push {r7}
800dc3a: b089 sub sp, #36 ; 0x24
800dc3c: af00 add r7, sp, #0
800dc3e: 60f8 str r0, [r7, #12]
800dc40: 60b9 str r1, [r7, #8]
800dc42: 607a str r2, [r7, #4]
uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
800dc44: 68fb ldr r3, [r7, #12]
800dc46: f003 0307 and.w r3, r3, #7
800dc4a: 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);
800dc4c: 69fb ldr r3, [r7, #28]
800dc4e: f1c3 0307 rsb r3, r3, #7
800dc52: 2b04 cmp r3, #4
800dc54: bf28 it cs
800dc56: 2304 movcs r3, #4
800dc58: 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));
800dc5a: 69fb ldr r3, [r7, #28]
800dc5c: 3304 adds r3, #4
800dc5e: 2b06 cmp r3, #6
800dc60: d902 bls.n 800dc68 <NVIC_EncodePriority+0x30>
800dc62: 69fb ldr r3, [r7, #28]
800dc64: 3b03 subs r3, #3
800dc66: e000 b.n 800dc6a <NVIC_EncodePriority+0x32>
800dc68: 2300 movs r3, #0
800dc6a: 617b str r3, [r7, #20]
return (
((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
800dc6c: 2201 movs r2, #1
800dc6e: 69bb ldr r3, [r7, #24]
800dc70: fa02 f303 lsl.w r3, r2, r3
800dc74: 1e5a subs r2, r3, #1
800dc76: 68bb ldr r3, [r7, #8]
800dc78: 401a ands r2, r3
800dc7a: 697b ldr r3, [r7, #20]
800dc7c: 409a lsls r2, r3
((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL)))
800dc7e: 2101 movs r1, #1
800dc80: 697b ldr r3, [r7, #20]
800dc82: fa01 f303 lsl.w r3, r1, r3
800dc86: 1e59 subs r1, r3, #1
800dc88: 687b ldr r3, [r7, #4]
800dc8a: 400b ands r3, r1
((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
800dc8c: 4313 orrs r3, r2
);
}
800dc8e: 4618 mov r0, r3
800dc90: 3724 adds r7, #36 ; 0x24
800dc92: 46bd mov sp, r7
800dc94: f85d 7b04 ldr.w r7, [sp], #4
800dc98: 4770 bx lr
...
0800dc9c <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)
{
800dc9c: b580 push {r7, lr}
800dc9e: b082 sub sp, #8
800dca0: af00 add r7, sp, #0
800dca2: 6078 str r0, [r7, #4]
if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk)
800dca4: 687b ldr r3, [r7, #4]
800dca6: 3b01 subs r3, #1
800dca8: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000
800dcac: d301 bcc.n 800dcb2 <SysTick_Config+0x16>
{
return (1UL); /* Reload value impossible */
800dcae: 2301 movs r3, #1
800dcb0: e00f b.n 800dcd2 <SysTick_Config+0x36>
}
SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */
800dcb2: 4a0a ldr r2, [pc, #40] ; (800dcdc <SysTick_Config+0x40>)
800dcb4: 687b ldr r3, [r7, #4]
800dcb6: 3b01 subs r3, #1
800dcb8: 6053 str r3, [r2, #4]
NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */
800dcba: 210f movs r1, #15
800dcbc: f04f 30ff mov.w r0, #4294967295
800dcc0: f7ff ff90 bl 800dbe4 <__NVIC_SetPriority>
SysTick->VAL = 0UL; /* Load the SysTick Counter Value */
800dcc4: 4b05 ldr r3, [pc, #20] ; (800dcdc <SysTick_Config+0x40>)
800dcc6: 2200 movs r2, #0
800dcc8: 609a str r2, [r3, #8]
SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
800dcca: 4b04 ldr r3, [pc, #16] ; (800dcdc <SysTick_Config+0x40>)
800dccc: 2207 movs r2, #7
800dcce: 601a str r2, [r3, #0]
SysTick_CTRL_TICKINT_Msk |
SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */
return (0UL); /* Function successful */
800dcd0: 2300 movs r3, #0
}
800dcd2: 4618 mov r0, r3
800dcd4: 3708 adds r7, #8
800dcd6: 46bd mov sp, r7
800dcd8: bd80 pop {r7, pc}
800dcda: bf00 nop
800dcdc: e000e010 .word 0xe000e010
0800dce0 <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)
{
800dce0: b580 push {r7, lr}
800dce2: b082 sub sp, #8
800dce4: af00 add r7, sp, #0
800dce6: 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);
800dce8: 6878 ldr r0, [r7, #4]
800dcea: f7ff ff09 bl 800db00 <__NVIC_SetPriorityGrouping>
}
800dcee: bf00 nop
800dcf0: 3708 adds r7, #8
800dcf2: 46bd mov sp, r7
800dcf4: bd80 pop {r7, pc}
0800dcf6 <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)
{
800dcf6: b580 push {r7, lr}
800dcf8: b086 sub sp, #24
800dcfa: af00 add r7, sp, #0
800dcfc: 4603 mov r3, r0
800dcfe: 60b9 str r1, [r7, #8]
800dd00: 607a str r2, [r7, #4]
800dd02: 73fb strb r3, [r7, #15]
uint32_t prioritygroup = 0x00;
800dd04: 2300 movs r3, #0
800dd06: 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();
800dd08: f7ff ff1e bl 800db48 <__NVIC_GetPriorityGrouping>
800dd0c: 6178 str r0, [r7, #20]
NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority));
800dd0e: 687a ldr r2, [r7, #4]
800dd10: 68b9 ldr r1, [r7, #8]
800dd12: 6978 ldr r0, [r7, #20]
800dd14: f7ff ff90 bl 800dc38 <NVIC_EncodePriority>
800dd18: 4602 mov r2, r0
800dd1a: f997 300f ldrsb.w r3, [r7, #15]
800dd1e: 4611 mov r1, r2
800dd20: 4618 mov r0, r3
800dd22: f7ff ff5f bl 800dbe4 <__NVIC_SetPriority>
}
800dd26: bf00 nop
800dd28: 3718 adds r7, #24
800dd2a: 46bd mov sp, r7
800dd2c: bd80 pop {r7, pc}
0800dd2e <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)
{
800dd2e: b580 push {r7, lr}
800dd30: b082 sub sp, #8
800dd32: af00 add r7, sp, #0
800dd34: 4603 mov r3, r0
800dd36: 71fb strb r3, [r7, #7]
/* Check the parameters */
assert_param(IS_NVIC_DEVICE_IRQ(IRQn));
/* Enable interrupt */
NVIC_EnableIRQ(IRQn);
800dd38: f997 3007 ldrsb.w r3, [r7, #7]
800dd3c: 4618 mov r0, r3
800dd3e: f7ff ff11 bl 800db64 <__NVIC_EnableIRQ>
}
800dd42: bf00 nop
800dd44: 3708 adds r7, #8
800dd46: 46bd mov sp, r7
800dd48: bd80 pop {r7, pc}
0800dd4a <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)
{
800dd4a: b580 push {r7, lr}
800dd4c: b082 sub sp, #8
800dd4e: af00 add r7, sp, #0
800dd50: 4603 mov r3, r0
800dd52: 71fb strb r3, [r7, #7]
/* Check the parameters */
assert_param(IS_NVIC_DEVICE_IRQ(IRQn));
/* Disable interrupt */
NVIC_DisableIRQ(IRQn);
800dd54: f997 3007 ldrsb.w r3, [r7, #7]
800dd58: 4618 mov r0, r3
800dd5a: f7ff ff21 bl 800dba0 <__NVIC_DisableIRQ>
}
800dd5e: bf00 nop
800dd60: 3708 adds r7, #8
800dd62: 46bd mov sp, r7
800dd64: bd80 pop {r7, pc}
0800dd66 <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)
{
800dd66: b580 push {r7, lr}
800dd68: b082 sub sp, #8
800dd6a: af00 add r7, sp, #0
800dd6c: 6078 str r0, [r7, #4]
return SysTick_Config(TicksNumb);
800dd6e: 6878 ldr r0, [r7, #4]
800dd70: f7ff ff94 bl 800dc9c <SysTick_Config>
800dd74: 4603 mov r3, r0
}
800dd76: 4618 mov r0, r3
800dd78: 3708 adds r7, #8
800dd7a: 46bd mov sp, r7
800dd7c: bd80 pop {r7, pc}
0800dd7e <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)
{
800dd7e: b580 push {r7, lr}
800dd80: b084 sub sp, #16
800dd82: af00 add r7, sp, #0
800dd84: 6078 str r0, [r7, #4]
/* calculate DMA base and stream number */
DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress;
800dd86: 687b ldr r3, [r7, #4]
800dd88: 6d9b ldr r3, [r3, #88] ; 0x58
800dd8a: 60fb str r3, [r7, #12]
uint32_t tickstart = HAL_GetTick();
800dd8c: f7ff fe8a bl 800daa4 <HAL_GetTick>
800dd90: 60b8 str r0, [r7, #8]
if(hdma->State != HAL_DMA_STATE_BUSY)
800dd92: 687b ldr r3, [r7, #4]
800dd94: f893 3035 ldrb.w r3, [r3, #53] ; 0x35
800dd98: b2db uxtb r3, r3
800dd9a: 2b02 cmp r3, #2
800dd9c: d008 beq.n 800ddb0 <HAL_DMA_Abort+0x32>
{
hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER;
800dd9e: 687b ldr r3, [r7, #4]
800dda0: 2280 movs r2, #128 ; 0x80
800dda2: 655a str r2, [r3, #84] ; 0x54
/* Process Unlocked */
__HAL_UNLOCK(hdma);
800dda4: 687b ldr r3, [r7, #4]
800dda6: 2200 movs r2, #0
800dda8: f883 2034 strb.w r2, [r3, #52] ; 0x34
return HAL_ERROR;
800ddac: 2301 movs r3, #1
800ddae: e052 b.n 800de56 <HAL_DMA_Abort+0xd8>
}
else
{
/* Disable all the transfer interrupts */
hdma->Instance->CR &= ~(DMA_IT_TC | DMA_IT_TE | DMA_IT_DME);
800ddb0: 687b ldr r3, [r7, #4]
800ddb2: 681b ldr r3, [r3, #0]
800ddb4: 687a ldr r2, [r7, #4]
800ddb6: 6812 ldr r2, [r2, #0]
800ddb8: 6812 ldr r2, [r2, #0]
800ddba: f022 0216 bic.w r2, r2, #22
800ddbe: 601a str r2, [r3, #0]
hdma->Instance->FCR &= ~(DMA_IT_FE);
800ddc0: 687b ldr r3, [r7, #4]
800ddc2: 681b ldr r3, [r3, #0]
800ddc4: 687a ldr r2, [r7, #4]
800ddc6: 6812 ldr r2, [r2, #0]
800ddc8: 6952 ldr r2, [r2, #20]
800ddca: f022 0280 bic.w r2, r2, #128 ; 0x80
800ddce: 615a str r2, [r3, #20]
if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL))
800ddd0: 687b ldr r3, [r7, #4]
800ddd2: 6c1b ldr r3, [r3, #64] ; 0x40
800ddd4: 2b00 cmp r3, #0
800ddd6: d103 bne.n 800dde0 <HAL_DMA_Abort+0x62>
800ddd8: 687b ldr r3, [r7, #4]
800ddda: 6c9b ldr r3, [r3, #72] ; 0x48
800dddc: 2b00 cmp r3, #0
800ddde: d007 beq.n 800ddf0 <HAL_DMA_Abort+0x72>
{
hdma->Instance->CR &= ~(DMA_IT_HT);
800dde0: 687b ldr r3, [r7, #4]
800dde2: 681b ldr r3, [r3, #0]
800dde4: 687a ldr r2, [r7, #4]
800dde6: 6812 ldr r2, [r2, #0]
800dde8: 6812 ldr r2, [r2, #0]
800ddea: f022 0208 bic.w r2, r2, #8
800ddee: 601a str r2, [r3, #0]
}
/* Disable the stream */
__HAL_DMA_DISABLE(hdma);
800ddf0: 687b ldr r3, [r7, #4]
800ddf2: 681b ldr r3, [r3, #0]
800ddf4: 687a ldr r2, [r7, #4]
800ddf6: 6812 ldr r2, [r2, #0]
800ddf8: 6812 ldr r2, [r2, #0]
800ddfa: f022 0201 bic.w r2, r2, #1
800ddfe: 601a str r2, [r3, #0]
/* Check if the DMA Stream is effectively disabled */
while((hdma->Instance->CR & DMA_SxCR_EN) != RESET)
800de00: e013 b.n 800de2a <HAL_DMA_Abort+0xac>
{
/* Check for the Timeout */
if((HAL_GetTick() - tickstart ) > HAL_TIMEOUT_DMA_ABORT)
800de02: f7ff fe4f bl 800daa4 <HAL_GetTick>
800de06: 4602 mov r2, r0
800de08: 68bb ldr r3, [r7, #8]
800de0a: 1ad3 subs r3, r2, r3
800de0c: 2b05 cmp r3, #5
800de0e: d90c bls.n 800de2a <HAL_DMA_Abort+0xac>
{
/* Update error code */
hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT;
800de10: 687b ldr r3, [r7, #4]
800de12: 2220 movs r2, #32
800de14: 655a str r2, [r3, #84] ; 0x54
/* Change the DMA state */
hdma->State = HAL_DMA_STATE_TIMEOUT;
800de16: 687b ldr r3, [r7, #4]
800de18: 2203 movs r2, #3
800de1a: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Process Unlocked */
__HAL_UNLOCK(hdma);
800de1e: 687b ldr r3, [r7, #4]
800de20: 2200 movs r2, #0
800de22: f883 2034 strb.w r2, [r3, #52] ; 0x34
return HAL_TIMEOUT;
800de26: 2303 movs r3, #3
800de28: e015 b.n 800de56 <HAL_DMA_Abort+0xd8>
while((hdma->Instance->CR & DMA_SxCR_EN) != RESET)
800de2a: 687b ldr r3, [r7, #4]
800de2c: 681b ldr r3, [r3, #0]
800de2e: 681b ldr r3, [r3, #0]
800de30: f003 0301 and.w r3, r3, #1
800de34: 2b00 cmp r3, #0
800de36: d1e4 bne.n 800de02 <HAL_DMA_Abort+0x84>
}
}
/* Clear all interrupt flags at correct offset within the register */
regs->IFCR = 0x3FU << hdma->StreamIndex;
800de38: 687b ldr r3, [r7, #4]
800de3a: 6ddb ldr r3, [r3, #92] ; 0x5c
800de3c: 223f movs r2, #63 ; 0x3f
800de3e: 409a lsls r2, r3
800de40: 68fb ldr r3, [r7, #12]
800de42: 609a str r2, [r3, #8]
/* Change the DMA state*/
hdma->State = HAL_DMA_STATE_READY;
800de44: 687b ldr r3, [r7, #4]
800de46: 2201 movs r2, #1
800de48: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Process Unlocked */
__HAL_UNLOCK(hdma);
800de4c: 687b ldr r3, [r7, #4]
800de4e: 2200 movs r2, #0
800de50: f883 2034 strb.w r2, [r3, #52] ; 0x34
}
return HAL_OK;
800de54: 2300 movs r3, #0
}
800de56: 4618 mov r0, r3
800de58: 3710 adds r7, #16
800de5a: 46bd mov sp, r7
800de5c: bd80 pop {r7, pc}
0800de5e <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)
{
800de5e: b480 push {r7}
800de60: b083 sub sp, #12
800de62: af00 add r7, sp, #0
800de64: 6078 str r0, [r7, #4]
if(hdma->State != HAL_DMA_STATE_BUSY)
800de66: 687b ldr r3, [r7, #4]
800de68: f893 3035 ldrb.w r3, [r3, #53] ; 0x35
800de6c: b2db uxtb r3, r3
800de6e: 2b02 cmp r3, #2
800de70: d004 beq.n 800de7c <HAL_DMA_Abort_IT+0x1e>
{
hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER;
800de72: 687b ldr r3, [r7, #4]
800de74: 2280 movs r2, #128 ; 0x80
800de76: 655a str r2, [r3, #84] ; 0x54
return HAL_ERROR;
800de78: 2301 movs r3, #1
800de7a: e00c b.n 800de96 <HAL_DMA_Abort_IT+0x38>
}
else
{
/* Set Abort State */
hdma->State = HAL_DMA_STATE_ABORT;
800de7c: 687b ldr r3, [r7, #4]
800de7e: 2205 movs r2, #5
800de80: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Disable the stream */
__HAL_DMA_DISABLE(hdma);
800de84: 687b ldr r3, [r7, #4]
800de86: 681b ldr r3, [r3, #0]
800de88: 687a ldr r2, [r7, #4]
800de8a: 6812 ldr r2, [r2, #0]
800de8c: 6812 ldr r2, [r2, #0]
800de8e: f022 0201 bic.w r2, r2, #1
800de92: 601a str r2, [r3, #0]
}
return HAL_OK;
800de94: 2300 movs r3, #0
}
800de96: 4618 mov r0, r3
800de98: 370c adds r7, #12
800de9a: 46bd mov sp, r7
800de9c: f85d 7b04 ldr.w r7, [sp], #4
800dea0: 4770 bx lr
...
0800dea4 <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)
{
800dea4: b580 push {r7, lr}
800dea6: b086 sub sp, #24
800dea8: af00 add r7, sp, #0
800deaa: 6078 str r0, [r7, #4]
uint32_t tmpisr;
__IO uint32_t count = 0;
800deac: 2300 movs r3, #0
800deae: 60bb str r3, [r7, #8]
uint32_t timeout = SystemCoreClock / 9600;
800deb0: 4b92 ldr r3, [pc, #584] ; (800e0fc <HAL_DMA_IRQHandler+0x258>)
800deb2: 681b ldr r3, [r3, #0]
800deb4: 4a92 ldr r2, [pc, #584] ; (800e100 <HAL_DMA_IRQHandler+0x25c>)
800deb6: fba2 2303 umull r2, r3, r2, r3
800deba: 0a9b lsrs r3, r3, #10
800debc: 617b str r3, [r7, #20]
/* calculate DMA base and stream number */
DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress;
800debe: 687b ldr r3, [r7, #4]
800dec0: 6d9b ldr r3, [r3, #88] ; 0x58
800dec2: 613b str r3, [r7, #16]
tmpisr = regs->ISR;
800dec4: 693b ldr r3, [r7, #16]
800dec6: 681b ldr r3, [r3, #0]
800dec8: 60fb str r3, [r7, #12]
/* Transfer Error Interrupt management ***************************************/
if ((tmpisr & (DMA_FLAG_TEIF0_4 << hdma->StreamIndex)) != RESET)
800deca: 687b ldr r3, [r7, #4]
800decc: 6ddb ldr r3, [r3, #92] ; 0x5c
800dece: 2208 movs r2, #8
800ded0: 409a lsls r2, r3
800ded2: 68fb ldr r3, [r7, #12]
800ded4: 4013 ands r3, r2
800ded6: 2b00 cmp r3, #0
800ded8: d01a beq.n 800df10 <HAL_DMA_IRQHandler+0x6c>
{
if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TE) != RESET)
800deda: 687b ldr r3, [r7, #4]
800dedc: 681b ldr r3, [r3, #0]
800dede: 681b ldr r3, [r3, #0]
800dee0: f003 0304 and.w r3, r3, #4
800dee4: 2b00 cmp r3, #0
800dee6: d013 beq.n 800df10 <HAL_DMA_IRQHandler+0x6c>
{
/* Disable the transfer error interrupt */
hdma->Instance->CR &= ~(DMA_IT_TE);
800dee8: 687b ldr r3, [r7, #4]
800deea: 681b ldr r3, [r3, #0]
800deec: 687a ldr r2, [r7, #4]
800deee: 6812 ldr r2, [r2, #0]
800def0: 6812 ldr r2, [r2, #0]
800def2: f022 0204 bic.w r2, r2, #4
800def6: 601a str r2, [r3, #0]
/* Clear the transfer error flag */
regs->IFCR = DMA_FLAG_TEIF0_4 << hdma->StreamIndex;
800def8: 687b ldr r3, [r7, #4]
800defa: 6ddb ldr r3, [r3, #92] ; 0x5c
800defc: 2208 movs r2, #8
800defe: 409a lsls r2, r3
800df00: 693b ldr r3, [r7, #16]
800df02: 609a str r2, [r3, #8]
/* Update error code */
hdma->ErrorCode |= HAL_DMA_ERROR_TE;
800df04: 687b ldr r3, [r7, #4]
800df06: 6d5b ldr r3, [r3, #84] ; 0x54
800df08: f043 0201 orr.w r2, r3, #1
800df0c: 687b ldr r3, [r7, #4]
800df0e: 655a str r2, [r3, #84] ; 0x54
}
}
/* FIFO Error Interrupt management ******************************************/
if ((tmpisr & (DMA_FLAG_FEIF0_4 << hdma->StreamIndex)) != RESET)
800df10: 687b ldr r3, [r7, #4]
800df12: 6ddb ldr r3, [r3, #92] ; 0x5c
800df14: 2201 movs r2, #1
800df16: 409a lsls r2, r3
800df18: 68fb ldr r3, [r7, #12]
800df1a: 4013 ands r3, r2
800df1c: 2b00 cmp r3, #0
800df1e: d012 beq.n 800df46 <HAL_DMA_IRQHandler+0xa2>
{
if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_FE) != RESET)
800df20: 687b ldr r3, [r7, #4]
800df22: 681b ldr r3, [r3, #0]
800df24: 695b ldr r3, [r3, #20]
800df26: f003 0380 and.w r3, r3, #128 ; 0x80
800df2a: 2b00 cmp r3, #0
800df2c: d00b beq.n 800df46 <HAL_DMA_IRQHandler+0xa2>
{
/* Clear the FIFO error flag */
regs->IFCR = DMA_FLAG_FEIF0_4 << hdma->StreamIndex;
800df2e: 687b ldr r3, [r7, #4]
800df30: 6ddb ldr r3, [r3, #92] ; 0x5c
800df32: 2201 movs r2, #1
800df34: 409a lsls r2, r3
800df36: 693b ldr r3, [r7, #16]
800df38: 609a str r2, [r3, #8]
/* Update error code */
hdma->ErrorCode |= HAL_DMA_ERROR_FE;
800df3a: 687b ldr r3, [r7, #4]
800df3c: 6d5b ldr r3, [r3, #84] ; 0x54
800df3e: f043 0202 orr.w r2, r3, #2
800df42: 687b ldr r3, [r7, #4]
800df44: 655a str r2, [r3, #84] ; 0x54
}
}
/* Direct Mode Error Interrupt management ***********************************/
if ((tmpisr & (DMA_FLAG_DMEIF0_4 << hdma->StreamIndex)) != RESET)
800df46: 687b ldr r3, [r7, #4]
800df48: 6ddb ldr r3, [r3, #92] ; 0x5c
800df4a: 2204 movs r2, #4
800df4c: 409a lsls r2, r3
800df4e: 68fb ldr r3, [r7, #12]
800df50: 4013 ands r3, r2
800df52: 2b00 cmp r3, #0
800df54: d012 beq.n 800df7c <HAL_DMA_IRQHandler+0xd8>
{
if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_DME) != RESET)
800df56: 687b ldr r3, [r7, #4]
800df58: 681b ldr r3, [r3, #0]
800df5a: 681b ldr r3, [r3, #0]
800df5c: f003 0302 and.w r3, r3, #2
800df60: 2b00 cmp r3, #0
800df62: d00b beq.n 800df7c <HAL_DMA_IRQHandler+0xd8>
{
/* Clear the direct mode error flag */
regs->IFCR = DMA_FLAG_DMEIF0_4 << hdma->StreamIndex;
800df64: 687b ldr r3, [r7, #4]
800df66: 6ddb ldr r3, [r3, #92] ; 0x5c
800df68: 2204 movs r2, #4
800df6a: 409a lsls r2, r3
800df6c: 693b ldr r3, [r7, #16]
800df6e: 609a str r2, [r3, #8]
/* Update error code */
hdma->ErrorCode |= HAL_DMA_ERROR_DME;
800df70: 687b ldr r3, [r7, #4]
800df72: 6d5b ldr r3, [r3, #84] ; 0x54
800df74: f043 0204 orr.w r2, r3, #4
800df78: 687b ldr r3, [r7, #4]
800df7a: 655a str r2, [r3, #84] ; 0x54
}
}
/* Half Transfer Complete Interrupt management ******************************/
if ((tmpisr & (DMA_FLAG_HTIF0_4 << hdma->StreamIndex)) != RESET)
800df7c: 687b ldr r3, [r7, #4]
800df7e: 6ddb ldr r3, [r3, #92] ; 0x5c
800df80: 2210 movs r2, #16
800df82: 409a lsls r2, r3
800df84: 68fb ldr r3, [r7, #12]
800df86: 4013 ands r3, r2
800df88: 2b00 cmp r3, #0
800df8a: d043 beq.n 800e014 <HAL_DMA_IRQHandler+0x170>
{
if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_HT) != RESET)
800df8c: 687b ldr r3, [r7, #4]
800df8e: 681b ldr r3, [r3, #0]
800df90: 681b ldr r3, [r3, #0]
800df92: f003 0308 and.w r3, r3, #8
800df96: 2b00 cmp r3, #0
800df98: d03c beq.n 800e014 <HAL_DMA_IRQHandler+0x170>
{
/* Clear the half transfer complete flag */
regs->IFCR = DMA_FLAG_HTIF0_4 << hdma->StreamIndex;
800df9a: 687b ldr r3, [r7, #4]
800df9c: 6ddb ldr r3, [r3, #92] ; 0x5c
800df9e: 2210 movs r2, #16
800dfa0: 409a lsls r2, r3
800dfa2: 693b ldr r3, [r7, #16]
800dfa4: 609a str r2, [r3, #8]
/* Multi_Buffering mode enabled */
if(((hdma->Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET)
800dfa6: 687b ldr r3, [r7, #4]
800dfa8: 681b ldr r3, [r3, #0]
800dfaa: 681b ldr r3, [r3, #0]
800dfac: f403 2380 and.w r3, r3, #262144 ; 0x40000
800dfb0: 2b00 cmp r3, #0
800dfb2: d018 beq.n 800dfe6 <HAL_DMA_IRQHandler+0x142>
{
/* Current memory buffer used is Memory 0 */
if((hdma->Instance->CR & DMA_SxCR_CT) == RESET)
800dfb4: 687b ldr r3, [r7, #4]
800dfb6: 681b ldr r3, [r3, #0]
800dfb8: 681b ldr r3, [r3, #0]
800dfba: f403 2300 and.w r3, r3, #524288 ; 0x80000
800dfbe: 2b00 cmp r3, #0
800dfc0: d108 bne.n 800dfd4 <HAL_DMA_IRQHandler+0x130>
{
if(hdma->XferHalfCpltCallback != NULL)
800dfc2: 687b ldr r3, [r7, #4]
800dfc4: 6c1b ldr r3, [r3, #64] ; 0x40
800dfc6: 2b00 cmp r3, #0
800dfc8: d024 beq.n 800e014 <HAL_DMA_IRQHandler+0x170>
{
/* Half transfer callback */
hdma->XferHalfCpltCallback(hdma);
800dfca: 687b ldr r3, [r7, #4]
800dfcc: 6c1b ldr r3, [r3, #64] ; 0x40
800dfce: 6878 ldr r0, [r7, #4]
800dfd0: 4798 blx r3
800dfd2: e01f b.n 800e014 <HAL_DMA_IRQHandler+0x170>
}
}
/* Current memory buffer used is Memory 1 */
else
{
if(hdma->XferM1HalfCpltCallback != NULL)
800dfd4: 687b ldr r3, [r7, #4]
800dfd6: 6c9b ldr r3, [r3, #72] ; 0x48
800dfd8: 2b00 cmp r3, #0
800dfda: d01b beq.n 800e014 <HAL_DMA_IRQHandler+0x170>
{
/* Half transfer callback */
hdma->XferM1HalfCpltCallback(hdma);
800dfdc: 687b ldr r3, [r7, #4]
800dfde: 6c9b ldr r3, [r3, #72] ; 0x48
800dfe0: 6878 ldr r0, [r7, #4]
800dfe2: 4798 blx r3
800dfe4: e016 b.n 800e014 <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)
800dfe6: 687b ldr r3, [r7, #4]
800dfe8: 681b ldr r3, [r3, #0]
800dfea: 681b ldr r3, [r3, #0]
800dfec: f403 7380 and.w r3, r3, #256 ; 0x100
800dff0: 2b00 cmp r3, #0
800dff2: d107 bne.n 800e004 <HAL_DMA_IRQHandler+0x160>
{
/* Disable the half transfer interrupt */
hdma->Instance->CR &= ~(DMA_IT_HT);
800dff4: 687b ldr r3, [r7, #4]
800dff6: 681b ldr r3, [r3, #0]
800dff8: 687a ldr r2, [r7, #4]
800dffa: 6812 ldr r2, [r2, #0]
800dffc: 6812 ldr r2, [r2, #0]
800dffe: f022 0208 bic.w r2, r2, #8
800e002: 601a str r2, [r3, #0]
}
if(hdma->XferHalfCpltCallback != NULL)
800e004: 687b ldr r3, [r7, #4]
800e006: 6c1b ldr r3, [r3, #64] ; 0x40
800e008: 2b00 cmp r3, #0
800e00a: d003 beq.n 800e014 <HAL_DMA_IRQHandler+0x170>
{
/* Half transfer callback */
hdma->XferHalfCpltCallback(hdma);
800e00c: 687b ldr r3, [r7, #4]
800e00e: 6c1b ldr r3, [r3, #64] ; 0x40
800e010: 6878 ldr r0, [r7, #4]
800e012: 4798 blx r3
}
}
}
}
/* Transfer Complete Interrupt management ***********************************/
if ((tmpisr & (DMA_FLAG_TCIF0_4 << hdma->StreamIndex)) != RESET)
800e014: 687b ldr r3, [r7, #4]
800e016: 6ddb ldr r3, [r3, #92] ; 0x5c
800e018: 2220 movs r2, #32
800e01a: 409a lsls r2, r3
800e01c: 68fb ldr r3, [r7, #12]
800e01e: 4013 ands r3, r2
800e020: 2b00 cmp r3, #0
800e022: f000 808e beq.w 800e142 <HAL_DMA_IRQHandler+0x29e>
{
if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TC) != RESET)
800e026: 687b ldr r3, [r7, #4]
800e028: 681b ldr r3, [r3, #0]
800e02a: 681b ldr r3, [r3, #0]
800e02c: f003 0310 and.w r3, r3, #16
800e030: 2b00 cmp r3, #0
800e032: f000 8086 beq.w 800e142 <HAL_DMA_IRQHandler+0x29e>
{
/* Clear the transfer complete flag */
regs->IFCR = DMA_FLAG_TCIF0_4 << hdma->StreamIndex;
800e036: 687b ldr r3, [r7, #4]
800e038: 6ddb ldr r3, [r3, #92] ; 0x5c
800e03a: 2220 movs r2, #32
800e03c: 409a lsls r2, r3
800e03e: 693b ldr r3, [r7, #16]
800e040: 609a str r2, [r3, #8]
if(HAL_DMA_STATE_ABORT == hdma->State)
800e042: 687b ldr r3, [r7, #4]
800e044: f893 3035 ldrb.w r3, [r3, #53] ; 0x35
800e048: b2db uxtb r3, r3
800e04a: 2b05 cmp r3, #5
800e04c: d136 bne.n 800e0bc <HAL_DMA_IRQHandler+0x218>
{
/* Disable all the transfer interrupts */
hdma->Instance->CR &= ~(DMA_IT_TC | DMA_IT_TE | DMA_IT_DME);
800e04e: 687b ldr r3, [r7, #4]
800e050: 681b ldr r3, [r3, #0]
800e052: 687a ldr r2, [r7, #4]
800e054: 6812 ldr r2, [r2, #0]
800e056: 6812 ldr r2, [r2, #0]
800e058: f022 0216 bic.w r2, r2, #22
800e05c: 601a str r2, [r3, #0]
hdma->Instance->FCR &= ~(DMA_IT_FE);
800e05e: 687b ldr r3, [r7, #4]
800e060: 681b ldr r3, [r3, #0]
800e062: 687a ldr r2, [r7, #4]
800e064: 6812 ldr r2, [r2, #0]
800e066: 6952 ldr r2, [r2, #20]
800e068: f022 0280 bic.w r2, r2, #128 ; 0x80
800e06c: 615a str r2, [r3, #20]
if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL))
800e06e: 687b ldr r3, [r7, #4]
800e070: 6c1b ldr r3, [r3, #64] ; 0x40
800e072: 2b00 cmp r3, #0
800e074: d103 bne.n 800e07e <HAL_DMA_IRQHandler+0x1da>
800e076: 687b ldr r3, [r7, #4]
800e078: 6c9b ldr r3, [r3, #72] ; 0x48
800e07a: 2b00 cmp r3, #0
800e07c: d007 beq.n 800e08e <HAL_DMA_IRQHandler+0x1ea>
{
hdma->Instance->CR &= ~(DMA_IT_HT);
800e07e: 687b ldr r3, [r7, #4]
800e080: 681b ldr r3, [r3, #0]
800e082: 687a ldr r2, [r7, #4]
800e084: 6812 ldr r2, [r2, #0]
800e086: 6812 ldr r2, [r2, #0]
800e088: f022 0208 bic.w r2, r2, #8
800e08c: 601a str r2, [r3, #0]
}
/* Clear all interrupt flags at correct offset within the register */
regs->IFCR = 0x3FU << hdma->StreamIndex;
800e08e: 687b ldr r3, [r7, #4]
800e090: 6ddb ldr r3, [r3, #92] ; 0x5c
800e092: 223f movs r2, #63 ; 0x3f
800e094: 409a lsls r2, r3
800e096: 693b ldr r3, [r7, #16]
800e098: 609a str r2, [r3, #8]
/* Change the DMA state */
hdma->State = HAL_DMA_STATE_READY;
800e09a: 687b ldr r3, [r7, #4]
800e09c: 2201 movs r2, #1
800e09e: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Process Unlocked */
__HAL_UNLOCK(hdma);
800e0a2: 687b ldr r3, [r7, #4]
800e0a4: 2200 movs r2, #0
800e0a6: f883 2034 strb.w r2, [r3, #52] ; 0x34
if(hdma->XferAbortCallback != NULL)
800e0aa: 687b ldr r3, [r7, #4]
800e0ac: 6d1b ldr r3, [r3, #80] ; 0x50
800e0ae: 2b00 cmp r3, #0
800e0b0: d07d beq.n 800e1ae <HAL_DMA_IRQHandler+0x30a>
{
hdma->XferAbortCallback(hdma);
800e0b2: 687b ldr r3, [r7, #4]
800e0b4: 6d1b ldr r3, [r3, #80] ; 0x50
800e0b6: 6878 ldr r0, [r7, #4]
800e0b8: 4798 blx r3
}
return;
800e0ba: e078 b.n 800e1ae <HAL_DMA_IRQHandler+0x30a>
}
if(((hdma->Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET)
800e0bc: 687b ldr r3, [r7, #4]
800e0be: 681b ldr r3, [r3, #0]
800e0c0: 681b ldr r3, [r3, #0]
800e0c2: f403 2380 and.w r3, r3, #262144 ; 0x40000
800e0c6: 2b00 cmp r3, #0
800e0c8: d01c beq.n 800e104 <HAL_DMA_IRQHandler+0x260>
{
/* Current memory buffer used is Memory 0 */
if((hdma->Instance->CR & DMA_SxCR_CT) == RESET)
800e0ca: 687b ldr r3, [r7, #4]
800e0cc: 681b ldr r3, [r3, #0]
800e0ce: 681b ldr r3, [r3, #0]
800e0d0: f403 2300 and.w r3, r3, #524288 ; 0x80000
800e0d4: 2b00 cmp r3, #0
800e0d6: d108 bne.n 800e0ea <HAL_DMA_IRQHandler+0x246>
{
if(hdma->XferM1CpltCallback != NULL)
800e0d8: 687b ldr r3, [r7, #4]
800e0da: 6c5b ldr r3, [r3, #68] ; 0x44
800e0dc: 2b00 cmp r3, #0
800e0de: d030 beq.n 800e142 <HAL_DMA_IRQHandler+0x29e>
{
/* Transfer complete Callback for memory1 */
hdma->XferM1CpltCallback(hdma);
800e0e0: 687b ldr r3, [r7, #4]
800e0e2: 6c5b ldr r3, [r3, #68] ; 0x44
800e0e4: 6878 ldr r0, [r7, #4]
800e0e6: 4798 blx r3
800e0e8: e02b b.n 800e142 <HAL_DMA_IRQHandler+0x29e>
}
}
/* Current memory buffer used is Memory 1 */
else
{
if(hdma->XferCpltCallback != NULL)
800e0ea: 687b ldr r3, [r7, #4]
800e0ec: 6bdb ldr r3, [r3, #60] ; 0x3c
800e0ee: 2b00 cmp r3, #0
800e0f0: d027 beq.n 800e142 <HAL_DMA_IRQHandler+0x29e>
{
/* Transfer complete Callback for memory0 */
hdma->XferCpltCallback(hdma);
800e0f2: 687b ldr r3, [r7, #4]
800e0f4: 6bdb ldr r3, [r3, #60] ; 0x3c
800e0f6: 6878 ldr r0, [r7, #4]
800e0f8: 4798 blx r3
800e0fa: e022 b.n 800e142 <HAL_DMA_IRQHandler+0x29e>
800e0fc: 20020214 .word 0x20020214
800e100: 1b4e81b5 .word 0x1b4e81b5
}
}
/* Disable the transfer complete interrupt if the DMA mode is not CIRCULAR */
else
{
if((hdma->Instance->CR & DMA_SxCR_CIRC) == RESET)
800e104: 687b ldr r3, [r7, #4]
800e106: 681b ldr r3, [r3, #0]
800e108: 681b ldr r3, [r3, #0]
800e10a: f403 7380 and.w r3, r3, #256 ; 0x100
800e10e: 2b00 cmp r3, #0
800e110: d10f bne.n 800e132 <HAL_DMA_IRQHandler+0x28e>
{
/* Disable the transfer complete interrupt */
hdma->Instance->CR &= ~(DMA_IT_TC);
800e112: 687b ldr r3, [r7, #4]
800e114: 681b ldr r3, [r3, #0]
800e116: 687a ldr r2, [r7, #4]
800e118: 6812 ldr r2, [r2, #0]
800e11a: 6812 ldr r2, [r2, #0]
800e11c: f022 0210 bic.w r2, r2, #16
800e120: 601a str r2, [r3, #0]
/* Change the DMA state */
hdma->State = HAL_DMA_STATE_READY;
800e122: 687b ldr r3, [r7, #4]
800e124: 2201 movs r2, #1
800e126: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Process Unlocked */
__HAL_UNLOCK(hdma);
800e12a: 687b ldr r3, [r7, #4]
800e12c: 2200 movs r2, #0
800e12e: f883 2034 strb.w r2, [r3, #52] ; 0x34
}
if(hdma->XferCpltCallback != NULL)
800e132: 687b ldr r3, [r7, #4]
800e134: 6bdb ldr r3, [r3, #60] ; 0x3c
800e136: 2b00 cmp r3, #0
800e138: d003 beq.n 800e142 <HAL_DMA_IRQHandler+0x29e>
{
/* Transfer complete callback */
hdma->XferCpltCallback(hdma);
800e13a: 687b ldr r3, [r7, #4]
800e13c: 6bdb ldr r3, [r3, #60] ; 0x3c
800e13e: 6878 ldr r0, [r7, #4]
800e140: 4798 blx r3
}
}
}
/* manage error case */
if(hdma->ErrorCode != HAL_DMA_ERROR_NONE)
800e142: 687b ldr r3, [r7, #4]
800e144: 6d5b ldr r3, [r3, #84] ; 0x54
800e146: 2b00 cmp r3, #0
800e148: d032 beq.n 800e1b0 <HAL_DMA_IRQHandler+0x30c>
{
if((hdma->ErrorCode & HAL_DMA_ERROR_TE) != RESET)
800e14a: 687b ldr r3, [r7, #4]
800e14c: 6d5b ldr r3, [r3, #84] ; 0x54
800e14e: f003 0301 and.w r3, r3, #1
800e152: 2b00 cmp r3, #0
800e154: d022 beq.n 800e19c <HAL_DMA_IRQHandler+0x2f8>
{
hdma->State = HAL_DMA_STATE_ABORT;
800e156: 687b ldr r3, [r7, #4]
800e158: 2205 movs r2, #5
800e15a: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Disable the stream */
__HAL_DMA_DISABLE(hdma);
800e15e: 687b ldr r3, [r7, #4]
800e160: 681b ldr r3, [r3, #0]
800e162: 687a ldr r2, [r7, #4]
800e164: 6812 ldr r2, [r2, #0]
800e166: 6812 ldr r2, [r2, #0]
800e168: f022 0201 bic.w r2, r2, #1
800e16c: 601a str r2, [r3, #0]
do
{
if (++count > timeout)
800e16e: 68bb ldr r3, [r7, #8]
800e170: 3301 adds r3, #1
800e172: 60bb str r3, [r7, #8]
800e174: 697a ldr r2, [r7, #20]
800e176: 4293 cmp r3, r2
800e178: d807 bhi.n 800e18a <HAL_DMA_IRQHandler+0x2e6>
{
break;
}
}
while((hdma->Instance->CR & DMA_SxCR_EN) != RESET);
800e17a: 687b ldr r3, [r7, #4]
800e17c: 681b ldr r3, [r3, #0]
800e17e: 681b ldr r3, [r3, #0]
800e180: f003 0301 and.w r3, r3, #1
800e184: 2b00 cmp r3, #0
800e186: d1f2 bne.n 800e16e <HAL_DMA_IRQHandler+0x2ca>
800e188: e000 b.n 800e18c <HAL_DMA_IRQHandler+0x2e8>
break;
800e18a: bf00 nop
/* Change the DMA state */
hdma->State = HAL_DMA_STATE_READY;
800e18c: 687b ldr r3, [r7, #4]
800e18e: 2201 movs r2, #1
800e190: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Process Unlocked */
__HAL_UNLOCK(hdma);
800e194: 687b ldr r3, [r7, #4]
800e196: 2200 movs r2, #0
800e198: f883 2034 strb.w r2, [r3, #52] ; 0x34
}
if(hdma->XferErrorCallback != NULL)
800e19c: 687b ldr r3, [r7, #4]
800e19e: 6cdb ldr r3, [r3, #76] ; 0x4c
800e1a0: 2b00 cmp r3, #0
800e1a2: d005 beq.n 800e1b0 <HAL_DMA_IRQHandler+0x30c>
{
/* Transfer error callback */
hdma->XferErrorCallback(hdma);
800e1a4: 687b ldr r3, [r7, #4]
800e1a6: 6cdb ldr r3, [r3, #76] ; 0x4c
800e1a8: 6878 ldr r0, [r7, #4]
800e1aa: 4798 blx r3
800e1ac: e000 b.n 800e1b0 <HAL_DMA_IRQHandler+0x30c>
return;
800e1ae: bf00 nop
}
}
}
800e1b0: 3718 adds r7, #24
800e1b2: 46bd mov sp, r7
800e1b4: bd80 pop {r7, pc}
800e1b6: bf00 nop
0800e1b8 <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)
{
800e1b8: b580 push {r7, lr}
800e1ba: b082 sub sp, #8
800e1bc: af00 add r7, sp, #0
800e1be: 6078 str r0, [r7, #4]
/* Check the DMA2D peripheral state */
if (hdma2d == NULL)
800e1c0: 687b ldr r3, [r7, #4]
800e1c2: 2b00 cmp r3, #0
800e1c4: d101 bne.n 800e1ca <HAL_DMA2D_Init+0x12>
{
return HAL_ERROR;
800e1c6: 2301 movs r3, #1
800e1c8: e049 b.n 800e25e <HAL_DMA2D_Init+0xa6>
/* Init the low level hardware */
hdma2d->MspInitCallback(hdma2d);
}
#else
if (hdma2d->State == HAL_DMA2D_STATE_RESET)
800e1ca: 687b ldr r3, [r7, #4]
800e1cc: f893 3051 ldrb.w r3, [r3, #81] ; 0x51
800e1d0: b2db uxtb r3, r3
800e1d2: 2b00 cmp r3, #0
800e1d4: d106 bne.n 800e1e4 <HAL_DMA2D_Init+0x2c>
{
/* Allocate lock resource and initialize it */
hdma2d->Lock = HAL_UNLOCKED;
800e1d6: 687b ldr r3, [r7, #4]
800e1d8: 2200 movs r2, #0
800e1da: f883 2050 strb.w r2, [r3, #80] ; 0x50
/* Init the low level hardware */
HAL_DMA2D_MspInit(hdma2d);
800e1de: 6878 ldr r0, [r7, #4]
800e1e0: f7f2 fa1e bl 8000620 <HAL_DMA2D_MspInit>
}
#endif /* (USE_HAL_DMA2D_REGISTER_CALLBACKS) */
/* Change DMA2D peripheral state */
hdma2d->State = HAL_DMA2D_STATE_BUSY;
800e1e4: 687b ldr r3, [r7, #4]
800e1e6: 2202 movs r2, #2
800e1e8: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* DMA2D CR register configuration -------------------------------------------*/
MODIFY_REG(hdma2d->Instance->CR, DMA2D_CR_MODE, hdma2d->Init.Mode);
800e1ec: 687b ldr r3, [r7, #4]
800e1ee: 681b ldr r3, [r3, #0]
800e1f0: 687a ldr r2, [r7, #4]
800e1f2: 6812 ldr r2, [r2, #0]
800e1f4: 6812 ldr r2, [r2, #0]
800e1f6: f422 3140 bic.w r1, r2, #196608 ; 0x30000
800e1fa: 687a ldr r2, [r7, #4]
800e1fc: 6852 ldr r2, [r2, #4]
800e1fe: 430a orrs r2, r1
800e200: 601a str r2, [r3, #0]
/* DMA2D OPFCCR register configuration ---------------------------------------*/
MODIFY_REG(hdma2d->Instance->OPFCCR, DMA2D_OPFCCR_CM, hdma2d->Init.ColorMode);
800e202: 687b ldr r3, [r7, #4]
800e204: 681b ldr r3, [r3, #0]
800e206: 687a ldr r2, [r7, #4]
800e208: 6812 ldr r2, [r2, #0]
800e20a: 6b52 ldr r2, [r2, #52] ; 0x34
800e20c: f022 0107 bic.w r1, r2, #7
800e210: 687a ldr r2, [r7, #4]
800e212: 6892 ldr r2, [r2, #8]
800e214: 430a orrs r2, r1
800e216: 635a str r2, [r3, #52] ; 0x34
/* DMA2D OOR register configuration ------------------------------------------*/
MODIFY_REG(hdma2d->Instance->OOR, DMA2D_OOR_LO, hdma2d->Init.OutputOffset);
800e218: 687b ldr r3, [r7, #4]
800e21a: 681a ldr r2, [r3, #0]
800e21c: 687b ldr r3, [r7, #4]
800e21e: 681b ldr r3, [r3, #0]
800e220: 6c19 ldr r1, [r3, #64] ; 0x40
800e222: 4b11 ldr r3, [pc, #68] ; (800e268 <HAL_DMA2D_Init+0xb0>)
800e224: 400b ands r3, r1
800e226: 6879 ldr r1, [r7, #4]
800e228: 68c9 ldr r1, [r1, #12]
800e22a: 430b orrs r3, r1
800e22c: 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),
800e22e: 687b ldr r3, [r7, #4]
800e230: 681b ldr r3, [r3, #0]
800e232: 687a ldr r2, [r7, #4]
800e234: 6812 ldr r2, [r2, #0]
800e236: 6b52 ldr r2, [r2, #52] ; 0x34
800e238: f422 1140 bic.w r1, r2, #3145728 ; 0x300000
800e23c: 687a ldr r2, [r7, #4]
800e23e: 6912 ldr r2, [r2, #16]
800e240: 0510 lsls r0, r2, #20
800e242: 687a ldr r2, [r7, #4]
800e244: 6952 ldr r2, [r2, #20]
800e246: 0552 lsls r2, r2, #21
800e248: 4302 orrs r2, r0
800e24a: 430a orrs r2, r1
800e24c: 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;
800e24e: 687b ldr r3, [r7, #4]
800e250: 2200 movs r2, #0
800e252: 655a str r2, [r3, #84] ; 0x54
/* Initialize the DMA2D state*/
hdma2d->State = HAL_DMA2D_STATE_READY;
800e254: 687b ldr r3, [r7, #4]
800e256: 2201 movs r2, #1
800e258: f883 2051 strb.w r2, [r3, #81] ; 0x51
return HAL_OK;
800e25c: 2300 movs r3, #0
}
800e25e: 4618 mov r0, r3
800e260: 3708 adds r7, #8
800e262: 46bd mov sp, r7
800e264: bd80 pop {r7, pc}
800e266: bf00 nop
800e268: ffffc000 .word 0xffffc000
0800e26c <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)
{
800e26c: b580 push {r7, lr}
800e26e: b086 sub sp, #24
800e270: af02 add r7, sp, #8
800e272: 60f8 str r0, [r7, #12]
800e274: 60b9 str r1, [r7, #8]
800e276: 607a str r2, [r7, #4]
800e278: 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);
800e27a: 68fb ldr r3, [r7, #12]
800e27c: f893 3050 ldrb.w r3, [r3, #80] ; 0x50
800e280: 2b01 cmp r3, #1
800e282: d101 bne.n 800e288 <HAL_DMA2D_Start+0x1c>
800e284: 2302 movs r3, #2
800e286: e018 b.n 800e2ba <HAL_DMA2D_Start+0x4e>
800e288: 68fb ldr r3, [r7, #12]
800e28a: 2201 movs r2, #1
800e28c: f883 2050 strb.w r2, [r3, #80] ; 0x50
/* Change DMA2D peripheral state */
hdma2d->State = HAL_DMA2D_STATE_BUSY;
800e290: 68fb ldr r3, [r7, #12]
800e292: 2202 movs r2, #2
800e294: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Configure the source, destination address and the data size */
DMA2D_SetConfig(hdma2d, pdata, DstAddress, Width, Height);
800e298: 69bb ldr r3, [r7, #24]
800e29a: 9300 str r3, [sp, #0]
800e29c: 683b ldr r3, [r7, #0]
800e29e: 687a ldr r2, [r7, #4]
800e2a0: 68b9 ldr r1, [r7, #8]
800e2a2: 68f8 ldr r0, [r7, #12]
800e2a4: f000 f992 bl 800e5cc <DMA2D_SetConfig>
/* Enable the Peripheral */
__HAL_DMA2D_ENABLE(hdma2d);
800e2a8: 68fb ldr r3, [r7, #12]
800e2aa: 681b ldr r3, [r3, #0]
800e2ac: 68fa ldr r2, [r7, #12]
800e2ae: 6812 ldr r2, [r2, #0]
800e2b0: 6812 ldr r2, [r2, #0]
800e2b2: f042 0201 orr.w r2, r2, #1
800e2b6: 601a str r2, [r3, #0]
return HAL_OK;
800e2b8: 2300 movs r3, #0
}
800e2ba: 4618 mov r0, r3
800e2bc: 3710 adds r7, #16
800e2be: 46bd mov sp, r7
800e2c0: bd80 pop {r7, pc}
0800e2c2 <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)
{
800e2c2: b580 push {r7, lr}
800e2c4: b086 sub sp, #24
800e2c6: af00 add r7, sp, #0
800e2c8: 6078 str r0, [r7, #4]
800e2ca: 6039 str r1, [r7, #0]
uint32_t tickstart;
uint32_t layer_start;
__IO uint32_t isrflags = 0x0U;
800e2cc: 2300 movs r3, #0
800e2ce: 60fb str r3, [r7, #12]
/* Polling for DMA2D transfer */
if ((hdma2d->Instance->CR & DMA2D_CR_START) != 0U)
800e2d0: 687b ldr r3, [r7, #4]
800e2d2: 681b ldr r3, [r3, #0]
800e2d4: 681b ldr r3, [r3, #0]
800e2d6: f003 0301 and.w r3, r3, #1
800e2da: 2b00 cmp r3, #0
800e2dc: d056 beq.n 800e38c <HAL_DMA2D_PollForTransfer+0xca>
{
/* Get tick */
tickstart = HAL_GetTick();
800e2de: f7ff fbe1 bl 800daa4 <HAL_GetTick>
800e2e2: 6178 str r0, [r7, #20]
while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_TC) == 0U)
800e2e4: e04b b.n 800e37e <HAL_DMA2D_PollForTransfer+0xbc>
{
isrflags = READ_REG(hdma2d->Instance->ISR);
800e2e6: 687b ldr r3, [r7, #4]
800e2e8: 681b ldr r3, [r3, #0]
800e2ea: 685b ldr r3, [r3, #4]
800e2ec: 60fb str r3, [r7, #12]
if ((isrflags & (DMA2D_FLAG_CE | DMA2D_FLAG_TE)) != 0U)
800e2ee: 68fb ldr r3, [r7, #12]
800e2f0: f003 0321 and.w r3, r3, #33 ; 0x21
800e2f4: 2b00 cmp r3, #0
800e2f6: d023 beq.n 800e340 <HAL_DMA2D_PollForTransfer+0x7e>
{
if ((isrflags & DMA2D_FLAG_CE) != 0U)
800e2f8: 68fb ldr r3, [r7, #12]
800e2fa: f003 0320 and.w r3, r3, #32
800e2fe: 2b00 cmp r3, #0
800e300: d005 beq.n 800e30e <HAL_DMA2D_PollForTransfer+0x4c>
{
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_CE;
800e302: 687b ldr r3, [r7, #4]
800e304: 6d5b ldr r3, [r3, #84] ; 0x54
800e306: f043 0202 orr.w r2, r3, #2
800e30a: 687b ldr r3, [r7, #4]
800e30c: 655a str r2, [r3, #84] ; 0x54
}
if ((isrflags & DMA2D_FLAG_TE) != 0U)
800e30e: 68fb ldr r3, [r7, #12]
800e310: f003 0301 and.w r3, r3, #1
800e314: 2b00 cmp r3, #0
800e316: d005 beq.n 800e324 <HAL_DMA2D_PollForTransfer+0x62>
{
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TE;
800e318: 687b ldr r3, [r7, #4]
800e31a: 6d5b ldr r3, [r3, #84] ; 0x54
800e31c: f043 0201 orr.w r2, r3, #1
800e320: 687b ldr r3, [r7, #4]
800e322: 655a str r2, [r3, #84] ; 0x54
}
/* Clear the transfer and configuration error flags */
__HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_CE | DMA2D_FLAG_TE);
800e324: 687b ldr r3, [r7, #4]
800e326: 681b ldr r3, [r3, #0]
800e328: 2221 movs r2, #33 ; 0x21
800e32a: 609a str r2, [r3, #8]
/* Change DMA2D state */
hdma2d->State = HAL_DMA2D_STATE_ERROR;
800e32c: 687b ldr r3, [r7, #4]
800e32e: 2204 movs r2, #4
800e330: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
800e334: 687b ldr r3, [r7, #4]
800e336: 2200 movs r2, #0
800e338: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_ERROR;
800e33c: 2301 movs r3, #1
800e33e: e0a5 b.n 800e48c <HAL_DMA2D_PollForTransfer+0x1ca>
}
/* Check for the Timeout */
if (Timeout != HAL_MAX_DELAY)
800e340: 683b ldr r3, [r7, #0]
800e342: f1b3 3fff cmp.w r3, #4294967295
800e346: d01a beq.n 800e37e <HAL_DMA2D_PollForTransfer+0xbc>
{
if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
800e348: f7ff fbac bl 800daa4 <HAL_GetTick>
800e34c: 4602 mov r2, r0
800e34e: 697b ldr r3, [r7, #20]
800e350: 1ad2 subs r2, r2, r3
800e352: 683b ldr r3, [r7, #0]
800e354: 429a cmp r2, r3
800e356: d802 bhi.n 800e35e <HAL_DMA2D_PollForTransfer+0x9c>
800e358: 683b ldr r3, [r7, #0]
800e35a: 2b00 cmp r3, #0
800e35c: d10f bne.n 800e37e <HAL_DMA2D_PollForTransfer+0xbc>
{
/* Update error code */
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TIMEOUT;
800e35e: 687b ldr r3, [r7, #4]
800e360: 6d5b ldr r3, [r3, #84] ; 0x54
800e362: f043 0220 orr.w r2, r3, #32
800e366: 687b ldr r3, [r7, #4]
800e368: 655a str r2, [r3, #84] ; 0x54
/* Change the DMA2D state */
hdma2d->State = HAL_DMA2D_STATE_TIMEOUT;
800e36a: 687b ldr r3, [r7, #4]
800e36c: 2203 movs r2, #3
800e36e: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
800e372: 687b ldr r3, [r7, #4]
800e374: 2200 movs r2, #0
800e376: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_TIMEOUT;
800e37a: 2303 movs r3, #3
800e37c: e086 b.n 800e48c <HAL_DMA2D_PollForTransfer+0x1ca>
while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_TC) == 0U)
800e37e: 687b ldr r3, [r7, #4]
800e380: 681b ldr r3, [r3, #0]
800e382: 685b ldr r3, [r3, #4]
800e384: f003 0302 and.w r3, r3, #2
800e388: 2b00 cmp r3, #0
800e38a: d0ac beq.n 800e2e6 <HAL_DMA2D_PollForTransfer+0x24>
}
}
}
}
/* Polling for CLUT loading (foreground or background) */
layer_start = hdma2d->Instance->FGPFCCR & DMA2D_FGPFCCR_START;
800e38c: 687b ldr r3, [r7, #4]
800e38e: 681b ldr r3, [r3, #0]
800e390: 69db ldr r3, [r3, #28]
800e392: f003 0320 and.w r3, r3, #32
800e396: 613b str r3, [r7, #16]
layer_start |= hdma2d->Instance->BGPFCCR & DMA2D_BGPFCCR_START;
800e398: 687b ldr r3, [r7, #4]
800e39a: 681b ldr r3, [r3, #0]
800e39c: 6a5b ldr r3, [r3, #36] ; 0x24
800e39e: f003 0320 and.w r3, r3, #32
800e3a2: 693a ldr r2, [r7, #16]
800e3a4: 4313 orrs r3, r2
800e3a6: 613b str r3, [r7, #16]
if (layer_start != 0U)
800e3a8: 693b ldr r3, [r7, #16]
800e3aa: 2b00 cmp r3, #0
800e3ac: d061 beq.n 800e472 <HAL_DMA2D_PollForTransfer+0x1b0>
{
/* Get tick */
tickstart = HAL_GetTick();
800e3ae: f7ff fb79 bl 800daa4 <HAL_GetTick>
800e3b2: 6178 str r0, [r7, #20]
while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_CTC) == 0U)
800e3b4: e056 b.n 800e464 <HAL_DMA2D_PollForTransfer+0x1a2>
{
isrflags = READ_REG(hdma2d->Instance->ISR);
800e3b6: 687b ldr r3, [r7, #4]
800e3b8: 681b ldr r3, [r3, #0]
800e3ba: 685b ldr r3, [r3, #4]
800e3bc: 60fb str r3, [r7, #12]
if ((isrflags & (DMA2D_FLAG_CAE | DMA2D_FLAG_CE | DMA2D_FLAG_TE)) != 0U)
800e3be: 68fb ldr r3, [r7, #12]
800e3c0: f003 0329 and.w r3, r3, #41 ; 0x29
800e3c4: 2b00 cmp r3, #0
800e3c6: d02e beq.n 800e426 <HAL_DMA2D_PollForTransfer+0x164>
{
if ((isrflags & DMA2D_FLAG_CAE) != 0U)
800e3c8: 68fb ldr r3, [r7, #12]
800e3ca: f003 0308 and.w r3, r3, #8
800e3ce: 2b00 cmp r3, #0
800e3d0: d005 beq.n 800e3de <HAL_DMA2D_PollForTransfer+0x11c>
{
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_CAE;
800e3d2: 687b ldr r3, [r7, #4]
800e3d4: 6d5b ldr r3, [r3, #84] ; 0x54
800e3d6: f043 0204 orr.w r2, r3, #4
800e3da: 687b ldr r3, [r7, #4]
800e3dc: 655a str r2, [r3, #84] ; 0x54
}
if ((isrflags & DMA2D_FLAG_CE) != 0U)
800e3de: 68fb ldr r3, [r7, #12]
800e3e0: f003 0320 and.w r3, r3, #32
800e3e4: 2b00 cmp r3, #0
800e3e6: d005 beq.n 800e3f4 <HAL_DMA2D_PollForTransfer+0x132>
{
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_CE;
800e3e8: 687b ldr r3, [r7, #4]
800e3ea: 6d5b ldr r3, [r3, #84] ; 0x54
800e3ec: f043 0202 orr.w r2, r3, #2
800e3f0: 687b ldr r3, [r7, #4]
800e3f2: 655a str r2, [r3, #84] ; 0x54
}
if ((isrflags & DMA2D_FLAG_TE) != 0U)
800e3f4: 68fb ldr r3, [r7, #12]
800e3f6: f003 0301 and.w r3, r3, #1
800e3fa: 2b00 cmp r3, #0
800e3fc: d005 beq.n 800e40a <HAL_DMA2D_PollForTransfer+0x148>
{
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TE;
800e3fe: 687b ldr r3, [r7, #4]
800e400: 6d5b ldr r3, [r3, #84] ; 0x54
800e402: f043 0201 orr.w r2, r3, #1
800e406: 687b ldr r3, [r7, #4]
800e408: 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);
800e40a: 687b ldr r3, [r7, #4]
800e40c: 681b ldr r3, [r3, #0]
800e40e: 2229 movs r2, #41 ; 0x29
800e410: 609a str r2, [r3, #8]
/* Change DMA2D state */
hdma2d->State = HAL_DMA2D_STATE_ERROR;
800e412: 687b ldr r3, [r7, #4]
800e414: 2204 movs r2, #4
800e416: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
800e41a: 687b ldr r3, [r7, #4]
800e41c: 2200 movs r2, #0
800e41e: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_ERROR;
800e422: 2301 movs r3, #1
800e424: e032 b.n 800e48c <HAL_DMA2D_PollForTransfer+0x1ca>
}
/* Check for the Timeout */
if (Timeout != HAL_MAX_DELAY)
800e426: 683b ldr r3, [r7, #0]
800e428: f1b3 3fff cmp.w r3, #4294967295
800e42c: d01a beq.n 800e464 <HAL_DMA2D_PollForTransfer+0x1a2>
{
if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
800e42e: f7ff fb39 bl 800daa4 <HAL_GetTick>
800e432: 4602 mov r2, r0
800e434: 697b ldr r3, [r7, #20]
800e436: 1ad2 subs r2, r2, r3
800e438: 683b ldr r3, [r7, #0]
800e43a: 429a cmp r2, r3
800e43c: d802 bhi.n 800e444 <HAL_DMA2D_PollForTransfer+0x182>
800e43e: 683b ldr r3, [r7, #0]
800e440: 2b00 cmp r3, #0
800e442: d10f bne.n 800e464 <HAL_DMA2D_PollForTransfer+0x1a2>
{
/* Update error code */
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TIMEOUT;
800e444: 687b ldr r3, [r7, #4]
800e446: 6d5b ldr r3, [r3, #84] ; 0x54
800e448: f043 0220 orr.w r2, r3, #32
800e44c: 687b ldr r3, [r7, #4]
800e44e: 655a str r2, [r3, #84] ; 0x54
/* Change the DMA2D state */
hdma2d->State = HAL_DMA2D_STATE_TIMEOUT;
800e450: 687b ldr r3, [r7, #4]
800e452: 2203 movs r2, #3
800e454: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
800e458: 687b ldr r3, [r7, #4]
800e45a: 2200 movs r2, #0
800e45c: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_TIMEOUT;
800e460: 2303 movs r3, #3
800e462: e013 b.n 800e48c <HAL_DMA2D_PollForTransfer+0x1ca>
while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_CTC) == 0U)
800e464: 687b ldr r3, [r7, #4]
800e466: 681b ldr r3, [r3, #0]
800e468: 685b ldr r3, [r3, #4]
800e46a: f003 0310 and.w r3, r3, #16
800e46e: 2b00 cmp r3, #0
800e470: d0a1 beq.n 800e3b6 <HAL_DMA2D_PollForTransfer+0xf4>
}
}
}
/* Clear the transfer complete and CLUT loading flags */
__HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_TC | DMA2D_FLAG_CTC);
800e472: 687b ldr r3, [r7, #4]
800e474: 681b ldr r3, [r3, #0]
800e476: 2212 movs r2, #18
800e478: 609a str r2, [r3, #8]
/* Change DMA2D state */
hdma2d->State = HAL_DMA2D_STATE_READY;
800e47a: 687b ldr r3, [r7, #4]
800e47c: 2201 movs r2, #1
800e47e: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
800e482: 687b ldr r3, [r7, #4]
800e484: 2200 movs r2, #0
800e486: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_OK;
800e48a: 2300 movs r3, #0
}
800e48c: 4618 mov r0, r3
800e48e: 3718 adds r7, #24
800e490: 46bd mov sp, r7
800e492: bd80 pop {r7, pc}
0800e494 <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)
{
800e494: b480 push {r7}
800e496: b087 sub sp, #28
800e498: af00 add r7, sp, #0
800e49a: 6078 str r0, [r7, #4]
800e49c: 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)
800e49e: 687b ldr r3, [r7, #4]
800e4a0: 685b ldr r3, [r3, #4]
800e4a2: 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);
800e4a6: 687b ldr r3, [r7, #4]
800e4a8: f893 3050 ldrb.w r3, [r3, #80] ; 0x50
800e4ac: 2b01 cmp r3, #1
800e4ae: d101 bne.n 800e4b4 <HAL_DMA2D_ConfigLayer+0x20>
800e4b0: 2302 movs r3, #2
800e4b2: e082 b.n 800e5ba <HAL_DMA2D_ConfigLayer+0x126>
800e4b4: 687b ldr r3, [r7, #4]
800e4b6: 2201 movs r2, #1
800e4b8: f883 2050 strb.w r2, [r3, #80] ; 0x50
/* Change DMA2D peripheral state */
hdma2d->State = HAL_DMA2D_STATE_BUSY;
800e4bc: 687b ldr r3, [r7, #4]
800e4be: 2202 movs r2, #2
800e4c0: f883 2051 strb.w r2, [r3, #81] ; 0x51
pLayerCfg = &hdma2d->LayerCfg[LayerIdx];
800e4c4: 683a ldr r2, [r7, #0]
800e4c6: 4613 mov r3, r2
800e4c8: 005b lsls r3, r3, #1
800e4ca: 4413 add r3, r2
800e4cc: 00db lsls r3, r3, #3
800e4ce: 3320 adds r3, #32
800e4d0: 687a ldr r2, [r7, #4]
800e4d2: 4413 add r3, r2
800e4d4: 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) | \
800e4d6: 693b ldr r3, [r7, #16]
800e4d8: 685a ldr r2, [r3, #4]
800e4da: 693b ldr r3, [r7, #16]
800e4dc: 689b ldr r3, [r3, #8]
800e4de: 041b lsls r3, r3, #16
800e4e0: 431a orrs r2, r3
(pLayerCfg->AlphaInverted << DMA2D_BGPFCCR_AI_Pos) | (pLayerCfg->RedBlueSwap << DMA2D_BGPFCCR_RBS_Pos);
800e4e2: 693b ldr r3, [r7, #16]
800e4e4: 691b ldr r3, [r3, #16]
800e4e6: 051b lsls r3, r3, #20
regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos) | \
800e4e8: 431a orrs r2, r3
(pLayerCfg->AlphaInverted << DMA2D_BGPFCCR_AI_Pos) | (pLayerCfg->RedBlueSwap << DMA2D_BGPFCCR_RBS_Pos);
800e4ea: 693b ldr r3, [r7, #16]
800e4ec: 695b ldr r3, [r3, #20]
800e4ee: 055b lsls r3, r3, #21
regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos) | \
800e4f0: 4313 orrs r3, r2
800e4f2: 617b str r3, [r7, #20]
regMask = (DMA2D_BGPFCCR_CM | DMA2D_BGPFCCR_AM | DMA2D_BGPFCCR_ALPHA | DMA2D_BGPFCCR_AI | DMA2D_BGPFCCR_RBS);
800e4f4: 4b34 ldr r3, [pc, #208] ; (800e5c8 <HAL_DMA2D_ConfigLayer+0x134>)
800e4f6: 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))
800e4f8: 693b ldr r3, [r7, #16]
800e4fa: 685b ldr r3, [r3, #4]
800e4fc: 2b0a cmp r3, #10
800e4fe: d003 beq.n 800e508 <HAL_DMA2D_ConfigLayer+0x74>
800e500: 693b ldr r3, [r7, #16]
800e502: 685b ldr r3, [r3, #4]
800e504: 2b09 cmp r3, #9
800e506: d107 bne.n 800e518 <HAL_DMA2D_ConfigLayer+0x84>
{
regValue |= (pLayerCfg->InputAlpha & DMA2D_BGPFCCR_ALPHA);
800e508: 693b ldr r3, [r7, #16]
800e50a: 68db ldr r3, [r3, #12]
800e50c: f003 437f and.w r3, r3, #4278190080 ; 0xff000000
800e510: 697a ldr r2, [r7, #20]
800e512: 4313 orrs r3, r2
800e514: 617b str r3, [r7, #20]
800e516: e005 b.n 800e524 <HAL_DMA2D_ConfigLayer+0x90>
}
else
{
regValue |= (pLayerCfg->InputAlpha << DMA2D_BGPFCCR_ALPHA_Pos);
800e518: 693b ldr r3, [r7, #16]
800e51a: 68db ldr r3, [r3, #12]
800e51c: 061b lsls r3, r3, #24
800e51e: 697a ldr r2, [r7, #20]
800e520: 4313 orrs r3, r2
800e522: 617b str r3, [r7, #20]
}
/* Configure the background DMA2D layer */
if (LayerIdx == DMA2D_BACKGROUND_LAYER)
800e524: 683b ldr r3, [r7, #0]
800e526: 2b00 cmp r3, #0
800e528: d11f bne.n 800e56a <HAL_DMA2D_ConfigLayer+0xd6>
{
/* Write DMA2D BGPFCCR register */
MODIFY_REG(hdma2d->Instance->BGPFCCR, regMask, regValue);
800e52a: 687b ldr r3, [r7, #4]
800e52c: 681b ldr r3, [r3, #0]
800e52e: 687a ldr r2, [r7, #4]
800e530: 6812 ldr r2, [r2, #0]
800e532: 6a51 ldr r1, [r2, #36] ; 0x24
800e534: 68fa ldr r2, [r7, #12]
800e536: 43d2 mvns r2, r2
800e538: 4011 ands r1, r2
800e53a: 697a ldr r2, [r7, #20]
800e53c: 430a orrs r2, r1
800e53e: 625a str r2, [r3, #36] ; 0x24
/* DMA2D BGOR register configuration -------------------------------------*/
WRITE_REG(hdma2d->Instance->BGOR, pLayerCfg->InputOffset);
800e540: 687b ldr r3, [r7, #4]
800e542: 681b ldr r3, [r3, #0]
800e544: 693a ldr r2, [r7, #16]
800e546: 6812 ldr r2, [r2, #0]
800e548: 619a str r2, [r3, #24]
/* DMA2D BGCOLR register configuration -------------------------------------*/
if ((pLayerCfg->InputColorMode == DMA2D_INPUT_A4) || (pLayerCfg->InputColorMode == DMA2D_INPUT_A8))
800e54a: 693b ldr r3, [r7, #16]
800e54c: 685b ldr r3, [r3, #4]
800e54e: 2b0a cmp r3, #10
800e550: d003 beq.n 800e55a <HAL_DMA2D_ConfigLayer+0xc6>
800e552: 693b ldr r3, [r7, #16]
800e554: 685b ldr r3, [r3, #4]
800e556: 2b09 cmp r3, #9
800e558: d126 bne.n 800e5a8 <HAL_DMA2D_ConfigLayer+0x114>
{
WRITE_REG(hdma2d->Instance->BGCOLR, pLayerCfg->InputAlpha & (DMA2D_BGCOLR_BLUE | DMA2D_BGCOLR_GREEN | \
800e55a: 687b ldr r3, [r7, #4]
800e55c: 681b ldr r3, [r3, #0]
800e55e: 693a ldr r2, [r7, #16]
800e560: 68d2 ldr r2, [r2, #12]
800e562: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000
800e566: 629a str r2, [r3, #40] ; 0x28
800e568: e01e b.n 800e5a8 <HAL_DMA2D_ConfigLayer+0x114>
else
{
/* Write DMA2D FGPFCCR register */
MODIFY_REG(hdma2d->Instance->FGPFCCR, regMask, regValue);
800e56a: 687b ldr r3, [r7, #4]
800e56c: 681b ldr r3, [r3, #0]
800e56e: 687a ldr r2, [r7, #4]
800e570: 6812 ldr r2, [r2, #0]
800e572: 69d1 ldr r1, [r2, #28]
800e574: 68fa ldr r2, [r7, #12]
800e576: 43d2 mvns r2, r2
800e578: 4011 ands r1, r2
800e57a: 697a ldr r2, [r7, #20]
800e57c: 430a orrs r2, r1
800e57e: 61da str r2, [r3, #28]
/* DMA2D FGOR register configuration -------------------------------------*/
WRITE_REG(hdma2d->Instance->FGOR, pLayerCfg->InputOffset);
800e580: 687b ldr r3, [r7, #4]
800e582: 681b ldr r3, [r3, #0]
800e584: 693a ldr r2, [r7, #16]
800e586: 6812 ldr r2, [r2, #0]
800e588: 611a str r2, [r3, #16]
/* DMA2D FGCOLR register configuration -------------------------------------*/
if ((pLayerCfg->InputColorMode == DMA2D_INPUT_A4) || (pLayerCfg->InputColorMode == DMA2D_INPUT_A8))
800e58a: 693b ldr r3, [r7, #16]
800e58c: 685b ldr r3, [r3, #4]
800e58e: 2b0a cmp r3, #10
800e590: d003 beq.n 800e59a <HAL_DMA2D_ConfigLayer+0x106>
800e592: 693b ldr r3, [r7, #16]
800e594: 685b ldr r3, [r3, #4]
800e596: 2b09 cmp r3, #9
800e598: d106 bne.n 800e5a8 <HAL_DMA2D_ConfigLayer+0x114>
{
WRITE_REG(hdma2d->Instance->FGCOLR, pLayerCfg->InputAlpha & (DMA2D_FGCOLR_BLUE | DMA2D_FGCOLR_GREEN | \
800e59a: 687b ldr r3, [r7, #4]
800e59c: 681b ldr r3, [r3, #0]
800e59e: 693a ldr r2, [r7, #16]
800e5a0: 68d2 ldr r2, [r2, #12]
800e5a2: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000
800e5a6: 621a str r2, [r3, #32]
DMA2D_FGCOLR_RED));
}
}
/* Initialize the DMA2D state*/
hdma2d->State = HAL_DMA2D_STATE_READY;
800e5a8: 687b ldr r3, [r7, #4]
800e5aa: 2201 movs r2, #1
800e5ac: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
800e5b0: 687b ldr r3, [r7, #4]
800e5b2: 2200 movs r2, #0
800e5b4: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_OK;
800e5b8: 2300 movs r3, #0
}
800e5ba: 4618 mov r0, r3
800e5bc: 371c adds r7, #28
800e5be: 46bd mov sp, r7
800e5c0: f85d 7b04 ldr.w r7, [sp], #4
800e5c4: 4770 bx lr
800e5c6: bf00 nop
800e5c8: ff33000f .word 0xff33000f
0800e5cc <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)
{
800e5cc: b480 push {r7}
800e5ce: b08b sub sp, #44 ; 0x2c
800e5d0: af00 add r7, sp, #0
800e5d2: 60f8 str r0, [r7, #12]
800e5d4: 60b9 str r1, [r7, #8]
800e5d6: 607a str r2, [r7, #4]
800e5d8: 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)));
800e5da: 68fb ldr r3, [r7, #12]
800e5dc: 681b ldr r3, [r3, #0]
800e5de: 68fa ldr r2, [r7, #12]
800e5e0: 6812 ldr r2, [r2, #0]
800e5e2: 6c52 ldr r2, [r2, #68] ; 0x44
800e5e4: f002 4140 and.w r1, r2, #3221225472 ; 0xc0000000
800e5e8: 683a ldr r2, [r7, #0]
800e5ea: 0410 lsls r0, r2, #16
800e5ec: 6b3a ldr r2, [r7, #48] ; 0x30
800e5ee: 4302 orrs r2, r0
800e5f0: 430a orrs r2, r1
800e5f2: 645a str r2, [r3, #68] ; 0x44
/* Configure DMA2D destination address */
WRITE_REG(hdma2d->Instance->OMAR, DstAddress);
800e5f4: 68fb ldr r3, [r7, #12]
800e5f6: 681b ldr r3, [r3, #0]
800e5f8: 687a ldr r2, [r7, #4]
800e5fa: 63da str r2, [r3, #60] ; 0x3c
/* Register to memory DMA2D mode selected */
if (hdma2d->Init.Mode == DMA2D_R2M)
800e5fc: 68fb ldr r3, [r7, #12]
800e5fe: 685b ldr r3, [r3, #4]
800e600: f5b3 3f40 cmp.w r3, #196608 ; 0x30000
800e604: d174 bne.n 800e6f0 <DMA2D_SetConfig+0x124>
{
tmp1 = pdata & DMA2D_OCOLR_ALPHA_1;
800e606: 68bb ldr r3, [r7, #8]
800e608: f003 437f and.w r3, r3, #4278190080 ; 0xff000000
800e60c: 623b str r3, [r7, #32]
tmp2 = pdata & DMA2D_OCOLR_RED_1;
800e60e: 68bb ldr r3, [r7, #8]
800e610: f403 037f and.w r3, r3, #16711680 ; 0xff0000
800e614: 61fb str r3, [r7, #28]
tmp3 = pdata & DMA2D_OCOLR_GREEN_1;
800e616: 68bb ldr r3, [r7, #8]
800e618: f403 437f and.w r3, r3, #65280 ; 0xff00
800e61c: 61bb str r3, [r7, #24]
tmp4 = pdata & DMA2D_OCOLR_BLUE_1;
800e61e: 68bb ldr r3, [r7, #8]
800e620: b2db uxtb r3, r3
800e622: 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)
800e624: 68fb ldr r3, [r7, #12]
800e626: 689b ldr r3, [r3, #8]
800e628: 2b00 cmp r3, #0
800e62a: d108 bne.n 800e63e <DMA2D_SetConfig+0x72>
{
tmp = (tmp3 | tmp2 | tmp1 | tmp4);
800e62c: 69ba ldr r2, [r7, #24]
800e62e: 69fb ldr r3, [r7, #28]
800e630: 431a orrs r2, r3
800e632: 6a3b ldr r3, [r7, #32]
800e634: 431a orrs r2, r3
800e636: 697b ldr r3, [r7, #20]
800e638: 4313 orrs r3, r2
800e63a: 627b str r3, [r7, #36] ; 0x24
800e63c: e053 b.n 800e6e6 <DMA2D_SetConfig+0x11a>
}
else if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_RGB888)
800e63e: 68fb ldr r3, [r7, #12]
800e640: 689b ldr r3, [r3, #8]
800e642: 2b01 cmp r3, #1
800e644: d106 bne.n 800e654 <DMA2D_SetConfig+0x88>
{
tmp = (tmp3 | tmp2 | tmp4);
800e646: 69ba ldr r2, [r7, #24]
800e648: 69fb ldr r3, [r7, #28]
800e64a: 431a orrs r2, r3
800e64c: 697b ldr r3, [r7, #20]
800e64e: 4313 orrs r3, r2
800e650: 627b str r3, [r7, #36] ; 0x24
800e652: e048 b.n 800e6e6 <DMA2D_SetConfig+0x11a>
}
else if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_RGB565)
800e654: 68fb ldr r3, [r7, #12]
800e656: 689b ldr r3, [r3, #8]
800e658: 2b02 cmp r3, #2
800e65a: d111 bne.n 800e680 <DMA2D_SetConfig+0xb4>
{
tmp2 = (tmp2 >> 19U);
800e65c: 69fb ldr r3, [r7, #28]
800e65e: 0cdb lsrs r3, r3, #19
800e660: 61fb str r3, [r7, #28]
tmp3 = (tmp3 >> 10U);
800e662: 69bb ldr r3, [r7, #24]
800e664: 0a9b lsrs r3, r3, #10
800e666: 61bb str r3, [r7, #24]
tmp4 = (tmp4 >> 3U);
800e668: 697b ldr r3, [r7, #20]
800e66a: 08db lsrs r3, r3, #3
800e66c: 617b str r3, [r7, #20]
tmp = ((tmp3 << 5U) | (tmp2 << 11U) | tmp4);
800e66e: 69bb ldr r3, [r7, #24]
800e670: 015a lsls r2, r3, #5
800e672: 69fb ldr r3, [r7, #28]
800e674: 02db lsls r3, r3, #11
800e676: 431a orrs r2, r3
800e678: 697b ldr r3, [r7, #20]
800e67a: 4313 orrs r3, r2
800e67c: 627b str r3, [r7, #36] ; 0x24
800e67e: e032 b.n 800e6e6 <DMA2D_SetConfig+0x11a>
}
else if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_ARGB1555)
800e680: 68fb ldr r3, [r7, #12]
800e682: 689b ldr r3, [r3, #8]
800e684: 2b03 cmp r3, #3
800e686: d117 bne.n 800e6b8 <DMA2D_SetConfig+0xec>
{
tmp1 = (tmp1 >> 31U);
800e688: 6a3b ldr r3, [r7, #32]
800e68a: 0fdb lsrs r3, r3, #31
800e68c: 623b str r3, [r7, #32]
tmp2 = (tmp2 >> 19U);
800e68e: 69fb ldr r3, [r7, #28]
800e690: 0cdb lsrs r3, r3, #19
800e692: 61fb str r3, [r7, #28]
tmp3 = (tmp3 >> 11U);
800e694: 69bb ldr r3, [r7, #24]
800e696: 0adb lsrs r3, r3, #11
800e698: 61bb str r3, [r7, #24]
tmp4 = (tmp4 >> 3U);
800e69a: 697b ldr r3, [r7, #20]
800e69c: 08db lsrs r3, r3, #3
800e69e: 617b str r3, [r7, #20]
tmp = ((tmp3 << 5U) | (tmp2 << 10U) | (tmp1 << 15U) | tmp4);
800e6a0: 69bb ldr r3, [r7, #24]
800e6a2: 015a lsls r2, r3, #5
800e6a4: 69fb ldr r3, [r7, #28]
800e6a6: 029b lsls r3, r3, #10
800e6a8: 431a orrs r2, r3
800e6aa: 6a3b ldr r3, [r7, #32]
800e6ac: 03db lsls r3, r3, #15
800e6ae: 431a orrs r2, r3
800e6b0: 697b ldr r3, [r7, #20]
800e6b2: 4313 orrs r3, r2
800e6b4: 627b str r3, [r7, #36] ; 0x24
800e6b6: e016 b.n 800e6e6 <DMA2D_SetConfig+0x11a>
}
else /* Dhdma2d->Init.ColorMode = DMA2D_OUTPUT_ARGB4444 */
{
tmp1 = (tmp1 >> 28U);
800e6b8: 6a3b ldr r3, [r7, #32]
800e6ba: 0f1b lsrs r3, r3, #28
800e6bc: 623b str r3, [r7, #32]
tmp2 = (tmp2 >> 20U);
800e6be: 69fb ldr r3, [r7, #28]
800e6c0: 0d1b lsrs r3, r3, #20
800e6c2: 61fb str r3, [r7, #28]
tmp3 = (tmp3 >> 12U);
800e6c4: 69bb ldr r3, [r7, #24]
800e6c6: 0b1b lsrs r3, r3, #12
800e6c8: 61bb str r3, [r7, #24]
tmp4 = (tmp4 >> 4U);
800e6ca: 697b ldr r3, [r7, #20]
800e6cc: 091b lsrs r3, r3, #4
800e6ce: 617b str r3, [r7, #20]
tmp = ((tmp3 << 4U) | (tmp2 << 8U) | (tmp1 << 12U) | tmp4);
800e6d0: 69bb ldr r3, [r7, #24]
800e6d2: 011a lsls r2, r3, #4
800e6d4: 69fb ldr r3, [r7, #28]
800e6d6: 021b lsls r3, r3, #8
800e6d8: 431a orrs r2, r3
800e6da: 6a3b ldr r3, [r7, #32]
800e6dc: 031b lsls r3, r3, #12
800e6de: 431a orrs r2, r3
800e6e0: 697b ldr r3, [r7, #20]
800e6e2: 4313 orrs r3, r2
800e6e4: 627b str r3, [r7, #36] ; 0x24
}
/* Write to DMA2D OCOLR register */
WRITE_REG(hdma2d->Instance->OCOLR, tmp);
800e6e6: 68fb ldr r3, [r7, #12]
800e6e8: 681b ldr r3, [r3, #0]
800e6ea: 6a7a ldr r2, [r7, #36] ; 0x24
800e6ec: 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);
}
}
800e6ee: e003 b.n 800e6f8 <DMA2D_SetConfig+0x12c>
WRITE_REG(hdma2d->Instance->FGMAR, pdata);
800e6f0: 68fb ldr r3, [r7, #12]
800e6f2: 681b ldr r3, [r3, #0]
800e6f4: 68ba ldr r2, [r7, #8]
800e6f6: 60da str r2, [r3, #12]
}
800e6f8: bf00 nop
800e6fa: 372c adds r7, #44 ; 0x2c
800e6fc: 46bd mov sp, r7
800e6fe: f85d 7b04 ldr.w r7, [sp], #4
800e702: 4770 bx lr
0800e704 <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)
{
800e704: b480 push {r7}
800e706: b089 sub sp, #36 ; 0x24
800e708: af00 add r7, sp, #0
800e70a: 6078 str r0, [r7, #4]
800e70c: 6039 str r1, [r7, #0]
uint32_t position = 0x00;
800e70e: 2300 movs r3, #0
800e710: 61fb str r3, [r7, #28]
uint32_t ioposition = 0x00;
800e712: 2300 movs r3, #0
800e714: 617b str r3, [r7, #20]
uint32_t iocurrent = 0x00;
800e716: 2300 movs r3, #0
800e718: 613b str r3, [r7, #16]
uint32_t temp = 0x00;
800e71a: 2300 movs r3, #0
800e71c: 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++)
800e71e: 2300 movs r3, #0
800e720: 61fb str r3, [r7, #28]
800e722: e175 b.n 800ea10 <HAL_GPIO_Init+0x30c>
{
/* Get the IO position */
ioposition = ((uint32_t)0x01) << position;
800e724: 2201 movs r2, #1
800e726: 69fb ldr r3, [r7, #28]
800e728: fa02 f303 lsl.w r3, r2, r3
800e72c: 617b str r3, [r7, #20]
/* Get the current IO position */
iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition;
800e72e: 683b ldr r3, [r7, #0]
800e730: 681a ldr r2, [r3, #0]
800e732: 697b ldr r3, [r7, #20]
800e734: 4013 ands r3, r2
800e736: 613b str r3, [r7, #16]
if(iocurrent == ioposition)
800e738: 693a ldr r2, [r7, #16]
800e73a: 697b ldr r3, [r7, #20]
800e73c: 429a cmp r2, r3
800e73e: f040 8164 bne.w 800ea0a <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))
800e742: 683b ldr r3, [r7, #0]
800e744: 685b ldr r3, [r3, #4]
800e746: f003 0303 and.w r3, r3, #3
800e74a: 2b01 cmp r3, #1
800e74c: d005 beq.n 800e75a <HAL_GPIO_Init+0x56>
800e74e: 683b ldr r3, [r7, #0]
800e750: 685b ldr r3, [r3, #4]
800e752: f003 0303 and.w r3, r3, #3
800e756: 2b02 cmp r3, #2
800e758: d130 bne.n 800e7bc <HAL_GPIO_Init+0xb8>
{
/* Check the Speed parameter */
assert_param(IS_GPIO_SPEED(GPIO_Init->Speed));
/* Configure the IO Speed */
temp = GPIOx->OSPEEDR;
800e75a: 687b ldr r3, [r7, #4]
800e75c: 689b ldr r3, [r3, #8]
800e75e: 61bb str r3, [r7, #24]
temp &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2));
800e760: 69fb ldr r3, [r7, #28]
800e762: 005b lsls r3, r3, #1
800e764: 2203 movs r2, #3
800e766: fa02 f303 lsl.w r3, r2, r3
800e76a: 43db mvns r3, r3
800e76c: 69ba ldr r2, [r7, #24]
800e76e: 4013 ands r3, r2
800e770: 61bb str r3, [r7, #24]
temp |= (GPIO_Init->Speed << (position * 2));
800e772: 683b ldr r3, [r7, #0]
800e774: 68da ldr r2, [r3, #12]
800e776: 69fb ldr r3, [r7, #28]
800e778: 005b lsls r3, r3, #1
800e77a: fa02 f303 lsl.w r3, r2, r3
800e77e: 69ba ldr r2, [r7, #24]
800e780: 4313 orrs r3, r2
800e782: 61bb str r3, [r7, #24]
GPIOx->OSPEEDR = temp;
800e784: 687b ldr r3, [r7, #4]
800e786: 69ba ldr r2, [r7, #24]
800e788: 609a str r2, [r3, #8]
/* Configure the IO Output Type */
temp = GPIOx->OTYPER;
800e78a: 687b ldr r3, [r7, #4]
800e78c: 685b ldr r3, [r3, #4]
800e78e: 61bb str r3, [r7, #24]
temp &= ~(GPIO_OTYPER_OT_0 << position) ;
800e790: 2201 movs r2, #1
800e792: 69fb ldr r3, [r7, #28]
800e794: fa02 f303 lsl.w r3, r2, r3
800e798: 43db mvns r3, r3
800e79a: 69ba ldr r2, [r7, #24]
800e79c: 4013 ands r3, r2
800e79e: 61bb str r3, [r7, #24]
temp |= (((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position);
800e7a0: 683b ldr r3, [r7, #0]
800e7a2: 685b ldr r3, [r3, #4]
800e7a4: 091b lsrs r3, r3, #4
800e7a6: f003 0201 and.w r2, r3, #1
800e7aa: 69fb ldr r3, [r7, #28]
800e7ac: fa02 f303 lsl.w r3, r2, r3
800e7b0: 69ba ldr r2, [r7, #24]
800e7b2: 4313 orrs r3, r2
800e7b4: 61bb str r3, [r7, #24]
GPIOx->OTYPER = temp;
800e7b6: 687b ldr r3, [r7, #4]
800e7b8: 69ba ldr r2, [r7, #24]
800e7ba: 605a str r2, [r3, #4]
}
if((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG)
800e7bc: 683b ldr r3, [r7, #0]
800e7be: 685b ldr r3, [r3, #4]
800e7c0: f003 0303 and.w r3, r3, #3
800e7c4: 2b03 cmp r3, #3
800e7c6: d017 beq.n 800e7f8 <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;
800e7c8: 687b ldr r3, [r7, #4]
800e7ca: 68db ldr r3, [r3, #12]
800e7cc: 61bb str r3, [r7, #24]
temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2));
800e7ce: 69fb ldr r3, [r7, #28]
800e7d0: 005b lsls r3, r3, #1
800e7d2: 2203 movs r2, #3
800e7d4: fa02 f303 lsl.w r3, r2, r3
800e7d8: 43db mvns r3, r3
800e7da: 69ba ldr r2, [r7, #24]
800e7dc: 4013 ands r3, r2
800e7de: 61bb str r3, [r7, #24]
temp |= ((GPIO_Init->Pull) << (position * 2));
800e7e0: 683b ldr r3, [r7, #0]
800e7e2: 689a ldr r2, [r3, #8]
800e7e4: 69fb ldr r3, [r7, #28]
800e7e6: 005b lsls r3, r3, #1
800e7e8: fa02 f303 lsl.w r3, r2, r3
800e7ec: 69ba ldr r2, [r7, #24]
800e7ee: 4313 orrs r3, r2
800e7f0: 61bb str r3, [r7, #24]
GPIOx->PUPDR = temp;
800e7f2: 687b ldr r3, [r7, #4]
800e7f4: 69ba ldr r2, [r7, #24]
800e7f6: 60da str r2, [r3, #12]
}
/* In case of Alternate function mode selection */
if((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)
800e7f8: 683b ldr r3, [r7, #0]
800e7fa: 685b ldr r3, [r3, #4]
800e7fc: f003 0303 and.w r3, r3, #3
800e800: 2b02 cmp r3, #2
800e802: d123 bne.n 800e84c <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];
800e804: 69fb ldr r3, [r7, #28]
800e806: 08da lsrs r2, r3, #3
800e808: 687b ldr r3, [r7, #4]
800e80a: 3208 adds r2, #8
800e80c: f853 3022 ldr.w r3, [r3, r2, lsl #2]
800e810: 61bb str r3, [r7, #24]
temp &= ~((uint32_t)0xF << ((uint32_t)(position & (uint32_t)0x07) * 4)) ;
800e812: 69fb ldr r3, [r7, #28]
800e814: f003 0307 and.w r3, r3, #7
800e818: 009b lsls r3, r3, #2
800e81a: 220f movs r2, #15
800e81c: fa02 f303 lsl.w r3, r2, r3
800e820: 43db mvns r3, r3
800e822: 69ba ldr r2, [r7, #24]
800e824: 4013 ands r3, r2
800e826: 61bb str r3, [r7, #24]
temp |= ((uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & (uint32_t)0x07) * 4));
800e828: 683b ldr r3, [r7, #0]
800e82a: 691a ldr r2, [r3, #16]
800e82c: 69fb ldr r3, [r7, #28]
800e82e: f003 0307 and.w r3, r3, #7
800e832: 009b lsls r3, r3, #2
800e834: fa02 f303 lsl.w r3, r2, r3
800e838: 69ba ldr r2, [r7, #24]
800e83a: 4313 orrs r3, r2
800e83c: 61bb str r3, [r7, #24]
GPIOx->AFR[position >> 3] = temp;
800e83e: 69fb ldr r3, [r7, #28]
800e840: 08da lsrs r2, r3, #3
800e842: 687b ldr r3, [r7, #4]
800e844: 3208 adds r2, #8
800e846: 69b9 ldr r1, [r7, #24]
800e848: f843 1022 str.w r1, [r3, r2, lsl #2]
}
/* Configure IO Direction mode (Input, Output, Alternate or Analog) */
temp = GPIOx->MODER;
800e84c: 687b ldr r3, [r7, #4]
800e84e: 681b ldr r3, [r3, #0]
800e850: 61bb str r3, [r7, #24]
temp &= ~(GPIO_MODER_MODER0 << (position * 2));
800e852: 69fb ldr r3, [r7, #28]
800e854: 005b lsls r3, r3, #1
800e856: 2203 movs r2, #3
800e858: fa02 f303 lsl.w r3, r2, r3
800e85c: 43db mvns r3, r3
800e85e: 69ba ldr r2, [r7, #24]
800e860: 4013 ands r3, r2
800e862: 61bb str r3, [r7, #24]
temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2));
800e864: 683b ldr r3, [r7, #0]
800e866: 685b ldr r3, [r3, #4]
800e868: f003 0203 and.w r2, r3, #3
800e86c: 69fb ldr r3, [r7, #28]
800e86e: 005b lsls r3, r3, #1
800e870: fa02 f303 lsl.w r3, r2, r3
800e874: 69ba ldr r2, [r7, #24]
800e876: 4313 orrs r3, r2
800e878: 61bb str r3, [r7, #24]
GPIOx->MODER = temp;
800e87a: 687b ldr r3, [r7, #4]
800e87c: 69ba ldr r2, [r7, #24]
800e87e: 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)
800e880: 683b ldr r3, [r7, #0]
800e882: 685b ldr r3, [r3, #4]
800e884: f403 3340 and.w r3, r3, #196608 ; 0x30000
800e888: 2b00 cmp r3, #0
800e88a: f000 80be beq.w 800ea0a <HAL_GPIO_Init+0x306>
{
/* Enable SYSCFG Clock */
__HAL_RCC_SYSCFG_CLK_ENABLE();
800e88e: 4a65 ldr r2, [pc, #404] ; (800ea24 <HAL_GPIO_Init+0x320>)
800e890: 4b64 ldr r3, [pc, #400] ; (800ea24 <HAL_GPIO_Init+0x320>)
800e892: 6c5b ldr r3, [r3, #68] ; 0x44
800e894: f443 4380 orr.w r3, r3, #16384 ; 0x4000
800e898: 6453 str r3, [r2, #68] ; 0x44
800e89a: 4b62 ldr r3, [pc, #392] ; (800ea24 <HAL_GPIO_Init+0x320>)
800e89c: 6c5b ldr r3, [r3, #68] ; 0x44
800e89e: f403 4380 and.w r3, r3, #16384 ; 0x4000
800e8a2: 60fb str r3, [r7, #12]
800e8a4: 68fb ldr r3, [r7, #12]
temp = SYSCFG->EXTICR[position >> 2];
800e8a6: 4a60 ldr r2, [pc, #384] ; (800ea28 <HAL_GPIO_Init+0x324>)
800e8a8: 69fb ldr r3, [r7, #28]
800e8aa: 089b lsrs r3, r3, #2
800e8ac: 3302 adds r3, #2
800e8ae: f852 3023 ldr.w r3, [r2, r3, lsl #2]
800e8b2: 61bb str r3, [r7, #24]
temp &= ~(((uint32_t)0x0F) << (4 * (position & 0x03)));
800e8b4: 69fb ldr r3, [r7, #28]
800e8b6: f003 0303 and.w r3, r3, #3
800e8ba: 009b lsls r3, r3, #2
800e8bc: 220f movs r2, #15
800e8be: fa02 f303 lsl.w r3, r2, r3
800e8c2: 43db mvns r3, r3
800e8c4: 69ba ldr r2, [r7, #24]
800e8c6: 4013 ands r3, r2
800e8c8: 61bb str r3, [r7, #24]
temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4 * (position & 0x03)));
800e8ca: 687b ldr r3, [r7, #4]
800e8cc: 4a57 ldr r2, [pc, #348] ; (800ea2c <HAL_GPIO_Init+0x328>)
800e8ce: 4293 cmp r3, r2
800e8d0: d037 beq.n 800e942 <HAL_GPIO_Init+0x23e>
800e8d2: 687b ldr r3, [r7, #4]
800e8d4: 4a56 ldr r2, [pc, #344] ; (800ea30 <HAL_GPIO_Init+0x32c>)
800e8d6: 4293 cmp r3, r2
800e8d8: d031 beq.n 800e93e <HAL_GPIO_Init+0x23a>
800e8da: 687b ldr r3, [r7, #4]
800e8dc: 4a55 ldr r2, [pc, #340] ; (800ea34 <HAL_GPIO_Init+0x330>)
800e8de: 4293 cmp r3, r2
800e8e0: d02b beq.n 800e93a <HAL_GPIO_Init+0x236>
800e8e2: 687b ldr r3, [r7, #4]
800e8e4: 4a54 ldr r2, [pc, #336] ; (800ea38 <HAL_GPIO_Init+0x334>)
800e8e6: 4293 cmp r3, r2
800e8e8: d025 beq.n 800e936 <HAL_GPIO_Init+0x232>
800e8ea: 687b ldr r3, [r7, #4]
800e8ec: 4a53 ldr r2, [pc, #332] ; (800ea3c <HAL_GPIO_Init+0x338>)
800e8ee: 4293 cmp r3, r2
800e8f0: d01f beq.n 800e932 <HAL_GPIO_Init+0x22e>
800e8f2: 687b ldr r3, [r7, #4]
800e8f4: 4a52 ldr r2, [pc, #328] ; (800ea40 <HAL_GPIO_Init+0x33c>)
800e8f6: 4293 cmp r3, r2
800e8f8: d019 beq.n 800e92e <HAL_GPIO_Init+0x22a>
800e8fa: 687b ldr r3, [r7, #4]
800e8fc: 4a51 ldr r2, [pc, #324] ; (800ea44 <HAL_GPIO_Init+0x340>)
800e8fe: 4293 cmp r3, r2
800e900: d013 beq.n 800e92a <HAL_GPIO_Init+0x226>
800e902: 687b ldr r3, [r7, #4]
800e904: 4a50 ldr r2, [pc, #320] ; (800ea48 <HAL_GPIO_Init+0x344>)
800e906: 4293 cmp r3, r2
800e908: d00d beq.n 800e926 <HAL_GPIO_Init+0x222>
800e90a: 687b ldr r3, [r7, #4]
800e90c: 4a4f ldr r2, [pc, #316] ; (800ea4c <HAL_GPIO_Init+0x348>)
800e90e: 4293 cmp r3, r2
800e910: d007 beq.n 800e922 <HAL_GPIO_Init+0x21e>
800e912: 687b ldr r3, [r7, #4]
800e914: 4a4e ldr r2, [pc, #312] ; (800ea50 <HAL_GPIO_Init+0x34c>)
800e916: 4293 cmp r3, r2
800e918: d101 bne.n 800e91e <HAL_GPIO_Init+0x21a>
800e91a: 2309 movs r3, #9
800e91c: e012 b.n 800e944 <HAL_GPIO_Init+0x240>
800e91e: 230a movs r3, #10
800e920: e010 b.n 800e944 <HAL_GPIO_Init+0x240>
800e922: 2308 movs r3, #8
800e924: e00e b.n 800e944 <HAL_GPIO_Init+0x240>
800e926: 2307 movs r3, #7
800e928: e00c b.n 800e944 <HAL_GPIO_Init+0x240>
800e92a: 2306 movs r3, #6
800e92c: e00a b.n 800e944 <HAL_GPIO_Init+0x240>
800e92e: 2305 movs r3, #5
800e930: e008 b.n 800e944 <HAL_GPIO_Init+0x240>
800e932: 2304 movs r3, #4
800e934: e006 b.n 800e944 <HAL_GPIO_Init+0x240>
800e936: 2303 movs r3, #3
800e938: e004 b.n 800e944 <HAL_GPIO_Init+0x240>
800e93a: 2302 movs r3, #2
800e93c: e002 b.n 800e944 <HAL_GPIO_Init+0x240>
800e93e: 2301 movs r3, #1
800e940: e000 b.n 800e944 <HAL_GPIO_Init+0x240>
800e942: 2300 movs r3, #0
800e944: 69fa ldr r2, [r7, #28]
800e946: f002 0203 and.w r2, r2, #3
800e94a: 0092 lsls r2, r2, #2
800e94c: 4093 lsls r3, r2
800e94e: 69ba ldr r2, [r7, #24]
800e950: 4313 orrs r3, r2
800e952: 61bb str r3, [r7, #24]
SYSCFG->EXTICR[position >> 2] = temp;
800e954: 4934 ldr r1, [pc, #208] ; (800ea28 <HAL_GPIO_Init+0x324>)
800e956: 69fb ldr r3, [r7, #28]
800e958: 089b lsrs r3, r3, #2
800e95a: 3302 adds r3, #2
800e95c: 69ba ldr r2, [r7, #24]
800e95e: f841 2023 str.w r2, [r1, r3, lsl #2]
/* Clear Rising Falling edge configuration */
temp = EXTI->RTSR;
800e962: 4b3c ldr r3, [pc, #240] ; (800ea54 <HAL_GPIO_Init+0x350>)
800e964: 689b ldr r3, [r3, #8]
800e966: 61bb str r3, [r7, #24]
temp &= ~((uint32_t)iocurrent);
800e968: 693b ldr r3, [r7, #16]
800e96a: 43db mvns r3, r3
800e96c: 69ba ldr r2, [r7, #24]
800e96e: 4013 ands r3, r2
800e970: 61bb str r3, [r7, #24]
if((GPIO_Init->Mode & TRIGGER_RISING) != 0x00u)
800e972: 683b ldr r3, [r7, #0]
800e974: 685b ldr r3, [r3, #4]
800e976: f403 1380 and.w r3, r3, #1048576 ; 0x100000
800e97a: 2b00 cmp r3, #0
800e97c: d003 beq.n 800e986 <HAL_GPIO_Init+0x282>
{
temp |= iocurrent;
800e97e: 69ba ldr r2, [r7, #24]
800e980: 693b ldr r3, [r7, #16]
800e982: 4313 orrs r3, r2
800e984: 61bb str r3, [r7, #24]
}
EXTI->RTSR = temp;
800e986: 4a33 ldr r2, [pc, #204] ; (800ea54 <HAL_GPIO_Init+0x350>)
800e988: 69bb ldr r3, [r7, #24]
800e98a: 6093 str r3, [r2, #8]
temp = EXTI->FTSR;
800e98c: 4b31 ldr r3, [pc, #196] ; (800ea54 <HAL_GPIO_Init+0x350>)
800e98e: 68db ldr r3, [r3, #12]
800e990: 61bb str r3, [r7, #24]
temp &= ~((uint32_t)iocurrent);
800e992: 693b ldr r3, [r7, #16]
800e994: 43db mvns r3, r3
800e996: 69ba ldr r2, [r7, #24]
800e998: 4013 ands r3, r2
800e99a: 61bb str r3, [r7, #24]
if((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00u)
800e99c: 683b ldr r3, [r7, #0]
800e99e: 685b ldr r3, [r3, #4]
800e9a0: f403 1300 and.w r3, r3, #2097152 ; 0x200000
800e9a4: 2b00 cmp r3, #0
800e9a6: d003 beq.n 800e9b0 <HAL_GPIO_Init+0x2ac>
{
temp |= iocurrent;
800e9a8: 69ba ldr r2, [r7, #24]
800e9aa: 693b ldr r3, [r7, #16]
800e9ac: 4313 orrs r3, r2
800e9ae: 61bb str r3, [r7, #24]
}
EXTI->FTSR = temp;
800e9b0: 4a28 ldr r2, [pc, #160] ; (800ea54 <HAL_GPIO_Init+0x350>)
800e9b2: 69bb ldr r3, [r7, #24]
800e9b4: 60d3 str r3, [r2, #12]
temp = EXTI->EMR;
800e9b6: 4b27 ldr r3, [pc, #156] ; (800ea54 <HAL_GPIO_Init+0x350>)
800e9b8: 685b ldr r3, [r3, #4]
800e9ba: 61bb str r3, [r7, #24]
temp &= ~((uint32_t)iocurrent);
800e9bc: 693b ldr r3, [r7, #16]
800e9be: 43db mvns r3, r3
800e9c0: 69ba ldr r2, [r7, #24]
800e9c2: 4013 ands r3, r2
800e9c4: 61bb str r3, [r7, #24]
if((GPIO_Init->Mode & EXTI_EVT) != 0x00u)
800e9c6: 683b ldr r3, [r7, #0]
800e9c8: 685b ldr r3, [r3, #4]
800e9ca: f403 3300 and.w r3, r3, #131072 ; 0x20000
800e9ce: 2b00 cmp r3, #0
800e9d0: d003 beq.n 800e9da <HAL_GPIO_Init+0x2d6>
{
temp |= iocurrent;
800e9d2: 69ba ldr r2, [r7, #24]
800e9d4: 693b ldr r3, [r7, #16]
800e9d6: 4313 orrs r3, r2
800e9d8: 61bb str r3, [r7, #24]
}
EXTI->EMR = temp;
800e9da: 4a1e ldr r2, [pc, #120] ; (800ea54 <HAL_GPIO_Init+0x350>)
800e9dc: 69bb ldr r3, [r7, #24]
800e9de: 6053 str r3, [r2, #4]
/* Clear EXTI line configuration */
temp = EXTI->IMR;
800e9e0: 4b1c ldr r3, [pc, #112] ; (800ea54 <HAL_GPIO_Init+0x350>)
800e9e2: 681b ldr r3, [r3, #0]
800e9e4: 61bb str r3, [r7, #24]
temp &= ~((uint32_t)iocurrent);
800e9e6: 693b ldr r3, [r7, #16]
800e9e8: 43db mvns r3, r3
800e9ea: 69ba ldr r2, [r7, #24]
800e9ec: 4013 ands r3, r2
800e9ee: 61bb str r3, [r7, #24]
if((GPIO_Init->Mode & EXTI_IT) != 0x00u)
800e9f0: 683b ldr r3, [r7, #0]
800e9f2: 685b ldr r3, [r3, #4]
800e9f4: f403 3380 and.w r3, r3, #65536 ; 0x10000
800e9f8: 2b00 cmp r3, #0
800e9fa: d003 beq.n 800ea04 <HAL_GPIO_Init+0x300>
{
temp |= iocurrent;
800e9fc: 69ba ldr r2, [r7, #24]
800e9fe: 693b ldr r3, [r7, #16]
800ea00: 4313 orrs r3, r2
800ea02: 61bb str r3, [r7, #24]
}
EXTI->IMR = temp;
800ea04: 4a13 ldr r2, [pc, #76] ; (800ea54 <HAL_GPIO_Init+0x350>)
800ea06: 69bb ldr r3, [r7, #24]
800ea08: 6013 str r3, [r2, #0]
for(position = 0; position < GPIO_NUMBER; position++)
800ea0a: 69fb ldr r3, [r7, #28]
800ea0c: 3301 adds r3, #1
800ea0e: 61fb str r3, [r7, #28]
800ea10: 69fb ldr r3, [r7, #28]
800ea12: 2b0f cmp r3, #15
800ea14: f67f ae86 bls.w 800e724 <HAL_GPIO_Init+0x20>
}
}
}
}
800ea18: bf00 nop
800ea1a: 3724 adds r7, #36 ; 0x24
800ea1c: 46bd mov sp, r7
800ea1e: f85d 7b04 ldr.w r7, [sp], #4
800ea22: 4770 bx lr
800ea24: 40023800 .word 0x40023800
800ea28: 40013800 .word 0x40013800
800ea2c: 40020000 .word 0x40020000
800ea30: 40020400 .word 0x40020400
800ea34: 40020800 .word 0x40020800
800ea38: 40020c00 .word 0x40020c00
800ea3c: 40021000 .word 0x40021000
800ea40: 40021400 .word 0x40021400
800ea44: 40021800 .word 0x40021800
800ea48: 40021c00 .word 0x40021c00
800ea4c: 40022000 .word 0x40022000
800ea50: 40022400 .word 0x40022400
800ea54: 40013c00 .word 0x40013c00
0800ea58 <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)
{
800ea58: b480 push {r7}
800ea5a: b085 sub sp, #20
800ea5c: af00 add r7, sp, #0
800ea5e: 6078 str r0, [r7, #4]
800ea60: 460b mov r3, r1
800ea62: 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)
800ea64: 687b ldr r3, [r7, #4]
800ea66: 691a ldr r2, [r3, #16]
800ea68: 887b ldrh r3, [r7, #2]
800ea6a: 4013 ands r3, r2
800ea6c: 2b00 cmp r3, #0
800ea6e: d002 beq.n 800ea76 <HAL_GPIO_ReadPin+0x1e>
{
bitstatus = GPIO_PIN_SET;
800ea70: 2301 movs r3, #1
800ea72: 73fb strb r3, [r7, #15]
800ea74: e001 b.n 800ea7a <HAL_GPIO_ReadPin+0x22>
}
else
{
bitstatus = GPIO_PIN_RESET;
800ea76: 2300 movs r3, #0
800ea78: 73fb strb r3, [r7, #15]
}
return bitstatus;
800ea7a: 7bfb ldrb r3, [r7, #15]
}
800ea7c: 4618 mov r0, r3
800ea7e: 3714 adds r7, #20
800ea80: 46bd mov sp, r7
800ea82: f85d 7b04 ldr.w r7, [sp], #4
800ea86: 4770 bx lr
0800ea88 <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)
{
800ea88: b480 push {r7}
800ea8a: b083 sub sp, #12
800ea8c: af00 add r7, sp, #0
800ea8e: 6078 str r0, [r7, #4]
800ea90: 460b mov r3, r1
800ea92: 807b strh r3, [r7, #2]
800ea94: 4613 mov r3, r2
800ea96: 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)
800ea98: 787b ldrb r3, [r7, #1]
800ea9a: 2b00 cmp r3, #0
800ea9c: d003 beq.n 800eaa6 <HAL_GPIO_WritePin+0x1e>
{
GPIOx->BSRR = GPIO_Pin;
800ea9e: 887a ldrh r2, [r7, #2]
800eaa0: 687b ldr r3, [r7, #4]
800eaa2: 619a str r2, [r3, #24]
}
else
{
GPIOx->BSRR = (uint32_t)GPIO_Pin << 16;
}
}
800eaa4: e003 b.n 800eaae <HAL_GPIO_WritePin+0x26>
GPIOx->BSRR = (uint32_t)GPIO_Pin << 16;
800eaa6: 887b ldrh r3, [r7, #2]
800eaa8: 041a lsls r2, r3, #16
800eaaa: 687b ldr r3, [r7, #4]
800eaac: 619a str r2, [r3, #24]
}
800eaae: bf00 nop
800eab0: 370c adds r7, #12
800eab2: 46bd mov sp, r7
800eab4: f85d 7b04 ldr.w r7, [sp], #4
800eab8: 4770 bx lr
...
0800eabc <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)
{
800eabc: b580 push {r7, lr}
800eabe: b082 sub sp, #8
800eac0: af00 add r7, sp, #0
800eac2: 4603 mov r3, r0
800eac4: 80fb strh r3, [r7, #6]
/* EXTI line interrupt detected */
if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET)
800eac6: 4b08 ldr r3, [pc, #32] ; (800eae8 <HAL_GPIO_EXTI_IRQHandler+0x2c>)
800eac8: 695a ldr r2, [r3, #20]
800eaca: 88fb ldrh r3, [r7, #6]
800eacc: 4013 ands r3, r2
800eace: 2b00 cmp r3, #0
800ead0: d006 beq.n 800eae0 <HAL_GPIO_EXTI_IRQHandler+0x24>
{
__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
800ead2: 4a05 ldr r2, [pc, #20] ; (800eae8 <HAL_GPIO_EXTI_IRQHandler+0x2c>)
800ead4: 88fb ldrh r3, [r7, #6]
800ead6: 6153 str r3, [r2, #20]
HAL_GPIO_EXTI_Callback(GPIO_Pin);
800ead8: 88fb ldrh r3, [r7, #6]
800eada: 4618 mov r0, r3
800eadc: f7f6 fd8c bl 80055f8 <HAL_GPIO_EXTI_Callback>
}
}
800eae0: bf00 nop
800eae2: 3708 adds r7, #8
800eae4: 46bd mov sp, r7
800eae6: bd80 pop {r7, pc}
800eae8: 40013c00 .word 0x40013c00
0800eaec <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)
{
800eaec: b580 push {r7, lr}
800eaee: b084 sub sp, #16
800eaf0: af00 add r7, sp, #0
800eaf2: 6078 str r0, [r7, #4]
uint32_t tmp, tmp1;
/* Check the LTDC peripheral state */
if (hltdc == NULL)
800eaf4: 687b ldr r3, [r7, #4]
800eaf6: 2b00 cmp r3, #0
800eaf8: d101 bne.n 800eafe <HAL_LTDC_Init+0x12>
{
return HAL_ERROR;
800eafa: 2301 movs r3, #1
800eafc: e0bf b.n 800ec7e <HAL_LTDC_Init+0x192>
}
/* Init the low level hardware */
hltdc->MspInitCallback(hltdc);
}
#else
if (hltdc->State == HAL_LTDC_STATE_RESET)
800eafe: 687b ldr r3, [r7, #4]
800eb00: f893 30a1 ldrb.w r3, [r3, #161] ; 0xa1
800eb04: b2db uxtb r3, r3
800eb06: 2b00 cmp r3, #0
800eb08: d106 bne.n 800eb18 <HAL_LTDC_Init+0x2c>
{
/* Allocate lock resource and initialize it */
hltdc->Lock = HAL_UNLOCKED;
800eb0a: 687b ldr r3, [r7, #4]
800eb0c: 2200 movs r2, #0
800eb0e: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
/* Init the low level hardware */
HAL_LTDC_MspInit(hltdc);
800eb12: 6878 ldr r0, [r7, #4]
800eb14: f7f5 fb8a bl 800422c <HAL_LTDC_MspInit>
}
#endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
/* Change LTDC peripheral state */
hltdc->State = HAL_LTDC_STATE_BUSY;
800eb18: 687b ldr r3, [r7, #4]
800eb1a: 2202 movs r2, #2
800eb1c: 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);
800eb20: 687b ldr r3, [r7, #4]
800eb22: 681b ldr r3, [r3, #0]
800eb24: 687a ldr r2, [r7, #4]
800eb26: 6812 ldr r2, [r2, #0]
800eb28: 6992 ldr r2, [r2, #24]
800eb2a: f022 4270 bic.w r2, r2, #4026531840 ; 0xf0000000
800eb2e: 619a str r2, [r3, #24]
hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \
800eb30: 687b ldr r3, [r7, #4]
800eb32: 681b ldr r3, [r3, #0]
800eb34: 687a ldr r2, [r7, #4]
800eb36: 6812 ldr r2, [r2, #0]
800eb38: 6991 ldr r1, [r2, #24]
800eb3a: 687a ldr r2, [r7, #4]
800eb3c: 6850 ldr r0, [r2, #4]
800eb3e: 687a ldr r2, [r7, #4]
800eb40: 6892 ldr r2, [r2, #8]
800eb42: 4310 orrs r0, r2
hltdc->Init.DEPolarity | hltdc->Init.PCPolarity);
800eb44: 687a ldr r2, [r7, #4]
800eb46: 68d2 ldr r2, [r2, #12]
hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \
800eb48: 4310 orrs r0, r2
hltdc->Init.DEPolarity | hltdc->Init.PCPolarity);
800eb4a: 687a ldr r2, [r7, #4]
800eb4c: 6912 ldr r2, [r2, #16]
800eb4e: 4302 orrs r2, r0
hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \
800eb50: 430a orrs r2, r1
800eb52: 619a str r2, [r3, #24]
/* Set Synchronization size */
hltdc->Instance->SSCR &= ~(LTDC_SSCR_VSH | LTDC_SSCR_HSW);
800eb54: 687b ldr r3, [r7, #4]
800eb56: 681a ldr r2, [r3, #0]
800eb58: 687b ldr r3, [r7, #4]
800eb5a: 681b ldr r3, [r3, #0]
800eb5c: 6899 ldr r1, [r3, #8]
800eb5e: 4b4a ldr r3, [pc, #296] ; (800ec88 <HAL_LTDC_Init+0x19c>)
800eb60: 400b ands r3, r1
800eb62: 6093 str r3, [r2, #8]
tmp = (hltdc->Init.HorizontalSync << 16U);
800eb64: 687b ldr r3, [r7, #4]
800eb66: 695b ldr r3, [r3, #20]
800eb68: 041b lsls r3, r3, #16
800eb6a: 60fb str r3, [r7, #12]
hltdc->Instance->SSCR |= (tmp | hltdc->Init.VerticalSync);
800eb6c: 687b ldr r3, [r7, #4]
800eb6e: 681b ldr r3, [r3, #0]
800eb70: 687a ldr r2, [r7, #4]
800eb72: 6812 ldr r2, [r2, #0]
800eb74: 6891 ldr r1, [r2, #8]
800eb76: 687a ldr r2, [r7, #4]
800eb78: 6990 ldr r0, [r2, #24]
800eb7a: 68fa ldr r2, [r7, #12]
800eb7c: 4302 orrs r2, r0
800eb7e: 430a orrs r2, r1
800eb80: 609a str r2, [r3, #8]
/* Set Accumulated Back porch */
hltdc->Instance->BPCR &= ~(LTDC_BPCR_AVBP | LTDC_BPCR_AHBP);
800eb82: 687b ldr r3, [r7, #4]
800eb84: 681a ldr r2, [r3, #0]
800eb86: 687b ldr r3, [r7, #4]
800eb88: 681b ldr r3, [r3, #0]
800eb8a: 68d9 ldr r1, [r3, #12]
800eb8c: 4b3e ldr r3, [pc, #248] ; (800ec88 <HAL_LTDC_Init+0x19c>)
800eb8e: 400b ands r3, r1
800eb90: 60d3 str r3, [r2, #12]
tmp = (hltdc->Init.AccumulatedHBP << 16U);
800eb92: 687b ldr r3, [r7, #4]
800eb94: 69db ldr r3, [r3, #28]
800eb96: 041b lsls r3, r3, #16
800eb98: 60fb str r3, [r7, #12]
hltdc->Instance->BPCR |= (tmp | hltdc->Init.AccumulatedVBP);
800eb9a: 687b ldr r3, [r7, #4]
800eb9c: 681b ldr r3, [r3, #0]
800eb9e: 687a ldr r2, [r7, #4]
800eba0: 6812 ldr r2, [r2, #0]
800eba2: 68d1 ldr r1, [r2, #12]
800eba4: 687a ldr r2, [r7, #4]
800eba6: 6a10 ldr r0, [r2, #32]
800eba8: 68fa ldr r2, [r7, #12]
800ebaa: 4302 orrs r2, r0
800ebac: 430a orrs r2, r1
800ebae: 60da str r2, [r3, #12]
/* Set Accumulated Active Width */
hltdc->Instance->AWCR &= ~(LTDC_AWCR_AAH | LTDC_AWCR_AAW);
800ebb0: 687b ldr r3, [r7, #4]
800ebb2: 681a ldr r2, [r3, #0]
800ebb4: 687b ldr r3, [r7, #4]
800ebb6: 681b ldr r3, [r3, #0]
800ebb8: 6919 ldr r1, [r3, #16]
800ebba: 4b33 ldr r3, [pc, #204] ; (800ec88 <HAL_LTDC_Init+0x19c>)
800ebbc: 400b ands r3, r1
800ebbe: 6113 str r3, [r2, #16]
tmp = (hltdc->Init.AccumulatedActiveW << 16U);
800ebc0: 687b ldr r3, [r7, #4]
800ebc2: 6a5b ldr r3, [r3, #36] ; 0x24
800ebc4: 041b lsls r3, r3, #16
800ebc6: 60fb str r3, [r7, #12]
hltdc->Instance->AWCR |= (tmp | hltdc->Init.AccumulatedActiveH);
800ebc8: 687b ldr r3, [r7, #4]
800ebca: 681b ldr r3, [r3, #0]
800ebcc: 687a ldr r2, [r7, #4]
800ebce: 6812 ldr r2, [r2, #0]
800ebd0: 6911 ldr r1, [r2, #16]
800ebd2: 687a ldr r2, [r7, #4]
800ebd4: 6a90 ldr r0, [r2, #40] ; 0x28
800ebd6: 68fa ldr r2, [r7, #12]
800ebd8: 4302 orrs r2, r0
800ebda: 430a orrs r2, r1
800ebdc: 611a str r2, [r3, #16]
/* Set Total Width */
hltdc->Instance->TWCR &= ~(LTDC_TWCR_TOTALH | LTDC_TWCR_TOTALW);
800ebde: 687b ldr r3, [r7, #4]
800ebe0: 681a ldr r2, [r3, #0]
800ebe2: 687b ldr r3, [r7, #4]
800ebe4: 681b ldr r3, [r3, #0]
800ebe6: 6959 ldr r1, [r3, #20]
800ebe8: 4b27 ldr r3, [pc, #156] ; (800ec88 <HAL_LTDC_Init+0x19c>)
800ebea: 400b ands r3, r1
800ebec: 6153 str r3, [r2, #20]
tmp = (hltdc->Init.TotalWidth << 16U);
800ebee: 687b ldr r3, [r7, #4]
800ebf0: 6adb ldr r3, [r3, #44] ; 0x2c
800ebf2: 041b lsls r3, r3, #16
800ebf4: 60fb str r3, [r7, #12]
hltdc->Instance->TWCR |= (tmp | hltdc->Init.TotalHeigh);
800ebf6: 687b ldr r3, [r7, #4]
800ebf8: 681b ldr r3, [r3, #0]
800ebfa: 687a ldr r2, [r7, #4]
800ebfc: 6812 ldr r2, [r2, #0]
800ebfe: 6951 ldr r1, [r2, #20]
800ec00: 687a ldr r2, [r7, #4]
800ec02: 6b10 ldr r0, [r2, #48] ; 0x30
800ec04: 68fa ldr r2, [r7, #12]
800ec06: 4302 orrs r2, r0
800ec08: 430a orrs r2, r1
800ec0a: 615a str r2, [r3, #20]
/* Set the background color value */
tmp = ((uint32_t)(hltdc->Init.Backcolor.Green) << 8U);
800ec0c: 687b ldr r3, [r7, #4]
800ec0e: f893 3035 ldrb.w r3, [r3, #53] ; 0x35
800ec12: 021b lsls r3, r3, #8
800ec14: 60fb str r3, [r7, #12]
tmp1 = ((uint32_t)(hltdc->Init.Backcolor.Red) << 16U);
800ec16: 687b ldr r3, [r7, #4]
800ec18: f893 3036 ldrb.w r3, [r3, #54] ; 0x36
800ec1c: 041b lsls r3, r3, #16
800ec1e: 60bb str r3, [r7, #8]
hltdc->Instance->BCCR &= ~(LTDC_BCCR_BCBLUE | LTDC_BCCR_BCGREEN | LTDC_BCCR_BCRED);
800ec20: 687b ldr r3, [r7, #4]
800ec22: 681b ldr r3, [r3, #0]
800ec24: 687a ldr r2, [r7, #4]
800ec26: 6812 ldr r2, [r2, #0]
800ec28: 6ad2 ldr r2, [r2, #44] ; 0x2c
800ec2a: f002 427f and.w r2, r2, #4278190080 ; 0xff000000
800ec2e: 62da str r2, [r3, #44] ; 0x2c
hltdc->Instance->BCCR |= (tmp1 | tmp | hltdc->Init.Backcolor.Blue);
800ec30: 687b ldr r3, [r7, #4]
800ec32: 681b ldr r3, [r3, #0]
800ec34: 687a ldr r2, [r7, #4]
800ec36: 6812 ldr r2, [r2, #0]
800ec38: 6ad1 ldr r1, [r2, #44] ; 0x2c
800ec3a: 68b8 ldr r0, [r7, #8]
800ec3c: 68fa ldr r2, [r7, #12]
800ec3e: 4302 orrs r2, r0
800ec40: 6878 ldr r0, [r7, #4]
800ec42: f890 0034 ldrb.w r0, [r0, #52] ; 0x34
800ec46: 4302 orrs r2, r0
800ec48: 430a orrs r2, r1
800ec4a: 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);
800ec4c: 687b ldr r3, [r7, #4]
800ec4e: 681b ldr r3, [r3, #0]
800ec50: 687a ldr r2, [r7, #4]
800ec52: 6812 ldr r2, [r2, #0]
800ec54: 6b52 ldr r2, [r2, #52] ; 0x34
800ec56: f042 0206 orr.w r2, r2, #6
800ec5a: 635a str r2, [r3, #52] ; 0x34
/* Enable LTDC by setting LTDCEN bit */
__HAL_LTDC_ENABLE(hltdc);
800ec5c: 687b ldr r3, [r7, #4]
800ec5e: 681b ldr r3, [r3, #0]
800ec60: 687a ldr r2, [r7, #4]
800ec62: 6812 ldr r2, [r2, #0]
800ec64: 6992 ldr r2, [r2, #24]
800ec66: f042 0201 orr.w r2, r2, #1
800ec6a: 619a str r2, [r3, #24]
/* Initialize the error code */
hltdc->ErrorCode = HAL_LTDC_ERROR_NONE;
800ec6c: 687b ldr r3, [r7, #4]
800ec6e: 2200 movs r2, #0
800ec70: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4
/* Initialize the LTDC state*/
hltdc->State = HAL_LTDC_STATE_READY;
800ec74: 687b ldr r3, [r7, #4]
800ec76: 2201 movs r2, #1
800ec78: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
return HAL_OK;
800ec7c: 2300 movs r3, #0
}
800ec7e: 4618 mov r0, r3
800ec80: 3710 adds r7, #16
800ec82: 46bd mov sp, r7
800ec84: bd80 pop {r7, pc}
800ec86: bf00 nop
800ec88: f000f800 .word 0xf000f800
0800ec8c <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)
{
800ec8c: b580 push {r7, lr}
800ec8e: b084 sub sp, #16
800ec90: af00 add r7, sp, #0
800ec92: 6078 str r0, [r7, #4]
uint32_t isrflags = READ_REG(hltdc->Instance->ISR);
800ec94: 687b ldr r3, [r7, #4]
800ec96: 681b ldr r3, [r3, #0]
800ec98: 6b9b ldr r3, [r3, #56] ; 0x38
800ec9a: 60fb str r3, [r7, #12]
uint32_t itsources = READ_REG(hltdc->Instance->IER);
800ec9c: 687b ldr r3, [r7, #4]
800ec9e: 681b ldr r3, [r3, #0]
800eca0: 6b5b ldr r3, [r3, #52] ; 0x34
800eca2: 60bb str r3, [r7, #8]
/* Transfer Error Interrupt management ***************************************/
if (((isrflags & LTDC_ISR_TERRIF) != 0U) && ((itsources & LTDC_IER_TERRIE) != 0U))
800eca4: 68fb ldr r3, [r7, #12]
800eca6: f003 0304 and.w r3, r3, #4
800ecaa: 2b00 cmp r3, #0
800ecac: d023 beq.n 800ecf6 <HAL_LTDC_IRQHandler+0x6a>
800ecae: 68bb ldr r3, [r7, #8]
800ecb0: f003 0304 and.w r3, r3, #4
800ecb4: 2b00 cmp r3, #0
800ecb6: d01e beq.n 800ecf6 <HAL_LTDC_IRQHandler+0x6a>
{
/* Disable the transfer Error interrupt */
__HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_TE);
800ecb8: 687b ldr r3, [r7, #4]
800ecba: 681b ldr r3, [r3, #0]
800ecbc: 687a ldr r2, [r7, #4]
800ecbe: 6812 ldr r2, [r2, #0]
800ecc0: 6b52 ldr r2, [r2, #52] ; 0x34
800ecc2: f022 0204 bic.w r2, r2, #4
800ecc6: 635a str r2, [r3, #52] ; 0x34
/* Clear the transfer error flag */
__HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_TE);
800ecc8: 687b ldr r3, [r7, #4]
800ecca: 681b ldr r3, [r3, #0]
800eccc: 2204 movs r2, #4
800ecce: 63da str r2, [r3, #60] ; 0x3c
/* Update error code */
hltdc->ErrorCode |= HAL_LTDC_ERROR_TE;
800ecd0: 687b ldr r3, [r7, #4]
800ecd2: f8d3 30a4 ldr.w r3, [r3, #164] ; 0xa4
800ecd6: f043 0201 orr.w r2, r3, #1
800ecda: 687b ldr r3, [r7, #4]
800ecdc: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4
/* Change LTDC state */
hltdc->State = HAL_LTDC_STATE_ERROR;
800ece0: 687b ldr r3, [r7, #4]
800ece2: 2204 movs r2, #4
800ece4: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
800ece8: 687b ldr r3, [r7, #4]
800ecea: 2200 movs r2, #0
800ecec: 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);
800ecf0: 6878 ldr r0, [r7, #4]
800ecf2: f000 f86f bl 800edd4 <HAL_LTDC_ErrorCallback>
#endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
}
/* FIFO underrun Interrupt management ***************************************/
if (((isrflags & LTDC_ISR_FUIF) != 0U) && ((itsources & LTDC_IER_FUIE) != 0U))
800ecf6: 68fb ldr r3, [r7, #12]
800ecf8: f003 0302 and.w r3, r3, #2
800ecfc: 2b00 cmp r3, #0
800ecfe: d023 beq.n 800ed48 <HAL_LTDC_IRQHandler+0xbc>
800ed00: 68bb ldr r3, [r7, #8]
800ed02: f003 0302 and.w r3, r3, #2
800ed06: 2b00 cmp r3, #0
800ed08: d01e beq.n 800ed48 <HAL_LTDC_IRQHandler+0xbc>
{
/* Disable the FIFO underrun interrupt */
__HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_FU);
800ed0a: 687b ldr r3, [r7, #4]
800ed0c: 681b ldr r3, [r3, #0]
800ed0e: 687a ldr r2, [r7, #4]
800ed10: 6812 ldr r2, [r2, #0]
800ed12: 6b52 ldr r2, [r2, #52] ; 0x34
800ed14: f022 0202 bic.w r2, r2, #2
800ed18: 635a str r2, [r3, #52] ; 0x34
/* Clear the FIFO underrun flag */
__HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_FU);
800ed1a: 687b ldr r3, [r7, #4]
800ed1c: 681b ldr r3, [r3, #0]
800ed1e: 2202 movs r2, #2
800ed20: 63da str r2, [r3, #60] ; 0x3c
/* Update error code */
hltdc->ErrorCode |= HAL_LTDC_ERROR_FU;
800ed22: 687b ldr r3, [r7, #4]
800ed24: f8d3 30a4 ldr.w r3, [r3, #164] ; 0xa4
800ed28: f043 0202 orr.w r2, r3, #2
800ed2c: 687b ldr r3, [r7, #4]
800ed2e: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4
/* Change LTDC state */
hltdc->State = HAL_LTDC_STATE_ERROR;
800ed32: 687b ldr r3, [r7, #4]
800ed34: 2204 movs r2, #4
800ed36: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
800ed3a: 687b ldr r3, [r7, #4]
800ed3c: 2200 movs r2, #0
800ed3e: 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);
800ed42: 6878 ldr r0, [r7, #4]
800ed44: f000 f846 bl 800edd4 <HAL_LTDC_ErrorCallback>
#endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
}
/* Line Interrupt management ************************************************/
if (((isrflags & LTDC_ISR_LIF) != 0U) && ((itsources & LTDC_IER_LIE) != 0U))
800ed48: 68fb ldr r3, [r7, #12]
800ed4a: f003 0301 and.w r3, r3, #1
800ed4e: 2b00 cmp r3, #0
800ed50: d01b beq.n 800ed8a <HAL_LTDC_IRQHandler+0xfe>
800ed52: 68bb ldr r3, [r7, #8]
800ed54: f003 0301 and.w r3, r3, #1
800ed58: 2b00 cmp r3, #0
800ed5a: d016 beq.n 800ed8a <HAL_LTDC_IRQHandler+0xfe>
{
/* Disable the Line interrupt */
__HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_LI);
800ed5c: 687b ldr r3, [r7, #4]
800ed5e: 681b ldr r3, [r3, #0]
800ed60: 687a ldr r2, [r7, #4]
800ed62: 6812 ldr r2, [r2, #0]
800ed64: 6b52 ldr r2, [r2, #52] ; 0x34
800ed66: f022 0201 bic.w r2, r2, #1
800ed6a: 635a str r2, [r3, #52] ; 0x34
/* Clear the Line interrupt flag */
__HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_LI);
800ed6c: 687b ldr r3, [r7, #4]
800ed6e: 681b ldr r3, [r3, #0]
800ed70: 2201 movs r2, #1
800ed72: 63da str r2, [r3, #60] ; 0x3c
/* Change LTDC state */
hltdc->State = HAL_LTDC_STATE_READY;
800ed74: 687b ldr r3, [r7, #4]
800ed76: 2201 movs r2, #1
800ed78: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
800ed7c: 687b ldr r3, [r7, #4]
800ed7e: 2200 movs r2, #0
800ed80: 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);
800ed84: 6878 ldr r0, [r7, #4]
800ed86: f7f6 fa6b bl 8005260 <HAL_LTDC_LineEventCallback>
#endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
}
/* Register reload Interrupt management ***************************************/
if (((isrflags & LTDC_ISR_RRIF) != 0U) && ((itsources & LTDC_IER_RRIE) != 0U))
800ed8a: 68fb ldr r3, [r7, #12]
800ed8c: f003 0308 and.w r3, r3, #8
800ed90: 2b00 cmp r3, #0
800ed92: d01b beq.n 800edcc <HAL_LTDC_IRQHandler+0x140>
800ed94: 68bb ldr r3, [r7, #8]
800ed96: f003 0308 and.w r3, r3, #8
800ed9a: 2b00 cmp r3, #0
800ed9c: d016 beq.n 800edcc <HAL_LTDC_IRQHandler+0x140>
{
/* Disable the register reload interrupt */
__HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_RR);
800ed9e: 687b ldr r3, [r7, #4]
800eda0: 681b ldr r3, [r3, #0]
800eda2: 687a ldr r2, [r7, #4]
800eda4: 6812 ldr r2, [r2, #0]
800eda6: 6b52 ldr r2, [r2, #52] ; 0x34
800eda8: f022 0208 bic.w r2, r2, #8
800edac: 635a str r2, [r3, #52] ; 0x34
/* Clear the register reload flag */
__HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_RR);
800edae: 687b ldr r3, [r7, #4]
800edb0: 681b ldr r3, [r3, #0]
800edb2: 2208 movs r2, #8
800edb4: 63da str r2, [r3, #60] ; 0x3c
/* Change LTDC state */
hltdc->State = HAL_LTDC_STATE_READY;
800edb6: 687b ldr r3, [r7, #4]
800edb8: 2201 movs r2, #1
800edba: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
800edbe: 687b ldr r3, [r7, #4]
800edc0: 2200 movs r2, #0
800edc2: 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);
800edc6: 6878 ldr r0, [r7, #4]
800edc8: f000 f80e bl 800ede8 <HAL_LTDC_ReloadEventCallback>
#endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
}
}
800edcc: bf00 nop
800edce: 3710 adds r7, #16
800edd0: 46bd mov sp, r7
800edd2: bd80 pop {r7, pc}
0800edd4 <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)
{
800edd4: b480 push {r7}
800edd6: b083 sub sp, #12
800edd8: af00 add r7, sp, #0
800edda: 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
*/
}
800eddc: bf00 nop
800edde: 370c adds r7, #12
800ede0: 46bd mov sp, r7
800ede2: f85d 7b04 ldr.w r7, [sp], #4
800ede6: 4770 bx lr
0800ede8 <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)
{
800ede8: b480 push {r7}
800edea: b083 sub sp, #12
800edec: af00 add r7, sp, #0
800edee: 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
*/
}
800edf0: bf00 nop
800edf2: 370c adds r7, #12
800edf4: 46bd mov sp, r7
800edf6: f85d 7b04 ldr.w r7, [sp], #4
800edfa: 4770 bx lr
0800edfc <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)
{
800edfc: b5b0 push {r4, r5, r7, lr}
800edfe: b084 sub sp, #16
800ee00: af00 add r7, sp, #0
800ee02: 60f8 str r0, [r7, #12]
800ee04: 60b9 str r1, [r7, #8]
800ee06: 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);
800ee08: 68fb ldr r3, [r7, #12]
800ee0a: f893 30a0 ldrb.w r3, [r3, #160] ; 0xa0
800ee0e: 2b01 cmp r3, #1
800ee10: d101 bne.n 800ee16 <HAL_LTDC_ConfigLayer+0x1a>
800ee12: 2302 movs r3, #2
800ee14: e02c b.n 800ee70 <HAL_LTDC_ConfigLayer+0x74>
800ee16: 68fb ldr r3, [r7, #12]
800ee18: 2201 movs r2, #1
800ee1a: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
/* Change LTDC peripheral state */
hltdc->State = HAL_LTDC_STATE_BUSY;
800ee1e: 68fb ldr r3, [r7, #12]
800ee20: 2202 movs r2, #2
800ee22: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Copy new layer configuration into handle structure */
hltdc->LayerCfg[LayerIdx] = *pLayerCfg;
800ee26: 68fa ldr r2, [r7, #12]
800ee28: 687b ldr r3, [r7, #4]
800ee2a: 2134 movs r1, #52 ; 0x34
800ee2c: fb01 f303 mul.w r3, r1, r3
800ee30: 4413 add r3, r2
800ee32: f103 0238 add.w r2, r3, #56 ; 0x38
800ee36: 68bb ldr r3, [r7, #8]
800ee38: 4614 mov r4, r2
800ee3a: 461d mov r5, r3
800ee3c: cd0f ldmia r5!, {r0, r1, r2, r3}
800ee3e: c40f stmia r4!, {r0, r1, r2, r3}
800ee40: cd0f ldmia r5!, {r0, r1, r2, r3}
800ee42: c40f stmia r4!, {r0, r1, r2, r3}
800ee44: cd0f ldmia r5!, {r0, r1, r2, r3}
800ee46: c40f stmia r4!, {r0, r1, r2, r3}
800ee48: 682b ldr r3, [r5, #0]
800ee4a: 6023 str r3, [r4, #0]
/* Configure the LTDC Layer */
LTDC_SetConfig(hltdc, pLayerCfg, LayerIdx);
800ee4c: 687a ldr r2, [r7, #4]
800ee4e: 68b9 ldr r1, [r7, #8]
800ee50: 68f8 ldr r0, [r7, #12]
800ee52: f000 f879 bl 800ef48 <LTDC_SetConfig>
/* Set the Immediate Reload type */
hltdc->Instance->SRCR = LTDC_SRCR_IMR;
800ee56: 68fb ldr r3, [r7, #12]
800ee58: 681b ldr r3, [r3, #0]
800ee5a: 2201 movs r2, #1
800ee5c: 625a str r2, [r3, #36] ; 0x24
/* Initialize the LTDC state*/
hltdc->State = HAL_LTDC_STATE_READY;
800ee5e: 68fb ldr r3, [r7, #12]
800ee60: 2201 movs r2, #1
800ee62: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
800ee66: 68fb ldr r3, [r7, #12]
800ee68: 2200 movs r2, #0
800ee6a: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
return HAL_OK;
800ee6e: 2300 movs r3, #0
}
800ee70: 4618 mov r0, r3
800ee72: 3710 adds r7, #16
800ee74: 46bd mov sp, r7
800ee76: bdb0 pop {r4, r5, r7, pc}
0800ee78 <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)
{
800ee78: b480 push {r7}
800ee7a: b083 sub sp, #12
800ee7c: af00 add r7, sp, #0
800ee7e: 6078 str r0, [r7, #4]
800ee80: 6039 str r1, [r7, #0]
/* Check the parameters */
assert_param(IS_LTDC_LIPOS(Line));
/* Process locked */
__HAL_LOCK(hltdc);
800ee82: 687b ldr r3, [r7, #4]
800ee84: f893 30a0 ldrb.w r3, [r3, #160] ; 0xa0
800ee88: 2b01 cmp r3, #1
800ee8a: d101 bne.n 800ee90 <HAL_LTDC_ProgramLineEvent+0x18>
800ee8c: 2302 movs r3, #2
800ee8e: e023 b.n 800eed8 <HAL_LTDC_ProgramLineEvent+0x60>
800ee90: 687b ldr r3, [r7, #4]
800ee92: 2201 movs r2, #1
800ee94: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
/* Change LTDC peripheral state */
hltdc->State = HAL_LTDC_STATE_BUSY;
800ee98: 687b ldr r3, [r7, #4]
800ee9a: 2202 movs r2, #2
800ee9c: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Disable the Line interrupt */
__HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_LI);
800eea0: 687b ldr r3, [r7, #4]
800eea2: 681b ldr r3, [r3, #0]
800eea4: 687a ldr r2, [r7, #4]
800eea6: 6812 ldr r2, [r2, #0]
800eea8: 6b52 ldr r2, [r2, #52] ; 0x34
800eeaa: f022 0201 bic.w r2, r2, #1
800eeae: 635a str r2, [r3, #52] ; 0x34
/* Set the Line Interrupt position */
LTDC->LIPCR = (uint32_t)Line;
800eeb0: 4a0c ldr r2, [pc, #48] ; (800eee4 <HAL_LTDC_ProgramLineEvent+0x6c>)
800eeb2: 683b ldr r3, [r7, #0]
800eeb4: 6413 str r3, [r2, #64] ; 0x40
/* Enable the Line interrupt */
__HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_LI);
800eeb6: 687b ldr r3, [r7, #4]
800eeb8: 681b ldr r3, [r3, #0]
800eeba: 687a ldr r2, [r7, #4]
800eebc: 6812 ldr r2, [r2, #0]
800eebe: 6b52 ldr r2, [r2, #52] ; 0x34
800eec0: f042 0201 orr.w r2, r2, #1
800eec4: 635a str r2, [r3, #52] ; 0x34
/* Change the LTDC state*/
hltdc->State = HAL_LTDC_STATE_READY;
800eec6: 687b ldr r3, [r7, #4]
800eec8: 2201 movs r2, #1
800eeca: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
800eece: 687b ldr r3, [r7, #4]
800eed0: 2200 movs r2, #0
800eed2: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
return HAL_OK;
800eed6: 2300 movs r3, #0
}
800eed8: 4618 mov r0, r3
800eeda: 370c adds r7, #12
800eedc: 46bd mov sp, r7
800eede: f85d 7b04 ldr.w r7, [sp], #4
800eee2: 4770 bx lr
800eee4: 40016800 .word 0x40016800
0800eee8 <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)
{
800eee8: b480 push {r7}
800eeea: b083 sub sp, #12
800eeec: af00 add r7, sp, #0
800eeee: 6078 str r0, [r7, #4]
800eef0: 6039 str r1, [r7, #0]
/* Check the parameters */
assert_param(IS_LTDC_RELOAD(ReloadType));
/* Process locked */
__HAL_LOCK(hltdc);
800eef2: 687b ldr r3, [r7, #4]
800eef4: f893 30a0 ldrb.w r3, [r3, #160] ; 0xa0
800eef8: 2b01 cmp r3, #1
800eefa: d101 bne.n 800ef00 <HAL_LTDC_Reload+0x18>
800eefc: 2302 movs r3, #2
800eefe: e01c b.n 800ef3a <HAL_LTDC_Reload+0x52>
800ef00: 687b ldr r3, [r7, #4]
800ef02: 2201 movs r2, #1
800ef04: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
/* Change LTDC peripheral state */
hltdc->State = HAL_LTDC_STATE_BUSY;
800ef08: 687b ldr r3, [r7, #4]
800ef0a: 2202 movs r2, #2
800ef0c: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Enable the Reload interrupt */
__HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_RR);
800ef10: 687b ldr r3, [r7, #4]
800ef12: 681b ldr r3, [r3, #0]
800ef14: 687a ldr r2, [r7, #4]
800ef16: 6812 ldr r2, [r2, #0]
800ef18: 6b52 ldr r2, [r2, #52] ; 0x34
800ef1a: f042 0208 orr.w r2, r2, #8
800ef1e: 635a str r2, [r3, #52] ; 0x34
/* Apply Reload type */
hltdc->Instance->SRCR = ReloadType;
800ef20: 687b ldr r3, [r7, #4]
800ef22: 681b ldr r3, [r3, #0]
800ef24: 683a ldr r2, [r7, #0]
800ef26: 625a str r2, [r3, #36] ; 0x24
/* Change the LTDC state*/
hltdc->State = HAL_LTDC_STATE_READY;
800ef28: 687b ldr r3, [r7, #4]
800ef2a: 2201 movs r2, #1
800ef2c: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
800ef30: 687b ldr r3, [r7, #4]
800ef32: 2200 movs r2, #0
800ef34: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
return HAL_OK;
800ef38: 2300 movs r3, #0
}
800ef3a: 4618 mov r0, r3
800ef3c: 370c adds r7, #12
800ef3e: 46bd mov sp, r7
800ef40: f85d 7b04 ldr.w r7, [sp], #4
800ef44: 4770 bx lr
...
0800ef48 <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)
{
800ef48: b480 push {r7}
800ef4a: b089 sub sp, #36 ; 0x24
800ef4c: af00 add r7, sp, #0
800ef4e: 60f8 str r0, [r7, #12]
800ef50: 60b9 str r1, [r7, #8]
800ef52: 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);
800ef54: 68bb ldr r3, [r7, #8]
800ef56: 685a ldr r2, [r3, #4]
800ef58: 68fb ldr r3, [r7, #12]
800ef5a: 681b ldr r3, [r3, #0]
800ef5c: 68db ldr r3, [r3, #12]
800ef5e: 0c1b lsrs r3, r3, #16
800ef60: f3c3 030b ubfx r3, r3, #0, #12
800ef64: 4413 add r3, r2
800ef66: 041b lsls r3, r3, #16
800ef68: 61fb str r3, [r7, #28]
LTDC_LAYER(hltdc, LayerIdx)->WHPCR &= ~(LTDC_LxWHPCR_WHSTPOS | LTDC_LxWHPCR_WHSPPOS);
800ef6a: 68fb ldr r3, [r7, #12]
800ef6c: 681b ldr r3, [r3, #0]
800ef6e: 461a mov r2, r3
800ef70: 687b ldr r3, [r7, #4]
800ef72: 01db lsls r3, r3, #7
800ef74: 4413 add r3, r2
800ef76: 3384 adds r3, #132 ; 0x84
800ef78: 461a mov r2, r3
800ef7a: 68fb ldr r3, [r7, #12]
800ef7c: 681b ldr r3, [r3, #0]
800ef7e: 4619 mov r1, r3
800ef80: 687b ldr r3, [r7, #4]
800ef82: 01db lsls r3, r3, #7
800ef84: 440b add r3, r1
800ef86: 3384 adds r3, #132 ; 0x84
800ef88: 685b ldr r3, [r3, #4]
800ef8a: f403 4370 and.w r3, r3, #61440 ; 0xf000
800ef8e: 6053 str r3, [r2, #4]
LTDC_LAYER(hltdc, LayerIdx)->WHPCR = ((pLayerCfg->WindowX0 + ((hltdc->Instance->BPCR & LTDC_BPCR_AHBP) >> 16U) + 1U) | tmp);
800ef90: 68fb ldr r3, [r7, #12]
800ef92: 681b ldr r3, [r3, #0]
800ef94: 461a mov r2, r3
800ef96: 687b ldr r3, [r7, #4]
800ef98: 01db lsls r3, r3, #7
800ef9a: 4413 add r3, r2
800ef9c: 3384 adds r3, #132 ; 0x84
800ef9e: 4619 mov r1, r3
800efa0: 68bb ldr r3, [r7, #8]
800efa2: 681a ldr r2, [r3, #0]
800efa4: 68fb ldr r3, [r7, #12]
800efa6: 681b ldr r3, [r3, #0]
800efa8: 68db ldr r3, [r3, #12]
800efaa: 0c1b lsrs r3, r3, #16
800efac: f3c3 030b ubfx r3, r3, #0, #12
800efb0: 4413 add r3, r2
800efb2: 1c5a adds r2, r3, #1
800efb4: 69fb ldr r3, [r7, #28]
800efb6: 4313 orrs r3, r2
800efb8: 604b str r3, [r1, #4]
/* Configure the vertical start and stop position */
tmp = ((pLayerCfg->WindowY1 + (hltdc->Instance->BPCR & LTDC_BPCR_AVBP)) << 16U);
800efba: 68bb ldr r3, [r7, #8]
800efbc: 68da ldr r2, [r3, #12]
800efbe: 68fb ldr r3, [r7, #12]
800efc0: 681b ldr r3, [r3, #0]
800efc2: 68db ldr r3, [r3, #12]
800efc4: f3c3 030a ubfx r3, r3, #0, #11
800efc8: 4413 add r3, r2
800efca: 041b lsls r3, r3, #16
800efcc: 61fb str r3, [r7, #28]
LTDC_LAYER(hltdc, LayerIdx)->WVPCR &= ~(LTDC_LxWVPCR_WVSTPOS | LTDC_LxWVPCR_WVSPPOS);
800efce: 68fb ldr r3, [r7, #12]
800efd0: 681b ldr r3, [r3, #0]
800efd2: 461a mov r2, r3
800efd4: 687b ldr r3, [r7, #4]
800efd6: 01db lsls r3, r3, #7
800efd8: 4413 add r3, r2
800efda: 3384 adds r3, #132 ; 0x84
800efdc: 461a mov r2, r3
800efde: 68fb ldr r3, [r7, #12]
800efe0: 681b ldr r3, [r3, #0]
800efe2: 4619 mov r1, r3
800efe4: 687b ldr r3, [r7, #4]
800efe6: 01db lsls r3, r3, #7
800efe8: 440b add r3, r1
800efea: 3384 adds r3, #132 ; 0x84
800efec: 689b ldr r3, [r3, #8]
800efee: f403 4370 and.w r3, r3, #61440 ; 0xf000
800eff2: 6093 str r3, [r2, #8]
LTDC_LAYER(hltdc, LayerIdx)->WVPCR = ((pLayerCfg->WindowY0 + (hltdc->Instance->BPCR & LTDC_BPCR_AVBP) + 1U) | tmp);
800eff4: 68fb ldr r3, [r7, #12]
800eff6: 681b ldr r3, [r3, #0]
800eff8: 461a mov r2, r3
800effa: 687b ldr r3, [r7, #4]
800effc: 01db lsls r3, r3, #7
800effe: 4413 add r3, r2
800f000: 3384 adds r3, #132 ; 0x84
800f002: 4619 mov r1, r3
800f004: 68bb ldr r3, [r7, #8]
800f006: 689a ldr r2, [r3, #8]
800f008: 68fb ldr r3, [r7, #12]
800f00a: 681b ldr r3, [r3, #0]
800f00c: 68db ldr r3, [r3, #12]
800f00e: f3c3 030a ubfx r3, r3, #0, #11
800f012: 4413 add r3, r2
800f014: 1c5a adds r2, r3, #1
800f016: 69fb ldr r3, [r7, #28]
800f018: 4313 orrs r3, r2
800f01a: 608b str r3, [r1, #8]
/* Specifies the pixel format */
LTDC_LAYER(hltdc, LayerIdx)->PFCR &= ~(LTDC_LxPFCR_PF);
800f01c: 68fb ldr r3, [r7, #12]
800f01e: 681b ldr r3, [r3, #0]
800f020: 461a mov r2, r3
800f022: 687b ldr r3, [r7, #4]
800f024: 01db lsls r3, r3, #7
800f026: 4413 add r3, r2
800f028: 3384 adds r3, #132 ; 0x84
800f02a: 461a mov r2, r3
800f02c: 68fb ldr r3, [r7, #12]
800f02e: 681b ldr r3, [r3, #0]
800f030: 4619 mov r1, r3
800f032: 687b ldr r3, [r7, #4]
800f034: 01db lsls r3, r3, #7
800f036: 440b add r3, r1
800f038: 3384 adds r3, #132 ; 0x84
800f03a: 691b ldr r3, [r3, #16]
800f03c: f023 0307 bic.w r3, r3, #7
800f040: 6113 str r3, [r2, #16]
LTDC_LAYER(hltdc, LayerIdx)->PFCR = (pLayerCfg->PixelFormat);
800f042: 68fb ldr r3, [r7, #12]
800f044: 681b ldr r3, [r3, #0]
800f046: 461a mov r2, r3
800f048: 687b ldr r3, [r7, #4]
800f04a: 01db lsls r3, r3, #7
800f04c: 4413 add r3, r2
800f04e: 3384 adds r3, #132 ; 0x84
800f050: 461a mov r2, r3
800f052: 68bb ldr r3, [r7, #8]
800f054: 691b ldr r3, [r3, #16]
800f056: 6113 str r3, [r2, #16]
/* Configure the default color values */
tmp = ((uint32_t)(pLayerCfg->Backcolor.Green) << 8U);
800f058: 68bb ldr r3, [r7, #8]
800f05a: f893 3031 ldrb.w r3, [r3, #49] ; 0x31
800f05e: 021b lsls r3, r3, #8
800f060: 61fb str r3, [r7, #28]
tmp1 = ((uint32_t)(pLayerCfg->Backcolor.Red) << 16U);
800f062: 68bb ldr r3, [r7, #8]
800f064: f893 3032 ldrb.w r3, [r3, #50] ; 0x32
800f068: 041b lsls r3, r3, #16
800f06a: 61bb str r3, [r7, #24]
tmp2 = (pLayerCfg->Alpha0 << 24U);
800f06c: 68bb ldr r3, [r7, #8]
800f06e: 699b ldr r3, [r3, #24]
800f070: 061b lsls r3, r3, #24
800f072: 617b str r3, [r7, #20]
LTDC_LAYER(hltdc, LayerIdx)->DCCR &= ~(LTDC_LxDCCR_DCBLUE | LTDC_LxDCCR_DCGREEN | LTDC_LxDCCR_DCRED | LTDC_LxDCCR_DCALPHA);
800f074: 68fb ldr r3, [r7, #12]
800f076: 681b ldr r3, [r3, #0]
800f078: 461a mov r2, r3
800f07a: 687b ldr r3, [r7, #4]
800f07c: 01db lsls r3, r3, #7
800f07e: 4413 add r3, r2
800f080: 3384 adds r3, #132 ; 0x84
800f082: 699b ldr r3, [r3, #24]
800f084: 68fb ldr r3, [r7, #12]
800f086: 681b ldr r3, [r3, #0]
800f088: 461a mov r2, r3
800f08a: 687b ldr r3, [r7, #4]
800f08c: 01db lsls r3, r3, #7
800f08e: 4413 add r3, r2
800f090: 3384 adds r3, #132 ; 0x84
800f092: 461a mov r2, r3
800f094: 2300 movs r3, #0
800f096: 6193 str r3, [r2, #24]
LTDC_LAYER(hltdc, LayerIdx)->DCCR = (pLayerCfg->Backcolor.Blue | tmp | tmp1 | tmp2);
800f098: 68fb ldr r3, [r7, #12]
800f09a: 681b ldr r3, [r3, #0]
800f09c: 461a mov r2, r3
800f09e: 687b ldr r3, [r7, #4]
800f0a0: 01db lsls r3, r3, #7
800f0a2: 4413 add r3, r2
800f0a4: 3384 adds r3, #132 ; 0x84
800f0a6: 4619 mov r1, r3
800f0a8: 68bb ldr r3, [r7, #8]
800f0aa: f893 3030 ldrb.w r3, [r3, #48] ; 0x30
800f0ae: 461a mov r2, r3
800f0b0: 69fb ldr r3, [r7, #28]
800f0b2: 431a orrs r2, r3
800f0b4: 69bb ldr r3, [r7, #24]
800f0b6: 431a orrs r2, r3
800f0b8: 697b ldr r3, [r7, #20]
800f0ba: 4313 orrs r3, r2
800f0bc: 618b str r3, [r1, #24]
/* Specifies the constant alpha value */
LTDC_LAYER(hltdc, LayerIdx)->CACR &= ~(LTDC_LxCACR_CONSTA);
800f0be: 68fb ldr r3, [r7, #12]
800f0c0: 681b ldr r3, [r3, #0]
800f0c2: 461a mov r2, r3
800f0c4: 687b ldr r3, [r7, #4]
800f0c6: 01db lsls r3, r3, #7
800f0c8: 4413 add r3, r2
800f0ca: 3384 adds r3, #132 ; 0x84
800f0cc: 461a mov r2, r3
800f0ce: 68fb ldr r3, [r7, #12]
800f0d0: 681b ldr r3, [r3, #0]
800f0d2: 4619 mov r1, r3
800f0d4: 687b ldr r3, [r7, #4]
800f0d6: 01db lsls r3, r3, #7
800f0d8: 440b add r3, r1
800f0da: 3384 adds r3, #132 ; 0x84
800f0dc: 695b ldr r3, [r3, #20]
800f0de: f023 03ff bic.w r3, r3, #255 ; 0xff
800f0e2: 6153 str r3, [r2, #20]
LTDC_LAYER(hltdc, LayerIdx)->CACR = (pLayerCfg->Alpha);
800f0e4: 68fb ldr r3, [r7, #12]
800f0e6: 681b ldr r3, [r3, #0]
800f0e8: 461a mov r2, r3
800f0ea: 687b ldr r3, [r7, #4]
800f0ec: 01db lsls r3, r3, #7
800f0ee: 4413 add r3, r2
800f0f0: 3384 adds r3, #132 ; 0x84
800f0f2: 461a mov r2, r3
800f0f4: 68bb ldr r3, [r7, #8]
800f0f6: 695b ldr r3, [r3, #20]
800f0f8: 6153 str r3, [r2, #20]
/* Specifies the blending factors */
LTDC_LAYER(hltdc, LayerIdx)->BFCR &= ~(LTDC_LxBFCR_BF2 | LTDC_LxBFCR_BF1);
800f0fa: 68fb ldr r3, [r7, #12]
800f0fc: 681b ldr r3, [r3, #0]
800f0fe: 461a mov r2, r3
800f100: 687b ldr r3, [r7, #4]
800f102: 01db lsls r3, r3, #7
800f104: 4413 add r3, r2
800f106: 3384 adds r3, #132 ; 0x84
800f108: 4619 mov r1, r3
800f10a: 68fb ldr r3, [r7, #12]
800f10c: 681b ldr r3, [r3, #0]
800f10e: 461a mov r2, r3
800f110: 687b ldr r3, [r7, #4]
800f112: 01db lsls r3, r3, #7
800f114: 4413 add r3, r2
800f116: 3384 adds r3, #132 ; 0x84
800f118: 69da ldr r2, [r3, #28]
800f11a: 4b5a ldr r3, [pc, #360] ; (800f284 <LTDC_SetConfig+0x33c>)
800f11c: 4013 ands r3, r2
800f11e: 61cb str r3, [r1, #28]
LTDC_LAYER(hltdc, LayerIdx)->BFCR = (pLayerCfg->BlendingFactor1 | pLayerCfg->BlendingFactor2);
800f120: 68fb ldr r3, [r7, #12]
800f122: 681b ldr r3, [r3, #0]
800f124: 461a mov r2, r3
800f126: 687b ldr r3, [r7, #4]
800f128: 01db lsls r3, r3, #7
800f12a: 4413 add r3, r2
800f12c: 3384 adds r3, #132 ; 0x84
800f12e: 4619 mov r1, r3
800f130: 68bb ldr r3, [r7, #8]
800f132: 69da ldr r2, [r3, #28]
800f134: 68bb ldr r3, [r7, #8]
800f136: 6a1b ldr r3, [r3, #32]
800f138: 4313 orrs r3, r2
800f13a: 61cb str r3, [r1, #28]
/* Configure the color frame buffer start address */
LTDC_LAYER(hltdc, LayerIdx)->CFBAR &= ~(LTDC_LxCFBAR_CFBADD);
800f13c: 68fb ldr r3, [r7, #12]
800f13e: 681b ldr r3, [r3, #0]
800f140: 461a mov r2, r3
800f142: 687b ldr r3, [r7, #4]
800f144: 01db lsls r3, r3, #7
800f146: 4413 add r3, r2
800f148: 3384 adds r3, #132 ; 0x84
800f14a: 6a9b ldr r3, [r3, #40] ; 0x28
800f14c: 68fb ldr r3, [r7, #12]
800f14e: 681b ldr r3, [r3, #0]
800f150: 461a mov r2, r3
800f152: 687b ldr r3, [r7, #4]
800f154: 01db lsls r3, r3, #7
800f156: 4413 add r3, r2
800f158: 3384 adds r3, #132 ; 0x84
800f15a: 461a mov r2, r3
800f15c: 2300 movs r3, #0
800f15e: 6293 str r3, [r2, #40] ; 0x28
LTDC_LAYER(hltdc, LayerIdx)->CFBAR = (pLayerCfg->FBStartAdress);
800f160: 68fb ldr r3, [r7, #12]
800f162: 681b ldr r3, [r3, #0]
800f164: 461a mov r2, r3
800f166: 687b ldr r3, [r7, #4]
800f168: 01db lsls r3, r3, #7
800f16a: 4413 add r3, r2
800f16c: 3384 adds r3, #132 ; 0x84
800f16e: 461a mov r2, r3
800f170: 68bb ldr r3, [r7, #8]
800f172: 6a5b ldr r3, [r3, #36] ; 0x24
800f174: 6293 str r3, [r2, #40] ; 0x28
if (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB8888)
800f176: 68bb ldr r3, [r7, #8]
800f178: 691b ldr r3, [r3, #16]
800f17a: 2b00 cmp r3, #0
800f17c: d102 bne.n 800f184 <LTDC_SetConfig+0x23c>
{
tmp = 4U;
800f17e: 2304 movs r3, #4
800f180: 61fb str r3, [r7, #28]
800f182: e01b b.n 800f1bc <LTDC_SetConfig+0x274>
}
else if (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_RGB888)
800f184: 68bb ldr r3, [r7, #8]
800f186: 691b ldr r3, [r3, #16]
800f188: 2b01 cmp r3, #1
800f18a: d102 bne.n 800f192 <LTDC_SetConfig+0x24a>
{
tmp = 3U;
800f18c: 2303 movs r3, #3
800f18e: 61fb str r3, [r7, #28]
800f190: e014 b.n 800f1bc <LTDC_SetConfig+0x274>
}
else if ((pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB4444) || \
800f192: 68bb ldr r3, [r7, #8]
800f194: 691b ldr r3, [r3, #16]
800f196: 2b04 cmp r3, #4
800f198: d00b beq.n 800f1b2 <LTDC_SetConfig+0x26a>
(pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_RGB565) || \
800f19a: 68bb ldr r3, [r7, #8]
800f19c: 691b ldr r3, [r3, #16]
else if ((pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB4444) || \
800f19e: 2b02 cmp r3, #2
800f1a0: d007 beq.n 800f1b2 <LTDC_SetConfig+0x26a>
(pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB1555) || \
800f1a2: 68bb ldr r3, [r7, #8]
800f1a4: 691b ldr r3, [r3, #16]
(pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_RGB565) || \
800f1a6: 2b03 cmp r3, #3
800f1a8: d003 beq.n 800f1b2 <LTDC_SetConfig+0x26a>
(pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_AL88))
800f1aa: 68bb ldr r3, [r7, #8]
800f1ac: 691b ldr r3, [r3, #16]
(pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB1555) || \
800f1ae: 2b07 cmp r3, #7
800f1b0: d102 bne.n 800f1b8 <LTDC_SetConfig+0x270>
{
tmp = 2U;
800f1b2: 2302 movs r3, #2
800f1b4: 61fb str r3, [r7, #28]
800f1b6: e001 b.n 800f1bc <LTDC_SetConfig+0x274>
}
else
{
tmp = 1U;
800f1b8: 2301 movs r3, #1
800f1ba: 61fb str r3, [r7, #28]
}
/* Configure the color frame buffer pitch in byte */
LTDC_LAYER(hltdc, LayerIdx)->CFBLR &= ~(LTDC_LxCFBLR_CFBLL | LTDC_LxCFBLR_CFBP);
800f1bc: 68fb ldr r3, [r7, #12]
800f1be: 681b ldr r3, [r3, #0]
800f1c0: 461a mov r2, r3
800f1c2: 687b ldr r3, [r7, #4]
800f1c4: 01db lsls r3, r3, #7
800f1c6: 4413 add r3, r2
800f1c8: 3384 adds r3, #132 ; 0x84
800f1ca: 461a mov r2, r3
800f1cc: 68fb ldr r3, [r7, #12]
800f1ce: 681b ldr r3, [r3, #0]
800f1d0: 4619 mov r1, r3
800f1d2: 687b ldr r3, [r7, #4]
800f1d4: 01db lsls r3, r3, #7
800f1d6: 440b add r3, r1
800f1d8: 3384 adds r3, #132 ; 0x84
800f1da: 6adb ldr r3, [r3, #44] ; 0x2c
800f1dc: f003 23e0 and.w r3, r3, #3758153728 ; 0xe000e000
800f1e0: 62d3 str r3, [r2, #44] ; 0x2c
LTDC_LAYER(hltdc, LayerIdx)->CFBLR = (((pLayerCfg->ImageWidth * tmp) << 16U) | (((pLayerCfg->WindowX1 - pLayerCfg->WindowX0) * tmp) + 3U));
800f1e2: 68fb ldr r3, [r7, #12]
800f1e4: 681b ldr r3, [r3, #0]
800f1e6: 461a mov r2, r3
800f1e8: 687b ldr r3, [r7, #4]
800f1ea: 01db lsls r3, r3, #7
800f1ec: 4413 add r3, r2
800f1ee: 3384 adds r3, #132 ; 0x84
800f1f0: 4618 mov r0, r3
800f1f2: 68bb ldr r3, [r7, #8]
800f1f4: 6a9b ldr r3, [r3, #40] ; 0x28
800f1f6: 69fa ldr r2, [r7, #28]
800f1f8: fb02 f303 mul.w r3, r2, r3
800f1fc: 041a lsls r2, r3, #16
800f1fe: 68bb ldr r3, [r7, #8]
800f200: 6859 ldr r1, [r3, #4]
800f202: 68bb ldr r3, [r7, #8]
800f204: 681b ldr r3, [r3, #0]
800f206: 1acb subs r3, r1, r3
800f208: 69f9 ldr r1, [r7, #28]
800f20a: fb01 f303 mul.w r3, r1, r3
800f20e: 3303 adds r3, #3
800f210: 4313 orrs r3, r2
800f212: 62c3 str r3, [r0, #44] ; 0x2c
/* Configure the frame buffer line number */
LTDC_LAYER(hltdc, LayerIdx)->CFBLNR &= ~(LTDC_LxCFBLNR_CFBLNBR);
800f214: 68fb ldr r3, [r7, #12]
800f216: 681b ldr r3, [r3, #0]
800f218: 461a mov r2, r3
800f21a: 687b ldr r3, [r7, #4]
800f21c: 01db lsls r3, r3, #7
800f21e: 4413 add r3, r2
800f220: 3384 adds r3, #132 ; 0x84
800f222: 4619 mov r1, r3
800f224: 68fb ldr r3, [r7, #12]
800f226: 681b ldr r3, [r3, #0]
800f228: 461a mov r2, r3
800f22a: 687b ldr r3, [r7, #4]
800f22c: 01db lsls r3, r3, #7
800f22e: 4413 add r3, r2
800f230: 3384 adds r3, #132 ; 0x84
800f232: 6b1a ldr r2, [r3, #48] ; 0x30
800f234: 4b14 ldr r3, [pc, #80] ; (800f288 <LTDC_SetConfig+0x340>)
800f236: 4013 ands r3, r2
800f238: 630b str r3, [r1, #48] ; 0x30
LTDC_LAYER(hltdc, LayerIdx)->CFBLNR = (pLayerCfg->ImageHeight);
800f23a: 68fb ldr r3, [r7, #12]
800f23c: 681b ldr r3, [r3, #0]
800f23e: 461a mov r2, r3
800f240: 687b ldr r3, [r7, #4]
800f242: 01db lsls r3, r3, #7
800f244: 4413 add r3, r2
800f246: 3384 adds r3, #132 ; 0x84
800f248: 461a mov r2, r3
800f24a: 68bb ldr r3, [r7, #8]
800f24c: 6adb ldr r3, [r3, #44] ; 0x2c
800f24e: 6313 str r3, [r2, #48] ; 0x30
/* Enable LTDC_Layer by setting LEN bit */
LTDC_LAYER(hltdc, LayerIdx)->CR |= (uint32_t)LTDC_LxCR_LEN;
800f250: 68fb ldr r3, [r7, #12]
800f252: 681b ldr r3, [r3, #0]
800f254: 461a mov r2, r3
800f256: 687b ldr r3, [r7, #4]
800f258: 01db lsls r3, r3, #7
800f25a: 4413 add r3, r2
800f25c: 3384 adds r3, #132 ; 0x84
800f25e: 461a mov r2, r3
800f260: 68fb ldr r3, [r7, #12]
800f262: 681b ldr r3, [r3, #0]
800f264: 4619 mov r1, r3
800f266: 687b ldr r3, [r7, #4]
800f268: 01db lsls r3, r3, #7
800f26a: 440b add r3, r1
800f26c: 3384 adds r3, #132 ; 0x84
800f26e: 681b ldr r3, [r3, #0]
800f270: f043 0301 orr.w r3, r3, #1
800f274: 6013 str r3, [r2, #0]
}
800f276: bf00 nop
800f278: 3724 adds r7, #36 ; 0x24
800f27a: 46bd mov sp, r7
800f27c: f85d 7b04 ldr.w r7, [sp], #4
800f280: 4770 bx lr
800f282: bf00 nop
800f284: fffff8f8 .word 0xfffff8f8
800f288: fffff800 .word 0xfffff800
0800f28c <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)
{
800f28c: b580 push {r7, lr}
800f28e: b086 sub sp, #24
800f290: af00 add r7, sp, #0
800f292: 6078 str r0, [r7, #4]
uint32_t tickstart;
uint32_t pll_config;
FlagStatus pwrclkchanged = RESET;
800f294: 2300 movs r3, #0
800f296: 75fb strb r3, [r7, #23]
/* Check Null pointer */
if (RCC_OscInitStruct == NULL)
800f298: 687b ldr r3, [r7, #4]
800f29a: 2b00 cmp r3, #0
800f29c: d101 bne.n 800f2a2 <HAL_RCC_OscConfig+0x16>
{
return HAL_ERROR;
800f29e: 2301 movs r3, #1
800f2a0: e29b b.n 800f7da <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)
800f2a2: 687b ldr r3, [r7, #4]
800f2a4: 681b ldr r3, [r3, #0]
800f2a6: f003 0301 and.w r3, r3, #1
800f2aa: 2b00 cmp r3, #0
800f2ac: f000 8087 beq.w 800f3be <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)
800f2b0: 4b96 ldr r3, [pc, #600] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f2b2: 689b ldr r3, [r3, #8]
800f2b4: f003 030c and.w r3, r3, #12
800f2b8: 2b04 cmp r3, #4
800f2ba: d00c beq.n 800f2d6 <HAL_RCC_OscConfig+0x4a>
|| ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSE)))
800f2bc: 4b93 ldr r3, [pc, #588] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f2be: 689b ldr r3, [r3, #8]
800f2c0: f003 030c and.w r3, r3, #12
800f2c4: 2b08 cmp r3, #8
800f2c6: d112 bne.n 800f2ee <HAL_RCC_OscConfig+0x62>
800f2c8: 4b90 ldr r3, [pc, #576] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f2ca: 685b ldr r3, [r3, #4]
800f2cc: f403 0380 and.w r3, r3, #4194304 ; 0x400000
800f2d0: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000
800f2d4: d10b bne.n 800f2ee <HAL_RCC_OscConfig+0x62>
{
if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF))
800f2d6: 4b8d ldr r3, [pc, #564] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f2d8: 681b ldr r3, [r3, #0]
800f2da: f403 3300 and.w r3, r3, #131072 ; 0x20000
800f2de: 2b00 cmp r3, #0
800f2e0: d06c beq.n 800f3bc <HAL_RCC_OscConfig+0x130>
800f2e2: 687b ldr r3, [r7, #4]
800f2e4: 685b ldr r3, [r3, #4]
800f2e6: 2b00 cmp r3, #0
800f2e8: d168 bne.n 800f3bc <HAL_RCC_OscConfig+0x130>
{
return HAL_ERROR;
800f2ea: 2301 movs r3, #1
800f2ec: e275 b.n 800f7da <HAL_RCC_OscConfig+0x54e>
}
}
else
{
/* Set the new HSE configuration ---------------------------------------*/
__HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState);
800f2ee: 687b ldr r3, [r7, #4]
800f2f0: 685b ldr r3, [r3, #4]
800f2f2: f5b3 3f80 cmp.w r3, #65536 ; 0x10000
800f2f6: d106 bne.n 800f306 <HAL_RCC_OscConfig+0x7a>
800f2f8: 4a84 ldr r2, [pc, #528] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f2fa: 4b84 ldr r3, [pc, #528] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f2fc: 681b ldr r3, [r3, #0]
800f2fe: f443 3380 orr.w r3, r3, #65536 ; 0x10000
800f302: 6013 str r3, [r2, #0]
800f304: e02e b.n 800f364 <HAL_RCC_OscConfig+0xd8>
800f306: 687b ldr r3, [r7, #4]
800f308: 685b ldr r3, [r3, #4]
800f30a: 2b00 cmp r3, #0
800f30c: d10c bne.n 800f328 <HAL_RCC_OscConfig+0x9c>
800f30e: 4a7f ldr r2, [pc, #508] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f310: 4b7e ldr r3, [pc, #504] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f312: 681b ldr r3, [r3, #0]
800f314: f423 3380 bic.w r3, r3, #65536 ; 0x10000
800f318: 6013 str r3, [r2, #0]
800f31a: 4a7c ldr r2, [pc, #496] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f31c: 4b7b ldr r3, [pc, #492] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f31e: 681b ldr r3, [r3, #0]
800f320: f423 2380 bic.w r3, r3, #262144 ; 0x40000
800f324: 6013 str r3, [r2, #0]
800f326: e01d b.n 800f364 <HAL_RCC_OscConfig+0xd8>
800f328: 687b ldr r3, [r7, #4]
800f32a: 685b ldr r3, [r3, #4]
800f32c: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000
800f330: d10c bne.n 800f34c <HAL_RCC_OscConfig+0xc0>
800f332: 4a76 ldr r2, [pc, #472] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f334: 4b75 ldr r3, [pc, #468] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f336: 681b ldr r3, [r3, #0]
800f338: f443 2380 orr.w r3, r3, #262144 ; 0x40000
800f33c: 6013 str r3, [r2, #0]
800f33e: 4a73 ldr r2, [pc, #460] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f340: 4b72 ldr r3, [pc, #456] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f342: 681b ldr r3, [r3, #0]
800f344: f443 3380 orr.w r3, r3, #65536 ; 0x10000
800f348: 6013 str r3, [r2, #0]
800f34a: e00b b.n 800f364 <HAL_RCC_OscConfig+0xd8>
800f34c: 4a6f ldr r2, [pc, #444] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f34e: 4b6f ldr r3, [pc, #444] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f350: 681b ldr r3, [r3, #0]
800f352: f423 3380 bic.w r3, r3, #65536 ; 0x10000
800f356: 6013 str r3, [r2, #0]
800f358: 4a6c ldr r2, [pc, #432] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f35a: 4b6c ldr r3, [pc, #432] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f35c: 681b ldr r3, [r3, #0]
800f35e: f423 2380 bic.w r3, r3, #262144 ; 0x40000
800f362: 6013 str r3, [r2, #0]
/* Check the HSE State */
if (RCC_OscInitStruct->HSEState != RCC_HSE_OFF)
800f364: 687b ldr r3, [r7, #4]
800f366: 685b ldr r3, [r3, #4]
800f368: 2b00 cmp r3, #0
800f36a: d013 beq.n 800f394 <HAL_RCC_OscConfig+0x108>
{
/* Get Start Tick*/
tickstart = HAL_GetTick();
800f36c: f7fe fb9a bl 800daa4 <HAL_GetTick>
800f370: 6138 str r0, [r7, #16]
/* Wait till HSE is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET)
800f372: e008 b.n 800f386 <HAL_RCC_OscConfig+0xfa>
{
if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE)
800f374: f7fe fb96 bl 800daa4 <HAL_GetTick>
800f378: 4602 mov r2, r0
800f37a: 693b ldr r3, [r7, #16]
800f37c: 1ad3 subs r3, r2, r3
800f37e: 2b64 cmp r3, #100 ; 0x64
800f380: d901 bls.n 800f386 <HAL_RCC_OscConfig+0xfa>
{
return HAL_TIMEOUT;
800f382: 2303 movs r3, #3
800f384: e229 b.n 800f7da <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET)
800f386: 4b61 ldr r3, [pc, #388] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f388: 681b ldr r3, [r3, #0]
800f38a: f403 3300 and.w r3, r3, #131072 ; 0x20000
800f38e: 2b00 cmp r3, #0
800f390: d0f0 beq.n 800f374 <HAL_RCC_OscConfig+0xe8>
800f392: e014 b.n 800f3be <HAL_RCC_OscConfig+0x132>
}
}
else
{
/* Get Start Tick*/
tickstart = HAL_GetTick();
800f394: f7fe fb86 bl 800daa4 <HAL_GetTick>
800f398: 6138 str r0, [r7, #16]
/* Wait till HSE is bypassed or disabled */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET)
800f39a: e008 b.n 800f3ae <HAL_RCC_OscConfig+0x122>
{
if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE)
800f39c: f7fe fb82 bl 800daa4 <HAL_GetTick>
800f3a0: 4602 mov r2, r0
800f3a2: 693b ldr r3, [r7, #16]
800f3a4: 1ad3 subs r3, r2, r3
800f3a6: 2b64 cmp r3, #100 ; 0x64
800f3a8: d901 bls.n 800f3ae <HAL_RCC_OscConfig+0x122>
{
return HAL_TIMEOUT;
800f3aa: 2303 movs r3, #3
800f3ac: e215 b.n 800f7da <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET)
800f3ae: 4b57 ldr r3, [pc, #348] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f3b0: 681b ldr r3, [r3, #0]
800f3b2: f403 3300 and.w r3, r3, #131072 ; 0x20000
800f3b6: 2b00 cmp r3, #0
800f3b8: d1f0 bne.n 800f39c <HAL_RCC_OscConfig+0x110>
800f3ba: e000 b.n 800f3be <HAL_RCC_OscConfig+0x132>
if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF))
800f3bc: bf00 nop
}
}
}
}
/*----------------------------- HSI Configuration --------------------------*/
if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI)
800f3be: 687b ldr r3, [r7, #4]
800f3c0: 681b ldr r3, [r3, #0]
800f3c2: f003 0302 and.w r3, r3, #2
800f3c6: 2b00 cmp r3, #0
800f3c8: d069 beq.n 800f49e <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)
800f3ca: 4b50 ldr r3, [pc, #320] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f3cc: 689b ldr r3, [r3, #8]
800f3ce: f003 030c and.w r3, r3, #12
800f3d2: 2b00 cmp r3, #0
800f3d4: d00b beq.n 800f3ee <HAL_RCC_OscConfig+0x162>
|| ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSI)))
800f3d6: 4b4d ldr r3, [pc, #308] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f3d8: 689b ldr r3, [r3, #8]
800f3da: f003 030c and.w r3, r3, #12
800f3de: 2b08 cmp r3, #8
800f3e0: d11c bne.n 800f41c <HAL_RCC_OscConfig+0x190>
800f3e2: 4b4a ldr r3, [pc, #296] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f3e4: 685b ldr r3, [r3, #4]
800f3e6: f403 0380 and.w r3, r3, #4194304 ; 0x400000
800f3ea: 2b00 cmp r3, #0
800f3ec: d116 bne.n 800f41c <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))
800f3ee: 4b47 ldr r3, [pc, #284] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f3f0: 681b ldr r3, [r3, #0]
800f3f2: f003 0302 and.w r3, r3, #2
800f3f6: 2b00 cmp r3, #0
800f3f8: d005 beq.n 800f406 <HAL_RCC_OscConfig+0x17a>
800f3fa: 687b ldr r3, [r7, #4]
800f3fc: 68db ldr r3, [r3, #12]
800f3fe: 2b01 cmp r3, #1
800f400: d001 beq.n 800f406 <HAL_RCC_OscConfig+0x17a>
{
return HAL_ERROR;
800f402: 2301 movs r3, #1
800f404: e1e9 b.n 800f7da <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);
800f406: 4941 ldr r1, [pc, #260] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f408: 4b40 ldr r3, [pc, #256] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f40a: 681b ldr r3, [r3, #0]
800f40c: f023 02f8 bic.w r2, r3, #248 ; 0xf8
800f410: 687b ldr r3, [r7, #4]
800f412: 691b ldr r3, [r3, #16]
800f414: 00db lsls r3, r3, #3
800f416: 4313 orrs r3, r2
800f418: 600b str r3, [r1, #0]
if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON))
800f41a: e040 b.n 800f49e <HAL_RCC_OscConfig+0x212>
}
}
else
{
/* Check the HSI State */
if ((RCC_OscInitStruct->HSIState) != RCC_HSI_OFF)
800f41c: 687b ldr r3, [r7, #4]
800f41e: 68db ldr r3, [r3, #12]
800f420: 2b00 cmp r3, #0
800f422: d023 beq.n 800f46c <HAL_RCC_OscConfig+0x1e0>
{
/* Enable the Internal High Speed oscillator (HSI). */
__HAL_RCC_HSI_ENABLE();
800f424: 4a39 ldr r2, [pc, #228] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f426: 4b39 ldr r3, [pc, #228] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f428: 681b ldr r3, [r3, #0]
800f42a: f043 0301 orr.w r3, r3, #1
800f42e: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
800f430: f7fe fb38 bl 800daa4 <HAL_GetTick>
800f434: 6138 str r0, [r7, #16]
/* Wait till HSI is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET)
800f436: e008 b.n 800f44a <HAL_RCC_OscConfig+0x1be>
{
if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE)
800f438: f7fe fb34 bl 800daa4 <HAL_GetTick>
800f43c: 4602 mov r2, r0
800f43e: 693b ldr r3, [r7, #16]
800f440: 1ad3 subs r3, r2, r3
800f442: 2b02 cmp r3, #2
800f444: d901 bls.n 800f44a <HAL_RCC_OscConfig+0x1be>
{
return HAL_TIMEOUT;
800f446: 2303 movs r3, #3
800f448: e1c7 b.n 800f7da <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET)
800f44a: 4b30 ldr r3, [pc, #192] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f44c: 681b ldr r3, [r3, #0]
800f44e: f003 0302 and.w r3, r3, #2
800f452: 2b00 cmp r3, #0
800f454: d0f0 beq.n 800f438 <HAL_RCC_OscConfig+0x1ac>
}
}
/* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/
__HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue);
800f456: 492d ldr r1, [pc, #180] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f458: 4b2c ldr r3, [pc, #176] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f45a: 681b ldr r3, [r3, #0]
800f45c: f023 02f8 bic.w r2, r3, #248 ; 0xf8
800f460: 687b ldr r3, [r7, #4]
800f462: 691b ldr r3, [r3, #16]
800f464: 00db lsls r3, r3, #3
800f466: 4313 orrs r3, r2
800f468: 600b str r3, [r1, #0]
800f46a: e018 b.n 800f49e <HAL_RCC_OscConfig+0x212>
}
else
{
/* Disable the Internal High Speed oscillator (HSI). */
__HAL_RCC_HSI_DISABLE();
800f46c: 4a27 ldr r2, [pc, #156] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f46e: 4b27 ldr r3, [pc, #156] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f470: 681b ldr r3, [r3, #0]
800f472: f023 0301 bic.w r3, r3, #1
800f476: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
800f478: f7fe fb14 bl 800daa4 <HAL_GetTick>
800f47c: 6138 str r0, [r7, #16]
/* Wait till HSI is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET)
800f47e: e008 b.n 800f492 <HAL_RCC_OscConfig+0x206>
{
if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE)
800f480: f7fe fb10 bl 800daa4 <HAL_GetTick>
800f484: 4602 mov r2, r0
800f486: 693b ldr r3, [r7, #16]
800f488: 1ad3 subs r3, r2, r3
800f48a: 2b02 cmp r3, #2
800f48c: d901 bls.n 800f492 <HAL_RCC_OscConfig+0x206>
{
return HAL_TIMEOUT;
800f48e: 2303 movs r3, #3
800f490: e1a3 b.n 800f7da <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET)
800f492: 4b1e ldr r3, [pc, #120] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f494: 681b ldr r3, [r3, #0]
800f496: f003 0302 and.w r3, r3, #2
800f49a: 2b00 cmp r3, #0
800f49c: d1f0 bne.n 800f480 <HAL_RCC_OscConfig+0x1f4>
}
}
}
}
/*------------------------------ LSI Configuration -------------------------*/
if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI)
800f49e: 687b ldr r3, [r7, #4]
800f4a0: 681b ldr r3, [r3, #0]
800f4a2: f003 0308 and.w r3, r3, #8
800f4a6: 2b00 cmp r3, #0
800f4a8: d038 beq.n 800f51c <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)
800f4aa: 687b ldr r3, [r7, #4]
800f4ac: 695b ldr r3, [r3, #20]
800f4ae: 2b00 cmp r3, #0
800f4b0: d019 beq.n 800f4e6 <HAL_RCC_OscConfig+0x25a>
{
/* Enable the Internal Low Speed oscillator (LSI). */
__HAL_RCC_LSI_ENABLE();
800f4b2: 4a16 ldr r2, [pc, #88] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f4b4: 4b15 ldr r3, [pc, #84] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f4b6: 6f5b ldr r3, [r3, #116] ; 0x74
800f4b8: f043 0301 orr.w r3, r3, #1
800f4bc: 6753 str r3, [r2, #116] ; 0x74
/* Get Start Tick*/
tickstart = HAL_GetTick();
800f4be: f7fe faf1 bl 800daa4 <HAL_GetTick>
800f4c2: 6138 str r0, [r7, #16]
/* Wait till LSI is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET)
800f4c4: e008 b.n 800f4d8 <HAL_RCC_OscConfig+0x24c>
{
if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE)
800f4c6: f7fe faed bl 800daa4 <HAL_GetTick>
800f4ca: 4602 mov r2, r0
800f4cc: 693b ldr r3, [r7, #16]
800f4ce: 1ad3 subs r3, r2, r3
800f4d0: 2b02 cmp r3, #2
800f4d2: d901 bls.n 800f4d8 <HAL_RCC_OscConfig+0x24c>
{
return HAL_TIMEOUT;
800f4d4: 2303 movs r3, #3
800f4d6: e180 b.n 800f7da <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET)
800f4d8: 4b0c ldr r3, [pc, #48] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f4da: 6f5b ldr r3, [r3, #116] ; 0x74
800f4dc: f003 0302 and.w r3, r3, #2
800f4e0: 2b00 cmp r3, #0
800f4e2: d0f0 beq.n 800f4c6 <HAL_RCC_OscConfig+0x23a>
800f4e4: e01a b.n 800f51c <HAL_RCC_OscConfig+0x290>
}
}
else
{
/* Disable the Internal Low Speed oscillator (LSI). */
__HAL_RCC_LSI_DISABLE();
800f4e6: 4a09 ldr r2, [pc, #36] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f4e8: 4b08 ldr r3, [pc, #32] ; (800f50c <HAL_RCC_OscConfig+0x280>)
800f4ea: 6f5b ldr r3, [r3, #116] ; 0x74
800f4ec: f023 0301 bic.w r3, r3, #1
800f4f0: 6753 str r3, [r2, #116] ; 0x74
/* Get Start Tick*/
tickstart = HAL_GetTick();
800f4f2: f7fe fad7 bl 800daa4 <HAL_GetTick>
800f4f6: 6138 str r0, [r7, #16]
/* Wait till LSI is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET)
800f4f8: e00a b.n 800f510 <HAL_RCC_OscConfig+0x284>
{
if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE)
800f4fa: f7fe fad3 bl 800daa4 <HAL_GetTick>
800f4fe: 4602 mov r2, r0
800f500: 693b ldr r3, [r7, #16]
800f502: 1ad3 subs r3, r2, r3
800f504: 2b02 cmp r3, #2
800f506: d903 bls.n 800f510 <HAL_RCC_OscConfig+0x284>
{
return HAL_TIMEOUT;
800f508: 2303 movs r3, #3
800f50a: e166 b.n 800f7da <HAL_RCC_OscConfig+0x54e>
800f50c: 40023800 .word 0x40023800
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET)
800f510: 4b92 ldr r3, [pc, #584] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f512: 6f5b ldr r3, [r3, #116] ; 0x74
800f514: f003 0302 and.w r3, r3, #2
800f518: 2b00 cmp r3, #0
800f51a: d1ee bne.n 800f4fa <HAL_RCC_OscConfig+0x26e>
}
}
}
}
/*------------------------------ LSE Configuration -------------------------*/
if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE)
800f51c: 687b ldr r3, [r7, #4]
800f51e: 681b ldr r3, [r3, #0]
800f520: f003 0304 and.w r3, r3, #4
800f524: 2b00 cmp r3, #0
800f526: f000 80a4 beq.w 800f672 <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())
800f52a: 4b8c ldr r3, [pc, #560] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f52c: 6c1b ldr r3, [r3, #64] ; 0x40
800f52e: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
800f532: 2b00 cmp r3, #0
800f534: d10d bne.n 800f552 <HAL_RCC_OscConfig+0x2c6>
{
/* Enable Power Clock*/
__HAL_RCC_PWR_CLK_ENABLE();
800f536: 4a89 ldr r2, [pc, #548] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f538: 4b88 ldr r3, [pc, #544] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f53a: 6c1b ldr r3, [r3, #64] ; 0x40
800f53c: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
800f540: 6413 str r3, [r2, #64] ; 0x40
800f542: 4b86 ldr r3, [pc, #536] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f544: 6c1b ldr r3, [r3, #64] ; 0x40
800f546: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
800f54a: 60bb str r3, [r7, #8]
800f54c: 68bb ldr r3, [r7, #8]
pwrclkchanged = SET;
800f54e: 2301 movs r3, #1
800f550: 75fb strb r3, [r7, #23]
}
if (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP))
800f552: 4b83 ldr r3, [pc, #524] ; (800f760 <HAL_RCC_OscConfig+0x4d4>)
800f554: 681b ldr r3, [r3, #0]
800f556: f403 7380 and.w r3, r3, #256 ; 0x100
800f55a: 2b00 cmp r3, #0
800f55c: d118 bne.n 800f590 <HAL_RCC_OscConfig+0x304>
{
/* Enable write access to Backup domain */
PWR->CR1 |= PWR_CR1_DBP;
800f55e: 4a80 ldr r2, [pc, #512] ; (800f760 <HAL_RCC_OscConfig+0x4d4>)
800f560: 4b7f ldr r3, [pc, #508] ; (800f760 <HAL_RCC_OscConfig+0x4d4>)
800f562: 681b ldr r3, [r3, #0]
800f564: f443 7380 orr.w r3, r3, #256 ; 0x100
800f568: 6013 str r3, [r2, #0]
/* Wait for Backup domain Write protection disable */
tickstart = HAL_GetTick();
800f56a: f7fe fa9b bl 800daa4 <HAL_GetTick>
800f56e: 6138 str r0, [r7, #16]
while (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP))
800f570: e008 b.n 800f584 <HAL_RCC_OscConfig+0x2f8>
{
if ((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE)
800f572: f7fe fa97 bl 800daa4 <HAL_GetTick>
800f576: 4602 mov r2, r0
800f578: 693b ldr r3, [r7, #16]
800f57a: 1ad3 subs r3, r2, r3
800f57c: 2b64 cmp r3, #100 ; 0x64
800f57e: d901 bls.n 800f584 <HAL_RCC_OscConfig+0x2f8>
{
return HAL_TIMEOUT;
800f580: 2303 movs r3, #3
800f582: e12a b.n 800f7da <HAL_RCC_OscConfig+0x54e>
while (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP))
800f584: 4b76 ldr r3, [pc, #472] ; (800f760 <HAL_RCC_OscConfig+0x4d4>)
800f586: 681b ldr r3, [r3, #0]
800f588: f403 7380 and.w r3, r3, #256 ; 0x100
800f58c: 2b00 cmp r3, #0
800f58e: d0f0 beq.n 800f572 <HAL_RCC_OscConfig+0x2e6>
}
}
}
/* Set the new LSE configuration -----------------------------------------*/
__HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState);
800f590: 687b ldr r3, [r7, #4]
800f592: 689b ldr r3, [r3, #8]
800f594: 2b01 cmp r3, #1
800f596: d106 bne.n 800f5a6 <HAL_RCC_OscConfig+0x31a>
800f598: 4a70 ldr r2, [pc, #448] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f59a: 4b70 ldr r3, [pc, #448] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f59c: 6f1b ldr r3, [r3, #112] ; 0x70
800f59e: f043 0301 orr.w r3, r3, #1
800f5a2: 6713 str r3, [r2, #112] ; 0x70
800f5a4: e02d b.n 800f602 <HAL_RCC_OscConfig+0x376>
800f5a6: 687b ldr r3, [r7, #4]
800f5a8: 689b ldr r3, [r3, #8]
800f5aa: 2b00 cmp r3, #0
800f5ac: d10c bne.n 800f5c8 <HAL_RCC_OscConfig+0x33c>
800f5ae: 4a6b ldr r2, [pc, #428] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f5b0: 4b6a ldr r3, [pc, #424] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f5b2: 6f1b ldr r3, [r3, #112] ; 0x70
800f5b4: f023 0301 bic.w r3, r3, #1
800f5b8: 6713 str r3, [r2, #112] ; 0x70
800f5ba: 4a68 ldr r2, [pc, #416] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f5bc: 4b67 ldr r3, [pc, #412] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f5be: 6f1b ldr r3, [r3, #112] ; 0x70
800f5c0: f023 0304 bic.w r3, r3, #4
800f5c4: 6713 str r3, [r2, #112] ; 0x70
800f5c6: e01c b.n 800f602 <HAL_RCC_OscConfig+0x376>
800f5c8: 687b ldr r3, [r7, #4]
800f5ca: 689b ldr r3, [r3, #8]
800f5cc: 2b05 cmp r3, #5
800f5ce: d10c bne.n 800f5ea <HAL_RCC_OscConfig+0x35e>
800f5d0: 4a62 ldr r2, [pc, #392] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f5d2: 4b62 ldr r3, [pc, #392] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f5d4: 6f1b ldr r3, [r3, #112] ; 0x70
800f5d6: f043 0304 orr.w r3, r3, #4
800f5da: 6713 str r3, [r2, #112] ; 0x70
800f5dc: 4a5f ldr r2, [pc, #380] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f5de: 4b5f ldr r3, [pc, #380] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f5e0: 6f1b ldr r3, [r3, #112] ; 0x70
800f5e2: f043 0301 orr.w r3, r3, #1
800f5e6: 6713 str r3, [r2, #112] ; 0x70
800f5e8: e00b b.n 800f602 <HAL_RCC_OscConfig+0x376>
800f5ea: 4a5c ldr r2, [pc, #368] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f5ec: 4b5b ldr r3, [pc, #364] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f5ee: 6f1b ldr r3, [r3, #112] ; 0x70
800f5f0: f023 0301 bic.w r3, r3, #1
800f5f4: 6713 str r3, [r2, #112] ; 0x70
800f5f6: 4a59 ldr r2, [pc, #356] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f5f8: 4b58 ldr r3, [pc, #352] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f5fa: 6f1b ldr r3, [r3, #112] ; 0x70
800f5fc: f023 0304 bic.w r3, r3, #4
800f600: 6713 str r3, [r2, #112] ; 0x70
/* Check the LSE State */
if ((RCC_OscInitStruct->LSEState) != RCC_LSE_OFF)
800f602: 687b ldr r3, [r7, #4]
800f604: 689b ldr r3, [r3, #8]
800f606: 2b00 cmp r3, #0
800f608: d015 beq.n 800f636 <HAL_RCC_OscConfig+0x3aa>
{
/* Get Start Tick*/
tickstart = HAL_GetTick();
800f60a: f7fe fa4b bl 800daa4 <HAL_GetTick>
800f60e: 6138 str r0, [r7, #16]
/* Wait till LSE is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET)
800f610: e00a b.n 800f628 <HAL_RCC_OscConfig+0x39c>
{
if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE)
800f612: f7fe fa47 bl 800daa4 <HAL_GetTick>
800f616: 4602 mov r2, r0
800f618: 693b ldr r3, [r7, #16]
800f61a: 1ad3 subs r3, r2, r3
800f61c: f241 3288 movw r2, #5000 ; 0x1388
800f620: 4293 cmp r3, r2
800f622: d901 bls.n 800f628 <HAL_RCC_OscConfig+0x39c>
{
return HAL_TIMEOUT;
800f624: 2303 movs r3, #3
800f626: e0d8 b.n 800f7da <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET)
800f628: 4b4c ldr r3, [pc, #304] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f62a: 6f1b ldr r3, [r3, #112] ; 0x70
800f62c: f003 0302 and.w r3, r3, #2
800f630: 2b00 cmp r3, #0
800f632: d0ee beq.n 800f612 <HAL_RCC_OscConfig+0x386>
800f634: e014 b.n 800f660 <HAL_RCC_OscConfig+0x3d4>
}
}
else
{
/* Get Start Tick*/
tickstart = HAL_GetTick();
800f636: f7fe fa35 bl 800daa4 <HAL_GetTick>
800f63a: 6138 str r0, [r7, #16]
/* Wait till LSE is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET)
800f63c: e00a b.n 800f654 <HAL_RCC_OscConfig+0x3c8>
{
if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE)
800f63e: f7fe fa31 bl 800daa4 <HAL_GetTick>
800f642: 4602 mov r2, r0
800f644: 693b ldr r3, [r7, #16]
800f646: 1ad3 subs r3, r2, r3
800f648: f241 3288 movw r2, #5000 ; 0x1388
800f64c: 4293 cmp r3, r2
800f64e: d901 bls.n 800f654 <HAL_RCC_OscConfig+0x3c8>
{
return HAL_TIMEOUT;
800f650: 2303 movs r3, #3
800f652: e0c2 b.n 800f7da <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET)
800f654: 4b41 ldr r3, [pc, #260] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f656: 6f1b ldr r3, [r3, #112] ; 0x70
800f658: f003 0302 and.w r3, r3, #2
800f65c: 2b00 cmp r3, #0
800f65e: d1ee bne.n 800f63e <HAL_RCC_OscConfig+0x3b2>
}
}
}
/* Restore clock configuration if changed */
if (pwrclkchanged == SET)
800f660: 7dfb ldrb r3, [r7, #23]
800f662: 2b01 cmp r3, #1
800f664: d105 bne.n 800f672 <HAL_RCC_OscConfig+0x3e6>
{
__HAL_RCC_PWR_CLK_DISABLE();
800f666: 4a3d ldr r2, [pc, #244] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f668: 4b3c ldr r3, [pc, #240] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f66a: 6c1b ldr r3, [r3, #64] ; 0x40
800f66c: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000
800f670: 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)
800f672: 687b ldr r3, [r7, #4]
800f674: 699b ldr r3, [r3, #24]
800f676: 2b00 cmp r3, #0
800f678: f000 80ae beq.w 800f7d8 <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)
800f67c: 4b37 ldr r3, [pc, #220] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f67e: 689b ldr r3, [r3, #8]
800f680: f003 030c and.w r3, r3, #12
800f684: 2b08 cmp r3, #8
800f686: d06d beq.n 800f764 <HAL_RCC_OscConfig+0x4d8>
{
if ((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON)
800f688: 687b ldr r3, [r7, #4]
800f68a: 699b ldr r3, [r3, #24]
800f68c: 2b02 cmp r3, #2
800f68e: d14b bne.n 800f728 <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();
800f690: 4a32 ldr r2, [pc, #200] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f692: 4b32 ldr r3, [pc, #200] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f694: 681b ldr r3, [r3, #0]
800f696: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000
800f69a: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
800f69c: f7fe fa02 bl 800daa4 <HAL_GetTick>
800f6a0: 6138 str r0, [r7, #16]
/* Wait till PLL is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
800f6a2: e008 b.n 800f6b6 <HAL_RCC_OscConfig+0x42a>
{
if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE)
800f6a4: f7fe f9fe bl 800daa4 <HAL_GetTick>
800f6a8: 4602 mov r2, r0
800f6aa: 693b ldr r3, [r7, #16]
800f6ac: 1ad3 subs r3, r2, r3
800f6ae: 2b02 cmp r3, #2
800f6b0: d901 bls.n 800f6b6 <HAL_RCC_OscConfig+0x42a>
{
return HAL_TIMEOUT;
800f6b2: 2303 movs r3, #3
800f6b4: e091 b.n 800f7da <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
800f6b6: 4b29 ldr r3, [pc, #164] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f6b8: 681b ldr r3, [r3, #0]
800f6ba: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
800f6be: 2b00 cmp r3, #0
800f6c0: d1f0 bne.n 800f6a4 <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,
800f6c2: 4926 ldr r1, [pc, #152] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f6c4: 687b ldr r3, [r7, #4]
800f6c6: 69da ldr r2, [r3, #28]
800f6c8: 687b ldr r3, [r7, #4]
800f6ca: 6a1b ldr r3, [r3, #32]
800f6cc: 431a orrs r2, r3
800f6ce: 687b ldr r3, [r7, #4]
800f6d0: 6a5b ldr r3, [r3, #36] ; 0x24
800f6d2: 019b lsls r3, r3, #6
800f6d4: 431a orrs r2, r3
800f6d6: 687b ldr r3, [r7, #4]
800f6d8: 6a9b ldr r3, [r3, #40] ; 0x28
800f6da: 085b lsrs r3, r3, #1
800f6dc: 3b01 subs r3, #1
800f6de: 041b lsls r3, r3, #16
800f6e0: 431a orrs r2, r3
800f6e2: 687b ldr r3, [r7, #4]
800f6e4: 6adb ldr r3, [r3, #44] ; 0x2c
800f6e6: 061b lsls r3, r3, #24
800f6e8: 431a orrs r2, r3
800f6ea: 687b ldr r3, [r7, #4]
800f6ec: 6b1b ldr r3, [r3, #48] ; 0x30
800f6ee: 071b lsls r3, r3, #28
800f6f0: 4313 orrs r3, r2
800f6f2: 604b str r3, [r1, #4]
RCC_OscInitStruct->PLL.PLLP,
RCC_OscInitStruct->PLL.PLLQ);
#endif
/* Enable the main PLL. */
__HAL_RCC_PLL_ENABLE();
800f6f4: 4a19 ldr r2, [pc, #100] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f6f6: 4b19 ldr r3, [pc, #100] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f6f8: 681b ldr r3, [r3, #0]
800f6fa: f043 7380 orr.w r3, r3, #16777216 ; 0x1000000
800f6fe: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
800f700: f7fe f9d0 bl 800daa4 <HAL_GetTick>
800f704: 6138 str r0, [r7, #16]
/* Wait till PLL is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET)
800f706: e008 b.n 800f71a <HAL_RCC_OscConfig+0x48e>
{
if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE)
800f708: f7fe f9cc bl 800daa4 <HAL_GetTick>
800f70c: 4602 mov r2, r0
800f70e: 693b ldr r3, [r7, #16]
800f710: 1ad3 subs r3, r2, r3
800f712: 2b02 cmp r3, #2
800f714: d901 bls.n 800f71a <HAL_RCC_OscConfig+0x48e>
{
return HAL_TIMEOUT;
800f716: 2303 movs r3, #3
800f718: e05f b.n 800f7da <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET)
800f71a: 4b10 ldr r3, [pc, #64] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f71c: 681b ldr r3, [r3, #0]
800f71e: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
800f722: 2b00 cmp r3, #0
800f724: d0f0 beq.n 800f708 <HAL_RCC_OscConfig+0x47c>
800f726: e057 b.n 800f7d8 <HAL_RCC_OscConfig+0x54c>
}
}
else
{
/* Disable the main PLL. */
__HAL_RCC_PLL_DISABLE();
800f728: 4a0c ldr r2, [pc, #48] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f72a: 4b0c ldr r3, [pc, #48] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f72c: 681b ldr r3, [r3, #0]
800f72e: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000
800f732: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
800f734: f7fe f9b6 bl 800daa4 <HAL_GetTick>
800f738: 6138 str r0, [r7, #16]
/* Wait till PLL is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
800f73a: e008 b.n 800f74e <HAL_RCC_OscConfig+0x4c2>
{
if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE)
800f73c: f7fe f9b2 bl 800daa4 <HAL_GetTick>
800f740: 4602 mov r2, r0
800f742: 693b ldr r3, [r7, #16]
800f744: 1ad3 subs r3, r2, r3
800f746: 2b02 cmp r3, #2
800f748: d901 bls.n 800f74e <HAL_RCC_OscConfig+0x4c2>
{
return HAL_TIMEOUT;
800f74a: 2303 movs r3, #3
800f74c: e045 b.n 800f7da <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
800f74e: 4b03 ldr r3, [pc, #12] ; (800f75c <HAL_RCC_OscConfig+0x4d0>)
800f750: 681b ldr r3, [r3, #0]
800f752: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
800f756: 2b00 cmp r3, #0
800f758: d1f0 bne.n 800f73c <HAL_RCC_OscConfig+0x4b0>
800f75a: e03d b.n 800f7d8 <HAL_RCC_OscConfig+0x54c>
800f75c: 40023800 .word 0x40023800
800f760: 40007000 .word 0x40007000
}
}
else
{
/* Do not return HAL_ERROR if request repeats the current configuration */
pll_config = RCC->PLLCFGR;
800f764: 4b1f ldr r3, [pc, #124] ; (800f7e4 <HAL_RCC_OscConfig+0x558>)
800f766: 685b ldr r3, [r3, #4]
800f768: 60fb str r3, [r7, #12]
#if defined (RCC_PLLCFGR_PLLR)
if (((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) ||
800f76a: 687b ldr r3, [r7, #4]
800f76c: 699b ldr r3, [r3, #24]
800f76e: 2b01 cmp r3, #1
800f770: d030 beq.n 800f7d4 <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) ||
800f772: 68fb ldr r3, [r7, #12]
800f774: f403 0280 and.w r2, r3, #4194304 ; 0x400000
800f778: 687b ldr r3, [r7, #4]
800f77a: 69db ldr r3, [r3, #28]
if (((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) ||
800f77c: 429a cmp r2, r3
800f77e: d129 bne.n 800f7d4 <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != RCC_OscInitStruct->PLL.PLLM) ||
800f780: 68fb ldr r3, [r7, #12]
800f782: f003 023f and.w r2, r3, #63 ; 0x3f
800f786: 687b ldr r3, [r7, #4]
800f788: 6a1b ldr r3, [r3, #32]
(READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) ||
800f78a: 429a cmp r2, r3
800f78c: d122 bne.n 800f7d4 <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) ||
800f78e: 68fa ldr r2, [r7, #12]
800f790: f647 73c0 movw r3, #32704 ; 0x7fc0
800f794: 4013 ands r3, r2
800f796: 687a ldr r2, [r7, #4]
800f798: 6a52 ldr r2, [r2, #36] ; 0x24
800f79a: 0192 lsls r2, r2, #6
(READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != RCC_OscInitStruct->PLL.PLLM) ||
800f79c: 4293 cmp r3, r2
800f79e: d119 bne.n 800f7d4 <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != ((((RCC_OscInitStruct->PLL.PLLP) >> 1U) - 1U) << RCC_PLLCFGR_PLLP_Pos)) ||
800f7a0: 68fb ldr r3, [r7, #12]
800f7a2: f403 3240 and.w r2, r3, #196608 ; 0x30000
800f7a6: 687b ldr r3, [r7, #4]
800f7a8: 6a9b ldr r3, [r3, #40] ; 0x28
800f7aa: 085b lsrs r3, r3, #1
800f7ac: 3b01 subs r3, #1
800f7ae: 041b lsls r3, r3, #16
(READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) ||
800f7b0: 429a cmp r2, r3
800f7b2: d10f bne.n 800f7d4 <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != (RCC_OscInitStruct->PLL.PLLQ << RCC_PLLCFGR_PLLQ_Pos)) ||
800f7b4: 68fb ldr r3, [r7, #12]
800f7b6: f003 6270 and.w r2, r3, #251658240 ; 0xf000000
800f7ba: 687b ldr r3, [r7, #4]
800f7bc: 6adb ldr r3, [r3, #44] ; 0x2c
800f7be: 061b lsls r3, r3, #24
(READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != ((((RCC_OscInitStruct->PLL.PLLP) >> 1U) - 1U) << RCC_PLLCFGR_PLLP_Pos)) ||
800f7c0: 429a cmp r2, r3
800f7c2: d107 bne.n 800f7d4 <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLR) != (RCC_OscInitStruct->PLL.PLLR << RCC_PLLCFGR_PLLR_Pos)))
800f7c4: 68fb ldr r3, [r7, #12]
800f7c6: f003 42e0 and.w r2, r3, #1879048192 ; 0x70000000
800f7ca: 687b ldr r3, [r7, #4]
800f7cc: 6b1b ldr r3, [r3, #48] ; 0x30
800f7ce: 071b lsls r3, r3, #28
(READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != (RCC_OscInitStruct->PLL.PLLQ << RCC_PLLCFGR_PLLQ_Pos)) ||
800f7d0: 429a cmp r2, r3
800f7d2: d001 beq.n 800f7d8 <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;
800f7d4: 2301 movs r3, #1
800f7d6: e000 b.n 800f7da <HAL_RCC_OscConfig+0x54e>
}
}
}
return HAL_OK;
800f7d8: 2300 movs r3, #0
}
800f7da: 4618 mov r0, r3
800f7dc: 3718 adds r7, #24
800f7de: 46bd mov sp, r7
800f7e0: bd80 pop {r7, pc}
800f7e2: bf00 nop
800f7e4: 40023800 .word 0x40023800
0800f7e8 <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)
{
800f7e8: b580 push {r7, lr}
800f7ea: b084 sub sp, #16
800f7ec: af00 add r7, sp, #0
800f7ee: 6078 str r0, [r7, #4]
800f7f0: 6039 str r1, [r7, #0]
uint32_t tickstart = 0;
800f7f2: 2300 movs r3, #0
800f7f4: 60fb str r3, [r7, #12]
/* Check Null pointer */
if (RCC_ClkInitStruct == NULL)
800f7f6: 687b ldr r3, [r7, #4]
800f7f8: 2b00 cmp r3, #0
800f7fa: d101 bne.n 800f800 <HAL_RCC_ClockConfig+0x18>
{
return HAL_ERROR;
800f7fc: 2301 movs r3, #1
800f7fe: e0d0 b.n 800f9a2 <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())
800f800: 4b6a ldr r3, [pc, #424] ; (800f9ac <HAL_RCC_ClockConfig+0x1c4>)
800f802: 681b ldr r3, [r3, #0]
800f804: f003 020f and.w r2, r3, #15
800f808: 683b ldr r3, [r7, #0]
800f80a: 429a cmp r2, r3
800f80c: d210 bcs.n 800f830 <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);
800f80e: 4967 ldr r1, [pc, #412] ; (800f9ac <HAL_RCC_ClockConfig+0x1c4>)
800f810: 4b66 ldr r3, [pc, #408] ; (800f9ac <HAL_RCC_ClockConfig+0x1c4>)
800f812: 681b ldr r3, [r3, #0]
800f814: f023 020f bic.w r2, r3, #15
800f818: 683b ldr r3, [r7, #0]
800f81a: 4313 orrs r3, r2
800f81c: 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)
800f81e: 4b63 ldr r3, [pc, #396] ; (800f9ac <HAL_RCC_ClockConfig+0x1c4>)
800f820: 681b ldr r3, [r3, #0]
800f822: f003 020f and.w r2, r3, #15
800f826: 683b ldr r3, [r7, #0]
800f828: 429a cmp r2, r3
800f82a: d001 beq.n 800f830 <HAL_RCC_ClockConfig+0x48>
{
return HAL_ERROR;
800f82c: 2301 movs r3, #1
800f82e: e0b8 b.n 800f9a2 <HAL_RCC_ClockConfig+0x1ba>
}
}
/*-------------------------- HCLK Configuration --------------------------*/
if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK)
800f830: 687b ldr r3, [r7, #4]
800f832: 681b ldr r3, [r3, #0]
800f834: f003 0302 and.w r3, r3, #2
800f838: 2b00 cmp r3, #0
800f83a: d020 beq.n 800f87e <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)
800f83c: 687b ldr r3, [r7, #4]
800f83e: 681b ldr r3, [r3, #0]
800f840: f003 0304 and.w r3, r3, #4
800f844: 2b00 cmp r3, #0
800f846: d005 beq.n 800f854 <HAL_RCC_ClockConfig+0x6c>
{
MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16);
800f848: 4a59 ldr r2, [pc, #356] ; (800f9b0 <HAL_RCC_ClockConfig+0x1c8>)
800f84a: 4b59 ldr r3, [pc, #356] ; (800f9b0 <HAL_RCC_ClockConfig+0x1c8>)
800f84c: 689b ldr r3, [r3, #8]
800f84e: f443 53e0 orr.w r3, r3, #7168 ; 0x1c00
800f852: 6093 str r3, [r2, #8]
}
if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2)
800f854: 687b ldr r3, [r7, #4]
800f856: 681b ldr r3, [r3, #0]
800f858: f003 0308 and.w r3, r3, #8
800f85c: 2b00 cmp r3, #0
800f85e: d005 beq.n 800f86c <HAL_RCC_ClockConfig+0x84>
{
MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, (RCC_HCLK_DIV16 << 3));
800f860: 4a53 ldr r2, [pc, #332] ; (800f9b0 <HAL_RCC_ClockConfig+0x1c8>)
800f862: 4b53 ldr r3, [pc, #332] ; (800f9b0 <HAL_RCC_ClockConfig+0x1c8>)
800f864: 689b ldr r3, [r3, #8]
800f866: f443 4360 orr.w r3, r3, #57344 ; 0xe000
800f86a: 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);
800f86c: 4950 ldr r1, [pc, #320] ; (800f9b0 <HAL_RCC_ClockConfig+0x1c8>)
800f86e: 4b50 ldr r3, [pc, #320] ; (800f9b0 <HAL_RCC_ClockConfig+0x1c8>)
800f870: 689b ldr r3, [r3, #8]
800f872: f023 02f0 bic.w r2, r3, #240 ; 0xf0
800f876: 687b ldr r3, [r7, #4]
800f878: 689b ldr r3, [r3, #8]
800f87a: 4313 orrs r3, r2
800f87c: 608b str r3, [r1, #8]
}
/*------------------------- SYSCLK Configuration ---------------------------*/
if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK)
800f87e: 687b ldr r3, [r7, #4]
800f880: 681b ldr r3, [r3, #0]
800f882: f003 0301 and.w r3, r3, #1
800f886: 2b00 cmp r3, #0
800f888: d040 beq.n 800f90c <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)
800f88a: 687b ldr r3, [r7, #4]
800f88c: 685b ldr r3, [r3, #4]
800f88e: 2b01 cmp r3, #1
800f890: d107 bne.n 800f8a2 <HAL_RCC_ClockConfig+0xba>
{
/* Check the HSE ready flag */
if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET)
800f892: 4b47 ldr r3, [pc, #284] ; (800f9b0 <HAL_RCC_ClockConfig+0x1c8>)
800f894: 681b ldr r3, [r3, #0]
800f896: f403 3300 and.w r3, r3, #131072 ; 0x20000
800f89a: 2b00 cmp r3, #0
800f89c: d115 bne.n 800f8ca <HAL_RCC_ClockConfig+0xe2>
{
return HAL_ERROR;
800f89e: 2301 movs r3, #1
800f8a0: e07f b.n 800f9a2 <HAL_RCC_ClockConfig+0x1ba>
}
}
/* PLL is selected as System Clock Source */
else if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK)
800f8a2: 687b ldr r3, [r7, #4]
800f8a4: 685b ldr r3, [r3, #4]
800f8a6: 2b02 cmp r3, #2
800f8a8: d107 bne.n 800f8ba <HAL_RCC_ClockConfig+0xd2>
{
/* Check the PLL ready flag */
if (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET)
800f8aa: 4b41 ldr r3, [pc, #260] ; (800f9b0 <HAL_RCC_ClockConfig+0x1c8>)
800f8ac: 681b ldr r3, [r3, #0]
800f8ae: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
800f8b2: 2b00 cmp r3, #0
800f8b4: d109 bne.n 800f8ca <HAL_RCC_ClockConfig+0xe2>
{
return HAL_ERROR;
800f8b6: 2301 movs r3, #1
800f8b8: e073 b.n 800f9a2 <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)
800f8ba: 4b3d ldr r3, [pc, #244] ; (800f9b0 <HAL_RCC_ClockConfig+0x1c8>)
800f8bc: 681b ldr r3, [r3, #0]
800f8be: f003 0302 and.w r3, r3, #2
800f8c2: 2b00 cmp r3, #0
800f8c4: d101 bne.n 800f8ca <HAL_RCC_ClockConfig+0xe2>
{
return HAL_ERROR;
800f8c6: 2301 movs r3, #1
800f8c8: e06b b.n 800f9a2 <HAL_RCC_ClockConfig+0x1ba>
}
}
__HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource);
800f8ca: 4939 ldr r1, [pc, #228] ; (800f9b0 <HAL_RCC_ClockConfig+0x1c8>)
800f8cc: 4b38 ldr r3, [pc, #224] ; (800f9b0 <HAL_RCC_ClockConfig+0x1c8>)
800f8ce: 689b ldr r3, [r3, #8]
800f8d0: f023 0203 bic.w r2, r3, #3
800f8d4: 687b ldr r3, [r7, #4]
800f8d6: 685b ldr r3, [r3, #4]
800f8d8: 4313 orrs r3, r2
800f8da: 608b str r3, [r1, #8]
/* Get Start Tick*/
tickstart = HAL_GetTick();
800f8dc: f7fe f8e2 bl 800daa4 <HAL_GetTick>
800f8e0: 60f8 str r0, [r7, #12]
while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos))
800f8e2: e00a b.n 800f8fa <HAL_RCC_ClockConfig+0x112>
{
if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE)
800f8e4: f7fe f8de bl 800daa4 <HAL_GetTick>
800f8e8: 4602 mov r2, r0
800f8ea: 68fb ldr r3, [r7, #12]
800f8ec: 1ad3 subs r3, r2, r3
800f8ee: f241 3288 movw r2, #5000 ; 0x1388
800f8f2: 4293 cmp r3, r2
800f8f4: d901 bls.n 800f8fa <HAL_RCC_ClockConfig+0x112>
{
return HAL_TIMEOUT;
800f8f6: 2303 movs r3, #3
800f8f8: e053 b.n 800f9a2 <HAL_RCC_ClockConfig+0x1ba>
while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos))
800f8fa: 4b2d ldr r3, [pc, #180] ; (800f9b0 <HAL_RCC_ClockConfig+0x1c8>)
800f8fc: 689b ldr r3, [r3, #8]
800f8fe: f003 020c and.w r2, r3, #12
800f902: 687b ldr r3, [r7, #4]
800f904: 685b ldr r3, [r3, #4]
800f906: 009b lsls r3, r3, #2
800f908: 429a cmp r2, r3
800f90a: d1eb bne.n 800f8e4 <HAL_RCC_ClockConfig+0xfc>
}
}
}
/* Decreasing the number of wait states because of lower CPU frequency */
if (FLatency < __HAL_FLASH_GET_LATENCY())
800f90c: 4b27 ldr r3, [pc, #156] ; (800f9ac <HAL_RCC_ClockConfig+0x1c4>)
800f90e: 681b ldr r3, [r3, #0]
800f910: f003 020f and.w r2, r3, #15
800f914: 683b ldr r3, [r7, #0]
800f916: 429a cmp r2, r3
800f918: d910 bls.n 800f93c <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);
800f91a: 4924 ldr r1, [pc, #144] ; (800f9ac <HAL_RCC_ClockConfig+0x1c4>)
800f91c: 4b23 ldr r3, [pc, #140] ; (800f9ac <HAL_RCC_ClockConfig+0x1c4>)
800f91e: 681b ldr r3, [r3, #0]
800f920: f023 020f bic.w r2, r3, #15
800f924: 683b ldr r3, [r7, #0]
800f926: 4313 orrs r3, r2
800f928: 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)
800f92a: 4b20 ldr r3, [pc, #128] ; (800f9ac <HAL_RCC_ClockConfig+0x1c4>)
800f92c: 681b ldr r3, [r3, #0]
800f92e: f003 020f and.w r2, r3, #15
800f932: 683b ldr r3, [r7, #0]
800f934: 429a cmp r2, r3
800f936: d001 beq.n 800f93c <HAL_RCC_ClockConfig+0x154>
{
return HAL_ERROR;
800f938: 2301 movs r3, #1
800f93a: e032 b.n 800f9a2 <HAL_RCC_ClockConfig+0x1ba>
}
}
/*-------------------------- PCLK1 Configuration ---------------------------*/
if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1)
800f93c: 687b ldr r3, [r7, #4]
800f93e: 681b ldr r3, [r3, #0]
800f940: f003 0304 and.w r3, r3, #4
800f944: 2b00 cmp r3, #0
800f946: d008 beq.n 800f95a <HAL_RCC_ClockConfig+0x172>
{
assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider));
MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider);
800f948: 4919 ldr r1, [pc, #100] ; (800f9b0 <HAL_RCC_ClockConfig+0x1c8>)
800f94a: 4b19 ldr r3, [pc, #100] ; (800f9b0 <HAL_RCC_ClockConfig+0x1c8>)
800f94c: 689b ldr r3, [r3, #8]
800f94e: f423 52e0 bic.w r2, r3, #7168 ; 0x1c00
800f952: 687b ldr r3, [r7, #4]
800f954: 68db ldr r3, [r3, #12]
800f956: 4313 orrs r3, r2
800f958: 608b str r3, [r1, #8]
}
/*-------------------------- PCLK2 Configuration ---------------------------*/
if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2)
800f95a: 687b ldr r3, [r7, #4]
800f95c: 681b ldr r3, [r3, #0]
800f95e: f003 0308 and.w r3, r3, #8
800f962: 2b00 cmp r3, #0
800f964: d009 beq.n 800f97a <HAL_RCC_ClockConfig+0x192>
{
assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider));
MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3));
800f966: 4912 ldr r1, [pc, #72] ; (800f9b0 <HAL_RCC_ClockConfig+0x1c8>)
800f968: 4b11 ldr r3, [pc, #68] ; (800f9b0 <HAL_RCC_ClockConfig+0x1c8>)
800f96a: 689b ldr r3, [r3, #8]
800f96c: f423 4260 bic.w r2, r3, #57344 ; 0xe000
800f970: 687b ldr r3, [r7, #4]
800f972: 691b ldr r3, [r3, #16]
800f974: 00db lsls r3, r3, #3
800f976: 4313 orrs r3, r2
800f978: 608b str r3, [r1, #8]
}
/* Update the SystemCoreClock global variable */
SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos];
800f97a: f000 f821 bl 800f9c0 <HAL_RCC_GetSysClockFreq>
800f97e: 4601 mov r1, r0
800f980: 4b0b ldr r3, [pc, #44] ; (800f9b0 <HAL_RCC_ClockConfig+0x1c8>)
800f982: 689b ldr r3, [r3, #8]
800f984: 091b lsrs r3, r3, #4
800f986: f003 030f and.w r3, r3, #15
800f98a: 4a0a ldr r2, [pc, #40] ; (800f9b4 <HAL_RCC_ClockConfig+0x1cc>)
800f98c: 5cd3 ldrb r3, [r2, r3]
800f98e: fa21 f303 lsr.w r3, r1, r3
800f992: 4a09 ldr r2, [pc, #36] ; (800f9b8 <HAL_RCC_ClockConfig+0x1d0>)
800f994: 6013 str r3, [r2, #0]
/* Configure the source of time base considering new system clocks settings*/
HAL_InitTick(uwTickPrio);
800f996: 4b09 ldr r3, [pc, #36] ; (800f9bc <HAL_RCC_ClockConfig+0x1d4>)
800f998: 681b ldr r3, [r3, #0]
800f99a: 4618 mov r0, r3
800f99c: f7fe f83e bl 800da1c <HAL_InitTick>
return HAL_OK;
800f9a0: 2300 movs r3, #0
}
800f9a2: 4618 mov r0, r3
800f9a4: 3710 adds r7, #16
800f9a6: 46bd mov sp, r7
800f9a8: bd80 pop {r7, pc}
800f9aa: bf00 nop
800f9ac: 40023c00 .word 0x40023c00
800f9b0: 40023800 .word 0x40023800
800f9b4: 08015584 .word 0x08015584
800f9b8: 20020214 .word 0x20020214
800f9bc: 20020220 .word 0x20020220
0800f9c0 <HAL_RCC_GetSysClockFreq>:
*
*
* @retval SYSCLK frequency
*/
uint32_t HAL_RCC_GetSysClockFreq(void)
{
800f9c0: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
800f9c4: b087 sub sp, #28
800f9c6: af00 add r7, sp, #0
uint32_t pllm = 0, pllvco = 0, pllp = 0;
800f9c8: 2200 movs r2, #0
800f9ca: 60fa str r2, [r7, #12]
800f9cc: 2200 movs r2, #0
800f9ce: 617a str r2, [r7, #20]
800f9d0: 2200 movs r2, #0
800f9d2: 60ba str r2, [r7, #8]
uint32_t sysclockfreq = 0;
800f9d4: 2200 movs r2, #0
800f9d6: 613a str r2, [r7, #16]
/* Get SYSCLK source -------------------------------------------------------*/
switch (RCC->CFGR & RCC_CFGR_SWS)
800f9d8: 4a51 ldr r2, [pc, #324] ; (800fb20 <HAL_RCC_GetSysClockFreq+0x160>)
800f9da: 6892 ldr r2, [r2, #8]
800f9dc: f002 020c and.w r2, r2, #12
800f9e0: 2a04 cmp r2, #4
800f9e2: d007 beq.n 800f9f4 <HAL_RCC_GetSysClockFreq+0x34>
800f9e4: 2a08 cmp r2, #8
800f9e6: d008 beq.n 800f9fa <HAL_RCC_GetSysClockFreq+0x3a>
800f9e8: 2a00 cmp r2, #0
800f9ea: f040 8090 bne.w 800fb0e <HAL_RCC_GetSysClockFreq+0x14e>
{
case RCC_SYSCLKSOURCE_STATUS_HSI: /* HSI used as system clock source */
{
sysclockfreq = HSI_VALUE;
800f9ee: 4b4d ldr r3, [pc, #308] ; (800fb24 <HAL_RCC_GetSysClockFreq+0x164>)
800f9f0: 613b str r3, [r7, #16]
break;
800f9f2: e08f b.n 800fb14 <HAL_RCC_GetSysClockFreq+0x154>
}
case RCC_SYSCLKSOURCE_STATUS_HSE: /* HSE used as system clock source */
{
sysclockfreq = HSE_VALUE;
800f9f4: 4b4c ldr r3, [pc, #304] ; (800fb28 <HAL_RCC_GetSysClockFreq+0x168>)
800f9f6: 613b str r3, [r7, #16]
break;
800f9f8: e08c b.n 800fb14 <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;
800f9fa: 4a49 ldr r2, [pc, #292] ; (800fb20 <HAL_RCC_GetSysClockFreq+0x160>)
800f9fc: 6852 ldr r2, [r2, #4]
800f9fe: f002 023f and.w r2, r2, #63 ; 0x3f
800fa02: 60fa str r2, [r7, #12]
if (__HAL_RCC_GET_PLL_OSCSOURCE() != RCC_PLLCFGR_PLLSRC_HSI)
800fa04: 4a46 ldr r2, [pc, #280] ; (800fb20 <HAL_RCC_GetSysClockFreq+0x160>)
800fa06: 6852 ldr r2, [r2, #4]
800fa08: f402 0280 and.w r2, r2, #4194304 ; 0x400000
800fa0c: 2a00 cmp r2, #0
800fa0e: d023 beq.n 800fa58 <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);
800fa10: 4b43 ldr r3, [pc, #268] ; (800fb20 <HAL_RCC_GetSysClockFreq+0x160>)
800fa12: 685b ldr r3, [r3, #4]
800fa14: 099b lsrs r3, r3, #6
800fa16: f04f 0400 mov.w r4, #0
800fa1a: f240 11ff movw r1, #511 ; 0x1ff
800fa1e: f04f 0200 mov.w r2, #0
800fa22: ea03 0301 and.w r3, r3, r1
800fa26: ea04 0402 and.w r4, r4, r2
800fa2a: 4a3f ldr r2, [pc, #252] ; (800fb28 <HAL_RCC_GetSysClockFreq+0x168>)
800fa2c: fb02 f104 mul.w r1, r2, r4
800fa30: 2200 movs r2, #0
800fa32: fb02 f203 mul.w r2, r2, r3
800fa36: 440a add r2, r1
800fa38: 493b ldr r1, [pc, #236] ; (800fb28 <HAL_RCC_GetSysClockFreq+0x168>)
800fa3a: fba3 0101 umull r0, r1, r3, r1
800fa3e: 1853 adds r3, r2, r1
800fa40: 4619 mov r1, r3
800fa42: 68fb ldr r3, [r7, #12]
800fa44: f04f 0400 mov.w r4, #0
800fa48: 461a mov r2, r3
800fa4a: 4623 mov r3, r4
800fa4c: f7f0 fbfc bl 8000248 <__aeabi_uldivmod>
800fa50: 4603 mov r3, r0
800fa52: 460c mov r4, r1
800fa54: 617b str r3, [r7, #20]
800fa56: e04c b.n 800faf2 <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);
800fa58: 4a31 ldr r2, [pc, #196] ; (800fb20 <HAL_RCC_GetSysClockFreq+0x160>)
800fa5a: 6852 ldr r2, [r2, #4]
800fa5c: 0992 lsrs r2, r2, #6
800fa5e: 4611 mov r1, r2
800fa60: f04f 0200 mov.w r2, #0
800fa64: f240 15ff movw r5, #511 ; 0x1ff
800fa68: f04f 0600 mov.w r6, #0
800fa6c: ea05 0501 and.w r5, r5, r1
800fa70: ea06 0602 and.w r6, r6, r2
800fa74: 4629 mov r1, r5
800fa76: 4632 mov r2, r6
800fa78: ea4f 1b42 mov.w fp, r2, lsl #5
800fa7c: ea4b 6bd1 orr.w fp, fp, r1, lsr #27
800fa80: ea4f 1a41 mov.w sl, r1, lsl #5
800fa84: 4651 mov r1, sl
800fa86: 465a mov r2, fp
800fa88: 46aa mov sl, r5
800fa8a: 46b3 mov fp, r6
800fa8c: 4655 mov r5, sl
800fa8e: 465e mov r6, fp
800fa90: 1b4d subs r5, r1, r5
800fa92: eb62 0606 sbc.w r6, r2, r6
800fa96: 4629 mov r1, r5
800fa98: 4632 mov r2, r6
800fa9a: 0194 lsls r4, r2, #6
800fa9c: ea44 6491 orr.w r4, r4, r1, lsr #26
800faa0: 018b lsls r3, r1, #6
800faa2: 1a5b subs r3, r3, r1
800faa4: eb64 0402 sbc.w r4, r4, r2
800faa8: ea4f 09c4 mov.w r9, r4, lsl #3
800faac: ea49 7953 orr.w r9, r9, r3, lsr #29
800fab0: ea4f 08c3 mov.w r8, r3, lsl #3
800fab4: 4643 mov r3, r8
800fab6: 464c mov r4, r9
800fab8: 4655 mov r5, sl
800faba: 465e mov r6, fp
800fabc: 18ed adds r5, r5, r3
800fabe: eb46 0604 adc.w r6, r6, r4
800fac2: 462b mov r3, r5
800fac4: 4634 mov r4, r6
800fac6: 02a2 lsls r2, r4, #10
800fac8: 607a str r2, [r7, #4]
800faca: 687a ldr r2, [r7, #4]
800facc: ea42 5293 orr.w r2, r2, r3, lsr #22
800fad0: 607a str r2, [r7, #4]
800fad2: 029b lsls r3, r3, #10
800fad4: 603b str r3, [r7, #0]
800fad6: e897 0018 ldmia.w r7, {r3, r4}
800fada: 4618 mov r0, r3
800fadc: 4621 mov r1, r4
800fade: 68fb ldr r3, [r7, #12]
800fae0: f04f 0400 mov.w r4, #0
800fae4: 461a mov r2, r3
800fae6: 4623 mov r3, r4
800fae8: f7f0 fbae bl 8000248 <__aeabi_uldivmod>
800faec: 4603 mov r3, r0
800faee: 460c mov r4, r1
800faf0: 617b str r3, [r7, #20]
}
pllp = ((((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >> RCC_PLLCFGR_PLLP_Pos) + 1) * 2);
800faf2: 4b0b ldr r3, [pc, #44] ; (800fb20 <HAL_RCC_GetSysClockFreq+0x160>)
800faf4: 685b ldr r3, [r3, #4]
800faf6: 0c1b lsrs r3, r3, #16
800faf8: f003 0303 and.w r3, r3, #3
800fafc: 3301 adds r3, #1
800fafe: 005b lsls r3, r3, #1
800fb00: 60bb str r3, [r7, #8]
sysclockfreq = pllvco / pllp;
800fb02: 697a ldr r2, [r7, #20]
800fb04: 68bb ldr r3, [r7, #8]
800fb06: fbb2 f3f3 udiv r3, r2, r3
800fb0a: 613b str r3, [r7, #16]
break;
800fb0c: e002 b.n 800fb14 <HAL_RCC_GetSysClockFreq+0x154>
}
default:
{
sysclockfreq = HSI_VALUE;
800fb0e: 4b05 ldr r3, [pc, #20] ; (800fb24 <HAL_RCC_GetSysClockFreq+0x164>)
800fb10: 613b str r3, [r7, #16]
break;
800fb12: bf00 nop
}
}
return sysclockfreq;
800fb14: 693b ldr r3, [r7, #16]
}
800fb16: 4618 mov r0, r3
800fb18: 371c adds r7, #28
800fb1a: 46bd mov sp, r7
800fb1c: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
800fb20: 40023800 .word 0x40023800
800fb24: 00f42400 .word 0x00f42400
800fb28: 017d7840 .word 0x017d7840
0800fb2c <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)
{
800fb2c: b480 push {r7}
800fb2e: af00 add r7, sp, #0
return SystemCoreClock;
800fb30: 4b03 ldr r3, [pc, #12] ; (800fb40 <HAL_RCC_GetHCLKFreq+0x14>)
800fb32: 681b ldr r3, [r3, #0]
}
800fb34: 4618 mov r0, r3
800fb36: 46bd mov sp, r7
800fb38: f85d 7b04 ldr.w r7, [sp], #4
800fb3c: 4770 bx lr
800fb3e: bf00 nop
800fb40: 20020214 .word 0x20020214
0800fb44 <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)
{
800fb44: b580 push {r7, lr}
800fb46: 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]);
800fb48: f7ff fff0 bl 800fb2c <HAL_RCC_GetHCLKFreq>
800fb4c: 4601 mov r1, r0
800fb4e: 4b05 ldr r3, [pc, #20] ; (800fb64 <HAL_RCC_GetPCLK1Freq+0x20>)
800fb50: 689b ldr r3, [r3, #8]
800fb52: 0a9b lsrs r3, r3, #10
800fb54: f003 0307 and.w r3, r3, #7
800fb58: 4a03 ldr r2, [pc, #12] ; (800fb68 <HAL_RCC_GetPCLK1Freq+0x24>)
800fb5a: 5cd3 ldrb r3, [r2, r3]
800fb5c: fa21 f303 lsr.w r3, r1, r3
}
800fb60: 4618 mov r0, r3
800fb62: bd80 pop {r7, pc}
800fb64: 40023800 .word 0x40023800
800fb68: 08015594 .word 0x08015594
0800fb6c <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)
{
800fb6c: b580 push {r7, lr}
800fb6e: 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]);
800fb70: f7ff ffdc bl 800fb2c <HAL_RCC_GetHCLKFreq>
800fb74: 4601 mov r1, r0
800fb76: 4b05 ldr r3, [pc, #20] ; (800fb8c <HAL_RCC_GetPCLK2Freq+0x20>)
800fb78: 689b ldr r3, [r3, #8]
800fb7a: 0b5b lsrs r3, r3, #13
800fb7c: f003 0307 and.w r3, r3, #7
800fb80: 4a03 ldr r2, [pc, #12] ; (800fb90 <HAL_RCC_GetPCLK2Freq+0x24>)
800fb82: 5cd3 ldrb r3, [r2, r3]
800fb84: fa21 f303 lsr.w r3, r1, r3
}
800fb88: 4618 mov r0, r3
800fb8a: bd80 pop {r7, pc}
800fb8c: 40023800 .word 0x40023800
800fb90: 08015594 .word 0x08015594
0800fb94 <HAL_RCCEx_PeriphCLKConfig>:
* the backup registers) are set to their reset values.
*
* @retval HAL status
*/
HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit)
{
800fb94: b580 push {r7, lr}
800fb96: b088 sub sp, #32
800fb98: af00 add r7, sp, #0
800fb9a: 6078 str r0, [r7, #4]
uint32_t tickstart = 0;
800fb9c: 2300 movs r3, #0
800fb9e: 617b str r3, [r7, #20]
uint32_t tmpreg0 = 0;
800fba0: 2300 movs r3, #0
800fba2: 613b str r3, [r7, #16]
uint32_t tmpreg1 = 0;
800fba4: 2300 movs r3, #0
800fba6: 60fb str r3, [r7, #12]
uint32_t plli2sused = 0;
800fba8: 2300 movs r3, #0
800fbaa: 61fb str r3, [r7, #28]
uint32_t pllsaiused = 0;
800fbac: 2300 movs r3, #0
800fbae: 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))
800fbb0: 687b ldr r3, [r7, #4]
800fbb2: 681b ldr r3, [r3, #0]
800fbb4: f003 0301 and.w r3, r3, #1
800fbb8: 2b00 cmp r3, #0
800fbba: d012 beq.n 800fbe2 <HAL_RCCEx_PeriphCLKConfig+0x4e>
{
/* Check the parameters */
assert_param(IS_RCC_I2SCLKSOURCE(PeriphClkInit->I2sClockSelection));
/* Configure I2S Clock source */
__HAL_RCC_I2S_CONFIG(PeriphClkInit->I2sClockSelection);
800fbbc: 4a69 ldr r2, [pc, #420] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fbbe: 4b69 ldr r3, [pc, #420] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fbc0: 689b ldr r3, [r3, #8]
800fbc2: f423 0300 bic.w r3, r3, #8388608 ; 0x800000
800fbc6: 6093 str r3, [r2, #8]
800fbc8: 4966 ldr r1, [pc, #408] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fbca: 4b66 ldr r3, [pc, #408] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fbcc: 689a ldr r2, [r3, #8]
800fbce: 687b ldr r3, [r7, #4]
800fbd0: 6b5b ldr r3, [r3, #52] ; 0x34
800fbd2: 4313 orrs r3, r2
800fbd4: 608b str r3, [r1, #8]
/* Enable the PLLI2S when it's used as clock source for I2S */
if(PeriphClkInit->I2sClockSelection == RCC_I2SCLKSOURCE_PLLI2S)
800fbd6: 687b ldr r3, [r7, #4]
800fbd8: 6b5b ldr r3, [r3, #52] ; 0x34
800fbda: 2b00 cmp r3, #0
800fbdc: d101 bne.n 800fbe2 <HAL_RCCEx_PeriphCLKConfig+0x4e>
{
plli2sused = 1;
800fbde: 2301 movs r3, #1
800fbe0: 61fb str r3, [r7, #28]
}
}
/*------------------------------------ SAI1 configuration --------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == (RCC_PERIPHCLK_SAI1))
800fbe2: 687b ldr r3, [r7, #4]
800fbe4: 681b ldr r3, [r3, #0]
800fbe6: f403 2300 and.w r3, r3, #524288 ; 0x80000
800fbea: 2b00 cmp r3, #0
800fbec: d017 beq.n 800fc1e <HAL_RCCEx_PeriphCLKConfig+0x8a>
{
/* Check the parameters */
assert_param(IS_RCC_SAI1CLKSOURCE(PeriphClkInit->Sai1ClockSelection));
/* Configure SAI1 Clock source */
__HAL_RCC_SAI1_CONFIG(PeriphClkInit->Sai1ClockSelection);
800fbee: 495d ldr r1, [pc, #372] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fbf0: 4b5c ldr r3, [pc, #368] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fbf2: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
800fbf6: f423 1240 bic.w r2, r3, #3145728 ; 0x300000
800fbfa: 687b ldr r3, [r7, #4]
800fbfc: 6bdb ldr r3, [r3, #60] ; 0x3c
800fbfe: 4313 orrs r3, r2
800fc00: 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)
800fc04: 687b ldr r3, [r7, #4]
800fc06: 6bdb ldr r3, [r3, #60] ; 0x3c
800fc08: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000
800fc0c: d101 bne.n 800fc12 <HAL_RCCEx_PeriphCLKConfig+0x7e>
{
plli2sused = 1;
800fc0e: 2301 movs r3, #1
800fc10: 61fb str r3, [r7, #28]
}
/* Enable the PLLSAI when it's used as clock source for SAI */
if(PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI)
800fc12: 687b ldr r3, [r7, #4]
800fc14: 6bdb ldr r3, [r3, #60] ; 0x3c
800fc16: 2b00 cmp r3, #0
800fc18: d101 bne.n 800fc1e <HAL_RCCEx_PeriphCLKConfig+0x8a>
{
pllsaiused = 1;
800fc1a: 2301 movs r3, #1
800fc1c: 61bb str r3, [r7, #24]
}
}
/*------------------------------------ SAI2 configuration --------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == (RCC_PERIPHCLK_SAI2))
800fc1e: 687b ldr r3, [r7, #4]
800fc20: 681b ldr r3, [r3, #0]
800fc22: f403 1380 and.w r3, r3, #1048576 ; 0x100000
800fc26: 2b00 cmp r3, #0
800fc28: d017 beq.n 800fc5a <HAL_RCCEx_PeriphCLKConfig+0xc6>
{
/* Check the parameters */
assert_param(IS_RCC_SAI2CLKSOURCE(PeriphClkInit->Sai2ClockSelection));
/* Configure SAI2 Clock source */
__HAL_RCC_SAI2_CONFIG(PeriphClkInit->Sai2ClockSelection);
800fc2a: 494e ldr r1, [pc, #312] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fc2c: 4b4d ldr r3, [pc, #308] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fc2e: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
800fc32: f423 0240 bic.w r2, r3, #12582912 ; 0xc00000
800fc36: 687b ldr r3, [r7, #4]
800fc38: 6c1b ldr r3, [r3, #64] ; 0x40
800fc3a: 4313 orrs r3, r2
800fc3c: 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)
800fc40: 687b ldr r3, [r7, #4]
800fc42: 6c1b ldr r3, [r3, #64] ; 0x40
800fc44: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000
800fc48: d101 bne.n 800fc4e <HAL_RCCEx_PeriphCLKConfig+0xba>
{
plli2sused = 1;
800fc4a: 2301 movs r3, #1
800fc4c: 61fb str r3, [r7, #28]
}
/* Enable the PLLSAI when it's used as clock source for SAI */
if(PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI)
800fc4e: 687b ldr r3, [r7, #4]
800fc50: 6c1b ldr r3, [r3, #64] ; 0x40
800fc52: 2b00 cmp r3, #0
800fc54: d101 bne.n 800fc5a <HAL_RCCEx_PeriphCLKConfig+0xc6>
{
pllsaiused = 1;
800fc56: 2301 movs r3, #1
800fc58: 61bb str r3, [r7, #24]
}
}
/*-------------------------------------- SPDIF-RX Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SPDIFRX) == RCC_PERIPHCLK_SPDIFRX)
800fc5a: 687b ldr r3, [r7, #4]
800fc5c: 681b ldr r3, [r3, #0]
800fc5e: f003 7380 and.w r3, r3, #16777216 ; 0x1000000
800fc62: 2b00 cmp r3, #0
800fc64: d001 beq.n 800fc6a <HAL_RCCEx_PeriphCLKConfig+0xd6>
{
plli2sused = 1;
800fc66: 2301 movs r3, #1
800fc68: 61fb str r3, [r7, #28]
}
/*------------------------------------ RTC configuration --------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RTC) == (RCC_PERIPHCLK_RTC))
800fc6a: 687b ldr r3, [r7, #4]
800fc6c: 681b ldr r3, [r3, #0]
800fc6e: f003 0320 and.w r3, r3, #32
800fc72: 2b00 cmp r3, #0
800fc74: f000 808b beq.w 800fd8e <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();
800fc78: 4a3a ldr r2, [pc, #232] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fc7a: 4b3a ldr r3, [pc, #232] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fc7c: 6c1b ldr r3, [r3, #64] ; 0x40
800fc7e: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
800fc82: 6413 str r3, [r2, #64] ; 0x40
800fc84: 4b37 ldr r3, [pc, #220] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fc86: 6c1b ldr r3, [r3, #64] ; 0x40
800fc88: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
800fc8c: 60bb str r3, [r7, #8]
800fc8e: 68bb ldr r3, [r7, #8]
/* Enable write access to Backup domain */
PWR->CR1 |= PWR_CR1_DBP;
800fc90: 4a35 ldr r2, [pc, #212] ; (800fd68 <HAL_RCCEx_PeriphCLKConfig+0x1d4>)
800fc92: 4b35 ldr r3, [pc, #212] ; (800fd68 <HAL_RCCEx_PeriphCLKConfig+0x1d4>)
800fc94: 681b ldr r3, [r3, #0]
800fc96: f443 7380 orr.w r3, r3, #256 ; 0x100
800fc9a: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
800fc9c: f7fd ff02 bl 800daa4 <HAL_GetTick>
800fca0: 6178 str r0, [r7, #20]
/* Wait for Backup domain Write protection disable */
while((PWR->CR1 & PWR_CR1_DBP) == RESET)
800fca2: e008 b.n 800fcb6 <HAL_RCCEx_PeriphCLKConfig+0x122>
{
if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE)
800fca4: f7fd fefe bl 800daa4 <HAL_GetTick>
800fca8: 4602 mov r2, r0
800fcaa: 697b ldr r3, [r7, #20]
800fcac: 1ad3 subs r3, r2, r3
800fcae: 2b64 cmp r3, #100 ; 0x64
800fcb0: d901 bls.n 800fcb6 <HAL_RCCEx_PeriphCLKConfig+0x122>
{
return HAL_TIMEOUT;
800fcb2: 2303 movs r3, #3
800fcb4: e38d b.n 80103d2 <HAL_RCCEx_PeriphCLKConfig+0x83e>
while((PWR->CR1 & PWR_CR1_DBP) == RESET)
800fcb6: 4b2c ldr r3, [pc, #176] ; (800fd68 <HAL_RCCEx_PeriphCLKConfig+0x1d4>)
800fcb8: 681b ldr r3, [r3, #0]
800fcba: f403 7380 and.w r3, r3, #256 ; 0x100
800fcbe: 2b00 cmp r3, #0
800fcc0: d0f0 beq.n 800fca4 <HAL_RCCEx_PeriphCLKConfig+0x110>
}
}
/* Reset the Backup domain only if the RTC Clock source selection is modified */
tmpreg0 = (RCC->BDCR & RCC_BDCR_RTCSEL);
800fcc2: 4b28 ldr r3, [pc, #160] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fcc4: 6f1b ldr r3, [r3, #112] ; 0x70
800fcc6: f403 7340 and.w r3, r3, #768 ; 0x300
800fcca: 613b str r3, [r7, #16]
if((tmpreg0 != 0x00000000U) && (tmpreg0 != (PeriphClkInit->RTCClockSelection & RCC_BDCR_RTCSEL)))
800fccc: 693b ldr r3, [r7, #16]
800fcce: 2b00 cmp r3, #0
800fcd0: d035 beq.n 800fd3e <HAL_RCCEx_PeriphCLKConfig+0x1aa>
800fcd2: 687b ldr r3, [r7, #4]
800fcd4: 6b1b ldr r3, [r3, #48] ; 0x30
800fcd6: f403 7240 and.w r2, r3, #768 ; 0x300
800fcda: 693b ldr r3, [r7, #16]
800fcdc: 429a cmp r2, r3
800fcde: d02e beq.n 800fd3e <HAL_RCCEx_PeriphCLKConfig+0x1aa>
{
/* Store the content of BDCR register before the reset of Backup Domain */
tmpreg0 = (RCC->BDCR & ~(RCC_BDCR_RTCSEL));
800fce0: 4b20 ldr r3, [pc, #128] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fce2: 6f1b ldr r3, [r3, #112] ; 0x70
800fce4: f423 7340 bic.w r3, r3, #768 ; 0x300
800fce8: 613b str r3, [r7, #16]
/* RTC Clock selection can be changed only if the Backup Domain is reset */
__HAL_RCC_BACKUPRESET_FORCE();
800fcea: 4a1e ldr r2, [pc, #120] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fcec: 4b1d ldr r3, [pc, #116] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fcee: 6f1b ldr r3, [r3, #112] ; 0x70
800fcf0: f443 3380 orr.w r3, r3, #65536 ; 0x10000
800fcf4: 6713 str r3, [r2, #112] ; 0x70
__HAL_RCC_BACKUPRESET_RELEASE();
800fcf6: 4a1b ldr r2, [pc, #108] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fcf8: 4b1a ldr r3, [pc, #104] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fcfa: 6f1b ldr r3, [r3, #112] ; 0x70
800fcfc: f423 3380 bic.w r3, r3, #65536 ; 0x10000
800fd00: 6713 str r3, [r2, #112] ; 0x70
/* Restore the Content of BDCR register */
RCC->BDCR = tmpreg0;
800fd02: 4a18 ldr r2, [pc, #96] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fd04: 693b ldr r3, [r7, #16]
800fd06: 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))
800fd08: 4b16 ldr r3, [pc, #88] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fd0a: 6f1b ldr r3, [r3, #112] ; 0x70
800fd0c: f003 0301 and.w r3, r3, #1
800fd10: 2b01 cmp r3, #1
800fd12: d114 bne.n 800fd3e <HAL_RCCEx_PeriphCLKConfig+0x1aa>
{
/* Get Start Tick*/
tickstart = HAL_GetTick();
800fd14: f7fd fec6 bl 800daa4 <HAL_GetTick>
800fd18: 6178 str r0, [r7, #20]
/* Wait till LSE is ready */
while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET)
800fd1a: e00a b.n 800fd32 <HAL_RCCEx_PeriphCLKConfig+0x19e>
{
if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE)
800fd1c: f7fd fec2 bl 800daa4 <HAL_GetTick>
800fd20: 4602 mov r2, r0
800fd22: 697b ldr r3, [r7, #20]
800fd24: 1ad3 subs r3, r2, r3
800fd26: f241 3288 movw r2, #5000 ; 0x1388
800fd2a: 4293 cmp r3, r2
800fd2c: d901 bls.n 800fd32 <HAL_RCCEx_PeriphCLKConfig+0x19e>
{
return HAL_TIMEOUT;
800fd2e: 2303 movs r3, #3
800fd30: e34f b.n 80103d2 <HAL_RCCEx_PeriphCLKConfig+0x83e>
while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET)
800fd32: 4b0c ldr r3, [pc, #48] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fd34: 6f1b ldr r3, [r3, #112] ; 0x70
800fd36: f003 0302 and.w r3, r3, #2
800fd3a: 2b00 cmp r3, #0
800fd3c: d0ee beq.n 800fd1c <HAL_RCCEx_PeriphCLKConfig+0x188>
}
}
}
}
__HAL_RCC_RTC_CONFIG(PeriphClkInit->RTCClockSelection);
800fd3e: 687b ldr r3, [r7, #4]
800fd40: 6b1b ldr r3, [r3, #48] ; 0x30
800fd42: f403 7340 and.w r3, r3, #768 ; 0x300
800fd46: f5b3 7f40 cmp.w r3, #768 ; 0x300
800fd4a: d111 bne.n 800fd70 <HAL_RCCEx_PeriphCLKConfig+0x1dc>
800fd4c: 4805 ldr r0, [pc, #20] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fd4e: 4b05 ldr r3, [pc, #20] ; (800fd64 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
800fd50: 689b ldr r3, [r3, #8]
800fd52: f423 12f8 bic.w r2, r3, #2031616 ; 0x1f0000
800fd56: 687b ldr r3, [r7, #4]
800fd58: 6b19 ldr r1, [r3, #48] ; 0x30
800fd5a: 4b04 ldr r3, [pc, #16] ; (800fd6c <HAL_RCCEx_PeriphCLKConfig+0x1d8>)
800fd5c: 400b ands r3, r1
800fd5e: 4313 orrs r3, r2
800fd60: 6083 str r3, [r0, #8]
800fd62: e00b b.n 800fd7c <HAL_RCCEx_PeriphCLKConfig+0x1e8>
800fd64: 40023800 .word 0x40023800
800fd68: 40007000 .word 0x40007000
800fd6c: 0ffffcff .word 0x0ffffcff
800fd70: 4ab2 ldr r2, [pc, #712] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fd72: 4bb2 ldr r3, [pc, #712] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fd74: 689b ldr r3, [r3, #8]
800fd76: f423 13f8 bic.w r3, r3, #2031616 ; 0x1f0000
800fd7a: 6093 str r3, [r2, #8]
800fd7c: 49af ldr r1, [pc, #700] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fd7e: 4baf ldr r3, [pc, #700] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fd80: 6f1a ldr r2, [r3, #112] ; 0x70
800fd82: 687b ldr r3, [r7, #4]
800fd84: 6b1b ldr r3, [r3, #48] ; 0x30
800fd86: f3c3 030b ubfx r3, r3, #0, #12
800fd8a: 4313 orrs r3, r2
800fd8c: 670b str r3, [r1, #112] ; 0x70
}
/*------------------------------------ TIM configuration --------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_TIM) == (RCC_PERIPHCLK_TIM))
800fd8e: 687b ldr r3, [r7, #4]
800fd90: 681b ldr r3, [r3, #0]
800fd92: f003 0310 and.w r3, r3, #16
800fd96: 2b00 cmp r3, #0
800fd98: d010 beq.n 800fdbc <HAL_RCCEx_PeriphCLKConfig+0x228>
{
/* Check the parameters */
assert_param(IS_RCC_TIMPRES(PeriphClkInit->TIMPresSelection));
/* Configure Timer Prescaler */
__HAL_RCC_TIMCLKPRESCALER(PeriphClkInit->TIMPresSelection);
800fd9a: 4aa8 ldr r2, [pc, #672] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fd9c: 4ba7 ldr r3, [pc, #668] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fd9e: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
800fda2: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000
800fda6: f8c2 308c str.w r3, [r2, #140] ; 0x8c
800fdaa: 49a4 ldr r1, [pc, #656] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fdac: 4ba3 ldr r3, [pc, #652] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fdae: f8d3 208c ldr.w r2, [r3, #140] ; 0x8c
800fdb2: 687b ldr r3, [r7, #4]
800fdb4: 6b9b ldr r3, [r3, #56] ; 0x38
800fdb6: 4313 orrs r3, r2
800fdb8: f8c1 308c str.w r3, [r1, #140] ; 0x8c
}
/*-------------------------------------- I2C1 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1)
800fdbc: 687b ldr r3, [r7, #4]
800fdbe: 681b ldr r3, [r3, #0]
800fdc0: f403 4380 and.w r3, r3, #16384 ; 0x4000
800fdc4: 2b00 cmp r3, #0
800fdc6: d00a beq.n 800fdde <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);
800fdc8: 499c ldr r1, [pc, #624] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fdca: 4b9c ldr r3, [pc, #624] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fdcc: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
800fdd0: f423 3240 bic.w r2, r3, #196608 ; 0x30000
800fdd4: 687b ldr r3, [r7, #4]
800fdd6: 6e5b ldr r3, [r3, #100] ; 0x64
800fdd8: 4313 orrs r3, r2
800fdda: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- I2C2 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2)
800fdde: 687b ldr r3, [r7, #4]
800fde0: 681b ldr r3, [r3, #0]
800fde2: f403 4300 and.w r3, r3, #32768 ; 0x8000
800fde6: 2b00 cmp r3, #0
800fde8: d00a beq.n 800fe00 <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);
800fdea: 4994 ldr r1, [pc, #592] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fdec: 4b93 ldr r3, [pc, #588] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fdee: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
800fdf2: f423 2240 bic.w r2, r3, #786432 ; 0xc0000
800fdf6: 687b ldr r3, [r7, #4]
800fdf8: 6e9b ldr r3, [r3, #104] ; 0x68
800fdfa: 4313 orrs r3, r2
800fdfc: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- I2C3 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3)
800fe00: 687b ldr r3, [r7, #4]
800fe02: 681b ldr r3, [r3, #0]
800fe04: f403 3380 and.w r3, r3, #65536 ; 0x10000
800fe08: 2b00 cmp r3, #0
800fe0a: d00a beq.n 800fe22 <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);
800fe0c: 498b ldr r1, [pc, #556] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fe0e: 4b8b ldr r3, [pc, #556] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fe10: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
800fe14: f423 1240 bic.w r2, r3, #3145728 ; 0x300000
800fe18: 687b ldr r3, [r7, #4]
800fe1a: 6edb ldr r3, [r3, #108] ; 0x6c
800fe1c: 4313 orrs r3, r2
800fe1e: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- I2C4 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C4) == RCC_PERIPHCLK_I2C4)
800fe22: 687b ldr r3, [r7, #4]
800fe24: 681b ldr r3, [r3, #0]
800fe26: f403 3300 and.w r3, r3, #131072 ; 0x20000
800fe2a: 2b00 cmp r3, #0
800fe2c: d00a beq.n 800fe44 <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);
800fe2e: 4983 ldr r1, [pc, #524] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fe30: 4b82 ldr r3, [pc, #520] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fe32: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
800fe36: f423 0240 bic.w r2, r3, #12582912 ; 0xc00000
800fe3a: 687b ldr r3, [r7, #4]
800fe3c: 6f1b ldr r3, [r3, #112] ; 0x70
800fe3e: 4313 orrs r3, r2
800fe40: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- USART1 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1)
800fe44: 687b ldr r3, [r7, #4]
800fe46: 681b ldr r3, [r3, #0]
800fe48: f003 0340 and.w r3, r3, #64 ; 0x40
800fe4c: 2b00 cmp r3, #0
800fe4e: d00a beq.n 800fe66 <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);
800fe50: 497a ldr r1, [pc, #488] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fe52: 4b7a ldr r3, [pc, #488] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fe54: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
800fe58: f023 0203 bic.w r2, r3, #3
800fe5c: 687b ldr r3, [r7, #4]
800fe5e: 6c5b ldr r3, [r3, #68] ; 0x44
800fe60: 4313 orrs r3, r2
800fe62: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- USART2 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2)
800fe66: 687b ldr r3, [r7, #4]
800fe68: 681b ldr r3, [r3, #0]
800fe6a: f003 0380 and.w r3, r3, #128 ; 0x80
800fe6e: 2b00 cmp r3, #0
800fe70: d00a beq.n 800fe88 <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);
800fe72: 4972 ldr r1, [pc, #456] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fe74: 4b71 ldr r3, [pc, #452] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fe76: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
800fe7a: f023 020c bic.w r2, r3, #12
800fe7e: 687b ldr r3, [r7, #4]
800fe80: 6c9b ldr r3, [r3, #72] ; 0x48
800fe82: 4313 orrs r3, r2
800fe84: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- USART3 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART3) == RCC_PERIPHCLK_USART3)
800fe88: 687b ldr r3, [r7, #4]
800fe8a: 681b ldr r3, [r3, #0]
800fe8c: f403 7380 and.w r3, r3, #256 ; 0x100
800fe90: 2b00 cmp r3, #0
800fe92: d00a beq.n 800feaa <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);
800fe94: 4969 ldr r1, [pc, #420] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fe96: 4b69 ldr r3, [pc, #420] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fe98: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
800fe9c: f023 0230 bic.w r2, r3, #48 ; 0x30
800fea0: 687b ldr r3, [r7, #4]
800fea2: 6cdb ldr r3, [r3, #76] ; 0x4c
800fea4: 4313 orrs r3, r2
800fea6: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- UART4 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART4) == RCC_PERIPHCLK_UART4)
800feaa: 687b ldr r3, [r7, #4]
800feac: 681b ldr r3, [r3, #0]
800feae: f403 7300 and.w r3, r3, #512 ; 0x200
800feb2: 2b00 cmp r3, #0
800feb4: d00a beq.n 800fecc <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);
800feb6: 4961 ldr r1, [pc, #388] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800feb8: 4b60 ldr r3, [pc, #384] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800feba: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
800febe: f023 02c0 bic.w r2, r3, #192 ; 0xc0
800fec2: 687b ldr r3, [r7, #4]
800fec4: 6d1b ldr r3, [r3, #80] ; 0x50
800fec6: 4313 orrs r3, r2
800fec8: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- UART5 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART5) == RCC_PERIPHCLK_UART5)
800fecc: 687b ldr r3, [r7, #4]
800fece: 681b ldr r3, [r3, #0]
800fed0: f403 6380 and.w r3, r3, #1024 ; 0x400
800fed4: 2b00 cmp r3, #0
800fed6: d00a beq.n 800feee <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);
800fed8: 4958 ldr r1, [pc, #352] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800feda: 4b58 ldr r3, [pc, #352] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fedc: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
800fee0: f423 7240 bic.w r2, r3, #768 ; 0x300
800fee4: 687b ldr r3, [r7, #4]
800fee6: 6d5b ldr r3, [r3, #84] ; 0x54
800fee8: 4313 orrs r3, r2
800feea: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- USART6 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART6) == RCC_PERIPHCLK_USART6)
800feee: 687b ldr r3, [r7, #4]
800fef0: 681b ldr r3, [r3, #0]
800fef2: f403 6300 and.w r3, r3, #2048 ; 0x800
800fef6: 2b00 cmp r3, #0
800fef8: d00a beq.n 800ff10 <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);
800fefa: 4950 ldr r1, [pc, #320] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fefc: 4b4f ldr r3, [pc, #316] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800fefe: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
800ff02: f423 6240 bic.w r2, r3, #3072 ; 0xc00
800ff06: 687b ldr r3, [r7, #4]
800ff08: 6d9b ldr r3, [r3, #88] ; 0x58
800ff0a: 4313 orrs r3, r2
800ff0c: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- UART7 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART7) == RCC_PERIPHCLK_UART7)
800ff10: 687b ldr r3, [r7, #4]
800ff12: 681b ldr r3, [r3, #0]
800ff14: f403 5380 and.w r3, r3, #4096 ; 0x1000
800ff18: 2b00 cmp r3, #0
800ff1a: d00a beq.n 800ff32 <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);
800ff1c: 4947 ldr r1, [pc, #284] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800ff1e: 4b47 ldr r3, [pc, #284] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800ff20: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
800ff24: f423 5240 bic.w r2, r3, #12288 ; 0x3000
800ff28: 687b ldr r3, [r7, #4]
800ff2a: 6ddb ldr r3, [r3, #92] ; 0x5c
800ff2c: 4313 orrs r3, r2
800ff2e: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- UART8 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART8) == RCC_PERIPHCLK_UART8)
800ff32: 687b ldr r3, [r7, #4]
800ff34: 681b ldr r3, [r3, #0]
800ff36: f403 5300 and.w r3, r3, #8192 ; 0x2000
800ff3a: 2b00 cmp r3, #0
800ff3c: d00a beq.n 800ff54 <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);
800ff3e: 493f ldr r1, [pc, #252] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800ff40: 4b3e ldr r3, [pc, #248] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800ff42: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
800ff46: f423 4240 bic.w r2, r3, #49152 ; 0xc000
800ff4a: 687b ldr r3, [r7, #4]
800ff4c: 6e1b ldr r3, [r3, #96] ; 0x60
800ff4e: 4313 orrs r3, r2
800ff50: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*--------------------------------------- CEC Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CEC) == RCC_PERIPHCLK_CEC)
800ff54: 687b ldr r3, [r7, #4]
800ff56: 681b ldr r3, [r3, #0]
800ff58: f403 0380 and.w r3, r3, #4194304 ; 0x400000
800ff5c: 2b00 cmp r3, #0
800ff5e: d00a beq.n 800ff76 <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);
800ff60: 4936 ldr r1, [pc, #216] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800ff62: 4b36 ldr r3, [pc, #216] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800ff64: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
800ff68: f023 6280 bic.w r2, r3, #67108864 ; 0x4000000
800ff6c: 687b ldr r3, [r7, #4]
800ff6e: 6f9b ldr r3, [r3, #120] ; 0x78
800ff70: 4313 orrs r3, r2
800ff72: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- CK48 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CLK48) == RCC_PERIPHCLK_CLK48)
800ff76: 687b ldr r3, [r7, #4]
800ff78: 681b ldr r3, [r3, #0]
800ff7a: f403 1300 and.w r3, r3, #2097152 ; 0x200000
800ff7e: 2b00 cmp r3, #0
800ff80: d011 beq.n 800ffa6 <HAL_RCCEx_PeriphCLKConfig+0x412>
{
/* Check the parameters */
assert_param(IS_RCC_CLK48SOURCE(PeriphClkInit->Clk48ClockSelection));
/* Configure the CLK48 source */
__HAL_RCC_CLK48_CONFIG(PeriphClkInit->Clk48ClockSelection);
800ff82: 492e ldr r1, [pc, #184] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800ff84: 4b2d ldr r3, [pc, #180] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800ff86: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
800ff8a: f023 6200 bic.w r2, r3, #134217728 ; 0x8000000
800ff8e: 687b ldr r3, [r7, #4]
800ff90: 6fdb ldr r3, [r3, #124] ; 0x7c
800ff92: 4313 orrs r3, r2
800ff94: 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)
800ff98: 687b ldr r3, [r7, #4]
800ff9a: 6fdb ldr r3, [r3, #124] ; 0x7c
800ff9c: f1b3 6f00 cmp.w r3, #134217728 ; 0x8000000
800ffa0: d101 bne.n 800ffa6 <HAL_RCCEx_PeriphCLKConfig+0x412>
{
pllsaiused = 1;
800ffa2: 2301 movs r3, #1
800ffa4: 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)
800ffa6: 687b ldr r3, [r7, #4]
800ffa8: 681b ldr r3, [r3, #0]
800ffaa: f003 0308 and.w r3, r3, #8
800ffae: 2b00 cmp r3, #0
800ffb0: d001 beq.n 800ffb6 <HAL_RCCEx_PeriphCLKConfig+0x422>
{
pllsaiused = 1;
800ffb2: 2301 movs r3, #1
800ffb4: 61bb str r3, [r7, #24]
}
#endif /* STM32F746xx || STM32F756xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx || STM32F750xx */
/*-------------------------------------- LPTIM1 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPTIM1) == RCC_PERIPHCLK_LPTIM1)
800ffb6: 687b ldr r3, [r7, #4]
800ffb8: 681b ldr r3, [r3, #0]
800ffba: f403 2380 and.w r3, r3, #262144 ; 0x40000
800ffbe: 2b00 cmp r3, #0
800ffc0: d00a beq.n 800ffd8 <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);
800ffc2: 491e ldr r1, [pc, #120] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800ffc4: 4b1d ldr r3, [pc, #116] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800ffc6: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
800ffca: f023 7240 bic.w r2, r3, #50331648 ; 0x3000000
800ffce: 687b ldr r3, [r7, #4]
800ffd0: 6f5b ldr r3, [r3, #116] ; 0x74
800ffd2: 4313 orrs r3, r2
800ffd4: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*------------------------------------- SDMMC1 Configuration ------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SDMMC1) == RCC_PERIPHCLK_SDMMC1)
800ffd8: 687b ldr r3, [r7, #4]
800ffda: 681b ldr r3, [r3, #0]
800ffdc: f403 0300 and.w r3, r3, #8388608 ; 0x800000
800ffe0: 2b00 cmp r3, #0
800ffe2: d00b beq.n 800fffc <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);
800ffe4: 4915 ldr r1, [pc, #84] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800ffe6: 4b15 ldr r3, [pc, #84] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
800ffe8: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
800ffec: f023 5280 bic.w r2, r3, #268435456 ; 0x10000000
800fff0: 687b ldr r3, [r7, #4]
800fff2: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
800fff6: 4313 orrs r3, r2
800fff8: 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)
800fffc: 687b ldr r3, [r7, #4]
800fffe: 681b ldr r3, [r3, #0]
8010000: f003 6380 and.w r3, r3, #67108864 ; 0x4000000
8010004: 2b00 cmp r3, #0
8010006: d00b beq.n 8010020 <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);
8010008: 490c ldr r1, [pc, #48] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801000a: 4b0c ldr r3, [pc, #48] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801000c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8010010: f023 5200 bic.w r2, r3, #536870912 ; 0x20000000
8010014: 687b ldr r3, [r7, #4]
8010016: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
801001a: 4313 orrs r3, r2
801001c: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*------------------------------------- DFSDM1 Configuration -------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_DFSDM1) == RCC_PERIPHCLK_DFSDM1)
8010020: 687b ldr r3, [r7, #4]
8010022: 681b ldr r3, [r3, #0]
8010024: f003 6300 and.w r3, r3, #134217728 ; 0x8000000
8010028: 2b00 cmp r3, #0
801002a: d00e beq.n 801004a <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);
801002c: 4903 ldr r1, [pc, #12] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801002e: 4b03 ldr r3, [pc, #12] ; (801003c <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8010030: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
8010034: f023 7200 bic.w r2, r3, #33554432 ; 0x2000000
8010038: 687b ldr r3, [r7, #4]
801003a: e001 b.n 8010040 <HAL_RCCEx_PeriphCLKConfig+0x4ac>
801003c: 40023800 .word 0x40023800
8010040: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
8010044: 4313 orrs r3, r2
8010046: f8c1 308c str.w r3, [r1, #140] ; 0x8c
}
/*------------------------------------- DFSDM AUDIO Configuration -------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_DFSDM1_AUDIO) == RCC_PERIPHCLK_DFSDM1_AUDIO)
801004a: 687b ldr r3, [r7, #4]
801004c: 681b ldr r3, [r3, #0]
801004e: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
8010052: 2b00 cmp r3, #0
8010054: d00b beq.n 801006e <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);
8010056: 4981 ldr r1, [pc, #516] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8010058: 4b80 ldr r3, [pc, #512] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
801005a: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
801005e: f023 6280 bic.w r2, r3, #67108864 ; 0x4000000
8010062: 687b ldr r3, [r7, #4]
8010064: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
8010068: 4313 orrs r3, r2
801006a: 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))
801006e: 69fb ldr r3, [r7, #28]
8010070: 2b01 cmp r3, #1
8010072: d006 beq.n 8010082 <HAL_RCCEx_PeriphCLKConfig+0x4ee>
8010074: 687b ldr r3, [r7, #4]
8010076: 681b ldr r3, [r3, #0]
8010078: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
801007c: 2b00 cmp r3, #0
801007e: f000 80d6 beq.w 801022e <HAL_RCCEx_PeriphCLKConfig+0x69a>
{
/* Disable the PLLI2S */
__HAL_RCC_PLLI2S_DISABLE();
8010082: 4a76 ldr r2, [pc, #472] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8010084: 4b75 ldr r3, [pc, #468] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8010086: 681b ldr r3, [r3, #0]
8010088: f023 6380 bic.w r3, r3, #67108864 ; 0x4000000
801008c: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
801008e: f7fd fd09 bl 800daa4 <HAL_GetTick>
8010092: 6178 str r0, [r7, #20]
/* Wait till PLLI2S is disabled */
while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) != RESET)
8010094: e008 b.n 80100a8 <HAL_RCCEx_PeriphCLKConfig+0x514>
{
if((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE)
8010096: f7fd fd05 bl 800daa4 <HAL_GetTick>
801009a: 4602 mov r2, r0
801009c: 697b ldr r3, [r7, #20]
801009e: 1ad3 subs r3, r2, r3
80100a0: 2b64 cmp r3, #100 ; 0x64
80100a2: d901 bls.n 80100a8 <HAL_RCCEx_PeriphCLKConfig+0x514>
{
/* return in case of Timeout detected */
return HAL_TIMEOUT;
80100a4: 2303 movs r3, #3
80100a6: e194 b.n 80103d2 <HAL_RCCEx_PeriphCLKConfig+0x83e>
while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) != RESET)
80100a8: 4b6c ldr r3, [pc, #432] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80100aa: 681b ldr r3, [r3, #0]
80100ac: f003 6300 and.w r3, r3, #134217728 ; 0x8000000
80100b0: 2b00 cmp r3, #0
80100b2: d1f0 bne.n 8010096 <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)))
80100b4: 687b ldr r3, [r7, #4]
80100b6: 681b ldr r3, [r3, #0]
80100b8: f003 0301 and.w r3, r3, #1
80100bc: 2b00 cmp r3, #0
80100be: d021 beq.n 8010104 <HAL_RCCEx_PeriphCLKConfig+0x570>
80100c0: 687b ldr r3, [r7, #4]
80100c2: 6b5b ldr r3, [r3, #52] ; 0x34
80100c4: 2b00 cmp r3, #0
80100c6: d11d bne.n 8010104 <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);
80100c8: 4b64 ldr r3, [pc, #400] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80100ca: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
80100ce: 0c1b lsrs r3, r3, #16
80100d0: f003 0303 and.w r3, r3, #3
80100d4: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SQ) >> RCC_PLLI2SCFGR_PLLI2SQ_Pos);
80100d6: 4b61 ldr r3, [pc, #388] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80100d8: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
80100dc: 0e1b lsrs r3, r3, #24
80100de: f003 030f and.w r3, r3, #15
80100e2: 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);
80100e4: 495d ldr r1, [pc, #372] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80100e6: 687b ldr r3, [r7, #4]
80100e8: 685b ldr r3, [r3, #4]
80100ea: 019a lsls r2, r3, #6
80100ec: 693b ldr r3, [r7, #16]
80100ee: 041b lsls r3, r3, #16
80100f0: 431a orrs r2, r3
80100f2: 68fb ldr r3, [r7, #12]
80100f4: 061b lsls r3, r3, #24
80100f6: 431a orrs r2, r3
80100f8: 687b ldr r3, [r7, #4]
80100fa: 689b ldr r3, [r3, #8]
80100fc: 071b lsls r3, r3, #28
80100fe: 4313 orrs r3, r2
8010100: 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)) ||
8010104: 687b ldr r3, [r7, #4]
8010106: 681b ldr r3, [r3, #0]
8010108: f403 2300 and.w r3, r3, #524288 ; 0x80000
801010c: 2b00 cmp r3, #0
801010e: d004 beq.n 801011a <HAL_RCCEx_PeriphCLKConfig+0x586>
8010110: 687b ldr r3, [r7, #4]
8010112: 6bdb ldr r3, [r3, #60] ; 0x3c
8010114: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000
8010118: d00a beq.n 8010130 <HAL_RCCEx_PeriphCLKConfig+0x59c>
((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S)))
801011a: 687b ldr r3, [r7, #4]
801011c: 681b ldr r3, [r3, #0]
801011e: f403 1380 and.w r3, r3, #1048576 ; 0x100000
if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLI2S)) ||
8010122: 2b00 cmp r3, #0
8010124: d02e beq.n 8010184 <HAL_RCCEx_PeriphCLKConfig+0x5f0>
((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S)))
8010126: 687b ldr r3, [r7, #4]
8010128: 6c1b ldr r3, [r3, #64] ; 0x40
801012a: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000
801012e: d129 bne.n 8010184 <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);
8010130: 4b4a ldr r3, [pc, #296] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8010132: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
8010136: 0c1b lsrs r3, r3, #16
8010138: f003 0303 and.w r3, r3, #3
801013c: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLI2SCFGR_PLLI2SR_Pos);
801013e: 4b47 ldr r3, [pc, #284] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8010140: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
8010144: 0f1b lsrs r3, r3, #28
8010146: f003 0307 and.w r3, r3, #7
801014a: 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);
801014c: 4943 ldr r1, [pc, #268] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
801014e: 687b ldr r3, [r7, #4]
8010150: 685b ldr r3, [r3, #4]
8010152: 019a lsls r2, r3, #6
8010154: 693b ldr r3, [r7, #16]
8010156: 041b lsls r3, r3, #16
8010158: 431a orrs r2, r3
801015a: 687b ldr r3, [r7, #4]
801015c: 68db ldr r3, [r3, #12]
801015e: 061b lsls r3, r3, #24
8010160: 431a orrs r2, r3
8010162: 68fb ldr r3, [r7, #12]
8010164: 071b lsls r3, r3, #28
8010166: 4313 orrs r3, r2
8010168: f8c1 3084 str.w r3, [r1, #132] ; 0x84
/* SAI_CLK_x = SAI_CLK(first level)/PLLI2SDIVQ */
__HAL_RCC_PLLI2S_PLLSAICLKDIVQ_CONFIG(PeriphClkInit->PLLI2SDivQ);
801016c: 493b ldr r1, [pc, #236] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
801016e: 4b3b ldr r3, [pc, #236] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8010170: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
8010174: f023 021f bic.w r2, r3, #31
8010178: 687b ldr r3, [r7, #4]
801017a: 6a5b ldr r3, [r3, #36] ; 0x24
801017c: 3b01 subs r3, #1
801017e: 4313 orrs r3, r2
8010180: 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)
8010184: 687b ldr r3, [r7, #4]
8010186: 681b ldr r3, [r3, #0]
8010188: f003 7380 and.w r3, r3, #16777216 ; 0x1000000
801018c: 2b00 cmp r3, #0
801018e: d01d beq.n 80101cc <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);
8010190: 4b32 ldr r3, [pc, #200] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8010192: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
8010196: 0e1b lsrs r3, r3, #24
8010198: f003 030f and.w r3, r3, #15
801019c: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLI2SCFGR_PLLI2SR_Pos);
801019e: 4b2f ldr r3, [pc, #188] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80101a0: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
80101a4: 0f1b lsrs r3, r3, #28
80101a6: f003 0307 and.w r3, r3, #7
80101aa: 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);
80101ac: 492b ldr r1, [pc, #172] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80101ae: 687b ldr r3, [r7, #4]
80101b0: 685b ldr r3, [r3, #4]
80101b2: 019a lsls r2, r3, #6
80101b4: 687b ldr r3, [r7, #4]
80101b6: 691b ldr r3, [r3, #16]
80101b8: 041b lsls r3, r3, #16
80101ba: 431a orrs r2, r3
80101bc: 693b ldr r3, [r7, #16]
80101be: 061b lsls r3, r3, #24
80101c0: 431a orrs r2, r3
80101c2: 68fb ldr r3, [r7, #12]
80101c4: 071b lsls r3, r3, #28
80101c6: 4313 orrs r3, r2
80101c8: f8c1 3084 str.w r3, [r1, #132] ; 0x84
}
/*----------------- In Case of PLLI2S is just selected -----------------*/
if((PeriphClkInit->PeriphClockSelection & RCC_PERIPHCLK_PLLI2S) == RCC_PERIPHCLK_PLLI2S)
80101cc: 687b ldr r3, [r7, #4]
80101ce: 681b ldr r3, [r3, #0]
80101d0: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
80101d4: 2b00 cmp r3, #0
80101d6: d011 beq.n 80101fc <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);
80101d8: 4920 ldr r1, [pc, #128] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80101da: 687b ldr r3, [r7, #4]
80101dc: 685b ldr r3, [r3, #4]
80101de: 019a lsls r2, r3, #6
80101e0: 687b ldr r3, [r7, #4]
80101e2: 691b ldr r3, [r3, #16]
80101e4: 041b lsls r3, r3, #16
80101e6: 431a orrs r2, r3
80101e8: 687b ldr r3, [r7, #4]
80101ea: 68db ldr r3, [r3, #12]
80101ec: 061b lsls r3, r3, #24
80101ee: 431a orrs r2, r3
80101f0: 687b ldr r3, [r7, #4]
80101f2: 689b ldr r3, [r3, #8]
80101f4: 071b lsls r3, r3, #28
80101f6: 4313 orrs r3, r2
80101f8: f8c1 3084 str.w r3, [r1, #132] ; 0x84
}
/* Enable the PLLI2S */
__HAL_RCC_PLLI2S_ENABLE();
80101fc: 4a17 ldr r2, [pc, #92] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80101fe: 4b17 ldr r3, [pc, #92] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8010200: 681b ldr r3, [r3, #0]
8010202: f043 6380 orr.w r3, r3, #67108864 ; 0x4000000
8010206: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
8010208: f7fd fc4c bl 800daa4 <HAL_GetTick>
801020c: 6178 str r0, [r7, #20]
/* Wait till PLLI2S is ready */
while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) == RESET)
801020e: e008 b.n 8010222 <HAL_RCCEx_PeriphCLKConfig+0x68e>
{
if((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE)
8010210: f7fd fc48 bl 800daa4 <HAL_GetTick>
8010214: 4602 mov r2, r0
8010216: 697b ldr r3, [r7, #20]
8010218: 1ad3 subs r3, r2, r3
801021a: 2b64 cmp r3, #100 ; 0x64
801021c: d901 bls.n 8010222 <HAL_RCCEx_PeriphCLKConfig+0x68e>
{
/* return in case of Timeout detected */
return HAL_TIMEOUT;
801021e: 2303 movs r3, #3
8010220: e0d7 b.n 80103d2 <HAL_RCCEx_PeriphCLKConfig+0x83e>
while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) == RESET)
8010222: 4b0e ldr r3, [pc, #56] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8010224: 681b ldr r3, [r3, #0]
8010226: f003 6300 and.w r3, r3, #134217728 ; 0x8000000
801022a: 2b00 cmp r3, #0
801022c: d0f0 beq.n 8010210 <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)
801022e: 69bb ldr r3, [r7, #24]
8010230: 2b01 cmp r3, #1
8010232: f040 80cd bne.w 80103d0 <HAL_RCCEx_PeriphCLKConfig+0x83c>
{
/* Disable PLLSAI Clock */
__HAL_RCC_PLLSAI_DISABLE();
8010236: 4a09 ldr r2, [pc, #36] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8010238: 4b08 ldr r3, [pc, #32] ; (801025c <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
801023a: 681b ldr r3, [r3, #0]
801023c: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000
8010240: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
8010242: f7fd fc2f bl 800daa4 <HAL_GetTick>
8010246: 6178 str r0, [r7, #20]
/* Wait till PLLSAI is disabled */
while(__HAL_RCC_PLLSAI_GET_FLAG() != RESET)
8010248: e00a b.n 8010260 <HAL_RCCEx_PeriphCLKConfig+0x6cc>
{
if((HAL_GetTick() - tickstart) > PLLSAI_TIMEOUT_VALUE)
801024a: f7fd fc2b bl 800daa4 <HAL_GetTick>
801024e: 4602 mov r2, r0
8010250: 697b ldr r3, [r7, #20]
8010252: 1ad3 subs r3, r2, r3
8010254: 2b64 cmp r3, #100 ; 0x64
8010256: d903 bls.n 8010260 <HAL_RCCEx_PeriphCLKConfig+0x6cc>
{
/* return in case of Timeout detected */
return HAL_TIMEOUT;
8010258: 2303 movs r3, #3
801025a: e0ba b.n 80103d2 <HAL_RCCEx_PeriphCLKConfig+0x83e>
801025c: 40023800 .word 0x40023800
while(__HAL_RCC_PLLSAI_GET_FLAG() != RESET)
8010260: 4b5e ldr r3, [pc, #376] ; (80103dc <HAL_RCCEx_PeriphCLKConfig+0x848>)
8010262: 681b ldr r3, [r3, #0]
8010264: f003 5300 and.w r3, r3, #536870912 ; 0x20000000
8010268: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000
801026c: d0ed beq.n 801024a <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)) ||\
801026e: 687b ldr r3, [r7, #4]
8010270: 681b ldr r3, [r3, #0]
8010272: f403 2300 and.w r3, r3, #524288 ; 0x80000
8010276: 2b00 cmp r3, #0
8010278: d003 beq.n 8010282 <HAL_RCCEx_PeriphCLKConfig+0x6ee>
801027a: 687b ldr r3, [r7, #4]
801027c: 6bdb ldr r3, [r3, #60] ; 0x3c
801027e: 2b00 cmp r3, #0
8010280: d009 beq.n 8010296 <HAL_RCCEx_PeriphCLKConfig+0x702>
((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI)))
8010282: 687b ldr r3, [r7, #4]
8010284: 681b ldr r3, [r3, #0]
8010286: f403 1380 and.w r3, r3, #1048576 ; 0x100000
if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI)) ||\
801028a: 2b00 cmp r3, #0
801028c: d02e beq.n 80102ec <HAL_RCCEx_PeriphCLKConfig+0x758>
((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI)))
801028e: 687b ldr r3, [r7, #4]
8010290: 6c1b ldr r3, [r3, #64] ; 0x40
8010292: 2b00 cmp r3, #0
8010294: d12a bne.n 80102ec <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);
8010296: 4b51 ldr r3, [pc, #324] ; (80103dc <HAL_RCCEx_PeriphCLKConfig+0x848>)
8010298: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
801029c: 0c1b lsrs r3, r3, #16
801029e: f003 0303 and.w r3, r3, #3
80102a2: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLSAICFGR_PLLSAIR_Pos);
80102a4: 4b4d ldr r3, [pc, #308] ; (80103dc <HAL_RCCEx_PeriphCLKConfig+0x848>)
80102a6: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
80102aa: 0f1b lsrs r3, r3, #28
80102ac: f003 0307 and.w r3, r3, #7
80102b0: 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);
80102b2: 494a ldr r1, [pc, #296] ; (80103dc <HAL_RCCEx_PeriphCLKConfig+0x848>)
80102b4: 687b ldr r3, [r7, #4]
80102b6: 695b ldr r3, [r3, #20]
80102b8: 019a lsls r2, r3, #6
80102ba: 693b ldr r3, [r7, #16]
80102bc: 041b lsls r3, r3, #16
80102be: 431a orrs r2, r3
80102c0: 687b ldr r3, [r7, #4]
80102c2: 699b ldr r3, [r3, #24]
80102c4: 061b lsls r3, r3, #24
80102c6: 431a orrs r2, r3
80102c8: 68fb ldr r3, [r7, #12]
80102ca: 071b lsls r3, r3, #28
80102cc: 4313 orrs r3, r2
80102ce: f8c1 3088 str.w r3, [r1, #136] ; 0x88
/* SAI_CLK_x = SAI_CLK(first level)/PLLSAIDIVQ */
__HAL_RCC_PLLSAI_PLLSAICLKDIVQ_CONFIG(PeriphClkInit->PLLSAIDivQ);
80102d2: 4942 ldr r1, [pc, #264] ; (80103dc <HAL_RCCEx_PeriphCLKConfig+0x848>)
80102d4: 4b41 ldr r3, [pc, #260] ; (80103dc <HAL_RCCEx_PeriphCLKConfig+0x848>)
80102d6: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
80102da: f423 52f8 bic.w r2, r3, #7936 ; 0x1f00
80102de: 687b ldr r3, [r7, #4]
80102e0: 6a9b ldr r3, [r3, #40] ; 0x28
80102e2: 3b01 subs r3, #1
80102e4: 021b lsls r3, r3, #8
80102e6: 4313 orrs r3, r2
80102e8: 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))
80102ec: 687b ldr r3, [r7, #4]
80102ee: 681b ldr r3, [r3, #0]
80102f0: f403 1300 and.w r3, r3, #2097152 ; 0x200000
80102f4: 2b00 cmp r3, #0
80102f6: d022 beq.n 801033e <HAL_RCCEx_PeriphCLKConfig+0x7aa>
80102f8: 687b ldr r3, [r7, #4]
80102fa: 6fdb ldr r3, [r3, #124] ; 0x7c
80102fc: f1b3 6f00 cmp.w r3, #134217728 ; 0x8000000
8010300: d11d bne.n 801033e <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);
8010302: 4b36 ldr r3, [pc, #216] ; (80103dc <HAL_RCCEx_PeriphCLKConfig+0x848>)
8010304: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
8010308: 0e1b lsrs r3, r3, #24
801030a: f003 030f and.w r3, r3, #15
801030e: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIR) >> RCC_PLLSAICFGR_PLLSAIR_Pos);
8010310: 4b32 ldr r3, [pc, #200] ; (80103dc <HAL_RCCEx_PeriphCLKConfig+0x848>)
8010312: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
8010316: 0f1b lsrs r3, r3, #28
8010318: f003 0307 and.w r3, r3, #7
801031c: 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);
801031e: 492f ldr r1, [pc, #188] ; (80103dc <HAL_RCCEx_PeriphCLKConfig+0x848>)
8010320: 687b ldr r3, [r7, #4]
8010322: 695b ldr r3, [r3, #20]
8010324: 019a lsls r2, r3, #6
8010326: 687b ldr r3, [r7, #4]
8010328: 6a1b ldr r3, [r3, #32]
801032a: 041b lsls r3, r3, #16
801032c: 431a orrs r2, r3
801032e: 693b ldr r3, [r7, #16]
8010330: 061b lsls r3, r3, #24
8010332: 431a orrs r2, r3
8010334: 68fb ldr r3, [r7, #12]
8010336: 071b lsls r3, r3, #28
8010338: 4313 orrs r3, r2
801033a: 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))
801033e: 687b ldr r3, [r7, #4]
8010340: 681b ldr r3, [r3, #0]
8010342: f003 0308 and.w r3, r3, #8
8010346: 2b00 cmp r3, #0
8010348: d028 beq.n 801039c <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);
801034a: 4b24 ldr r3, [pc, #144] ; (80103dc <HAL_RCCEx_PeriphCLKConfig+0x848>)
801034c: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
8010350: 0e1b lsrs r3, r3, #24
8010352: f003 030f and.w r3, r3, #15
8010356: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIP) >> RCC_PLLSAICFGR_PLLSAIP_Pos);
8010358: 4b20 ldr r3, [pc, #128] ; (80103dc <HAL_RCCEx_PeriphCLKConfig+0x848>)
801035a: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
801035e: 0c1b lsrs r3, r3, #16
8010360: f003 0303 and.w r3, r3, #3
8010364: 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);
8010366: 491d ldr r1, [pc, #116] ; (80103dc <HAL_RCCEx_PeriphCLKConfig+0x848>)
8010368: 687b ldr r3, [r7, #4]
801036a: 695b ldr r3, [r3, #20]
801036c: 019a lsls r2, r3, #6
801036e: 68fb ldr r3, [r7, #12]
8010370: 041b lsls r3, r3, #16
8010372: 431a orrs r2, r3
8010374: 693b ldr r3, [r7, #16]
8010376: 061b lsls r3, r3, #24
8010378: 431a orrs r2, r3
801037a: 687b ldr r3, [r7, #4]
801037c: 69db ldr r3, [r3, #28]
801037e: 071b lsls r3, r3, #28
8010380: 4313 orrs r3, r2
8010382: f8c1 3088 str.w r3, [r1, #136] ; 0x88
/* LTDC_CLK = LTDC_CLK(first level)/PLLSAIDIVR */
__HAL_RCC_PLLSAI_PLLSAICLKDIVR_CONFIG(PeriphClkInit->PLLSAIDivR);
8010386: 4915 ldr r1, [pc, #84] ; (80103dc <HAL_RCCEx_PeriphCLKConfig+0x848>)
8010388: 4b14 ldr r3, [pc, #80] ; (80103dc <HAL_RCCEx_PeriphCLKConfig+0x848>)
801038a: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
801038e: f423 3240 bic.w r2, r3, #196608 ; 0x30000
8010392: 687b ldr r3, [r7, #4]
8010394: 6adb ldr r3, [r3, #44] ; 0x2c
8010396: 4313 orrs r3, r2
8010398: f8c1 308c str.w r3, [r1, #140] ; 0x8c
}
#endif /* STM32F746xx || STM32F756xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx || STM32F750xx */
/* Enable PLLSAI Clock */
__HAL_RCC_PLLSAI_ENABLE();
801039c: 4a0f ldr r2, [pc, #60] ; (80103dc <HAL_RCCEx_PeriphCLKConfig+0x848>)
801039e: 4b0f ldr r3, [pc, #60] ; (80103dc <HAL_RCCEx_PeriphCLKConfig+0x848>)
80103a0: 681b ldr r3, [r3, #0]
80103a2: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
80103a6: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
80103a8: f7fd fb7c bl 800daa4 <HAL_GetTick>
80103ac: 6178 str r0, [r7, #20]
/* Wait till PLLSAI is ready */
while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET)
80103ae: e008 b.n 80103c2 <HAL_RCCEx_PeriphCLKConfig+0x82e>
{
if((HAL_GetTick() - tickstart) > PLLSAI_TIMEOUT_VALUE)
80103b0: f7fd fb78 bl 800daa4 <HAL_GetTick>
80103b4: 4602 mov r2, r0
80103b6: 697b ldr r3, [r7, #20]
80103b8: 1ad3 subs r3, r2, r3
80103ba: 2b64 cmp r3, #100 ; 0x64
80103bc: d901 bls.n 80103c2 <HAL_RCCEx_PeriphCLKConfig+0x82e>
{
/* return in case of Timeout detected */
return HAL_TIMEOUT;
80103be: 2303 movs r3, #3
80103c0: e007 b.n 80103d2 <HAL_RCCEx_PeriphCLKConfig+0x83e>
while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET)
80103c2: 4b06 ldr r3, [pc, #24] ; (80103dc <HAL_RCCEx_PeriphCLKConfig+0x848>)
80103c4: 681b ldr r3, [r3, #0]
80103c6: f003 5300 and.w r3, r3, #536870912 ; 0x20000000
80103ca: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000
80103ce: d1ef bne.n 80103b0 <HAL_RCCEx_PeriphCLKConfig+0x81c>
}
}
}
return HAL_OK;
80103d0: 2300 movs r3, #0
}
80103d2: 4618 mov r0, r3
80103d4: 3720 adds r7, #32
80103d6: 46bd mov sp, r7
80103d8: bd80 pop {r7, pc}
80103da: bf00 nop
80103dc: 40023800 .word 0x40023800
080103e0 <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)
{
80103e0: b580 push {r7, lr}
80103e2: b082 sub sp, #8
80103e4: af00 add r7, sp, #0
80103e6: 6078 str r0, [r7, #4]
/* Check the TIM handle allocation */
if (htim == NULL)
80103e8: 687b ldr r3, [r7, #4]
80103ea: 2b00 cmp r3, #0
80103ec: d101 bne.n 80103f2 <HAL_TIM_Base_Init+0x12>
{
return HAL_ERROR;
80103ee: 2301 movs r3, #1
80103f0: e049 b.n 8010486 <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)
80103f2: 687b ldr r3, [r7, #4]
80103f4: f893 303d ldrb.w r3, [r3, #61] ; 0x3d
80103f8: b2db uxtb r3, r3
80103fa: 2b00 cmp r3, #0
80103fc: d106 bne.n 801040c <HAL_TIM_Base_Init+0x2c>
{
/* Allocate lock resource and initialize it */
htim->Lock = HAL_UNLOCKED;
80103fe: 687b ldr r3, [r7, #4]
8010400: 2200 movs r2, #0
8010402: 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);
8010406: 6878 ldr r0, [r7, #4]
8010408: f7fb fd5e bl 800bec8 <HAL_TIM_Base_MspInit>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
/* Set the TIM state */
htim->State = HAL_TIM_STATE_BUSY;
801040c: 687b ldr r3, [r7, #4]
801040e: 2202 movs r2, #2
8010410: f883 203d strb.w r2, [r3, #61] ; 0x3d
/* Set the Time Base configuration */
TIM_Base_SetConfig(htim->Instance, &htim->Init);
8010414: 687b ldr r3, [r7, #4]
8010416: 681a ldr r2, [r3, #0]
8010418: 687b ldr r3, [r7, #4]
801041a: 3304 adds r3, #4
801041c: 4619 mov r1, r3
801041e: 4610 mov r0, r2
8010420: f000 f9f6 bl 8010810 <TIM_Base_SetConfig>
/* Initialize the DMA burst operation state */
htim->DMABurstState = HAL_DMA_BURST_STATE_READY;
8010424: 687b ldr r3, [r7, #4]
8010426: 2201 movs r2, #1
8010428: f883 2048 strb.w r2, [r3, #72] ; 0x48
/* Initialize the TIM channels state */
TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY);
801042c: 687b ldr r3, [r7, #4]
801042e: 2201 movs r2, #1
8010430: f883 203e strb.w r2, [r3, #62] ; 0x3e
8010434: 687b ldr r3, [r7, #4]
8010436: 2201 movs r2, #1
8010438: f883 203f strb.w r2, [r3, #63] ; 0x3f
801043c: 687b ldr r3, [r7, #4]
801043e: 2201 movs r2, #1
8010440: f883 2040 strb.w r2, [r3, #64] ; 0x40
8010444: 687b ldr r3, [r7, #4]
8010446: 2201 movs r2, #1
8010448: f883 2041 strb.w r2, [r3, #65] ; 0x41
801044c: 687b ldr r3, [r7, #4]
801044e: 2201 movs r2, #1
8010450: f883 2042 strb.w r2, [r3, #66] ; 0x42
8010454: 687b ldr r3, [r7, #4]
8010456: 2201 movs r2, #1
8010458: f883 2043 strb.w r2, [r3, #67] ; 0x43
TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY);
801045c: 687b ldr r3, [r7, #4]
801045e: 2201 movs r2, #1
8010460: f883 2044 strb.w r2, [r3, #68] ; 0x44
8010464: 687b ldr r3, [r7, #4]
8010466: 2201 movs r2, #1
8010468: f883 2045 strb.w r2, [r3, #69] ; 0x45
801046c: 687b ldr r3, [r7, #4]
801046e: 2201 movs r2, #1
8010470: f883 2046 strb.w r2, [r3, #70] ; 0x46
8010474: 687b ldr r3, [r7, #4]
8010476: 2201 movs r2, #1
8010478: f883 2047 strb.w r2, [r3, #71] ; 0x47
/* Initialize the TIM state*/
htim->State = HAL_TIM_STATE_READY;
801047c: 687b ldr r3, [r7, #4]
801047e: 2201 movs r2, #1
8010480: f883 203d strb.w r2, [r3, #61] ; 0x3d
return HAL_OK;
8010484: 2300 movs r3, #0
}
8010486: 4618 mov r0, r3
8010488: 3708 adds r7, #8
801048a: 46bd mov sp, r7
801048c: bd80 pop {r7, pc}
...
08010490 <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)
{
8010490: b480 push {r7}
8010492: b085 sub sp, #20
8010494: af00 add r7, sp, #0
8010496: 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)
8010498: 687b ldr r3, [r7, #4]
801049a: f893 303d ldrb.w r3, [r3, #61] ; 0x3d
801049e: b2db uxtb r3, r3
80104a0: 2b01 cmp r3, #1
80104a2: d001 beq.n 80104a8 <HAL_TIM_Base_Start_IT+0x18>
{
return HAL_ERROR;
80104a4: 2301 movs r3, #1
80104a6: e054 b.n 8010552 <HAL_TIM_Base_Start_IT+0xc2>
}
/* Set the TIM state */
htim->State = HAL_TIM_STATE_BUSY;
80104a8: 687b ldr r3, [r7, #4]
80104aa: 2202 movs r2, #2
80104ac: f883 203d strb.w r2, [r3, #61] ; 0x3d
/* Enable the TIM Update interrupt */
__HAL_TIM_ENABLE_IT(htim, TIM_IT_UPDATE);
80104b0: 687b ldr r3, [r7, #4]
80104b2: 681b ldr r3, [r3, #0]
80104b4: 687a ldr r2, [r7, #4]
80104b6: 6812 ldr r2, [r2, #0]
80104b8: 68d2 ldr r2, [r2, #12]
80104ba: f042 0201 orr.w r2, r2, #1
80104be: 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))
80104c0: 687b ldr r3, [r7, #4]
80104c2: 681b ldr r3, [r3, #0]
80104c4: 4a26 ldr r2, [pc, #152] ; (8010560 <HAL_TIM_Base_Start_IT+0xd0>)
80104c6: 4293 cmp r3, r2
80104c8: d022 beq.n 8010510 <HAL_TIM_Base_Start_IT+0x80>
80104ca: 687b ldr r3, [r7, #4]
80104cc: 681b ldr r3, [r3, #0]
80104ce: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000
80104d2: d01d beq.n 8010510 <HAL_TIM_Base_Start_IT+0x80>
80104d4: 687b ldr r3, [r7, #4]
80104d6: 681b ldr r3, [r3, #0]
80104d8: 4a22 ldr r2, [pc, #136] ; (8010564 <HAL_TIM_Base_Start_IT+0xd4>)
80104da: 4293 cmp r3, r2
80104dc: d018 beq.n 8010510 <HAL_TIM_Base_Start_IT+0x80>
80104de: 687b ldr r3, [r7, #4]
80104e0: 681b ldr r3, [r3, #0]
80104e2: 4a21 ldr r2, [pc, #132] ; (8010568 <HAL_TIM_Base_Start_IT+0xd8>)
80104e4: 4293 cmp r3, r2
80104e6: d013 beq.n 8010510 <HAL_TIM_Base_Start_IT+0x80>
80104e8: 687b ldr r3, [r7, #4]
80104ea: 681b ldr r3, [r3, #0]
80104ec: 4a1f ldr r2, [pc, #124] ; (801056c <HAL_TIM_Base_Start_IT+0xdc>)
80104ee: 4293 cmp r3, r2
80104f0: d00e beq.n 8010510 <HAL_TIM_Base_Start_IT+0x80>
80104f2: 687b ldr r3, [r7, #4]
80104f4: 681b ldr r3, [r3, #0]
80104f6: 4a1e ldr r2, [pc, #120] ; (8010570 <HAL_TIM_Base_Start_IT+0xe0>)
80104f8: 4293 cmp r3, r2
80104fa: d009 beq.n 8010510 <HAL_TIM_Base_Start_IT+0x80>
80104fc: 687b ldr r3, [r7, #4]
80104fe: 681b ldr r3, [r3, #0]
8010500: 4a1c ldr r2, [pc, #112] ; (8010574 <HAL_TIM_Base_Start_IT+0xe4>)
8010502: 4293 cmp r3, r2
8010504: d004 beq.n 8010510 <HAL_TIM_Base_Start_IT+0x80>
8010506: 687b ldr r3, [r7, #4]
8010508: 681b ldr r3, [r3, #0]
801050a: 4a1b ldr r2, [pc, #108] ; (8010578 <HAL_TIM_Base_Start_IT+0xe8>)
801050c: 4293 cmp r3, r2
801050e: d115 bne.n 801053c <HAL_TIM_Base_Start_IT+0xac>
{
tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
8010510: 687b ldr r3, [r7, #4]
8010512: 681b ldr r3, [r3, #0]
8010514: 689a ldr r2, [r3, #8]
8010516: 4b19 ldr r3, [pc, #100] ; (801057c <HAL_TIM_Base_Start_IT+0xec>)
8010518: 4013 ands r3, r2
801051a: 60fb str r3, [r7, #12]
if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
801051c: 68fb ldr r3, [r7, #12]
801051e: 2b06 cmp r3, #6
8010520: d015 beq.n 801054e <HAL_TIM_Base_Start_IT+0xbe>
8010522: 68fb ldr r3, [r7, #12]
8010524: f5b3 3f80 cmp.w r3, #65536 ; 0x10000
8010528: d011 beq.n 801054e <HAL_TIM_Base_Start_IT+0xbe>
{
__HAL_TIM_ENABLE(htim);
801052a: 687b ldr r3, [r7, #4]
801052c: 681b ldr r3, [r3, #0]
801052e: 687a ldr r2, [r7, #4]
8010530: 6812 ldr r2, [r2, #0]
8010532: 6812 ldr r2, [r2, #0]
8010534: f042 0201 orr.w r2, r2, #1
8010538: 601a str r2, [r3, #0]
if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
801053a: e008 b.n 801054e <HAL_TIM_Base_Start_IT+0xbe>
}
}
else
{
__HAL_TIM_ENABLE(htim);
801053c: 687b ldr r3, [r7, #4]
801053e: 681b ldr r3, [r3, #0]
8010540: 687a ldr r2, [r7, #4]
8010542: 6812 ldr r2, [r2, #0]
8010544: 6812 ldr r2, [r2, #0]
8010546: f042 0201 orr.w r2, r2, #1
801054a: 601a str r2, [r3, #0]
801054c: e000 b.n 8010550 <HAL_TIM_Base_Start_IT+0xc0>
if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
801054e: bf00 nop
}
/* Return function status */
return HAL_OK;
8010550: 2300 movs r3, #0
}
8010552: 4618 mov r0, r3
8010554: 3714 adds r7, #20
8010556: 46bd mov sp, r7
8010558: f85d 7b04 ldr.w r7, [sp], #4
801055c: 4770 bx lr
801055e: bf00 nop
8010560: 40010000 .word 0x40010000
8010564: 40000400 .word 0x40000400
8010568: 40000800 .word 0x40000800
801056c: 40000c00 .word 0x40000c00
8010570: 40010400 .word 0x40010400
8010574: 40014000 .word 0x40014000
8010578: 40001800 .word 0x40001800
801057c: 00010007 .word 0x00010007
08010580 <HAL_TIM_IRQHandler>:
* @brief This function handles TIM interrupts requests.
* @param htim TIM handle
* @retval None
*/
void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim)
{
8010580: b580 push {r7, lr}
8010582: b082 sub sp, #8
8010584: af00 add r7, sp, #0
8010586: 6078 str r0, [r7, #4]
/* Capture compare 1 event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1) != RESET)
8010588: 687b ldr r3, [r7, #4]
801058a: 681b ldr r3, [r3, #0]
801058c: 691b ldr r3, [r3, #16]
801058e: f003 0302 and.w r3, r3, #2
8010592: 2b02 cmp r3, #2
8010594: d122 bne.n 80105dc <HAL_TIM_IRQHandler+0x5c>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC1) != RESET)
8010596: 687b ldr r3, [r7, #4]
8010598: 681b ldr r3, [r3, #0]
801059a: 68db ldr r3, [r3, #12]
801059c: f003 0302 and.w r3, r3, #2
80105a0: 2b02 cmp r3, #2
80105a2: d11b bne.n 80105dc <HAL_TIM_IRQHandler+0x5c>
{
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_CC1);
80105a4: 687b ldr r3, [r7, #4]
80105a6: 681b ldr r3, [r3, #0]
80105a8: f06f 0202 mvn.w r2, #2
80105ac: 611a str r2, [r3, #16]
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1;
80105ae: 687b ldr r3, [r7, #4]
80105b0: 2201 movs r2, #1
80105b2: 771a strb r2, [r3, #28]
/* Input capture event */
if ((htim->Instance->CCMR1 & TIM_CCMR1_CC1S) != 0x00U)
80105b4: 687b ldr r3, [r7, #4]
80105b6: 681b ldr r3, [r3, #0]
80105b8: 699b ldr r3, [r3, #24]
80105ba: f003 0303 and.w r3, r3, #3
80105be: 2b00 cmp r3, #0
80105c0: d003 beq.n 80105ca <HAL_TIM_IRQHandler+0x4a>
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->IC_CaptureCallback(htim);
#else
HAL_TIM_IC_CaptureCallback(htim);
80105c2: 6878 ldr r0, [r7, #4]
80105c4: f000 f905 bl 80107d2 <HAL_TIM_IC_CaptureCallback>
80105c8: e005 b.n 80105d6 <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);
80105ca: 6878 ldr r0, [r7, #4]
80105cc: f000 f8f7 bl 80107be <HAL_TIM_OC_DelayElapsedCallback>
HAL_TIM_PWM_PulseFinishedCallback(htim);
80105d0: 6878 ldr r0, [r7, #4]
80105d2: f000 f908 bl 80107e6 <HAL_TIM_PWM_PulseFinishedCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
80105d6: 687b ldr r3, [r7, #4]
80105d8: 2200 movs r2, #0
80105da: 771a strb r2, [r3, #28]
}
}
}
/* Capture compare 2 event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC2) != RESET)
80105dc: 687b ldr r3, [r7, #4]
80105de: 681b ldr r3, [r3, #0]
80105e0: 691b ldr r3, [r3, #16]
80105e2: f003 0304 and.w r3, r3, #4
80105e6: 2b04 cmp r3, #4
80105e8: d122 bne.n 8010630 <HAL_TIM_IRQHandler+0xb0>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC2) != RESET)
80105ea: 687b ldr r3, [r7, #4]
80105ec: 681b ldr r3, [r3, #0]
80105ee: 68db ldr r3, [r3, #12]
80105f0: f003 0304 and.w r3, r3, #4
80105f4: 2b04 cmp r3, #4
80105f6: d11b bne.n 8010630 <HAL_TIM_IRQHandler+0xb0>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_CC2);
80105f8: 687b ldr r3, [r7, #4]
80105fa: 681b ldr r3, [r3, #0]
80105fc: f06f 0204 mvn.w r2, #4
8010600: 611a str r2, [r3, #16]
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2;
8010602: 687b ldr r3, [r7, #4]
8010604: 2202 movs r2, #2
8010606: 771a strb r2, [r3, #28]
/* Input capture event */
if ((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U)
8010608: 687b ldr r3, [r7, #4]
801060a: 681b ldr r3, [r3, #0]
801060c: 699b ldr r3, [r3, #24]
801060e: f403 7340 and.w r3, r3, #768 ; 0x300
8010612: 2b00 cmp r3, #0
8010614: d003 beq.n 801061e <HAL_TIM_IRQHandler+0x9e>
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->IC_CaptureCallback(htim);
#else
HAL_TIM_IC_CaptureCallback(htim);
8010616: 6878 ldr r0, [r7, #4]
8010618: f000 f8db bl 80107d2 <HAL_TIM_IC_CaptureCallback>
801061c: e005 b.n 801062a <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);
801061e: 6878 ldr r0, [r7, #4]
8010620: f000 f8cd bl 80107be <HAL_TIM_OC_DelayElapsedCallback>
HAL_TIM_PWM_PulseFinishedCallback(htim);
8010624: 6878 ldr r0, [r7, #4]
8010626: f000 f8de bl 80107e6 <HAL_TIM_PWM_PulseFinishedCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
801062a: 687b ldr r3, [r7, #4]
801062c: 2200 movs r2, #0
801062e: 771a strb r2, [r3, #28]
}
}
/* Capture compare 3 event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC3) != RESET)
8010630: 687b ldr r3, [r7, #4]
8010632: 681b ldr r3, [r3, #0]
8010634: 691b ldr r3, [r3, #16]
8010636: f003 0308 and.w r3, r3, #8
801063a: 2b08 cmp r3, #8
801063c: d122 bne.n 8010684 <HAL_TIM_IRQHandler+0x104>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC3) != RESET)
801063e: 687b ldr r3, [r7, #4]
8010640: 681b ldr r3, [r3, #0]
8010642: 68db ldr r3, [r3, #12]
8010644: f003 0308 and.w r3, r3, #8
8010648: 2b08 cmp r3, #8
801064a: d11b bne.n 8010684 <HAL_TIM_IRQHandler+0x104>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_CC3);
801064c: 687b ldr r3, [r7, #4]
801064e: 681b ldr r3, [r3, #0]
8010650: f06f 0208 mvn.w r2, #8
8010654: 611a str r2, [r3, #16]
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3;
8010656: 687b ldr r3, [r7, #4]
8010658: 2204 movs r2, #4
801065a: 771a strb r2, [r3, #28]
/* Input capture event */
if ((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U)
801065c: 687b ldr r3, [r7, #4]
801065e: 681b ldr r3, [r3, #0]
8010660: 69db ldr r3, [r3, #28]
8010662: f003 0303 and.w r3, r3, #3
8010666: 2b00 cmp r3, #0
8010668: d003 beq.n 8010672 <HAL_TIM_IRQHandler+0xf2>
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->IC_CaptureCallback(htim);
#else
HAL_TIM_IC_CaptureCallback(htim);
801066a: 6878 ldr r0, [r7, #4]
801066c: f000 f8b1 bl 80107d2 <HAL_TIM_IC_CaptureCallback>
8010670: e005 b.n 801067e <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);
8010672: 6878 ldr r0, [r7, #4]
8010674: f000 f8a3 bl 80107be <HAL_TIM_OC_DelayElapsedCallback>
HAL_TIM_PWM_PulseFinishedCallback(htim);
8010678: 6878 ldr r0, [r7, #4]
801067a: f000 f8b4 bl 80107e6 <HAL_TIM_PWM_PulseFinishedCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
801067e: 687b ldr r3, [r7, #4]
8010680: 2200 movs r2, #0
8010682: 771a strb r2, [r3, #28]
}
}
/* Capture compare 4 event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC4) != RESET)
8010684: 687b ldr r3, [r7, #4]
8010686: 681b ldr r3, [r3, #0]
8010688: 691b ldr r3, [r3, #16]
801068a: f003 0310 and.w r3, r3, #16
801068e: 2b10 cmp r3, #16
8010690: d122 bne.n 80106d8 <HAL_TIM_IRQHandler+0x158>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC4) != RESET)
8010692: 687b ldr r3, [r7, #4]
8010694: 681b ldr r3, [r3, #0]
8010696: 68db ldr r3, [r3, #12]
8010698: f003 0310 and.w r3, r3, #16
801069c: 2b10 cmp r3, #16
801069e: d11b bne.n 80106d8 <HAL_TIM_IRQHandler+0x158>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_CC4);
80106a0: 687b ldr r3, [r7, #4]
80106a2: 681b ldr r3, [r3, #0]
80106a4: f06f 0210 mvn.w r2, #16
80106a8: 611a str r2, [r3, #16]
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4;
80106aa: 687b ldr r3, [r7, #4]
80106ac: 2208 movs r2, #8
80106ae: 771a strb r2, [r3, #28]
/* Input capture event */
if ((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U)
80106b0: 687b ldr r3, [r7, #4]
80106b2: 681b ldr r3, [r3, #0]
80106b4: 69db ldr r3, [r3, #28]
80106b6: f403 7340 and.w r3, r3, #768 ; 0x300
80106ba: 2b00 cmp r3, #0
80106bc: d003 beq.n 80106c6 <HAL_TIM_IRQHandler+0x146>
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->IC_CaptureCallback(htim);
#else
HAL_TIM_IC_CaptureCallback(htim);
80106be: 6878 ldr r0, [r7, #4]
80106c0: f000 f887 bl 80107d2 <HAL_TIM_IC_CaptureCallback>
80106c4: e005 b.n 80106d2 <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);
80106c6: 6878 ldr r0, [r7, #4]
80106c8: f000 f879 bl 80107be <HAL_TIM_OC_DelayElapsedCallback>
HAL_TIM_PWM_PulseFinishedCallback(htim);
80106cc: 6878 ldr r0, [r7, #4]
80106ce: f000 f88a bl 80107e6 <HAL_TIM_PWM_PulseFinishedCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
80106d2: 687b ldr r3, [r7, #4]
80106d4: 2200 movs r2, #0
80106d6: 771a strb r2, [r3, #28]
}
}
/* TIM Update event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_UPDATE) != RESET)
80106d8: 687b ldr r3, [r7, #4]
80106da: 681b ldr r3, [r3, #0]
80106dc: 691b ldr r3, [r3, #16]
80106de: f003 0301 and.w r3, r3, #1
80106e2: 2b01 cmp r3, #1
80106e4: d10e bne.n 8010704 <HAL_TIM_IRQHandler+0x184>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_UPDATE) != RESET)
80106e6: 687b ldr r3, [r7, #4]
80106e8: 681b ldr r3, [r3, #0]
80106ea: 68db ldr r3, [r3, #12]
80106ec: f003 0301 and.w r3, r3, #1
80106f0: 2b01 cmp r3, #1
80106f2: d107 bne.n 8010704 <HAL_TIM_IRQHandler+0x184>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE);
80106f4: 687b ldr r3, [r7, #4]
80106f6: 681b ldr r3, [r3, #0]
80106f8: f06f 0201 mvn.w r2, #1
80106fc: 611a str r2, [r3, #16]
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->PeriodElapsedCallback(htim);
#else
HAL_TIM_PeriodElapsedCallback(htim);
80106fe: 6878 ldr r0, [r7, #4]
8010700: f7fb fc30 bl 800bf64 <HAL_TIM_PeriodElapsedCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
/* TIM Break input event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK) != RESET)
8010704: 687b ldr r3, [r7, #4]
8010706: 681b ldr r3, [r3, #0]
8010708: 691b ldr r3, [r3, #16]
801070a: f003 0380 and.w r3, r3, #128 ; 0x80
801070e: 2b80 cmp r3, #128 ; 0x80
8010710: d10e bne.n 8010730 <HAL_TIM_IRQHandler+0x1b0>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET)
8010712: 687b ldr r3, [r7, #4]
8010714: 681b ldr r3, [r3, #0]
8010716: 68db ldr r3, [r3, #12]
8010718: f003 0380 and.w r3, r3, #128 ; 0x80
801071c: 2b80 cmp r3, #128 ; 0x80
801071e: d107 bne.n 8010730 <HAL_TIM_IRQHandler+0x1b0>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_BREAK);
8010720: 687b ldr r3, [r7, #4]
8010722: 681b ldr r3, [r3, #0]
8010724: f06f 0280 mvn.w r2, #128 ; 0x80
8010728: 611a str r2, [r3, #16]
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->BreakCallback(htim);
#else
HAL_TIMEx_BreakCallback(htim);
801072a: 6878 ldr r0, [r7, #4]
801072c: f000 f9a8 bl 8010a80 <HAL_TIMEx_BreakCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
/* TIM Break2 input event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK2) != RESET)
8010730: 687b ldr r3, [r7, #4]
8010732: 681b ldr r3, [r3, #0]
8010734: 691b ldr r3, [r3, #16]
8010736: f403 7380 and.w r3, r3, #256 ; 0x100
801073a: f5b3 7f80 cmp.w r3, #256 ; 0x100
801073e: d10e bne.n 801075e <HAL_TIM_IRQHandler+0x1de>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET)
8010740: 687b ldr r3, [r7, #4]
8010742: 681b ldr r3, [r3, #0]
8010744: 68db ldr r3, [r3, #12]
8010746: f003 0380 and.w r3, r3, #128 ; 0x80
801074a: 2b80 cmp r3, #128 ; 0x80
801074c: d107 bne.n 801075e <HAL_TIM_IRQHandler+0x1de>
{
__HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_BREAK2);
801074e: 687b ldr r3, [r7, #4]
8010750: 681b ldr r3, [r3, #0]
8010752: f46f 7280 mvn.w r2, #256 ; 0x100
8010756: 611a str r2, [r3, #16]
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->Break2Callback(htim);
#else
HAL_TIMEx_Break2Callback(htim);
8010758: 6878 ldr r0, [r7, #4]
801075a: f000 f99b bl 8010a94 <HAL_TIMEx_Break2Callback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
/* TIM Trigger detection event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_TRIGGER) != RESET)
801075e: 687b ldr r3, [r7, #4]
8010760: 681b ldr r3, [r3, #0]
8010762: 691b ldr r3, [r3, #16]
8010764: f003 0340 and.w r3, r3, #64 ; 0x40
8010768: 2b40 cmp r3, #64 ; 0x40
801076a: d10e bne.n 801078a <HAL_TIM_IRQHandler+0x20a>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_TRIGGER) != RESET)
801076c: 687b ldr r3, [r7, #4]
801076e: 681b ldr r3, [r3, #0]
8010770: 68db ldr r3, [r3, #12]
8010772: f003 0340 and.w r3, r3, #64 ; 0x40
8010776: 2b40 cmp r3, #64 ; 0x40
8010778: d107 bne.n 801078a <HAL_TIM_IRQHandler+0x20a>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_TRIGGER);
801077a: 687b ldr r3, [r7, #4]
801077c: 681b ldr r3, [r3, #0]
801077e: f06f 0240 mvn.w r2, #64 ; 0x40
8010782: 611a str r2, [r3, #16]
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->TriggerCallback(htim);
#else
HAL_TIM_TriggerCallback(htim);
8010784: 6878 ldr r0, [r7, #4]
8010786: f000 f838 bl 80107fa <HAL_TIM_TriggerCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
/* TIM commutation event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_COM) != RESET)
801078a: 687b ldr r3, [r7, #4]
801078c: 681b ldr r3, [r3, #0]
801078e: 691b ldr r3, [r3, #16]
8010790: f003 0320 and.w r3, r3, #32
8010794: 2b20 cmp r3, #32
8010796: d10e bne.n 80107b6 <HAL_TIM_IRQHandler+0x236>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_COM) != RESET)
8010798: 687b ldr r3, [r7, #4]
801079a: 681b ldr r3, [r3, #0]
801079c: 68db ldr r3, [r3, #12]
801079e: f003 0320 and.w r3, r3, #32
80107a2: 2b20 cmp r3, #32
80107a4: d107 bne.n 80107b6 <HAL_TIM_IRQHandler+0x236>
{
__HAL_TIM_CLEAR_IT(htim, TIM_FLAG_COM);
80107a6: 687b ldr r3, [r7, #4]
80107a8: 681b ldr r3, [r3, #0]
80107aa: f06f 0220 mvn.w r2, #32
80107ae: 611a str r2, [r3, #16]
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->CommutationCallback(htim);
#else
HAL_TIMEx_CommutCallback(htim);
80107b0: 6878 ldr r0, [r7, #4]
80107b2: f000 f95b bl 8010a6c <HAL_TIMEx_CommutCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
}
80107b6: bf00 nop
80107b8: 3708 adds r7, #8
80107ba: 46bd mov sp, r7
80107bc: bd80 pop {r7, pc}
080107be <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)
{
80107be: b480 push {r7}
80107c0: b083 sub sp, #12
80107c2: af00 add r7, sp, #0
80107c4: 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
*/
}
80107c6: bf00 nop
80107c8: 370c adds r7, #12
80107ca: 46bd mov sp, r7
80107cc: f85d 7b04 ldr.w r7, [sp], #4
80107d0: 4770 bx lr
080107d2 <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)
{
80107d2: b480 push {r7}
80107d4: b083 sub sp, #12
80107d6: af00 add r7, sp, #0
80107d8: 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
*/
}
80107da: bf00 nop
80107dc: 370c adds r7, #12
80107de: 46bd mov sp, r7
80107e0: f85d 7b04 ldr.w r7, [sp], #4
80107e4: 4770 bx lr
080107e6 <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)
{
80107e6: b480 push {r7}
80107e8: b083 sub sp, #12
80107ea: af00 add r7, sp, #0
80107ec: 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
*/
}
80107ee: bf00 nop
80107f0: 370c adds r7, #12
80107f2: 46bd mov sp, r7
80107f4: f85d 7b04 ldr.w r7, [sp], #4
80107f8: 4770 bx lr
080107fa <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)
{
80107fa: b480 push {r7}
80107fc: b083 sub sp, #12
80107fe: af00 add r7, sp, #0
8010800: 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
*/
}
8010802: bf00 nop
8010804: 370c adds r7, #12
8010806: 46bd mov sp, r7
8010808: f85d 7b04 ldr.w r7, [sp], #4
801080c: 4770 bx lr
...
08010810 <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)
{
8010810: b480 push {r7}
8010812: b085 sub sp, #20
8010814: af00 add r7, sp, #0
8010816: 6078 str r0, [r7, #4]
8010818: 6039 str r1, [r7, #0]
uint32_t tmpcr1;
tmpcr1 = TIMx->CR1;
801081a: 687b ldr r3, [r7, #4]
801081c: 681b ldr r3, [r3, #0]
801081e: 60fb str r3, [r7, #12]
/* Set TIM Time Base Unit parameters ---------------------------------------*/
if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx))
8010820: 687b ldr r3, [r7, #4]
8010822: 4a40 ldr r2, [pc, #256] ; (8010924 <TIM_Base_SetConfig+0x114>)
8010824: 4293 cmp r3, r2
8010826: d013 beq.n 8010850 <TIM_Base_SetConfig+0x40>
8010828: 687b ldr r3, [r7, #4]
801082a: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000
801082e: d00f beq.n 8010850 <TIM_Base_SetConfig+0x40>
8010830: 687b ldr r3, [r7, #4]
8010832: 4a3d ldr r2, [pc, #244] ; (8010928 <TIM_Base_SetConfig+0x118>)
8010834: 4293 cmp r3, r2
8010836: d00b beq.n 8010850 <TIM_Base_SetConfig+0x40>
8010838: 687b ldr r3, [r7, #4]
801083a: 4a3c ldr r2, [pc, #240] ; (801092c <TIM_Base_SetConfig+0x11c>)
801083c: 4293 cmp r3, r2
801083e: d007 beq.n 8010850 <TIM_Base_SetConfig+0x40>
8010840: 687b ldr r3, [r7, #4]
8010842: 4a3b ldr r2, [pc, #236] ; (8010930 <TIM_Base_SetConfig+0x120>)
8010844: 4293 cmp r3, r2
8010846: d003 beq.n 8010850 <TIM_Base_SetConfig+0x40>
8010848: 687b ldr r3, [r7, #4]
801084a: 4a3a ldr r2, [pc, #232] ; (8010934 <TIM_Base_SetConfig+0x124>)
801084c: 4293 cmp r3, r2
801084e: d108 bne.n 8010862 <TIM_Base_SetConfig+0x52>
{
/* Select the Counter Mode */
tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS);
8010850: 68fb ldr r3, [r7, #12]
8010852: f023 0370 bic.w r3, r3, #112 ; 0x70
8010856: 60fb str r3, [r7, #12]
tmpcr1 |= Structure->CounterMode;
8010858: 683b ldr r3, [r7, #0]
801085a: 685b ldr r3, [r3, #4]
801085c: 68fa ldr r2, [r7, #12]
801085e: 4313 orrs r3, r2
8010860: 60fb str r3, [r7, #12]
}
if (IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx))
8010862: 687b ldr r3, [r7, #4]
8010864: 4a2f ldr r2, [pc, #188] ; (8010924 <TIM_Base_SetConfig+0x114>)
8010866: 4293 cmp r3, r2
8010868: d02b beq.n 80108c2 <TIM_Base_SetConfig+0xb2>
801086a: 687b ldr r3, [r7, #4]
801086c: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000
8010870: d027 beq.n 80108c2 <TIM_Base_SetConfig+0xb2>
8010872: 687b ldr r3, [r7, #4]
8010874: 4a2c ldr r2, [pc, #176] ; (8010928 <TIM_Base_SetConfig+0x118>)
8010876: 4293 cmp r3, r2
8010878: d023 beq.n 80108c2 <TIM_Base_SetConfig+0xb2>
801087a: 687b ldr r3, [r7, #4]
801087c: 4a2b ldr r2, [pc, #172] ; (801092c <TIM_Base_SetConfig+0x11c>)
801087e: 4293 cmp r3, r2
8010880: d01f beq.n 80108c2 <TIM_Base_SetConfig+0xb2>
8010882: 687b ldr r3, [r7, #4]
8010884: 4a2a ldr r2, [pc, #168] ; (8010930 <TIM_Base_SetConfig+0x120>)
8010886: 4293 cmp r3, r2
8010888: d01b beq.n 80108c2 <TIM_Base_SetConfig+0xb2>
801088a: 687b ldr r3, [r7, #4]
801088c: 4a29 ldr r2, [pc, #164] ; (8010934 <TIM_Base_SetConfig+0x124>)
801088e: 4293 cmp r3, r2
8010890: d017 beq.n 80108c2 <TIM_Base_SetConfig+0xb2>
8010892: 687b ldr r3, [r7, #4]
8010894: 4a28 ldr r2, [pc, #160] ; (8010938 <TIM_Base_SetConfig+0x128>)
8010896: 4293 cmp r3, r2
8010898: d013 beq.n 80108c2 <TIM_Base_SetConfig+0xb2>
801089a: 687b ldr r3, [r7, #4]
801089c: 4a27 ldr r2, [pc, #156] ; (801093c <TIM_Base_SetConfig+0x12c>)
801089e: 4293 cmp r3, r2
80108a0: d00f beq.n 80108c2 <TIM_Base_SetConfig+0xb2>
80108a2: 687b ldr r3, [r7, #4]
80108a4: 4a26 ldr r2, [pc, #152] ; (8010940 <TIM_Base_SetConfig+0x130>)
80108a6: 4293 cmp r3, r2
80108a8: d00b beq.n 80108c2 <TIM_Base_SetConfig+0xb2>
80108aa: 687b ldr r3, [r7, #4]
80108ac: 4a25 ldr r2, [pc, #148] ; (8010944 <TIM_Base_SetConfig+0x134>)
80108ae: 4293 cmp r3, r2
80108b0: d007 beq.n 80108c2 <TIM_Base_SetConfig+0xb2>
80108b2: 687b ldr r3, [r7, #4]
80108b4: 4a24 ldr r2, [pc, #144] ; (8010948 <TIM_Base_SetConfig+0x138>)
80108b6: 4293 cmp r3, r2
80108b8: d003 beq.n 80108c2 <TIM_Base_SetConfig+0xb2>
80108ba: 687b ldr r3, [r7, #4]
80108bc: 4a23 ldr r2, [pc, #140] ; (801094c <TIM_Base_SetConfig+0x13c>)
80108be: 4293 cmp r3, r2
80108c0: d108 bne.n 80108d4 <TIM_Base_SetConfig+0xc4>
{
/* Set the clock division */
tmpcr1 &= ~TIM_CR1_CKD;
80108c2: 68fb ldr r3, [r7, #12]
80108c4: f423 7340 bic.w r3, r3, #768 ; 0x300
80108c8: 60fb str r3, [r7, #12]
tmpcr1 |= (uint32_t)Structure->ClockDivision;
80108ca: 683b ldr r3, [r7, #0]
80108cc: 68db ldr r3, [r3, #12]
80108ce: 68fa ldr r2, [r7, #12]
80108d0: 4313 orrs r3, r2
80108d2: 60fb str r3, [r7, #12]
}
/* Set the auto-reload preload */
MODIFY_REG(tmpcr1, TIM_CR1_ARPE, Structure->AutoReloadPreload);
80108d4: 68fb ldr r3, [r7, #12]
80108d6: f023 0280 bic.w r2, r3, #128 ; 0x80
80108da: 683b ldr r3, [r7, #0]
80108dc: 695b ldr r3, [r3, #20]
80108de: 4313 orrs r3, r2
80108e0: 60fb str r3, [r7, #12]
TIMx->CR1 = tmpcr1;
80108e2: 687b ldr r3, [r7, #4]
80108e4: 68fa ldr r2, [r7, #12]
80108e6: 601a str r2, [r3, #0]
/* Set the Autoreload value */
TIMx->ARR = (uint32_t)Structure->Period ;
80108e8: 683b ldr r3, [r7, #0]
80108ea: 689a ldr r2, [r3, #8]
80108ec: 687b ldr r3, [r7, #4]
80108ee: 62da str r2, [r3, #44] ; 0x2c
/* Set the Prescaler value */
TIMx->PSC = Structure->Prescaler;
80108f0: 683b ldr r3, [r7, #0]
80108f2: 681a ldr r2, [r3, #0]
80108f4: 687b ldr r3, [r7, #4]
80108f6: 629a str r2, [r3, #40] ; 0x28
if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx))
80108f8: 687b ldr r3, [r7, #4]
80108fa: 4a0a ldr r2, [pc, #40] ; (8010924 <TIM_Base_SetConfig+0x114>)
80108fc: 4293 cmp r3, r2
80108fe: d003 beq.n 8010908 <TIM_Base_SetConfig+0xf8>
8010900: 687b ldr r3, [r7, #4]
8010902: 4a0c ldr r2, [pc, #48] ; (8010934 <TIM_Base_SetConfig+0x124>)
8010904: 4293 cmp r3, r2
8010906: d103 bne.n 8010910 <TIM_Base_SetConfig+0x100>
{
/* Set the Repetition Counter value */
TIMx->RCR = Structure->RepetitionCounter;
8010908: 683b ldr r3, [r7, #0]
801090a: 691a ldr r2, [r3, #16]
801090c: 687b ldr r3, [r7, #4]
801090e: 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;
8010910: 687b ldr r3, [r7, #4]
8010912: 2201 movs r2, #1
8010914: 615a str r2, [r3, #20]
}
8010916: bf00 nop
8010918: 3714 adds r7, #20
801091a: 46bd mov sp, r7
801091c: f85d 7b04 ldr.w r7, [sp], #4
8010920: 4770 bx lr
8010922: bf00 nop
8010924: 40010000 .word 0x40010000
8010928: 40000400 .word 0x40000400
801092c: 40000800 .word 0x40000800
8010930: 40000c00 .word 0x40000c00
8010934: 40010400 .word 0x40010400
8010938: 40014000 .word 0x40014000
801093c: 40014400 .word 0x40014400
8010940: 40014800 .word 0x40014800
8010944: 40001800 .word 0x40001800
8010948: 40001c00 .word 0x40001c00
801094c: 40002000 .word 0x40002000
08010950 <HAL_TIMEx_MasterConfigSynchronization>:
* mode.
* @retval HAL status
*/
HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef *htim,
TIM_MasterConfigTypeDef *sMasterConfig)
{
8010950: b480 push {r7}
8010952: b085 sub sp, #20
8010954: af00 add r7, sp, #0
8010956: 6078 str r0, [r7, #4]
8010958: 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);
801095a: 687b ldr r3, [r7, #4]
801095c: f893 303c ldrb.w r3, [r3, #60] ; 0x3c
8010960: 2b01 cmp r3, #1
8010962: d101 bne.n 8010968 <HAL_TIMEx_MasterConfigSynchronization+0x18>
8010964: 2302 movs r3, #2
8010966: e06d b.n 8010a44 <HAL_TIMEx_MasterConfigSynchronization+0xf4>
8010968: 687b ldr r3, [r7, #4]
801096a: 2201 movs r2, #1
801096c: f883 203c strb.w r2, [r3, #60] ; 0x3c
/* Change the handler state */
htim->State = HAL_TIM_STATE_BUSY;
8010970: 687b ldr r3, [r7, #4]
8010972: 2202 movs r2, #2
8010974: f883 203d strb.w r2, [r3, #61] ; 0x3d
/* Get the TIMx CR2 register value */
tmpcr2 = htim->Instance->CR2;
8010978: 687b ldr r3, [r7, #4]
801097a: 681b ldr r3, [r3, #0]
801097c: 685b ldr r3, [r3, #4]
801097e: 60fb str r3, [r7, #12]
/* Get the TIMx SMCR register value */
tmpsmcr = htim->Instance->SMCR;
8010980: 687b ldr r3, [r7, #4]
8010982: 681b ldr r3, [r3, #0]
8010984: 689b ldr r3, [r3, #8]
8010986: 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))
8010988: 687b ldr r3, [r7, #4]
801098a: 681b ldr r3, [r3, #0]
801098c: 4a30 ldr r2, [pc, #192] ; (8010a50 <HAL_TIMEx_MasterConfigSynchronization+0x100>)
801098e: 4293 cmp r3, r2
8010990: d004 beq.n 801099c <HAL_TIMEx_MasterConfigSynchronization+0x4c>
8010992: 687b ldr r3, [r7, #4]
8010994: 681b ldr r3, [r3, #0]
8010996: 4a2f ldr r2, [pc, #188] ; (8010a54 <HAL_TIMEx_MasterConfigSynchronization+0x104>)
8010998: 4293 cmp r3, r2
801099a: d108 bne.n 80109ae <HAL_TIMEx_MasterConfigSynchronization+0x5e>
{
/* Check the parameters */
assert_param(IS_TIM_TRGO2_SOURCE(sMasterConfig->MasterOutputTrigger2));
/* Clear the MMS2 bits */
tmpcr2 &= ~TIM_CR2_MMS2;
801099c: 68fb ldr r3, [r7, #12]
801099e: f423 0370 bic.w r3, r3, #15728640 ; 0xf00000
80109a2: 60fb str r3, [r7, #12]
/* Select the TRGO2 source*/
tmpcr2 |= sMasterConfig->MasterOutputTrigger2;
80109a4: 683b ldr r3, [r7, #0]
80109a6: 685b ldr r3, [r3, #4]
80109a8: 68fa ldr r2, [r7, #12]
80109aa: 4313 orrs r3, r2
80109ac: 60fb str r3, [r7, #12]
}
/* Reset the MMS Bits */
tmpcr2 &= ~TIM_CR2_MMS;
80109ae: 68fb ldr r3, [r7, #12]
80109b0: f023 0370 bic.w r3, r3, #112 ; 0x70
80109b4: 60fb str r3, [r7, #12]
/* Select the TRGO source */
tmpcr2 |= sMasterConfig->MasterOutputTrigger;
80109b6: 683b ldr r3, [r7, #0]
80109b8: 681b ldr r3, [r3, #0]
80109ba: 68fa ldr r2, [r7, #12]
80109bc: 4313 orrs r3, r2
80109be: 60fb str r3, [r7, #12]
/* Update TIMx CR2 */
htim->Instance->CR2 = tmpcr2;
80109c0: 687b ldr r3, [r7, #4]
80109c2: 681b ldr r3, [r3, #0]
80109c4: 68fa ldr r2, [r7, #12]
80109c6: 605a str r2, [r3, #4]
if (IS_TIM_SLAVE_INSTANCE(htim->Instance))
80109c8: 687b ldr r3, [r7, #4]
80109ca: 681b ldr r3, [r3, #0]
80109cc: 4a20 ldr r2, [pc, #128] ; (8010a50 <HAL_TIMEx_MasterConfigSynchronization+0x100>)
80109ce: 4293 cmp r3, r2
80109d0: d022 beq.n 8010a18 <HAL_TIMEx_MasterConfigSynchronization+0xc8>
80109d2: 687b ldr r3, [r7, #4]
80109d4: 681b ldr r3, [r3, #0]
80109d6: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000
80109da: d01d beq.n 8010a18 <HAL_TIMEx_MasterConfigSynchronization+0xc8>
80109dc: 687b ldr r3, [r7, #4]
80109de: 681b ldr r3, [r3, #0]
80109e0: 4a1d ldr r2, [pc, #116] ; (8010a58 <HAL_TIMEx_MasterConfigSynchronization+0x108>)
80109e2: 4293 cmp r3, r2
80109e4: d018 beq.n 8010a18 <HAL_TIMEx_MasterConfigSynchronization+0xc8>
80109e6: 687b ldr r3, [r7, #4]
80109e8: 681b ldr r3, [r3, #0]
80109ea: 4a1c ldr r2, [pc, #112] ; (8010a5c <HAL_TIMEx_MasterConfigSynchronization+0x10c>)
80109ec: 4293 cmp r3, r2
80109ee: d013 beq.n 8010a18 <HAL_TIMEx_MasterConfigSynchronization+0xc8>
80109f0: 687b ldr r3, [r7, #4]
80109f2: 681b ldr r3, [r3, #0]
80109f4: 4a1a ldr r2, [pc, #104] ; (8010a60 <HAL_TIMEx_MasterConfigSynchronization+0x110>)
80109f6: 4293 cmp r3, r2
80109f8: d00e beq.n 8010a18 <HAL_TIMEx_MasterConfigSynchronization+0xc8>
80109fa: 687b ldr r3, [r7, #4]
80109fc: 681b ldr r3, [r3, #0]
80109fe: 4a15 ldr r2, [pc, #84] ; (8010a54 <HAL_TIMEx_MasterConfigSynchronization+0x104>)
8010a00: 4293 cmp r3, r2
8010a02: d009 beq.n 8010a18 <HAL_TIMEx_MasterConfigSynchronization+0xc8>
8010a04: 687b ldr r3, [r7, #4]
8010a06: 681b ldr r3, [r3, #0]
8010a08: 4a16 ldr r2, [pc, #88] ; (8010a64 <HAL_TIMEx_MasterConfigSynchronization+0x114>)
8010a0a: 4293 cmp r3, r2
8010a0c: d004 beq.n 8010a18 <HAL_TIMEx_MasterConfigSynchronization+0xc8>
8010a0e: 687b ldr r3, [r7, #4]
8010a10: 681b ldr r3, [r3, #0]
8010a12: 4a15 ldr r2, [pc, #84] ; (8010a68 <HAL_TIMEx_MasterConfigSynchronization+0x118>)
8010a14: 4293 cmp r3, r2
8010a16: d10c bne.n 8010a32 <HAL_TIMEx_MasterConfigSynchronization+0xe2>
{
/* Reset the MSM Bit */
tmpsmcr &= ~TIM_SMCR_MSM;
8010a18: 68bb ldr r3, [r7, #8]
8010a1a: f023 0380 bic.w r3, r3, #128 ; 0x80
8010a1e: 60bb str r3, [r7, #8]
/* Set master mode */
tmpsmcr |= sMasterConfig->MasterSlaveMode;
8010a20: 683b ldr r3, [r7, #0]
8010a22: 689b ldr r3, [r3, #8]
8010a24: 68ba ldr r2, [r7, #8]
8010a26: 4313 orrs r3, r2
8010a28: 60bb str r3, [r7, #8]
/* Update TIMx SMCR */
htim->Instance->SMCR = tmpsmcr;
8010a2a: 687b ldr r3, [r7, #4]
8010a2c: 681b ldr r3, [r3, #0]
8010a2e: 68ba ldr r2, [r7, #8]
8010a30: 609a str r2, [r3, #8]
}
/* Change the htim state */
htim->State = HAL_TIM_STATE_READY;
8010a32: 687b ldr r3, [r7, #4]
8010a34: 2201 movs r2, #1
8010a36: f883 203d strb.w r2, [r3, #61] ; 0x3d
__HAL_UNLOCK(htim);
8010a3a: 687b ldr r3, [r7, #4]
8010a3c: 2200 movs r2, #0
8010a3e: f883 203c strb.w r2, [r3, #60] ; 0x3c
return HAL_OK;
8010a42: 2300 movs r3, #0
}
8010a44: 4618 mov r0, r3
8010a46: 3714 adds r7, #20
8010a48: 46bd mov sp, r7
8010a4a: f85d 7b04 ldr.w r7, [sp], #4
8010a4e: 4770 bx lr
8010a50: 40010000 .word 0x40010000
8010a54: 40010400 .word 0x40010400
8010a58: 40000400 .word 0x40000400
8010a5c: 40000800 .word 0x40000800
8010a60: 40000c00 .word 0x40000c00
8010a64: 40014000 .word 0x40014000
8010a68: 40001800 .word 0x40001800
08010a6c <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)
{
8010a6c: b480 push {r7}
8010a6e: b083 sub sp, #12
8010a70: af00 add r7, sp, #0
8010a72: 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
*/
}
8010a74: bf00 nop
8010a76: 370c adds r7, #12
8010a78: 46bd mov sp, r7
8010a7a: f85d 7b04 ldr.w r7, [sp], #4
8010a7e: 4770 bx lr
08010a80 <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)
{
8010a80: b480 push {r7}
8010a82: b083 sub sp, #12
8010a84: af00 add r7, sp, #0
8010a86: 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
*/
}
8010a88: bf00 nop
8010a8a: 370c adds r7, #12
8010a8c: 46bd mov sp, r7
8010a8e: f85d 7b04 ldr.w r7, [sp], #4
8010a92: 4770 bx lr
08010a94 <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)
{
8010a94: b480 push {r7}
8010a96: b083 sub sp, #12
8010a98: af00 add r7, sp, #0
8010a9a: 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
*/
}
8010a9c: bf00 nop
8010a9e: 370c adds r7, #12
8010aa0: 46bd mov sp, r7
8010aa2: f85d 7b04 ldr.w r7, [sp], #4
8010aa6: 4770 bx lr
08010aa8 <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)
{
8010aa8: b580 push {r7, lr}
8010aaa: b082 sub sp, #8
8010aac: af00 add r7, sp, #0
8010aae: 6078 str r0, [r7, #4]
/* Check the UART handle allocation */
if (huart == NULL)
8010ab0: 687b ldr r3, [r7, #4]
8010ab2: 2b00 cmp r3, #0
8010ab4: d101 bne.n 8010aba <HAL_UART_Init+0x12>
{
return HAL_ERROR;
8010ab6: 2301 movs r3, #1
8010ab8: e040 b.n 8010b3c <HAL_UART_Init+0x94>
{
/* Check the parameters */
assert_param(IS_UART_INSTANCE(huart->Instance));
}
if (huart->gState == HAL_UART_STATE_RESET)
8010aba: 687b ldr r3, [r7, #4]
8010abc: 6f9b ldr r3, [r3, #120] ; 0x78
8010abe: 2b00 cmp r3, #0
8010ac0: d106 bne.n 8010ad0 <HAL_UART_Init+0x28>
{
/* Allocate lock resource and initialize it */
huart->Lock = HAL_UNLOCKED;
8010ac2: 687b ldr r3, [r7, #4]
8010ac4: 2200 movs r2, #0
8010ac6: 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);
8010aca: 6878 ldr r0, [r7, #4]
8010acc: f7fb fb7e bl 800c1cc <HAL_UART_MspInit>
#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
}
huart->gState = HAL_UART_STATE_BUSY;
8010ad0: 687b ldr r3, [r7, #4]
8010ad2: 2224 movs r2, #36 ; 0x24
8010ad4: 679a str r2, [r3, #120] ; 0x78
__HAL_UART_DISABLE(huart);
8010ad6: 687b ldr r3, [r7, #4]
8010ad8: 681b ldr r3, [r3, #0]
8010ada: 687a ldr r2, [r7, #4]
8010adc: 6812 ldr r2, [r2, #0]
8010ade: 6812 ldr r2, [r2, #0]
8010ae0: f022 0201 bic.w r2, r2, #1
8010ae4: 601a str r2, [r3, #0]
/* Set the UART Communication parameters */
if (UART_SetConfig(huart) == HAL_ERROR)
8010ae6: 6878 ldr r0, [r7, #4]
8010ae8: f000 fd90 bl 801160c <UART_SetConfig>
8010aec: 4603 mov r3, r0
8010aee: 2b01 cmp r3, #1
8010af0: d101 bne.n 8010af6 <HAL_UART_Init+0x4e>
{
return HAL_ERROR;
8010af2: 2301 movs r3, #1
8010af4: e022 b.n 8010b3c <HAL_UART_Init+0x94>
}
if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT)
8010af6: 687b ldr r3, [r7, #4]
8010af8: 6a5b ldr r3, [r3, #36] ; 0x24
8010afa: 2b00 cmp r3, #0
8010afc: d002 beq.n 8010b04 <HAL_UART_Init+0x5c>
{
UART_AdvFeatureConfig(huart);
8010afe: 6878 ldr r0, [r7, #4]
8010b00: f000 ffe4 bl 8011acc <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));
8010b04: 687b ldr r3, [r7, #4]
8010b06: 681b ldr r3, [r3, #0]
8010b08: 687a ldr r2, [r7, #4]
8010b0a: 6812 ldr r2, [r2, #0]
8010b0c: 6852 ldr r2, [r2, #4]
8010b0e: f422 4290 bic.w r2, r2, #18432 ; 0x4800
8010b12: 605a str r2, [r3, #4]
CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
8010b14: 687b ldr r3, [r7, #4]
8010b16: 681b ldr r3, [r3, #0]
8010b18: 687a ldr r2, [r7, #4]
8010b1a: 6812 ldr r2, [r2, #0]
8010b1c: 6892 ldr r2, [r2, #8]
8010b1e: f022 022a bic.w r2, r2, #42 ; 0x2a
8010b22: 609a str r2, [r3, #8]
__HAL_UART_ENABLE(huart);
8010b24: 687b ldr r3, [r7, #4]
8010b26: 681b ldr r3, [r3, #0]
8010b28: 687a ldr r2, [r7, #4]
8010b2a: 6812 ldr r2, [r2, #0]
8010b2c: 6812 ldr r2, [r2, #0]
8010b2e: f042 0201 orr.w r2, r2, #1
8010b32: 601a str r2, [r3, #0]
/* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */
return (UART_CheckIdleState(huart));
8010b34: 6878 ldr r0, [r7, #4]
8010b36: f001 f86b bl 8011c10 <UART_CheckIdleState>
8010b3a: 4603 mov r3, r0
}
8010b3c: 4618 mov r0, r3
8010b3e: 3708 adds r7, #8
8010b40: 46bd mov sp, r7
8010b42: bd80 pop {r7, pc}
08010b44 <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)
{
8010b44: b580 push {r7, lr}
8010b46: b08a sub sp, #40 ; 0x28
8010b48: af02 add r7, sp, #8
8010b4a: 60f8 str r0, [r7, #12]
8010b4c: 60b9 str r1, [r7, #8]
8010b4e: 603b str r3, [r7, #0]
8010b50: 4613 mov r3, r2
8010b52: 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)
8010b54: 68fb ldr r3, [r7, #12]
8010b56: 6fdb ldr r3, [r3, #124] ; 0x7c
8010b58: 2b20 cmp r3, #32
8010b5a: f040 80be bne.w 8010cda <HAL_UART_Receive+0x196>
{
if ((pData == NULL) || (Size == 0U))
8010b5e: 68bb ldr r3, [r7, #8]
8010b60: 2b00 cmp r3, #0
8010b62: d002 beq.n 8010b6a <HAL_UART_Receive+0x26>
8010b64: 88fb ldrh r3, [r7, #6]
8010b66: 2b00 cmp r3, #0
8010b68: d101 bne.n 8010b6e <HAL_UART_Receive+0x2a>
{
return HAL_ERROR;
8010b6a: 2301 movs r3, #1
8010b6c: e0b6 b.n 8010cdc <HAL_UART_Receive+0x198>
}
__HAL_LOCK(huart);
8010b6e: 68fb ldr r3, [r7, #12]
8010b70: f893 3074 ldrb.w r3, [r3, #116] ; 0x74
8010b74: 2b01 cmp r3, #1
8010b76: d101 bne.n 8010b7c <HAL_UART_Receive+0x38>
8010b78: 2302 movs r3, #2
8010b7a: e0af b.n 8010cdc <HAL_UART_Receive+0x198>
8010b7c: 68fb ldr r3, [r7, #12]
8010b7e: 2201 movs r2, #1
8010b80: f883 2074 strb.w r2, [r3, #116] ; 0x74
huart->ErrorCode = HAL_UART_ERROR_NONE;
8010b84: 68fb ldr r3, [r7, #12]
8010b86: 2200 movs r2, #0
8010b88: f8c3 2080 str.w r2, [r3, #128] ; 0x80
huart->RxState = HAL_UART_STATE_BUSY_RX;
8010b8c: 68fb ldr r3, [r7, #12]
8010b8e: 2222 movs r2, #34 ; 0x22
8010b90: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
8010b92: 68fb ldr r3, [r7, #12]
8010b94: 2200 movs r2, #0
8010b96: 661a str r2, [r3, #96] ; 0x60
/* Init tickstart for timeout management */
tickstart = HAL_GetTick();
8010b98: f7fc ff84 bl 800daa4 <HAL_GetTick>
8010b9c: 6178 str r0, [r7, #20]
huart->RxXferSize = Size;
8010b9e: 68fb ldr r3, [r7, #12]
8010ba0: 88fa ldrh r2, [r7, #6]
8010ba2: f8a3 2058 strh.w r2, [r3, #88] ; 0x58
huart->RxXferCount = Size;
8010ba6: 68fb ldr r3, [r7, #12]
8010ba8: 88fa ldrh r2, [r7, #6]
8010baa: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
/* Computation of UART mask to apply to RDR register */
UART_MASK_COMPUTATION(huart);
8010bae: 68fb ldr r3, [r7, #12]
8010bb0: 689b ldr r3, [r3, #8]
8010bb2: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
8010bb6: d10e bne.n 8010bd6 <HAL_UART_Receive+0x92>
8010bb8: 68fb ldr r3, [r7, #12]
8010bba: 691b ldr r3, [r3, #16]
8010bbc: 2b00 cmp r3, #0
8010bbe: d105 bne.n 8010bcc <HAL_UART_Receive+0x88>
8010bc0: 68fb ldr r3, [r7, #12]
8010bc2: f240 12ff movw r2, #511 ; 0x1ff
8010bc6: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
8010bca: e02d b.n 8010c28 <HAL_UART_Receive+0xe4>
8010bcc: 68fb ldr r3, [r7, #12]
8010bce: 22ff movs r2, #255 ; 0xff
8010bd0: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
8010bd4: e028 b.n 8010c28 <HAL_UART_Receive+0xe4>
8010bd6: 68fb ldr r3, [r7, #12]
8010bd8: 689b ldr r3, [r3, #8]
8010bda: 2b00 cmp r3, #0
8010bdc: d10d bne.n 8010bfa <HAL_UART_Receive+0xb6>
8010bde: 68fb ldr r3, [r7, #12]
8010be0: 691b ldr r3, [r3, #16]
8010be2: 2b00 cmp r3, #0
8010be4: d104 bne.n 8010bf0 <HAL_UART_Receive+0xac>
8010be6: 68fb ldr r3, [r7, #12]
8010be8: 22ff movs r2, #255 ; 0xff
8010bea: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
8010bee: e01b b.n 8010c28 <HAL_UART_Receive+0xe4>
8010bf0: 68fb ldr r3, [r7, #12]
8010bf2: 227f movs r2, #127 ; 0x7f
8010bf4: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
8010bf8: e016 b.n 8010c28 <HAL_UART_Receive+0xe4>
8010bfa: 68fb ldr r3, [r7, #12]
8010bfc: 689b ldr r3, [r3, #8]
8010bfe: f1b3 5f80 cmp.w r3, #268435456 ; 0x10000000
8010c02: d10d bne.n 8010c20 <HAL_UART_Receive+0xdc>
8010c04: 68fb ldr r3, [r7, #12]
8010c06: 691b ldr r3, [r3, #16]
8010c08: 2b00 cmp r3, #0
8010c0a: d104 bne.n 8010c16 <HAL_UART_Receive+0xd2>
8010c0c: 68fb ldr r3, [r7, #12]
8010c0e: 227f movs r2, #127 ; 0x7f
8010c10: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
8010c14: e008 b.n 8010c28 <HAL_UART_Receive+0xe4>
8010c16: 68fb ldr r3, [r7, #12]
8010c18: 223f movs r2, #63 ; 0x3f
8010c1a: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
8010c1e: e003 b.n 8010c28 <HAL_UART_Receive+0xe4>
8010c20: 68fb ldr r3, [r7, #12]
8010c22: 2200 movs r2, #0
8010c24: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
uhMask = huart->Mask;
8010c28: 68fb ldr r3, [r7, #12]
8010c2a: f8b3 305c ldrh.w r3, [r3, #92] ; 0x5c
8010c2e: 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))
8010c30: 68fb ldr r3, [r7, #12]
8010c32: 689b ldr r3, [r3, #8]
8010c34: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
8010c38: d108 bne.n 8010c4c <HAL_UART_Receive+0x108>
8010c3a: 68fb ldr r3, [r7, #12]
8010c3c: 691b ldr r3, [r3, #16]
8010c3e: 2b00 cmp r3, #0
8010c40: d104 bne.n 8010c4c <HAL_UART_Receive+0x108>
{
pdata8bits = NULL;
8010c42: 2300 movs r3, #0
8010c44: 61fb str r3, [r7, #28]
pdata16bits = (uint16_t *) pData;
8010c46: 68bb ldr r3, [r7, #8]
8010c48: 61bb str r3, [r7, #24]
8010c4a: e003 b.n 8010c54 <HAL_UART_Receive+0x110>
}
else
{
pdata8bits = pData;
8010c4c: 68bb ldr r3, [r7, #8]
8010c4e: 61fb str r3, [r7, #28]
pdata16bits = NULL;
8010c50: 2300 movs r3, #0
8010c52: 61bb str r3, [r7, #24]
}
__HAL_UNLOCK(huart);
8010c54: 68fb ldr r3, [r7, #12]
8010c56: 2200 movs r2, #0
8010c58: f883 2074 strb.w r2, [r3, #116] ; 0x74
/* as long as data have to be received */
while (huart->RxXferCount > 0U)
8010c5c: e032 b.n 8010cc4 <HAL_UART_Receive+0x180>
{
if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK)
8010c5e: 683b ldr r3, [r7, #0]
8010c60: 9300 str r3, [sp, #0]
8010c62: 697b ldr r3, [r7, #20]
8010c64: 2200 movs r2, #0
8010c66: 2120 movs r1, #32
8010c68: 68f8 ldr r0, [r7, #12]
8010c6a: f001 f81a bl 8011ca2 <UART_WaitOnFlagUntilTimeout>
8010c6e: 4603 mov r3, r0
8010c70: 2b00 cmp r3, #0
8010c72: d001 beq.n 8010c78 <HAL_UART_Receive+0x134>
{
return HAL_TIMEOUT;
8010c74: 2303 movs r3, #3
8010c76: e031 b.n 8010cdc <HAL_UART_Receive+0x198>
}
if (pdata8bits == NULL)
8010c78: 69fb ldr r3, [r7, #28]
8010c7a: 2b00 cmp r3, #0
8010c7c: d10c bne.n 8010c98 <HAL_UART_Receive+0x154>
{
*pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask);
8010c7e: 68fb ldr r3, [r7, #12]
8010c80: 681b ldr r3, [r3, #0]
8010c82: 6a5b ldr r3, [r3, #36] ; 0x24
8010c84: b29a uxth r2, r3
8010c86: 8a7b ldrh r3, [r7, #18]
8010c88: 4013 ands r3, r2
8010c8a: b29a uxth r2, r3
8010c8c: 69bb ldr r3, [r7, #24]
8010c8e: 801a strh r2, [r3, #0]
pdata16bits++;
8010c90: 69bb ldr r3, [r7, #24]
8010c92: 3302 adds r3, #2
8010c94: 61bb str r3, [r7, #24]
8010c96: e00c b.n 8010cb2 <HAL_UART_Receive+0x16e>
}
else
{
*pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask);
8010c98: 68fb ldr r3, [r7, #12]
8010c9a: 681b ldr r3, [r3, #0]
8010c9c: 6a5b ldr r3, [r3, #36] ; 0x24
8010c9e: b2da uxtb r2, r3
8010ca0: 8a7b ldrh r3, [r7, #18]
8010ca2: b2db uxtb r3, r3
8010ca4: 4013 ands r3, r2
8010ca6: b2da uxtb r2, r3
8010ca8: 69fb ldr r3, [r7, #28]
8010caa: 701a strb r2, [r3, #0]
pdata8bits++;
8010cac: 69fb ldr r3, [r7, #28]
8010cae: 3301 adds r3, #1
8010cb0: 61fb str r3, [r7, #28]
}
huart->RxXferCount--;
8010cb2: 68fb ldr r3, [r7, #12]
8010cb4: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a
8010cb8: b29b uxth r3, r3
8010cba: 3b01 subs r3, #1
8010cbc: b29a uxth r2, r3
8010cbe: 68fb ldr r3, [r7, #12]
8010cc0: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
while (huart->RxXferCount > 0U)
8010cc4: 68fb ldr r3, [r7, #12]
8010cc6: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a
8010cca: b29b uxth r3, r3
8010ccc: 2b00 cmp r3, #0
8010cce: d1c6 bne.n 8010c5e <HAL_UART_Receive+0x11a>
}
/* At end of Rx process, restore huart->RxState to Ready */
huart->RxState = HAL_UART_STATE_READY;
8010cd0: 68fb ldr r3, [r7, #12]
8010cd2: 2220 movs r2, #32
8010cd4: 67da str r2, [r3, #124] ; 0x7c
return HAL_OK;
8010cd6: 2300 movs r3, #0
8010cd8: e000 b.n 8010cdc <HAL_UART_Receive+0x198>
}
else
{
return HAL_BUSY;
8010cda: 2302 movs r3, #2
}
}
8010cdc: 4618 mov r0, r3
8010cde: 3720 adds r7, #32
8010ce0: 46bd mov sp, r7
8010ce2: bd80 pop {r7, pc}
08010ce4 <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)
{
8010ce4: b480 push {r7}
8010ce6: b08b sub sp, #44 ; 0x2c
8010ce8: af00 add r7, sp, #0
8010cea: 60f8 str r0, [r7, #12]
8010cec: 60b9 str r1, [r7, #8]
8010cee: 4613 mov r3, r2
8010cf0: 80fb strh r3, [r7, #6]
/* Check that a Tx process is not already ongoing */
if (huart->gState == HAL_UART_STATE_READY)
8010cf2: 68fb ldr r3, [r7, #12]
8010cf4: 6f9b ldr r3, [r3, #120] ; 0x78
8010cf6: 2b20 cmp r3, #32
8010cf8: d156 bne.n 8010da8 <HAL_UART_Transmit_IT+0xc4>
{
if ((pData == NULL) || (Size == 0U))
8010cfa: 68bb ldr r3, [r7, #8]
8010cfc: 2b00 cmp r3, #0
8010cfe: d002 beq.n 8010d06 <HAL_UART_Transmit_IT+0x22>
8010d00: 88fb ldrh r3, [r7, #6]
8010d02: 2b00 cmp r3, #0
8010d04: d101 bne.n 8010d0a <HAL_UART_Transmit_IT+0x26>
{
return HAL_ERROR;
8010d06: 2301 movs r3, #1
8010d08: e04f b.n 8010daa <HAL_UART_Transmit_IT+0xc6>
}
__HAL_LOCK(huart);
8010d0a: 68fb ldr r3, [r7, #12]
8010d0c: f893 3074 ldrb.w r3, [r3, #116] ; 0x74
8010d10: 2b01 cmp r3, #1
8010d12: d101 bne.n 8010d18 <HAL_UART_Transmit_IT+0x34>
8010d14: 2302 movs r3, #2
8010d16: e048 b.n 8010daa <HAL_UART_Transmit_IT+0xc6>
8010d18: 68fb ldr r3, [r7, #12]
8010d1a: 2201 movs r2, #1
8010d1c: f883 2074 strb.w r2, [r3, #116] ; 0x74
huart->pTxBuffPtr = pData;
8010d20: 68fb ldr r3, [r7, #12]
8010d22: 68ba ldr r2, [r7, #8]
8010d24: 64da str r2, [r3, #76] ; 0x4c
huart->TxXferSize = Size;
8010d26: 68fb ldr r3, [r7, #12]
8010d28: 88fa ldrh r2, [r7, #6]
8010d2a: f8a3 2050 strh.w r2, [r3, #80] ; 0x50
huart->TxXferCount = Size;
8010d2e: 68fb ldr r3, [r7, #12]
8010d30: 88fa ldrh r2, [r7, #6]
8010d32: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
huart->TxISR = NULL;
8010d36: 68fb ldr r3, [r7, #12]
8010d38: 2200 movs r2, #0
8010d3a: 669a str r2, [r3, #104] ; 0x68
huart->ErrorCode = HAL_UART_ERROR_NONE;
8010d3c: 68fb ldr r3, [r7, #12]
8010d3e: 2200 movs r2, #0
8010d40: f8c3 2080 str.w r2, [r3, #128] ; 0x80
huart->gState = HAL_UART_STATE_BUSY_TX;
8010d44: 68fb ldr r3, [r7, #12]
8010d46: 2221 movs r2, #33 ; 0x21
8010d48: 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))
8010d4a: 68fb ldr r3, [r7, #12]
8010d4c: 689b ldr r3, [r3, #8]
8010d4e: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
8010d52: d107 bne.n 8010d64 <HAL_UART_Transmit_IT+0x80>
8010d54: 68fb ldr r3, [r7, #12]
8010d56: 691b ldr r3, [r3, #16]
8010d58: 2b00 cmp r3, #0
8010d5a: d103 bne.n 8010d64 <HAL_UART_Transmit_IT+0x80>
{
huart->TxISR = UART_TxISR_16BIT;
8010d5c: 68fb ldr r3, [r7, #12]
8010d5e: 4a16 ldr r2, [pc, #88] ; (8010db8 <HAL_UART_Transmit_IT+0xd4>)
8010d60: 669a str r2, [r3, #104] ; 0x68
8010d62: e002 b.n 8010d6a <HAL_UART_Transmit_IT+0x86>
}
else
{
huart->TxISR = UART_TxISR_8BIT;
8010d64: 68fb ldr r3, [r7, #12]
8010d66: 4a15 ldr r2, [pc, #84] ; (8010dbc <HAL_UART_Transmit_IT+0xd8>)
8010d68: 669a str r2, [r3, #104] ; 0x68
}
__HAL_UNLOCK(huart);
8010d6a: 68fb ldr r3, [r7, #12]
8010d6c: 2200 movs r2, #0
8010d6e: f883 2074 strb.w r2, [r3, #116] ; 0x74
/* Enable the Transmit Data Register Empty interrupt */
ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE);
8010d72: 68fb ldr r3, [r7, #12]
8010d74: 681b ldr r3, [r3, #0]
8010d76: 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) );
8010d78: 697b ldr r3, [r7, #20]
8010d7a: e853 3f00 ldrex r3, [r3]
8010d7e: 613b str r3, [r7, #16]
return(result);
8010d80: 693b ldr r3, [r7, #16]
8010d82: f043 0380 orr.w r3, r3, #128 ; 0x80
8010d86: 627b str r3, [r7, #36] ; 0x24
8010d88: 68fb ldr r3, [r7, #12]
8010d8a: 681b ldr r3, [r3, #0]
8010d8c: 461a mov r2, r3
8010d8e: 6a7b ldr r3, [r7, #36] ; 0x24
8010d90: 623b str r3, [r7, #32]
8010d92: 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) );
8010d94: 69f9 ldr r1, [r7, #28]
8010d96: 6a3a ldr r2, [r7, #32]
8010d98: e841 2300 strex r3, r2, [r1]
8010d9c: 61bb str r3, [r7, #24]
return(result);
8010d9e: 69bb ldr r3, [r7, #24]
8010da0: 2b00 cmp r3, #0
8010da2: d1e6 bne.n 8010d72 <HAL_UART_Transmit_IT+0x8e>
return HAL_OK;
8010da4: 2300 movs r3, #0
8010da6: e000 b.n 8010daa <HAL_UART_Transmit_IT+0xc6>
}
else
{
return HAL_BUSY;
8010da8: 2302 movs r3, #2
}
}
8010daa: 4618 mov r0, r3
8010dac: 372c adds r7, #44 ; 0x2c
8010dae: 46bd mov sp, r7
8010db0: f85d 7b04 ldr.w r7, [sp], #4
8010db4: 4770 bx lr
8010db6: bf00 nop
8010db8: 080120b7 .word 0x080120b7
8010dbc: 08012001 .word 0x08012001
08010dc0 <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)
{
8010dc0: b580 push {r7, lr}
8010dc2: b0a2 sub sp, #136 ; 0x88
8010dc4: af00 add r7, sp, #0
8010dc6: 6078 str r0, [r7, #4]
uint32_t abortcplt = 1U;
8010dc8: 2301 movs r3, #1
8010dca: 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));
8010dce: 687b ldr r3, [r7, #4]
8010dd0: 681b ldr r3, [r3, #0]
8010dd2: 663b str r3, [r7, #96] ; 0x60
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8010dd4: 6e3b ldr r3, [r7, #96] ; 0x60
8010dd6: e853 3f00 ldrex r3, [r3]
8010dda: 65fb str r3, [r7, #92] ; 0x5c
return(result);
8010ddc: 6dfb ldr r3, [r7, #92] ; 0x5c
8010dde: f423 73f0 bic.w r3, r3, #480 ; 0x1e0
8010de2: f8c7 3080 str.w r3, [r7, #128] ; 0x80
8010de6: 687b ldr r3, [r7, #4]
8010de8: 681b ldr r3, [r3, #0]
8010dea: 461a mov r2, r3
8010dec: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80
8010df0: 66fb str r3, [r7, #108] ; 0x6c
8010df2: 66ba str r2, [r7, #104] ; 0x68
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8010df4: 6eb9 ldr r1, [r7, #104] ; 0x68
8010df6: 6efa ldr r2, [r7, #108] ; 0x6c
8010df8: e841 2300 strex r3, r2, [r1]
8010dfc: 667b str r3, [r7, #100] ; 0x64
return(result);
8010dfe: 6e7b ldr r3, [r7, #100] ; 0x64
8010e00: 2b00 cmp r3, #0
8010e02: d1e4 bne.n 8010dce <HAL_UART_Abort_IT+0xe>
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
8010e04: 687b ldr r3, [r7, #4]
8010e06: 681b ldr r3, [r3, #0]
8010e08: 3308 adds r3, #8
8010e0a: 64fb str r3, [r7, #76] ; 0x4c
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8010e0c: 6cfb ldr r3, [r7, #76] ; 0x4c
8010e0e: e853 3f00 ldrex r3, [r3]
8010e12: 64bb str r3, [r7, #72] ; 0x48
return(result);
8010e14: 6cbb ldr r3, [r7, #72] ; 0x48
8010e16: f023 0301 bic.w r3, r3, #1
8010e1a: 67fb str r3, [r7, #124] ; 0x7c
8010e1c: 687b ldr r3, [r7, #4]
8010e1e: 681b ldr r3, [r3, #0]
8010e20: 3308 adds r3, #8
8010e22: 6ffa ldr r2, [r7, #124] ; 0x7c
8010e24: 65ba str r2, [r7, #88] ; 0x58
8010e26: 657b str r3, [r7, #84] ; 0x54
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8010e28: 6d79 ldr r1, [r7, #84] ; 0x54
8010e2a: 6dba ldr r2, [r7, #88] ; 0x58
8010e2c: e841 2300 strex r3, r2, [r1]
8010e30: 653b str r3, [r7, #80] ; 0x50
return(result);
8010e32: 6d3b ldr r3, [r7, #80] ; 0x50
8010e34: 2b00 cmp r3, #0
8010e36: d1e5 bne.n 8010e04 <HAL_UART_Abort_IT+0x44>
/* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */
if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE)
8010e38: 687b ldr r3, [r7, #4]
8010e3a: 6e1b ldr r3, [r3, #96] ; 0x60
8010e3c: 2b01 cmp r3, #1
8010e3e: d118 bne.n 8010e72 <HAL_UART_Abort_IT+0xb2>
{
ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE));
8010e40: 687b ldr r3, [r7, #4]
8010e42: 681b ldr r3, [r3, #0]
8010e44: 63bb str r3, [r7, #56] ; 0x38
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8010e46: 6bbb ldr r3, [r7, #56] ; 0x38
8010e48: e853 3f00 ldrex r3, [r3]
8010e4c: 637b str r3, [r7, #52] ; 0x34
return(result);
8010e4e: 6b7b ldr r3, [r7, #52] ; 0x34
8010e50: f023 0310 bic.w r3, r3, #16
8010e54: 67bb str r3, [r7, #120] ; 0x78
8010e56: 687b ldr r3, [r7, #4]
8010e58: 681b ldr r3, [r3, #0]
8010e5a: 461a mov r2, r3
8010e5c: 6fbb ldr r3, [r7, #120] ; 0x78
8010e5e: 647b str r3, [r7, #68] ; 0x44
8010e60: 643a str r2, [r7, #64] ; 0x40
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8010e62: 6c39 ldr r1, [r7, #64] ; 0x40
8010e64: 6c7a ldr r2, [r7, #68] ; 0x44
8010e66: e841 2300 strex r3, r2, [r1]
8010e6a: 63fb str r3, [r7, #60] ; 0x3c
return(result);
8010e6c: 6bfb ldr r3, [r7, #60] ; 0x3c
8010e6e: 2b00 cmp r3, #0
8010e70: d1e6 bne.n 8010e40 <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)
8010e72: 687b ldr r3, [r7, #4]
8010e74: 6edb ldr r3, [r3, #108] ; 0x6c
8010e76: 2b00 cmp r3, #0
8010e78: d00f beq.n 8010e9a <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))
8010e7a: 687b ldr r3, [r7, #4]
8010e7c: 681b ldr r3, [r3, #0]
8010e7e: 689b ldr r3, [r3, #8]
8010e80: f003 0380 and.w r3, r3, #128 ; 0x80
8010e84: 2b80 cmp r3, #128 ; 0x80
8010e86: d104 bne.n 8010e92 <HAL_UART_Abort_IT+0xd2>
{
huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback;
8010e88: 687b ldr r3, [r7, #4]
8010e8a: 6edb ldr r3, [r3, #108] ; 0x6c
8010e8c: 4a5d ldr r2, [pc, #372] ; (8011004 <HAL_UART_Abort_IT+0x244>)
8010e8e: 651a str r2, [r3, #80] ; 0x50
8010e90: e003 b.n 8010e9a <HAL_UART_Abort_IT+0xda>
}
else
{
huart->hdmatx->XferAbortCallback = NULL;
8010e92: 687b ldr r3, [r7, #4]
8010e94: 6edb ldr r3, [r3, #108] ; 0x6c
8010e96: 2200 movs r2, #0
8010e98: 651a str r2, [r3, #80] ; 0x50
}
}
/* DMA Rx Handle is valid */
if (huart->hdmarx != NULL)
8010e9a: 687b ldr r3, [r7, #4]
8010e9c: 6f1b ldr r3, [r3, #112] ; 0x70
8010e9e: 2b00 cmp r3, #0
8010ea0: d00f beq.n 8010ec2 <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))
8010ea2: 687b ldr r3, [r7, #4]
8010ea4: 681b ldr r3, [r3, #0]
8010ea6: 689b ldr r3, [r3, #8]
8010ea8: f003 0340 and.w r3, r3, #64 ; 0x40
8010eac: 2b40 cmp r3, #64 ; 0x40
8010eae: d104 bne.n 8010eba <HAL_UART_Abort_IT+0xfa>
{
huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback;
8010eb0: 687b ldr r3, [r7, #4]
8010eb2: 6f1b ldr r3, [r3, #112] ; 0x70
8010eb4: 4a54 ldr r2, [pc, #336] ; (8011008 <HAL_UART_Abort_IT+0x248>)
8010eb6: 651a str r2, [r3, #80] ; 0x50
8010eb8: e003 b.n 8010ec2 <HAL_UART_Abort_IT+0x102>
}
else
{
huart->hdmarx->XferAbortCallback = NULL;
8010eba: 687b ldr r3, [r7, #4]
8010ebc: 6f1b ldr r3, [r3, #112] ; 0x70
8010ebe: 2200 movs r2, #0
8010ec0: 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))
8010ec2: 687b ldr r3, [r7, #4]
8010ec4: 681b ldr r3, [r3, #0]
8010ec6: 689b ldr r3, [r3, #8]
8010ec8: f003 0380 and.w r3, r3, #128 ; 0x80
8010ecc: 2b80 cmp r3, #128 ; 0x80
8010ece: d12d bne.n 8010f2c <HAL_UART_Abort_IT+0x16c>
{
/* Disable DMA Tx at UART level */
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT);
8010ed0: 687b ldr r3, [r7, #4]
8010ed2: 681b ldr r3, [r3, #0]
8010ed4: 3308 adds r3, #8
8010ed6: 627b str r3, [r7, #36] ; 0x24
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8010ed8: 6a7b ldr r3, [r7, #36] ; 0x24
8010eda: e853 3f00 ldrex r3, [r3]
8010ede: 623b str r3, [r7, #32]
return(result);
8010ee0: 6a3b ldr r3, [r7, #32]
8010ee2: f023 0380 bic.w r3, r3, #128 ; 0x80
8010ee6: 677b str r3, [r7, #116] ; 0x74
8010ee8: 687b ldr r3, [r7, #4]
8010eea: 681b ldr r3, [r3, #0]
8010eec: 3308 adds r3, #8
8010eee: 6f7a ldr r2, [r7, #116] ; 0x74
8010ef0: 633a str r2, [r7, #48] ; 0x30
8010ef2: 62fb str r3, [r7, #44] ; 0x2c
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8010ef4: 6af9 ldr r1, [r7, #44] ; 0x2c
8010ef6: 6b3a ldr r2, [r7, #48] ; 0x30
8010ef8: e841 2300 strex r3, r2, [r1]
8010efc: 62bb str r3, [r7, #40] ; 0x28
return(result);
8010efe: 6abb ldr r3, [r7, #40] ; 0x28
8010f00: 2b00 cmp r3, #0
8010f02: d1e5 bne.n 8010ed0 <HAL_UART_Abort_IT+0x110>
/* Abort the UART DMA Tx channel : use non blocking DMA Abort API (callback) */
if (huart->hdmatx != NULL)
8010f04: 687b ldr r3, [r7, #4]
8010f06: 6edb ldr r3, [r3, #108] ; 0x6c
8010f08: 2b00 cmp r3, #0
8010f0a: d00f beq.n 8010f2c <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)
8010f0c: 687b ldr r3, [r7, #4]
8010f0e: 6edb ldr r3, [r3, #108] ; 0x6c
8010f10: 4618 mov r0, r3
8010f12: f7fc ffa4 bl 800de5e <HAL_DMA_Abort_IT>
8010f16: 4603 mov r3, r0
8010f18: 2b00 cmp r3, #0
8010f1a: d004 beq.n 8010f26 <HAL_UART_Abort_IT+0x166>
{
huart->hdmatx->XferAbortCallback = NULL;
8010f1c: 687b ldr r3, [r7, #4]
8010f1e: 6edb ldr r3, [r3, #108] ; 0x6c
8010f20: 2200 movs r2, #0
8010f22: 651a str r2, [r3, #80] ; 0x50
8010f24: e002 b.n 8010f2c <HAL_UART_Abort_IT+0x16c>
}
else
{
abortcplt = 0U;
8010f26: 2300 movs r3, #0
8010f28: 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))
8010f2c: 687b ldr r3, [r7, #4]
8010f2e: 681b ldr r3, [r3, #0]
8010f30: 689b ldr r3, [r3, #8]
8010f32: f003 0340 and.w r3, r3, #64 ; 0x40
8010f36: 2b40 cmp r3, #64 ; 0x40
8010f38: d130 bne.n 8010f9c <HAL_UART_Abort_IT+0x1dc>
{
/* Disable the UART DMA Rx request if enabled */
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
8010f3a: 687b ldr r3, [r7, #4]
8010f3c: 681b ldr r3, [r3, #0]
8010f3e: 3308 adds r3, #8
8010f40: 613b str r3, [r7, #16]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8010f42: 693b ldr r3, [r7, #16]
8010f44: e853 3f00 ldrex r3, [r3]
8010f48: 60fb str r3, [r7, #12]
return(result);
8010f4a: 68fb ldr r3, [r7, #12]
8010f4c: f023 0340 bic.w r3, r3, #64 ; 0x40
8010f50: 673b str r3, [r7, #112] ; 0x70
8010f52: 687b ldr r3, [r7, #4]
8010f54: 681b ldr r3, [r3, #0]
8010f56: 3308 adds r3, #8
8010f58: 6f3a ldr r2, [r7, #112] ; 0x70
8010f5a: 61fa str r2, [r7, #28]
8010f5c: 61bb str r3, [r7, #24]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8010f5e: 69b9 ldr r1, [r7, #24]
8010f60: 69fa ldr r2, [r7, #28]
8010f62: e841 2300 strex r3, r2, [r1]
8010f66: 617b str r3, [r7, #20]
return(result);
8010f68: 697b ldr r3, [r7, #20]
8010f6a: 2b00 cmp r3, #0
8010f6c: d1e5 bne.n 8010f3a <HAL_UART_Abort_IT+0x17a>
/* Abort the UART DMA Rx channel : use non blocking DMA Abort API (callback) */
if (huart->hdmarx != NULL)
8010f6e: 687b ldr r3, [r7, #4]
8010f70: 6f1b ldr r3, [r3, #112] ; 0x70
8010f72: 2b00 cmp r3, #0
8010f74: d012 beq.n 8010f9c <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)
8010f76: 687b ldr r3, [r7, #4]
8010f78: 6f1b ldr r3, [r3, #112] ; 0x70
8010f7a: 4618 mov r0, r3
8010f7c: f7fc ff6f bl 800de5e <HAL_DMA_Abort_IT>
8010f80: 4603 mov r3, r0
8010f82: 2b00 cmp r3, #0
8010f84: d007 beq.n 8010f96 <HAL_UART_Abort_IT+0x1d6>
{
huart->hdmarx->XferAbortCallback = NULL;
8010f86: 687b ldr r3, [r7, #4]
8010f88: 6f1b ldr r3, [r3, #112] ; 0x70
8010f8a: 2200 movs r2, #0
8010f8c: 651a str r2, [r3, #80] ; 0x50
abortcplt = 1U;
8010f8e: 2301 movs r3, #1
8010f90: f8c7 3084 str.w r3, [r7, #132] ; 0x84
8010f94: e002 b.n 8010f9c <HAL_UART_Abort_IT+0x1dc>
}
else
{
abortcplt = 0U;
8010f96: 2300 movs r3, #0
8010f98: 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)
8010f9c: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84
8010fa0: 2b01 cmp r3, #1
8010fa2: d129 bne.n 8010ff8 <HAL_UART_Abort_IT+0x238>
{
/* Reset Tx and Rx transfer counters */
huart->TxXferCount = 0U;
8010fa4: 687b ldr r3, [r7, #4]
8010fa6: 2200 movs r2, #0
8010fa8: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
huart->RxXferCount = 0U;
8010fac: 687b ldr r3, [r7, #4]
8010fae: 2200 movs r2, #0
8010fb0: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
/* Clear ISR function pointers */
huart->RxISR = NULL;
8010fb4: 687b ldr r3, [r7, #4]
8010fb6: 2200 movs r2, #0
8010fb8: 665a str r2, [r3, #100] ; 0x64
huart->TxISR = NULL;
8010fba: 687b ldr r3, [r7, #4]
8010fbc: 2200 movs r2, #0
8010fbe: 669a str r2, [r3, #104] ; 0x68
/* Reset errorCode */
huart->ErrorCode = HAL_UART_ERROR_NONE;
8010fc0: 687b ldr r3, [r7, #4]
8010fc2: 2200 movs r2, #0
8010fc4: 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);
8010fc8: 687b ldr r3, [r7, #4]
8010fca: 681b ldr r3, [r3, #0]
8010fcc: 220f movs r2, #15
8010fce: 621a str r2, [r3, #32]
/* Discard the received data */
__HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
8010fd0: 687b ldr r3, [r7, #4]
8010fd2: 681b ldr r3, [r3, #0]
8010fd4: 687a ldr r2, [r7, #4]
8010fd6: 6812 ldr r2, [r2, #0]
8010fd8: 6992 ldr r2, [r2, #24]
8010fda: f042 0208 orr.w r2, r2, #8
8010fde: 619a str r2, [r3, #24]
/* Restore huart->gState and huart->RxState to Ready */
huart->gState = HAL_UART_STATE_READY;
8010fe0: 687b ldr r3, [r7, #4]
8010fe2: 2220 movs r2, #32
8010fe4: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
8010fe6: 687b ldr r3, [r7, #4]
8010fe8: 2220 movs r2, #32
8010fea: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
8010fec: 687b ldr r3, [r7, #4]
8010fee: 2200 movs r2, #0
8010ff0: 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);
8010ff2: 6878 ldr r0, [r7, #4]
8010ff4: f000 faea bl 80115cc <HAL_UART_AbortCpltCallback>
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
}
return HAL_OK;
8010ff8: 2300 movs r3, #0
}
8010ffa: 4618 mov r0, r3
8010ffc: 3788 adds r7, #136 ; 0x88
8010ffe: 46bd mov sp, r7
8011000: bd80 pop {r7, pc}
8011002: bf00 nop
8011004: 08011f1d .word 0x08011f1d
8011008: 08011f87 .word 0x08011f87
0801100c <HAL_UART_IRQHandler>:
* @brief Handle UART interrupt request.
* @param huart UART handle.
* @retval None
*/
void HAL_UART_IRQHandler(UART_HandleTypeDef *huart)
{
801100c: b580 push {r7, lr}
801100e: b0ba sub sp, #232 ; 0xe8
8011010: af00 add r7, sp, #0
8011012: 6078 str r0, [r7, #4]
uint32_t isrflags = READ_REG(huart->Instance->ISR);
8011014: 687b ldr r3, [r7, #4]
8011016: 681b ldr r3, [r3, #0]
8011018: 69db ldr r3, [r3, #28]
801101a: f8c7 30e4 str.w r3, [r7, #228] ; 0xe4
uint32_t cr1its = READ_REG(huart->Instance->CR1);
801101e: 687b ldr r3, [r7, #4]
8011020: 681b ldr r3, [r3, #0]
8011022: 681b ldr r3, [r3, #0]
8011024: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0
uint32_t cr3its = READ_REG(huart->Instance->CR3);
8011028: 687b ldr r3, [r7, #4]
801102a: 681b ldr r3, [r3, #0]
801102c: 689b ldr r3, [r3, #8]
801102e: 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));
8011032: f8d7 20e4 ldr.w r2, [r7, #228] ; 0xe4
8011036: f640 030f movw r3, #2063 ; 0x80f
801103a: 4013 ands r3, r2
801103c: f8c7 30d8 str.w r3, [r7, #216] ; 0xd8
if (errorflags == 0U)
8011040: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8
8011044: 2b00 cmp r3, #0
8011046: d115 bne.n 8011074 <HAL_UART_IRQHandler+0x68>
{
/* UART in mode Receiver ---------------------------------------------------*/
if (((isrflags & USART_ISR_RXNE) != 0U)
8011048: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
801104c: f003 0320 and.w r3, r3, #32
8011050: 2b00 cmp r3, #0
8011052: d00f beq.n 8011074 <HAL_UART_IRQHandler+0x68>
&& ((cr1its & USART_CR1_RXNEIE) != 0U))
8011054: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
8011058: f003 0320 and.w r3, r3, #32
801105c: 2b00 cmp r3, #0
801105e: d009 beq.n 8011074 <HAL_UART_IRQHandler+0x68>
{
if (huart->RxISR != NULL)
8011060: 687b ldr r3, [r7, #4]
8011062: 6e5b ldr r3, [r3, #100] ; 0x64
8011064: 2b00 cmp r3, #0
8011066: f000 82a5 beq.w 80115b4 <HAL_UART_IRQHandler+0x5a8>
{
huart->RxISR(huart);
801106a: 687b ldr r3, [r7, #4]
801106c: 6e5b ldr r3, [r3, #100] ; 0x64
801106e: 6878 ldr r0, [r7, #4]
8011070: 4798 blx r3
}
return;
8011072: e29f b.n 80115b4 <HAL_UART_IRQHandler+0x5a8>
}
}
/* If some errors occur */
if ((errorflags != 0U)
8011074: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8
8011078: 2b00 cmp r3, #0
801107a: f000 8117 beq.w 80112ac <HAL_UART_IRQHandler+0x2a0>
&& (((cr3its & USART_CR3_EIE) != 0U)
801107e: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc
8011082: f003 0301 and.w r3, r3, #1
8011086: 2b00 cmp r3, #0
8011088: d106 bne.n 8011098 <HAL_UART_IRQHandler+0x8c>
|| ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_RTOIE)) != 0U)))
801108a: f8d7 20e0 ldr.w r2, [r7, #224] ; 0xe0
801108e: 4b85 ldr r3, [pc, #532] ; (80112a4 <HAL_UART_IRQHandler+0x298>)
8011090: 4013 ands r3, r2
8011092: 2b00 cmp r3, #0
8011094: f000 810a beq.w 80112ac <HAL_UART_IRQHandler+0x2a0>
{
/* UART parity error interrupt occurred -------------------------------------*/
if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U))
8011098: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
801109c: f003 0301 and.w r3, r3, #1
80110a0: 2b00 cmp r3, #0
80110a2: d011 beq.n 80110c8 <HAL_UART_IRQHandler+0xbc>
80110a4: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
80110a8: f403 7380 and.w r3, r3, #256 ; 0x100
80110ac: 2b00 cmp r3, #0
80110ae: d00b beq.n 80110c8 <HAL_UART_IRQHandler+0xbc>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF);
80110b0: 687b ldr r3, [r7, #4]
80110b2: 681b ldr r3, [r3, #0]
80110b4: 2201 movs r2, #1
80110b6: 621a str r2, [r3, #32]
huart->ErrorCode |= HAL_UART_ERROR_PE;
80110b8: 687b ldr r3, [r7, #4]
80110ba: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
80110be: f043 0201 orr.w r2, r3, #1
80110c2: 687b ldr r3, [r7, #4]
80110c4: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
/* UART frame error interrupt occurred --------------------------------------*/
if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U))
80110c8: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
80110cc: f003 0302 and.w r3, r3, #2
80110d0: 2b00 cmp r3, #0
80110d2: d011 beq.n 80110f8 <HAL_UART_IRQHandler+0xec>
80110d4: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc
80110d8: f003 0301 and.w r3, r3, #1
80110dc: 2b00 cmp r3, #0
80110de: d00b beq.n 80110f8 <HAL_UART_IRQHandler+0xec>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF);
80110e0: 687b ldr r3, [r7, #4]
80110e2: 681b ldr r3, [r3, #0]
80110e4: 2202 movs r2, #2
80110e6: 621a str r2, [r3, #32]
huart->ErrorCode |= HAL_UART_ERROR_FE;
80110e8: 687b ldr r3, [r7, #4]
80110ea: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
80110ee: f043 0204 orr.w r2, r3, #4
80110f2: 687b ldr r3, [r7, #4]
80110f4: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
/* UART noise error interrupt occurred --------------------------------------*/
if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U))
80110f8: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
80110fc: f003 0304 and.w r3, r3, #4
8011100: 2b00 cmp r3, #0
8011102: d011 beq.n 8011128 <HAL_UART_IRQHandler+0x11c>
8011104: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc
8011108: f003 0301 and.w r3, r3, #1
801110c: 2b00 cmp r3, #0
801110e: d00b beq.n 8011128 <HAL_UART_IRQHandler+0x11c>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF);
8011110: 687b ldr r3, [r7, #4]
8011112: 681b ldr r3, [r3, #0]
8011114: 2204 movs r2, #4
8011116: 621a str r2, [r3, #32]
huart->ErrorCode |= HAL_UART_ERROR_NE;
8011118: 687b ldr r3, [r7, #4]
801111a: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
801111e: f043 0202 orr.w r2, r3, #2
8011122: 687b ldr r3, [r7, #4]
8011124: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
/* UART Over-Run interrupt occurred -----------------------------------------*/
if (((isrflags & USART_ISR_ORE) != 0U)
8011128: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
801112c: f003 0308 and.w r3, r3, #8
8011130: 2b00 cmp r3, #0
8011132: d017 beq.n 8011164 <HAL_UART_IRQHandler+0x158>
&& (((cr1its & USART_CR1_RXNEIE) != 0U) ||
8011134: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
8011138: f003 0320 and.w r3, r3, #32
801113c: 2b00 cmp r3, #0
801113e: d105 bne.n 801114c <HAL_UART_IRQHandler+0x140>
((cr3its & USART_CR3_EIE) != 0U)))
8011140: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc
8011144: f003 0301 and.w r3, r3, #1
&& (((cr1its & USART_CR1_RXNEIE) != 0U) ||
8011148: 2b00 cmp r3, #0
801114a: d00b beq.n 8011164 <HAL_UART_IRQHandler+0x158>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF);
801114c: 687b ldr r3, [r7, #4]
801114e: 681b ldr r3, [r3, #0]
8011150: 2208 movs r2, #8
8011152: 621a str r2, [r3, #32]
huart->ErrorCode |= HAL_UART_ERROR_ORE;
8011154: 687b ldr r3, [r7, #4]
8011156: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
801115a: f043 0208 orr.w r2, r3, #8
801115e: 687b ldr r3, [r7, #4]
8011160: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
/* UART Receiver Timeout interrupt occurred ---------------------------------*/
if (((isrflags & USART_ISR_RTOF) != 0U) && ((cr1its & USART_CR1_RTOIE) != 0U))
8011164: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
8011168: f403 6300 and.w r3, r3, #2048 ; 0x800
801116c: 2b00 cmp r3, #0
801116e: d012 beq.n 8011196 <HAL_UART_IRQHandler+0x18a>
8011170: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
8011174: f003 6380 and.w r3, r3, #67108864 ; 0x4000000
8011178: 2b00 cmp r3, #0
801117a: d00c beq.n 8011196 <HAL_UART_IRQHandler+0x18a>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF);
801117c: 687b ldr r3, [r7, #4]
801117e: 681b ldr r3, [r3, #0]
8011180: f44f 6200 mov.w r2, #2048 ; 0x800
8011184: 621a str r2, [r3, #32]
huart->ErrorCode |= HAL_UART_ERROR_RTO;
8011186: 687b ldr r3, [r7, #4]
8011188: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
801118c: f043 0220 orr.w r2, r3, #32
8011190: 687b ldr r3, [r7, #4]
8011192: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
/* Call UART Error Call back function if need be ----------------------------*/
if (huart->ErrorCode != HAL_UART_ERROR_NONE)
8011196: 687b ldr r3, [r7, #4]
8011198: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
801119c: 2b00 cmp r3, #0
801119e: f000 820b beq.w 80115b8 <HAL_UART_IRQHandler+0x5ac>
{
/* UART in mode Receiver --------------------------------------------------*/
if (((isrflags & USART_ISR_RXNE) != 0U)
80111a2: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
80111a6: f003 0320 and.w r3, r3, #32
80111aa: 2b00 cmp r3, #0
80111ac: d00d beq.n 80111ca <HAL_UART_IRQHandler+0x1be>
&& ((cr1its & USART_CR1_RXNEIE) != 0U))
80111ae: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
80111b2: f003 0320 and.w r3, r3, #32
80111b6: 2b00 cmp r3, #0
80111b8: d007 beq.n 80111ca <HAL_UART_IRQHandler+0x1be>
{
if (huart->RxISR != NULL)
80111ba: 687b ldr r3, [r7, #4]
80111bc: 6e5b ldr r3, [r3, #100] ; 0x64
80111be: 2b00 cmp r3, #0
80111c0: d003 beq.n 80111ca <HAL_UART_IRQHandler+0x1be>
{
huart->RxISR(huart);
80111c2: 687b ldr r3, [r7, #4]
80111c4: 6e5b ldr r3, [r3, #100] ; 0x64
80111c6: 6878 ldr r0, [r7, #4]
80111c8: 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;
80111ca: 687b ldr r3, [r7, #4]
80111cc: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
80111d0: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4
if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) ||
80111d4: 687b ldr r3, [r7, #4]
80111d6: 681b ldr r3, [r3, #0]
80111d8: 689b ldr r3, [r3, #8]
80111da: f003 0340 and.w r3, r3, #64 ; 0x40
80111de: 2b40 cmp r3, #64 ; 0x40
80111e0: d005 beq.n 80111ee <HAL_UART_IRQHandler+0x1e2>
((errorcode & (HAL_UART_ERROR_RTO | HAL_UART_ERROR_ORE)) != 0U))
80111e2: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4
80111e6: f003 0328 and.w r3, r3, #40 ; 0x28
if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) ||
80111ea: 2b00 cmp r3, #0
80111ec: d04f beq.n 801128e <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);
80111ee: 6878 ldr r0, [r7, #4]
80111f0: f000 fe1b bl 8011e2a <UART_EndRxTransfer>
/* Abort the UART DMA Rx channel if enabled */
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
80111f4: 687b ldr r3, [r7, #4]
80111f6: 681b ldr r3, [r3, #0]
80111f8: 689b ldr r3, [r3, #8]
80111fa: f003 0340 and.w r3, r3, #64 ; 0x40
80111fe: 2b40 cmp r3, #64 ; 0x40
8011200: d141 bne.n 8011286 <HAL_UART_IRQHandler+0x27a>
{
/* Disable the UART DMA Rx request if enabled */
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
8011202: 687b ldr r3, [r7, #4]
8011204: 681b ldr r3, [r3, #0]
8011206: 3308 adds r3, #8
8011208: f8c7 309c str.w r3, [r7, #156] ; 0x9c
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
801120c: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c
8011210: e853 3f00 ldrex r3, [r3]
8011214: f8c7 3098 str.w r3, [r7, #152] ; 0x98
return(result);
8011218: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98
801121c: f023 0340 bic.w r3, r3, #64 ; 0x40
8011220: f8c7 30d0 str.w r3, [r7, #208] ; 0xd0
8011224: 687b ldr r3, [r7, #4]
8011226: 681b ldr r3, [r3, #0]
8011228: 3308 adds r3, #8
801122a: f8d7 20d0 ldr.w r2, [r7, #208] ; 0xd0
801122e: f8c7 20a8 str.w r2, [r7, #168] ; 0xa8
8011232: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8011236: f8d7 10a4 ldr.w r1, [r7, #164] ; 0xa4
801123a: f8d7 20a8 ldr.w r2, [r7, #168] ; 0xa8
801123e: e841 2300 strex r3, r2, [r1]
8011242: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0
return(result);
8011246: f8d7 30a0 ldr.w r3, [r7, #160] ; 0xa0
801124a: 2b00 cmp r3, #0
801124c: d1d9 bne.n 8011202 <HAL_UART_IRQHandler+0x1f6>
/* Abort the UART DMA Rx channel */
if (huart->hdmarx != NULL)
801124e: 687b ldr r3, [r7, #4]
8011250: 6f1b ldr r3, [r3, #112] ; 0x70
8011252: 2b00 cmp r3, #0
8011254: d013 beq.n 801127e <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;
8011256: 687b ldr r3, [r7, #4]
8011258: 6f1b ldr r3, [r3, #112] ; 0x70
801125a: 4a13 ldr r2, [pc, #76] ; (80112a8 <HAL_UART_IRQHandler+0x29c>)
801125c: 651a str r2, [r3, #80] ; 0x50
/* Abort DMA RX */
if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK)
801125e: 687b ldr r3, [r7, #4]
8011260: 6f1b ldr r3, [r3, #112] ; 0x70
8011262: 4618 mov r0, r3
8011264: f7fc fdfb bl 800de5e <HAL_DMA_Abort_IT>
8011268: 4603 mov r3, r0
801126a: 2b00 cmp r3, #0
801126c: d017 beq.n 801129e <HAL_UART_IRQHandler+0x292>
{
/* Call Directly huart->hdmarx->XferAbortCallback function in case of error */
huart->hdmarx->XferAbortCallback(huart->hdmarx);
801126e: 687b ldr r3, [r7, #4]
8011270: 6f1b ldr r3, [r3, #112] ; 0x70
8011272: 6d1b ldr r3, [r3, #80] ; 0x50
8011274: 687a ldr r2, [r7, #4]
8011276: 6f12 ldr r2, [r2, #112] ; 0x70
8011278: 4610 mov r0, r2
801127a: 4798 blx r3
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
801127c: e00f b.n 801129e <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);
801127e: 6878 ldr r0, [r7, #4]
8011280: f7fb f8c0 bl 800c404 <HAL_UART_ErrorCallback>
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
8011284: e00b b.n 801129e <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);
8011286: 6878 ldr r0, [r7, #4]
8011288: f7fb f8bc bl 800c404 <HAL_UART_ErrorCallback>
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
801128c: e007 b.n 801129e <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);
801128e: 6878 ldr r0, [r7, #4]
8011290: f7fb f8b8 bl 800c404 <HAL_UART_ErrorCallback>
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
huart->ErrorCode = HAL_UART_ERROR_NONE;
8011294: 687b ldr r3, [r7, #4]
8011296: 2200 movs r2, #0
8011298: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
}
return;
801129c: e18c b.n 80115b8 <HAL_UART_IRQHandler+0x5ac>
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
801129e: bf00 nop
return;
80112a0: e18a b.n 80115b8 <HAL_UART_IRQHandler+0x5ac>
80112a2: bf00 nop
80112a4: 04000120 .word 0x04000120
80112a8: 08011ef1 .word 0x08011ef1
} /* End if some error occurs */
/* Check current reception Mode :
If Reception till IDLE event has been selected : */
if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE)
80112ac: 687b ldr r3, [r7, #4]
80112ae: 6e1b ldr r3, [r3, #96] ; 0x60
80112b0: 2b01 cmp r3, #1
80112b2: f040 8144 bne.w 801153e <HAL_UART_IRQHandler+0x532>
&& ((isrflags & USART_ISR_IDLE) != 0U)
80112b6: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
80112ba: f003 0310 and.w r3, r3, #16
80112be: 2b00 cmp r3, #0
80112c0: f000 813d beq.w 801153e <HAL_UART_IRQHandler+0x532>
&& ((cr1its & USART_ISR_IDLE) != 0U))
80112c4: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
80112c8: f003 0310 and.w r3, r3, #16
80112cc: 2b00 cmp r3, #0
80112ce: f000 8136 beq.w 801153e <HAL_UART_IRQHandler+0x532>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF);
80112d2: 687b ldr r3, [r7, #4]
80112d4: 681b ldr r3, [r3, #0]
80112d6: 2210 movs r2, #16
80112d8: 621a str r2, [r3, #32]
/* Check if DMA mode is enabled in UART */
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
80112da: 687b ldr r3, [r7, #4]
80112dc: 681b ldr r3, [r3, #0]
80112de: 689b ldr r3, [r3, #8]
80112e0: f003 0340 and.w r3, r3, #64 ; 0x40
80112e4: 2b40 cmp r3, #64 ; 0x40
80112e6: f040 80b2 bne.w 801144e <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);
80112ea: 687b ldr r3, [r7, #4]
80112ec: 6f1b ldr r3, [r3, #112] ; 0x70
80112ee: 681b ldr r3, [r3, #0]
80112f0: 685b ldr r3, [r3, #4]
80112f2: f8a7 30ce strh.w r3, [r7, #206] ; 0xce
if ((nb_remaining_rx_data > 0U)
80112f6: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce
80112fa: 2b00 cmp r3, #0
80112fc: f000 815e beq.w 80115bc <HAL_UART_IRQHandler+0x5b0>
&& (nb_remaining_rx_data < huart->RxXferSize))
8011300: 687b ldr r3, [r7, #4]
8011302: f8b3 3058 ldrh.w r3, [r3, #88] ; 0x58
8011306: f8b7 20ce ldrh.w r2, [r7, #206] ; 0xce
801130a: 429a cmp r2, r3
801130c: f080 8156 bcs.w 80115bc <HAL_UART_IRQHandler+0x5b0>
{
/* Reception is not complete */
huart->RxXferCount = nb_remaining_rx_data;
8011310: 687b ldr r3, [r7, #4]
8011312: f8b7 20ce ldrh.w r2, [r7, #206] ; 0xce
8011316: 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)
801131a: 687b ldr r3, [r7, #4]
801131c: 6f1b ldr r3, [r3, #112] ; 0x70
801131e: 69db ldr r3, [r3, #28]
8011320: f5b3 7f80 cmp.w r3, #256 ; 0x100
8011324: f000 8085 beq.w 8011432 <HAL_UART_IRQHandler+0x426>
{
/* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE);
8011328: 687b ldr r3, [r7, #4]
801132a: 681b ldr r3, [r3, #0]
801132c: f8c7 3088 str.w r3, [r7, #136] ; 0x88
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8011330: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88
8011334: e853 3f00 ldrex r3, [r3]
8011338: f8c7 3084 str.w r3, [r7, #132] ; 0x84
return(result);
801133c: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84
8011340: f423 7380 bic.w r3, r3, #256 ; 0x100
8011344: f8c7 30c8 str.w r3, [r7, #200] ; 0xc8
8011348: 687b ldr r3, [r7, #4]
801134a: 681b ldr r3, [r3, #0]
801134c: 461a mov r2, r3
801134e: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8
8011352: f8c7 3094 str.w r3, [r7, #148] ; 0x94
8011356: f8c7 2090 str.w r2, [r7, #144] ; 0x90
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
801135a: f8d7 1090 ldr.w r1, [r7, #144] ; 0x90
801135e: f8d7 2094 ldr.w r2, [r7, #148] ; 0x94
8011362: e841 2300 strex r3, r2, [r1]
8011366: f8c7 308c str.w r3, [r7, #140] ; 0x8c
return(result);
801136a: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c
801136e: 2b00 cmp r3, #0
8011370: d1da bne.n 8011328 <HAL_UART_IRQHandler+0x31c>
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
8011372: 687b ldr r3, [r7, #4]
8011374: 681b ldr r3, [r3, #0]
8011376: 3308 adds r3, #8
8011378: 677b str r3, [r7, #116] ; 0x74
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
801137a: 6f7b ldr r3, [r7, #116] ; 0x74
801137c: e853 3f00 ldrex r3, [r3]
8011380: 673b str r3, [r7, #112] ; 0x70
return(result);
8011382: 6f3b ldr r3, [r7, #112] ; 0x70
8011384: f023 0301 bic.w r3, r3, #1
8011388: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4
801138c: 687b ldr r3, [r7, #4]
801138e: 681b ldr r3, [r3, #0]
8011390: 3308 adds r3, #8
8011392: f8d7 20c4 ldr.w r2, [r7, #196] ; 0xc4
8011396: f8c7 2080 str.w r2, [r7, #128] ; 0x80
801139a: 67fb str r3, [r7, #124] ; 0x7c
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
801139c: 6ff9 ldr r1, [r7, #124] ; 0x7c
801139e: f8d7 2080 ldr.w r2, [r7, #128] ; 0x80
80113a2: e841 2300 strex r3, r2, [r1]
80113a6: 67bb str r3, [r7, #120] ; 0x78
return(result);
80113a8: 6fbb ldr r3, [r7, #120] ; 0x78
80113aa: 2b00 cmp r3, #0
80113ac: d1e1 bne.n 8011372 <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);
80113ae: 687b ldr r3, [r7, #4]
80113b0: 681b ldr r3, [r3, #0]
80113b2: 3308 adds r3, #8
80113b4: 663b str r3, [r7, #96] ; 0x60
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
80113b6: 6e3b ldr r3, [r7, #96] ; 0x60
80113b8: e853 3f00 ldrex r3, [r3]
80113bc: 65fb str r3, [r7, #92] ; 0x5c
return(result);
80113be: 6dfb ldr r3, [r7, #92] ; 0x5c
80113c0: f023 0340 bic.w r3, r3, #64 ; 0x40
80113c4: f8c7 30c0 str.w r3, [r7, #192] ; 0xc0
80113c8: 687b ldr r3, [r7, #4]
80113ca: 681b ldr r3, [r3, #0]
80113cc: 3308 adds r3, #8
80113ce: f8d7 20c0 ldr.w r2, [r7, #192] ; 0xc0
80113d2: 66fa str r2, [r7, #108] ; 0x6c
80113d4: 66bb str r3, [r7, #104] ; 0x68
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80113d6: 6eb9 ldr r1, [r7, #104] ; 0x68
80113d8: 6efa ldr r2, [r7, #108] ; 0x6c
80113da: e841 2300 strex r3, r2, [r1]
80113de: 667b str r3, [r7, #100] ; 0x64
return(result);
80113e0: 6e7b ldr r3, [r7, #100] ; 0x64
80113e2: 2b00 cmp r3, #0
80113e4: d1e3 bne.n 80113ae <HAL_UART_IRQHandler+0x3a2>
/* At end of Rx process, restore huart->RxState to Ready */
huart->RxState = HAL_UART_STATE_READY;
80113e6: 687b ldr r3, [r7, #4]
80113e8: 2220 movs r2, #32
80113ea: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
80113ec: 687b ldr r3, [r7, #4]
80113ee: 2200 movs r2, #0
80113f0: 661a str r2, [r3, #96] ; 0x60
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
80113f2: 687b ldr r3, [r7, #4]
80113f4: 681b ldr r3, [r3, #0]
80113f6: 64fb str r3, [r7, #76] ; 0x4c
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
80113f8: 6cfb ldr r3, [r7, #76] ; 0x4c
80113fa: e853 3f00 ldrex r3, [r3]
80113fe: 64bb str r3, [r7, #72] ; 0x48
return(result);
8011400: 6cbb ldr r3, [r7, #72] ; 0x48
8011402: f023 0310 bic.w r3, r3, #16
8011406: f8c7 30bc str.w r3, [r7, #188] ; 0xbc
801140a: 687b ldr r3, [r7, #4]
801140c: 681b ldr r3, [r3, #0]
801140e: 461a mov r2, r3
8011410: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc
8011414: 65bb str r3, [r7, #88] ; 0x58
8011416: 657a str r2, [r7, #84] ; 0x54
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8011418: 6d79 ldr r1, [r7, #84] ; 0x54
801141a: 6dba ldr r2, [r7, #88] ; 0x58
801141c: e841 2300 strex r3, r2, [r1]
8011420: 653b str r3, [r7, #80] ; 0x50
return(result);
8011422: 6d3b ldr r3, [r7, #80] ; 0x50
8011424: 2b00 cmp r3, #0
8011426: d1e4 bne.n 80113f2 <HAL_UART_IRQHandler+0x3e6>
/* Last bytes received, so no need as the abort is immediate */
(void)HAL_DMA_Abort(huart->hdmarx);
8011428: 687b ldr r3, [r7, #4]
801142a: 6f1b ldr r3, [r3, #112] ; 0x70
801142c: 4618 mov r0, r3
801142e: f7fc fca6 bl 800dd7e <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));
8011432: 687b ldr r3, [r7, #4]
8011434: f8b3 2058 ldrh.w r2, [r3, #88] ; 0x58
8011438: 687b ldr r3, [r7, #4]
801143a: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a
801143e: b29b uxth r3, r3
8011440: 1ad3 subs r3, r2, r3
8011442: b29b uxth r3, r3
8011444: 4619 mov r1, r3
8011446: 6878 ldr r0, [r7, #4]
8011448: f000 f8ca bl 80115e0 <HAL_UARTEx_RxEventCallback>
#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
}
return;
801144c: e0b6 b.n 80115bc <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;
801144e: 687b ldr r3, [r7, #4]
8011450: f8b3 2058 ldrh.w r2, [r3, #88] ; 0x58
8011454: 687b ldr r3, [r7, #4]
8011456: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a
801145a: b29b uxth r3, r3
801145c: 1ad3 subs r3, r2, r3
801145e: f8a7 30ba strh.w r3, [r7, #186] ; 0xba
if ((huart->RxXferCount > 0U)
8011462: 687b ldr r3, [r7, #4]
8011464: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a
8011468: b29b uxth r3, r3
801146a: 2b00 cmp r3, #0
801146c: f000 80a8 beq.w 80115c0 <HAL_UART_IRQHandler+0x5b4>
&& (nb_rx_data > 0U))
8011470: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba
8011474: 2b00 cmp r3, #0
8011476: f000 80a3 beq.w 80115c0 <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));
801147a: 687b ldr r3, [r7, #4]
801147c: 681b ldr r3, [r3, #0]
801147e: 63bb str r3, [r7, #56] ; 0x38
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8011480: 6bbb ldr r3, [r7, #56] ; 0x38
8011482: e853 3f00 ldrex r3, [r3]
8011486: 637b str r3, [r7, #52] ; 0x34
return(result);
8011488: 6b7b ldr r3, [r7, #52] ; 0x34
801148a: f423 7390 bic.w r3, r3, #288 ; 0x120
801148e: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4
8011492: 687b ldr r3, [r7, #4]
8011494: 681b ldr r3, [r3, #0]
8011496: 461a mov r2, r3
8011498: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4
801149c: 647b str r3, [r7, #68] ; 0x44
801149e: 643a str r2, [r7, #64] ; 0x40
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80114a0: 6c39 ldr r1, [r7, #64] ; 0x40
80114a2: 6c7a ldr r2, [r7, #68] ; 0x44
80114a4: e841 2300 strex r3, r2, [r1]
80114a8: 63fb str r3, [r7, #60] ; 0x3c
return(result);
80114aa: 6bfb ldr r3, [r7, #60] ; 0x3c
80114ac: 2b00 cmp r3, #0
80114ae: d1e4 bne.n 801147a <HAL_UART_IRQHandler+0x46e>
/* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
80114b0: 687b ldr r3, [r7, #4]
80114b2: 681b ldr r3, [r3, #0]
80114b4: 3308 adds r3, #8
80114b6: 627b str r3, [r7, #36] ; 0x24
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
80114b8: 6a7b ldr r3, [r7, #36] ; 0x24
80114ba: e853 3f00 ldrex r3, [r3]
80114be: 623b str r3, [r7, #32]
return(result);
80114c0: 6a3b ldr r3, [r7, #32]
80114c2: f023 0301 bic.w r3, r3, #1
80114c6: f8c7 30b0 str.w r3, [r7, #176] ; 0xb0
80114ca: 687b ldr r3, [r7, #4]
80114cc: 681b ldr r3, [r3, #0]
80114ce: 3308 adds r3, #8
80114d0: f8d7 20b0 ldr.w r2, [r7, #176] ; 0xb0
80114d4: 633a str r2, [r7, #48] ; 0x30
80114d6: 62fb str r3, [r7, #44] ; 0x2c
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80114d8: 6af9 ldr r1, [r7, #44] ; 0x2c
80114da: 6b3a ldr r2, [r7, #48] ; 0x30
80114dc: e841 2300 strex r3, r2, [r1]
80114e0: 62bb str r3, [r7, #40] ; 0x28
return(result);
80114e2: 6abb ldr r3, [r7, #40] ; 0x28
80114e4: 2b00 cmp r3, #0
80114e6: d1e3 bne.n 80114b0 <HAL_UART_IRQHandler+0x4a4>
/* Rx process is completed, restore huart->RxState to Ready */
huart->RxState = HAL_UART_STATE_READY;
80114e8: 687b ldr r3, [r7, #4]
80114ea: 2220 movs r2, #32
80114ec: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
80114ee: 687b ldr r3, [r7, #4]
80114f0: 2200 movs r2, #0
80114f2: 661a str r2, [r3, #96] ; 0x60
/* Clear RxISR function pointer */
huart->RxISR = NULL;
80114f4: 687b ldr r3, [r7, #4]
80114f6: 2200 movs r2, #0
80114f8: 665a str r2, [r3, #100] ; 0x64
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
80114fa: 687b ldr r3, [r7, #4]
80114fc: 681b ldr r3, [r3, #0]
80114fe: 613b str r3, [r7, #16]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8011500: 693b ldr r3, [r7, #16]
8011502: e853 3f00 ldrex r3, [r3]
8011506: 60fb str r3, [r7, #12]
return(result);
8011508: 68fb ldr r3, [r7, #12]
801150a: f023 0310 bic.w r3, r3, #16
801150e: f8c7 30ac str.w r3, [r7, #172] ; 0xac
8011512: 687b ldr r3, [r7, #4]
8011514: 681b ldr r3, [r3, #0]
8011516: 461a mov r2, r3
8011518: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac
801151c: 61fb str r3, [r7, #28]
801151e: 61ba str r2, [r7, #24]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8011520: 69b9 ldr r1, [r7, #24]
8011522: 69fa ldr r2, [r7, #28]
8011524: e841 2300 strex r3, r2, [r1]
8011528: 617b str r3, [r7, #20]
return(result);
801152a: 697b ldr r3, [r7, #20]
801152c: 2b00 cmp r3, #0
801152e: d1e4 bne.n 80114fa <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);
8011530: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba
8011534: 4619 mov r1, r3
8011536: 6878 ldr r0, [r7, #4]
8011538: f000 f852 bl 80115e0 <HAL_UARTEx_RxEventCallback>
#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
}
return;
801153c: e040 b.n 80115c0 <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))
801153e: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
8011542: f403 1380 and.w r3, r3, #1048576 ; 0x100000
8011546: 2b00 cmp r3, #0
8011548: d00e beq.n 8011568 <HAL_UART_IRQHandler+0x55c>
801154a: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc
801154e: f403 0380 and.w r3, r3, #4194304 ; 0x400000
8011552: 2b00 cmp r3, #0
8011554: d008 beq.n 8011568 <HAL_UART_IRQHandler+0x55c>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF);
8011556: 687b ldr r3, [r7, #4]
8011558: 681b ldr r3, [r3, #0]
801155a: f44f 1280 mov.w r2, #1048576 ; 0x100000
801155e: 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);
8011560: 6878 ldr r0, [r7, #4]
8011562: f000 f849 bl 80115f8 <HAL_UARTEx_WakeupCallback>
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
return;
8011566: e02e b.n 80115c6 <HAL_UART_IRQHandler+0x5ba>
}
#endif /* USART_CR3_WUFIE */
#endif /* USART_CR1_UESM */
/* UART in mode Transmitter ------------------------------------------------*/
if (((isrflags & USART_ISR_TXE) != 0U)
8011568: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
801156c: f003 0380 and.w r3, r3, #128 ; 0x80
8011570: 2b00 cmp r3, #0
8011572: d00e beq.n 8011592 <HAL_UART_IRQHandler+0x586>
&& ((cr1its & USART_CR1_TXEIE) != 0U))
8011574: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
8011578: f003 0380 and.w r3, r3, #128 ; 0x80
801157c: 2b00 cmp r3, #0
801157e: d008 beq.n 8011592 <HAL_UART_IRQHandler+0x586>
{
if (huart->TxISR != NULL)
8011580: 687b ldr r3, [r7, #4]
8011582: 6e9b ldr r3, [r3, #104] ; 0x68
8011584: 2b00 cmp r3, #0
8011586: d01d beq.n 80115c4 <HAL_UART_IRQHandler+0x5b8>
{
huart->TxISR(huart);
8011588: 687b ldr r3, [r7, #4]
801158a: 6e9b ldr r3, [r3, #104] ; 0x68
801158c: 6878 ldr r0, [r7, #4]
801158e: 4798 blx r3
}
return;
8011590: e018 b.n 80115c4 <HAL_UART_IRQHandler+0x5b8>
}
/* UART in mode Transmitter (transmission end) -----------------------------*/
if (((isrflags & USART_ISR_TC) != 0U) && ((cr1its & USART_CR1_TCIE) != 0U))
8011592: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
8011596: f003 0340 and.w r3, r3, #64 ; 0x40
801159a: 2b00 cmp r3, #0
801159c: d013 beq.n 80115c6 <HAL_UART_IRQHandler+0x5ba>
801159e: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
80115a2: f003 0340 and.w r3, r3, #64 ; 0x40
80115a6: 2b00 cmp r3, #0
80115a8: d00d beq.n 80115c6 <HAL_UART_IRQHandler+0x5ba>
{
UART_EndTransmit_IT(huart);
80115aa: 6878 ldr r0, [r7, #4]
80115ac: f000 fde2 bl 8012174 <UART_EndTransmit_IT>
return;
80115b0: bf00 nop
80115b2: e008 b.n 80115c6 <HAL_UART_IRQHandler+0x5ba>
return;
80115b4: bf00 nop
80115b6: e006 b.n 80115c6 <HAL_UART_IRQHandler+0x5ba>
return;
80115b8: bf00 nop
80115ba: e004 b.n 80115c6 <HAL_UART_IRQHandler+0x5ba>
return;
80115bc: bf00 nop
80115be: e002 b.n 80115c6 <HAL_UART_IRQHandler+0x5ba>
return;
80115c0: bf00 nop
80115c2: e000 b.n 80115c6 <HAL_UART_IRQHandler+0x5ba>
return;
80115c4: bf00 nop
}
}
80115c6: 37e8 adds r7, #232 ; 0xe8
80115c8: 46bd mov sp, r7
80115ca: bd80 pop {r7, pc}
080115cc <HAL_UART_AbortCpltCallback>:
* @brief UART Abort Complete callback.
* @param huart UART handle.
* @retval None
*/
__weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart)
{
80115cc: b480 push {r7}
80115ce: b083 sub sp, #12
80115d0: af00 add r7, sp, #0
80115d2: 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.
*/
}
80115d4: bf00 nop
80115d6: 370c adds r7, #12
80115d8: 46bd mov sp, r7
80115da: f85d 7b04 ldr.w r7, [sp], #4
80115de: 4770 bx lr
080115e0 <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)
{
80115e0: b480 push {r7}
80115e2: b083 sub sp, #12
80115e4: af00 add r7, sp, #0
80115e6: 6078 str r0, [r7, #4]
80115e8: 460b mov r3, r1
80115ea: 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.
*/
}
80115ec: bf00 nop
80115ee: 370c adds r7, #12
80115f0: 46bd mov sp, r7
80115f2: f85d 7b04 ldr.w r7, [sp], #4
80115f6: 4770 bx lr
080115f8 <HAL_UARTEx_WakeupCallback>:
* @brief UART wakeup from Stop mode callback.
* @param huart UART handle.
* @retval None
*/
__weak void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart)
{
80115f8: b480 push {r7}
80115fa: b083 sub sp, #12
80115fc: af00 add r7, sp, #0
80115fe: 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.
*/
}
8011600: bf00 nop
8011602: 370c adds r7, #12
8011604: 46bd mov sp, r7
8011606: f85d 7b04 ldr.w r7, [sp], #4
801160a: 4770 bx lr
0801160c <UART_SetConfig>:
* @brief Configure the UART peripheral.
* @param huart UART handle.
* @retval HAL status
*/
HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart)
{
801160c: b580 push {r7, lr}
801160e: b088 sub sp, #32
8011610: af00 add r7, sp, #0
8011612: 6078 str r0, [r7, #4]
uint32_t tmpreg;
uint16_t brrtemp;
UART_ClockSourceTypeDef clocksource;
uint32_t usartdiv;
HAL_StatusTypeDef ret = HAL_OK;
8011614: 2300 movs r3, #0
8011616: 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 ;
8011618: 687b ldr r3, [r7, #4]
801161a: 689a ldr r2, [r3, #8]
801161c: 687b ldr r3, [r7, #4]
801161e: 691b ldr r3, [r3, #16]
8011620: 431a orrs r2, r3
8011622: 687b ldr r3, [r7, #4]
8011624: 695b ldr r3, [r3, #20]
8011626: 431a orrs r2, r3
8011628: 687b ldr r3, [r7, #4]
801162a: 69db ldr r3, [r3, #28]
801162c: 4313 orrs r3, r2
801162e: 617b str r3, [r7, #20]
MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg);
8011630: 687b ldr r3, [r7, #4]
8011632: 681a ldr r2, [r3, #0]
8011634: 687b ldr r3, [r7, #4]
8011636: 681b ldr r3, [r3, #0]
8011638: 6819 ldr r1, [r3, #0]
801163a: 4bb3 ldr r3, [pc, #716] ; (8011908 <UART_SetConfig+0x2fc>)
801163c: 400b ands r3, r1
801163e: 6979 ldr r1, [r7, #20]
8011640: 430b orrs r3, r1
8011642: 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);
8011644: 687b ldr r3, [r7, #4]
8011646: 681b ldr r3, [r3, #0]
8011648: 687a ldr r2, [r7, #4]
801164a: 6812 ldr r2, [r2, #0]
801164c: 6852 ldr r2, [r2, #4]
801164e: f422 5140 bic.w r1, r2, #12288 ; 0x3000
8011652: 687a ldr r2, [r7, #4]
8011654: 68d2 ldr r2, [r2, #12]
8011656: 430a orrs r2, r1
8011658: 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;
801165a: 687b ldr r3, [r7, #4]
801165c: 699b ldr r3, [r3, #24]
801165e: 617b str r3, [r7, #20]
tmpreg |= huart->Init.OneBitSampling;
8011660: 687b ldr r3, [r7, #4]
8011662: 6a1b ldr r3, [r3, #32]
8011664: 697a ldr r2, [r7, #20]
8011666: 4313 orrs r3, r2
8011668: 617b str r3, [r7, #20]
MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg);
801166a: 687b ldr r3, [r7, #4]
801166c: 681b ldr r3, [r3, #0]
801166e: 687a ldr r2, [r7, #4]
8011670: 6812 ldr r2, [r2, #0]
8011672: 6892 ldr r2, [r2, #8]
8011674: f422 6130 bic.w r1, r2, #2816 ; 0xb00
8011678: 697a ldr r2, [r7, #20]
801167a: 430a orrs r2, r1
801167c: 609a str r2, [r3, #8]
/*-------------------------- USART BRR Configuration -----------------------*/
UART_GETCLOCKSOURCE(huart, clocksource);
801167e: 687b ldr r3, [r7, #4]
8011680: 681b ldr r3, [r3, #0]
8011682: 4aa2 ldr r2, [pc, #648] ; (801190c <UART_SetConfig+0x300>)
8011684: 4293 cmp r3, r2
8011686: d121 bne.n 80116cc <UART_SetConfig+0xc0>
8011688: 4ba1 ldr r3, [pc, #644] ; (8011910 <UART_SetConfig+0x304>)
801168a: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
801168e: f003 0303 and.w r3, r3, #3
8011692: 2b03 cmp r3, #3
8011694: d816 bhi.n 80116c4 <UART_SetConfig+0xb8>
8011696: a201 add r2, pc, #4 ; (adr r2, 801169c <UART_SetConfig+0x90>)
8011698: f852 f023 ldr.w pc, [r2, r3, lsl #2]
801169c: 080116ad .word 0x080116ad
80116a0: 080116b9 .word 0x080116b9
80116a4: 080116b3 .word 0x080116b3
80116a8: 080116bf .word 0x080116bf
80116ac: 2301 movs r3, #1
80116ae: 77fb strb r3, [r7, #31]
80116b0: e150 b.n 8011954 <UART_SetConfig+0x348>
80116b2: 2302 movs r3, #2
80116b4: 77fb strb r3, [r7, #31]
80116b6: e14d b.n 8011954 <UART_SetConfig+0x348>
80116b8: 2304 movs r3, #4
80116ba: 77fb strb r3, [r7, #31]
80116bc: e14a b.n 8011954 <UART_SetConfig+0x348>
80116be: 2308 movs r3, #8
80116c0: 77fb strb r3, [r7, #31]
80116c2: e147 b.n 8011954 <UART_SetConfig+0x348>
80116c4: 2310 movs r3, #16
80116c6: 77fb strb r3, [r7, #31]
80116c8: bf00 nop
80116ca: e143 b.n 8011954 <UART_SetConfig+0x348>
80116cc: 687b ldr r3, [r7, #4]
80116ce: 681b ldr r3, [r3, #0]
80116d0: 4a90 ldr r2, [pc, #576] ; (8011914 <UART_SetConfig+0x308>)
80116d2: 4293 cmp r3, r2
80116d4: d134 bne.n 8011740 <UART_SetConfig+0x134>
80116d6: 4b8e ldr r3, [pc, #568] ; (8011910 <UART_SetConfig+0x304>)
80116d8: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80116dc: f003 030c and.w r3, r3, #12
80116e0: 2b0c cmp r3, #12
80116e2: d829 bhi.n 8011738 <UART_SetConfig+0x12c>
80116e4: a201 add r2, pc, #4 ; (adr r2, 80116ec <UART_SetConfig+0xe0>)
80116e6: f852 f023 ldr.w pc, [r2, r3, lsl #2]
80116ea: bf00 nop
80116ec: 08011721 .word 0x08011721
80116f0: 08011739 .word 0x08011739
80116f4: 08011739 .word 0x08011739
80116f8: 08011739 .word 0x08011739
80116fc: 0801172d .word 0x0801172d
8011700: 08011739 .word 0x08011739
8011704: 08011739 .word 0x08011739
8011708: 08011739 .word 0x08011739
801170c: 08011727 .word 0x08011727
8011710: 08011739 .word 0x08011739
8011714: 08011739 .word 0x08011739
8011718: 08011739 .word 0x08011739
801171c: 08011733 .word 0x08011733
8011720: 2300 movs r3, #0
8011722: 77fb strb r3, [r7, #31]
8011724: e116 b.n 8011954 <UART_SetConfig+0x348>
8011726: 2302 movs r3, #2
8011728: 77fb strb r3, [r7, #31]
801172a: e113 b.n 8011954 <UART_SetConfig+0x348>
801172c: 2304 movs r3, #4
801172e: 77fb strb r3, [r7, #31]
8011730: e110 b.n 8011954 <UART_SetConfig+0x348>
8011732: 2308 movs r3, #8
8011734: 77fb strb r3, [r7, #31]
8011736: e10d b.n 8011954 <UART_SetConfig+0x348>
8011738: 2310 movs r3, #16
801173a: 77fb strb r3, [r7, #31]
801173c: bf00 nop
801173e: e109 b.n 8011954 <UART_SetConfig+0x348>
8011740: 687b ldr r3, [r7, #4]
8011742: 681b ldr r3, [r3, #0]
8011744: 4a74 ldr r2, [pc, #464] ; (8011918 <UART_SetConfig+0x30c>)
8011746: 4293 cmp r3, r2
8011748: d120 bne.n 801178c <UART_SetConfig+0x180>
801174a: 4b71 ldr r3, [pc, #452] ; (8011910 <UART_SetConfig+0x304>)
801174c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8011750: f003 0330 and.w r3, r3, #48 ; 0x30
8011754: 2b10 cmp r3, #16
8011756: d00f beq.n 8011778 <UART_SetConfig+0x16c>
8011758: 2b10 cmp r3, #16
801175a: d802 bhi.n 8011762 <UART_SetConfig+0x156>
801175c: 2b00 cmp r3, #0
801175e: d005 beq.n 801176c <UART_SetConfig+0x160>
8011760: e010 b.n 8011784 <UART_SetConfig+0x178>
8011762: 2b20 cmp r3, #32
8011764: d005 beq.n 8011772 <UART_SetConfig+0x166>
8011766: 2b30 cmp r3, #48 ; 0x30
8011768: d009 beq.n 801177e <UART_SetConfig+0x172>
801176a: e00b b.n 8011784 <UART_SetConfig+0x178>
801176c: 2300 movs r3, #0
801176e: 77fb strb r3, [r7, #31]
8011770: e0f0 b.n 8011954 <UART_SetConfig+0x348>
8011772: 2302 movs r3, #2
8011774: 77fb strb r3, [r7, #31]
8011776: e0ed b.n 8011954 <UART_SetConfig+0x348>
8011778: 2304 movs r3, #4
801177a: 77fb strb r3, [r7, #31]
801177c: e0ea b.n 8011954 <UART_SetConfig+0x348>
801177e: 2308 movs r3, #8
8011780: 77fb strb r3, [r7, #31]
8011782: e0e7 b.n 8011954 <UART_SetConfig+0x348>
8011784: 2310 movs r3, #16
8011786: 77fb strb r3, [r7, #31]
8011788: bf00 nop
801178a: e0e3 b.n 8011954 <UART_SetConfig+0x348>
801178c: 687b ldr r3, [r7, #4]
801178e: 681b ldr r3, [r3, #0]
8011790: 4a62 ldr r2, [pc, #392] ; (801191c <UART_SetConfig+0x310>)
8011792: 4293 cmp r3, r2
8011794: d120 bne.n 80117d8 <UART_SetConfig+0x1cc>
8011796: 4b5e ldr r3, [pc, #376] ; (8011910 <UART_SetConfig+0x304>)
8011798: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
801179c: f003 03c0 and.w r3, r3, #192 ; 0xc0
80117a0: 2b40 cmp r3, #64 ; 0x40
80117a2: d00f beq.n 80117c4 <UART_SetConfig+0x1b8>
80117a4: 2b40 cmp r3, #64 ; 0x40
80117a6: d802 bhi.n 80117ae <UART_SetConfig+0x1a2>
80117a8: 2b00 cmp r3, #0
80117aa: d005 beq.n 80117b8 <UART_SetConfig+0x1ac>
80117ac: e010 b.n 80117d0 <UART_SetConfig+0x1c4>
80117ae: 2b80 cmp r3, #128 ; 0x80
80117b0: d005 beq.n 80117be <UART_SetConfig+0x1b2>
80117b2: 2bc0 cmp r3, #192 ; 0xc0
80117b4: d009 beq.n 80117ca <UART_SetConfig+0x1be>
80117b6: e00b b.n 80117d0 <UART_SetConfig+0x1c4>
80117b8: 2300 movs r3, #0
80117ba: 77fb strb r3, [r7, #31]
80117bc: e0ca b.n 8011954 <UART_SetConfig+0x348>
80117be: 2302 movs r3, #2
80117c0: 77fb strb r3, [r7, #31]
80117c2: e0c7 b.n 8011954 <UART_SetConfig+0x348>
80117c4: 2304 movs r3, #4
80117c6: 77fb strb r3, [r7, #31]
80117c8: e0c4 b.n 8011954 <UART_SetConfig+0x348>
80117ca: 2308 movs r3, #8
80117cc: 77fb strb r3, [r7, #31]
80117ce: e0c1 b.n 8011954 <UART_SetConfig+0x348>
80117d0: 2310 movs r3, #16
80117d2: 77fb strb r3, [r7, #31]
80117d4: bf00 nop
80117d6: e0bd b.n 8011954 <UART_SetConfig+0x348>
80117d8: 687b ldr r3, [r7, #4]
80117da: 681b ldr r3, [r3, #0]
80117dc: 4a50 ldr r2, [pc, #320] ; (8011920 <UART_SetConfig+0x314>)
80117de: 4293 cmp r3, r2
80117e0: d124 bne.n 801182c <UART_SetConfig+0x220>
80117e2: 4b4b ldr r3, [pc, #300] ; (8011910 <UART_SetConfig+0x304>)
80117e4: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80117e8: f403 7340 and.w r3, r3, #768 ; 0x300
80117ec: f5b3 7f80 cmp.w r3, #256 ; 0x100
80117f0: d012 beq.n 8011818 <UART_SetConfig+0x20c>
80117f2: f5b3 7f80 cmp.w r3, #256 ; 0x100
80117f6: d802 bhi.n 80117fe <UART_SetConfig+0x1f2>
80117f8: 2b00 cmp r3, #0
80117fa: d007 beq.n 801180c <UART_SetConfig+0x200>
80117fc: e012 b.n 8011824 <UART_SetConfig+0x218>
80117fe: f5b3 7f00 cmp.w r3, #512 ; 0x200
8011802: d006 beq.n 8011812 <UART_SetConfig+0x206>
8011804: f5b3 7f40 cmp.w r3, #768 ; 0x300
8011808: d009 beq.n 801181e <UART_SetConfig+0x212>
801180a: e00b b.n 8011824 <UART_SetConfig+0x218>
801180c: 2300 movs r3, #0
801180e: 77fb strb r3, [r7, #31]
8011810: e0a0 b.n 8011954 <UART_SetConfig+0x348>
8011812: 2302 movs r3, #2
8011814: 77fb strb r3, [r7, #31]
8011816: e09d b.n 8011954 <UART_SetConfig+0x348>
8011818: 2304 movs r3, #4
801181a: 77fb strb r3, [r7, #31]
801181c: e09a b.n 8011954 <UART_SetConfig+0x348>
801181e: 2308 movs r3, #8
8011820: 77fb strb r3, [r7, #31]
8011822: e097 b.n 8011954 <UART_SetConfig+0x348>
8011824: 2310 movs r3, #16
8011826: 77fb strb r3, [r7, #31]
8011828: bf00 nop
801182a: e093 b.n 8011954 <UART_SetConfig+0x348>
801182c: 687b ldr r3, [r7, #4]
801182e: 681b ldr r3, [r3, #0]
8011830: 4a3c ldr r2, [pc, #240] ; (8011924 <UART_SetConfig+0x318>)
8011832: 4293 cmp r3, r2
8011834: d124 bne.n 8011880 <UART_SetConfig+0x274>
8011836: 4b36 ldr r3, [pc, #216] ; (8011910 <UART_SetConfig+0x304>)
8011838: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
801183c: f403 6340 and.w r3, r3, #3072 ; 0xc00
8011840: f5b3 6f80 cmp.w r3, #1024 ; 0x400
8011844: d012 beq.n 801186c <UART_SetConfig+0x260>
8011846: f5b3 6f80 cmp.w r3, #1024 ; 0x400
801184a: d802 bhi.n 8011852 <UART_SetConfig+0x246>
801184c: 2b00 cmp r3, #0
801184e: d007 beq.n 8011860 <UART_SetConfig+0x254>
8011850: e012 b.n 8011878 <UART_SetConfig+0x26c>
8011852: f5b3 6f00 cmp.w r3, #2048 ; 0x800
8011856: d006 beq.n 8011866 <UART_SetConfig+0x25a>
8011858: f5b3 6f40 cmp.w r3, #3072 ; 0xc00
801185c: d009 beq.n 8011872 <UART_SetConfig+0x266>
801185e: e00b b.n 8011878 <UART_SetConfig+0x26c>
8011860: 2301 movs r3, #1
8011862: 77fb strb r3, [r7, #31]
8011864: e076 b.n 8011954 <UART_SetConfig+0x348>
8011866: 2302 movs r3, #2
8011868: 77fb strb r3, [r7, #31]
801186a: e073 b.n 8011954 <UART_SetConfig+0x348>
801186c: 2304 movs r3, #4
801186e: 77fb strb r3, [r7, #31]
8011870: e070 b.n 8011954 <UART_SetConfig+0x348>
8011872: 2308 movs r3, #8
8011874: 77fb strb r3, [r7, #31]
8011876: e06d b.n 8011954 <UART_SetConfig+0x348>
8011878: 2310 movs r3, #16
801187a: 77fb strb r3, [r7, #31]
801187c: bf00 nop
801187e: e069 b.n 8011954 <UART_SetConfig+0x348>
8011880: 687b ldr r3, [r7, #4]
8011882: 681b ldr r3, [r3, #0]
8011884: 4a28 ldr r2, [pc, #160] ; (8011928 <UART_SetConfig+0x31c>)
8011886: 4293 cmp r3, r2
8011888: d124 bne.n 80118d4 <UART_SetConfig+0x2c8>
801188a: 4b21 ldr r3, [pc, #132] ; (8011910 <UART_SetConfig+0x304>)
801188c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8011890: f403 5340 and.w r3, r3, #12288 ; 0x3000
8011894: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
8011898: d012 beq.n 80118c0 <UART_SetConfig+0x2b4>
801189a: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
801189e: d802 bhi.n 80118a6 <UART_SetConfig+0x29a>
80118a0: 2b00 cmp r3, #0
80118a2: d007 beq.n 80118b4 <UART_SetConfig+0x2a8>
80118a4: e012 b.n 80118cc <UART_SetConfig+0x2c0>
80118a6: f5b3 5f00 cmp.w r3, #8192 ; 0x2000
80118aa: d006 beq.n 80118ba <UART_SetConfig+0x2ae>
80118ac: f5b3 5f40 cmp.w r3, #12288 ; 0x3000
80118b0: d009 beq.n 80118c6 <UART_SetConfig+0x2ba>
80118b2: e00b b.n 80118cc <UART_SetConfig+0x2c0>
80118b4: 2300 movs r3, #0
80118b6: 77fb strb r3, [r7, #31]
80118b8: e04c b.n 8011954 <UART_SetConfig+0x348>
80118ba: 2302 movs r3, #2
80118bc: 77fb strb r3, [r7, #31]
80118be: e049 b.n 8011954 <UART_SetConfig+0x348>
80118c0: 2304 movs r3, #4
80118c2: 77fb strb r3, [r7, #31]
80118c4: e046 b.n 8011954 <UART_SetConfig+0x348>
80118c6: 2308 movs r3, #8
80118c8: 77fb strb r3, [r7, #31]
80118ca: e043 b.n 8011954 <UART_SetConfig+0x348>
80118cc: 2310 movs r3, #16
80118ce: 77fb strb r3, [r7, #31]
80118d0: bf00 nop
80118d2: e03f b.n 8011954 <UART_SetConfig+0x348>
80118d4: 687b ldr r3, [r7, #4]
80118d6: 681b ldr r3, [r3, #0]
80118d8: 4a14 ldr r2, [pc, #80] ; (801192c <UART_SetConfig+0x320>)
80118da: 4293 cmp r3, r2
80118dc: d138 bne.n 8011950 <UART_SetConfig+0x344>
80118de: 4b0c ldr r3, [pc, #48] ; (8011910 <UART_SetConfig+0x304>)
80118e0: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80118e4: f403 4340 and.w r3, r3, #49152 ; 0xc000
80118e8: f5b3 4f80 cmp.w r3, #16384 ; 0x4000
80118ec: d026 beq.n 801193c <UART_SetConfig+0x330>
80118ee: f5b3 4f80 cmp.w r3, #16384 ; 0x4000
80118f2: d802 bhi.n 80118fa <UART_SetConfig+0x2ee>
80118f4: 2b00 cmp r3, #0
80118f6: d01b beq.n 8011930 <UART_SetConfig+0x324>
80118f8: e026 b.n 8011948 <UART_SetConfig+0x33c>
80118fa: f5b3 4f00 cmp.w r3, #32768 ; 0x8000
80118fe: d01a beq.n 8011936 <UART_SetConfig+0x32a>
8011900: f5b3 4f40 cmp.w r3, #49152 ; 0xc000
8011904: d01d beq.n 8011942 <UART_SetConfig+0x336>
8011906: e01f b.n 8011948 <UART_SetConfig+0x33c>
8011908: efff69f3 .word 0xefff69f3
801190c: 40011000 .word 0x40011000
8011910: 40023800 .word 0x40023800
8011914: 40004400 .word 0x40004400
8011918: 40004800 .word 0x40004800
801191c: 40004c00 .word 0x40004c00
8011920: 40005000 .word 0x40005000
8011924: 40011400 .word 0x40011400
8011928: 40007800 .word 0x40007800
801192c: 40007c00 .word 0x40007c00
8011930: 2300 movs r3, #0
8011932: 77fb strb r3, [r7, #31]
8011934: e00e b.n 8011954 <UART_SetConfig+0x348>
8011936: 2302 movs r3, #2
8011938: 77fb strb r3, [r7, #31]
801193a: e00b b.n 8011954 <UART_SetConfig+0x348>
801193c: 2304 movs r3, #4
801193e: 77fb strb r3, [r7, #31]
8011940: e008 b.n 8011954 <UART_SetConfig+0x348>
8011942: 2308 movs r3, #8
8011944: 77fb strb r3, [r7, #31]
8011946: e005 b.n 8011954 <UART_SetConfig+0x348>
8011948: 2310 movs r3, #16
801194a: 77fb strb r3, [r7, #31]
801194c: bf00 nop
801194e: e001 b.n 8011954 <UART_SetConfig+0x348>
8011950: 2310 movs r3, #16
8011952: 77fb strb r3, [r7, #31]
if (huart->Init.OverSampling == UART_OVERSAMPLING_8)
8011954: 687b ldr r3, [r7, #4]
8011956: 69db ldr r3, [r3, #28]
8011958: f5b3 4f00 cmp.w r3, #32768 ; 0x8000
801195c: d15b bne.n 8011a16 <UART_SetConfig+0x40a>
{
switch (clocksource)
801195e: 7ffb ldrb r3, [r7, #31]
8011960: 2b08 cmp r3, #8
8011962: d828 bhi.n 80119b6 <UART_SetConfig+0x3aa>
8011964: a201 add r2, pc, #4 ; (adr r2, 801196c <UART_SetConfig+0x360>)
8011966: f852 f023 ldr.w pc, [r2, r3, lsl #2]
801196a: bf00 nop
801196c: 08011991 .word 0x08011991
8011970: 08011999 .word 0x08011999
8011974: 080119a1 .word 0x080119a1
8011978: 080119b7 .word 0x080119b7
801197c: 080119a7 .word 0x080119a7
8011980: 080119b7 .word 0x080119b7
8011984: 080119b7 .word 0x080119b7
8011988: 080119b7 .word 0x080119b7
801198c: 080119af .word 0x080119af
{
case UART_CLOCKSOURCE_PCLK1:
pclk = HAL_RCC_GetPCLK1Freq();
8011990: f7fe f8d8 bl 800fb44 <HAL_RCC_GetPCLK1Freq>
8011994: 61b8 str r0, [r7, #24]
break;
8011996: e013 b.n 80119c0 <UART_SetConfig+0x3b4>
case UART_CLOCKSOURCE_PCLK2:
pclk = HAL_RCC_GetPCLK2Freq();
8011998: f7fe f8e8 bl 800fb6c <HAL_RCC_GetPCLK2Freq>
801199c: 61b8 str r0, [r7, #24]
break;
801199e: e00f b.n 80119c0 <UART_SetConfig+0x3b4>
case UART_CLOCKSOURCE_HSI:
pclk = (uint32_t) HSI_VALUE;
80119a0: 4b49 ldr r3, [pc, #292] ; (8011ac8 <UART_SetConfig+0x4bc>)
80119a2: 61bb str r3, [r7, #24]
break;
80119a4: e00c b.n 80119c0 <UART_SetConfig+0x3b4>
case UART_CLOCKSOURCE_SYSCLK:
pclk = HAL_RCC_GetSysClockFreq();
80119a6: f7fe f80b bl 800f9c0 <HAL_RCC_GetSysClockFreq>
80119aa: 61b8 str r0, [r7, #24]
break;
80119ac: e008 b.n 80119c0 <UART_SetConfig+0x3b4>
case UART_CLOCKSOURCE_LSE:
pclk = (uint32_t) LSE_VALUE;
80119ae: f44f 4300 mov.w r3, #32768 ; 0x8000
80119b2: 61bb str r3, [r7, #24]
break;
80119b4: e004 b.n 80119c0 <UART_SetConfig+0x3b4>
default:
pclk = 0U;
80119b6: 2300 movs r3, #0
80119b8: 61bb str r3, [r7, #24]
ret = HAL_ERROR;
80119ba: 2301 movs r3, #1
80119bc: 77bb strb r3, [r7, #30]
break;
80119be: bf00 nop
}
/* USARTDIV must be greater than or equal to 0d16 */
if (pclk != 0U)
80119c0: 69bb ldr r3, [r7, #24]
80119c2: 2b00 cmp r3, #0
80119c4: d074 beq.n 8011ab0 <UART_SetConfig+0x4a4>
{
usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate));
80119c6: 69bb ldr r3, [r7, #24]
80119c8: 005a lsls r2, r3, #1
80119ca: 687b ldr r3, [r7, #4]
80119cc: 685b ldr r3, [r3, #4]
80119ce: 085b lsrs r3, r3, #1
80119d0: 441a add r2, r3
80119d2: 687b ldr r3, [r7, #4]
80119d4: 685b ldr r3, [r3, #4]
80119d6: fbb2 f3f3 udiv r3, r2, r3
80119da: 613b str r3, [r7, #16]
if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX))
80119dc: 693b ldr r3, [r7, #16]
80119de: 2b0f cmp r3, #15
80119e0: d916 bls.n 8011a10 <UART_SetConfig+0x404>
80119e2: 693b ldr r3, [r7, #16]
80119e4: f5b3 3f80 cmp.w r3, #65536 ; 0x10000
80119e8: d212 bcs.n 8011a10 <UART_SetConfig+0x404>
{
brrtemp = (uint16_t)(usartdiv & 0xFFF0U);
80119ea: 693b ldr r3, [r7, #16]
80119ec: b29b uxth r3, r3
80119ee: f023 030f bic.w r3, r3, #15
80119f2: 81fb strh r3, [r7, #14]
brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U);
80119f4: 693b ldr r3, [r7, #16]
80119f6: 085b lsrs r3, r3, #1
80119f8: b29b uxth r3, r3
80119fa: f003 0307 and.w r3, r3, #7
80119fe: b29a uxth r2, r3
8011a00: 89fb ldrh r3, [r7, #14]
8011a02: 4313 orrs r3, r2
8011a04: 81fb strh r3, [r7, #14]
huart->Instance->BRR = brrtemp;
8011a06: 687b ldr r3, [r7, #4]
8011a08: 681b ldr r3, [r3, #0]
8011a0a: 89fa ldrh r2, [r7, #14]
8011a0c: 60da str r2, [r3, #12]
8011a0e: e04f b.n 8011ab0 <UART_SetConfig+0x4a4>
}
else
{
ret = HAL_ERROR;
8011a10: 2301 movs r3, #1
8011a12: 77bb strb r3, [r7, #30]
8011a14: e04c b.n 8011ab0 <UART_SetConfig+0x4a4>
}
}
}
else
{
switch (clocksource)
8011a16: 7ffb ldrb r3, [r7, #31]
8011a18: 2b08 cmp r3, #8
8011a1a: d828 bhi.n 8011a6e <UART_SetConfig+0x462>
8011a1c: a201 add r2, pc, #4 ; (adr r2, 8011a24 <UART_SetConfig+0x418>)
8011a1e: f852 f023 ldr.w pc, [r2, r3, lsl #2]
8011a22: bf00 nop
8011a24: 08011a49 .word 0x08011a49
8011a28: 08011a51 .word 0x08011a51
8011a2c: 08011a59 .word 0x08011a59
8011a30: 08011a6f .word 0x08011a6f
8011a34: 08011a5f .word 0x08011a5f
8011a38: 08011a6f .word 0x08011a6f
8011a3c: 08011a6f .word 0x08011a6f
8011a40: 08011a6f .word 0x08011a6f
8011a44: 08011a67 .word 0x08011a67
{
case UART_CLOCKSOURCE_PCLK1:
pclk = HAL_RCC_GetPCLK1Freq();
8011a48: f7fe f87c bl 800fb44 <HAL_RCC_GetPCLK1Freq>
8011a4c: 61b8 str r0, [r7, #24]
break;
8011a4e: e013 b.n 8011a78 <UART_SetConfig+0x46c>
case UART_CLOCKSOURCE_PCLK2:
pclk = HAL_RCC_GetPCLK2Freq();
8011a50: f7fe f88c bl 800fb6c <HAL_RCC_GetPCLK2Freq>
8011a54: 61b8 str r0, [r7, #24]
break;
8011a56: e00f b.n 8011a78 <UART_SetConfig+0x46c>
case UART_CLOCKSOURCE_HSI:
pclk = (uint32_t) HSI_VALUE;
8011a58: 4b1b ldr r3, [pc, #108] ; (8011ac8 <UART_SetConfig+0x4bc>)
8011a5a: 61bb str r3, [r7, #24]
break;
8011a5c: e00c b.n 8011a78 <UART_SetConfig+0x46c>
case UART_CLOCKSOURCE_SYSCLK:
pclk = HAL_RCC_GetSysClockFreq();
8011a5e: f7fd ffaf bl 800f9c0 <HAL_RCC_GetSysClockFreq>
8011a62: 61b8 str r0, [r7, #24]
break;
8011a64: e008 b.n 8011a78 <UART_SetConfig+0x46c>
case UART_CLOCKSOURCE_LSE:
pclk = (uint32_t) LSE_VALUE;
8011a66: f44f 4300 mov.w r3, #32768 ; 0x8000
8011a6a: 61bb str r3, [r7, #24]
break;
8011a6c: e004 b.n 8011a78 <UART_SetConfig+0x46c>
default:
pclk = 0U;
8011a6e: 2300 movs r3, #0
8011a70: 61bb str r3, [r7, #24]
ret = HAL_ERROR;
8011a72: 2301 movs r3, #1
8011a74: 77bb strb r3, [r7, #30]
break;
8011a76: bf00 nop
}
if (pclk != 0U)
8011a78: 69bb ldr r3, [r7, #24]
8011a7a: 2b00 cmp r3, #0
8011a7c: d018 beq.n 8011ab0 <UART_SetConfig+0x4a4>
{
/* USARTDIV must be greater than or equal to 0d16 */
usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate));
8011a7e: 687b ldr r3, [r7, #4]
8011a80: 685b ldr r3, [r3, #4]
8011a82: 085a lsrs r2, r3, #1
8011a84: 69bb ldr r3, [r7, #24]
8011a86: 441a add r2, r3
8011a88: 687b ldr r3, [r7, #4]
8011a8a: 685b ldr r3, [r3, #4]
8011a8c: fbb2 f3f3 udiv r3, r2, r3
8011a90: 613b str r3, [r7, #16]
if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX))
8011a92: 693b ldr r3, [r7, #16]
8011a94: 2b0f cmp r3, #15
8011a96: d909 bls.n 8011aac <UART_SetConfig+0x4a0>
8011a98: 693b ldr r3, [r7, #16]
8011a9a: f5b3 3f80 cmp.w r3, #65536 ; 0x10000
8011a9e: d205 bcs.n 8011aac <UART_SetConfig+0x4a0>
{
huart->Instance->BRR = (uint16_t)usartdiv;
8011aa0: 687b ldr r3, [r7, #4]
8011aa2: 681b ldr r3, [r3, #0]
8011aa4: 693a ldr r2, [r7, #16]
8011aa6: b292 uxth r2, r2
8011aa8: 60da str r2, [r3, #12]
8011aaa: e001 b.n 8011ab0 <UART_SetConfig+0x4a4>
}
else
{
ret = HAL_ERROR;
8011aac: 2301 movs r3, #1
8011aae: 77bb strb r3, [r7, #30]
}
}
/* Clear ISR function pointers */
huart->RxISR = NULL;
8011ab0: 687b ldr r3, [r7, #4]
8011ab2: 2200 movs r2, #0
8011ab4: 665a str r2, [r3, #100] ; 0x64
huart->TxISR = NULL;
8011ab6: 687b ldr r3, [r7, #4]
8011ab8: 2200 movs r2, #0
8011aba: 669a str r2, [r3, #104] ; 0x68
return ret;
8011abc: 7fbb ldrb r3, [r7, #30]
}
8011abe: 4618 mov r0, r3
8011ac0: 3720 adds r7, #32
8011ac2: 46bd mov sp, r7
8011ac4: bd80 pop {r7, pc}
8011ac6: bf00 nop
8011ac8: 00f42400 .word 0x00f42400
08011acc <UART_AdvFeatureConfig>:
* @brief Configure the UART peripheral advanced features.
* @param huart UART handle.
* @retval None
*/
void UART_AdvFeatureConfig(UART_HandleTypeDef *huart)
{
8011acc: b480 push {r7}
8011ace: b083 sub sp, #12
8011ad0: af00 add r7, sp, #0
8011ad2: 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))
8011ad4: 687b ldr r3, [r7, #4]
8011ad6: 6a5b ldr r3, [r3, #36] ; 0x24
8011ad8: f003 0301 and.w r3, r3, #1
8011adc: 2b00 cmp r3, #0
8011ade: d00a beq.n 8011af6 <UART_AdvFeatureConfig+0x2a>
{
assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert));
MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert);
8011ae0: 687b ldr r3, [r7, #4]
8011ae2: 681b ldr r3, [r3, #0]
8011ae4: 687a ldr r2, [r7, #4]
8011ae6: 6812 ldr r2, [r2, #0]
8011ae8: 6852 ldr r2, [r2, #4]
8011aea: f422 3100 bic.w r1, r2, #131072 ; 0x20000
8011aee: 687a ldr r2, [r7, #4]
8011af0: 6a92 ldr r2, [r2, #40] ; 0x28
8011af2: 430a orrs r2, r1
8011af4: 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))
8011af6: 687b ldr r3, [r7, #4]
8011af8: 6a5b ldr r3, [r3, #36] ; 0x24
8011afa: f003 0302 and.w r3, r3, #2
8011afe: 2b00 cmp r3, #0
8011b00: d00a beq.n 8011b18 <UART_AdvFeatureConfig+0x4c>
{
assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert));
MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert);
8011b02: 687b ldr r3, [r7, #4]
8011b04: 681b ldr r3, [r3, #0]
8011b06: 687a ldr r2, [r7, #4]
8011b08: 6812 ldr r2, [r2, #0]
8011b0a: 6852 ldr r2, [r2, #4]
8011b0c: f422 3180 bic.w r1, r2, #65536 ; 0x10000
8011b10: 687a ldr r2, [r7, #4]
8011b12: 6ad2 ldr r2, [r2, #44] ; 0x2c
8011b14: 430a orrs r2, r1
8011b16: 605a str r2, [r3, #4]
}
/* if required, configure data inversion */
if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT))
8011b18: 687b ldr r3, [r7, #4]
8011b1a: 6a5b ldr r3, [r3, #36] ; 0x24
8011b1c: f003 0304 and.w r3, r3, #4
8011b20: 2b00 cmp r3, #0
8011b22: d00a beq.n 8011b3a <UART_AdvFeatureConfig+0x6e>
{
assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert));
MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert);
8011b24: 687b ldr r3, [r7, #4]
8011b26: 681b ldr r3, [r3, #0]
8011b28: 687a ldr r2, [r7, #4]
8011b2a: 6812 ldr r2, [r2, #0]
8011b2c: 6852 ldr r2, [r2, #4]
8011b2e: f422 2180 bic.w r1, r2, #262144 ; 0x40000
8011b32: 687a ldr r2, [r7, #4]
8011b34: 6b12 ldr r2, [r2, #48] ; 0x30
8011b36: 430a orrs r2, r1
8011b38: 605a str r2, [r3, #4]
}
/* if required, configure RX/TX pins swap */
if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT))
8011b3a: 687b ldr r3, [r7, #4]
8011b3c: 6a5b ldr r3, [r3, #36] ; 0x24
8011b3e: f003 0308 and.w r3, r3, #8
8011b42: 2b00 cmp r3, #0
8011b44: d00a beq.n 8011b5c <UART_AdvFeatureConfig+0x90>
{
assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap));
MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap);
8011b46: 687b ldr r3, [r7, #4]
8011b48: 681b ldr r3, [r3, #0]
8011b4a: 687a ldr r2, [r7, #4]
8011b4c: 6812 ldr r2, [r2, #0]
8011b4e: 6852 ldr r2, [r2, #4]
8011b50: f422 4100 bic.w r1, r2, #32768 ; 0x8000
8011b54: 687a ldr r2, [r7, #4]
8011b56: 6b52 ldr r2, [r2, #52] ; 0x34
8011b58: 430a orrs r2, r1
8011b5a: 605a str r2, [r3, #4]
}
/* if required, configure RX overrun detection disabling */
if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT))
8011b5c: 687b ldr r3, [r7, #4]
8011b5e: 6a5b ldr r3, [r3, #36] ; 0x24
8011b60: f003 0310 and.w r3, r3, #16
8011b64: 2b00 cmp r3, #0
8011b66: d00a beq.n 8011b7e <UART_AdvFeatureConfig+0xb2>
{
assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable));
MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable);
8011b68: 687b ldr r3, [r7, #4]
8011b6a: 681b ldr r3, [r3, #0]
8011b6c: 687a ldr r2, [r7, #4]
8011b6e: 6812 ldr r2, [r2, #0]
8011b70: 6892 ldr r2, [r2, #8]
8011b72: f422 5180 bic.w r1, r2, #4096 ; 0x1000
8011b76: 687a ldr r2, [r7, #4]
8011b78: 6b92 ldr r2, [r2, #56] ; 0x38
8011b7a: 430a orrs r2, r1
8011b7c: 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))
8011b7e: 687b ldr r3, [r7, #4]
8011b80: 6a5b ldr r3, [r3, #36] ; 0x24
8011b82: f003 0320 and.w r3, r3, #32
8011b86: 2b00 cmp r3, #0
8011b88: d00a beq.n 8011ba0 <UART_AdvFeatureConfig+0xd4>
{
assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError));
MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError);
8011b8a: 687b ldr r3, [r7, #4]
8011b8c: 681b ldr r3, [r3, #0]
8011b8e: 687a ldr r2, [r7, #4]
8011b90: 6812 ldr r2, [r2, #0]
8011b92: 6892 ldr r2, [r2, #8]
8011b94: f422 5100 bic.w r1, r2, #8192 ; 0x2000
8011b98: 687a ldr r2, [r7, #4]
8011b9a: 6bd2 ldr r2, [r2, #60] ; 0x3c
8011b9c: 430a orrs r2, r1
8011b9e: 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))
8011ba0: 687b ldr r3, [r7, #4]
8011ba2: 6a5b ldr r3, [r3, #36] ; 0x24
8011ba4: f003 0340 and.w r3, r3, #64 ; 0x40
8011ba8: 2b00 cmp r3, #0
8011baa: d01a beq.n 8011be2 <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);
8011bac: 687b ldr r3, [r7, #4]
8011bae: 681b ldr r3, [r3, #0]
8011bb0: 687a ldr r2, [r7, #4]
8011bb2: 6812 ldr r2, [r2, #0]
8011bb4: 6852 ldr r2, [r2, #4]
8011bb6: f422 1180 bic.w r1, r2, #1048576 ; 0x100000
8011bba: 687a ldr r2, [r7, #4]
8011bbc: 6c12 ldr r2, [r2, #64] ; 0x40
8011bbe: 430a orrs r2, r1
8011bc0: 605a str r2, [r3, #4]
/* set auto Baudrate detection parameters if detection is enabled */
if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE)
8011bc2: 687b ldr r3, [r7, #4]
8011bc4: 6c1b ldr r3, [r3, #64] ; 0x40
8011bc6: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000
8011bca: d10a bne.n 8011be2 <UART_AdvFeatureConfig+0x116>
{
assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode));
MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode);
8011bcc: 687b ldr r3, [r7, #4]
8011bce: 681b ldr r3, [r3, #0]
8011bd0: 687a ldr r2, [r7, #4]
8011bd2: 6812 ldr r2, [r2, #0]
8011bd4: 6852 ldr r2, [r2, #4]
8011bd6: f422 01c0 bic.w r1, r2, #6291456 ; 0x600000
8011bda: 687a ldr r2, [r7, #4]
8011bdc: 6c52 ldr r2, [r2, #68] ; 0x44
8011bde: 430a orrs r2, r1
8011be0: 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))
8011be2: 687b ldr r3, [r7, #4]
8011be4: 6a5b ldr r3, [r3, #36] ; 0x24
8011be6: f003 0380 and.w r3, r3, #128 ; 0x80
8011bea: 2b00 cmp r3, #0
8011bec: d00a beq.n 8011c04 <UART_AdvFeatureConfig+0x138>
{
assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst));
MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst);
8011bee: 687b ldr r3, [r7, #4]
8011bf0: 681b ldr r3, [r3, #0]
8011bf2: 687a ldr r2, [r7, #4]
8011bf4: 6812 ldr r2, [r2, #0]
8011bf6: 6852 ldr r2, [r2, #4]
8011bf8: f422 2100 bic.w r1, r2, #524288 ; 0x80000
8011bfc: 687a ldr r2, [r7, #4]
8011bfe: 6c92 ldr r2, [r2, #72] ; 0x48
8011c00: 430a orrs r2, r1
8011c02: 605a str r2, [r3, #4]
}
}
8011c04: bf00 nop
8011c06: 370c adds r7, #12
8011c08: 46bd mov sp, r7
8011c0a: f85d 7b04 ldr.w r7, [sp], #4
8011c0e: 4770 bx lr
08011c10 <UART_CheckIdleState>:
* @brief Check the UART Idle State.
* @param huart UART handle.
* @retval HAL status
*/
HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart)
{
8011c10: b580 push {r7, lr}
8011c12: b086 sub sp, #24
8011c14: af02 add r7, sp, #8
8011c16: 6078 str r0, [r7, #4]
uint32_t tickstart;
/* Initialize the UART ErrorCode */
huart->ErrorCode = HAL_UART_ERROR_NONE;
8011c18: 687b ldr r3, [r7, #4]
8011c1a: 2200 movs r2, #0
8011c1c: f8c3 2080 str.w r2, [r3, #128] ; 0x80
/* Init tickstart for timeout management */
tickstart = HAL_GetTick();
8011c20: f7fb ff40 bl 800daa4 <HAL_GetTick>
8011c24: 60f8 str r0, [r7, #12]
/* Check if the Transmitter is enabled */
if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE)
8011c26: 687b ldr r3, [r7, #4]
8011c28: 681b ldr r3, [r3, #0]
8011c2a: 681b ldr r3, [r3, #0]
8011c2c: f003 0308 and.w r3, r3, #8
8011c30: 2b08 cmp r3, #8
8011c32: d10e bne.n 8011c52 <UART_CheckIdleState+0x42>
{
/* Wait until TEACK flag is set */
if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK)
8011c34: f06f 437e mvn.w r3, #4261412864 ; 0xfe000000
8011c38: 9300 str r3, [sp, #0]
8011c3a: 68fb ldr r3, [r7, #12]
8011c3c: 2200 movs r2, #0
8011c3e: f44f 1100 mov.w r1, #2097152 ; 0x200000
8011c42: 6878 ldr r0, [r7, #4]
8011c44: f000 f82d bl 8011ca2 <UART_WaitOnFlagUntilTimeout>
8011c48: 4603 mov r3, r0
8011c4a: 2b00 cmp r3, #0
8011c4c: d001 beq.n 8011c52 <UART_CheckIdleState+0x42>
{
/* Timeout occurred */
return HAL_TIMEOUT;
8011c4e: 2303 movs r3, #3
8011c50: e023 b.n 8011c9a <UART_CheckIdleState+0x8a>
}
}
#if defined(USART_ISR_REACK)
/* Check if the Receiver is enabled */
if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE)
8011c52: 687b ldr r3, [r7, #4]
8011c54: 681b ldr r3, [r3, #0]
8011c56: 681b ldr r3, [r3, #0]
8011c58: f003 0304 and.w r3, r3, #4
8011c5c: 2b04 cmp r3, #4
8011c5e: d10e bne.n 8011c7e <UART_CheckIdleState+0x6e>
{
/* Wait until REACK flag is set */
if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK)
8011c60: f06f 437e mvn.w r3, #4261412864 ; 0xfe000000
8011c64: 9300 str r3, [sp, #0]
8011c66: 68fb ldr r3, [r7, #12]
8011c68: 2200 movs r2, #0
8011c6a: f44f 0180 mov.w r1, #4194304 ; 0x400000
8011c6e: 6878 ldr r0, [r7, #4]
8011c70: f000 f817 bl 8011ca2 <UART_WaitOnFlagUntilTimeout>
8011c74: 4603 mov r3, r0
8011c76: 2b00 cmp r3, #0
8011c78: d001 beq.n 8011c7e <UART_CheckIdleState+0x6e>
{
/* Timeout occurred */
return HAL_TIMEOUT;
8011c7a: 2303 movs r3, #3
8011c7c: e00d b.n 8011c9a <UART_CheckIdleState+0x8a>
}
}
#endif
/* Initialize the UART State */
huart->gState = HAL_UART_STATE_READY;
8011c7e: 687b ldr r3, [r7, #4]
8011c80: 2220 movs r2, #32
8011c82: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
8011c84: 687b ldr r3, [r7, #4]
8011c86: 2220 movs r2, #32
8011c88: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
8011c8a: 687b ldr r3, [r7, #4]
8011c8c: 2200 movs r2, #0
8011c8e: 661a str r2, [r3, #96] ; 0x60
__HAL_UNLOCK(huart);
8011c90: 687b ldr r3, [r7, #4]
8011c92: 2200 movs r2, #0
8011c94: f883 2074 strb.w r2, [r3, #116] ; 0x74
return HAL_OK;
8011c98: 2300 movs r3, #0
}
8011c9a: 4618 mov r0, r3
8011c9c: 3710 adds r7, #16
8011c9e: 46bd mov sp, r7
8011ca0: bd80 pop {r7, pc}
08011ca2 <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)
{
8011ca2: b580 push {r7, lr}
8011ca4: b09c sub sp, #112 ; 0x70
8011ca6: af00 add r7, sp, #0
8011ca8: 60f8 str r0, [r7, #12]
8011caa: 60b9 str r1, [r7, #8]
8011cac: 603b str r3, [r7, #0]
8011cae: 4613 mov r3, r2
8011cb0: 71fb strb r3, [r7, #7]
/* Wait until flag is set */
while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status)
8011cb2: e0a5 b.n 8011e00 <UART_WaitOnFlagUntilTimeout+0x15e>
{
/* Check for the Timeout */
if (Timeout != HAL_MAX_DELAY)
8011cb4: 6fbb ldr r3, [r7, #120] ; 0x78
8011cb6: f1b3 3fff cmp.w r3, #4294967295
8011cba: f000 80a1 beq.w 8011e00 <UART_WaitOnFlagUntilTimeout+0x15e>
{
if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
8011cbe: f7fb fef1 bl 800daa4 <HAL_GetTick>
8011cc2: 4602 mov r2, r0
8011cc4: 683b ldr r3, [r7, #0]
8011cc6: 1ad2 subs r2, r2, r3
8011cc8: 6fbb ldr r3, [r7, #120] ; 0x78
8011cca: 429a cmp r2, r3
8011ccc: d802 bhi.n 8011cd4 <UART_WaitOnFlagUntilTimeout+0x32>
8011cce: 6fbb ldr r3, [r7, #120] ; 0x78
8011cd0: 2b00 cmp r3, #0
8011cd2: d13e bne.n 8011d52 <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));
8011cd4: 68fb ldr r3, [r7, #12]
8011cd6: 681b ldr r3, [r3, #0]
8011cd8: 653b str r3, [r7, #80] ; 0x50
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8011cda: 6d3b ldr r3, [r7, #80] ; 0x50
8011cdc: e853 3f00 ldrex r3, [r3]
8011ce0: 64fb str r3, [r7, #76] ; 0x4c
return(result);
8011ce2: 6cfb ldr r3, [r7, #76] ; 0x4c
8011ce4: f423 73d0 bic.w r3, r3, #416 ; 0x1a0
8011ce8: 667b str r3, [r7, #100] ; 0x64
8011cea: 68fb ldr r3, [r7, #12]
8011cec: 681b ldr r3, [r3, #0]
8011cee: 461a mov r2, r3
8011cf0: 6e7b ldr r3, [r7, #100] ; 0x64
8011cf2: 65fb str r3, [r7, #92] ; 0x5c
8011cf4: 65ba str r2, [r7, #88] ; 0x58
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8011cf6: 6db9 ldr r1, [r7, #88] ; 0x58
8011cf8: 6dfa ldr r2, [r7, #92] ; 0x5c
8011cfa: e841 2300 strex r3, r2, [r1]
8011cfe: 657b str r3, [r7, #84] ; 0x54
return(result);
8011d00: 6d7b ldr r3, [r7, #84] ; 0x54
8011d02: 2b00 cmp r3, #0
8011d04: d1e6 bne.n 8011cd4 <UART_WaitOnFlagUntilTimeout+0x32>
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
8011d06: 68fb ldr r3, [r7, #12]
8011d08: 681b ldr r3, [r3, #0]
8011d0a: 3308 adds r3, #8
8011d0c: 63fb str r3, [r7, #60] ; 0x3c
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8011d0e: 6bfb ldr r3, [r7, #60] ; 0x3c
8011d10: e853 3f00 ldrex r3, [r3]
8011d14: 63bb str r3, [r7, #56] ; 0x38
return(result);
8011d16: 6bbb ldr r3, [r7, #56] ; 0x38
8011d18: f023 0301 bic.w r3, r3, #1
8011d1c: 663b str r3, [r7, #96] ; 0x60
8011d1e: 68fb ldr r3, [r7, #12]
8011d20: 681b ldr r3, [r3, #0]
8011d22: 3308 adds r3, #8
8011d24: 6e3a ldr r2, [r7, #96] ; 0x60
8011d26: 64ba str r2, [r7, #72] ; 0x48
8011d28: 647b str r3, [r7, #68] ; 0x44
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8011d2a: 6c79 ldr r1, [r7, #68] ; 0x44
8011d2c: 6cba ldr r2, [r7, #72] ; 0x48
8011d2e: e841 2300 strex r3, r2, [r1]
8011d32: 643b str r3, [r7, #64] ; 0x40
return(result);
8011d34: 6c3b ldr r3, [r7, #64] ; 0x40
8011d36: 2b00 cmp r3, #0
8011d38: d1e5 bne.n 8011d06 <UART_WaitOnFlagUntilTimeout+0x64>
huart->gState = HAL_UART_STATE_READY;
8011d3a: 68fb ldr r3, [r7, #12]
8011d3c: 2220 movs r2, #32
8011d3e: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
8011d40: 68fb ldr r3, [r7, #12]
8011d42: 2220 movs r2, #32
8011d44: 67da str r2, [r3, #124] ; 0x7c
__HAL_UNLOCK(huart);
8011d46: 68fb ldr r3, [r7, #12]
8011d48: 2200 movs r2, #0
8011d4a: f883 2074 strb.w r2, [r3, #116] ; 0x74
return HAL_TIMEOUT;
8011d4e: 2303 movs r3, #3
8011d50: e067 b.n 8011e22 <UART_WaitOnFlagUntilTimeout+0x180>
}
if (READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U)
8011d52: 68fb ldr r3, [r7, #12]
8011d54: 681b ldr r3, [r3, #0]
8011d56: 681b ldr r3, [r3, #0]
8011d58: f003 0304 and.w r3, r3, #4
8011d5c: 2b00 cmp r3, #0
8011d5e: d04f beq.n 8011e00 <UART_WaitOnFlagUntilTimeout+0x15e>
{
if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET)
8011d60: 68fb ldr r3, [r7, #12]
8011d62: 681b ldr r3, [r3, #0]
8011d64: 69db ldr r3, [r3, #28]
8011d66: f403 6300 and.w r3, r3, #2048 ; 0x800
8011d6a: f5b3 6f00 cmp.w r3, #2048 ; 0x800
8011d6e: d147 bne.n 8011e00 <UART_WaitOnFlagUntilTimeout+0x15e>
{
/* Clear Receiver Timeout flag*/
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF);
8011d70: 68fb ldr r3, [r7, #12]
8011d72: 681b ldr r3, [r3, #0]
8011d74: f44f 6200 mov.w r2, #2048 ; 0x800
8011d78: 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));
8011d7a: 68fb ldr r3, [r7, #12]
8011d7c: 681b ldr r3, [r3, #0]
8011d7e: 62bb str r3, [r7, #40] ; 0x28
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8011d80: 6abb ldr r3, [r7, #40] ; 0x28
8011d82: e853 3f00 ldrex r3, [r3]
8011d86: 627b str r3, [r7, #36] ; 0x24
return(result);
8011d88: 6a7b ldr r3, [r7, #36] ; 0x24
8011d8a: f423 73d0 bic.w r3, r3, #416 ; 0x1a0
8011d8e: 66fb str r3, [r7, #108] ; 0x6c
8011d90: 68fb ldr r3, [r7, #12]
8011d92: 681b ldr r3, [r3, #0]
8011d94: 461a mov r2, r3
8011d96: 6efb ldr r3, [r7, #108] ; 0x6c
8011d98: 637b str r3, [r7, #52] ; 0x34
8011d9a: 633a str r2, [r7, #48] ; 0x30
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8011d9c: 6b39 ldr r1, [r7, #48] ; 0x30
8011d9e: 6b7a ldr r2, [r7, #52] ; 0x34
8011da0: e841 2300 strex r3, r2, [r1]
8011da4: 62fb str r3, [r7, #44] ; 0x2c
return(result);
8011da6: 6afb ldr r3, [r7, #44] ; 0x2c
8011da8: 2b00 cmp r3, #0
8011daa: d1e6 bne.n 8011d7a <UART_WaitOnFlagUntilTimeout+0xd8>
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
8011dac: 68fb ldr r3, [r7, #12]
8011dae: 681b ldr r3, [r3, #0]
8011db0: 3308 adds r3, #8
8011db2: 617b str r3, [r7, #20]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8011db4: 697b ldr r3, [r7, #20]
8011db6: e853 3f00 ldrex r3, [r3]
8011dba: 613b str r3, [r7, #16]
return(result);
8011dbc: 693b ldr r3, [r7, #16]
8011dbe: f023 0301 bic.w r3, r3, #1
8011dc2: 66bb str r3, [r7, #104] ; 0x68
8011dc4: 68fb ldr r3, [r7, #12]
8011dc6: 681b ldr r3, [r3, #0]
8011dc8: 3308 adds r3, #8
8011dca: 6eba ldr r2, [r7, #104] ; 0x68
8011dcc: 623a str r2, [r7, #32]
8011dce: 61fb str r3, [r7, #28]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8011dd0: 69f9 ldr r1, [r7, #28]
8011dd2: 6a3a ldr r2, [r7, #32]
8011dd4: e841 2300 strex r3, r2, [r1]
8011dd8: 61bb str r3, [r7, #24]
return(result);
8011dda: 69bb ldr r3, [r7, #24]
8011ddc: 2b00 cmp r3, #0
8011dde: d1e5 bne.n 8011dac <UART_WaitOnFlagUntilTimeout+0x10a>
huart->gState = HAL_UART_STATE_READY;
8011de0: 68fb ldr r3, [r7, #12]
8011de2: 2220 movs r2, #32
8011de4: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
8011de6: 68fb ldr r3, [r7, #12]
8011de8: 2220 movs r2, #32
8011dea: 67da str r2, [r3, #124] ; 0x7c
huart->ErrorCode = HAL_UART_ERROR_RTO;
8011dec: 68fb ldr r3, [r7, #12]
8011dee: 2220 movs r2, #32
8011df0: f8c3 2080 str.w r2, [r3, #128] ; 0x80
/* Process Unlocked */
__HAL_UNLOCK(huart);
8011df4: 68fb ldr r3, [r7, #12]
8011df6: 2200 movs r2, #0
8011df8: f883 2074 strb.w r2, [r3, #116] ; 0x74
return HAL_TIMEOUT;
8011dfc: 2303 movs r3, #3
8011dfe: e010 b.n 8011e22 <UART_WaitOnFlagUntilTimeout+0x180>
while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status)
8011e00: 68fb ldr r3, [r7, #12]
8011e02: 681b ldr r3, [r3, #0]
8011e04: 69da ldr r2, [r3, #28]
8011e06: 68bb ldr r3, [r7, #8]
8011e08: 401a ands r2, r3
8011e0a: 68bb ldr r3, [r7, #8]
8011e0c: 429a cmp r2, r3
8011e0e: bf0c ite eq
8011e10: 2301 moveq r3, #1
8011e12: 2300 movne r3, #0
8011e14: b2db uxtb r3, r3
8011e16: 461a mov r2, r3
8011e18: 79fb ldrb r3, [r7, #7]
8011e1a: 429a cmp r2, r3
8011e1c: f43f af4a beq.w 8011cb4 <UART_WaitOnFlagUntilTimeout+0x12>
}
}
}
}
return HAL_OK;
8011e20: 2300 movs r3, #0
}
8011e22: 4618 mov r0, r3
8011e24: 3770 adds r7, #112 ; 0x70
8011e26: 46bd mov sp, r7
8011e28: bd80 pop {r7, pc}
08011e2a <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)
{
8011e2a: b480 push {r7}
8011e2c: b095 sub sp, #84 ; 0x54
8011e2e: af00 add r7, sp, #0
8011e30: 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));
8011e32: 687b ldr r3, [r7, #4]
8011e34: 681b ldr r3, [r3, #0]
8011e36: 637b str r3, [r7, #52] ; 0x34
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8011e38: 6b7b ldr r3, [r7, #52] ; 0x34
8011e3a: e853 3f00 ldrex r3, [r3]
8011e3e: 633b str r3, [r7, #48] ; 0x30
return(result);
8011e40: 6b3b ldr r3, [r7, #48] ; 0x30
8011e42: f423 7390 bic.w r3, r3, #288 ; 0x120
8011e46: 64fb str r3, [r7, #76] ; 0x4c
8011e48: 687b ldr r3, [r7, #4]
8011e4a: 681b ldr r3, [r3, #0]
8011e4c: 461a mov r2, r3
8011e4e: 6cfb ldr r3, [r7, #76] ; 0x4c
8011e50: 643b str r3, [r7, #64] ; 0x40
8011e52: 63fa str r2, [r7, #60] ; 0x3c
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8011e54: 6bf9 ldr r1, [r7, #60] ; 0x3c
8011e56: 6c3a ldr r2, [r7, #64] ; 0x40
8011e58: e841 2300 strex r3, r2, [r1]
8011e5c: 63bb str r3, [r7, #56] ; 0x38
return(result);
8011e5e: 6bbb ldr r3, [r7, #56] ; 0x38
8011e60: 2b00 cmp r3, #0
8011e62: d1e6 bne.n 8011e32 <UART_EndRxTransfer+0x8>
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
8011e64: 687b ldr r3, [r7, #4]
8011e66: 681b ldr r3, [r3, #0]
8011e68: 3308 adds r3, #8
8011e6a: 623b str r3, [r7, #32]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8011e6c: 6a3b ldr r3, [r7, #32]
8011e6e: e853 3f00 ldrex r3, [r3]
8011e72: 61fb str r3, [r7, #28]
return(result);
8011e74: 69fb ldr r3, [r7, #28]
8011e76: f023 0301 bic.w r3, r3, #1
8011e7a: 64bb str r3, [r7, #72] ; 0x48
8011e7c: 687b ldr r3, [r7, #4]
8011e7e: 681b ldr r3, [r3, #0]
8011e80: 3308 adds r3, #8
8011e82: 6cba ldr r2, [r7, #72] ; 0x48
8011e84: 62fa str r2, [r7, #44] ; 0x2c
8011e86: 62bb str r3, [r7, #40] ; 0x28
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8011e88: 6ab9 ldr r1, [r7, #40] ; 0x28
8011e8a: 6afa ldr r2, [r7, #44] ; 0x2c
8011e8c: e841 2300 strex r3, r2, [r1]
8011e90: 627b str r3, [r7, #36] ; 0x24
return(result);
8011e92: 6a7b ldr r3, [r7, #36] ; 0x24
8011e94: 2b00 cmp r3, #0
8011e96: d1e5 bne.n 8011e64 <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)
8011e98: 687b ldr r3, [r7, #4]
8011e9a: 6e1b ldr r3, [r3, #96] ; 0x60
8011e9c: 2b01 cmp r3, #1
8011e9e: d118 bne.n 8011ed2 <UART_EndRxTransfer+0xa8>
{
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
8011ea0: 687b ldr r3, [r7, #4]
8011ea2: 681b ldr r3, [r3, #0]
8011ea4: 60fb str r3, [r7, #12]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8011ea6: 68fb ldr r3, [r7, #12]
8011ea8: e853 3f00 ldrex r3, [r3]
8011eac: 60bb str r3, [r7, #8]
return(result);
8011eae: 68bb ldr r3, [r7, #8]
8011eb0: f023 0310 bic.w r3, r3, #16
8011eb4: 647b str r3, [r7, #68] ; 0x44
8011eb6: 687b ldr r3, [r7, #4]
8011eb8: 681b ldr r3, [r3, #0]
8011eba: 461a mov r2, r3
8011ebc: 6c7b ldr r3, [r7, #68] ; 0x44
8011ebe: 61bb str r3, [r7, #24]
8011ec0: 617a str r2, [r7, #20]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8011ec2: 6979 ldr r1, [r7, #20]
8011ec4: 69ba ldr r2, [r7, #24]
8011ec6: e841 2300 strex r3, r2, [r1]
8011eca: 613b str r3, [r7, #16]
return(result);
8011ecc: 693b ldr r3, [r7, #16]
8011ece: 2b00 cmp r3, #0
8011ed0: d1e6 bne.n 8011ea0 <UART_EndRxTransfer+0x76>
}
/* At end of Rx process, restore huart->RxState to Ready */
huart->RxState = HAL_UART_STATE_READY;
8011ed2: 687b ldr r3, [r7, #4]
8011ed4: 2220 movs r2, #32
8011ed6: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
8011ed8: 687b ldr r3, [r7, #4]
8011eda: 2200 movs r2, #0
8011edc: 661a str r2, [r3, #96] ; 0x60
/* Reset RxIsr function pointer */
huart->RxISR = NULL;
8011ede: 687b ldr r3, [r7, #4]
8011ee0: 2200 movs r2, #0
8011ee2: 665a str r2, [r3, #100] ; 0x64
}
8011ee4: bf00 nop
8011ee6: 3754 adds r7, #84 ; 0x54
8011ee8: 46bd mov sp, r7
8011eea: f85d 7b04 ldr.w r7, [sp], #4
8011eee: 4770 bx lr
08011ef0 <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)
{
8011ef0: b580 push {r7, lr}
8011ef2: b084 sub sp, #16
8011ef4: af00 add r7, sp, #0
8011ef6: 6078 str r0, [r7, #4]
UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent);
8011ef8: 687b ldr r3, [r7, #4]
8011efa: 6b9b ldr r3, [r3, #56] ; 0x38
8011efc: 60fb str r3, [r7, #12]
huart->RxXferCount = 0U;
8011efe: 68fb ldr r3, [r7, #12]
8011f00: 2200 movs r2, #0
8011f02: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
huart->TxXferCount = 0U;
8011f06: 68fb ldr r3, [r7, #12]
8011f08: 2200 movs r2, #0
8011f0a: 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);
8011f0e: 68f8 ldr r0, [r7, #12]
8011f10: f7fa fa78 bl 800c404 <HAL_UART_ErrorCallback>
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
}
8011f14: bf00 nop
8011f16: 3710 adds r7, #16
8011f18: 46bd mov sp, r7
8011f1a: bd80 pop {r7, pc}
08011f1c <UART_DMATxAbortCallback>:
* Abort still ongoing for Rx DMA Handle.
* @param hdma DMA handle.
* @retval None
*/
static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma)
{
8011f1c: b580 push {r7, lr}
8011f1e: b084 sub sp, #16
8011f20: af00 add r7, sp, #0
8011f22: 6078 str r0, [r7, #4]
UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent);
8011f24: 687b ldr r3, [r7, #4]
8011f26: 6b9b ldr r3, [r3, #56] ; 0x38
8011f28: 60fb str r3, [r7, #12]
huart->hdmatx->XferAbortCallback = NULL;
8011f2a: 68fb ldr r3, [r7, #12]
8011f2c: 6edb ldr r3, [r3, #108] ; 0x6c
8011f2e: 2200 movs r2, #0
8011f30: 651a str r2, [r3, #80] ; 0x50
/* Check if an Abort process is still ongoing */
if (huart->hdmarx != NULL)
8011f32: 68fb ldr r3, [r7, #12]
8011f34: 6f1b ldr r3, [r3, #112] ; 0x70
8011f36: 2b00 cmp r3, #0
8011f38: d004 beq.n 8011f44 <UART_DMATxAbortCallback+0x28>
{
if (huart->hdmarx->XferAbortCallback != NULL)
8011f3a: 68fb ldr r3, [r7, #12]
8011f3c: 6f1b ldr r3, [r3, #112] ; 0x70
8011f3e: 6d1b ldr r3, [r3, #80] ; 0x50
8011f40: 2b00 cmp r3, #0
8011f42: d11c bne.n 8011f7e <UART_DMATxAbortCallback+0x62>
return;
}
}
/* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callback */
huart->TxXferCount = 0U;
8011f44: 68fb ldr r3, [r7, #12]
8011f46: 2200 movs r2, #0
8011f48: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
huart->RxXferCount = 0U;
8011f4c: 68fb ldr r3, [r7, #12]
8011f4e: 2200 movs r2, #0
8011f50: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
/* Reset errorCode */
huart->ErrorCode = HAL_UART_ERROR_NONE;
8011f54: 68fb ldr r3, [r7, #12]
8011f56: 2200 movs r2, #0
8011f58: 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);
8011f5c: 68fb ldr r3, [r7, #12]
8011f5e: 681b ldr r3, [r3, #0]
8011f60: 220f movs r2, #15
8011f62: 621a str r2, [r3, #32]
/* Restore huart->gState and huart->RxState to Ready */
huart->gState = HAL_UART_STATE_READY;
8011f64: 68fb ldr r3, [r7, #12]
8011f66: 2220 movs r2, #32
8011f68: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
8011f6a: 68fb ldr r3, [r7, #12]
8011f6c: 2220 movs r2, #32
8011f6e: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
8011f70: 68fb ldr r3, [r7, #12]
8011f72: 2200 movs r2, #0
8011f74: 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);
8011f76: 68f8 ldr r0, [r7, #12]
8011f78: f7ff fb28 bl 80115cc <HAL_UART_AbortCpltCallback>
8011f7c: e000 b.n 8011f80 <UART_DMATxAbortCallback+0x64>
return;
8011f7e: bf00 nop
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
}
8011f80: 3710 adds r7, #16
8011f82: 46bd mov sp, r7
8011f84: bd80 pop {r7, pc}
08011f86 <UART_DMARxAbortCallback>:
* Abort still ongoing for Tx DMA Handle.
* @param hdma DMA handle.
* @retval None
*/
static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma)
{
8011f86: b580 push {r7, lr}
8011f88: b084 sub sp, #16
8011f8a: af00 add r7, sp, #0
8011f8c: 6078 str r0, [r7, #4]
UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent);
8011f8e: 687b ldr r3, [r7, #4]
8011f90: 6b9b ldr r3, [r3, #56] ; 0x38
8011f92: 60fb str r3, [r7, #12]
huart->hdmarx->XferAbortCallback = NULL;
8011f94: 68fb ldr r3, [r7, #12]
8011f96: 6f1b ldr r3, [r3, #112] ; 0x70
8011f98: 2200 movs r2, #0
8011f9a: 651a str r2, [r3, #80] ; 0x50
/* Check if an Abort process is still ongoing */
if (huart->hdmatx != NULL)
8011f9c: 68fb ldr r3, [r7, #12]
8011f9e: 6edb ldr r3, [r3, #108] ; 0x6c
8011fa0: 2b00 cmp r3, #0
8011fa2: d004 beq.n 8011fae <UART_DMARxAbortCallback+0x28>
{
if (huart->hdmatx->XferAbortCallback != NULL)
8011fa4: 68fb ldr r3, [r7, #12]
8011fa6: 6edb ldr r3, [r3, #108] ; 0x6c
8011fa8: 6d1b ldr r3, [r3, #80] ; 0x50
8011faa: 2b00 cmp r3, #0
8011fac: d124 bne.n 8011ff8 <UART_DMARxAbortCallback+0x72>
return;
}
}
/* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callback */
huart->TxXferCount = 0U;
8011fae: 68fb ldr r3, [r7, #12]
8011fb0: 2200 movs r2, #0
8011fb2: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
huart->RxXferCount = 0U;
8011fb6: 68fb ldr r3, [r7, #12]
8011fb8: 2200 movs r2, #0
8011fba: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
/* Reset errorCode */
huart->ErrorCode = HAL_UART_ERROR_NONE;
8011fbe: 68fb ldr r3, [r7, #12]
8011fc0: 2200 movs r2, #0
8011fc2: 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);
8011fc6: 68fb ldr r3, [r7, #12]
8011fc8: 681b ldr r3, [r3, #0]
8011fca: 220f movs r2, #15
8011fcc: 621a str r2, [r3, #32]
/* Discard the received data */
__HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
8011fce: 68fb ldr r3, [r7, #12]
8011fd0: 681b ldr r3, [r3, #0]
8011fd2: 68fa ldr r2, [r7, #12]
8011fd4: 6812 ldr r2, [r2, #0]
8011fd6: 6992 ldr r2, [r2, #24]
8011fd8: f042 0208 orr.w r2, r2, #8
8011fdc: 619a str r2, [r3, #24]
/* Restore huart->gState and huart->RxState to Ready */
huart->gState = HAL_UART_STATE_READY;
8011fde: 68fb ldr r3, [r7, #12]
8011fe0: 2220 movs r2, #32
8011fe2: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
8011fe4: 68fb ldr r3, [r7, #12]
8011fe6: 2220 movs r2, #32
8011fe8: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
8011fea: 68fb ldr r3, [r7, #12]
8011fec: 2200 movs r2, #0
8011fee: 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);
8011ff0: 68f8 ldr r0, [r7, #12]
8011ff2: f7ff faeb bl 80115cc <HAL_UART_AbortCpltCallback>
8011ff6: e000 b.n 8011ffa <UART_DMARxAbortCallback+0x74>
return;
8011ff8: bf00 nop
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
}
8011ffa: 3710 adds r7, #16
8011ffc: 46bd mov sp, r7
8011ffe: bd80 pop {r7, pc}
08012000 <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)
{
8012000: b480 push {r7}
8012002: b08f sub sp, #60 ; 0x3c
8012004: af00 add r7, sp, #0
8012006: 6078 str r0, [r7, #4]
/* Check that a Tx process is ongoing */
if (huart->gState == HAL_UART_STATE_BUSY_TX)
8012008: 687b ldr r3, [r7, #4]
801200a: 6f9b ldr r3, [r3, #120] ; 0x78
801200c: 2b21 cmp r3, #33 ; 0x21
801200e: d14c bne.n 80120aa <UART_TxISR_8BIT+0xaa>
{
if (huart->TxXferCount == 0U)
8012010: 687b ldr r3, [r7, #4]
8012012: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8012016: b29b uxth r3, r3
8012018: 2b00 cmp r3, #0
801201a: d132 bne.n 8012082 <UART_TxISR_8BIT+0x82>
{
/* Disable the UART Transmit Data Register Empty Interrupt */
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE);
801201c: 687b ldr r3, [r7, #4]
801201e: 681b ldr r3, [r3, #0]
8012020: 623b str r3, [r7, #32]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8012022: 6a3b ldr r3, [r7, #32]
8012024: e853 3f00 ldrex r3, [r3]
8012028: 61fb str r3, [r7, #28]
return(result);
801202a: 69fb ldr r3, [r7, #28]
801202c: f023 0380 bic.w r3, r3, #128 ; 0x80
8012030: 637b str r3, [r7, #52] ; 0x34
8012032: 687b ldr r3, [r7, #4]
8012034: 681b ldr r3, [r3, #0]
8012036: 461a mov r2, r3
8012038: 6b7b ldr r3, [r7, #52] ; 0x34
801203a: 62fb str r3, [r7, #44] ; 0x2c
801203c: 62ba str r2, [r7, #40] ; 0x28
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
801203e: 6ab9 ldr r1, [r7, #40] ; 0x28
8012040: 6afa ldr r2, [r7, #44] ; 0x2c
8012042: e841 2300 strex r3, r2, [r1]
8012046: 627b str r3, [r7, #36] ; 0x24
return(result);
8012048: 6a7b ldr r3, [r7, #36] ; 0x24
801204a: 2b00 cmp r3, #0
801204c: d1e6 bne.n 801201c <UART_TxISR_8BIT+0x1c>
/* Enable the UART Transmit Complete Interrupt */
ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE);
801204e: 687b ldr r3, [r7, #4]
8012050: 681b ldr r3, [r3, #0]
8012052: 60fb str r3, [r7, #12]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8012054: 68fb ldr r3, [r7, #12]
8012056: e853 3f00 ldrex r3, [r3]
801205a: 60bb str r3, [r7, #8]
return(result);
801205c: 68bb ldr r3, [r7, #8]
801205e: f043 0340 orr.w r3, r3, #64 ; 0x40
8012062: 633b str r3, [r7, #48] ; 0x30
8012064: 687b ldr r3, [r7, #4]
8012066: 681b ldr r3, [r3, #0]
8012068: 461a mov r2, r3
801206a: 6b3b ldr r3, [r7, #48] ; 0x30
801206c: 61bb str r3, [r7, #24]
801206e: 617a str r2, [r7, #20]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8012070: 6979 ldr r1, [r7, #20]
8012072: 69ba ldr r2, [r7, #24]
8012074: e841 2300 strex r3, r2, [r1]
8012078: 613b str r3, [r7, #16]
return(result);
801207a: 693b ldr r3, [r7, #16]
801207c: 2b00 cmp r3, #0
801207e: d1e6 bne.n 801204e <UART_TxISR_8BIT+0x4e>
huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF);
huart->pTxBuffPtr++;
huart->TxXferCount--;
}
}
}
8012080: e013 b.n 80120aa <UART_TxISR_8BIT+0xaa>
huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF);
8012082: 687b ldr r3, [r7, #4]
8012084: 681b ldr r3, [r3, #0]
8012086: 687a ldr r2, [r7, #4]
8012088: 6cd2 ldr r2, [r2, #76] ; 0x4c
801208a: 7812 ldrb r2, [r2, #0]
801208c: 629a str r2, [r3, #40] ; 0x28
huart->pTxBuffPtr++;
801208e: 687b ldr r3, [r7, #4]
8012090: 6cdb ldr r3, [r3, #76] ; 0x4c
8012092: 1c5a adds r2, r3, #1
8012094: 687b ldr r3, [r7, #4]
8012096: 64da str r2, [r3, #76] ; 0x4c
huart->TxXferCount--;
8012098: 687b ldr r3, [r7, #4]
801209a: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
801209e: b29b uxth r3, r3
80120a0: 3b01 subs r3, #1
80120a2: b29a uxth r2, r3
80120a4: 687b ldr r3, [r7, #4]
80120a6: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
}
80120aa: bf00 nop
80120ac: 373c adds r7, #60 ; 0x3c
80120ae: 46bd mov sp, r7
80120b0: f85d 7b04 ldr.w r7, [sp], #4
80120b4: 4770 bx lr
080120b6 <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)
{
80120b6: b480 push {r7}
80120b8: b091 sub sp, #68 ; 0x44
80120ba: af00 add r7, sp, #0
80120bc: 6078 str r0, [r7, #4]
const uint16_t *tmp;
/* Check that a Tx process is ongoing */
if (huart->gState == HAL_UART_STATE_BUSY_TX)
80120be: 687b ldr r3, [r7, #4]
80120c0: 6f9b ldr r3, [r3, #120] ; 0x78
80120c2: 2b21 cmp r3, #33 ; 0x21
80120c4: d150 bne.n 8012168 <UART_TxISR_16BIT+0xb2>
{
if (huart->TxXferCount == 0U)
80120c6: 687b ldr r3, [r7, #4]
80120c8: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
80120cc: b29b uxth r3, r3
80120ce: 2b00 cmp r3, #0
80120d0: d132 bne.n 8012138 <UART_TxISR_16BIT+0x82>
{
/* Disable the UART Transmit Data Register Empty Interrupt */
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE);
80120d2: 687b ldr r3, [r7, #4]
80120d4: 681b ldr r3, [r3, #0]
80120d6: 627b str r3, [r7, #36] ; 0x24
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
80120d8: 6a7b ldr r3, [r7, #36] ; 0x24
80120da: e853 3f00 ldrex r3, [r3]
80120de: 623b str r3, [r7, #32]
return(result);
80120e0: 6a3b ldr r3, [r7, #32]
80120e2: f023 0380 bic.w r3, r3, #128 ; 0x80
80120e6: 63fb str r3, [r7, #60] ; 0x3c
80120e8: 687b ldr r3, [r7, #4]
80120ea: 681b ldr r3, [r3, #0]
80120ec: 461a mov r2, r3
80120ee: 6bfb ldr r3, [r7, #60] ; 0x3c
80120f0: 633b str r3, [r7, #48] ; 0x30
80120f2: 62fa str r2, [r7, #44] ; 0x2c
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80120f4: 6af9 ldr r1, [r7, #44] ; 0x2c
80120f6: 6b3a ldr r2, [r7, #48] ; 0x30
80120f8: e841 2300 strex r3, r2, [r1]
80120fc: 62bb str r3, [r7, #40] ; 0x28
return(result);
80120fe: 6abb ldr r3, [r7, #40] ; 0x28
8012100: 2b00 cmp r3, #0
8012102: d1e6 bne.n 80120d2 <UART_TxISR_16BIT+0x1c>
/* Enable the UART Transmit Complete Interrupt */
ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE);
8012104: 687b ldr r3, [r7, #4]
8012106: 681b ldr r3, [r3, #0]
8012108: 613b str r3, [r7, #16]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
801210a: 693b ldr r3, [r7, #16]
801210c: e853 3f00 ldrex r3, [r3]
8012110: 60fb str r3, [r7, #12]
return(result);
8012112: 68fb ldr r3, [r7, #12]
8012114: f043 0340 orr.w r3, r3, #64 ; 0x40
8012118: 63bb str r3, [r7, #56] ; 0x38
801211a: 687b ldr r3, [r7, #4]
801211c: 681b ldr r3, [r3, #0]
801211e: 461a mov r2, r3
8012120: 6bbb ldr r3, [r7, #56] ; 0x38
8012122: 61fb str r3, [r7, #28]
8012124: 61ba str r2, [r7, #24]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8012126: 69b9 ldr r1, [r7, #24]
8012128: 69fa ldr r2, [r7, #28]
801212a: e841 2300 strex r3, r2, [r1]
801212e: 617b str r3, [r7, #20]
return(result);
8012130: 697b ldr r3, [r7, #20]
8012132: 2b00 cmp r3, #0
8012134: d1e6 bne.n 8012104 <UART_TxISR_16BIT+0x4e>
huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL);
huart->pTxBuffPtr += 2U;
huart->TxXferCount--;
}
}
}
8012136: e017 b.n 8012168 <UART_TxISR_16BIT+0xb2>
tmp = (const uint16_t *) huart->pTxBuffPtr;
8012138: 687b ldr r3, [r7, #4]
801213a: 6cdb ldr r3, [r3, #76] ; 0x4c
801213c: 637b str r3, [r7, #52] ; 0x34
huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL);
801213e: 687b ldr r3, [r7, #4]
8012140: 681b ldr r3, [r3, #0]
8012142: 6b7a ldr r2, [r7, #52] ; 0x34
8012144: 8812 ldrh r2, [r2, #0]
8012146: f3c2 0208 ubfx r2, r2, #0, #9
801214a: 629a str r2, [r3, #40] ; 0x28
huart->pTxBuffPtr += 2U;
801214c: 687b ldr r3, [r7, #4]
801214e: 6cdb ldr r3, [r3, #76] ; 0x4c
8012150: 1c9a adds r2, r3, #2
8012152: 687b ldr r3, [r7, #4]
8012154: 64da str r2, [r3, #76] ; 0x4c
huart->TxXferCount--;
8012156: 687b ldr r3, [r7, #4]
8012158: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
801215c: b29b uxth r3, r3
801215e: 3b01 subs r3, #1
8012160: b29a uxth r2, r3
8012162: 687b ldr r3, [r7, #4]
8012164: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
}
8012168: bf00 nop
801216a: 3744 adds r7, #68 ; 0x44
801216c: 46bd mov sp, r7
801216e: f85d 7b04 ldr.w r7, [sp], #4
8012172: 4770 bx lr
08012174 <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)
{
8012174: b580 push {r7, lr}
8012176: b088 sub sp, #32
8012178: af00 add r7, sp, #0
801217a: 6078 str r0, [r7, #4]
/* Disable the UART Transmit Complete Interrupt */
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE);
801217c: 687b ldr r3, [r7, #4]
801217e: 681b ldr r3, [r3, #0]
8012180: 60fb str r3, [r7, #12]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8012182: 68fb ldr r3, [r7, #12]
8012184: e853 3f00 ldrex r3, [r3]
8012188: 60bb str r3, [r7, #8]
return(result);
801218a: 68bb ldr r3, [r7, #8]
801218c: f023 0340 bic.w r3, r3, #64 ; 0x40
8012190: 61fb str r3, [r7, #28]
8012192: 687b ldr r3, [r7, #4]
8012194: 681b ldr r3, [r3, #0]
8012196: 461a mov r2, r3
8012198: 69fb ldr r3, [r7, #28]
801219a: 61bb str r3, [r7, #24]
801219c: 617a str r2, [r7, #20]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
801219e: 6979 ldr r1, [r7, #20]
80121a0: 69ba ldr r2, [r7, #24]
80121a2: e841 2300 strex r3, r2, [r1]
80121a6: 613b str r3, [r7, #16]
return(result);
80121a8: 693b ldr r3, [r7, #16]
80121aa: 2b00 cmp r3, #0
80121ac: d1e6 bne.n 801217c <UART_EndTransmit_IT+0x8>
/* Tx process is ended, restore huart->gState to Ready */
huart->gState = HAL_UART_STATE_READY;
80121ae: 687b ldr r3, [r7, #4]
80121b0: 2220 movs r2, #32
80121b2: 679a str r2, [r3, #120] ; 0x78
/* Cleat TxISR function pointer */
huart->TxISR = NULL;
80121b4: 687b ldr r3, [r7, #4]
80121b6: 2200 movs r2, #0
80121b8: 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);
80121ba: 6878 ldr r0, [r7, #4]
80121bc: f7fa f8fc bl 800c3b8 <HAL_UART_TxCpltCallback>
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
}
80121c0: bf00 nop
80121c2: 3720 adds r7, #32
80121c4: 46bd mov sp, r7
80121c6: bd80 pop {r7, pc}
080121c8 <Reset_Handler>:
.section .text.Reset_Handler
.weak Reset_Handler
.type Reset_Handler, %function
Reset_Handler:
ldr sp, =_estack /* set stack pointer */
80121c8: f8df d034 ldr.w sp, [pc, #52] ; 8012200 <LoopFillZerobss+0x14>
/* Copy the data segment initializers from flash to SRAM */
movs r1, #0
80121cc: 2100 movs r1, #0
b LoopCopyDataInit
80121ce: e003 b.n 80121d8 <LoopCopyDataInit>
080121d0 <CopyDataInit>:
CopyDataInit:
ldr r3, =_sidata
80121d0: 4b0c ldr r3, [pc, #48] ; (8012204 <LoopFillZerobss+0x18>)
ldr r3, [r3, r1]
80121d2: 585b ldr r3, [r3, r1]
str r3, [r0, r1]
80121d4: 5043 str r3, [r0, r1]
adds r1, r1, #4
80121d6: 3104 adds r1, #4
080121d8 <LoopCopyDataInit>:
LoopCopyDataInit:
ldr r0, =_sdata
80121d8: 480b ldr r0, [pc, #44] ; (8012208 <LoopFillZerobss+0x1c>)
ldr r3, =_edata
80121da: 4b0c ldr r3, [pc, #48] ; (801220c <LoopFillZerobss+0x20>)
adds r2, r0, r1
80121dc: 1842 adds r2, r0, r1
cmp r2, r3
80121de: 429a cmp r2, r3
bcc CopyDataInit
80121e0: d3f6 bcc.n 80121d0 <CopyDataInit>
ldr r2, =_sbss
80121e2: 4a0b ldr r2, [pc, #44] ; (8012210 <LoopFillZerobss+0x24>)
b LoopFillZerobss
80121e4: e002 b.n 80121ec <LoopFillZerobss>
080121e6 <FillZerobss>:
/* Zero fill the bss segment. */
FillZerobss:
movs r3, #0
80121e6: 2300 movs r3, #0
str r3, [r2], #4
80121e8: f842 3b04 str.w r3, [r2], #4
080121ec <LoopFillZerobss>:
LoopFillZerobss:
ldr r3, = _ebss
80121ec: 4b09 ldr r3, [pc, #36] ; (8012214 <LoopFillZerobss+0x28>)
cmp r2, r3
80121ee: 429a cmp r2, r3
bcc FillZerobss
80121f0: d3f9 bcc.n 80121e6 <FillZerobss>
/* Call the clock system initialization function.*/
bl SystemInit
80121f2: f7f9 fe23 bl 800be3c <SystemInit>
/* Call static constructors */
bl __libc_init_array
80121f6: f000 f85f bl 80122b8 <__libc_init_array>
/* Call the application's entry point.*/
bl main
80121fa: f7f3 f845 bl 8005288 <main>
bx lr
80121fe: 4770 bx lr
ldr sp, =_estack /* set stack pointer */
8012200: 20080000 .word 0x20080000
ldr r3, =_sidata
8012204: 0802a460 .word 0x0802a460
ldr r0, =_sdata
8012208: 20020000 .word 0x20020000
ldr r3, =_edata
801220c: 20020228 .word 0x20020228
ldr r2, =_sbss
8012210: 20020228 .word 0x20020228
ldr r3, = _ebss
8012214: 2006bf30 .word 0x2006bf30
08012218 <ADC_IRQHandler>:
* @retval None
*/
.section .text.Default_Handler,"ax",%progbits
Default_Handler:
Infinite_Loop:
b Infinite_Loop
8012218: e7fe b.n 8012218 <ADC_IRQHandler>
...
0801221c <modff>:
801221c: ee10 2a10 vmov r2, s0
8012220: f3c2 51c7 ubfx r1, r2, #23, #8
8012224: 397f subs r1, #127 ; 0x7f
8012226: 2916 cmp r1, #22
8012228: b510 push {r4, lr}
801222a: ee10 3a10 vmov r3, s0
801222e: dc0c bgt.n 801224a <modff+0x2e>
8012230: 2900 cmp r1, #0
8012232: da05 bge.n 8012240 <modff+0x24>
8012234: f002 4300 and.w r3, r2, #2147483648 ; 0x80000000
8012238: 6003 str r3, [r0, #0]
801223a: ee00 2a10 vmov s0, r2
801223e: bd10 pop {r4, pc}
8012240: 4c09 ldr r4, [pc, #36] ; (8012268 <modff+0x4c>)
8012242: fa44 f101 asr.w r1, r4, r1
8012246: 420a tst r2, r1
8012248: d103 bne.n 8012252 <modff+0x36>
801224a: 6002 str r2, [r0, #0]
801224c: f003 4200 and.w r2, r3, #2147483648 ; 0x80000000
8012250: e7f3 b.n 801223a <modff+0x1e>
8012252: ea22 0301 bic.w r3, r2, r1
8012256: ee07 3a10 vmov s14, r3
801225a: ee70 7a47 vsub.f32 s15, s0, s14
801225e: 6003 str r3, [r0, #0]
8012260: ee17 2a90 vmov r2, s15
8012264: e7e9 b.n 801223a <modff+0x1e>
8012266: bf00 nop
8012268: 007fffff .word 0x007fffff
0801226c <roundf>:
801226c: ee10 0a10 vmov r0, s0
8012270: f3c0 53c7 ubfx r3, r0, #23, #8
8012274: f1a3 027f sub.w r2, r3, #127 ; 0x7f
8012278: 2a16 cmp r2, #22
801227a: dc15 bgt.n 80122a8 <roundf+0x3c>
801227c: 2a00 cmp r2, #0
801227e: da08 bge.n 8012292 <roundf+0x26>
8012280: 3201 adds r2, #1
8012282: f000 4300 and.w r3, r0, #2147483648 ; 0x80000000
8012286: d101 bne.n 801228c <roundf+0x20>
8012288: f043 537e orr.w r3, r3, #1065353216 ; 0x3f800000
801228c: ee00 3a10 vmov s0, r3
8012290: 4770 bx lr
8012292: 4908 ldr r1, [pc, #32] ; (80122b4 <roundf+0x48>)
8012294: 4111 asrs r1, r2
8012296: 4208 tst r0, r1
8012298: d0fa beq.n 8012290 <roundf+0x24>
801229a: f44f 0380 mov.w r3, #4194304 ; 0x400000
801229e: 4113 asrs r3, r2
80122a0: 4403 add r3, r0
80122a2: ea23 0301 bic.w r3, r3, r1
80122a6: e7f1 b.n 801228c <roundf+0x20>
80122a8: 2a80 cmp r2, #128 ; 0x80
80122aa: d1f1 bne.n 8012290 <roundf+0x24>
80122ac: ee30 0a00 vadd.f32 s0, s0, s0
80122b0: 4770 bx lr
80122b2: bf00 nop
80122b4: 007fffff .word 0x007fffff
080122b8 <__libc_init_array>:
80122b8: b570 push {r4, r5, r6, lr}
80122ba: 4e0d ldr r6, [pc, #52] ; (80122f0 <__libc_init_array+0x38>)
80122bc: 4c0d ldr r4, [pc, #52] ; (80122f4 <__libc_init_array+0x3c>)
80122be: 1ba4 subs r4, r4, r6
80122c0: 10a4 asrs r4, r4, #2
80122c2: 2500 movs r5, #0
80122c4: 42a5 cmp r5, r4
80122c6: d109 bne.n 80122dc <__libc_init_array+0x24>
80122c8: 4e0b ldr r6, [pc, #44] ; (80122f8 <__libc_init_array+0x40>)
80122ca: 4c0c ldr r4, [pc, #48] ; (80122fc <__libc_init_array+0x44>)
80122cc: f000 f834 bl 8012338 <_init>
80122d0: 1ba4 subs r4, r4, r6
80122d2: 10a4 asrs r4, r4, #2
80122d4: 2500 movs r5, #0
80122d6: 42a5 cmp r5, r4
80122d8: d105 bne.n 80122e6 <__libc_init_array+0x2e>
80122da: bd70 pop {r4, r5, r6, pc}
80122dc: f856 3025 ldr.w r3, [r6, r5, lsl #2]
80122e0: 4798 blx r3
80122e2: 3501 adds r5, #1
80122e4: e7ee b.n 80122c4 <__libc_init_array+0xc>
80122e6: f856 3025 ldr.w r3, [r6, r5, lsl #2]
80122ea: 4798 blx r3
80122ec: 3501 adds r5, #1
80122ee: e7f2 b.n 80122d6 <__libc_init_array+0x1e>
80122f0: 0802a458 .word 0x0802a458
80122f4: 0802a458 .word 0x0802a458
80122f8: 0802a458 .word 0x0802a458
80122fc: 0802a45c .word 0x0802a45c
08012300 <memcpy>:
8012300: b510 push {r4, lr}
8012302: 1e43 subs r3, r0, #1
8012304: 440a add r2, r1
8012306: 4291 cmp r1, r2
8012308: d100 bne.n 801230c <memcpy+0xc>
801230a: bd10 pop {r4, pc}
801230c: f811 4b01 ldrb.w r4, [r1], #1
8012310: f803 4f01 strb.w r4, [r3, #1]!
8012314: e7f7 b.n 8012306 <memcpy+0x6>
08012316 <memset>:
8012316: 4402 add r2, r0
8012318: 4603 mov r3, r0
801231a: 4293 cmp r3, r2
801231c: d100 bne.n 8012320 <memset+0xa>
801231e: 4770 bx lr
8012320: f803 1b01 strb.w r1, [r3], #1
8012324: e7f9 b.n 801231a <memset+0x4>
08012326 <strcpy>:
8012326: 4603 mov r3, r0
8012328: f811 2b01 ldrb.w r2, [r1], #1
801232c: f803 2b01 strb.w r2, [r3], #1
8012330: 2a00 cmp r2, #0
8012332: d1f9 bne.n 8012328 <strcpy+0x2>
8012334: 4770 bx lr
...
08012338 <_init>:
8012338: b5f8 push {r3, r4, r5, r6, r7, lr}
801233a: bf00 nop
801233c: bcf8 pop {r3, r4, r5, r6, r7}
801233e: bc08 pop {r3}
8012340: 469e mov lr, r3
8012342: 4770 bx lr
08012344 <_fini>:
8012344: b5f8 push {r3, r4, r5, r6, r7, lr}
8012346: bf00 nop
8012348: bcf8 pop {r3, r4, r5, r6, r7}
801234a: bc08 pop {r3}
801234c: 469e mov lr, r3
801234e: 4770 bx lr