F203 VER 4.elf: file format elf32-littlearm Sections: Idx Name Size VMA LMA File off Algn 0 .isr_vector 000001f8 08000000 08000000 00010000 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA 1 .text 0001631c 080001f8 080001f8 000101f8 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE 2 .rodata 00019808 08016514 08016514 00026514 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 3 .ARM 00000008 0802fd1c 0802fd1c 0003fd1c 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 4 .init_array 00000004 0802fd24 0802fd24 0003fd24 2**2 CONTENTS, ALLOC, LOAD, DATA 5 .fini_array 00000004 0802fd28 0802fd28 0003fd28 2**2 CONTENTS, ALLOC, LOAD, DATA 6 .data 000009a8 20020000 0802fd2c 00040000 2**2 CONTENTS, ALLOC, LOAD, DATA 7 .dtcmram 00000000 20000000 20000000 000409a8 2**0 CONTENTS 8 .sram2 00000000 2007c000 2007c000 000409a8 2**0 CONTENTS 9 .bss 0004bd3c 200209a8 200209a8 000409a8 2**2 ALLOC 10 ._user_heap_stack 00000600 2006c6e4 2006c6e4 000409a8 2**0 ALLOC 11 .ARM.attributes 0000002e 00000000 00000000 000409a8 2**0 CONTENTS, READONLY 12 .debug_info 000305ea 00000000 00000000 000409d6 2**0 CONTENTS, READONLY, DEBUGGING 13 .debug_abbrev 0000457a 00000000 00000000 00070fc0 2**0 CONTENTS, READONLY, DEBUGGING 14 .debug_aranges 00001650 00000000 00000000 00075540 2**3 CONTENTS, READONLY, DEBUGGING 15 .debug_ranges 00001480 00000000 00000000 00076b90 2**3 CONTENTS, READONLY, DEBUGGING 16 .debug_line 0000ef70 00000000 00000000 00078010 2**0 CONTENTS, READONLY, DEBUGGING 17 .debug_str 00009231 00000000 00000000 00086f80 2**0 CONTENTS, READONLY, DEBUGGING 18 .comment 0000007c 00000000 00000000 000901b1 2**0 CONTENTS, READONLY 19 .debug_frame 00005c8c 00000000 00000000 00090230 2**2 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: 080001f8 <__do_global_dtors_aux>: 80001f8: b510 push {r4, lr} 80001fa: 4c05 ldr r4, [pc, #20] ; (8000210 <_isr_vector_flash_end+0x18>) 80001fc: 7823 ldrb r3, [r4, #0] 80001fe: b933 cbnz r3, 800020e <__do_global_dtors_aux+0x16> 8000200: 4b04 ldr r3, [pc, #16] ; (8000214 <_isr_vector_flash_end+0x1c>) 8000202: b113 cbz r3, 800020a <__do_global_dtors_aux+0x12> 8000204: 4804 ldr r0, [pc, #16] ; (8000218 <_isr_vector_flash_end+0x20>) 8000206: f3af 8000 nop.w 800020a: 2301 movs r3, #1 800020c: 7023 strb r3, [r4, #0] 800020e: bd10 pop {r4, pc} 8000210: 200209a8 .word 0x200209a8 8000214: 00000000 .word 0x00000000 8000218: 080164fc .word 0x080164fc 0800021c : 800021c: b508 push {r3, lr} 800021e: 4b03 ldr r3, [pc, #12] ; (800022c ) 8000220: b11b cbz r3, 800022a 8000222: 4903 ldr r1, [pc, #12] ; (8000230 ) 8000224: 4803 ldr r0, [pc, #12] ; (8000234 ) 8000226: f3af 8000 nop.w 800022a: bd08 pop {r3, pc} 800022c: 00000000 .word 0x00000000 8000230: 200209ac .word 0x200209ac 8000234: 080164fc .word 0x080164fc 08000238 : 8000238: 4603 mov r3, r0 800023a: f813 2b01 ldrb.w r2, [r3], #1 800023e: 2a00 cmp r2, #0 8000240: d1fb bne.n 800023a 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 : void Off(void) { 8000558: b580 push {r7, lr} 800055a: af00 add r7, sp, #0 NeedOff = false; 800055c: 4b12 ldr r3, [pc, #72] ; (80005a8 ) 800055e: 2200 movs r2, #0 8000560: 701a strb r2, [r3, #0] BSP_LCD_DisplayOff(); 8000562: f004 fabf bl 8004ae4 HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_SET); // BACKLIGHT_OFF 8000566: 2201 movs r2, #1 8000568: f44f 7180 mov.w r1, #256 ; 0x100 800056c: 480f ldr r0, [pc, #60] ; (80005ac ) 800056e: f012 fb6d bl 8012c4c wrPar(); 8000572: f000 f893 bl 800069c while(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET); 8000576: bf00 nop 8000578: 2101 movs r1, #1 800057a: 480c ldr r0, [pc, #48] ; (80005ac ) 800057c: f012 fb4e bl 8012c1c 8000580: 4603 mov r3, r0 8000582: 2b01 cmp r3, #1 8000584: d0f8 beq.n 8000578 HAL_GPIO_WritePin(ON_GPIO_Port, ON_Pin, GPIO_PIN_RESET); 8000586: 2200 movs r2, #0 8000588: f44f 7180 mov.w r1, #256 ; 0x100 800058c: 4808 ldr r0, [pc, #32] ; (80005b0 ) 800058e: f012 fb5d bl 8012c4c HAL_GPIO_WritePin(ON1_GPIO_Port, ON1_Pin, GPIO_PIN_RESET); 8000592: 2200 movs r2, #0 8000594: 2120 movs r1, #32 8000596: 4806 ldr r0, [pc, #24] ; (80005b0 ) 8000598: f012 fb58 bl 8012c4c HAL_Delay(300); 800059c: f44f 7096 mov.w r0, #300 ; 0x12c 80005a0: f011 f828 bl 80115f4 while(1); 80005a4: e7fe b.n 80005a4 80005a6: bf00 nop 80005a8: 200209d8 .word 0x200209d8 80005ac: 40020000 .word 0x40020000 80005b0: 40021400 .word 0x40021400 080005b4 : DMA2D_HandleTypeDef hdma2d; /* DMA2D init function */ void MX_DMA2D_Init(void) { 80005b4: b580 push {r7, lr} 80005b6: af00 add r7, sp, #0 hdma2d.Instance = DMA2D; 80005b8: 4b18 ldr r3, [pc, #96] ; (800061c ) 80005ba: 4a19 ldr r2, [pc, #100] ; (8000620 ) 80005bc: 601a str r2, [r3, #0] hdma2d.Init.Mode = DMA2D_M2M; 80005be: 4b17 ldr r3, [pc, #92] ; (800061c ) 80005c0: 2200 movs r2, #0 80005c2: 605a str r2, [r3, #4] hdma2d.Init.ColorMode = DMA2D_OUTPUT_RGB565; 80005c4: 4b15 ldr r3, [pc, #84] ; (800061c ) 80005c6: 2202 movs r2, #2 80005c8: 609a str r2, [r3, #8] hdma2d.Init.OutputOffset = 0; 80005ca: 4b14 ldr r3, [pc, #80] ; (800061c ) 80005cc: 2200 movs r2, #0 80005ce: 60da str r2, [r3, #12] hdma2d.LayerCfg[1].InputOffset = 0; 80005d0: 4b12 ldr r3, [pc, #72] ; (800061c ) 80005d2: 2200 movs r2, #0 80005d4: 639a str r2, [r3, #56] ; 0x38 hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_RGB565; 80005d6: 4b11 ldr r3, [pc, #68] ; (800061c ) 80005d8: 2202 movs r2, #2 80005da: 63da str r2, [r3, #60] ; 0x3c hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA; 80005dc: 4b0f ldr r3, [pc, #60] ; (800061c ) 80005de: 2200 movs r2, #0 80005e0: 641a str r2, [r3, #64] ; 0x40 hdma2d.LayerCfg[1].InputAlpha = 0; 80005e2: 4b0e ldr r3, [pc, #56] ; (800061c ) 80005e4: 2200 movs r2, #0 80005e6: 645a str r2, [r3, #68] ; 0x44 hdma2d.LayerCfg[1].AlphaInverted = DMA2D_REGULAR_ALPHA; 80005e8: 4b0c ldr r3, [pc, #48] ; (800061c ) 80005ea: 2200 movs r2, #0 80005ec: 649a str r2, [r3, #72] ; 0x48 hdma2d.LayerCfg[1].RedBlueSwap = DMA2D_RB_REGULAR; 80005ee: 4b0b ldr r3, [pc, #44] ; (800061c ) 80005f0: 2200 movs r2, #0 80005f2: 64da str r2, [r3, #76] ; 0x4c if (HAL_DMA2D_Init(&hdma2d) != HAL_OK) 80005f4: 4809 ldr r0, [pc, #36] ; (800061c ) 80005f6: f011 fb7b bl 8011cf0 80005fa: 4603 mov r3, r0 80005fc: 2b00 cmp r3, #0 80005fe: d001 beq.n 8000604 { Error_Handler(); 8000600: f005 fc30 bl 8005e64 } if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK) 8000604: 2101 movs r1, #1 8000606: 4805 ldr r0, [pc, #20] ; (800061c ) 8000608: f011 fce0 bl 8011fcc 800060c: 4603 mov r3, r0 800060e: 2b00 cmp r3, #0 8000610: d001 beq.n 8000616 { Error_Handler(); 8000612: f005 fc27 bl 8005e64 } } 8000616: bf00 nop 8000618: bd80 pop {r7, pc} 800061a: bf00 nop 800061c: 2006bc30 .word 0x2006bc30 8000620: 4002b000 .word 0x4002b000 08000624 : void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef* dma2dHandle) { 8000624: b480 push {r7} 8000626: b085 sub sp, #20 8000628: af00 add r7, sp, #0 800062a: 6078 str r0, [r7, #4] if(dma2dHandle->Instance==DMA2D) 800062c: 687b ldr r3, [r7, #4] 800062e: 681b ldr r3, [r3, #0] 8000630: 4a0a ldr r2, [pc, #40] ; (800065c ) 8000632: 4293 cmp r3, r2 8000634: d10b bne.n 800064e { /* USER CODE BEGIN DMA2D_MspInit 0 */ /* USER CODE END DMA2D_MspInit 0 */ /* DMA2D clock enable */ __HAL_RCC_DMA2D_CLK_ENABLE(); 8000636: 4a0a ldr r2, [pc, #40] ; (8000660 ) 8000638: 4b09 ldr r3, [pc, #36] ; (8000660 ) 800063a: 6b1b ldr r3, [r3, #48] ; 0x30 800063c: f443 0300 orr.w r3, r3, #8388608 ; 0x800000 8000640: 6313 str r3, [r2, #48] ; 0x30 8000642: 4b07 ldr r3, [pc, #28] ; (8000660 ) 8000644: 6b1b ldr r3, [r3, #48] ; 0x30 8000646: f403 0300 and.w r3, r3, #8388608 ; 0x800000 800064a: 60fb str r3, [r7, #12] 800064c: 68fb ldr r3, [r7, #12] /* USER CODE BEGIN DMA2D_MspInit 1 */ /* USER CODE END DMA2D_MspInit 1 */ } } 800064e: bf00 nop 8000650: 3714 adds r7, #20 8000652: 46bd mov sp, r7 8000654: f85d 7b04 ldr.w r7, [sp], #4 8000658: 4770 bx lr 800065a: bf00 nop 800065c: 4002b000 .word 0x4002b000 8000660: 40023800 .word 0x40023800 08000664 : volatile uint32_t id = 0; void initFlash(void) { 8000664: b580 push {r7, lr} 8000666: b082 sub sp, #8 8000668: af00 add r7, sp, #0 __HAL_RCC_SYSCFG_CLK_ENABLE(); 800066a: 4a0a ldr r2, [pc, #40] ; (8000694 ) 800066c: 4b09 ldr r3, [pc, #36] ; (8000694 ) 800066e: 6c5b ldr r3, [r3, #68] ; 0x44 8000670: f443 4380 orr.w r3, r3, #16384 ; 0x4000 8000674: 6453 str r3, [r2, #68] ; 0x44 8000676: 4b07 ldr r3, [pc, #28] ; (8000694 ) 8000678: 6c5b ldr r3, [r3, #68] ; 0x44 800067a: f403 4380 and.w r3, r3, #16384 ; 0x4000 800067e: 607b str r3, [r7, #4] 8000680: 687b ldr r3, [r7, #4] HAL_FLASHEx_OBGetConfig(&OBInit); 8000682: 4805 ldr r0, [pc, #20] ; (8000698 ) 8000684: f012 f800 bl 8012688 rdPar(); 8000688: f000 f852 bl 8000730 } 800068c: bf00 nop 800068e: 3708 adds r7, #8 8000690: 46bd mov sp, r7 8000692: bd80 pop {r7, pc} 8000694: 40023800 .word 0x40023800 8000698: 2006bc88 .word 0x2006bc88 0800069c : void wrPar(void) { 800069c: b590 push {r4, r7, lr} 800069e: b087 sub sp, #28 80006a0: af00 add r7, sp, #0 volatile uint32_t i; volatile uint32_t lenpar = 0; 80006a2: 2300 movs r3, #0 80006a4: 60fb str r3, [r7, #12] volatile uint32_t Address, *pData; uint32_t SECTORError = 0; 80006a6: 2300 movs r3, #0 80006a8: 607b str r3, [r7, #4] #ifndef DEBUGGING lenpar = 8u << 2; 80006aa: 2320 movs r3, #32 80006ac: 60fb str r3, [r7, #12] \details Disables IRQ interrupts by setting the I-bit in the CPSR. Can only be executed in Privileged modes. */ __STATIC_FORCEINLINE void __disable_irq(void) { __ASM volatile ("cpsid i" : : : "memory"); 80006ae: b672 cpsid i __disable_irq(); HAL_FLASH_Unlock(); 80006b0: f011 fe20 bl 80122f4 EraseInitStruct.TypeErase = FLASH_TYPEERASE_SECTORS; 80006b4: 4b1b ldr r3, [pc, #108] ; (8000724 ) 80006b6: 2200 movs r2, #0 80006b8: 601a str r2, [r3, #0] EraseInitStruct.VoltageRange = FLASH_VOLTAGE_RANGE_3; 80006ba: 4b1a ldr r3, [pc, #104] ; (8000724 ) 80006bc: 2202 movs r2, #2 80006be: 611a str r2, [r3, #16] EraseInitStruct.Sector = USERSECTOR; //FLASH_SECTOR_11; 80006c0: 4b18 ldr r3, [pc, #96] ; (8000724 ) 80006c2: 220b movs r2, #11 80006c4: 609a str r2, [r3, #8] EraseInitStruct.NbSectors = 1; 80006c6: 4b17 ldr r3, [pc, #92] ; (8000724 ) 80006c8: 2201 movs r2, #1 80006ca: 60da str r2, [r3, #12] if(HAL_FLASHEx_Erase(&EraseInitStruct, &SECTORError) == HAL_OK) 80006cc: 1d3b adds r3, r7, #4 80006ce: 4619 mov r1, r3 80006d0: 4814 ldr r0, [pc, #80] ; (8000724 ) 80006d2: f011 ff69 bl 80125a8 80006d6: 4603 mov r3, r0 80006d8: 2b00 cmp r3, #0 80006da: d11c bne.n 8000716 { Address = USERPAGE; 80006dc: 4b12 ldr r3, [pc, #72] ; (8000728 ) 80006de: 60bb str r3, [r7, #8] pData = (uint32_t *) &pardata.OWN; 80006e0: 4b12 ldr r3, [pc, #72] ; (800072c ) 80006e2: 617b str r3, [r7, #20] for(i = 0; i < lenpar; i++) 80006e4: 2300 movs r3, #0 80006e6: 613b str r3, [r7, #16] 80006e8: e011 b.n 800070e { HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, Address, *pData++); 80006ea: 68b9 ldr r1, [r7, #8] 80006ec: 697b ldr r3, [r7, #20] 80006ee: 1d1a adds r2, r3, #4 80006f0: 617a str r2, [r7, #20] 80006f2: 681b ldr r3, [r3, #0] 80006f4: f04f 0400 mov.w r4, #0 80006f8: 461a mov r2, r3 80006fa: 4623 mov r3, r4 80006fc: 2002 movs r0, #2 80006fe: f011 fd9d bl 801223c Address += 4; 8000702: 68bb ldr r3, [r7, #8] 8000704: 3304 adds r3, #4 8000706: 60bb str r3, [r7, #8] for(i = 0; i < lenpar; i++) 8000708: 693b ldr r3, [r7, #16] 800070a: 3301 adds r3, #1 800070c: 613b str r3, [r7, #16] 800070e: 693a ldr r2, [r7, #16] 8000710: 68fb ldr r3, [r7, #12] 8000712: 429a cmp r2, r3 8000714: d3e9 bcc.n 80006ea } } HAL_FLASH_Lock(); 8000716: f011 fe0f bl 8012338 __ASM volatile ("cpsie i" : : : "memory"); 800071a: b662 cpsie i __enable_irq(); #endif } 800071c: bf00 nop 800071e: 371c adds r7, #28 8000720: 46bd mov sp, r7 8000722: bd90 pop {r4, r7, pc} 8000724: 200209c4 .word 0x200209c4 8000728: 081c0000 .word 0x081c0000 800072c: 2006bea8 .word 0x2006bea8 08000730 : void rdPar(void) { 8000730: b580 push {r7, lr} 8000732: b082 sub sp, #8 8000734: af00 add r7, sp, #0 uint8_t i, j; uint32_t lenpar; volatile bool rewrite = false; 8000736: 2300 movs r3, #0 8000738: 71fb strb r3, [r7, #7] sfloat hpf; memcpy((void *) &pardata.OWN, (void *) USERPAGE, 8u); 800073a: 2208 movs r2, #8 800073c: 4913 ldr r1, [pc, #76] ; (800078c ) 800073e: 4814 ldr r0, [pc, #80] ; (8000790 ) 8000740: f015 fec0 bl 80164c4 if(pardata.OWN != 18) 8000744: 4b13 ldr r3, [pc, #76] ; (8000794 ) 8000746: f8b3 3200 ldrh.w r3, [r3, #512] ; 0x200 800074a: b29b uxth r3, r3 800074c: 2b12 cmp r3, #18 800074e: d011 beq.n 8000774 { pardata.OWN = 18; 8000750: 4b10 ldr r3, [pc, #64] ; (8000794 ) 8000752: 2212 movs r2, #18 8000754: f8a3 2200 strh.w r2, [r3, #512] ; 0x200 pardata.BAUD = 7; 8000758: 4b0e ldr r3, [pc, #56] ; (8000794 ) 800075a: 2207 movs r2, #7 800075c: f8a3 2202 strh.w r2, [r3, #514] ; 0x202 pardata.INFB = 0; 8000760: 4b0c ldr r3, [pc, #48] ; (8000794 ) 8000762: 2200 movs r2, #0 8000764: f8a3 2204 strh.w r2, [r3, #516] ; 0x204 pardata.LANG = RUS; 8000768: 4b0a ldr r3, [pc, #40] ; (8000794 ) 800076a: 2200 movs r2, #0 800076c: f8a3 2206 strh.w r2, [r3, #518] ; 0x206 rewrite = true; 8000770: 2301 movs r3, #1 8000772: 71fb strb r3, [r7, #7] } if(rewrite) 8000774: 79fb ldrb r3, [r7, #7] 8000776: b2db uxtb r3, r3 8000778: 2b00 cmp r3, #0 800077a: d003 beq.n 8000784 { rewrite = false; 800077c: 2300 movs r3, #0 800077e: 71fb strb r3, [r7, #7] wrPar(); 8000780: f7ff ff8c bl 800069c } } 8000784: bf00 nop 8000786: 3708 adds r7, #8 8000788: 46bd mov sp, r7 800078a: bd80 pop {r7, pc} 800078c: 081c0000 .word 0x081c0000 8000790: 2006bea8 .word 0x2006bea8 8000794: 2006bca8 .word 0x2006bca8 08000798 : * EXTI * Free pins are configured automatically as Analog (this feature is enabled through * the Code Generation settings) */ void MX_GPIO_Init(void) { 8000798: b580 push {r7, lr} 800079a: b08e sub sp, #56 ; 0x38 800079c: af00 add r7, sp, #0 GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOE_CLK_ENABLE(); 800079e: 4a73 ldr r2, [pc, #460] ; (800096c ) 80007a0: 4b72 ldr r3, [pc, #456] ; (800096c ) 80007a2: 6b1b ldr r3, [r3, #48] ; 0x30 80007a4: f043 0310 orr.w r3, r3, #16 80007a8: 6313 str r3, [r2, #48] ; 0x30 80007aa: 4b70 ldr r3, [pc, #448] ; (800096c ) 80007ac: 6b1b ldr r3, [r3, #48] ; 0x30 80007ae: f003 0310 and.w r3, r3, #16 80007b2: 623b str r3, [r7, #32] 80007b4: 6a3b ldr r3, [r7, #32] __HAL_RCC_GPIOC_CLK_ENABLE(); 80007b6: 4a6d ldr r2, [pc, #436] ; (800096c ) 80007b8: 4b6c ldr r3, [pc, #432] ; (800096c ) 80007ba: 6b1b ldr r3, [r3, #48] ; 0x30 80007bc: f043 0304 orr.w r3, r3, #4 80007c0: 6313 str r3, [r2, #48] ; 0x30 80007c2: 4b6a ldr r3, [pc, #424] ; (800096c ) 80007c4: 6b1b ldr r3, [r3, #48] ; 0x30 80007c6: f003 0304 and.w r3, r3, #4 80007ca: 61fb str r3, [r7, #28] 80007cc: 69fb ldr r3, [r7, #28] __HAL_RCC_GPIOF_CLK_ENABLE(); 80007ce: 4a67 ldr r2, [pc, #412] ; (800096c ) 80007d0: 4b66 ldr r3, [pc, #408] ; (800096c ) 80007d2: 6b1b ldr r3, [r3, #48] ; 0x30 80007d4: f043 0320 orr.w r3, r3, #32 80007d8: 6313 str r3, [r2, #48] ; 0x30 80007da: 4b64 ldr r3, [pc, #400] ; (800096c ) 80007dc: 6b1b ldr r3, [r3, #48] ; 0x30 80007de: f003 0320 and.w r3, r3, #32 80007e2: 61bb str r3, [r7, #24] 80007e4: 69bb ldr r3, [r7, #24] __HAL_RCC_GPIOH_CLK_ENABLE(); 80007e6: 4a61 ldr r2, [pc, #388] ; (800096c ) 80007e8: 4b60 ldr r3, [pc, #384] ; (800096c ) 80007ea: 6b1b ldr r3, [r3, #48] ; 0x30 80007ec: f043 0380 orr.w r3, r3, #128 ; 0x80 80007f0: 6313 str r3, [r2, #48] ; 0x30 80007f2: 4b5e ldr r3, [pc, #376] ; (800096c ) 80007f4: 6b1b ldr r3, [r3, #48] ; 0x30 80007f6: f003 0380 and.w r3, r3, #128 ; 0x80 80007fa: 617b str r3, [r7, #20] 80007fc: 697b ldr r3, [r7, #20] __HAL_RCC_GPIOA_CLK_ENABLE(); 80007fe: 4a5b ldr r2, [pc, #364] ; (800096c ) 8000800: 4b5a ldr r3, [pc, #360] ; (800096c ) 8000802: 6b1b ldr r3, [r3, #48] ; 0x30 8000804: f043 0301 orr.w r3, r3, #1 8000808: 6313 str r3, [r2, #48] ; 0x30 800080a: 4b58 ldr r3, [pc, #352] ; (800096c ) 800080c: 6b1b ldr r3, [r3, #48] ; 0x30 800080e: f003 0301 and.w r3, r3, #1 8000812: 613b str r3, [r7, #16] 8000814: 693b ldr r3, [r7, #16] __HAL_RCC_GPIOB_CLK_ENABLE(); 8000816: 4a55 ldr r2, [pc, #340] ; (800096c ) 8000818: 4b54 ldr r3, [pc, #336] ; (800096c ) 800081a: 6b1b ldr r3, [r3, #48] ; 0x30 800081c: f043 0302 orr.w r3, r3, #2 8000820: 6313 str r3, [r2, #48] ; 0x30 8000822: 4b52 ldr r3, [pc, #328] ; (800096c ) 8000824: 6b1b ldr r3, [r3, #48] ; 0x30 8000826: f003 0302 and.w r3, r3, #2 800082a: 60fb str r3, [r7, #12] 800082c: 68fb ldr r3, [r7, #12] __HAL_RCC_GPIOG_CLK_ENABLE(); 800082e: 4a4f ldr r2, [pc, #316] ; (800096c ) 8000830: 4b4e ldr r3, [pc, #312] ; (800096c ) 8000832: 6b1b ldr r3, [r3, #48] ; 0x30 8000834: f043 0340 orr.w r3, r3, #64 ; 0x40 8000838: 6313 str r3, [r2, #48] ; 0x30 800083a: 4b4c ldr r3, [pc, #304] ; (800096c ) 800083c: 6b1b ldr r3, [r3, #48] ; 0x30 800083e: f003 0340 and.w r3, r3, #64 ; 0x40 8000842: 60bb str r3, [r7, #8] 8000844: 68bb ldr r3, [r7, #8] __HAL_RCC_GPIOD_CLK_ENABLE(); 8000846: 4a49 ldr r2, [pc, #292] ; (800096c ) 8000848: 4b48 ldr r3, [pc, #288] ; (800096c ) 800084a: 6b1b ldr r3, [r3, #48] ; 0x30 800084c: f043 0308 orr.w r3, r3, #8 8000850: 6313 str r3, [r2, #48] ; 0x30 8000852: 4b46 ldr r3, [pc, #280] ; (800096c ) 8000854: 6b1b ldr r3, [r3, #48] ; 0x30 8000856: f003 0308 and.w r3, r3, #8 800085a: 607b str r3, [r7, #4] 800085c: 687b ldr r3, [r7, #4] HAL_GPIO_WritePin(GPIOE, (U1_Pin | U2_Pin | U3_Pin), GPIO_PIN_SET); 800085e: 2201 movs r2, #1 8000860: 2138 movs r1, #56 ; 0x38 8000862: 4843 ldr r0, [pc, #268] ; (8000970 ) 8000864: f012 f9f2 bl 8012c4c HAL_GPIO_WritePin(ON_GPIO_Port, ON_Pin, GPIO_PIN_SET); 8000868: 2201 movs r2, #1 800086a: f44f 7180 mov.w r1, #256 ; 0x100 800086e: 4841 ldr r0, [pc, #260] ; (8000974 ) 8000870: f012 f9ec bl 8012c4c HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_SET); 8000874: 2201 movs r2, #1 8000876: 2140 movs r1, #64 ; 0x40 8000878: 483f ldr r0, [pc, #252] ; (8000978 ) 800087a: f012 f9e7 bl 8012c4c HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_SET); 800087e: 2201 movs r2, #1 8000880: f44f 7180 mov.w r1, #256 ; 0x100 8000884: 483d ldr r0, [pc, #244] ; (800097c ) 8000886: f012 f9e1 bl 8012c4c HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800088a: 2200 movs r2, #0 800088c: f44f 7100 mov.w r1, #512 ; 0x200 8000890: 4838 ldr r0, [pc, #224] ; (8000974 ) 8000892: f012 f9db bl 8012c4c /*Configure GPIO pins : PEPin PEPin PEPin */ GPIO_InitStruct.Pin = U1_Pin|U2_Pin|U3_Pin; 8000896: 2338 movs r3, #56 ; 0x38 8000898: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 800089a: 2301 movs r3, #1 800089c: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_PULLUP; 800089e: 2301 movs r3, #1 80008a0: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 80008a2: 2303 movs r3, #3 80008a4: 633b str r3, [r7, #48] ; 0x30 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); 80008a6: f107 0324 add.w r3, r7, #36 ; 0x24 80008aa: 4619 mov r1, r3 80008ac: 4830 ldr r0, [pc, #192] ; (8000970 ) 80008ae: f012 f80b bl 80128c8 /*Configure GPIO pins : PAPin PAPin */ GPIO_InitStruct.Pin = K1_Pin; 80008b2: f44f 7300 mov.w r3, #512 ; 0x200 80008b6: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; 80008b8: 2300 movs r3, #0 80008ba: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_PULLUP; 80008bc: 2301 movs r3, #1 80008be: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; 80008c0: 2302 movs r3, #2 80008c2: 633b str r3, [r7, #48] ; 0x30 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); 80008c4: f107 0324 add.w r3, r7, #36 ; 0x24 80008c8: 4619 mov r1, r3 80008ca: 482c ldr r0, [pc, #176] ; (800097c ) 80008cc: f011 fffc bl 80128c8 /*Configure GPIO pin : PtPin */ GPIO_InitStruct.Pin = ON_Pin | ON1_Pin | RE_Pin; 80008d0: f44f 7348 mov.w r3, #800 ; 0x320 80008d4: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 80008d6: 2301 movs r3, #1 80008d8: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; 80008da: 2300 movs r3, #0 80008dc: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; 80008de: 2302 movs r3, #2 80008e0: 633b str r3, [r7, #48] ; 0x30 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); 80008e2: f107 0324 add.w r3, r7, #36 ; 0x24 80008e6: 4619 mov r1, r3 80008e8: 4822 ldr r0, [pc, #136] ; (8000974 ) 80008ea: f011 ffed bl 80128c8 GPIO_InitStruct.Pin = DISP_ON_Pin; 80008ee: f44f 7380 mov.w r3, #256 ; 0x100 80008f2: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 80008f4: 2301 movs r3, #1 80008f6: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; 80008f8: 2300 movs r3, #0 80008fa: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; 80008fc: 2302 movs r3, #2 80008fe: 633b str r3, [r7, #48] ; 0x30 HAL_GPIO_Init(DISP_ON_GPIO_Port, &GPIO_InitStruct); 8000900: f107 0324 add.w r3, r7, #36 ; 0x24 8000904: 4619 mov r1, r3 8000906: 481d ldr r0, [pc, #116] ; (800097c ) 8000908: f011 ffde bl 80128c8 /*Configure GPIO pin : PtPin */ GPIO_InitStruct.Pin = OFF_Pin; 800090c: 2301 movs r3, #1 800090e: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; 8000910: 2300 movs r3, #0 8000912: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; 8000914: 2300 movs r3, #0 8000916: 62fb str r3, [r7, #44] ; 0x2c HAL_GPIO_Init(OFF_GPIO_Port, &GPIO_InitStruct); 8000918: f107 0324 add.w r3, r7, #36 ; 0x24 800091c: 4619 mov r1, r3 800091e: 4817 ldr r0, [pc, #92] ; (800097c ) 8000920: f011 ffd2 bl 80128c8 /*Configure GPIO pin : PtPin */ GPIO_InitStruct.Pin = RESET_Pin; 8000924: 2340 movs r3, #64 ; 0x40 8000926: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 8000928: 2301 movs r3, #1 800092a: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; 800092c: 2300 movs r3, #0 800092e: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; 8000930: 2302 movs r3, #2 8000932: 633b str r3, [r7, #48] ; 0x30 HAL_GPIO_Init(RESET_GPIO_Port, &GPIO_InitStruct); 8000934: f107 0324 add.w r3, r7, #36 ; 0x24 8000938: 4619 mov r1, r3 800093a: 480f ldr r0, [pc, #60] ; (8000978 ) 800093c: f011 ffc4 bl 80128c8 GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(RE_GPIO_Port, &GPIO_InitStruct);*/ HAL_GPIO_WritePin(ON_GPIO_Port, ON_Pin, GPIO_PIN_SET); 8000940: 2201 movs r2, #1 8000942: f44f 7180 mov.w r1, #256 ; 0x100 8000946: 480b ldr r0, [pc, #44] ; (8000974 ) 8000948: f012 f980 bl 8012c4c HAL_GPIO_WritePin(ON1_GPIO_Port, ON1_Pin, GPIO_PIN_SET); 800094c: 2201 movs r2, #1 800094e: 2120 movs r1, #32 8000950: 4808 ldr r0, [pc, #32] ; (8000974 ) 8000952: f012 f97b bl 8012c4c HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_SET); // BACKLIGHT IS OFF 8000956: 2201 movs r2, #1 8000958: f44f 7180 mov.w r1, #256 ; 0x100 800095c: 4807 ldr r0, [pc, #28] ; (800097c ) 800095e: f012 f975 bl 8012c4c } 8000962: bf00 nop 8000964: 3738 adds r7, #56 ; 0x38 8000966: 46bd mov sp, r7 8000968: bd80 pop {r7, pc} 800096a: bf00 nop 800096c: 40023800 .word 0x40023800 8000970: 40021000 .word 0x40021000 8000974: 40021400 .word 0x40021400 8000978: 40020c00 .word 0x40020c00 800097c: 40020000 .word 0x40020000 08000980 : void initKeys(void) { 8000980: b580 push {r7, lr} 8000982: af00 add r7, sp, #0 KeysIsReady = false; 8000984: 4b09 ldr r3, [pc, #36] ; (80009ac ) 8000986: 2200 movs r2, #0 8000988: 701a strb r2, [r3, #0] HAL_GPIO_WritePin(U1_GPIO_Port, U1_Pin, GPIO_PIN_SET); 800098a: 2201 movs r2, #1 800098c: 2108 movs r1, #8 800098e: 4808 ldr r0, [pc, #32] ; (80009b0 ) 8000990: f012 f95c bl 8012c4c HAL_GPIO_WritePin(U2_GPIO_Port, U2_Pin, GPIO_PIN_SET); 8000994: 2201 movs r2, #1 8000996: 2110 movs r1, #16 8000998: 4805 ldr r0, [pc, #20] ; (80009b0 ) 800099a: f012 f957 bl 8012c4c HAL_GPIO_WritePin(U3_GPIO_Port, U3_Pin, GPIO_PIN_SET); 800099e: 2201 movs r2, #1 80009a0: 2120 movs r1, #32 80009a2: 4803 ldr r0, [pc, #12] ; (80009b0 ) 80009a4: f012 f952 bl 8012c4c } 80009a8: bf00 nop 80009aa: bd80 pop {r7, pc} 80009ac: 200209dc .word 0x200209dc 80009b0: 40021000 .word 0x40021000 080009b4 : uint32_t readkey(void) { 80009b4: b580 push {r7, lr} 80009b6: b082 sub sp, #8 80009b8: af00 add r7, sp, #0 uint32_t key = 0; 80009ba: 2300 movs r3, #0 80009bc: 607b str r3, [r7, #4] if(KeysIsReady == false){ 80009be: 4b34 ldr r3, [pc, #208] ; (8000a90 ) 80009c0: 781b ldrb r3, [r3, #0] 80009c2: b2db uxtb r3, r3 80009c4: f083 0301 eor.w r3, r3, #1 80009c8: b2db uxtb r3, r3 80009ca: 2b00 cmp r3, #0 80009cc: d001 beq.n 80009d2 return 0; 80009ce: 2300 movs r3, #0 80009d0: e05a b.n 8000a88 } if(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET) { 80009d2: 2101 movs r1, #1 80009d4: 482f ldr r0, [pc, #188] ; (8000a94 ) 80009d6: f012 f921 bl 8012c1c 80009da: 4603 mov r3, r0 80009dc: 2b01 cmp r3, #1 80009de: d101 bne.n 80009e4 key = KEY_PW; 80009e0: 2301 movs r3, #1 80009e2: 607b str r3, [r7, #4] } HAL_GPIO_WritePin(U1_GPIO_Port, U1_Pin, GPIO_PIN_SET); 80009e4: 2201 movs r2, #1 80009e6: 2108 movs r1, #8 80009e8: 482b ldr r0, [pc, #172] ; (8000a98 ) 80009ea: f012 f92f bl 8012c4c HAL_GPIO_WritePin(U2_GPIO_Port, U2_Pin, GPIO_PIN_SET); 80009ee: 2201 movs r2, #1 80009f0: 2110 movs r1, #16 80009f2: 4829 ldr r0, [pc, #164] ; (8000a98 ) 80009f4: f012 f92a bl 8012c4c HAL_GPIO_WritePin(U3_GPIO_Port, U3_Pin, GPIO_PIN_SET); 80009f8: 2201 movs r2, #1 80009fa: 2120 movs r1, #32 80009fc: 4826 ldr r0, [pc, #152] ; (8000a98 ) 80009fe: f012 f925 bl 8012c4c HAL_GPIO_WritePin(U1_GPIO_Port, U1_Pin, GPIO_PIN_RESET); 8000a02: 2200 movs r2, #0 8000a04: 2108 movs r1, #8 8000a06: 4824 ldr r0, [pc, #144] ; (8000a98 ) 8000a08: f012 f920 bl 8012c4c if(HAL_GPIO_ReadPin(K1_GPIO_Port, K1_Pin) == GPIO_PIN_RESET) { 8000a0c: f44f 7100 mov.w r1, #512 ; 0x200 8000a10: 4820 ldr r0, [pc, #128] ; (8000a94 ) 8000a12: f012 f903 bl 8012c1c 8000a16: 4603 mov r3, r0 8000a18: 2b00 cmp r3, #0 8000a1a: d103 bne.n 8000a24 key |= KEY_DN; 8000a1c: 687b ldr r3, [r7, #4] 8000a1e: f043 0304 orr.w r3, r3, #4 8000a22: 607b str r3, [r7, #4] } HAL_GPIO_WritePin(U1_GPIO_Port, U1_Pin, GPIO_PIN_SET); 8000a24: 2201 movs r2, #1 8000a26: 2108 movs r1, #8 8000a28: 481b ldr r0, [pc, #108] ; (8000a98 ) 8000a2a: f012 f90f bl 8012c4c HAL_GPIO_WritePin(U2_GPIO_Port, U2_Pin, GPIO_PIN_RESET); 8000a2e: 2200 movs r2, #0 8000a30: 2110 movs r1, #16 8000a32: 4819 ldr r0, [pc, #100] ; (8000a98 ) 8000a34: f012 f90a bl 8012c4c if(HAL_GPIO_ReadPin(K1_GPIO_Port, K1_Pin) == GPIO_PIN_RESET) { 8000a38: f44f 7100 mov.w r1, #512 ; 0x200 8000a3c: 4815 ldr r0, [pc, #84] ; (8000a94 ) 8000a3e: f012 f8ed bl 8012c1c 8000a42: 4603 mov r3, r0 8000a44: 2b00 cmp r3, #0 8000a46: d103 bne.n 8000a50 key |= KEY_OK; 8000a48: 687b ldr r3, [r7, #4] 8000a4a: f043 0320 orr.w r3, r3, #32 8000a4e: 607b str r3, [r7, #4] } HAL_GPIO_WritePin(U2_GPIO_Port, U2_Pin, GPIO_PIN_SET); 8000a50: 2201 movs r2, #1 8000a52: 2110 movs r1, #16 8000a54: 4810 ldr r0, [pc, #64] ; (8000a98 ) 8000a56: f012 f8f9 bl 8012c4c HAL_GPIO_WritePin(U3_GPIO_Port, U3_Pin, GPIO_PIN_RESET); 8000a5a: 2200 movs r2, #0 8000a5c: 2120 movs r1, #32 8000a5e: 480e ldr r0, [pc, #56] ; (8000a98 ) 8000a60: f012 f8f4 bl 8012c4c if(HAL_GPIO_ReadPin(K1_GPIO_Port, K1_Pin) == GPIO_PIN_RESET) { 8000a64: f44f 7100 mov.w r1, #512 ; 0x200 8000a68: 480a ldr r0, [pc, #40] ; (8000a94 ) 8000a6a: f012 f8d7 bl 8012c1c 8000a6e: 4603 mov r3, r0 8000a70: 2b00 cmp r3, #0 8000a72: d103 bne.n 8000a7c key |= KEY_UP; 8000a74: 687b ldr r3, [r7, #4] 8000a76: f043 0302 orr.w r3, r3, #2 8000a7a: 607b str r3, [r7, #4] } HAL_GPIO_WritePin(U3_GPIO_Port, U3_Pin, GPIO_PIN_SET); 8000a7c: 2201 movs r2, #1 8000a7e: 2120 movs r1, #32 8000a80: 4805 ldr r0, [pc, #20] ; (8000a98 ) 8000a82: f012 f8e3 bl 8012c4c return key; 8000a86: 687b ldr r3, [r7, #4] } 8000a88: 4618 mov r0, r3 8000a8a: 3708 adds r7, #8 8000a8c: 46bd mov sp, r7 8000a8e: bd80 pop {r7, pc} 8000a90: 200209dc .word 0x200209dc 8000a94: 40020000 .word 0x40020000 8000a98: 40021000 .word 0x40021000 08000a9c : uint32_t kbhit(void) { 8000a9c: b580 push {r7, lr} 8000a9e: b082 sub sp, #8 8000aa0: af00 add r7, sp, #0 volatile uint32_t key = 0;; 8000aa2: 2300 movs r3, #0 8000aa4: 607b str r3, [r7, #4] static uint16_t rep = 50; do { key = readkey(); 8000aa6: f7ff ff85 bl 80009b4 8000aaa: 4603 mov r3, r0 8000aac: 607b str r3, [r7, #4] if(!key) 8000aae: 687b ldr r3, [r7, #4] 8000ab0: 2b00 cmp r3, #0 8000ab2: d10d bne.n 8000ad0 { if(dreb) dreb--; 8000ab4: 4b2d ldr r3, [pc, #180] ; (8000b6c ) 8000ab6: 681b ldr r3, [r3, #0] 8000ab8: 2b00 cmp r3, #0 8000aba: d005 beq.n 8000ac8 8000abc: 4b2b ldr r3, [pc, #172] ; (8000b6c ) 8000abe: 681b ldr r3, [r3, #0] 8000ac0: 3b01 subs r3, #1 8000ac2: 4a2a ldr r2, [pc, #168] ; (8000b6c ) 8000ac4: 6013 str r3, [r2, #0] 8000ac6: e00c b.n 8000ae2 else first = 1; 8000ac8: 4b29 ldr r3, [pc, #164] ; (8000b70 ) 8000aca: 2201 movs r2, #1 8000acc: 701a strb r2, [r3, #0] 8000ace: e008 b.n 8000ae2 } else { if(dreb < KEY_DBZ) 8000ad0: 4b26 ldr r3, [pc, #152] ; (8000b6c ) 8000ad2: 681b ldr r3, [r3, #0] 8000ad4: 2b01 cmp r3, #1 8000ad6: d804 bhi.n 8000ae2 dreb++; 8000ad8: 4b24 ldr r3, [pc, #144] ; (8000b6c ) 8000ada: 681b ldr r3, [r3, #0] 8000adc: 3301 adds r3, #1 8000ade: 4a23 ldr r2, [pc, #140] ; (8000b6c ) 8000ae0: 6013 str r3, [r2, #0] } } while((dreb > 0) && (dreb < KEY_DBZ)); 8000ae2: 4b22 ldr r3, [pc, #136] ; (8000b6c ) 8000ae4: 681b ldr r3, [r3, #0] 8000ae6: 2b00 cmp r3, #0 8000ae8: d003 beq.n 8000af2 8000aea: 4b20 ldr r3, [pc, #128] ; (8000b6c ) 8000aec: 681b ldr r3, [r3, #0] 8000aee: 2b01 cmp r3, #1 8000af0: d9d9 bls.n 8000aa6 if(!key) //если кнопки отпущены 8000af2: 687b ldr r3, [r7, #4] 8000af4: 2b00 cmp r3, #0 8000af6: d104 bne.n 8000b02 { first = 1; //достоверно кнопки отпущены 8000af8: 4b1d ldr r3, [pc, #116] ; (8000b70 ) 8000afa: 2201 movs r2, #1 8000afc: 701a strb r2, [r3, #0] return 0; //вернуть 0 8000afe: 2300 movs r3, #0 8000b00: e02f b.n 8000b62 } else //иначе { if(first) //определить кнопку 8000b02: 4b1b ldr r3, [pc, #108] ; (8000b70 ) 8000b04: 781b ldrb r3, [r3, #0] 8000b06: 2b00 cmp r3, #0 8000b08: d00c beq.n 8000b24 { //только один раз first = 0; //за нажатие 8000b0a: 4b19 ldr r3, [pc, #100] ; (8000b70 ) 8000b0c: 2200 movs r2, #0 8000b0e: 701a strb r2, [r3, #0] repeat = rep = 2000; 8000b10: 4b18 ldr r3, [pc, #96] ; (8000b74 ) 8000b12: f44f 62fa mov.w r2, #2000 ; 0x7d0 8000b16: 801a strh r2, [r3, #0] 8000b18: 4b16 ldr r3, [pc, #88] ; (8000b74 ) 8000b1a: 881a ldrh r2, [r3, #0] 8000b1c: 4b16 ldr r3, [pc, #88] ; (8000b78 ) 8000b1e: 801a strh r2, [r3, #0] return key; //вернуть в главную функцию состояние клавиатуры 8000b20: 687b ldr r3, [r7, #4] 8000b22: e01e b.n 8000b62 } else { if(repeat) 8000b24: 4b14 ldr r3, [pc, #80] ; (8000b78 ) 8000b26: 881b ldrh r3, [r3, #0] 8000b28: b29b uxth r3, r3 8000b2a: 2b00 cmp r3, #0 8000b2c: d001 beq.n 8000b32 return 0; //имитация свободной клавиатуры 8000b2e: 2300 movs r3, #0 8000b30: e017 b.n 8000b62 else { if(rep > 0) 8000b32: 4b10 ldr r3, [pc, #64] ; (8000b74 ) 8000b34: 881b ldrh r3, [r3, #0] 8000b36: 2b00 cmp r3, #0 8000b38: d006 beq.n 8000b48 rep >>= 1; 8000b3a: 4b0e ldr r3, [pc, #56] ; (8000b74 ) 8000b3c: 881b ldrh r3, [r3, #0] 8000b3e: 085b lsrs r3, r3, #1 8000b40: b29a uxth r2, r3 8000b42: 4b0c ldr r3, [pc, #48] ; (8000b74 ) 8000b44: 801a strh r2, [r3, #0] 8000b46: e002 b.n 8000b4e else rep = 100; 8000b48: 4b0a ldr r3, [pc, #40] ; (8000b74 ) 8000b4a: 2264 movs r2, #100 ; 0x64 8000b4c: 801a strh r2, [r3, #0] repeat = rep; 8000b4e: 4b09 ldr r3, [pc, #36] ; (8000b74 ) 8000b50: 881a ldrh r2, [r3, #0] 8000b52: 4b09 ldr r3, [pc, #36] ; (8000b78 ) 8000b54: 801a strh r2, [r3, #0] if(key == KEY_PW) 8000b56: 687b ldr r3, [r7, #4] 8000b58: 2b01 cmp r3, #1 8000b5a: d101 bne.n 8000b60 return 0; 8000b5c: 2300 movs r3, #0 8000b5e: e000 b.n 8000b62 return key; 8000b60: 687b ldr r3, [r7, #4] } } } } 8000b62: 4618 mov r0, r3 8000b64: 3708 adds r7, #8 8000b66: 46bd mov sp, r7 8000b68: bd80 pop {r7, pc} 8000b6a: bf00 nop 8000b6c: 200209e8 .word 0x200209e8 8000b70: 20020012 .word 0x20020012 8000b74: 20020014 .word 0x20020014 8000b78: 200209da .word 0x200209da 08000b7c : void keyIns(void) { 8000b7c: b580 push {r7, lr} 8000b7e: b09e sub sp, #120 ; 0x78 8000b80: af00 add r7, sp, #0 volatile uint8_t idt, iet, ies, ied, iee, ikd, iks, ikt; uint16_t multA_u16, multB_u16, dX, dXold, MaxLevel; char string[40], str[40]; float32_t f, fl; uint32_t Year, Month, Day, Hour, Min, Sec; float32_t fa[3] = {0, 0, 0}; 8000b82: f04f 0300 mov.w r3, #0 8000b86: 60fb str r3, [r7, #12] 8000b88: f04f 0300 mov.w r3, #0 8000b8c: 613b str r3, [r7, #16] 8000b8e: f04f 0300 mov.w r3, #0 8000b92: 617b str r3, [r7, #20] float32_t ff[3] = {0, 0, 0}; 8000b94: f04f 0300 mov.w r3, #0 8000b98: 603b str r3, [r7, #0] 8000b9a: f04f 0300 mov.w r3, #0 8000b9e: 607b str r3, [r7, #4] 8000ba0: f04f 0300 mov.w r3, #0 8000ba4: 60bb str r3, [r7, #8] uint8_t tmp8; uint16_t last_val, last_iin; key = KEY_STATE; 8000ba6: 4bbc ldr r3, [pc, #752] ; (8000e98 ) 8000ba8: 681b ldr r3, [r3, #0] 8000baa: 677b str r3, [r7, #116] ; 0x74 KEY_STATE = 0; 8000bac: 4bba ldr r3, [pc, #744] ; (8000e98 ) 8000bae: 2200 movs r2, #0 8000bb0: 601a str r2, [r3, #0] if(key) 8000bb2: 6f7b ldr r3, [r7, #116] ; 0x74 8000bb4: 2b00 cmp r3, #0 8000bb6: f001 835f beq.w 8002278 { if(DrawStatus) 8000bba: 4bb8 ldr r3, [pc, #736] ; (8000e9c ) 8000bbc: 781b ldrb r3, [r3, #0] 8000bbe: b2db uxtb r3, r3 8000bc0: 2b00 cmp r3, #0 8000bc2: d00a beq.n 8000bda { DrawStatus = false; 8000bc4: 4bb5 ldr r3, [pc, #724] ; (8000e9c ) 8000bc6: 2200 movs r2, #0 8000bc8: 701a strb r2, [r3, #0] timerStatus = 0; 8000bca: 4bb5 ldr r3, [pc, #724] ; (8000ea0 ) 8000bcc: 2200 movs r2, #0 8000bce: 801a strh r2, [r3, #0] STATUS = AP_OK; 8000bd0: 4bb4 ldr r3, [pc, #720] ; (8000ea4 ) 8000bd2: 2200 movs r2, #0 8000bd4: 601a str r2, [r3, #0] 8000bd6: f001 bb4f b.w 8002278 return; } switch(key) 8000bda: 6f7b ldr r3, [r7, #116] ; 0x74 8000bdc: 3b01 subs r3, #1 8000bde: 2b1f cmp r3, #31 8000be0: f201 834a bhi.w 8002278 8000be4: a201 add r2, pc, #4 ; (adr r2, 8000bec ) 8000be6: f852 f023 ldr.w pc, [r2, r3, lsl #2] 8000bea: bf00 nop 8000bec: 0800221b .word 0x0800221b 8000bf0: 08000c6d .word 0x08000c6d 8000bf4: 08002279 .word 0x08002279 8000bf8: 0800156f .word 0x0800156f 8000bfc: 08002279 .word 0x08002279 8000c00: 08002279 .word 0x08002279 8000c04: 08002279 .word 0x08002279 8000c08: 08002279 .word 0x08002279 8000c0c: 08002279 .word 0x08002279 8000c10: 08002279 .word 0x08002279 8000c14: 08002279 .word 0x08002279 8000c18: 08002279 .word 0x08002279 8000c1c: 08002279 .word 0x08002279 8000c20: 08002279 .word 0x08002279 8000c24: 08002279 .word 0x08002279 8000c28: 08002279 .word 0x08002279 8000c2c: 08002279 .word 0x08002279 8000c30: 08002279 .word 0x08002279 8000c34: 08002279 .word 0x08002279 8000c38: 08002279 .word 0x08002279 8000c3c: 08002279 .word 0x08002279 8000c40: 08002279 .word 0x08002279 8000c44: 08002279 .word 0x08002279 8000c48: 08002279 .word 0x08002279 8000c4c: 08002279 .word 0x08002279 8000c50: 08002279 .word 0x08002279 8000c54: 08002279 .word 0x08002279 8000c58: 08002279 .word 0x08002279 8000c5c: 08002279 .word 0x08002279 8000c60: 08002279 .word 0x08002279 8000c64: 08002279 .word 0x08002279 8000c68: 08001ca9 .word 0x08001ca9 { case KEY_UP://TODO KEY UP { if(menu == OPTIONS) 8000c6c: 4b8e ldr r3, [pc, #568] ; (8000ea8 ) 8000c6e: 781b ldrb r3, [r3, #0] 8000c70: b2db uxtb r3, r3 8000c72: 2b19 cmp r3, #25 8000c74: d136 bne.n 8000ce4 { if(!focused) 8000c76: 4b8d ldr r3, [pc, #564] ; (8000eac ) 8000c78: 781b ldrb r3, [r3, #0] 8000c7a: b2db uxtb r3, r3 8000c7c: f083 0301 eor.w r3, r3, #1 8000c80: b2db uxtb r3, r3 8000c82: 2b00 cmp r3, #0 8000c84: d01c beq.n 8000cc0 { if(menupos == Back) menupos = PowerOff; 8000c86: 4b8a ldr r3, [pc, #552] ; (8000eb0 ) 8000c88: 781b ldrb r3, [r3, #0] 8000c8a: b2db uxtb r3, r3 8000c8c: 2bff cmp r3, #255 ; 0xff 8000c8e: d104 bne.n 8000c9a 8000c90: 4b87 ldr r3, [pc, #540] ; (8000eb0 ) 8000c92: 2202 movs r2, #2 8000c94: 701a strb r2, [r3, #0] if(menupos == Set_100) menupos = Set100; } } } break; 8000c96: f001 bae8 b.w 800226a else if(menupos == Inputs) menupos = Back; 8000c9a: 4b85 ldr r3, [pc, #532] ; (8000eb0 ) 8000c9c: 781b ldrb r3, [r3, #0] 8000c9e: b2db uxtb r3, r3 8000ca0: 2b00 cmp r3, #0 8000ca2: d104 bne.n 8000cae 8000ca4: 4b82 ldr r3, [pc, #520] ; (8000eb0 ) 8000ca6: 22ff movs r2, #255 ; 0xff 8000ca8: 701a strb r2, [r3, #0] break; 8000caa: f001 bade b.w 800226a else menupos--; 8000cae: 4b80 ldr r3, [pc, #512] ; (8000eb0 ) 8000cb0: 781b ldrb r3, [r3, #0] 8000cb2: b2db uxtb r3, r3 8000cb4: 3b01 subs r3, #1 8000cb6: b2da uxtb r2, r3 8000cb8: 4b7d ldr r3, [pc, #500] ; (8000eb0 ) 8000cba: 701a strb r2, [r3, #0] break; 8000cbc: f001 bad5 b.w 800226a if(menupos == Lang) { 8000cc0: 4b7b ldr r3, [pc, #492] ; (8000eb0 ) 8000cc2: 781b ldrb r3, [r3, #0] 8000cc4: b2db uxtb r3, r3 8000cc6: 2b01 cmp r3, #1 8000cc8: f041 82cf bne.w 800226a pardata.LANG ^= 1; 8000ccc: 4b79 ldr r3, [pc, #484] ; (8000eb4 ) 8000cce: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8000cd2: b29b uxth r3, r3 8000cd4: f083 0301 eor.w r3, r3, #1 8000cd8: b29a uxth r2, r3 8000cda: 4b76 ldr r3, [pc, #472] ; (8000eb4 ) 8000cdc: f8a3 2206 strh.w r2, [r3, #518] ; 0x206 break; 8000ce0: f001 bac3 b.w 800226a if(menu == SETTINGS) 8000ce4: 4b70 ldr r3, [pc, #448] ; (8000ea8 ) 8000ce6: 781b ldrb r3, [r3, #0] 8000ce8: b2db uxtb r3, r3 8000cea: 2b2b cmp r3, #43 ; 0x2b 8000cec: f040 81d0 bne.w 8001090 if(menupos == Back) 8000cf0: 4b6f ldr r3, [pc, #444] ; (8000eb0 ) 8000cf2: 781b ldrb r3, [r3, #0] 8000cf4: b2db uxtb r3, r3 8000cf6: 2bff cmp r3, #255 ; 0xff 8000cf8: d104 bne.n 8000d04 menupos = Val_4; 8000cfa: 4b6d ldr r3, [pc, #436] ; (8000eb0 ) 8000cfc: 2219 movs r2, #25 8000cfe: 701a strb r2, [r3, #0] break; 8000d00: f001 bab3 b.w 800226a if(menupos == Val_4) 8000d04: 4b6a ldr r3, [pc, #424] ; (8000eb0 ) 8000d06: 781b ldrb r3, [r3, #0] 8000d08: b2db uxtb r3, r3 8000d0a: 2b19 cmp r3, #25 8000d0c: d155 bne.n 8000dba if(!focused) 8000d0e: 4b67 ldr r3, [pc, #412] ; (8000eac ) 8000d10: 781b ldrb r3, [r3, #0] 8000d12: b2db uxtb r3, r3 8000d14: f083 0301 eor.w r3, r3, #1 8000d18: b2db uxtb r3, r3 8000d1a: 2b00 cmp r3, #0 8000d1c: d004 beq.n 8000d28 menupos = Sens_4; 8000d1e: 4b64 ldr r3, [pc, #400] ; (8000eb0 ) 8000d20: 2218 movs r2, #24 8000d22: 701a strb r2, [r3, #0] break; 8000d24: f001 baa1 b.w 800226a last_iin = pardata.amplif[Ch4].IIN; 8000d28: 4b62 ldr r3, [pc, #392] ; (8000eb4 ) 8000d2a: f8b3 3060 ldrh.w r3, [r3, #96] ; 0x60 8000d2e: f8a7 3072 strh.w r3, [r7, #114] ; 0x72 last_val = pardata.amplif[Ch4].VAL; 8000d32: 4b60 ldr r3, [pc, #384] ; (8000eb4 ) 8000d34: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 8000d38: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 if(pardata.amplif[Ch4].VAL < pQ_mV) 8000d3c: 4b5d ldr r3, [pc, #372] ; (8000eb4 ) 8000d3e: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 8000d42: b29b uxth r3, r3 8000d44: 2b06 cmp r3, #6 8000d46: d81d bhi.n 8000d84 if(pardata.amplif[Ch4].IIN < ICP) 8000d48: 4b5a ldr r3, [pc, #360] ; (8000eb4 ) 8000d4a: f8b3 3060 ldrh.w r3, [r3, #96] ; 0x60 8000d4e: b29b uxth r3, r3 8000d50: 2b00 cmp r3, #0 8000d52: d109 bne.n 8000d68 pardata.amplif[Ch4].IIN++; 8000d54: 4b57 ldr r3, [pc, #348] ; (8000eb4 ) 8000d56: f8b3 3060 ldrh.w r3, [r3, #96] ; 0x60 8000d5a: b29b uxth r3, r3 8000d5c: 3301 adds r3, #1 8000d5e: b29a uxth r2, r3 8000d60: 4b54 ldr r3, [pc, #336] ; (8000eb4 ) 8000d62: f8a3 2060 strh.w r2, [r3, #96] ; 0x60 8000d66: e015 b.n 8000d94 pardata.amplif[Ch4].IIN = CHARGE; 8000d68: 4b52 ldr r3, [pc, #328] ; (8000eb4 ) 8000d6a: 2200 movs r2, #0 8000d6c: f8a3 2060 strh.w r2, [r3, #96] ; 0x60 pardata.amplif[Ch4].VAL++; 8000d70: 4b50 ldr r3, [pc, #320] ; (8000eb4 ) 8000d72: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 8000d76: b29b uxth r3, r3 8000d78: 3301 adds r3, #1 8000d7a: b29a uxth r2, r3 8000d7c: 4b4d ldr r3, [pc, #308] ; (8000eb4 ) 8000d7e: f8a3 2072 strh.w r2, [r3, #114] ; 0x72 8000d82: e007 b.n 8000d94 pardata.amplif[Ch4].IIN = CHARGE; 8000d84: 4b4b ldr r3, [pc, #300] ; (8000eb4 ) 8000d86: 2200 movs r2, #0 8000d88: f8a3 2060 strh.w r2, [r3, #96] ; 0x60 pardata.amplif[Ch4].VAL = Accel; 8000d8c: 4b49 ldr r3, [pc, #292] ; (8000eb4 ) 8000d8e: 2200 movs r2, #0 8000d90: f8a3 2072 strh.w r2, [r3, #114] ; 0x72 if(WriteChannel(Ch4)) 8000d94: 2003 movs r0, #3 8000d96: f00f fbd9 bl 801054c 8000d9a: 4603 mov r3, r0 8000d9c: 2b00 cmp r3, #0 8000d9e: f001 8264 beq.w 800226a pardata.amplif[Ch4].IIN = last_iin; 8000da2: 4a44 ldr r2, [pc, #272] ; (8000eb4 ) 8000da4: f8b7 3072 ldrh.w r3, [r7, #114] ; 0x72 8000da8: f8a2 3060 strh.w r3, [r2, #96] ; 0x60 pardata.amplif[Ch4].VAL = last_val; 8000dac: 4a41 ldr r2, [pc, #260] ; (8000eb4 ) 8000dae: f8b7 3070 ldrh.w r3, [r7, #112] ; 0x70 8000db2: f8a2 3072 strh.w r3, [r2, #114] ; 0x72 break; 8000db6: f001 ba58 b.w 800226a if(menupos == Sens_4) 8000dba: 4b3d ldr r3, [pc, #244] ; (8000eb0 ) 8000dbc: 781b ldrb r3, [r3, #0] 8000dbe: b2db uxtb r3, r3 8000dc0: 2b18 cmp r3, #24 8000dc2: d104 bne.n 8000dce menupos = Val_3; 8000dc4: 4b3a ldr r3, [pc, #232] ; (8000eb0 ) 8000dc6: 2211 movs r2, #17 8000dc8: 701a strb r2, [r3, #0] break; 8000dca: f001 ba4e b.w 800226a if(menupos == Val_3) 8000dce: 4b38 ldr r3, [pc, #224] ; (8000eb0 ) 8000dd0: 781b ldrb r3, [r3, #0] 8000dd2: b2db uxtb r3, r3 8000dd4: 2b11 cmp r3, #17 8000dd6: d155 bne.n 8000e84 if(!focused) 8000dd8: 4b34 ldr r3, [pc, #208] ; (8000eac ) 8000dda: 781b ldrb r3, [r3, #0] 8000ddc: b2db uxtb r3, r3 8000dde: f083 0301 eor.w r3, r3, #1 8000de2: b2db uxtb r3, r3 8000de4: 2b00 cmp r3, #0 8000de6: d004 beq.n 8000df2 menupos = Sens_3; 8000de8: 4b31 ldr r3, [pc, #196] ; (8000eb0 ) 8000dea: 2210 movs r2, #16 8000dec: 701a strb r2, [r3, #0] break; 8000dee: f001 ba3c b.w 800226a last_iin = pardata.amplif[Ch3].IIN; 8000df2: 4b30 ldr r3, [pc, #192] ; (8000eb4 ) 8000df4: f8b3 3040 ldrh.w r3, [r3, #64] ; 0x40 8000df8: f8a7 3072 strh.w r3, [r7, #114] ; 0x72 last_val = pardata.amplif[Ch3].VAL; 8000dfc: 4b2d ldr r3, [pc, #180] ; (8000eb4 ) 8000dfe: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8000e02: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 if(pardata.amplif[Ch3].VAL < pQ_mV) 8000e06: 4b2b ldr r3, [pc, #172] ; (8000eb4 ) 8000e08: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8000e0c: b29b uxth r3, r3 8000e0e: 2b06 cmp r3, #6 8000e10: d81d bhi.n 8000e4e if(pardata.amplif[Ch3].IIN < ICP) 8000e12: 4b28 ldr r3, [pc, #160] ; (8000eb4 ) 8000e14: f8b3 3040 ldrh.w r3, [r3, #64] ; 0x40 8000e18: b29b uxth r3, r3 8000e1a: 2b00 cmp r3, #0 8000e1c: d109 bne.n 8000e32 pardata.amplif[Ch3].IIN++; 8000e1e: 4b25 ldr r3, [pc, #148] ; (8000eb4 ) 8000e20: f8b3 3040 ldrh.w r3, [r3, #64] ; 0x40 8000e24: b29b uxth r3, r3 8000e26: 3301 adds r3, #1 8000e28: b29a uxth r2, r3 8000e2a: 4b22 ldr r3, [pc, #136] ; (8000eb4 ) 8000e2c: f8a3 2040 strh.w r2, [r3, #64] ; 0x40 8000e30: e015 b.n 8000e5e pardata.amplif[Ch3].IIN = CHARGE; 8000e32: 4b20 ldr r3, [pc, #128] ; (8000eb4 ) 8000e34: 2200 movs r2, #0 8000e36: f8a3 2040 strh.w r2, [r3, #64] ; 0x40 pardata.amplif[Ch3].VAL++; 8000e3a: 4b1e ldr r3, [pc, #120] ; (8000eb4 ) 8000e3c: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8000e40: b29b uxth r3, r3 8000e42: 3301 adds r3, #1 8000e44: b29a uxth r2, r3 8000e46: 4b1b ldr r3, [pc, #108] ; (8000eb4 ) 8000e48: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 8000e4c: e007 b.n 8000e5e pardata.amplif[Ch3].IIN = CHARGE; 8000e4e: 4b19 ldr r3, [pc, #100] ; (8000eb4 ) 8000e50: 2200 movs r2, #0 8000e52: f8a3 2040 strh.w r2, [r3, #64] ; 0x40 pardata.amplif[Ch3].VAL = Accel; 8000e56: 4b17 ldr r3, [pc, #92] ; (8000eb4 ) 8000e58: 2200 movs r2, #0 8000e5a: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 if(WriteChannel(Ch3)) 8000e5e: 2002 movs r0, #2 8000e60: f00f fb74 bl 801054c 8000e64: 4603 mov r3, r0 8000e66: 2b00 cmp r3, #0 8000e68: f001 81ff beq.w 800226a pardata.amplif[Ch3].IIN = last_iin; 8000e6c: 4a11 ldr r2, [pc, #68] ; (8000eb4 ) 8000e6e: f8b7 3072 ldrh.w r3, [r7, #114] ; 0x72 8000e72: f8a2 3040 strh.w r3, [r2, #64] ; 0x40 pardata.amplif[Ch3].VAL = last_val; 8000e76: 4a0f ldr r2, [pc, #60] ; (8000eb4 ) 8000e78: f8b7 3070 ldrh.w r3, [r7, #112] ; 0x70 8000e7c: f8a2 3052 strh.w r3, [r2, #82] ; 0x52 break; 8000e80: f001 b9f3 b.w 800226a if(menupos == Sens_3) 8000e84: 4b0a ldr r3, [pc, #40] ; (8000eb0 ) 8000e86: 781b ldrb r3, [r3, #0] 8000e88: b2db uxtb r3, r3 8000e8a: 2b10 cmp r3, #16 8000e8c: d114 bne.n 8000eb8 menupos = Val_2; 8000e8e: 4b08 ldr r3, [pc, #32] ; (8000eb0 ) 8000e90: 2209 movs r2, #9 8000e92: 701a strb r2, [r3, #0] break; 8000e94: f001 b9e9 b.w 800226a 8000e98: 200209e0 .word 0x200209e0 8000e9c: 2006c164 .word 0x2006c164 8000ea0: 2006ba88 .word 0x2006ba88 8000ea4: 2006c154 .word 0x2006c154 8000ea8: 200209d9 .word 0x200209d9 8000eac: 200209e4 .word 0x200209e4 8000eb0: 20020010 .word 0x20020010 8000eb4: 2006bca8 .word 0x2006bca8 if(menupos == Val_2) 8000eb8: 4b9e ldr r3, [pc, #632] ; (8001134 ) 8000eba: 781b ldrb r3, [r3, #0] 8000ebc: b2db uxtb r3, r3 8000ebe: 2b09 cmp r3, #9 8000ec0: d149 bne.n 8000f56 if(!focused) 8000ec2: 4b9d ldr r3, [pc, #628] ; (8001138 ) 8000ec4: 781b ldrb r3, [r3, #0] 8000ec6: b2db uxtb r3, r3 8000ec8: f083 0301 eor.w r3, r3, #1 8000ecc: b2db uxtb r3, r3 8000ece: 2b00 cmp r3, #0 8000ed0: d004 beq.n 8000edc menupos = Sens_2; 8000ed2: 4b98 ldr r3, [pc, #608] ; (8001134 ) 8000ed4: 2208 movs r2, #8 8000ed6: 701a strb r2, [r3, #0] break; 8000ed8: f001 b9c7 b.w 800226a last_iin = pardata.amplif[Ch2].IIN; 8000edc: 4b97 ldr r3, [pc, #604] ; (800113c ) 8000ede: 8c1b ldrh r3, [r3, #32] 8000ee0: f8a7 3072 strh.w r3, [r7, #114] ; 0x72 last_val = pardata.amplif[Ch4].VAL; 8000ee4: 4b95 ldr r3, [pc, #596] ; (800113c ) 8000ee6: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 8000eea: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 if(pardata.amplif[Ch2].VAL < pQ_mV) 8000eee: 4b93 ldr r3, [pc, #588] ; (800113c ) 8000ef0: 8e5b ldrh r3, [r3, #50] ; 0x32 8000ef2: b29b uxth r3, r3 8000ef4: 2b06 cmp r3, #6 8000ef6: d817 bhi.n 8000f28 if(pardata.amplif[Ch2].IIN < ICP) 8000ef8: 4b90 ldr r3, [pc, #576] ; (800113c ) 8000efa: 8c1b ldrh r3, [r3, #32] 8000efc: b29b uxth r3, r3 8000efe: 2b00 cmp r3, #0 8000f00: d107 bne.n 8000f12 pardata.amplif[Ch2].IIN++; 8000f02: 4b8e ldr r3, [pc, #568] ; (800113c ) 8000f04: 8c1b ldrh r3, [r3, #32] 8000f06: b29b uxth r3, r3 8000f08: 3301 adds r3, #1 8000f0a: b29a uxth r2, r3 8000f0c: 4b8b ldr r3, [pc, #556] ; (800113c ) 8000f0e: 841a strh r2, [r3, #32] 8000f10: e010 b.n 8000f34 pardata.amplif[Ch2].IIN = CHARGE; 8000f12: 4b8a ldr r3, [pc, #552] ; (800113c ) 8000f14: 2200 movs r2, #0 8000f16: 841a strh r2, [r3, #32] pardata.amplif[Ch2].VAL++; 8000f18: 4b88 ldr r3, [pc, #544] ; (800113c ) 8000f1a: 8e5b ldrh r3, [r3, #50] ; 0x32 8000f1c: b29b uxth r3, r3 8000f1e: 3301 adds r3, #1 8000f20: b29a uxth r2, r3 8000f22: 4b86 ldr r3, [pc, #536] ; (800113c ) 8000f24: 865a strh r2, [r3, #50] ; 0x32 8000f26: e005 b.n 8000f34 pardata.amplif[Ch2].IIN = CHARGE; 8000f28: 4b84 ldr r3, [pc, #528] ; (800113c ) 8000f2a: 2200 movs r2, #0 8000f2c: 841a strh r2, [r3, #32] pardata.amplif[Ch2].VAL = Accel; 8000f2e: 4b83 ldr r3, [pc, #524] ; (800113c ) 8000f30: 2200 movs r2, #0 8000f32: 865a strh r2, [r3, #50] ; 0x32 if(WriteChannel(Ch2)) 8000f34: 2001 movs r0, #1 8000f36: f00f fb09 bl 801054c 8000f3a: 4603 mov r3, r0 8000f3c: 2b00 cmp r3, #0 8000f3e: f001 8194 beq.w 800226a pardata.amplif[Ch2].IIN = last_iin; 8000f42: 4a7e ldr r2, [pc, #504] ; (800113c ) 8000f44: f8b7 3072 ldrh.w r3, [r7, #114] ; 0x72 8000f48: 8413 strh r3, [r2, #32] pardata.amplif[Ch2].VAL = last_val; 8000f4a: 4a7c ldr r2, [pc, #496] ; (800113c ) 8000f4c: f8b7 3070 ldrh.w r3, [r7, #112] ; 0x70 8000f50: 8653 strh r3, [r2, #50] ; 0x32 break; 8000f52: f001 b98a b.w 800226a if(menupos == Sens_2) 8000f56: 4b77 ldr r3, [pc, #476] ; (8001134 ) 8000f58: 781b ldrb r3, [r3, #0] 8000f5a: b2db uxtb r3, r3 8000f5c: 2b08 cmp r3, #8 8000f5e: d104 bne.n 8000f6a menupos = Val_1; 8000f60: 4b74 ldr r3, [pc, #464] ; (8001134 ) 8000f62: 2201 movs r2, #1 8000f64: 701a strb r2, [r3, #0] break; 8000f66: f001 b980 b.w 800226a if(menupos == Val_1) 8000f6a: 4b72 ldr r3, [pc, #456] ; (8001134 ) 8000f6c: 781b ldrb r3, [r3, #0] 8000f6e: b2db uxtb r3, r3 8000f70: 2b01 cmp r3, #1 8000f72: d148 bne.n 8001006 if(!focused) 8000f74: 4b70 ldr r3, [pc, #448] ; (8001138 ) 8000f76: 781b ldrb r3, [r3, #0] 8000f78: b2db uxtb r3, r3 8000f7a: f083 0301 eor.w r3, r3, #1 8000f7e: b2db uxtb r3, r3 8000f80: 2b00 cmp r3, #0 8000f82: d004 beq.n 8000f8e menupos = Sens_1; 8000f84: 4b6b ldr r3, [pc, #428] ; (8001134 ) 8000f86: 2200 movs r2, #0 8000f88: 701a strb r2, [r3, #0] break; 8000f8a: f001 b96e b.w 800226a last_iin = pardata.amplif[Ch1].IIN; 8000f8e: 4b6b ldr r3, [pc, #428] ; (800113c ) 8000f90: 881b ldrh r3, [r3, #0] 8000f92: f8a7 3072 strh.w r3, [r7, #114] ; 0x72 last_val = pardata.amplif[Ch1].VAL; 8000f96: 4b69 ldr r3, [pc, #420] ; (800113c ) 8000f98: 8a5b ldrh r3, [r3, #18] 8000f9a: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 if(pardata.amplif[Ch1].VAL < pQ_mV) 8000f9e: 4b67 ldr r3, [pc, #412] ; (800113c ) 8000fa0: 8a5b ldrh r3, [r3, #18] 8000fa2: b29b uxth r3, r3 8000fa4: 2b06 cmp r3, #6 8000fa6: d817 bhi.n 8000fd8 if(pardata.amplif[Ch1].IIN < ICP) 8000fa8: 4b64 ldr r3, [pc, #400] ; (800113c ) 8000faa: 881b ldrh r3, [r3, #0] 8000fac: b29b uxth r3, r3 8000fae: 2b00 cmp r3, #0 8000fb0: d107 bne.n 8000fc2 pardata.amplif[Ch1].IIN++; 8000fb2: 4b62 ldr r3, [pc, #392] ; (800113c ) 8000fb4: 881b ldrh r3, [r3, #0] 8000fb6: b29b uxth r3, r3 8000fb8: 3301 adds r3, #1 8000fba: b29a uxth r2, r3 8000fbc: 4b5f ldr r3, [pc, #380] ; (800113c ) 8000fbe: 801a strh r2, [r3, #0] 8000fc0: e010 b.n 8000fe4 pardata.amplif[Ch1].IIN = CHARGE; 8000fc2: 4b5e ldr r3, [pc, #376] ; (800113c ) 8000fc4: 2200 movs r2, #0 8000fc6: 801a strh r2, [r3, #0] pardata.amplif[Ch1].VAL++; 8000fc8: 4b5c ldr r3, [pc, #368] ; (800113c ) 8000fca: 8a5b ldrh r3, [r3, #18] 8000fcc: b29b uxth r3, r3 8000fce: 3301 adds r3, #1 8000fd0: b29a uxth r2, r3 8000fd2: 4b5a ldr r3, [pc, #360] ; (800113c ) 8000fd4: 825a strh r2, [r3, #18] 8000fd6: e005 b.n 8000fe4 pardata.amplif[Ch1].IIN = CHARGE; 8000fd8: 4b58 ldr r3, [pc, #352] ; (800113c ) 8000fda: 2200 movs r2, #0 8000fdc: 801a strh r2, [r3, #0] pardata.amplif[Ch1].VAL = Accel; 8000fde: 4b57 ldr r3, [pc, #348] ; (800113c ) 8000fe0: 2200 movs r2, #0 8000fe2: 825a strh r2, [r3, #18] if(WriteChannel(Ch1)) 8000fe4: 2000 movs r0, #0 8000fe6: f00f fab1 bl 801054c 8000fea: 4603 mov r3, r0 8000fec: 2b00 cmp r3, #0 8000fee: f001 813c beq.w 800226a pardata.amplif[Ch1].IIN = last_iin; 8000ff2: 4a52 ldr r2, [pc, #328] ; (800113c ) 8000ff4: f8b7 3072 ldrh.w r3, [r7, #114] ; 0x72 8000ff8: 8013 strh r3, [r2, #0] pardata.amplif[Ch1].VAL = last_val; 8000ffa: 4a50 ldr r2, [pc, #320] ; (800113c ) 8000ffc: f8b7 3070 ldrh.w r3, [r7, #112] ; 0x70 8001000: 8253 strh r3, [r2, #18] break; 8001002: f001 b932 b.w 800226a if(menupos == Sens_1) 8001006: 4b4b ldr r3, [pc, #300] ; (8001134 ) 8001008: 781b ldrb r3, [r3, #0] 800100a: b2db uxtb r3, r3 800100c: 2b00 cmp r3, #0 800100e: d104 bne.n 800101a menupos = Back; 8001010: 4b48 ldr r3, [pc, #288] ; (8001134 ) 8001012: 22ff movs r2, #255 ; 0xff 8001014: 701a strb r2, [r3, #0] break; 8001016: f001 b928 b.w 800226a if(menupos >= Kikdt_1 && menupos <= Kpt_1) ACTIVE_CHANNEL = Ch1; 800101a: 4b46 ldr r3, [pc, #280] ; (8001134 ) 800101c: 781b ldrb r3, [r3, #0] 800101e: b2db uxtb r3, r3 8001020: 2b01 cmp r3, #1 8001022: d908 bls.n 8001036 8001024: 4b43 ldr r3, [pc, #268] ; (8001134 ) 8001026: 781b ldrb r3, [r3, #0] 8001028: b2db uxtb r3, r3 800102a: 2b07 cmp r3, #7 800102c: d803 bhi.n 8001036 800102e: 4b44 ldr r3, [pc, #272] ; (8001140 ) 8001030: 2200 movs r2, #0 8001032: 601a str r2, [r3, #0] 8001034: e028 b.n 8001088 else if(menupos >= Kikdt_2 && menupos <= Kpt_2) ACTIVE_CHANNEL = Ch2; 8001036: 4b3f ldr r3, [pc, #252] ; (8001134 ) 8001038: 781b ldrb r3, [r3, #0] 800103a: b2db uxtb r3, r3 800103c: 2b09 cmp r3, #9 800103e: d908 bls.n 8001052 8001040: 4b3c ldr r3, [pc, #240] ; (8001134 ) 8001042: 781b ldrb r3, [r3, #0] 8001044: b2db uxtb r3, r3 8001046: 2b0f cmp r3, #15 8001048: d803 bhi.n 8001052 800104a: 4b3d ldr r3, [pc, #244] ; (8001140 ) 800104c: 2201 movs r2, #1 800104e: 601a str r2, [r3, #0] 8001050: e01a b.n 8001088 else if(menupos >= Kikdt_3 && menupos <= Kpt_3) ACTIVE_CHANNEL = Ch3; 8001052: 4b38 ldr r3, [pc, #224] ; (8001134 ) 8001054: 781b ldrb r3, [r3, #0] 8001056: b2db uxtb r3, r3 8001058: 2b11 cmp r3, #17 800105a: d908 bls.n 800106e 800105c: 4b35 ldr r3, [pc, #212] ; (8001134 ) 800105e: 781b ldrb r3, [r3, #0] 8001060: b2db uxtb r3, r3 8001062: 2b17 cmp r3, #23 8001064: d803 bhi.n 800106e 8001066: 4b36 ldr r3, [pc, #216] ; (8001140 ) 8001068: 2202 movs r2, #2 800106a: 601a str r2, [r3, #0] 800106c: e00c b.n 8001088 else if(menupos >= Kikdt_4 && menupos <= Kpt_4) ACTIVE_CHANNEL = Ch4; 800106e: 4b31 ldr r3, [pc, #196] ; (8001134 ) 8001070: 781b ldrb r3, [r3, #0] 8001072: b2db uxtb r3, r3 8001074: 2b19 cmp r3, #25 8001076: d907 bls.n 8001088 8001078: 4b2e ldr r3, [pc, #184] ; (8001134 ) 800107a: 781b ldrb r3, [r3, #0] 800107c: b2db uxtb r3, r3 800107e: 2b1f cmp r3, #31 8001080: d802 bhi.n 8001088 8001082: 4b2f ldr r3, [pc, #188] ; (8001140 ) 8001084: 2203 movs r2, #3 8001086: 601a str r2, [r3, #0] DoKeyUP(); 8001088: f001 fe38 bl 8002cfc break; 800108c: f001 b8ed b.w 800226a if(menu == MAIN) 8001090: 4b2c ldr r3, [pc, #176] ; (8001144 ) 8001092: 781b ldrb r3, [r3, #0] 8001094: b2db uxtb r3, r3 8001096: 2b00 cmp r3, #0 8001098: f040 820c bne.w 80014b4 if(CNT_CHANNELS < 5) 800109c: 4b2a ldr r3, [pc, #168] ; (8001148 ) 800109e: 681b ldr r3, [r3, #0] 80010a0: 2b04 cmp r3, #4 80010a2: f201 80e2 bhi.w 800226a if(ACTIVE_CHANNEL == Ch1) 80010a6: 4b26 ldr r3, [pc, #152] ; (8001140 ) 80010a8: 681b ldr r3, [r3, #0] 80010aa: 2b00 cmp r3, #0 80010ac: f040 8084 bne.w 80011b8 if(menupos == Hp) 80010b0: 4b20 ldr r3, [pc, #128] ; (8001134 ) 80010b2: 781b ldrb r3, [r3, #0] 80010b4: b2db uxtb r3, r3 80010b6: 2b00 cmp r3, #0 80010b8: d17a bne.n 80011b0 if(focused) 80010ba: 4b1f ldr r3, [pc, #124] ; (8001138 ) 80010bc: 781b ldrb r3, [r3, #0] 80010be: b2db uxtb r3, r3 80010c0: 2b00 cmp r3, #0 80010c2: d043 beq.n 800114c if(pardata.amplif[ACTIVE_CHANNEL].IFV < Hp10) 80010c4: 4b1e ldr r3, [pc, #120] ; (8001140 ) 80010c6: 681b ldr r3, [r3, #0] 80010c8: 4a1c ldr r2, [pc, #112] ; (800113c ) 80010ca: 015b lsls r3, r3, #5 80010cc: 4413 add r3, r2 80010ce: 3302 adds r3, #2 80010d0: 881b ldrh r3, [r3, #0] 80010d2: b29b uxth r3, r3 80010d4: 2b03 cmp r3, #3 80010d6: f201 80c8 bhi.w 800226a pardata.amplif[ACTIVE_CHANNEL].IFV++; 80010da: 4b19 ldr r3, [pc, #100] ; (8001140 ) 80010dc: 681b ldr r3, [r3, #0] 80010de: 4917 ldr r1, [pc, #92] ; (800113c ) 80010e0: 015a lsls r2, r3, #5 80010e2: 440a add r2, r1 80010e4: 3202 adds r2, #2 80010e6: 8812 ldrh r2, [r2, #0] 80010e8: b292 uxth r2, r2 80010ea: 3201 adds r2, #1 80010ec: b291 uxth r1, r2 80010ee: 4a13 ldr r2, [pc, #76] ; (800113c ) 80010f0: 015b lsls r3, r3, #5 80010f2: 4413 add r3, r2 80010f4: 3302 adds r3, #2 80010f6: 460a mov r2, r1 80010f8: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 80010fa: 4b11 ldr r3, [pc, #68] ; (8001140 ) 80010fc: 681b ldr r3, [r3, #0] 80010fe: b2db uxtb r3, r3 8001100: 4618 mov r0, r3 8001102: f00f fa23 bl 801054c 8001106: 4603 mov r3, r0 8001108: 2b00 cmp r3, #0 800110a: f001 80ae beq.w 800226a pardata.amplif[ACTIVE_CHANNEL].IFV--; 800110e: 4b0c ldr r3, [pc, #48] ; (8001140 ) 8001110: 681b ldr r3, [r3, #0] 8001112: 490a ldr r1, [pc, #40] ; (800113c ) 8001114: 015a lsls r2, r3, #5 8001116: 440a add r2, r1 8001118: 3202 adds r2, #2 800111a: 8812 ldrh r2, [r2, #0] 800111c: b292 uxth r2, r2 800111e: 3a01 subs r2, #1 8001120: b291 uxth r1, r2 8001122: 4a06 ldr r2, [pc, #24] ; (800113c ) 8001124: 015b lsls r3, r3, #5 8001126: 4413 add r3, r2 8001128: 3302 adds r3, #2 800112a: 460a mov r2, r1 800112c: 801a strh r2, [r3, #0] break; 800112e: f001 b89c b.w 800226a 8001132: bf00 nop 8001134: 20020010 .word 0x20020010 8001138: 200209e4 .word 0x200209e4 800113c: 2006bca8 .word 0x2006bca8 8001140: 2006ba68 .word 0x2006ba68 8001144: 200209d9 .word 0x200209d9 8001148: 2006ba6c .word 0x2006ba6c ACTIVE_CHANNEL = Ch4; 800114c: 4b96 ldr r3, [pc, #600] ; (80013a8 ) 800114e: 2203 movs r2, #3 8001150: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001152: 4b95 ldr r3, [pc, #596] ; (80013a8 ) 8001154: 681b ldr r3, [r3, #0] 8001156: 2201 movs r2, #1 8001158: fa02 f303 lsl.w r3, r2, r3 800115c: 461a mov r2, r3 800115e: 4b93 ldr r3, [pc, #588] ; (80013ac ) 8001160: 681b ldr r3, [r3, #0] 8001162: 4013 ands r3, r2 8001164: 2b00 cmp r3, #0 8001166: d11e bne.n 80011a6 ACTIVE_CHANNEL = Ch3; 8001168: 4b8f ldr r3, [pc, #572] ; (80013a8 ) 800116a: 2202 movs r2, #2 800116c: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 800116e: 4b8e ldr r3, [pc, #568] ; (80013a8 ) 8001170: 681b ldr r3, [r3, #0] 8001172: 2201 movs r2, #1 8001174: fa02 f303 lsl.w r3, r2, r3 8001178: 461a mov r2, r3 800117a: 4b8c ldr r3, [pc, #560] ; (80013ac ) 800117c: 681b ldr r3, [r3, #0] 800117e: 4013 ands r3, r2 8001180: 2b00 cmp r3, #0 8001182: d110 bne.n 80011a6 ACTIVE_CHANNEL = Ch2; 8001184: 4b88 ldr r3, [pc, #544] ; (80013a8 ) 8001186: 2201 movs r2, #1 8001188: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 800118a: 4b87 ldr r3, [pc, #540] ; (80013a8 ) 800118c: 681b ldr r3, [r3, #0] 800118e: 2201 movs r2, #1 8001190: fa02 f303 lsl.w r3, r2, r3 8001194: 461a mov r2, r3 8001196: 4b85 ldr r3, [pc, #532] ; (80013ac ) 8001198: 681b ldr r3, [r3, #0] 800119a: 4013 ands r3, r2 800119c: 2b00 cmp r3, #0 800119e: d102 bne.n 80011a6 ACTIVE_CHANNEL = Ch1; 80011a0: 4b81 ldr r3, [pc, #516] ; (80013a8 ) 80011a2: 2200 movs r2, #0 80011a4: 601a str r2, [r3, #0] menupos = Out; 80011a6: 4b82 ldr r3, [pc, #520] ; (80013b0 ) 80011a8: 2202 movs r2, #2 80011aa: 701a strb r2, [r3, #0] break; 80011ac: f001 b85d b.w 800226a SetUP(); 80011b0: f001 f870 bl 8002294 break; 80011b4: f001 b859 b.w 800226a if(ACTIVE_CHANNEL == Ch2) 80011b8: 4b7b ldr r3, [pc, #492] ; (80013a8 ) 80011ba: 681b ldr r3, [r3, #0] 80011bc: 2b01 cmp r3, #1 80011be: d176 bne.n 80012ae if(menupos == Hp) 80011c0: 4b7b ldr r3, [pc, #492] ; (80013b0 ) 80011c2: 781b ldrb r3, [r3, #0] 80011c4: b2db uxtb r3, r3 80011c6: 2b00 cmp r3, #0 80011c8: d16d bne.n 80012a6 if(focused) 80011ca: 4b7a ldr r3, [pc, #488] ; (80013b4 ) 80011cc: 781b ldrb r3, [r3, #0] 80011ce: b2db uxtb r3, r3 80011d0: 2b00 cmp r3, #0 80011d2: d036 beq.n 8001242 if(pardata.amplif[ACTIVE_CHANNEL].IFV < Hp10) 80011d4: 4b74 ldr r3, [pc, #464] ; (80013a8 ) 80011d6: 681b ldr r3, [r3, #0] 80011d8: 4a77 ldr r2, [pc, #476] ; (80013b8 ) 80011da: 015b lsls r3, r3, #5 80011dc: 4413 add r3, r2 80011de: 3302 adds r3, #2 80011e0: 881b ldrh r3, [r3, #0] 80011e2: b29b uxth r3, r3 80011e4: 2b03 cmp r3, #3 80011e6: f201 8040 bhi.w 800226a pardata.amplif[ACTIVE_CHANNEL].IFV++; 80011ea: 4b6f ldr r3, [pc, #444] ; (80013a8 ) 80011ec: 681b ldr r3, [r3, #0] 80011ee: 4972 ldr r1, [pc, #456] ; (80013b8 ) 80011f0: 015a lsls r2, r3, #5 80011f2: 440a add r2, r1 80011f4: 3202 adds r2, #2 80011f6: 8812 ldrh r2, [r2, #0] 80011f8: b292 uxth r2, r2 80011fa: 3201 adds r2, #1 80011fc: b291 uxth r1, r2 80011fe: 4a6e ldr r2, [pc, #440] ; (80013b8 ) 8001200: 015b lsls r3, r3, #5 8001202: 4413 add r3, r2 8001204: 3302 adds r3, #2 8001206: 460a mov r2, r1 8001208: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 800120a: 4b67 ldr r3, [pc, #412] ; (80013a8 ) 800120c: 681b ldr r3, [r3, #0] 800120e: b2db uxtb r3, r3 8001210: 4618 mov r0, r3 8001212: f00f f99b bl 801054c 8001216: 4603 mov r3, r0 8001218: 2b00 cmp r3, #0 800121a: f001 8026 beq.w 800226a pardata.amplif[ACTIVE_CHANNEL].IFV--; 800121e: 4b62 ldr r3, [pc, #392] ; (80013a8 ) 8001220: 681b ldr r3, [r3, #0] 8001222: 4965 ldr r1, [pc, #404] ; (80013b8 ) 8001224: 015a lsls r2, r3, #5 8001226: 440a add r2, r1 8001228: 3202 adds r2, #2 800122a: 8812 ldrh r2, [r2, #0] 800122c: b292 uxth r2, r2 800122e: 3a01 subs r2, #1 8001230: b291 uxth r1, r2 8001232: 4a61 ldr r2, [pc, #388] ; (80013b8 ) 8001234: 015b lsls r3, r3, #5 8001236: 4413 add r3, r2 8001238: 3302 adds r3, #2 800123a: 460a mov r2, r1 800123c: 801a strh r2, [r3, #0] break; 800123e: f001 b814 b.w 800226a ACTIVE_CHANNEL = Ch1; 8001242: 4b59 ldr r3, [pc, #356] ; (80013a8 ) 8001244: 2200 movs r2, #0 8001246: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001248: 4b57 ldr r3, [pc, #348] ; (80013a8 ) 800124a: 681b ldr r3, [r3, #0] 800124c: 2201 movs r2, #1 800124e: fa02 f303 lsl.w r3, r2, r3 8001252: 461a mov r2, r3 8001254: 4b55 ldr r3, [pc, #340] ; (80013ac ) 8001256: 681b ldr r3, [r3, #0] 8001258: 4013 ands r3, r2 800125a: 2b00 cmp r3, #0 800125c: d11e bne.n 800129c ACTIVE_CHANNEL = Ch4; 800125e: 4b52 ldr r3, [pc, #328] ; (80013a8 ) 8001260: 2203 movs r2, #3 8001262: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001264: 4b50 ldr r3, [pc, #320] ; (80013a8 ) 8001266: 681b ldr r3, [r3, #0] 8001268: 2201 movs r2, #1 800126a: fa02 f303 lsl.w r3, r2, r3 800126e: 461a mov r2, r3 8001270: 4b4e ldr r3, [pc, #312] ; (80013ac ) 8001272: 681b ldr r3, [r3, #0] 8001274: 4013 ands r3, r2 8001276: 2b00 cmp r3, #0 8001278: d110 bne.n 800129c ACTIVE_CHANNEL = Ch3; 800127a: 4b4b ldr r3, [pc, #300] ; (80013a8 ) 800127c: 2202 movs r2, #2 800127e: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001280: 4b49 ldr r3, [pc, #292] ; (80013a8 ) 8001282: 681b ldr r3, [r3, #0] 8001284: 2201 movs r2, #1 8001286: fa02 f303 lsl.w r3, r2, r3 800128a: 461a mov r2, r3 800128c: 4b47 ldr r3, [pc, #284] ; (80013ac ) 800128e: 681b ldr r3, [r3, #0] 8001290: 4013 ands r3, r2 8001292: 2b00 cmp r3, #0 8001294: d102 bne.n 800129c ACTIVE_CHANNEL = Ch2; 8001296: 4b44 ldr r3, [pc, #272] ; (80013a8 ) 8001298: 2201 movs r2, #1 800129a: 601a str r2, [r3, #0] menupos = Out; 800129c: 4b44 ldr r3, [pc, #272] ; (80013b0 ) 800129e: 2202 movs r2, #2 80012a0: 701a strb r2, [r3, #0] break; 80012a2: f000 bfe2 b.w 800226a SetUP(); 80012a6: f000 fff5 bl 8002294 break; 80012aa: f000 bfde b.w 800226a if(ACTIVE_CHANNEL == Ch3) 80012ae: 4b3e ldr r3, [pc, #248] ; (80013a8 ) 80012b0: 681b ldr r3, [r3, #0] 80012b2: 2b02 cmp r3, #2 80012b4: f040 8082 bne.w 80013bc if(menupos == Hp) 80012b8: 4b3d ldr r3, [pc, #244] ; (80013b0 ) 80012ba: 781b ldrb r3, [r3, #0] 80012bc: b2db uxtb r3, r3 80012be: 2b00 cmp r3, #0 80012c0: d16d bne.n 800139e if(focused) 80012c2: 4b3c ldr r3, [pc, #240] ; (80013b4 ) 80012c4: 781b ldrb r3, [r3, #0] 80012c6: b2db uxtb r3, r3 80012c8: 2b00 cmp r3, #0 80012ca: d036 beq.n 800133a if(pardata.amplif[ACTIVE_CHANNEL].IFV < Hp10) 80012cc: 4b36 ldr r3, [pc, #216] ; (80013a8 ) 80012ce: 681b ldr r3, [r3, #0] 80012d0: 4a39 ldr r2, [pc, #228] ; (80013b8 ) 80012d2: 015b lsls r3, r3, #5 80012d4: 4413 add r3, r2 80012d6: 3302 adds r3, #2 80012d8: 881b ldrh r3, [r3, #0] 80012da: b29b uxth r3, r3 80012dc: 2b03 cmp r3, #3 80012de: f200 87c4 bhi.w 800226a pardata.amplif[ACTIVE_CHANNEL].IFV++; 80012e2: 4b31 ldr r3, [pc, #196] ; (80013a8 ) 80012e4: 681b ldr r3, [r3, #0] 80012e6: 4934 ldr r1, [pc, #208] ; (80013b8 ) 80012e8: 015a lsls r2, r3, #5 80012ea: 440a add r2, r1 80012ec: 3202 adds r2, #2 80012ee: 8812 ldrh r2, [r2, #0] 80012f0: b292 uxth r2, r2 80012f2: 3201 adds r2, #1 80012f4: b291 uxth r1, r2 80012f6: 4a30 ldr r2, [pc, #192] ; (80013b8 ) 80012f8: 015b lsls r3, r3, #5 80012fa: 4413 add r3, r2 80012fc: 3302 adds r3, #2 80012fe: 460a mov r2, r1 8001300: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8001302: 4b29 ldr r3, [pc, #164] ; (80013a8 ) 8001304: 681b ldr r3, [r3, #0] 8001306: b2db uxtb r3, r3 8001308: 4618 mov r0, r3 800130a: f00f f91f bl 801054c 800130e: 4603 mov r3, r0 8001310: 2b00 cmp r3, #0 8001312: f000 87aa beq.w 800226a pardata.amplif[ACTIVE_CHANNEL].IFV--; 8001316: 4b24 ldr r3, [pc, #144] ; (80013a8 ) 8001318: 681b ldr r3, [r3, #0] 800131a: 4927 ldr r1, [pc, #156] ; (80013b8 ) 800131c: 015a lsls r2, r3, #5 800131e: 440a add r2, r1 8001320: 3202 adds r2, #2 8001322: 8812 ldrh r2, [r2, #0] 8001324: b292 uxth r2, r2 8001326: 3a01 subs r2, #1 8001328: b291 uxth r1, r2 800132a: 4a23 ldr r2, [pc, #140] ; (80013b8 ) 800132c: 015b lsls r3, r3, #5 800132e: 4413 add r3, r2 8001330: 3302 adds r3, #2 8001332: 460a mov r2, r1 8001334: 801a strh r2, [r3, #0] break; 8001336: f000 bf98 b.w 800226a ACTIVE_CHANNEL = Ch2; 800133a: 4b1b ldr r3, [pc, #108] ; (80013a8 ) 800133c: 2201 movs r2, #1 800133e: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001340: 4b19 ldr r3, [pc, #100] ; (80013a8 ) 8001342: 681b ldr r3, [r3, #0] 8001344: 2201 movs r2, #1 8001346: fa02 f303 lsl.w r3, r2, r3 800134a: 461a mov r2, r3 800134c: 4b17 ldr r3, [pc, #92] ; (80013ac ) 800134e: 681b ldr r3, [r3, #0] 8001350: 4013 ands r3, r2 8001352: 2b00 cmp r3, #0 8001354: d11e bne.n 8001394 ACTIVE_CHANNEL = Ch1; 8001356: 4b14 ldr r3, [pc, #80] ; (80013a8 ) 8001358: 2200 movs r2, #0 800135a: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 800135c: 4b12 ldr r3, [pc, #72] ; (80013a8 ) 800135e: 681b ldr r3, [r3, #0] 8001360: 2201 movs r2, #1 8001362: fa02 f303 lsl.w r3, r2, r3 8001366: 461a mov r2, r3 8001368: 4b10 ldr r3, [pc, #64] ; (80013ac ) 800136a: 681b ldr r3, [r3, #0] 800136c: 4013 ands r3, r2 800136e: 2b00 cmp r3, #0 8001370: d110 bne.n 8001394 ACTIVE_CHANNEL = Ch4; 8001372: 4b0d ldr r3, [pc, #52] ; (80013a8 ) 8001374: 2203 movs r2, #3 8001376: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001378: 4b0b ldr r3, [pc, #44] ; (80013a8 ) 800137a: 681b ldr r3, [r3, #0] 800137c: 2201 movs r2, #1 800137e: fa02 f303 lsl.w r3, r2, r3 8001382: 461a mov r2, r3 8001384: 4b09 ldr r3, [pc, #36] ; (80013ac ) 8001386: 681b ldr r3, [r3, #0] 8001388: 4013 ands r3, r2 800138a: 2b00 cmp r3, #0 800138c: d102 bne.n 8001394 ACTIVE_CHANNEL = Ch3; 800138e: 4b06 ldr r3, [pc, #24] ; (80013a8 ) 8001390: 2202 movs r2, #2 8001392: 601a str r2, [r3, #0] menupos = Out; 8001394: 4b06 ldr r3, [pc, #24] ; (80013b0 ) 8001396: 2202 movs r2, #2 8001398: 701a strb r2, [r3, #0] break; 800139a: f000 bf66 b.w 800226a SetUP(); 800139e: f000 ff79 bl 8002294 break; 80013a2: f000 bf62 b.w 800226a 80013a6: bf00 nop 80013a8: 2006ba68 .word 0x2006ba68 80013ac: 2002002c .word 0x2002002c 80013b0: 20020010 .word 0x20020010 80013b4: 200209e4 .word 0x200209e4 80013b8: 2006bca8 .word 0x2006bca8 if(ACTIVE_CHANNEL == Ch4) 80013bc: 4bad ldr r3, [pc, #692] ; (8001674 ) 80013be: 681b ldr r3, [r3, #0] 80013c0: 2b03 cmp r3, #3 80013c2: f040 8752 bne.w 800226a if(menupos == Hp) 80013c6: 4bac ldr r3, [pc, #688] ; (8001678 ) 80013c8: 781b ldrb r3, [r3, #0] 80013ca: b2db uxtb r3, r3 80013cc: 2b00 cmp r3, #0 80013ce: d16d bne.n 80014ac if(focused) 80013d0: 4baa ldr r3, [pc, #680] ; (800167c ) 80013d2: 781b ldrb r3, [r3, #0] 80013d4: b2db uxtb r3, r3 80013d6: 2b00 cmp r3, #0 80013d8: d036 beq.n 8001448 if(pardata.amplif[ACTIVE_CHANNEL].IFV < Hp10) 80013da: 4ba6 ldr r3, [pc, #664] ; (8001674 ) 80013dc: 681b ldr r3, [r3, #0] 80013de: 4aa8 ldr r2, [pc, #672] ; (8001680 ) 80013e0: 015b lsls r3, r3, #5 80013e2: 4413 add r3, r2 80013e4: 3302 adds r3, #2 80013e6: 881b ldrh r3, [r3, #0] 80013e8: b29b uxth r3, r3 80013ea: 2b03 cmp r3, #3 80013ec: f200 873d bhi.w 800226a pardata.amplif[ACTIVE_CHANNEL].IFV++; 80013f0: 4ba0 ldr r3, [pc, #640] ; (8001674 ) 80013f2: 681b ldr r3, [r3, #0] 80013f4: 49a2 ldr r1, [pc, #648] ; (8001680 ) 80013f6: 015a lsls r2, r3, #5 80013f8: 440a add r2, r1 80013fa: 3202 adds r2, #2 80013fc: 8812 ldrh r2, [r2, #0] 80013fe: b292 uxth r2, r2 8001400: 3201 adds r2, #1 8001402: b291 uxth r1, r2 8001404: 4a9e ldr r2, [pc, #632] ; (8001680 ) 8001406: 015b lsls r3, r3, #5 8001408: 4413 add r3, r2 800140a: 3302 adds r3, #2 800140c: 460a mov r2, r1 800140e: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8001410: 4b98 ldr r3, [pc, #608] ; (8001674 ) 8001412: 681b ldr r3, [r3, #0] 8001414: b2db uxtb r3, r3 8001416: 4618 mov r0, r3 8001418: f00f f898 bl 801054c 800141c: 4603 mov r3, r0 800141e: 2b00 cmp r3, #0 8001420: f000 8723 beq.w 800226a pardata.amplif[ACTIVE_CHANNEL].IFV--; 8001424: 4b93 ldr r3, [pc, #588] ; (8001674 ) 8001426: 681b ldr r3, [r3, #0] 8001428: 4995 ldr r1, [pc, #596] ; (8001680 ) 800142a: 015a lsls r2, r3, #5 800142c: 440a add r2, r1 800142e: 3202 adds r2, #2 8001430: 8812 ldrh r2, [r2, #0] 8001432: b292 uxth r2, r2 8001434: 3a01 subs r2, #1 8001436: b291 uxth r1, r2 8001438: 4a91 ldr r2, [pc, #580] ; (8001680 ) 800143a: 015b lsls r3, r3, #5 800143c: 4413 add r3, r2 800143e: 3302 adds r3, #2 8001440: 460a mov r2, r1 8001442: 801a strh r2, [r3, #0] break; 8001444: f000 bf11 b.w 800226a ACTIVE_CHANNEL = Ch3; 8001448: 4b8a ldr r3, [pc, #552] ; (8001674 ) 800144a: 2202 movs r2, #2 800144c: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 800144e: 4b89 ldr r3, [pc, #548] ; (8001674 ) 8001450: 681b ldr r3, [r3, #0] 8001452: 2201 movs r2, #1 8001454: fa02 f303 lsl.w r3, r2, r3 8001458: 461a mov r2, r3 800145a: 4b8a ldr r3, [pc, #552] ; (8001684 ) 800145c: 681b ldr r3, [r3, #0] 800145e: 4013 ands r3, r2 8001460: 2b00 cmp r3, #0 8001462: d11e bne.n 80014a2 ACTIVE_CHANNEL = Ch2; 8001464: 4b83 ldr r3, [pc, #524] ; (8001674 ) 8001466: 2201 movs r2, #1 8001468: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 800146a: 4b82 ldr r3, [pc, #520] ; (8001674 ) 800146c: 681b ldr r3, [r3, #0] 800146e: 2201 movs r2, #1 8001470: fa02 f303 lsl.w r3, r2, r3 8001474: 461a mov r2, r3 8001476: 4b83 ldr r3, [pc, #524] ; (8001684 ) 8001478: 681b ldr r3, [r3, #0] 800147a: 4013 ands r3, r2 800147c: 2b00 cmp r3, #0 800147e: d110 bne.n 80014a2 ACTIVE_CHANNEL = Ch1; 8001480: 4b7c ldr r3, [pc, #496] ; (8001674 ) 8001482: 2200 movs r2, #0 8001484: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001486: 4b7b ldr r3, [pc, #492] ; (8001674 ) 8001488: 681b ldr r3, [r3, #0] 800148a: 2201 movs r2, #1 800148c: fa02 f303 lsl.w r3, r2, r3 8001490: 461a mov r2, r3 8001492: 4b7c ldr r3, [pc, #496] ; (8001684 ) 8001494: 681b ldr r3, [r3, #0] 8001496: 4013 ands r3, r2 8001498: 2b00 cmp r3, #0 800149a: d102 bne.n 80014a2 ACTIVE_CHANNEL = Ch4; 800149c: 4b75 ldr r3, [pc, #468] ; (8001674 ) 800149e: 2203 movs r2, #3 80014a0: 601a str r2, [r3, #0] menupos = Out; 80014a2: 4b75 ldr r3, [pc, #468] ; (8001678 ) 80014a4: 2202 movs r2, #2 80014a6: 701a strb r2, [r3, #0] break; 80014a8: f000 bedf b.w 800226a SetUP(); 80014ac: f000 fef2 bl 8002294 break; 80014b0: f000 bedb b.w 800226a if(menu == CALIBR_00) 80014b4: 4b74 ldr r3, [pc, #464] ; (8001688 ) 80014b6: 781b ldrb r3, [r3, #0] 80014b8: b2db uxtb r3, r3 80014ba: 2b01 cmp r3, #1 80014bc: d10e bne.n 80014dc if(menupos > Ch1) menupos--; 80014be: 4b6e ldr r3, [pc, #440] ; (8001678 ) 80014c0: 781b ldrb r3, [r3, #0] 80014c2: b2db uxtb r3, r3 80014c4: 2b00 cmp r3, #0 80014c6: f000 86d0 beq.w 800226a 80014ca: 4b6b ldr r3, [pc, #428] ; (8001678 ) 80014cc: 781b ldrb r3, [r3, #0] 80014ce: b2db uxtb r3, r3 80014d0: 3b01 subs r3, #1 80014d2: b2da uxtb r2, r3 80014d4: 4b68 ldr r3, [pc, #416] ; (8001678 ) 80014d6: 701a strb r2, [r3, #0] break; 80014d8: f000 bec7 b.w 800226a if(menu >= CALIBR_0 && menu <= CALIBR_22) 80014dc: 4b6a ldr r3, [pc, #424] ; (8001688 ) 80014de: 781b ldrb r3, [r3, #0] 80014e0: b2db uxtb r3, r3 80014e2: 2b01 cmp r3, #1 80014e4: f240 86c1 bls.w 800226a 80014e8: 4b67 ldr r3, [pc, #412] ; (8001688 ) 80014ea: 781b ldrb r3, [r3, #0] 80014ec: b2db uxtb r3, r3 80014ee: 2b18 cmp r3, #24 80014f0: f200 86bb bhi.w 800226a if(menupos == Next) 80014f4: 4b60 ldr r3, [pc, #384] ; (8001678 ) 80014f6: 781b ldrb r3, [r3, #0] 80014f8: b2db uxtb r3, r3 80014fa: 2b06 cmp r3, #6 80014fc: d104 bne.n 8001508 menupos = Set_1; 80014fe: 4b5e ldr r3, [pc, #376] ; (8001678 ) 8001500: 2205 movs r2, #5 8001502: 701a strb r2, [r3, #0] break; 8001504: f000 beb1 b.w 800226a if(menupos == Set_1) 8001508: 4b5b ldr r3, [pc, #364] ; (8001678 ) 800150a: 781b ldrb r3, [r3, #0] 800150c: b2db uxtb r3, r3 800150e: 2b05 cmp r3, #5 8001510: d104 bne.n 800151c menupos = Set1; 8001512: 4b59 ldr r3, [pc, #356] ; (8001678 ) 8001514: 2204 movs r2, #4 8001516: 701a strb r2, [r3, #0] break; 8001518: f000 bea7 b.w 800226a if(menupos == Set1) 800151c: 4b56 ldr r3, [pc, #344] ; (8001678 ) 800151e: 781b ldrb r3, [r3, #0] 8001520: b2db uxtb r3, r3 8001522: 2b04 cmp r3, #4 8001524: d104 bne.n 8001530 menupos = Set_10; 8001526: 4b54 ldr r3, [pc, #336] ; (8001678 ) 8001528: 2203 movs r2, #3 800152a: 701a strb r2, [r3, #0] break; 800152c: f000 be9d b.w 800226a if(menupos == Set_10) 8001530: 4b51 ldr r3, [pc, #324] ; (8001678 ) 8001532: 781b ldrb r3, [r3, #0] 8001534: b2db uxtb r3, r3 8001536: 2b03 cmp r3, #3 8001538: d104 bne.n 8001544 menupos = Set10; 800153a: 4b4f ldr r3, [pc, #316] ; (8001678 ) 800153c: 2202 movs r2, #2 800153e: 701a strb r2, [r3, #0] break; 8001540: f000 be93 b.w 800226a if(menupos == Set10) 8001544: 4b4c ldr r3, [pc, #304] ; (8001678 ) 8001546: 781b ldrb r3, [r3, #0] 8001548: b2db uxtb r3, r3 800154a: 2b02 cmp r3, #2 800154c: d104 bne.n 8001558 menupos = Set_100; 800154e: 4b4a ldr r3, [pc, #296] ; (8001678 ) 8001550: 2201 movs r2, #1 8001552: 701a strb r2, [r3, #0] break; 8001554: f000 be89 b.w 800226a if(menupos == Set_100) 8001558: 4b47 ldr r3, [pc, #284] ; (8001678 ) 800155a: 781b ldrb r3, [r3, #0] 800155c: b2db uxtb r3, r3 800155e: 2b01 cmp r3, #1 8001560: f040 8683 bne.w 800226a menupos = Set100; 8001564: 4b44 ldr r3, [pc, #272] ; (8001678 ) 8001566: 2200 movs r2, #0 8001568: 701a strb r2, [r3, #0] break; 800156a: f000 be7e b.w 800226a case KEY_DN://TODO KEY DOWN { if(menu == OPTIONS) 800156e: 4b46 ldr r3, [pc, #280] ; (8001688 ) 8001570: 781b ldrb r3, [r3, #0] 8001572: b2db uxtb r3, r3 8001574: 2b19 cmp r3, #25 8001576: d136 bne.n 80015e6 { if(!focused) 8001578: 4b40 ldr r3, [pc, #256] ; (800167c ) 800157a: 781b ldrb r3, [r3, #0] 800157c: b2db uxtb r3, r3 800157e: f083 0301 eor.w r3, r3, #1 8001582: b2db uxtb r3, r3 8001584: 2b00 cmp r3, #0 8001586: d01c beq.n 80015c2 { if(menupos == Back) menupos = Inputs; 8001588: 4b3b ldr r3, [pc, #236] ; (8001678 ) 800158a: 781b ldrb r3, [r3, #0] 800158c: b2db uxtb r3, r3 800158e: 2bff cmp r3, #255 ; 0xff 8001590: d104 bne.n 800159c 8001592: 4b39 ldr r3, [pc, #228] ; (8001678 ) 8001594: 2200 movs r2, #0 8001596: 701a strb r2, [r3, #0] if(menupos == Set_1) menupos = Next; } } } break; 8001598: f000 be69 b.w 800226e else if(menupos == PowerOff) menupos = Back; 800159c: 4b36 ldr r3, [pc, #216] ; (8001678 ) 800159e: 781b ldrb r3, [r3, #0] 80015a0: b2db uxtb r3, r3 80015a2: 2b02 cmp r3, #2 80015a4: d104 bne.n 80015b0 80015a6: 4b34 ldr r3, [pc, #208] ; (8001678 ) 80015a8: 22ff movs r2, #255 ; 0xff 80015aa: 701a strb r2, [r3, #0] break; 80015ac: f000 be5f b.w 800226e else menupos++; 80015b0: 4b31 ldr r3, [pc, #196] ; (8001678 ) 80015b2: 781b ldrb r3, [r3, #0] 80015b4: b2db uxtb r3, r3 80015b6: 3301 adds r3, #1 80015b8: b2da uxtb r2, r3 80015ba: 4b2f ldr r3, [pc, #188] ; (8001678 ) 80015bc: 701a strb r2, [r3, #0] break; 80015be: f000 be56 b.w 800226e if(menupos == Lang) { 80015c2: 4b2d ldr r3, [pc, #180] ; (8001678 ) 80015c4: 781b ldrb r3, [r3, #0] 80015c6: b2db uxtb r3, r3 80015c8: 2b01 cmp r3, #1 80015ca: f040 8650 bne.w 800226e pardata.LANG ^= 1; 80015ce: 4b2c ldr r3, [pc, #176] ; (8001680 ) 80015d0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80015d4: b29b uxth r3, r3 80015d6: f083 0301 eor.w r3, r3, #1 80015da: b29a uxth r2, r3 80015dc: 4b28 ldr r3, [pc, #160] ; (8001680 ) 80015de: f8a3 2206 strh.w r2, [r3, #518] ; 0x206 break; 80015e2: f000 be44 b.w 800226e if(menu == SETTINGS) 80015e6: 4b28 ldr r3, [pc, #160] ; (8001688 ) 80015e8: 781b ldrb r3, [r3, #0] 80015ea: b2db uxtb r3, r3 80015ec: 2b2b cmp r3, #43 ; 0x2b 80015ee: f040 81d4 bne.w 800199a if(menupos == Back) 80015f2: 4b21 ldr r3, [pc, #132] ; (8001678 ) 80015f4: 781b ldrb r3, [r3, #0] 80015f6: b2db uxtb r3, r3 80015f8: 2bff cmp r3, #255 ; 0xff 80015fa: d104 bne.n 8001606 menupos = Sens_1; 80015fc: 4b1e ldr r3, [pc, #120] ; (8001678 ) 80015fe: 2200 movs r2, #0 8001600: 701a strb r2, [r3, #0] break; 8001602: f000 be34 b.w 800226e if(menupos == Sens_1) 8001606: 4b1c ldr r3, [pc, #112] ; (8001678 ) 8001608: 781b ldrb r3, [r3, #0] 800160a: b2db uxtb r3, r3 800160c: 2b00 cmp r3, #0 800160e: d104 bne.n 800161a menupos = Val_1; 8001610: 4b19 ldr r3, [pc, #100] ; (8001678 ) 8001612: 2201 movs r2, #1 8001614: 701a strb r2, [r3, #0] break; 8001616: f000 be2a b.w 800226e if(menupos == Val_1) 800161a: 4b17 ldr r3, [pc, #92] ; (8001678 ) 800161c: 781b ldrb r3, [r3, #0] 800161e: b2db uxtb r3, r3 8001620: 2b01 cmp r3, #1 8001622: d155 bne.n 80016d0 if(!focused) 8001624: 4b15 ldr r3, [pc, #84] ; (800167c ) 8001626: 781b ldrb r3, [r3, #0] 8001628: b2db uxtb r3, r3 800162a: f083 0301 eor.w r3, r3, #1 800162e: b2db uxtb r3, r3 8001630: 2b00 cmp r3, #0 8001632: d004 beq.n 800163e menupos = Sens_2; 8001634: 4b10 ldr r3, [pc, #64] ; (8001678 ) 8001636: 2208 movs r2, #8 8001638: 701a strb r2, [r3, #0] break; 800163a: f000 be18 b.w 800226e last_iin = pardata.amplif[Ch1].IIN; 800163e: 4b10 ldr r3, [pc, #64] ; (8001680 ) 8001640: 881b ldrh r3, [r3, #0] 8001642: f8a7 3072 strh.w r3, [r7, #114] ; 0x72 last_val = pardata.amplif[Ch1].VAL; 8001646: 4b0e ldr r3, [pc, #56] ; (8001680 ) 8001648: 8a5b ldrh r3, [r3, #18] 800164a: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 if(pardata.amplif[Ch1].VAL > Accel) 800164e: 4b0c ldr r3, [pc, #48] ; (8001680 ) 8001650: 8a5b ldrh r3, [r3, #18] 8001652: b29b uxth r3, r3 8001654: 2b00 cmp r3, #0 8001656: d024 beq.n 80016a2 if(pardata.amplif[Ch1].IIN > CHARGE) 8001658: 4b09 ldr r3, [pc, #36] ; (8001680 ) 800165a: 881b ldrh r3, [r3, #0] 800165c: b29b uxth r3, r3 800165e: 2b00 cmp r3, #0 8001660: d014 beq.n 800168c pardata.amplif[Ch1].IIN--; 8001662: 4b07 ldr r3, [pc, #28] ; (8001680 ) 8001664: 881b ldrh r3, [r3, #0] 8001666: b29b uxth r3, r3 8001668: 3b01 subs r3, #1 800166a: b29a uxth r2, r3 800166c: 4b04 ldr r3, [pc, #16] ; (8001680 ) 800166e: 801a strh r2, [r3, #0] 8001670: e01d b.n 80016ae 8001672: bf00 nop 8001674: 2006ba68 .word 0x2006ba68 8001678: 20020010 .word 0x20020010 800167c: 200209e4 .word 0x200209e4 8001680: 2006bca8 .word 0x2006bca8 8001684: 2002002c .word 0x2002002c 8001688: 200209d9 .word 0x200209d9 pardata.amplif[Ch1].IIN = ICP; 800168c: 4baf ldr r3, [pc, #700] ; (800194c ) 800168e: 2201 movs r2, #1 8001690: 801a strh r2, [r3, #0] pardata.amplif[Ch1].VAL--; 8001692: 4bae ldr r3, [pc, #696] ; (800194c ) 8001694: 8a5b ldrh r3, [r3, #18] 8001696: b29b uxth r3, r3 8001698: 3b01 subs r3, #1 800169a: b29a uxth r2, r3 800169c: 4bab ldr r3, [pc, #684] ; (800194c ) 800169e: 825a strh r2, [r3, #18] 80016a0: e005 b.n 80016ae pardata.amplif[Ch1].IIN = ICP; 80016a2: 4baa ldr r3, [pc, #680] ; (800194c ) 80016a4: 2201 movs r2, #1 80016a6: 801a strh r2, [r3, #0] pardata.amplif[Ch1].VAL = pQ_mV; 80016a8: 4ba8 ldr r3, [pc, #672] ; (800194c ) 80016aa: 2207 movs r2, #7 80016ac: 825a strh r2, [r3, #18] if(WriteChannel(Ch1)) 80016ae: 2000 movs r0, #0 80016b0: f00e ff4c bl 801054c 80016b4: 4603 mov r3, r0 80016b6: 2b00 cmp r3, #0 80016b8: f000 85d9 beq.w 800226e pardata.amplif[Ch1].IIN = last_iin; 80016bc: 4aa3 ldr r2, [pc, #652] ; (800194c ) 80016be: f8b7 3072 ldrh.w r3, [r7, #114] ; 0x72 80016c2: 8013 strh r3, [r2, #0] pardata.amplif[Ch1].VAL = last_val; 80016c4: 4aa1 ldr r2, [pc, #644] ; (800194c ) 80016c6: f8b7 3070 ldrh.w r3, [r7, #112] ; 0x70 80016ca: 8253 strh r3, [r2, #18] break; 80016cc: f000 bdcf b.w 800226e if(menupos == Sens_2) 80016d0: 4b9f ldr r3, [pc, #636] ; (8001950 ) 80016d2: 781b ldrb r3, [r3, #0] 80016d4: b2db uxtb r3, r3 80016d6: 2b08 cmp r3, #8 80016d8: d104 bne.n 80016e4 menupos = Val_2; 80016da: 4b9d ldr r3, [pc, #628] ; (8001950 ) 80016dc: 2209 movs r2, #9 80016de: 701a strb r2, [r3, #0] break; 80016e0: f000 bdc5 b.w 800226e if(menupos == Val_2) 80016e4: 4b9a ldr r3, [pc, #616] ; (8001950 ) 80016e6: 781b ldrb r3, [r3, #0] 80016e8: b2db uxtb r3, r3 80016ea: 2b09 cmp r3, #9 80016ec: d148 bne.n 8001780 if(!focused) 80016ee: 4b99 ldr r3, [pc, #612] ; (8001954 ) 80016f0: 781b ldrb r3, [r3, #0] 80016f2: b2db uxtb r3, r3 80016f4: f083 0301 eor.w r3, r3, #1 80016f8: b2db uxtb r3, r3 80016fa: 2b00 cmp r3, #0 80016fc: d004 beq.n 8001708 menupos = Sens_3; 80016fe: 4b94 ldr r3, [pc, #592] ; (8001950 ) 8001700: 2210 movs r2, #16 8001702: 701a strb r2, [r3, #0] break; 8001704: f000 bdb3 b.w 800226e last_iin = pardata.amplif[Ch2].IIN; 8001708: 4b90 ldr r3, [pc, #576] ; (800194c ) 800170a: 8c1b ldrh r3, [r3, #32] 800170c: f8a7 3072 strh.w r3, [r7, #114] ; 0x72 last_val = pardata.amplif[Ch2].VAL; 8001710: 4b8e ldr r3, [pc, #568] ; (800194c ) 8001712: 8e5b ldrh r3, [r3, #50] ; 0x32 8001714: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 if(pardata.amplif[Ch2].VAL > Accel) 8001718: 4b8c ldr r3, [pc, #560] ; (800194c ) 800171a: 8e5b ldrh r3, [r3, #50] ; 0x32 800171c: b29b uxth r3, r3 800171e: 2b00 cmp r3, #0 8001720: d017 beq.n 8001752 if(pardata.amplif[Ch2].IIN > CHARGE) 8001722: 4b8a ldr r3, [pc, #552] ; (800194c ) 8001724: 8c1b ldrh r3, [r3, #32] 8001726: b29b uxth r3, r3 8001728: 2b00 cmp r3, #0 800172a: d007 beq.n 800173c pardata.amplif[Ch2].IIN--; 800172c: 4b87 ldr r3, [pc, #540] ; (800194c ) 800172e: 8c1b ldrh r3, [r3, #32] 8001730: b29b uxth r3, r3 8001732: 3b01 subs r3, #1 8001734: b29a uxth r2, r3 8001736: 4b85 ldr r3, [pc, #532] ; (800194c ) 8001738: 841a strh r2, [r3, #32] 800173a: e010 b.n 800175e pardata.amplif[Ch2].IIN = ICP; 800173c: 4b83 ldr r3, [pc, #524] ; (800194c ) 800173e: 2201 movs r2, #1 8001740: 841a strh r2, [r3, #32] pardata.amplif[Ch2].VAL--; 8001742: 4b82 ldr r3, [pc, #520] ; (800194c ) 8001744: 8e5b ldrh r3, [r3, #50] ; 0x32 8001746: b29b uxth r3, r3 8001748: 3b01 subs r3, #1 800174a: b29a uxth r2, r3 800174c: 4b7f ldr r3, [pc, #508] ; (800194c ) 800174e: 865a strh r2, [r3, #50] ; 0x32 8001750: e005 b.n 800175e pardata.amplif[Ch2].IIN = ICP; 8001752: 4b7e ldr r3, [pc, #504] ; (800194c ) 8001754: 2201 movs r2, #1 8001756: 841a strh r2, [r3, #32] pardata.amplif[Ch2].VAL = pQ_mV; 8001758: 4b7c ldr r3, [pc, #496] ; (800194c ) 800175a: 2207 movs r2, #7 800175c: 865a strh r2, [r3, #50] ; 0x32 if(WriteChannel(Ch2)) 800175e: 2001 movs r0, #1 8001760: f00e fef4 bl 801054c 8001764: 4603 mov r3, r0 8001766: 2b00 cmp r3, #0 8001768: f000 8581 beq.w 800226e pardata.amplif[Ch2].IIN = last_iin; 800176c: 4a77 ldr r2, [pc, #476] ; (800194c ) 800176e: f8b7 3072 ldrh.w r3, [r7, #114] ; 0x72 8001772: 8413 strh r3, [r2, #32] pardata.amplif[Ch2].VAL = last_val; 8001774: 4a75 ldr r2, [pc, #468] ; (800194c ) 8001776: f8b7 3070 ldrh.w r3, [r7, #112] ; 0x70 800177a: 8653 strh r3, [r2, #50] ; 0x32 break; 800177c: f000 bd77 b.w 800226e if(menupos == Sens_3) 8001780: 4b73 ldr r3, [pc, #460] ; (8001950 ) 8001782: 781b ldrb r3, [r3, #0] 8001784: b2db uxtb r3, r3 8001786: 2b10 cmp r3, #16 8001788: d104 bne.n 8001794 menupos = Val_3; 800178a: 4b71 ldr r3, [pc, #452] ; (8001950 ) 800178c: 2211 movs r2, #17 800178e: 701a strb r2, [r3, #0] break; 8001790: f000 bd6d b.w 800226e if(menupos == Val_3) 8001794: 4b6e ldr r3, [pc, #440] ; (8001950 ) 8001796: 781b ldrb r3, [r3, #0] 8001798: b2db uxtb r3, r3 800179a: 2b11 cmp r3, #17 800179c: d155 bne.n 800184a if(!focused) 800179e: 4b6d ldr r3, [pc, #436] ; (8001954 ) 80017a0: 781b ldrb r3, [r3, #0] 80017a2: b2db uxtb r3, r3 80017a4: f083 0301 eor.w r3, r3, #1 80017a8: b2db uxtb r3, r3 80017aa: 2b00 cmp r3, #0 80017ac: d004 beq.n 80017b8 menupos = Sens_4; 80017ae: 4b68 ldr r3, [pc, #416] ; (8001950 ) 80017b0: 2218 movs r2, #24 80017b2: 701a strb r2, [r3, #0] break; 80017b4: f000 bd5b b.w 800226e last_iin = pardata.amplif[Ch3].IIN; 80017b8: 4b64 ldr r3, [pc, #400] ; (800194c ) 80017ba: f8b3 3040 ldrh.w r3, [r3, #64] ; 0x40 80017be: f8a7 3072 strh.w r3, [r7, #114] ; 0x72 last_val = pardata.amplif[Ch3].VAL; 80017c2: 4b62 ldr r3, [pc, #392] ; (800194c ) 80017c4: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 80017c8: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 if(pardata.amplif[Ch3].VAL > Accel) 80017cc: 4b5f ldr r3, [pc, #380] ; (800194c ) 80017ce: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 80017d2: b29b uxth r3, r3 80017d4: 2b00 cmp r3, #0 80017d6: d01d beq.n 8001814 if(pardata.amplif[Ch3].IIN > CHARGE) 80017d8: 4b5c ldr r3, [pc, #368] ; (800194c ) 80017da: f8b3 3040 ldrh.w r3, [r3, #64] ; 0x40 80017de: b29b uxth r3, r3 80017e0: 2b00 cmp r3, #0 80017e2: d009 beq.n 80017f8 pardata.amplif[Ch3].IIN--; 80017e4: 4b59 ldr r3, [pc, #356] ; (800194c ) 80017e6: f8b3 3040 ldrh.w r3, [r3, #64] ; 0x40 80017ea: b29b uxth r3, r3 80017ec: 3b01 subs r3, #1 80017ee: b29a uxth r2, r3 80017f0: 4b56 ldr r3, [pc, #344] ; (800194c ) 80017f2: f8a3 2040 strh.w r2, [r3, #64] ; 0x40 80017f6: e015 b.n 8001824 pardata.amplif[Ch3].IIN = ICP; 80017f8: 4b54 ldr r3, [pc, #336] ; (800194c ) 80017fa: 2201 movs r2, #1 80017fc: f8a3 2040 strh.w r2, [r3, #64] ; 0x40 pardata.amplif[Ch3].VAL--; 8001800: 4b52 ldr r3, [pc, #328] ; (800194c ) 8001802: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8001806: b29b uxth r3, r3 8001808: 3b01 subs r3, #1 800180a: b29a uxth r2, r3 800180c: 4b4f ldr r3, [pc, #316] ; (800194c ) 800180e: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 8001812: e007 b.n 8001824 pardata.amplif[Ch3].IIN = ICP; 8001814: 4b4d ldr r3, [pc, #308] ; (800194c ) 8001816: 2201 movs r2, #1 8001818: f8a3 2040 strh.w r2, [r3, #64] ; 0x40 pardata.amplif[Ch3].VAL = pQ_mV; 800181c: 4b4b ldr r3, [pc, #300] ; (800194c ) 800181e: 2207 movs r2, #7 8001820: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 if(WriteChannel(Ch3)) 8001824: 2002 movs r0, #2 8001826: f00e fe91 bl 801054c 800182a: 4603 mov r3, r0 800182c: 2b00 cmp r3, #0 800182e: f000 851e beq.w 800226e pardata.amplif[Ch3].IIN = last_iin; 8001832: 4a46 ldr r2, [pc, #280] ; (800194c ) 8001834: f8b7 3072 ldrh.w r3, [r7, #114] ; 0x72 8001838: f8a2 3040 strh.w r3, [r2, #64] ; 0x40 pardata.amplif[Ch3].VAL = last_val; 800183c: 4a43 ldr r2, [pc, #268] ; (800194c ) 800183e: f8b7 3070 ldrh.w r3, [r7, #112] ; 0x70 8001842: f8a2 3052 strh.w r3, [r2, #82] ; 0x52 break; 8001846: f000 bd12 b.w 800226e if(menupos == Sens_4) 800184a: 4b41 ldr r3, [pc, #260] ; (8001950 ) 800184c: 781b ldrb r3, [r3, #0] 800184e: b2db uxtb r3, r3 8001850: 2b18 cmp r3, #24 8001852: d104 bne.n 800185e menupos = Val_4; 8001854: 4b3e ldr r3, [pc, #248] ; (8001950 ) 8001856: 2219 movs r2, #25 8001858: 701a strb r2, [r3, #0] break; 800185a: f000 bd08 b.w 800226e if(menupos == Val_4) 800185e: 4b3c ldr r3, [pc, #240] ; (8001950 ) 8001860: 781b ldrb r3, [r3, #0] 8001862: b2db uxtb r3, r3 8001864: 2b19 cmp r3, #25 8001866: d155 bne.n 8001914 if(!focused) 8001868: 4b3a ldr r3, [pc, #232] ; (8001954 ) 800186a: 781b ldrb r3, [r3, #0] 800186c: b2db uxtb r3, r3 800186e: f083 0301 eor.w r3, r3, #1 8001872: b2db uxtb r3, r3 8001874: 2b00 cmp r3, #0 8001876: d004 beq.n 8001882 menupos = Back; 8001878: 4b35 ldr r3, [pc, #212] ; (8001950 ) 800187a: 22ff movs r2, #255 ; 0xff 800187c: 701a strb r2, [r3, #0] break; 800187e: f000 bcf6 b.w 800226e last_iin = pardata.amplif[Ch4].IIN; 8001882: 4b32 ldr r3, [pc, #200] ; (800194c ) 8001884: f8b3 3060 ldrh.w r3, [r3, #96] ; 0x60 8001888: f8a7 3072 strh.w r3, [r7, #114] ; 0x72 last_val = pardata.amplif[Ch4].VAL; 800188c: 4b2f ldr r3, [pc, #188] ; (800194c ) 800188e: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 8001892: f8a7 3070 strh.w r3, [r7, #112] ; 0x70 if(pardata.amplif[Ch4].VAL > Accel) 8001896: 4b2d ldr r3, [pc, #180] ; (800194c ) 8001898: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 800189c: b29b uxth r3, r3 800189e: 2b00 cmp r3, #0 80018a0: d01d beq.n 80018de if(pardata.amplif[Ch4].IIN > CHARGE) 80018a2: 4b2a ldr r3, [pc, #168] ; (800194c ) 80018a4: f8b3 3060 ldrh.w r3, [r3, #96] ; 0x60 80018a8: b29b uxth r3, r3 80018aa: 2b00 cmp r3, #0 80018ac: d009 beq.n 80018c2 pardata.amplif[Ch4].IIN--; 80018ae: 4b27 ldr r3, [pc, #156] ; (800194c ) 80018b0: f8b3 3060 ldrh.w r3, [r3, #96] ; 0x60 80018b4: b29b uxth r3, r3 80018b6: 3b01 subs r3, #1 80018b8: b29a uxth r2, r3 80018ba: 4b24 ldr r3, [pc, #144] ; (800194c ) 80018bc: f8a3 2060 strh.w r2, [r3, #96] ; 0x60 80018c0: e015 b.n 80018ee pardata.amplif[Ch4].IIN = ICP; 80018c2: 4b22 ldr r3, [pc, #136] ; (800194c ) 80018c4: 2201 movs r2, #1 80018c6: f8a3 2060 strh.w r2, [r3, #96] ; 0x60 pardata.amplif[Ch4].VAL--; 80018ca: 4b20 ldr r3, [pc, #128] ; (800194c ) 80018cc: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 80018d0: b29b uxth r3, r3 80018d2: 3b01 subs r3, #1 80018d4: b29a uxth r2, r3 80018d6: 4b1d ldr r3, [pc, #116] ; (800194c ) 80018d8: f8a3 2072 strh.w r2, [r3, #114] ; 0x72 80018dc: e007 b.n 80018ee pardata.amplif[Ch4].IIN = ICP; 80018de: 4b1b ldr r3, [pc, #108] ; (800194c ) 80018e0: 2201 movs r2, #1 80018e2: f8a3 2060 strh.w r2, [r3, #96] ; 0x60 pardata.amplif[Ch4].VAL = pQ_mV; 80018e6: 4b19 ldr r3, [pc, #100] ; (800194c ) 80018e8: 2207 movs r2, #7 80018ea: f8a3 2072 strh.w r2, [r3, #114] ; 0x72 if(WriteChannel(Ch4)) 80018ee: 2003 movs r0, #3 80018f0: f00e fe2c bl 801054c 80018f4: 4603 mov r3, r0 80018f6: 2b00 cmp r3, #0 80018f8: f000 84b9 beq.w 800226e pardata.amplif[Ch4].IIN = last_iin; 80018fc: 4a13 ldr r2, [pc, #76] ; (800194c ) 80018fe: f8b7 3072 ldrh.w r3, [r7, #114] ; 0x72 8001902: f8a2 3060 strh.w r3, [r2, #96] ; 0x60 pardata.amplif[Ch4].VAL = last_val; 8001906: 4a11 ldr r2, [pc, #68] ; (800194c ) 8001908: f8b7 3070 ldrh.w r3, [r7, #112] ; 0x70 800190c: f8a2 3072 strh.w r3, [r2, #114] ; 0x72 break; 8001910: f000 bcad b.w 800226e if(menupos >= Kikdt_1 && menupos <= Kpt_1) ACTIVE_CHANNEL = Ch1; 8001914: 4b0e ldr r3, [pc, #56] ; (8001950 ) 8001916: 781b ldrb r3, [r3, #0] 8001918: b2db uxtb r3, r3 800191a: 2b01 cmp r3, #1 800191c: d908 bls.n 8001930 800191e: 4b0c ldr r3, [pc, #48] ; (8001950 ) 8001920: 781b ldrb r3, [r3, #0] 8001922: b2db uxtb r3, r3 8001924: 2b07 cmp r3, #7 8001926: d803 bhi.n 8001930 8001928: 4b0b ldr r3, [pc, #44] ; (8001958 ) 800192a: 2200 movs r2, #0 800192c: 601a str r2, [r3, #0] 800192e: e030 b.n 8001992 else if(menupos >= Kikdt_2 && menupos <= Kpt_2) ACTIVE_CHANNEL = Ch2; 8001930: 4b07 ldr r3, [pc, #28] ; (8001950 ) 8001932: 781b ldrb r3, [r3, #0] 8001934: b2db uxtb r3, r3 8001936: 2b09 cmp r3, #9 8001938: d910 bls.n 800195c 800193a: 4b05 ldr r3, [pc, #20] ; (8001950 ) 800193c: 781b ldrb r3, [r3, #0] 800193e: b2db uxtb r3, r3 8001940: 2b0f cmp r3, #15 8001942: d80b bhi.n 800195c 8001944: 4b04 ldr r3, [pc, #16] ; (8001958 ) 8001946: 2201 movs r2, #1 8001948: 601a str r2, [r3, #0] 800194a: e022 b.n 8001992 800194c: 2006bca8 .word 0x2006bca8 8001950: 20020010 .word 0x20020010 8001954: 200209e4 .word 0x200209e4 8001958: 2006ba68 .word 0x2006ba68 else if(menupos >= Kikdt_3 && menupos <= Kpt_3) ACTIVE_CHANNEL = Ch3; 800195c: 4ba1 ldr r3, [pc, #644] ; (8001be4 ) 800195e: 781b ldrb r3, [r3, #0] 8001960: b2db uxtb r3, r3 8001962: 2b11 cmp r3, #17 8001964: d908 bls.n 8001978 8001966: 4b9f ldr r3, [pc, #636] ; (8001be4 ) 8001968: 781b ldrb r3, [r3, #0] 800196a: b2db uxtb r3, r3 800196c: 2b17 cmp r3, #23 800196e: d803 bhi.n 8001978 8001970: 4b9d ldr r3, [pc, #628] ; (8001be8 ) 8001972: 2202 movs r2, #2 8001974: 601a str r2, [r3, #0] 8001976: e00c b.n 8001992 else if(menupos >= Kikdt_4 && menupos <= Kpt_4) ACTIVE_CHANNEL = Ch4; 8001978: 4b9a ldr r3, [pc, #616] ; (8001be4 ) 800197a: 781b ldrb r3, [r3, #0] 800197c: b2db uxtb r3, r3 800197e: 2b19 cmp r3, #25 8001980: d907 bls.n 8001992 8001982: 4b98 ldr r3, [pc, #608] ; (8001be4 ) 8001984: 781b ldrb r3, [r3, #0] 8001986: b2db uxtb r3, r3 8001988: 2b1f cmp r3, #31 800198a: d802 bhi.n 8001992 800198c: 4b96 ldr r3, [pc, #600] ; (8001be8 ) 800198e: 2203 movs r2, #3 8001990: 601a str r2, [r3, #0] DoKeyDN(); 8001992: f002 f877 bl 8003a84 break; 8001996: f000 bc6a b.w 800226e if(menu == MAIN) 800199a: 4b94 ldr r3, [pc, #592] ; (8001bec ) 800199c: 781b ldrb r3, [r3, #0] 800199e: b2db uxtb r3, r3 80019a0: 2b00 cmp r3, #0 80019a2: f040 812b bne.w 8001bfc if(CNT_CHANNELS < 5) 80019a6: 4b92 ldr r3, [pc, #584] ; (8001bf0 ) 80019a8: 681b ldr r3, [r3, #0] 80019aa: 2b04 cmp r3, #4 80019ac: f200 845f bhi.w 800226e if(ACTIVE_CHANNEL == Ch1) 80019b0: 4b8d ldr r3, [pc, #564] ; (8001be8 ) 80019b2: 681b ldr r3, [r3, #0] 80019b4: 2b00 cmp r3, #0 80019b6: d143 bne.n 8001a40 if(menupos == Out) 80019b8: 4b8a ldr r3, [pc, #552] ; (8001be4 ) 80019ba: 781b ldrb r3, [r3, #0] 80019bc: b2db uxtb r3, r3 80019be: 2b02 cmp r3, #2 80019c0: d13a bne.n 8001a38 if(focused) 80019c2: 4b8c ldr r3, [pc, #560] ; (8001bf4 ) 80019c4: 781b ldrb r3, [r3, #0] 80019c6: b2db uxtb r3, r3 80019c8: 2b00 cmp r3, #0 80019ca: d003 beq.n 80019d4 SetDN(); 80019cc: f001 f888 bl 8002ae0 break; 80019d0: f000 bc4d b.w 800226e ACTIVE_CHANNEL = Ch2; 80019d4: 4b84 ldr r3, [pc, #528] ; (8001be8 ) 80019d6: 2201 movs r2, #1 80019d8: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 80019da: 4b83 ldr r3, [pc, #524] ; (8001be8 ) 80019dc: 681b ldr r3, [r3, #0] 80019de: 2201 movs r2, #1 80019e0: fa02 f303 lsl.w r3, r2, r3 80019e4: 461a mov r2, r3 80019e6: 4b84 ldr r3, [pc, #528] ; (8001bf8 ) 80019e8: 681b ldr r3, [r3, #0] 80019ea: 4013 ands r3, r2 80019ec: 2b00 cmp r3, #0 80019ee: d11e bne.n 8001a2e ACTIVE_CHANNEL = Ch3; 80019f0: 4b7d ldr r3, [pc, #500] ; (8001be8 ) 80019f2: 2202 movs r2, #2 80019f4: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 80019f6: 4b7c ldr r3, [pc, #496] ; (8001be8 ) 80019f8: 681b ldr r3, [r3, #0] 80019fa: 2201 movs r2, #1 80019fc: fa02 f303 lsl.w r3, r2, r3 8001a00: 461a mov r2, r3 8001a02: 4b7d ldr r3, [pc, #500] ; (8001bf8 ) 8001a04: 681b ldr r3, [r3, #0] 8001a06: 4013 ands r3, r2 8001a08: 2b00 cmp r3, #0 8001a0a: d110 bne.n 8001a2e ACTIVE_CHANNEL = Ch4; 8001a0c: 4b76 ldr r3, [pc, #472] ; (8001be8 ) 8001a0e: 2203 movs r2, #3 8001a10: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001a12: 4b75 ldr r3, [pc, #468] ; (8001be8 ) 8001a14: 681b ldr r3, [r3, #0] 8001a16: 2201 movs r2, #1 8001a18: fa02 f303 lsl.w r3, r2, r3 8001a1c: 461a mov r2, r3 8001a1e: 4b76 ldr r3, [pc, #472] ; (8001bf8 ) 8001a20: 681b ldr r3, [r3, #0] 8001a22: 4013 ands r3, r2 8001a24: 2b00 cmp r3, #0 8001a26: d102 bne.n 8001a2e ACTIVE_CHANNEL = Ch1; 8001a28: 4b6f ldr r3, [pc, #444] ; (8001be8 ) 8001a2a: 2200 movs r2, #0 8001a2c: 601a str r2, [r3, #0] menupos = Hp; 8001a2e: 4b6d ldr r3, [pc, #436] ; (8001be4 ) 8001a30: 2200 movs r2, #0 8001a32: 701a strb r2, [r3, #0] break; 8001a34: f000 bc1b b.w 800226e SetDN(); 8001a38: f001 f852 bl 8002ae0 break; 8001a3c: f000 bc17 b.w 800226e if(ACTIVE_CHANNEL == Ch2) 8001a40: 4b69 ldr r3, [pc, #420] ; (8001be8 ) 8001a42: 681b ldr r3, [r3, #0] 8001a44: 2b01 cmp r3, #1 8001a46: d141 bne.n 8001acc if(menupos == Out) 8001a48: 4b66 ldr r3, [pc, #408] ; (8001be4 ) 8001a4a: 781b ldrb r3, [r3, #0] 8001a4c: b2db uxtb r3, r3 8001a4e: 2b02 cmp r3, #2 8001a50: d139 bne.n 8001ac6 if(focused) 8001a52: 4b68 ldr r3, [pc, #416] ; (8001bf4 ) 8001a54: 781b ldrb r3, [r3, #0] 8001a56: b2db uxtb r3, r3 8001a58: 2b00 cmp r3, #0 8001a5a: d003 beq.n 8001a64 SetDN(); 8001a5c: f001 f840 bl 8002ae0 break; 8001a60: f000 bc05 b.w 800226e ACTIVE_CHANNEL = Ch3; 8001a64: 4b60 ldr r3, [pc, #384] ; (8001be8 ) 8001a66: 2202 movs r2, #2 8001a68: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001a6a: 4b5f ldr r3, [pc, #380] ; (8001be8 ) 8001a6c: 681b ldr r3, [r3, #0] 8001a6e: 2201 movs r2, #1 8001a70: fa02 f303 lsl.w r3, r2, r3 8001a74: 461a mov r2, r3 8001a76: 4b60 ldr r3, [pc, #384] ; (8001bf8 ) 8001a78: 681b ldr r3, [r3, #0] 8001a7a: 4013 ands r3, r2 8001a7c: 2b00 cmp r3, #0 8001a7e: d11e bne.n 8001abe ACTIVE_CHANNEL = Ch4; 8001a80: 4b59 ldr r3, [pc, #356] ; (8001be8 ) 8001a82: 2203 movs r2, #3 8001a84: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001a86: 4b58 ldr r3, [pc, #352] ; (8001be8 ) 8001a88: 681b ldr r3, [r3, #0] 8001a8a: 2201 movs r2, #1 8001a8c: fa02 f303 lsl.w r3, r2, r3 8001a90: 461a mov r2, r3 8001a92: 4b59 ldr r3, [pc, #356] ; (8001bf8 ) 8001a94: 681b ldr r3, [r3, #0] 8001a96: 4013 ands r3, r2 8001a98: 2b00 cmp r3, #0 8001a9a: d110 bne.n 8001abe ACTIVE_CHANNEL = Ch1; 8001a9c: 4b52 ldr r3, [pc, #328] ; (8001be8 ) 8001a9e: 2200 movs r2, #0 8001aa0: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001aa2: 4b51 ldr r3, [pc, #324] ; (8001be8 ) 8001aa4: 681b ldr r3, [r3, #0] 8001aa6: 2201 movs r2, #1 8001aa8: fa02 f303 lsl.w r3, r2, r3 8001aac: 461a mov r2, r3 8001aae: 4b52 ldr r3, [pc, #328] ; (8001bf8 ) 8001ab0: 681b ldr r3, [r3, #0] 8001ab2: 4013 ands r3, r2 8001ab4: 2b00 cmp r3, #0 8001ab6: d102 bne.n 8001abe ACTIVE_CHANNEL = Ch2; 8001ab8: 4b4b ldr r3, [pc, #300] ; (8001be8 ) 8001aba: 2201 movs r2, #1 8001abc: 601a str r2, [r3, #0] menupos = Hp; 8001abe: 4b49 ldr r3, [pc, #292] ; (8001be4 ) 8001ac0: 2200 movs r2, #0 8001ac2: 701a strb r2, [r3, #0] break; 8001ac4: e3d3 b.n 800226e SetDN(); 8001ac6: f001 f80b bl 8002ae0 break; 8001aca: e3d0 b.n 800226e if(ACTIVE_CHANNEL == Ch3) 8001acc: 4b46 ldr r3, [pc, #280] ; (8001be8 ) 8001ace: 681b ldr r3, [r3, #0] 8001ad0: 2b02 cmp r3, #2 8001ad2: d140 bne.n 8001b56 if(menupos == Out) 8001ad4: 4b43 ldr r3, [pc, #268] ; (8001be4 ) 8001ad6: 781b ldrb r3, [r3, #0] 8001ad8: b2db uxtb r3, r3 8001ada: 2b02 cmp r3, #2 8001adc: d138 bne.n 8001b50 if(focused) 8001ade: 4b45 ldr r3, [pc, #276] ; (8001bf4 ) 8001ae0: 781b ldrb r3, [r3, #0] 8001ae2: b2db uxtb r3, r3 8001ae4: 2b00 cmp r3, #0 8001ae6: d002 beq.n 8001aee SetDN(); 8001ae8: f000 fffa bl 8002ae0 break; 8001aec: e3bf b.n 800226e ACTIVE_CHANNEL = Ch4; 8001aee: 4b3e ldr r3, [pc, #248] ; (8001be8 ) 8001af0: 2203 movs r2, #3 8001af2: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001af4: 4b3c ldr r3, [pc, #240] ; (8001be8 ) 8001af6: 681b ldr r3, [r3, #0] 8001af8: 2201 movs r2, #1 8001afa: fa02 f303 lsl.w r3, r2, r3 8001afe: 461a mov r2, r3 8001b00: 4b3d ldr r3, [pc, #244] ; (8001bf8 ) 8001b02: 681b ldr r3, [r3, #0] 8001b04: 4013 ands r3, r2 8001b06: 2b00 cmp r3, #0 8001b08: d11e bne.n 8001b48 ACTIVE_CHANNEL = Ch1; 8001b0a: 4b37 ldr r3, [pc, #220] ; (8001be8 ) 8001b0c: 2200 movs r2, #0 8001b0e: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001b10: 4b35 ldr r3, [pc, #212] ; (8001be8 ) 8001b12: 681b ldr r3, [r3, #0] 8001b14: 2201 movs r2, #1 8001b16: fa02 f303 lsl.w r3, r2, r3 8001b1a: 461a mov r2, r3 8001b1c: 4b36 ldr r3, [pc, #216] ; (8001bf8 ) 8001b1e: 681b ldr r3, [r3, #0] 8001b20: 4013 ands r3, r2 8001b22: 2b00 cmp r3, #0 8001b24: d110 bne.n 8001b48 ACTIVE_CHANNEL = Ch2; 8001b26: 4b30 ldr r3, [pc, #192] ; (8001be8 ) 8001b28: 2201 movs r2, #1 8001b2a: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001b2c: 4b2e ldr r3, [pc, #184] ; (8001be8 ) 8001b2e: 681b ldr r3, [r3, #0] 8001b30: 2201 movs r2, #1 8001b32: fa02 f303 lsl.w r3, r2, r3 8001b36: 461a mov r2, r3 8001b38: 4b2f ldr r3, [pc, #188] ; (8001bf8 ) 8001b3a: 681b ldr r3, [r3, #0] 8001b3c: 4013 ands r3, r2 8001b3e: 2b00 cmp r3, #0 8001b40: d102 bne.n 8001b48 ACTIVE_CHANNEL = Ch3; 8001b42: 4b29 ldr r3, [pc, #164] ; (8001be8 ) 8001b44: 2202 movs r2, #2 8001b46: 601a str r2, [r3, #0] menupos = Hp; 8001b48: 4b26 ldr r3, [pc, #152] ; (8001be4 ) 8001b4a: 2200 movs r2, #0 8001b4c: 701a strb r2, [r3, #0] break; 8001b4e: e38e b.n 800226e SetDN(); 8001b50: f000 ffc6 bl 8002ae0 break; 8001b54: e38b b.n 800226e if(ACTIVE_CHANNEL == Ch4) 8001b56: 4b24 ldr r3, [pc, #144] ; (8001be8 ) 8001b58: 681b ldr r3, [r3, #0] 8001b5a: 2b03 cmp r3, #3 8001b5c: f040 8387 bne.w 800226e if(menupos == Out) 8001b60: 4b20 ldr r3, [pc, #128] ; (8001be4 ) 8001b62: 781b ldrb r3, [r3, #0] 8001b64: b2db uxtb r3, r3 8001b66: 2b02 cmp r3, #2 8001b68: d138 bne.n 8001bdc if(focused) 8001b6a: 4b22 ldr r3, [pc, #136] ; (8001bf4 ) 8001b6c: 781b ldrb r3, [r3, #0] 8001b6e: b2db uxtb r3, r3 8001b70: 2b00 cmp r3, #0 8001b72: d002 beq.n 8001b7a SetDN(); 8001b74: f000 ffb4 bl 8002ae0 break; 8001b78: e379 b.n 800226e ACTIVE_CHANNEL = Ch1; 8001b7a: 4b1b ldr r3, [pc, #108] ; (8001be8 ) 8001b7c: 2200 movs r2, #0 8001b7e: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001b80: 4b19 ldr r3, [pc, #100] ; (8001be8 ) 8001b82: 681b ldr r3, [r3, #0] 8001b84: 2201 movs r2, #1 8001b86: fa02 f303 lsl.w r3, r2, r3 8001b8a: 461a mov r2, r3 8001b8c: 4b1a ldr r3, [pc, #104] ; (8001bf8 ) 8001b8e: 681b ldr r3, [r3, #0] 8001b90: 4013 ands r3, r2 8001b92: 2b00 cmp r3, #0 8001b94: d11e bne.n 8001bd4 ACTIVE_CHANNEL = Ch2; 8001b96: 4b14 ldr r3, [pc, #80] ; (8001be8 ) 8001b98: 2201 movs r2, #1 8001b9a: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001b9c: 4b12 ldr r3, [pc, #72] ; (8001be8 ) 8001b9e: 681b ldr r3, [r3, #0] 8001ba0: 2201 movs r2, #1 8001ba2: fa02 f303 lsl.w r3, r2, r3 8001ba6: 461a mov r2, r3 8001ba8: 4b13 ldr r3, [pc, #76] ; (8001bf8 ) 8001baa: 681b ldr r3, [r3, #0] 8001bac: 4013 ands r3, r2 8001bae: 2b00 cmp r3, #0 8001bb0: d110 bne.n 8001bd4 ACTIVE_CHANNEL = Ch3; 8001bb2: 4b0d ldr r3, [pc, #52] ; (8001be8 ) 8001bb4: 2202 movs r2, #2 8001bb6: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001bb8: 4b0b ldr r3, [pc, #44] ; (8001be8 ) 8001bba: 681b ldr r3, [r3, #0] 8001bbc: 2201 movs r2, #1 8001bbe: fa02 f303 lsl.w r3, r2, r3 8001bc2: 461a mov r2, r3 8001bc4: 4b0c ldr r3, [pc, #48] ; (8001bf8 ) 8001bc6: 681b ldr r3, [r3, #0] 8001bc8: 4013 ands r3, r2 8001bca: 2b00 cmp r3, #0 8001bcc: d102 bne.n 8001bd4 ACTIVE_CHANNEL = Ch4; 8001bce: 4b06 ldr r3, [pc, #24] ; (8001be8 ) 8001bd0: 2203 movs r2, #3 8001bd2: 601a str r2, [r3, #0] menupos = Hp; 8001bd4: 4b03 ldr r3, [pc, #12] ; (8001be4 ) 8001bd6: 2200 movs r2, #0 8001bd8: 701a strb r2, [r3, #0] break; 8001bda: e348 b.n 800226e SetDN(); 8001bdc: f000 ff80 bl 8002ae0 break; 8001be0: e345 b.n 800226e 8001be2: bf00 nop 8001be4: 20020010 .word 0x20020010 8001be8: 2006ba68 .word 0x2006ba68 8001bec: 200209d9 .word 0x200209d9 8001bf0: 2006ba6c .word 0x2006ba6c 8001bf4: 200209e4 .word 0x200209e4 8001bf8: 2002002c .word 0x2002002c if(menu == CALIBR_00) 8001bfc: 4ba1 ldr r3, [pc, #644] ; (8001e84 ) 8001bfe: 781b ldrb r3, [r3, #0] 8001c00: b2db uxtb r3, r3 8001c02: 2b01 cmp r3, #1 8001c04: d10d bne.n 8001c22 if(menupos < Ch5) menupos++; 8001c06: 4ba0 ldr r3, [pc, #640] ; (8001e88 ) 8001c08: 781b ldrb r3, [r3, #0] 8001c0a: b2db uxtb r3, r3 8001c0c: 2b03 cmp r3, #3 8001c0e: f200 832e bhi.w 800226e 8001c12: 4b9d ldr r3, [pc, #628] ; (8001e88 ) 8001c14: 781b ldrb r3, [r3, #0] 8001c16: b2db uxtb r3, r3 8001c18: 3301 adds r3, #1 8001c1a: b2da uxtb r2, r3 8001c1c: 4b9a ldr r3, [pc, #616] ; (8001e88 ) 8001c1e: 701a strb r2, [r3, #0] break; 8001c20: e325 b.n 800226e if(menu >= CALIBR_0 && menu <= CALIBR_22) 8001c22: 4b98 ldr r3, [pc, #608] ; (8001e84 ) 8001c24: 781b ldrb r3, [r3, #0] 8001c26: b2db uxtb r3, r3 8001c28: 2b01 cmp r3, #1 8001c2a: f240 8320 bls.w 800226e 8001c2e: 4b95 ldr r3, [pc, #596] ; (8001e84 ) 8001c30: 781b ldrb r3, [r3, #0] 8001c32: b2db uxtb r3, r3 8001c34: 2b18 cmp r3, #24 8001c36: f200 831a bhi.w 800226e if(menupos == Set100) 8001c3a: 4b93 ldr r3, [pc, #588] ; (8001e88 ) 8001c3c: 781b ldrb r3, [r3, #0] 8001c3e: b2db uxtb r3, r3 8001c40: 2b00 cmp r3, #0 8001c42: d103 bne.n 8001c4c menupos = Set_100; 8001c44: 4b90 ldr r3, [pc, #576] ; (8001e88 ) 8001c46: 2201 movs r2, #1 8001c48: 701a strb r2, [r3, #0] break; 8001c4a: e310 b.n 800226e if(menupos == Set_100) 8001c4c: 4b8e ldr r3, [pc, #568] ; (8001e88 ) 8001c4e: 781b ldrb r3, [r3, #0] 8001c50: b2db uxtb r3, r3 8001c52: 2b01 cmp r3, #1 8001c54: d103 bne.n 8001c5e menupos = Set10; 8001c56: 4b8c ldr r3, [pc, #560] ; (8001e88 ) 8001c58: 2202 movs r2, #2 8001c5a: 701a strb r2, [r3, #0] break; 8001c5c: e307 b.n 800226e if(menupos == Set10) 8001c5e: 4b8a ldr r3, [pc, #552] ; (8001e88 ) 8001c60: 781b ldrb r3, [r3, #0] 8001c62: b2db uxtb r3, r3 8001c64: 2b02 cmp r3, #2 8001c66: d103 bne.n 8001c70 menupos = Set_10; 8001c68: 4b87 ldr r3, [pc, #540] ; (8001e88 ) 8001c6a: 2203 movs r2, #3 8001c6c: 701a strb r2, [r3, #0] break; 8001c6e: e2fe b.n 800226e if(menupos == Set_10) 8001c70: 4b85 ldr r3, [pc, #532] ; (8001e88 ) 8001c72: 781b ldrb r3, [r3, #0] 8001c74: b2db uxtb r3, r3 8001c76: 2b03 cmp r3, #3 8001c78: d103 bne.n 8001c82 menupos = Set1; 8001c7a: 4b83 ldr r3, [pc, #524] ; (8001e88 ) 8001c7c: 2204 movs r2, #4 8001c7e: 701a strb r2, [r3, #0] break; 8001c80: e2f5 b.n 800226e if(menupos == Set1) 8001c82: 4b81 ldr r3, [pc, #516] ; (8001e88 ) 8001c84: 781b ldrb r3, [r3, #0] 8001c86: b2db uxtb r3, r3 8001c88: 2b04 cmp r3, #4 8001c8a: d103 bne.n 8001c94 menupos = Set_1; 8001c8c: 4b7e ldr r3, [pc, #504] ; (8001e88 ) 8001c8e: 2205 movs r2, #5 8001c90: 701a strb r2, [r3, #0] break; 8001c92: e2ec b.n 800226e if(menupos == Set_1) 8001c94: 4b7c ldr r3, [pc, #496] ; (8001e88 ) 8001c96: 781b ldrb r3, [r3, #0] 8001c98: b2db uxtb r3, r3 8001c9a: 2b05 cmp r3, #5 8001c9c: f040 82e7 bne.w 800226e menupos = Next; 8001ca0: 4b79 ldr r3, [pc, #484] ; (8001e88 ) 8001ca2: 2206 movs r2, #6 8001ca4: 701a strb r2, [r3, #0] break; 8001ca6: e2e2 b.n 800226e case KEY_OK: // TODO KEY OK { if(menu == OPTIONS) 8001ca8: 4b76 ldr r3, [pc, #472] ; (8001e84 ) 8001caa: 781b ldrb r3, [r3, #0] 8001cac: b2db uxtb r3, r3 8001cae: 2b19 cmp r3, #25 8001cb0: d13e bne.n 8001d30 { if(menupos == Back) 8001cb2: 4b75 ldr r3, [pc, #468] ; (8001e88 ) 8001cb4: 781b ldrb r3, [r3, #0] 8001cb6: b2db uxtb r3, r3 8001cb8: 2bff cmp r3, #255 ; 0xff 8001cba: d10c bne.n 8001cd6 { ACTIVE_CHANNEL = LAST_ACTIVE_CHANNEL; 8001cbc: 4b73 ldr r3, [pc, #460] ; (8001e8c ) 8001cbe: 681b ldr r3, [r3, #0] 8001cc0: 4a73 ldr r2, [pc, #460] ; (8001e90 ) 8001cc2: 6013 str r3, [r2, #0] menupos = lastmenupos; 8001cc4: 4b73 ldr r3, [pc, #460] ; (8001e94 ) 8001cc6: 781b ldrb r3, [r3, #0] 8001cc8: b2da uxtb r2, r3 8001cca: 4b6f ldr r3, [pc, #444] ; (8001e88 ) 8001ccc: 701a strb r2, [r3, #0] menu = MAIN; 8001cce: 4b6d ldr r3, [pc, #436] ; (8001e84 ) 8001cd0: 2200 movs r2, #0 8001cd2: 701a strb r2, [r3, #0] WriteCorr(ACTIVE_CHANNEL, (menu - 2), 100); } } } } break; 8001cd4: e2cd b.n 8002272 if(menupos == Inputs) 8001cd6: 4b6c ldr r3, [pc, #432] ; (8001e88 ) 8001cd8: 781b ldrb r3, [r3, #0] 8001cda: b2db uxtb r3, r3 8001cdc: 2b00 cmp r3, #0 8001cde: d10b bne.n 8001cf8 lastmenupos = menupos; 8001ce0: 4b69 ldr r3, [pc, #420] ; (8001e88 ) 8001ce2: 781b ldrb r3, [r3, #0] 8001ce4: b2da uxtb r2, r3 8001ce6: 4b6b ldr r3, [pc, #428] ; (8001e94 ) 8001ce8: 701a strb r2, [r3, #0] menupos = Sens_1; 8001cea: 4b67 ldr r3, [pc, #412] ; (8001e88 ) 8001cec: 2200 movs r2, #0 8001cee: 701a strb r2, [r3, #0] menu = SETTINGS; 8001cf0: 4b64 ldr r3, [pc, #400] ; (8001e84 ) 8001cf2: 222b movs r2, #43 ; 0x2b 8001cf4: 701a strb r2, [r3, #0] break; 8001cf6: e2bc b.n 8002272 if(menupos == Lang) 8001cf8: 4b63 ldr r3, [pc, #396] ; (8001e88 ) 8001cfa: 781b ldrb r3, [r3, #0] 8001cfc: b2db uxtb r3, r3 8001cfe: 2b01 cmp r3, #1 8001d00: d10d bne.n 8001d1e focused ^= 1; 8001d02: 4b65 ldr r3, [pc, #404] ; (8001e98 ) 8001d04: 781b ldrb r3, [r3, #0] 8001d06: b2db uxtb r3, r3 8001d08: f083 0301 eor.w r3, r3, #1 8001d0c: b2db uxtb r3, r3 8001d0e: 2b00 cmp r3, #0 8001d10: bf14 ite ne 8001d12: 2301 movne r3, #1 8001d14: 2300 moveq r3, #0 8001d16: b2da uxtb r2, r3 8001d18: 4b5f ldr r3, [pc, #380] ; (8001e98 ) 8001d1a: 701a strb r2, [r3, #0] break; 8001d1c: e2a9 b.n 8002272 if(menupos == PowerOff) 8001d1e: 4b5a ldr r3, [pc, #360] ; (8001e88 ) 8001d20: 781b ldrb r3, [r3, #0] 8001d22: b2db uxtb r3, r3 8001d24: 2b02 cmp r3, #2 8001d26: f040 82a4 bne.w 8002272 Off(); 8001d2a: f7fe fc15 bl 8000558 break; 8001d2e: e2a0 b.n 8002272 if(menu == SETTINGS) 8001d30: 4b54 ldr r3, [pc, #336] ; (8001e84 ) 8001d32: 781b ldrb r3, [r3, #0] 8001d34: b2db uxtb r3, r3 8001d36: 2b2b cmp r3, #43 ; 0x2b 8001d38: f040 8191 bne.w 800205e if(menupos == Back) 8001d3c: 4b52 ldr r3, [pc, #328] ; (8001e88 ) 8001d3e: 781b ldrb r3, [r3, #0] 8001d40: b2db uxtb r3, r3 8001d42: 2bff cmp r3, #255 ; 0xff 8001d44: d108 bne.n 8001d58 menupos = lastmenupos; 8001d46: 4b53 ldr r3, [pc, #332] ; (8001e94 ) 8001d48: 781b ldrb r3, [r3, #0] 8001d4a: b2da uxtb r2, r3 8001d4c: 4b4e ldr r3, [pc, #312] ; (8001e88 ) 8001d4e: 701a strb r2, [r3, #0] menu = OPTIONS; 8001d50: 4b4c ldr r3, [pc, #304] ; (8001e84 ) 8001d52: 2219 movs r2, #25 8001d54: 701a strb r2, [r3, #0] break; 8001d56: e28c b.n 8002272 if(menupos == Val_1) 8001d58: 4b4b ldr r3, [pc, #300] ; (8001e88 ) 8001d5a: 781b ldrb r3, [r3, #0] 8001d5c: b2db uxtb r3, r3 8001d5e: 2b01 cmp r3, #1 8001d60: d10d bne.n 8001d7e focused ^= 1; 8001d62: 4b4d ldr r3, [pc, #308] ; (8001e98 ) 8001d64: 781b ldrb r3, [r3, #0] 8001d66: b2db uxtb r3, r3 8001d68: f083 0301 eor.w r3, r3, #1 8001d6c: b2db uxtb r3, r3 8001d6e: 2b00 cmp r3, #0 8001d70: bf14 ite ne 8001d72: 2301 movne r3, #1 8001d74: 2300 moveq r3, #0 8001d76: b2da uxtb r2, r3 8001d78: 4b47 ldr r3, [pc, #284] ; (8001e98 ) 8001d7a: 701a strb r2, [r3, #0] break; 8001d7c: e279 b.n 8002272 if(menupos == Val_2) 8001d7e: 4b42 ldr r3, [pc, #264] ; (8001e88 ) 8001d80: 781b ldrb r3, [r3, #0] 8001d82: b2db uxtb r3, r3 8001d84: 2b09 cmp r3, #9 8001d86: d10d bne.n 8001da4 focused ^= 1; 8001d88: 4b43 ldr r3, [pc, #268] ; (8001e98 ) 8001d8a: 781b ldrb r3, [r3, #0] 8001d8c: b2db uxtb r3, r3 8001d8e: f083 0301 eor.w r3, r3, #1 8001d92: b2db uxtb r3, r3 8001d94: 2b00 cmp r3, #0 8001d96: bf14 ite ne 8001d98: 2301 movne r3, #1 8001d9a: 2300 moveq r3, #0 8001d9c: b2da uxtb r2, r3 8001d9e: 4b3e ldr r3, [pc, #248] ; (8001e98 ) 8001da0: 701a strb r2, [r3, #0] break; 8001da2: e266 b.n 8002272 if(menupos == Val_3) 8001da4: 4b38 ldr r3, [pc, #224] ; (8001e88 ) 8001da6: 781b ldrb r3, [r3, #0] 8001da8: b2db uxtb r3, r3 8001daa: 2b11 cmp r3, #17 8001dac: d10d bne.n 8001dca focused ^= 1; 8001dae: 4b3a ldr r3, [pc, #232] ; (8001e98 ) 8001db0: 781b ldrb r3, [r3, #0] 8001db2: b2db uxtb r3, r3 8001db4: f083 0301 eor.w r3, r3, #1 8001db8: b2db uxtb r3, r3 8001dba: 2b00 cmp r3, #0 8001dbc: bf14 ite ne 8001dbe: 2301 movne r3, #1 8001dc0: 2300 moveq r3, #0 8001dc2: b2da uxtb r2, r3 8001dc4: 4b34 ldr r3, [pc, #208] ; (8001e98 ) 8001dc6: 701a strb r2, [r3, #0] break; 8001dc8: e253 b.n 8002272 if(menupos == Val_4) 8001dca: 4b2f ldr r3, [pc, #188] ; (8001e88 ) 8001dcc: 781b ldrb r3, [r3, #0] 8001dce: b2db uxtb r3, r3 8001dd0: 2b19 cmp r3, #25 8001dd2: d10d bne.n 8001df0 focused ^= 1; 8001dd4: 4b30 ldr r3, [pc, #192] ; (8001e98 ) 8001dd6: 781b ldrb r3, [r3, #0] 8001dd8: b2db uxtb r3, r3 8001dda: f083 0301 eor.w r3, r3, #1 8001dde: b2db uxtb r3, r3 8001de0: 2b00 cmp r3, #0 8001de2: bf14 ite ne 8001de4: 2301 movne r3, #1 8001de6: 2300 moveq r3, #0 8001de8: b2da uxtb r2, r3 8001dea: 4b2b ldr r3, [pc, #172] ; (8001e98 ) 8001dec: 701a strb r2, [r3, #0] break; 8001dee: e240 b.n 8002272 if(menupos == Sens_1) 8001df0: 4b25 ldr r3, [pc, #148] ; (8001e88 ) 8001df2: 781b ldrb r3, [r3, #0] 8001df4: b2db uxtb r3, r3 8001df6: 2b00 cmp r3, #0 8001df8: d10f bne.n 8001e1a memcpy((void *) &pardata_old, (void *) &pardata, sizeof(UserData_TypeDef)); 8001dfa: 4a28 ldr r2, [pc, #160] ; (8001e9c ) 8001dfc: 4b28 ldr r3, [pc, #160] ; (8001ea0 ) 8001dfe: 4610 mov r0, r2 8001e00: 4619 mov r1, r3 8001e02: f44f 7302 mov.w r3, #520 ; 0x208 8001e06: 461a mov r2, r3 8001e08: f014 fb5c bl 80164c4 focused = true; 8001e0c: 4b22 ldr r3, [pc, #136] ; (8001e98 ) 8001e0e: 2201 movs r2, #1 8001e10: 701a strb r2, [r3, #0] menupos = Kikdt_1; 8001e12: 4b1d ldr r3, [pc, #116] ; (8001e88 ) 8001e14: 2202 movs r2, #2 8001e16: 701a strb r2, [r3, #0] break; 8001e18: e22b b.n 8002272 if(menupos >= Kikdt_1 && menupos <= Kpt_1) 8001e1a: 4b1b ldr r3, [pc, #108] ; (8001e88 ) 8001e1c: 781b ldrb r3, [r3, #0] 8001e1e: b2db uxtb r3, r3 8001e20: 2b01 cmp r3, #1 8001e22: d93f bls.n 8001ea4 8001e24: 4b18 ldr r3, [pc, #96] ; (8001e88 ) 8001e26: 781b ldrb r3, [r3, #0] 8001e28: b2db uxtb r3, r3 8001e2a: 2b07 cmp r3, #7 8001e2c: d83a bhi.n 8001ea4 if(menupos < Kpt_1) 8001e2e: 4b16 ldr r3, [pc, #88] ; (8001e88 ) 8001e30: 781b ldrb r3, [r3, #0] 8001e32: b2db uxtb r3, r3 8001e34: 2b06 cmp r3, #6 8001e36: d80a bhi.n 8001e4e focused = true; 8001e38: 4b17 ldr r3, [pc, #92] ; (8001e98 ) 8001e3a: 2201 movs r2, #1 8001e3c: 701a strb r2, [r3, #0] menupos++; 8001e3e: 4b12 ldr r3, [pc, #72] ; (8001e88 ) 8001e40: 781b ldrb r3, [r3, #0] 8001e42: b2db uxtb r3, r3 8001e44: 3301 adds r3, #1 8001e46: b2da uxtb r2, r3 8001e48: 4b0f ldr r3, [pc, #60] ; (8001e88 ) 8001e4a: 701a strb r2, [r3, #0] if(menupos < Kpt_1) 8001e4c: e1e4 b.n 8002218 focused = false; 8001e4e: 4b12 ldr r3, [pc, #72] ; (8001e98 ) 8001e50: 2200 movs r2, #0 8001e52: 701a strb r2, [r3, #0] menupos = Sens_1; 8001e54: 4b0c ldr r3, [pc, #48] ; (8001e88 ) 8001e56: 2200 movs r2, #0 8001e58: 701a strb r2, [r3, #0] if(WriteChannelSens(Ch1)) 8001e5a: 2000 movs r0, #0 8001e5c: f00e fea4 bl 8010ba8 8001e60: 4603 mov r3, r0 8001e62: 2b00 cmp r3, #0 8001e64: d009 beq.n 8001e7a memcpy((void *) &pardata, (void *) &pardata_old, sizeof(UserData_TypeDef)); 8001e66: 4a0e ldr r2, [pc, #56] ; (8001ea0 ) 8001e68: 4b0c ldr r3, [pc, #48] ; (8001e9c ) 8001e6a: 4610 mov r0, r2 8001e6c: 4619 mov r1, r3 8001e6e: f44f 7302 mov.w r3, #520 ; 0x208 8001e72: 461a mov r2, r3 8001e74: f014 fb26 bl 80164c4 if(menupos < Kpt_1) 8001e78: e1ce b.n 8002218 WriteChannel(Ch1); 8001e7a: 2000 movs r0, #0 8001e7c: f00e fb66 bl 801054c if(menupos < Kpt_1) 8001e80: e1ca b.n 8002218 8001e82: bf00 nop 8001e84: 200209d9 .word 0x200209d9 8001e88: 20020010 .word 0x20020010 8001e8c: 2006ba64 .word 0x2006ba64 8001e90: 2006ba68 .word 0x2006ba68 8001e94: 20020011 .word 0x20020011 8001e98: 200209e4 .word 0x200209e4 8001e9c: 2006bf1c .word 0x2006bf1c 8001ea0: 2006bca8 .word 0x2006bca8 if(menupos == Sens_2) 8001ea4: 4ba9 ldr r3, [pc, #676] ; (800214c ) 8001ea6: 781b ldrb r3, [r3, #0] 8001ea8: b2db uxtb r3, r3 8001eaa: 2b08 cmp r3, #8 8001eac: d10f bne.n 8001ece memcpy((void *) &pardata_old, (void *) &pardata, sizeof(UserData_TypeDef)); 8001eae: 4aa8 ldr r2, [pc, #672] ; (8002150 ) 8001eb0: 4ba8 ldr r3, [pc, #672] ; (8002154 ) 8001eb2: 4610 mov r0, r2 8001eb4: 4619 mov r1, r3 8001eb6: f44f 7302 mov.w r3, #520 ; 0x208 8001eba: 461a mov r2, r3 8001ebc: f014 fb02 bl 80164c4 focused = true; 8001ec0: 4ba5 ldr r3, [pc, #660] ; (8002158 ) 8001ec2: 2201 movs r2, #1 8001ec4: 701a strb r2, [r3, #0] menupos = Kikdt_2; 8001ec6: 4ba1 ldr r3, [pc, #644] ; (800214c ) 8001ec8: 220a movs r2, #10 8001eca: 701a strb r2, [r3, #0] break; 8001ecc: e1d1 b.n 8002272 if(menupos >= Kikdt_2 && menupos <= Kpt_2) 8001ece: 4b9f ldr r3, [pc, #636] ; (800214c ) 8001ed0: 781b ldrb r3, [r3, #0] 8001ed2: b2db uxtb r3, r3 8001ed4: 2b09 cmp r3, #9 8001ed6: d92e bls.n 8001f36 8001ed8: 4b9c ldr r3, [pc, #624] ; (800214c ) 8001eda: 781b ldrb r3, [r3, #0] 8001edc: b2db uxtb r3, r3 8001ede: 2b0f cmp r3, #15 8001ee0: d829 bhi.n 8001f36 if(menupos < Kpt_2) 8001ee2: 4b9a ldr r3, [pc, #616] ; (800214c ) 8001ee4: 781b ldrb r3, [r3, #0] 8001ee6: b2db uxtb r3, r3 8001ee8: 2b0e cmp r3, #14 8001eea: d80a bhi.n 8001f02 focused = true; 8001eec: 4b9a ldr r3, [pc, #616] ; (8002158 ) 8001eee: 2201 movs r2, #1 8001ef0: 701a strb r2, [r3, #0] menupos++; 8001ef2: 4b96 ldr r3, [pc, #600] ; (800214c ) 8001ef4: 781b ldrb r3, [r3, #0] 8001ef6: b2db uxtb r3, r3 8001ef8: 3301 adds r3, #1 8001efa: b2da uxtb r2, r3 8001efc: 4b93 ldr r3, [pc, #588] ; (800214c ) 8001efe: 701a strb r2, [r3, #0] if(menupos < Kpt_2) 8001f00: e18a b.n 8002218 focused = false; 8001f02: 4b95 ldr r3, [pc, #596] ; (8002158 ) 8001f04: 2200 movs r2, #0 8001f06: 701a strb r2, [r3, #0] menupos = Sens_2; 8001f08: 4b90 ldr r3, [pc, #576] ; (800214c ) 8001f0a: 2208 movs r2, #8 8001f0c: 701a strb r2, [r3, #0] if(WriteChannelSens(Ch2)) 8001f0e: 2001 movs r0, #1 8001f10: f00e fe4a bl 8010ba8 8001f14: 4603 mov r3, r0 8001f16: 2b00 cmp r3, #0 8001f18: d009 beq.n 8001f2e memcpy((void *) &pardata, (void *) &pardata_old, sizeof(UserData_TypeDef)); 8001f1a: 4a8e ldr r2, [pc, #568] ; (8002154 ) 8001f1c: 4b8c ldr r3, [pc, #560] ; (8002150 ) 8001f1e: 4610 mov r0, r2 8001f20: 4619 mov r1, r3 8001f22: f44f 7302 mov.w r3, #520 ; 0x208 8001f26: 461a mov r2, r3 8001f28: f014 facc bl 80164c4 if(menupos < Kpt_2) 8001f2c: e174 b.n 8002218 WriteChannel(Ch2); 8001f2e: 2001 movs r0, #1 8001f30: f00e fb0c bl 801054c if(menupos < Kpt_2) 8001f34: e170 b.n 8002218 if(menupos == Sens_3) 8001f36: 4b85 ldr r3, [pc, #532] ; (800214c ) 8001f38: 781b ldrb r3, [r3, #0] 8001f3a: b2db uxtb r3, r3 8001f3c: 2b10 cmp r3, #16 8001f3e: d10f bne.n 8001f60 memcpy((void *) &pardata_old, (void *) &pardata, sizeof(UserData_TypeDef)); 8001f40: 4a83 ldr r2, [pc, #524] ; (8002150 ) 8001f42: 4b84 ldr r3, [pc, #528] ; (8002154 ) 8001f44: 4610 mov r0, r2 8001f46: 4619 mov r1, r3 8001f48: f44f 7302 mov.w r3, #520 ; 0x208 8001f4c: 461a mov r2, r3 8001f4e: f014 fab9 bl 80164c4 focused = true; 8001f52: 4b81 ldr r3, [pc, #516] ; (8002158 ) 8001f54: 2201 movs r2, #1 8001f56: 701a strb r2, [r3, #0] menupos = Kikdt_3; 8001f58: 4b7c ldr r3, [pc, #496] ; (800214c ) 8001f5a: 2212 movs r2, #18 8001f5c: 701a strb r2, [r3, #0] break; 8001f5e: e188 b.n 8002272 if(menupos >= Kikdt_3 && menupos <= Kpt_3) 8001f60: 4b7a ldr r3, [pc, #488] ; (800214c ) 8001f62: 781b ldrb r3, [r3, #0] 8001f64: b2db uxtb r3, r3 8001f66: 2b11 cmp r3, #17 8001f68: d92e bls.n 8001fc8 8001f6a: 4b78 ldr r3, [pc, #480] ; (800214c ) 8001f6c: 781b ldrb r3, [r3, #0] 8001f6e: b2db uxtb r3, r3 8001f70: 2b17 cmp r3, #23 8001f72: d829 bhi.n 8001fc8 if(menupos < Kpt_3) 8001f74: 4b75 ldr r3, [pc, #468] ; (800214c ) 8001f76: 781b ldrb r3, [r3, #0] 8001f78: b2db uxtb r3, r3 8001f7a: 2b16 cmp r3, #22 8001f7c: d80a bhi.n 8001f94 focused = true; 8001f7e: 4b76 ldr r3, [pc, #472] ; (8002158 ) 8001f80: 2201 movs r2, #1 8001f82: 701a strb r2, [r3, #0] menupos++; 8001f84: 4b71 ldr r3, [pc, #452] ; (800214c ) 8001f86: 781b ldrb r3, [r3, #0] 8001f88: b2db uxtb r3, r3 8001f8a: 3301 adds r3, #1 8001f8c: b2da uxtb r2, r3 8001f8e: 4b6f ldr r3, [pc, #444] ; (800214c ) 8001f90: 701a strb r2, [r3, #0] if(menupos < Kpt_3) 8001f92: e141 b.n 8002218 focused = false; 8001f94: 4b70 ldr r3, [pc, #448] ; (8002158 ) 8001f96: 2200 movs r2, #0 8001f98: 701a strb r2, [r3, #0] menupos = Sens_3; 8001f9a: 4b6c ldr r3, [pc, #432] ; (800214c ) 8001f9c: 2210 movs r2, #16 8001f9e: 701a strb r2, [r3, #0] if(WriteChannelSens(Ch3)) 8001fa0: 2002 movs r0, #2 8001fa2: f00e fe01 bl 8010ba8 8001fa6: 4603 mov r3, r0 8001fa8: 2b00 cmp r3, #0 8001faa: d009 beq.n 8001fc0 memcpy((void *) &pardata, (void *) &pardata_old, sizeof(UserData_TypeDef)); 8001fac: 4a69 ldr r2, [pc, #420] ; (8002154 ) 8001fae: 4b68 ldr r3, [pc, #416] ; (8002150 ) 8001fb0: 4610 mov r0, r2 8001fb2: 4619 mov r1, r3 8001fb4: f44f 7302 mov.w r3, #520 ; 0x208 8001fb8: 461a mov r2, r3 8001fba: f014 fa83 bl 80164c4 if(menupos < Kpt_3) 8001fbe: e12b b.n 8002218 WriteChannel(Ch3); 8001fc0: 2002 movs r0, #2 8001fc2: f00e fac3 bl 801054c if(menupos < Kpt_3) 8001fc6: e127 b.n 8002218 if(menupos == Sens_4) 8001fc8: 4b60 ldr r3, [pc, #384] ; (800214c ) 8001fca: 781b ldrb r3, [r3, #0] 8001fcc: b2db uxtb r3, r3 8001fce: 2b18 cmp r3, #24 8001fd0: d10f bne.n 8001ff2 memcpy((void *) &pardata_old, (void *) &pardata, sizeof(UserData_TypeDef)); 8001fd2: 4a5f ldr r2, [pc, #380] ; (8002150 ) 8001fd4: 4b5f ldr r3, [pc, #380] ; (8002154 ) 8001fd6: 4610 mov r0, r2 8001fd8: 4619 mov r1, r3 8001fda: f44f 7302 mov.w r3, #520 ; 0x208 8001fde: 461a mov r2, r3 8001fe0: f014 fa70 bl 80164c4 focused = true; 8001fe4: 4b5c ldr r3, [pc, #368] ; (8002158 ) 8001fe6: 2201 movs r2, #1 8001fe8: 701a strb r2, [r3, #0] menupos = Kikdt_4; 8001fea: 4b58 ldr r3, [pc, #352] ; (800214c ) 8001fec: 221a movs r2, #26 8001fee: 701a strb r2, [r3, #0] break; 8001ff0: e13f b.n 8002272 if(menupos >= Kikdt_4 && menupos <= Kpt_4) 8001ff2: 4b56 ldr r3, [pc, #344] ; (800214c ) 8001ff4: 781b ldrb r3, [r3, #0] 8001ff6: b2db uxtb r3, r3 8001ff8: 2b19 cmp r3, #25 8001ffa: f240 813a bls.w 8002272 8001ffe: 4b53 ldr r3, [pc, #332] ; (800214c ) 8002000: 781b ldrb r3, [r3, #0] 8002002: b2db uxtb r3, r3 8002004: 2b1f cmp r3, #31 8002006: f200 8134 bhi.w 8002272 if(menupos < Kpt_4) 800200a: 4b50 ldr r3, [pc, #320] ; (800214c ) 800200c: 781b ldrb r3, [r3, #0] 800200e: b2db uxtb r3, r3 8002010: 2b1e cmp r3, #30 8002012: d80a bhi.n 800202a focused = true; 8002014: 4b50 ldr r3, [pc, #320] ; (8002158 ) 8002016: 2201 movs r2, #1 8002018: 701a strb r2, [r3, #0] menupos++; 800201a: 4b4c ldr r3, [pc, #304] ; (800214c ) 800201c: 781b ldrb r3, [r3, #0] 800201e: b2db uxtb r3, r3 8002020: 3301 adds r3, #1 8002022: b2da uxtb r2, r3 8002024: 4b49 ldr r3, [pc, #292] ; (800214c ) 8002026: 701a strb r2, [r3, #0] break; 8002028: e123 b.n 8002272 focused = false; 800202a: 4b4b ldr r3, [pc, #300] ; (8002158 ) 800202c: 2200 movs r2, #0 800202e: 701a strb r2, [r3, #0] menupos = Sens_4; 8002030: 4b46 ldr r3, [pc, #280] ; (800214c ) 8002032: 2218 movs r2, #24 8002034: 701a strb r2, [r3, #0] if(WriteChannelSens(Ch4)) 8002036: 2003 movs r0, #3 8002038: f00e fdb6 bl 8010ba8 800203c: 4603 mov r3, r0 800203e: 2b00 cmp r3, #0 8002040: d009 beq.n 8002056 memcpy((void *) &pardata, (void *) &pardata_old, sizeof(UserData_TypeDef)); 8002042: 4a44 ldr r2, [pc, #272] ; (8002154 ) 8002044: 4b42 ldr r3, [pc, #264] ; (8002150 ) 8002046: 4610 mov r0, r2 8002048: 4619 mov r1, r3 800204a: f44f 7302 mov.w r3, #520 ; 0x208 800204e: 461a mov r2, r3 8002050: f014 fa38 bl 80164c4 break; 8002054: e10d b.n 8002272 WriteChannel(Ch4); 8002056: 2003 movs r0, #3 8002058: f00e fa78 bl 801054c break; 800205c: e109 b.n 8002272 if(menu == MAIN) 800205e: 4b3f ldr r3, [pc, #252] ; (800215c ) 8002060: 781b ldrb r3, [r3, #0] 8002062: b2db uxtb r3, r3 8002064: 2b00 cmp r3, #0 8002066: d10d bne.n 8002084 focused ^= 1; 8002068: 4b3b ldr r3, [pc, #236] ; (8002158 ) 800206a: 781b ldrb r3, [r3, #0] 800206c: b2db uxtb r3, r3 800206e: f083 0301 eor.w r3, r3, #1 8002072: b2db uxtb r3, r3 8002074: 2b00 cmp r3, #0 8002076: bf14 ite ne 8002078: 2301 movne r3, #1 800207a: 2300 moveq r3, #0 800207c: b2da uxtb r2, r3 800207e: 4b36 ldr r3, [pc, #216] ; (8002158 ) 8002080: 701a strb r2, [r3, #0] break; 8002082: e0f6 b.n 8002272 if(menu == CALIBR_00) 8002084: 4b35 ldr r3, [pc, #212] ; (800215c ) 8002086: 781b ldrb r3, [r3, #0] 8002088: b2db uxtb r3, r3 800208a: 2b01 cmp r3, #1 800208c: d11d bne.n 80020ca if(menupos <= Ch4) 800208e: 4b2f ldr r3, [pc, #188] ; (800214c ) 8002090: 781b ldrb r3, [r3, #0] 8002092: b2db uxtb r3, r3 8002094: 2b03 cmp r3, #3 8002096: d813 bhi.n 80020c0 ACTIVE_CHANNEL = menupos; 8002098: 4b2c ldr r3, [pc, #176] ; (800214c ) 800209a: 781b ldrb r3, [r3, #0] 800209c: b2db uxtb r3, r3 800209e: 461a mov r2, r3 80020a0: 4b2f ldr r3, [pc, #188] ; (8002160 ) 80020a2: 601a str r2, [r3, #0] menu = CALIBR_0; 80020a4: 4b2d ldr r3, [pc, #180] ; (800215c ) 80020a6: 2202 movs r2, #2 80020a8: 701a strb r2, [r3, #0] menupos = Next; 80020aa: 4b28 ldr r3, [pc, #160] ; (800214c ) 80020ac: 2206 movs r2, #6 80020ae: 701a strb r2, [r3, #0] Calibr(ACTIVE_CHANNEL, 1); 80020b0: 4b2b ldr r3, [pc, #172] ; (8002160 ) 80020b2: 681b ldr r3, [r3, #0] 80020b4: b2db uxtb r3, r3 80020b6: 2101 movs r1, #1 80020b8: 4618 mov r0, r3 80020ba: f00e feb9 bl 8010e30 break; 80020be: e0d8 b.n 8002272 CalibrOFF(); 80020c0: f00f f930 bl 8011324 Off(); 80020c4: f7fe fa48 bl 8000558 break; 80020c8: e0d3 b.n 8002272 if(menu >= CALIBR_0 && menu <= CALIBR_22) 80020ca: 4b24 ldr r3, [pc, #144] ; (800215c ) 80020cc: 781b ldrb r3, [r3, #0] 80020ce: b2db uxtb r3, r3 80020d0: 2b01 cmp r3, #1 80020d2: f240 80ce bls.w 8002272 80020d6: 4b21 ldr r3, [pc, #132] ; (800215c ) 80020d8: 781b ldrb r3, [r3, #0] 80020da: b2db uxtb r3, r3 80020dc: 2b18 cmp r3, #24 80020de: f200 80c8 bhi.w 8002272 if(menupos == Next) 80020e2: 4b1a ldr r3, [pc, #104] ; (800214c ) 80020e4: 781b ldrb r3, [r3, #0] 80020e6: b2db uxtb r3, r3 80020e8: 2b06 cmp r3, #6 80020ea: d11c bne.n 8002126 if(menu == CALIBR_22) 80020ec: 4b1b ldr r3, [pc, #108] ; (800215c ) 80020ee: 781b ldrb r3, [r3, #0] 80020f0: b2db uxtb r3, r3 80020f2: 2b18 cmp r3, #24 80020f4: d108 bne.n 8002108 menu = CALIBR_00; 80020f6: 4b19 ldr r3, [pc, #100] ; (800215c ) 80020f8: 2201 movs r2, #1 80020fa: 701a strb r2, [r3, #0] menupos = ACTIVE_CHANNEL; 80020fc: 4b18 ldr r3, [pc, #96] ; (8002160 ) 80020fe: 681b ldr r3, [r3, #0] 8002100: b2da uxtb r2, r3 8002102: 4b12 ldr r3, [pc, #72] ; (800214c ) 8002104: 701a strb r2, [r3, #0] break; 8002106: e0b4 b.n 8002272 menu++; 8002108: 4b14 ldr r3, [pc, #80] ; (800215c ) 800210a: 781b ldrb r3, [r3, #0] 800210c: b2db uxtb r3, r3 800210e: 3301 adds r3, #1 8002110: b2da uxtb r2, r3 8002112: 4b12 ldr r3, [pc, #72] ; (800215c ) 8002114: 701a strb r2, [r3, #0] Calibr(ACTIVE_CHANNEL, 1); 8002116: 4b12 ldr r3, [pc, #72] ; (8002160 ) 8002118: 681b ldr r3, [r3, #0] 800211a: b2db uxtb r3, r3 800211c: 2101 movs r1, #1 800211e: 4618 mov r0, r3 8002120: f00e fe86 bl 8010e30 break; 8002124: e0a5 b.n 8002272 if(menupos == Set_1) 8002126: 4b09 ldr r3, [pc, #36] ; (800214c ) 8002128: 781b ldrb r3, [r3, #0] 800212a: b2db uxtb r3, r3 800212c: 2b05 cmp r3, #5 800212e: d119 bne.n 8002164 WriteCorr(ACTIVE_CHANNEL, (menu - 2), (0x01 | 0x80)); 8002130: 4b0b ldr r3, [pc, #44] ; (8002160 ) 8002132: 681b ldr r3, [r3, #0] 8002134: b2d8 uxtb r0, r3 8002136: 4b09 ldr r3, [pc, #36] ; (800215c ) 8002138: 781b ldrb r3, [r3, #0] 800213a: b2db uxtb r3, r3 800213c: 3b02 subs r3, #2 800213e: b2db uxtb r3, r3 8002140: 2281 movs r2, #129 ; 0x81 8002142: 4619 mov r1, r3 8002144: f00e ffb6 bl 80110b4 break; 8002148: e093 b.n 8002272 800214a: bf00 nop 800214c: 20020010 .word 0x20020010 8002150: 2006bf1c .word 0x2006bf1c 8002154: 2006bca8 .word 0x2006bca8 8002158: 200209e4 .word 0x200209e4 800215c: 200209d9 .word 0x200209d9 8002160: 2006ba68 .word 0x2006ba68 if(menupos == Set1) 8002164: 4b46 ldr r3, [pc, #280] ; (8002280 ) 8002166: 781b ldrb r3, [r3, #0] 8002168: b2db uxtb r3, r3 800216a: 2b04 cmp r3, #4 800216c: d10c bne.n 8002188 WriteCorr(ACTIVE_CHANNEL, (menu - 2), 0x01); 800216e: 4b45 ldr r3, [pc, #276] ; (8002284 ) 8002170: 681b ldr r3, [r3, #0] 8002172: b2d8 uxtb r0, r3 8002174: 4b44 ldr r3, [pc, #272] ; (8002288 ) 8002176: 781b ldrb r3, [r3, #0] 8002178: b2db uxtb r3, r3 800217a: 3b02 subs r3, #2 800217c: b2db uxtb r3, r3 800217e: 2201 movs r2, #1 8002180: 4619 mov r1, r3 8002182: f00e ff97 bl 80110b4 break; 8002186: e074 b.n 8002272 if(menupos == Set_10) 8002188: 4b3d ldr r3, [pc, #244] ; (8002280 ) 800218a: 781b ldrb r3, [r3, #0] 800218c: b2db uxtb r3, r3 800218e: 2b03 cmp r3, #3 8002190: d10c bne.n 80021ac WriteCorr(ACTIVE_CHANNEL, (menu - 2), (10 | 0x80)); 8002192: 4b3c ldr r3, [pc, #240] ; (8002284 ) 8002194: 681b ldr r3, [r3, #0] 8002196: b2d8 uxtb r0, r3 8002198: 4b3b ldr r3, [pc, #236] ; (8002288 ) 800219a: 781b ldrb r3, [r3, #0] 800219c: b2db uxtb r3, r3 800219e: 3b02 subs r3, #2 80021a0: b2db uxtb r3, r3 80021a2: 228a movs r2, #138 ; 0x8a 80021a4: 4619 mov r1, r3 80021a6: f00e ff85 bl 80110b4 break; 80021aa: e062 b.n 8002272 if(menupos == Set10) 80021ac: 4b34 ldr r3, [pc, #208] ; (8002280 ) 80021ae: 781b ldrb r3, [r3, #0] 80021b0: b2db uxtb r3, r3 80021b2: 2b02 cmp r3, #2 80021b4: d10c bne.n 80021d0 WriteCorr(ACTIVE_CHANNEL, (menu - 2), 10); 80021b6: 4b33 ldr r3, [pc, #204] ; (8002284 ) 80021b8: 681b ldr r3, [r3, #0] 80021ba: b2d8 uxtb r0, r3 80021bc: 4b32 ldr r3, [pc, #200] ; (8002288 ) 80021be: 781b ldrb r3, [r3, #0] 80021c0: b2db uxtb r3, r3 80021c2: 3b02 subs r3, #2 80021c4: b2db uxtb r3, r3 80021c6: 220a movs r2, #10 80021c8: 4619 mov r1, r3 80021ca: f00e ff73 bl 80110b4 break; 80021ce: e050 b.n 8002272 if(menupos == Set_100) 80021d0: 4b2b ldr r3, [pc, #172] ; (8002280 ) 80021d2: 781b ldrb r3, [r3, #0] 80021d4: b2db uxtb r3, r3 80021d6: 2b01 cmp r3, #1 80021d8: d10c bne.n 80021f4 WriteCorr(ACTIVE_CHANNEL, (menu - 2), (100 | 0x80)); 80021da: 4b2a ldr r3, [pc, #168] ; (8002284 ) 80021dc: 681b ldr r3, [r3, #0] 80021de: b2d8 uxtb r0, r3 80021e0: 4b29 ldr r3, [pc, #164] ; (8002288 ) 80021e2: 781b ldrb r3, [r3, #0] 80021e4: b2db uxtb r3, r3 80021e6: 3b02 subs r3, #2 80021e8: b2db uxtb r3, r3 80021ea: 22e4 movs r2, #228 ; 0xe4 80021ec: 4619 mov r1, r3 80021ee: f00e ff61 bl 80110b4 break; 80021f2: e03e b.n 8002272 if(menupos == Set100) 80021f4: 4b22 ldr r3, [pc, #136] ; (8002280 ) 80021f6: 781b ldrb r3, [r3, #0] 80021f8: b2db uxtb r3, r3 80021fa: 2b00 cmp r3, #0 80021fc: d139 bne.n 8002272 WriteCorr(ACTIVE_CHANNEL, (menu - 2), 100); 80021fe: 4b21 ldr r3, [pc, #132] ; (8002284 ) 8002200: 681b ldr r3, [r3, #0] 8002202: b2d8 uxtb r0, r3 8002204: 4b20 ldr r3, [pc, #128] ; (8002288 ) 8002206: 781b ldrb r3, [r3, #0] 8002208: b2db uxtb r3, r3 800220a: 3b02 subs r3, #2 800220c: b2db uxtb r3, r3 800220e: 2264 movs r2, #100 ; 0x64 8002210: 4619 mov r1, r3 8002212: f00e ff4f bl 80110b4 break; 8002216: e02c b.n 8002272 8002218: e02b b.n 8002272 case KEY_PW: //TODO if(menu == MAIN) 800221a: 4b1b ldr r3, [pc, #108] ; (8002288 ) 800221c: 781b ldrb r3, [r3, #0] 800221e: b2db uxtb r3, r3 8002220: 2b00 cmp r3, #0 8002222: d10f bne.n 8002244 { LAST_ACTIVE_CHANNEL = ACTIVE_CHANNEL; 8002224: 4b17 ldr r3, [pc, #92] ; (8002284 ) 8002226: 681b ldr r3, [r3, #0] 8002228: 4a18 ldr r2, [pc, #96] ; (800228c ) 800222a: 6013 str r3, [r2, #0] lastmenupos = menupos; 800222c: 4b14 ldr r3, [pc, #80] ; (8002280 ) 800222e: 781b ldrb r3, [r3, #0] 8002230: b2da uxtb r2, r3 8002232: 4b17 ldr r3, [pc, #92] ; (8002290 ) 8002234: 701a strb r2, [r3, #0] menupos = Back; 8002236: 4b12 ldr r3, [pc, #72] ; (8002280 ) 8002238: 22ff movs r2, #255 ; 0xff 800223a: 701a strb r2, [r3, #0] menu = OPTIONS; 800223c: 4b12 ldr r3, [pc, #72] ; (8002288 ) 800223e: 2219 movs r2, #25 8002240: 701a strb r2, [r3, #0] { ACTIVE_CHANNEL = LAST_ACTIVE_CHANNEL; menupos = lastmenupos; menu = MAIN; } break; 8002242: e018 b.n 8002276 if(menupos == OPTIONS) 8002244: 4b0e ldr r3, [pc, #56] ; (8002280 ) 8002246: 781b ldrb r3, [r3, #0] 8002248: b2db uxtb r3, r3 800224a: 2b19 cmp r3, #25 800224c: d113 bne.n 8002276 ACTIVE_CHANNEL = LAST_ACTIVE_CHANNEL; 800224e: 4b0f ldr r3, [pc, #60] ; (800228c ) 8002250: 681b ldr r3, [r3, #0] 8002252: 4a0c ldr r2, [pc, #48] ; (8002284 ) 8002254: 6013 str r3, [r2, #0] menupos = lastmenupos; 8002256: 4b0e ldr r3, [pc, #56] ; (8002290 ) 8002258: 781b ldrb r3, [r3, #0] 800225a: b2da uxtb r2, r3 800225c: 4b08 ldr r3, [pc, #32] ; (8002280 ) 800225e: 701a strb r2, [r3, #0] menu = MAIN; 8002260: 4b09 ldr r3, [pc, #36] ; (8002288 ) 8002262: 2200 movs r2, #0 8002264: 701a strb r2, [r3, #0] break; 8002266: bf00 nop 8002268: e005 b.n 8002276 break; 800226a: bf00 nop 800226c: e004 b.n 8002278 break; 800226e: bf00 nop 8002270: e002 b.n 8002278 break; 8002272: bf00 nop 8002274: e000 b.n 8002278 break; 8002276: bf00 nop } } } 8002278: 3778 adds r7, #120 ; 0x78 800227a: 46bd mov sp, r7 800227c: bd80 pop {r7, pc} 800227e: bf00 nop 8002280: 20020010 .word 0x20020010 8002284: 2006ba68 .word 0x2006ba68 8002288: 200209d9 .word 0x200209d9 800228c: 2006ba64 .word 0x2006ba64 8002290: 20020011 .word 0x20020011 08002294 : void SetUP(void) { 8002294: b580 push {r7, lr} 8002296: af00 add r7, sp, #0 if(menupos == Lp) 8002298: 4b8f ldr r3, [pc, #572] ; (80024d8 ) 800229a: 781b ldrb r3, [r3, #0] 800229c: b2db uxtb r3, r3 800229e: 2b01 cmp r3, #1 80022a0: d13e bne.n 8002320 { if(focused) 80022a2: 4b8e ldr r3, [pc, #568] ; (80024dc ) 80022a4: 781b ldrb r3, [r3, #0] 80022a6: b2db uxtb r3, r3 80022a8: 2b00 cmp r3, #0 80022aa: d035 beq.n 8002318 { if(pardata.amplif[ACTIVE_CHANNEL].IFN < Lp100000) 80022ac: 4b8c ldr r3, [pc, #560] ; (80024e0 ) 80022ae: 681b ldr r3, [r3, #0] 80022b0: 4a8c ldr r2, [pc, #560] ; (80024e4 ) 80022b2: 015b lsls r3, r3, #5 80022b4: 4413 add r3, r2 80022b6: 3304 adds r3, #4 80022b8: 881b ldrh r3, [r3, #0] 80022ba: b29b uxth r3, r3 80022bc: 2b06 cmp r3, #6 80022be: f200 8405 bhi.w 8002acc { pardata.amplif[ACTIVE_CHANNEL].IFN++; 80022c2: 4b87 ldr r3, [pc, #540] ; (80024e0 ) 80022c4: 681b ldr r3, [r3, #0] 80022c6: 4987 ldr r1, [pc, #540] ; (80024e4 ) 80022c8: 015a lsls r2, r3, #5 80022ca: 440a add r2, r1 80022cc: 3204 adds r2, #4 80022ce: 8812 ldrh r2, [r2, #0] 80022d0: b292 uxth r2, r2 80022d2: 3201 adds r2, #1 80022d4: b291 uxth r1, r2 80022d6: 4a83 ldr r2, [pc, #524] ; (80024e4 ) 80022d8: 015b lsls r3, r3, #5 80022da: 4413 add r3, r2 80022dc: 3304 adds r3, #4 80022de: 460a mov r2, r1 80022e0: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 80022e2: 4b7f ldr r3, [pc, #508] ; (80024e0 ) 80022e4: 681b ldr r3, [r3, #0] 80022e6: b2db uxtb r3, r3 80022e8: 4618 mov r0, r3 80022ea: f00e f92f bl 801054c 80022ee: 4603 mov r3, r0 80022f0: 2b00 cmp r3, #0 80022f2: f000 83eb beq.w 8002acc { pardata.amplif[ACTIVE_CHANNEL].IFN--; 80022f6: 4b7a ldr r3, [pc, #488] ; (80024e0 ) 80022f8: 681b ldr r3, [r3, #0] 80022fa: 497a ldr r1, [pc, #488] ; (80024e4 ) 80022fc: 015a lsls r2, r3, #5 80022fe: 440a add r2, r1 8002300: 3204 adds r2, #4 8002302: 8812 ldrh r2, [r2, #0] 8002304: b292 uxth r2, r2 8002306: 3a01 subs r2, #1 8002308: b291 uxth r1, r2 800230a: 4a76 ldr r2, [pc, #472] ; (80024e4 ) 800230c: 015b lsls r3, r3, #5 800230e: 4413 add r3, r2 8002310: 3304 adds r3, #4 8002312: 460a mov r2, r1 8002314: 801a strh r2, [r3, #0] { menupos = Lp; } } } 8002316: e3d9 b.n 8002acc menupos = Hp; 8002318: 4b6f ldr r3, [pc, #444] ; (80024d8 ) 800231a: 2200 movs r2, #0 800231c: 701a strb r2, [r3, #0] } 800231e: e3d5 b.n 8002acc if(menupos == Out) 8002320: 4b6d ldr r3, [pc, #436] ; (80024d8 ) 8002322: 781b ldrb r3, [r3, #0] 8002324: b2db uxtb r3, r3 8002326: 2b02 cmp r3, #2 8002328: f040 83d0 bne.w 8002acc if(focused) 800232c: 4b6b ldr r3, [pc, #428] ; (80024dc ) 800232e: 781b ldrb r3, [r3, #0] 8002330: b2db uxtb r3, r3 8002332: 2b00 cmp r3, #0 8002334: f000 83c7 beq.w 8002ac6 if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0010f) //0.001 8002338: 4b69 ldr r3, [pc, #420] ; (80024e0 ) 800233a: 681b ldr r3, [r3, #0] 800233c: 4a69 ldr r2, [pc, #420] ; (80024e4 ) 800233e: 015b lsls r3, r3, #5 8002340: 4413 add r3, r2 8002342: 3318 adds r3, #24 8002344: edd3 7a00 vldr s15, [r3] 8002348: ed9f 7a67 vldr s14, [pc, #412] ; 80024e8 800234c: eef4 7ac7 vcmpe.f32 s15, s14 8002350: eef1 fa10 vmrs APSR_nzcv, fpscr 8002354: d835 bhi.n 80023c2 if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku1000) 8002356: 4b62 ldr r3, [pc, #392] ; (80024e0 ) 8002358: 681b ldr r3, [r3, #0] 800235a: 4a62 ldr r2, [pc, #392] ; (80024e4 ) 800235c: 015b lsls r3, r3, #5 800235e: 4413 add r3, r2 8002360: 3306 adds r3, #6 8002362: 881b ldrh r3, [r3, #0] 8002364: b29b uxth r3, r3 8002366: 2b0b cmp r3, #11 8002368: f200 83b0 bhi.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU++; 800236c: 4b5c ldr r3, [pc, #368] ; (80024e0 ) 800236e: 681b ldr r3, [r3, #0] 8002370: 495c ldr r1, [pc, #368] ; (80024e4 ) 8002372: 015a lsls r2, r3, #5 8002374: 440a add r2, r1 8002376: 3206 adds r2, #6 8002378: 8812 ldrh r2, [r2, #0] 800237a: b292 uxth r2, r2 800237c: 3201 adds r2, #1 800237e: b291 uxth r1, r2 8002380: 4a58 ldr r2, [pc, #352] ; (80024e4 ) 8002382: 015b lsls r3, r3, #5 8002384: 4413 add r3, r2 8002386: 3306 adds r3, #6 8002388: 460a mov r2, r1 800238a: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 800238c: 4b54 ldr r3, [pc, #336] ; (80024e0 ) 800238e: 681b ldr r3, [r3, #0] 8002390: b2db uxtb r3, r3 8002392: 4618 mov r0, r3 8002394: f00e f8da bl 801054c 8002398: 4603 mov r3, r0 800239a: 2b00 cmp r3, #0 800239c: f000 8396 beq.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU--; 80023a0: 4b4f ldr r3, [pc, #316] ; (80024e0 ) 80023a2: 681b ldr r3, [r3, #0] 80023a4: 494f ldr r1, [pc, #316] ; (80024e4 ) 80023a6: 015a lsls r2, r3, #5 80023a8: 440a add r2, r1 80023aa: 3206 adds r2, #6 80023ac: 8812 ldrh r2, [r2, #0] 80023ae: b292 uxth r2, r2 80023b0: 3a01 subs r2, #1 80023b2: b291 uxth r1, r2 80023b4: 4a4b ldr r2, [pc, #300] ; (80024e4 ) 80023b6: 015b lsls r3, r3, #5 80023b8: 4413 add r3, r2 80023ba: 3306 adds r3, #6 80023bc: 460a mov r2, r1 80023be: 801a strh r2, [r3, #0] } 80023c0: e384 b.n 8002acc if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 10.000f) //0.002 80023c2: 4b47 ldr r3, [pc, #284] ; (80024e0 ) 80023c4: 681b ldr r3, [r3, #0] 80023c6: 4a47 ldr r2, [pc, #284] ; (80024e4 ) 80023c8: 015b lsls r3, r3, #5 80023ca: 4413 add r3, r2 80023cc: 3318 adds r3, #24 80023ce: edd3 7a00 vldr s15, [r3] 80023d2: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 80023d6: eef4 7ac7 vcmpe.f32 s15, s14 80023da: eef1 fa10 vmrs APSR_nzcv, fpscr 80023de: d835 bhi.n 800244c if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku1000) 80023e0: 4b3f ldr r3, [pc, #252] ; (80024e0 ) 80023e2: 681b ldr r3, [r3, #0] 80023e4: 4a3f ldr r2, [pc, #252] ; (80024e4 ) 80023e6: 015b lsls r3, r3, #5 80023e8: 4413 add r3, r2 80023ea: 3306 adds r3, #6 80023ec: 881b ldrh r3, [r3, #0] 80023ee: b29b uxth r3, r3 80023f0: 2b0b cmp r3, #11 80023f2: f200 836b bhi.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU++; 80023f6: 4b3a ldr r3, [pc, #232] ; (80024e0 ) 80023f8: 681b ldr r3, [r3, #0] 80023fa: 493a ldr r1, [pc, #232] ; (80024e4 ) 80023fc: 015a lsls r2, r3, #5 80023fe: 440a add r2, r1 8002400: 3206 adds r2, #6 8002402: 8812 ldrh r2, [r2, #0] 8002404: b292 uxth r2, r2 8002406: 3201 adds r2, #1 8002408: b291 uxth r1, r2 800240a: 4a36 ldr r2, [pc, #216] ; (80024e4 ) 800240c: 015b lsls r3, r3, #5 800240e: 4413 add r3, r2 8002410: 3306 adds r3, #6 8002412: 460a mov r2, r1 8002414: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8002416: 4b32 ldr r3, [pc, #200] ; (80024e0 ) 8002418: 681b ldr r3, [r3, #0] 800241a: b2db uxtb r3, r3 800241c: 4618 mov r0, r3 800241e: f00e f895 bl 801054c 8002422: 4603 mov r3, r0 8002424: 2b00 cmp r3, #0 8002426: f000 8351 beq.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU--; 800242a: 4b2d ldr r3, [pc, #180] ; (80024e0 ) 800242c: 681b ldr r3, [r3, #0] 800242e: 492d ldr r1, [pc, #180] ; (80024e4 ) 8002430: 015a lsls r2, r3, #5 8002432: 440a add r2, r1 8002434: 3206 adds r2, #6 8002436: 8812 ldrh r2, [r2, #0] 8002438: b292 uxth r2, r2 800243a: 3a01 subs r2, #1 800243c: b291 uxth r1, r2 800243e: 4a29 ldr r2, [pc, #164] ; (80024e4 ) 8002440: 015b lsls r3, r3, #5 8002442: 4413 add r3, r2 8002444: 3306 adds r3, #6 8002446: 460a mov r2, r1 8002448: 801a strh r2, [r3, #0] } 800244a: e33f b.n 8002acc if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 20.000f) //20 800244c: 4b24 ldr r3, [pc, #144] ; (80024e0 ) 800244e: 681b ldr r3, [r3, #0] 8002450: 4a24 ldr r2, [pc, #144] ; (80024e4 ) 8002452: 015b lsls r3, r3, #5 8002454: 4413 add r3, r2 8002456: 3318 adds r3, #24 8002458: edd3 7a00 vldr s15, [r3] 800245c: eeb3 7a04 vmov.f32 s14, #52 ; 0x41a00000 20.0 8002460: eef4 7ac7 vcmpe.f32 s15, s14 8002464: eef1 fa10 vmrs APSR_nzcv, fpscr 8002468: d840 bhi.n 80024ec if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku500) 800246a: 4b1d ldr r3, [pc, #116] ; (80024e0 ) 800246c: 681b ldr r3, [r3, #0] 800246e: 4a1d ldr r2, [pc, #116] ; (80024e4 ) 8002470: 015b lsls r3, r3, #5 8002472: 4413 add r3, r2 8002474: 3306 adds r3, #6 8002476: 881b ldrh r3, [r3, #0] 8002478: b29b uxth r3, r3 800247a: 2b0a cmp r3, #10 800247c: f200 8326 bhi.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU++; 8002480: 4b17 ldr r3, [pc, #92] ; (80024e0 ) 8002482: 681b ldr r3, [r3, #0] 8002484: 4917 ldr r1, [pc, #92] ; (80024e4 ) 8002486: 015a lsls r2, r3, #5 8002488: 440a add r2, r1 800248a: 3206 adds r2, #6 800248c: 8812 ldrh r2, [r2, #0] 800248e: b292 uxth r2, r2 8002490: 3201 adds r2, #1 8002492: b291 uxth r1, r2 8002494: 4a13 ldr r2, [pc, #76] ; (80024e4 ) 8002496: 015b lsls r3, r3, #5 8002498: 4413 add r3, r2 800249a: 3306 adds r3, #6 800249c: 460a mov r2, r1 800249e: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 80024a0: 4b0f ldr r3, [pc, #60] ; (80024e0 ) 80024a2: 681b ldr r3, [r3, #0] 80024a4: b2db uxtb r3, r3 80024a6: 4618 mov r0, r3 80024a8: f00e f850 bl 801054c 80024ac: 4603 mov r3, r0 80024ae: 2b00 cmp r3, #0 80024b0: f000 830c beq.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU--; 80024b4: 4b0a ldr r3, [pc, #40] ; (80024e0 ) 80024b6: 681b ldr r3, [r3, #0] 80024b8: 490a ldr r1, [pc, #40] ; (80024e4 ) 80024ba: 015a lsls r2, r3, #5 80024bc: 440a add r2, r1 80024be: 3206 adds r2, #6 80024c0: 8812 ldrh r2, [r2, #0] 80024c2: b292 uxth r2, r2 80024c4: 3a01 subs r2, #1 80024c6: b291 uxth r1, r2 80024c8: 4a06 ldr r2, [pc, #24] ; (80024e4 ) 80024ca: 015b lsls r3, r3, #5 80024cc: 4413 add r3, r2 80024ce: 3306 adds r3, #6 80024d0: 460a mov r2, r1 80024d2: 801a strh r2, [r3, #0] } 80024d4: e2fa b.n 8002acc 80024d6: bf00 nop 80024d8: 20020010 .word 0x20020010 80024dc: 200209e4 .word 0x200209e4 80024e0: 2006ba68 .word 0x2006ba68 80024e4: 2006bca8 .word 0x2006bca8 80024e8: 3a83126f .word 0x3a83126f if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 50.000f) //50 80024ec: 4bac ldr r3, [pc, #688] ; (80027a0 ) 80024ee: 681b ldr r3, [r3, #0] 80024f0: 4aac ldr r2, [pc, #688] ; (80027a4 ) 80024f2: 015b lsls r3, r3, #5 80024f4: 4413 add r3, r2 80024f6: 3318 adds r3, #24 80024f8: edd3 7a00 vldr s15, [r3] 80024fc: ed9f 7aaa vldr s14, [pc, #680] ; 80027a8 8002500: eef4 7ac7 vcmpe.f32 s15, s14 8002504: eef1 fa10 vmrs APSR_nzcv, fpscr 8002508: d835 bhi.n 8002576 if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku200) 800250a: 4ba5 ldr r3, [pc, #660] ; (80027a0 ) 800250c: 681b ldr r3, [r3, #0] 800250e: 4aa5 ldr r2, [pc, #660] ; (80027a4 ) 8002510: 015b lsls r3, r3, #5 8002512: 4413 add r3, r2 8002514: 3306 adds r3, #6 8002516: 881b ldrh r3, [r3, #0] 8002518: b29b uxth r3, r3 800251a: 2b09 cmp r3, #9 800251c: f200 82d6 bhi.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU++; 8002520: 4b9f ldr r3, [pc, #636] ; (80027a0 ) 8002522: 681b ldr r3, [r3, #0] 8002524: 499f ldr r1, [pc, #636] ; (80027a4 ) 8002526: 015a lsls r2, r3, #5 8002528: 440a add r2, r1 800252a: 3206 adds r2, #6 800252c: 8812 ldrh r2, [r2, #0] 800252e: b292 uxth r2, r2 8002530: 3201 adds r2, #1 8002532: b291 uxth r1, r2 8002534: 4a9b ldr r2, [pc, #620] ; (80027a4 ) 8002536: 015b lsls r3, r3, #5 8002538: 4413 add r3, r2 800253a: 3306 adds r3, #6 800253c: 460a mov r2, r1 800253e: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8002540: 4b97 ldr r3, [pc, #604] ; (80027a0 ) 8002542: 681b ldr r3, [r3, #0] 8002544: b2db uxtb r3, r3 8002546: 4618 mov r0, r3 8002548: f00e f800 bl 801054c 800254c: 4603 mov r3, r0 800254e: 2b00 cmp r3, #0 8002550: f000 82bc beq.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU--; 8002554: 4b92 ldr r3, [pc, #584] ; (80027a0 ) 8002556: 681b ldr r3, [r3, #0] 8002558: 4992 ldr r1, [pc, #584] ; (80027a4 ) 800255a: 015a lsls r2, r3, #5 800255c: 440a add r2, r1 800255e: 3206 adds r2, #6 8002560: 8812 ldrh r2, [r2, #0] 8002562: b292 uxth r2, r2 8002564: 3a01 subs r2, #1 8002566: b291 uxth r1, r2 8002568: 4a8e ldr r2, [pc, #568] ; (80027a4 ) 800256a: 015b lsls r3, r3, #5 800256c: 4413 add r3, r2 800256e: 3306 adds r3, #6 8002570: 460a mov r2, r1 8002572: 801a strh r2, [r3, #0] } 8002574: e2aa b.n 8002acc if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 100.00f) //100 8002576: 4b8a ldr r3, [pc, #552] ; (80027a0 ) 8002578: 681b ldr r3, [r3, #0] 800257a: 4a8a ldr r2, [pc, #552] ; (80027a4 ) 800257c: 015b lsls r3, r3, #5 800257e: 4413 add r3, r2 8002580: 3318 adds r3, #24 8002582: edd3 7a00 vldr s15, [r3] 8002586: ed9f 7a89 vldr s14, [pc, #548] ; 80027ac 800258a: eef4 7ac7 vcmpe.f32 s15, s14 800258e: eef1 fa10 vmrs APSR_nzcv, fpscr 8002592: d835 bhi.n 8002600 if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku100) 8002594: 4b82 ldr r3, [pc, #520] ; (80027a0 ) 8002596: 681b ldr r3, [r3, #0] 8002598: 4a82 ldr r2, [pc, #520] ; (80027a4 ) 800259a: 015b lsls r3, r3, #5 800259c: 4413 add r3, r2 800259e: 3306 adds r3, #6 80025a0: 881b ldrh r3, [r3, #0] 80025a2: b29b uxth r3, r3 80025a4: 2b08 cmp r3, #8 80025a6: f200 8291 bhi.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU++; 80025aa: 4b7d ldr r3, [pc, #500] ; (80027a0 ) 80025ac: 681b ldr r3, [r3, #0] 80025ae: 497d ldr r1, [pc, #500] ; (80027a4 ) 80025b0: 015a lsls r2, r3, #5 80025b2: 440a add r2, r1 80025b4: 3206 adds r2, #6 80025b6: 8812 ldrh r2, [r2, #0] 80025b8: b292 uxth r2, r2 80025ba: 3201 adds r2, #1 80025bc: b291 uxth r1, r2 80025be: 4a79 ldr r2, [pc, #484] ; (80027a4 ) 80025c0: 015b lsls r3, r3, #5 80025c2: 4413 add r3, r2 80025c4: 3306 adds r3, #6 80025c6: 460a mov r2, r1 80025c8: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 80025ca: 4b75 ldr r3, [pc, #468] ; (80027a0 ) 80025cc: 681b ldr r3, [r3, #0] 80025ce: b2db uxtb r3, r3 80025d0: 4618 mov r0, r3 80025d2: f00d ffbb bl 801054c 80025d6: 4603 mov r3, r0 80025d8: 2b00 cmp r3, #0 80025da: f000 8277 beq.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU--; 80025de: 4b70 ldr r3, [pc, #448] ; (80027a0 ) 80025e0: 681b ldr r3, [r3, #0] 80025e2: 4970 ldr r1, [pc, #448] ; (80027a4 ) 80025e4: 015a lsls r2, r3, #5 80025e6: 440a add r2, r1 80025e8: 3206 adds r2, #6 80025ea: 8812 ldrh r2, [r2, #0] 80025ec: b292 uxth r2, r2 80025ee: 3a01 subs r2, #1 80025f0: b291 uxth r1, r2 80025f2: 4a6c ldr r2, [pc, #432] ; (80027a4 ) 80025f4: 015b lsls r3, r3, #5 80025f6: 4413 add r3, r2 80025f8: 3306 adds r3, #6 80025fa: 460a mov r2, r1 80025fc: 801a strh r2, [r3, #0] } 80025fe: e265 b.n 8002acc if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 200.00f) //200 8002600: 4b67 ldr r3, [pc, #412] ; (80027a0 ) 8002602: 681b ldr r3, [r3, #0] 8002604: 4a67 ldr r2, [pc, #412] ; (80027a4 ) 8002606: 015b lsls r3, r3, #5 8002608: 4413 add r3, r2 800260a: 3318 adds r3, #24 800260c: edd3 7a00 vldr s15, [r3] 8002610: ed9f 7a67 vldr s14, [pc, #412] ; 80027b0 8002614: eef4 7ac7 vcmpe.f32 s15, s14 8002618: eef1 fa10 vmrs APSR_nzcv, fpscr 800261c: d835 bhi.n 800268a if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku50) 800261e: 4b60 ldr r3, [pc, #384] ; (80027a0 ) 8002620: 681b ldr r3, [r3, #0] 8002622: 4a60 ldr r2, [pc, #384] ; (80027a4 ) 8002624: 015b lsls r3, r3, #5 8002626: 4413 add r3, r2 8002628: 3306 adds r3, #6 800262a: 881b ldrh r3, [r3, #0] 800262c: b29b uxth r3, r3 800262e: 2b07 cmp r3, #7 8002630: f200 824c bhi.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU++; 8002634: 4b5a ldr r3, [pc, #360] ; (80027a0 ) 8002636: 681b ldr r3, [r3, #0] 8002638: 495a ldr r1, [pc, #360] ; (80027a4 ) 800263a: 015a lsls r2, r3, #5 800263c: 440a add r2, r1 800263e: 3206 adds r2, #6 8002640: 8812 ldrh r2, [r2, #0] 8002642: b292 uxth r2, r2 8002644: 3201 adds r2, #1 8002646: b291 uxth r1, r2 8002648: 4a56 ldr r2, [pc, #344] ; (80027a4 ) 800264a: 015b lsls r3, r3, #5 800264c: 4413 add r3, r2 800264e: 3306 adds r3, #6 8002650: 460a mov r2, r1 8002652: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8002654: 4b52 ldr r3, [pc, #328] ; (80027a0 ) 8002656: 681b ldr r3, [r3, #0] 8002658: b2db uxtb r3, r3 800265a: 4618 mov r0, r3 800265c: f00d ff76 bl 801054c 8002660: 4603 mov r3, r0 8002662: 2b00 cmp r3, #0 8002664: f000 8232 beq.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU--; 8002668: 4b4d ldr r3, [pc, #308] ; (80027a0 ) 800266a: 681b ldr r3, [r3, #0] 800266c: 494d ldr r1, [pc, #308] ; (80027a4 ) 800266e: 015a lsls r2, r3, #5 8002670: 440a add r2, r1 8002672: 3206 adds r2, #6 8002674: 8812 ldrh r2, [r2, #0] 8002676: b292 uxth r2, r2 8002678: 3a01 subs r2, #1 800267a: b291 uxth r1, r2 800267c: 4a49 ldr r2, [pc, #292] ; (80027a4 ) 800267e: 015b lsls r3, r3, #5 8002680: 4413 add r3, r2 8002682: 3306 adds r3, #6 8002684: 460a mov r2, r1 8002686: 801a strh r2, [r3, #0] } 8002688: e220 b.n 8002acc if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 500.00f) //500 800268a: 4b45 ldr r3, [pc, #276] ; (80027a0 ) 800268c: 681b ldr r3, [r3, #0] 800268e: 4a45 ldr r2, [pc, #276] ; (80027a4 ) 8002690: 015b lsls r3, r3, #5 8002692: 4413 add r3, r2 8002694: 3318 adds r3, #24 8002696: edd3 7a00 vldr s15, [r3] 800269a: ed9f 7a46 vldr s14, [pc, #280] ; 80027b4 800269e: eef4 7ac7 vcmpe.f32 s15, s14 80026a2: eef1 fa10 vmrs APSR_nzcv, fpscr 80026a6: d835 bhi.n 8002714 if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku20) 80026a8: 4b3d ldr r3, [pc, #244] ; (80027a0 ) 80026aa: 681b ldr r3, [r3, #0] 80026ac: 4a3d ldr r2, [pc, #244] ; (80027a4 ) 80026ae: 015b lsls r3, r3, #5 80026b0: 4413 add r3, r2 80026b2: 3306 adds r3, #6 80026b4: 881b ldrh r3, [r3, #0] 80026b6: b29b uxth r3, r3 80026b8: 2b06 cmp r3, #6 80026ba: f200 8207 bhi.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU++; 80026be: 4b38 ldr r3, [pc, #224] ; (80027a0 ) 80026c0: 681b ldr r3, [r3, #0] 80026c2: 4938 ldr r1, [pc, #224] ; (80027a4 ) 80026c4: 015a lsls r2, r3, #5 80026c6: 440a add r2, r1 80026c8: 3206 adds r2, #6 80026ca: 8812 ldrh r2, [r2, #0] 80026cc: b292 uxth r2, r2 80026ce: 3201 adds r2, #1 80026d0: b291 uxth r1, r2 80026d2: 4a34 ldr r2, [pc, #208] ; (80027a4 ) 80026d4: 015b lsls r3, r3, #5 80026d6: 4413 add r3, r2 80026d8: 3306 adds r3, #6 80026da: 460a mov r2, r1 80026dc: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 80026de: 4b30 ldr r3, [pc, #192] ; (80027a0 ) 80026e0: 681b ldr r3, [r3, #0] 80026e2: b2db uxtb r3, r3 80026e4: 4618 mov r0, r3 80026e6: f00d ff31 bl 801054c 80026ea: 4603 mov r3, r0 80026ec: 2b00 cmp r3, #0 80026ee: f000 81ed beq.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU--; 80026f2: 4b2b ldr r3, [pc, #172] ; (80027a0 ) 80026f4: 681b ldr r3, [r3, #0] 80026f6: 492b ldr r1, [pc, #172] ; (80027a4 ) 80026f8: 015a lsls r2, r3, #5 80026fa: 440a add r2, r1 80026fc: 3206 adds r2, #6 80026fe: 8812 ldrh r2, [r2, #0] 8002700: b292 uxth r2, r2 8002702: 3a01 subs r2, #1 8002704: b291 uxth r1, r2 8002706: 4a27 ldr r2, [pc, #156] ; (80027a4 ) 8002708: 015b lsls r3, r3, #5 800270a: 4413 add r3, r2 800270c: 3306 adds r3, #6 800270e: 460a mov r2, r1 8002710: 801a strh r2, [r3, #0] } 8002712: e1db b.n 8002acc if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 1000.0f) //1000 8002714: 4b22 ldr r3, [pc, #136] ; (80027a0 ) 8002716: 681b ldr r3, [r3, #0] 8002718: 4a22 ldr r2, [pc, #136] ; (80027a4 ) 800271a: 015b lsls r3, r3, #5 800271c: 4413 add r3, r2 800271e: 3318 adds r3, #24 8002720: edd3 7a00 vldr s15, [r3] 8002724: ed9f 7a24 vldr s14, [pc, #144] ; 80027b8 8002728: eef4 7ac7 vcmpe.f32 s15, s14 800272c: eef1 fa10 vmrs APSR_nzcv, fpscr 8002730: d844 bhi.n 80027bc if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku10) 8002732: 4b1b ldr r3, [pc, #108] ; (80027a0 ) 8002734: 681b ldr r3, [r3, #0] 8002736: 4a1b ldr r2, [pc, #108] ; (80027a4 ) 8002738: 015b lsls r3, r3, #5 800273a: 4413 add r3, r2 800273c: 3306 adds r3, #6 800273e: 881b ldrh r3, [r3, #0] 8002740: b29b uxth r3, r3 8002742: 2b05 cmp r3, #5 8002744: f200 81c2 bhi.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU++; 8002748: 4b15 ldr r3, [pc, #84] ; (80027a0 ) 800274a: 681b ldr r3, [r3, #0] 800274c: 4915 ldr r1, [pc, #84] ; (80027a4 ) 800274e: 015a lsls r2, r3, #5 8002750: 440a add r2, r1 8002752: 3206 adds r2, #6 8002754: 8812 ldrh r2, [r2, #0] 8002756: b292 uxth r2, r2 8002758: 3201 adds r2, #1 800275a: b291 uxth r1, r2 800275c: 4a11 ldr r2, [pc, #68] ; (80027a4 ) 800275e: 015b lsls r3, r3, #5 8002760: 4413 add r3, r2 8002762: 3306 adds r3, #6 8002764: 460a mov r2, r1 8002766: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8002768: 4b0d ldr r3, [pc, #52] ; (80027a0 ) 800276a: 681b ldr r3, [r3, #0] 800276c: b2db uxtb r3, r3 800276e: 4618 mov r0, r3 8002770: f00d feec bl 801054c 8002774: 4603 mov r3, r0 8002776: 2b00 cmp r3, #0 8002778: f000 81a8 beq.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU--; 800277c: 4b08 ldr r3, [pc, #32] ; (80027a0 ) 800277e: 681b ldr r3, [r3, #0] 8002780: 4908 ldr r1, [pc, #32] ; (80027a4 ) 8002782: 015a lsls r2, r3, #5 8002784: 440a add r2, r1 8002786: 3206 adds r2, #6 8002788: 8812 ldrh r2, [r2, #0] 800278a: b292 uxth r2, r2 800278c: 3a01 subs r2, #1 800278e: b291 uxth r1, r2 8002790: 4a04 ldr r2, [pc, #16] ; (80027a4 ) 8002792: 015b lsls r3, r3, #5 8002794: 4413 add r3, r2 8002796: 3306 adds r3, #6 8002798: 460a mov r2, r1 800279a: 801a strh r2, [r3, #0] } 800279c: e196 b.n 8002acc 800279e: bf00 nop 80027a0: 2006ba68 .word 0x2006ba68 80027a4: 2006bca8 .word 0x2006bca8 80027a8: 42480000 .word 0x42480000 80027ac: 42c80000 .word 0x42c80000 80027b0: 43480000 .word 0x43480000 80027b4: 43fa0000 .word 0x43fa0000 80027b8: 447a0000 .word 0x447a0000 if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 2000.0f) //2000 80027bc: 4bab ldr r3, [pc, #684] ; (8002a6c ) 80027be: 681b ldr r3, [r3, #0] 80027c0: 4aab ldr r2, [pc, #684] ; (8002a70 ) 80027c2: 015b lsls r3, r3, #5 80027c4: 4413 add r3, r2 80027c6: 3318 adds r3, #24 80027c8: edd3 7a00 vldr s15, [r3] 80027cc: ed9f 7aa9 vldr s14, [pc, #676] ; 8002a74 80027d0: eef4 7ac7 vcmpe.f32 s15, s14 80027d4: eef1 fa10 vmrs APSR_nzcv, fpscr 80027d8: d835 bhi.n 8002846 if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku5) 80027da: 4ba4 ldr r3, [pc, #656] ; (8002a6c ) 80027dc: 681b ldr r3, [r3, #0] 80027de: 4aa4 ldr r2, [pc, #656] ; (8002a70 ) 80027e0: 015b lsls r3, r3, #5 80027e2: 4413 add r3, r2 80027e4: 3306 adds r3, #6 80027e6: 881b ldrh r3, [r3, #0] 80027e8: b29b uxth r3, r3 80027ea: 2b04 cmp r3, #4 80027ec: f200 816e bhi.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU++; 80027f0: 4b9e ldr r3, [pc, #632] ; (8002a6c ) 80027f2: 681b ldr r3, [r3, #0] 80027f4: 499e ldr r1, [pc, #632] ; (8002a70 ) 80027f6: 015a lsls r2, r3, #5 80027f8: 440a add r2, r1 80027fa: 3206 adds r2, #6 80027fc: 8812 ldrh r2, [r2, #0] 80027fe: b292 uxth r2, r2 8002800: 3201 adds r2, #1 8002802: b291 uxth r1, r2 8002804: 4a9a ldr r2, [pc, #616] ; (8002a70 ) 8002806: 015b lsls r3, r3, #5 8002808: 4413 add r3, r2 800280a: 3306 adds r3, #6 800280c: 460a mov r2, r1 800280e: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8002810: 4b96 ldr r3, [pc, #600] ; (8002a6c ) 8002812: 681b ldr r3, [r3, #0] 8002814: b2db uxtb r3, r3 8002816: 4618 mov r0, r3 8002818: f00d fe98 bl 801054c 800281c: 4603 mov r3, r0 800281e: 2b00 cmp r3, #0 8002820: f000 8154 beq.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU--; 8002824: 4b91 ldr r3, [pc, #580] ; (8002a6c ) 8002826: 681b ldr r3, [r3, #0] 8002828: 4991 ldr r1, [pc, #580] ; (8002a70 ) 800282a: 015a lsls r2, r3, #5 800282c: 440a add r2, r1 800282e: 3206 adds r2, #6 8002830: 8812 ldrh r2, [r2, #0] 8002832: b292 uxth r2, r2 8002834: 3a01 subs r2, #1 8002836: b291 uxth r1, r2 8002838: 4a8d ldr r2, [pc, #564] ; (8002a70 ) 800283a: 015b lsls r3, r3, #5 800283c: 4413 add r3, r2 800283e: 3306 adds r3, #6 8002840: 460a mov r2, r1 8002842: 801a strh r2, [r3, #0] } 8002844: e142 b.n 8002acc if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 5000.0f) //5000 8002846: 4b89 ldr r3, [pc, #548] ; (8002a6c ) 8002848: 681b ldr r3, [r3, #0] 800284a: 4a89 ldr r2, [pc, #548] ; (8002a70 ) 800284c: 015b lsls r3, r3, #5 800284e: 4413 add r3, r2 8002850: 3318 adds r3, #24 8002852: edd3 7a00 vldr s15, [r3] 8002856: ed9f 7a88 vldr s14, [pc, #544] ; 8002a78 800285a: eef4 7ac7 vcmpe.f32 s15, s14 800285e: eef1 fa10 vmrs APSR_nzcv, fpscr 8002862: d835 bhi.n 80028d0 if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku2) 8002864: 4b81 ldr r3, [pc, #516] ; (8002a6c ) 8002866: 681b ldr r3, [r3, #0] 8002868: 4a81 ldr r2, [pc, #516] ; (8002a70 ) 800286a: 015b lsls r3, r3, #5 800286c: 4413 add r3, r2 800286e: 3306 adds r3, #6 8002870: 881b ldrh r3, [r3, #0] 8002872: b29b uxth r3, r3 8002874: 2b03 cmp r3, #3 8002876: f200 8129 bhi.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU++; 800287a: 4b7c ldr r3, [pc, #496] ; (8002a6c ) 800287c: 681b ldr r3, [r3, #0] 800287e: 497c ldr r1, [pc, #496] ; (8002a70 ) 8002880: 015a lsls r2, r3, #5 8002882: 440a add r2, r1 8002884: 3206 adds r2, #6 8002886: 8812 ldrh r2, [r2, #0] 8002888: b292 uxth r2, r2 800288a: 3201 adds r2, #1 800288c: b291 uxth r1, r2 800288e: 4a78 ldr r2, [pc, #480] ; (8002a70 ) 8002890: 015b lsls r3, r3, #5 8002892: 4413 add r3, r2 8002894: 3306 adds r3, #6 8002896: 460a mov r2, r1 8002898: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 800289a: 4b74 ldr r3, [pc, #464] ; (8002a6c ) 800289c: 681b ldr r3, [r3, #0] 800289e: b2db uxtb r3, r3 80028a0: 4618 mov r0, r3 80028a2: f00d fe53 bl 801054c 80028a6: 4603 mov r3, r0 80028a8: 2b00 cmp r3, #0 80028aa: f000 810f beq.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU--; 80028ae: 4b6f ldr r3, [pc, #444] ; (8002a6c ) 80028b0: 681b ldr r3, [r3, #0] 80028b2: 496f ldr r1, [pc, #444] ; (8002a70 ) 80028b4: 015a lsls r2, r3, #5 80028b6: 440a add r2, r1 80028b8: 3206 adds r2, #6 80028ba: 8812 ldrh r2, [r2, #0] 80028bc: b292 uxth r2, r2 80028be: 3a01 subs r2, #1 80028c0: b291 uxth r1, r2 80028c2: 4a6b ldr r2, [pc, #428] ; (8002a70 ) 80028c4: 015b lsls r3, r3, #5 80028c6: 4413 add r3, r2 80028c8: 3306 adds r3, #6 80028ca: 460a mov r2, r1 80028cc: 801a strh r2, [r3, #0] } 80028ce: e0fd b.n 8002acc if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 10000.0f) //10000 80028d0: 4b66 ldr r3, [pc, #408] ; (8002a6c ) 80028d2: 681b ldr r3, [r3, #0] 80028d4: 4a66 ldr r2, [pc, #408] ; (8002a70 ) 80028d6: 015b lsls r3, r3, #5 80028d8: 4413 add r3, r2 80028da: 3318 adds r3, #24 80028dc: edd3 7a00 vldr s15, [r3] 80028e0: ed9f 7a66 vldr s14, [pc, #408] ; 8002a7c 80028e4: eef4 7ac7 vcmpe.f32 s15, s14 80028e8: eef1 fa10 vmrs APSR_nzcv, fpscr 80028ec: d835 bhi.n 800295a if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku1) 80028ee: 4b5f ldr r3, [pc, #380] ; (8002a6c ) 80028f0: 681b ldr r3, [r3, #0] 80028f2: 4a5f ldr r2, [pc, #380] ; (8002a70 ) 80028f4: 015b lsls r3, r3, #5 80028f6: 4413 add r3, r2 80028f8: 3306 adds r3, #6 80028fa: 881b ldrh r3, [r3, #0] 80028fc: b29b uxth r3, r3 80028fe: 2b02 cmp r3, #2 8002900: f200 80e4 bhi.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU++; 8002904: 4b59 ldr r3, [pc, #356] ; (8002a6c ) 8002906: 681b ldr r3, [r3, #0] 8002908: 4959 ldr r1, [pc, #356] ; (8002a70 ) 800290a: 015a lsls r2, r3, #5 800290c: 440a add r2, r1 800290e: 3206 adds r2, #6 8002910: 8812 ldrh r2, [r2, #0] 8002912: b292 uxth r2, r2 8002914: 3201 adds r2, #1 8002916: b291 uxth r1, r2 8002918: 4a55 ldr r2, [pc, #340] ; (8002a70 ) 800291a: 015b lsls r3, r3, #5 800291c: 4413 add r3, r2 800291e: 3306 adds r3, #6 8002920: 460a mov r2, r1 8002922: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8002924: 4b51 ldr r3, [pc, #324] ; (8002a6c ) 8002926: 681b ldr r3, [r3, #0] 8002928: b2db uxtb r3, r3 800292a: 4618 mov r0, r3 800292c: f00d fe0e bl 801054c 8002930: 4603 mov r3, r0 8002932: 2b00 cmp r3, #0 8002934: f000 80ca beq.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU--; 8002938: 4b4c ldr r3, [pc, #304] ; (8002a6c ) 800293a: 681b ldr r3, [r3, #0] 800293c: 494c ldr r1, [pc, #304] ; (8002a70 ) 800293e: 015a lsls r2, r3, #5 8002940: 440a add r2, r1 8002942: 3206 adds r2, #6 8002944: 8812 ldrh r2, [r2, #0] 8002946: b292 uxth r2, r2 8002948: 3a01 subs r2, #1 800294a: b291 uxth r1, r2 800294c: 4a48 ldr r2, [pc, #288] ; (8002a70 ) 800294e: 015b lsls r3, r3, #5 8002950: 4413 add r3, r2 8002952: 3306 adds r3, #6 8002954: 460a mov r2, r1 8002956: 801a strh r2, [r3, #0] } 8002958: e0b8 b.n 8002acc if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 20000.0f) //20000 800295a: 4b44 ldr r3, [pc, #272] ; (8002a6c ) 800295c: 681b ldr r3, [r3, #0] 800295e: 4a44 ldr r2, [pc, #272] ; (8002a70 ) 8002960: 015b lsls r3, r3, #5 8002962: 4413 add r3, r2 8002964: 3318 adds r3, #24 8002966: edd3 7a00 vldr s15, [r3] 800296a: ed9f 7a45 vldr s14, [pc, #276] ; 8002a80 800296e: eef4 7ac7 vcmpe.f32 s15, s14 8002972: eef1 fa10 vmrs APSR_nzcv, fpscr 8002976: d835 bhi.n 80029e4 if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku0_5) 8002978: 4b3c ldr r3, [pc, #240] ; (8002a6c ) 800297a: 681b ldr r3, [r3, #0] 800297c: 4a3c ldr r2, [pc, #240] ; (8002a70 ) 800297e: 015b lsls r3, r3, #5 8002980: 4413 add r3, r2 8002982: 3306 adds r3, #6 8002984: 881b ldrh r3, [r3, #0] 8002986: b29b uxth r3, r3 8002988: 2b01 cmp r3, #1 800298a: f200 809f bhi.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU++; 800298e: 4b37 ldr r3, [pc, #220] ; (8002a6c ) 8002990: 681b ldr r3, [r3, #0] 8002992: 4937 ldr r1, [pc, #220] ; (8002a70 ) 8002994: 015a lsls r2, r3, #5 8002996: 440a add r2, r1 8002998: 3206 adds r2, #6 800299a: 8812 ldrh r2, [r2, #0] 800299c: b292 uxth r2, r2 800299e: 3201 adds r2, #1 80029a0: b291 uxth r1, r2 80029a2: 4a33 ldr r2, [pc, #204] ; (8002a70 ) 80029a4: 015b lsls r3, r3, #5 80029a6: 4413 add r3, r2 80029a8: 3306 adds r3, #6 80029aa: 460a mov r2, r1 80029ac: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 80029ae: 4b2f ldr r3, [pc, #188] ; (8002a6c ) 80029b0: 681b ldr r3, [r3, #0] 80029b2: b2db uxtb r3, r3 80029b4: 4618 mov r0, r3 80029b6: f00d fdc9 bl 801054c 80029ba: 4603 mov r3, r0 80029bc: 2b00 cmp r3, #0 80029be: f000 8085 beq.w 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU--; 80029c2: 4b2a ldr r3, [pc, #168] ; (8002a6c ) 80029c4: 681b ldr r3, [r3, #0] 80029c6: 492a ldr r1, [pc, #168] ; (8002a70 ) 80029c8: 015a lsls r2, r3, #5 80029ca: 440a add r2, r1 80029cc: 3206 adds r2, #6 80029ce: 8812 ldrh r2, [r2, #0] 80029d0: b292 uxth r2, r2 80029d2: 3a01 subs r2, #1 80029d4: b291 uxth r1, r2 80029d6: 4a26 ldr r2, [pc, #152] ; (8002a70 ) 80029d8: 015b lsls r3, r3, #5 80029da: 4413 add r3, r2 80029dc: 3306 adds r3, #6 80029de: 460a mov r2, r1 80029e0: 801a strh r2, [r3, #0] } 80029e2: e073 b.n 8002acc if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 50000.0f) //50000 80029e4: 4b21 ldr r3, [pc, #132] ; (8002a6c ) 80029e6: 681b ldr r3, [r3, #0] 80029e8: 4a21 ldr r2, [pc, #132] ; (8002a70 ) 80029ea: 015b lsls r3, r3, #5 80029ec: 4413 add r3, r2 80029ee: 3318 adds r3, #24 80029f0: edd3 7a00 vldr s15, [r3] 80029f4: ed9f 7a23 vldr s14, [pc, #140] ; 8002a84 80029f8: eef4 7ac7 vcmpe.f32 s15, s14 80029fc: eef1 fa10 vmrs APSR_nzcv, fpscr 8002a00: d842 bhi.n 8002a88 if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku0_2) 8002a02: 4b1a ldr r3, [pc, #104] ; (8002a6c ) 8002a04: 681b ldr r3, [r3, #0] 8002a06: 4a1a ldr r2, [pc, #104] ; (8002a70 ) 8002a08: 015b lsls r3, r3, #5 8002a0a: 4413 add r3, r2 8002a0c: 3306 adds r3, #6 8002a0e: 881b ldrh r3, [r3, #0] 8002a10: b29b uxth r3, r3 8002a12: 2b00 cmp r3, #0 8002a14: d15a bne.n 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU++; 8002a16: 4b15 ldr r3, [pc, #84] ; (8002a6c ) 8002a18: 681b ldr r3, [r3, #0] 8002a1a: 4915 ldr r1, [pc, #84] ; (8002a70 ) 8002a1c: 015a lsls r2, r3, #5 8002a1e: 440a add r2, r1 8002a20: 3206 adds r2, #6 8002a22: 8812 ldrh r2, [r2, #0] 8002a24: b292 uxth r2, r2 8002a26: 3201 adds r2, #1 8002a28: b291 uxth r1, r2 8002a2a: 4a11 ldr r2, [pc, #68] ; (8002a70 ) 8002a2c: 015b lsls r3, r3, #5 8002a2e: 4413 add r3, r2 8002a30: 3306 adds r3, #6 8002a32: 460a mov r2, r1 8002a34: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8002a36: 4b0d ldr r3, [pc, #52] ; (8002a6c ) 8002a38: 681b ldr r3, [r3, #0] 8002a3a: b2db uxtb r3, r3 8002a3c: 4618 mov r0, r3 8002a3e: f00d fd85 bl 801054c 8002a42: 4603 mov r3, r0 8002a44: 2b00 cmp r3, #0 8002a46: d041 beq.n 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU--; 8002a48: 4b08 ldr r3, [pc, #32] ; (8002a6c ) 8002a4a: 681b ldr r3, [r3, #0] 8002a4c: 4908 ldr r1, [pc, #32] ; (8002a70 ) 8002a4e: 015a lsls r2, r3, #5 8002a50: 440a add r2, r1 8002a52: 3206 adds r2, #6 8002a54: 8812 ldrh r2, [r2, #0] 8002a56: b292 uxth r2, r2 8002a58: 3a01 subs r2, #1 8002a5a: b291 uxth r1, r2 8002a5c: 4a04 ldr r2, [pc, #16] ; (8002a70 ) 8002a5e: 015b lsls r3, r3, #5 8002a60: 4413 add r3, r2 8002a62: 3306 adds r3, #6 8002a64: 460a mov r2, r1 8002a66: 801a strh r2, [r3, #0] } 8002a68: e030 b.n 8002acc 8002a6a: bf00 nop 8002a6c: 2006ba68 .word 0x2006ba68 8002a70: 2006bca8 .word 0x2006bca8 8002a74: 44fa0000 .word 0x44fa0000 8002a78: 459c4000 .word 0x459c4000 8002a7c: 461c4000 .word 0x461c4000 8002a80: 469c4000 .word 0x469c4000 8002a84: 47435000 .word 0x47435000 if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) //99999 8002a88: 4b11 ldr r3, [pc, #68] ; (8002ad0 ) 8002a8a: 681b ldr r3, [r3, #0] 8002a8c: 4a11 ldr r2, [pc, #68] ; (8002ad4 ) 8002a8e: 015b lsls r3, r3, #5 8002a90: 4413 add r3, r2 8002a92: 3318 adds r3, #24 8002a94: edd3 7a00 vldr s15, [r3] 8002a98: ed9f 7a0f vldr s14, [pc, #60] ; 8002ad8 8002a9c: eef4 7ac7 vcmpe.f32 s15, s14 8002aa0: eef1 fa10 vmrs APSR_nzcv, fpscr 8002aa4: d400 bmi.n 8002aa8 } 8002aa6: e011 b.n 8002acc pardata.amplif[ACTIVE_CHANNEL].IKU = Ku0_1; 8002aa8: 4b09 ldr r3, [pc, #36] ; (8002ad0 ) 8002aaa: 681b ldr r3, [r3, #0] 8002aac: 4a09 ldr r2, [pc, #36] ; (8002ad4 ) 8002aae: 015b lsls r3, r3, #5 8002ab0: 4413 add r3, r2 8002ab2: 3306 adds r3, #6 8002ab4: 2200 movs r2, #0 8002ab6: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8002ab8: 4b05 ldr r3, [pc, #20] ; (8002ad0 ) 8002aba: 681b ldr r3, [r3, #0] 8002abc: b2db uxtb r3, r3 8002abe: 4618 mov r0, r3 8002ac0: f00d fd44 bl 801054c } 8002ac4: e002 b.n 8002acc menupos = Lp; 8002ac6: 4b05 ldr r3, [pc, #20] ; (8002adc ) 8002ac8: 2201 movs r2, #1 8002aca: 701a strb r2, [r3, #0] } 8002acc: bf00 nop 8002ace: bd80 pop {r7, pc} 8002ad0: 2006ba68 .word 0x2006ba68 8002ad4: 2006bca8 .word 0x2006bca8 8002ad8: 47c35000 .word 0x47c35000 8002adc: 20020010 .word 0x20020010 08002ae0 : void SetDN(void) { 8002ae0: b580 push {r7, lr} 8002ae2: af00 add r7, sp, #0 if(menupos == Hp) 8002ae4: 4b81 ldr r3, [pc, #516] ; (8002cec ) 8002ae6: 781b ldrb r3, [r3, #0] 8002ae8: b2db uxtb r3, r3 8002aea: 2b00 cmp r3, #0 8002aec: d13e bne.n 8002b6c { if(focused) 8002aee: 4b80 ldr r3, [pc, #512] ; (8002cf0 ) 8002af0: 781b ldrb r3, [r3, #0] 8002af2: b2db uxtb r3, r3 8002af4: 2b00 cmp r3, #0 8002af6: d035 beq.n 8002b64 { if(pardata.amplif[ACTIVE_CHANNEL].IFV > Hp0_2) 8002af8: 4b7e ldr r3, [pc, #504] ; (8002cf4 ) 8002afa: 681b ldr r3, [r3, #0] 8002afc: 4a7e ldr r2, [pc, #504] ; (8002cf8 ) 8002afe: 015b lsls r3, r3, #5 8002b00: 4413 add r3, r2 8002b02: 3302 adds r3, #2 8002b04: 881b ldrh r3, [r3, #0] 8002b06: b29b uxth r3, r3 8002b08: 2b00 cmp r3, #0 8002b0a: f000 80ed beq.w 8002ce8 { pardata.amplif[ACTIVE_CHANNEL].IFV--; 8002b0e: 4b79 ldr r3, [pc, #484] ; (8002cf4 ) 8002b10: 681b ldr r3, [r3, #0] 8002b12: 4979 ldr r1, [pc, #484] ; (8002cf8 ) 8002b14: 015a lsls r2, r3, #5 8002b16: 440a add r2, r1 8002b18: 3202 adds r2, #2 8002b1a: 8812 ldrh r2, [r2, #0] 8002b1c: b292 uxth r2, r2 8002b1e: 3a01 subs r2, #1 8002b20: b291 uxth r1, r2 8002b22: 4a75 ldr r2, [pc, #468] ; (8002cf8 ) 8002b24: 015b lsls r3, r3, #5 8002b26: 4413 add r3, r2 8002b28: 3302 adds r3, #2 8002b2a: 460a mov r2, r1 8002b2c: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8002b2e: 4b71 ldr r3, [pc, #452] ; (8002cf4 ) 8002b30: 681b ldr r3, [r3, #0] 8002b32: b2db uxtb r3, r3 8002b34: 4618 mov r0, r3 8002b36: f00d fd09 bl 801054c 8002b3a: 4603 mov r3, r0 8002b3c: 2b00 cmp r3, #0 8002b3e: f000 80d3 beq.w 8002ce8 { pardata.amplif[ACTIVE_CHANNEL].IFV++; 8002b42: 4b6c ldr r3, [pc, #432] ; (8002cf4 ) 8002b44: 681b ldr r3, [r3, #0] 8002b46: 496c ldr r1, [pc, #432] ; (8002cf8 ) 8002b48: 015a lsls r2, r3, #5 8002b4a: 440a add r2, r1 8002b4c: 3202 adds r2, #2 8002b4e: 8812 ldrh r2, [r2, #0] 8002b50: b292 uxth r2, r2 8002b52: 3201 adds r2, #1 8002b54: b291 uxth r1, r2 8002b56: 4a68 ldr r2, [pc, #416] ; (8002cf8 ) 8002b58: 015b lsls r3, r3, #5 8002b5a: 4413 add r3, r2 8002b5c: 3302 adds r3, #2 8002b5e: 460a mov r2, r1 8002b60: 801a strh r2, [r3, #0] } } } } } } 8002b62: e0c1 b.n 8002ce8 menupos = Lp; 8002b64: 4b61 ldr r3, [pc, #388] ; (8002cec ) 8002b66: 2201 movs r2, #1 8002b68: 701a strb r2, [r3, #0] } 8002b6a: e0bd b.n 8002ce8 if(menupos == Lp) 8002b6c: 4b5f ldr r3, [pc, #380] ; (8002cec ) 8002b6e: 781b ldrb r3, [r3, #0] 8002b70: b2db uxtb r3, r3 8002b72: 2b01 cmp r3, #1 8002b74: d13e bne.n 8002bf4 if(focused) 8002b76: 4b5e ldr r3, [pc, #376] ; (8002cf0 ) 8002b78: 781b ldrb r3, [r3, #0] 8002b7a: b2db uxtb r3, r3 8002b7c: 2b00 cmp r3, #0 8002b7e: d035 beq.n 8002bec if(pardata.amplif[ACTIVE_CHANNEL].IFN > Lp200) 8002b80: 4b5c ldr r3, [pc, #368] ; (8002cf4 ) 8002b82: 681b ldr r3, [r3, #0] 8002b84: 4a5c ldr r2, [pc, #368] ; (8002cf8 ) 8002b86: 015b lsls r3, r3, #5 8002b88: 4413 add r3, r2 8002b8a: 3304 adds r3, #4 8002b8c: 881b ldrh r3, [r3, #0] 8002b8e: b29b uxth r3, r3 8002b90: 2b00 cmp r3, #0 8002b92: f000 80a9 beq.w 8002ce8 pardata.amplif[ACTIVE_CHANNEL].IFN--; 8002b96: 4b57 ldr r3, [pc, #348] ; (8002cf4 ) 8002b98: 681b ldr r3, [r3, #0] 8002b9a: 4957 ldr r1, [pc, #348] ; (8002cf8 ) 8002b9c: 015a lsls r2, r3, #5 8002b9e: 440a add r2, r1 8002ba0: 3204 adds r2, #4 8002ba2: 8812 ldrh r2, [r2, #0] 8002ba4: b292 uxth r2, r2 8002ba6: 3a01 subs r2, #1 8002ba8: b291 uxth r1, r2 8002baa: 4a53 ldr r2, [pc, #332] ; (8002cf8 ) 8002bac: 015b lsls r3, r3, #5 8002bae: 4413 add r3, r2 8002bb0: 3304 adds r3, #4 8002bb2: 460a mov r2, r1 8002bb4: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8002bb6: 4b4f ldr r3, [pc, #316] ; (8002cf4 ) 8002bb8: 681b ldr r3, [r3, #0] 8002bba: b2db uxtb r3, r3 8002bbc: 4618 mov r0, r3 8002bbe: f00d fcc5 bl 801054c 8002bc2: 4603 mov r3, r0 8002bc4: 2b00 cmp r3, #0 8002bc6: f000 808f beq.w 8002ce8 pardata.amplif[ACTIVE_CHANNEL].IFN++; 8002bca: 4b4a ldr r3, [pc, #296] ; (8002cf4 ) 8002bcc: 681b ldr r3, [r3, #0] 8002bce: 494a ldr r1, [pc, #296] ; (8002cf8 ) 8002bd0: 015a lsls r2, r3, #5 8002bd2: 440a add r2, r1 8002bd4: 3204 adds r2, #4 8002bd6: 8812 ldrh r2, [r2, #0] 8002bd8: b292 uxth r2, r2 8002bda: 3201 adds r2, #1 8002bdc: b291 uxth r1, r2 8002bde: 4a46 ldr r2, [pc, #280] ; (8002cf8 ) 8002be0: 015b lsls r3, r3, #5 8002be2: 4413 add r3, r2 8002be4: 3304 adds r3, #4 8002be6: 460a mov r2, r1 8002be8: 801a strh r2, [r3, #0] } 8002bea: e07d b.n 8002ce8 menupos = Out; 8002bec: 4b3f ldr r3, [pc, #252] ; (8002cec ) 8002bee: 2202 movs r2, #2 8002bf0: 701a strb r2, [r3, #0] } 8002bf2: e079 b.n 8002ce8 if(menupos == Out) 8002bf4: 4b3d ldr r3, [pc, #244] ; (8002cec ) 8002bf6: 781b ldrb r3, [r3, #0] 8002bf8: b2db uxtb r3, r3 8002bfa: 2b02 cmp r3, #2 8002bfc: d174 bne.n 8002ce8 if(focused) 8002bfe: 4b3c ldr r3, [pc, #240] ; (8002cf0 ) 8002c00: 781b ldrb r3, [r3, #0] 8002c02: b2db uxtb r3, r3 8002c04: 2b00 cmp r3, #0 8002c06: d06f beq.n 8002ce8 if(pardata.amplif[ACTIVE_CHANNEL].IIN == CHARGE) 8002c08: 4b3a ldr r3, [pc, #232] ; (8002cf4 ) 8002c0a: 681b ldr r3, [r3, #0] 8002c0c: 4a3a ldr r2, [pc, #232] ; (8002cf8 ) 8002c0e: 015b lsls r3, r3, #5 8002c10: 4413 add r3, r2 8002c12: 881b ldrh r3, [r3, #0] 8002c14: b29b uxth r3, r3 8002c16: 2b00 cmp r3, #0 8002c18: d133 bne.n 8002c82 if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku0_1) 8002c1a: 4b36 ldr r3, [pc, #216] ; (8002cf4 ) 8002c1c: 681b ldr r3, [r3, #0] 8002c1e: 4a36 ldr r2, [pc, #216] ; (8002cf8 ) 8002c20: 015b lsls r3, r3, #5 8002c22: 4413 add r3, r2 8002c24: 3306 adds r3, #6 8002c26: 881b ldrh r3, [r3, #0] 8002c28: b29b uxth r3, r3 8002c2a: 2b00 cmp r3, #0 8002c2c: d05c beq.n 8002ce8 pardata.amplif[ACTIVE_CHANNEL].IKU--; 8002c2e: 4b31 ldr r3, [pc, #196] ; (8002cf4 ) 8002c30: 681b ldr r3, [r3, #0] 8002c32: 4931 ldr r1, [pc, #196] ; (8002cf8 ) 8002c34: 015a lsls r2, r3, #5 8002c36: 440a add r2, r1 8002c38: 3206 adds r2, #6 8002c3a: 8812 ldrh r2, [r2, #0] 8002c3c: b292 uxth r2, r2 8002c3e: 3a01 subs r2, #1 8002c40: b291 uxth r1, r2 8002c42: 4a2d ldr r2, [pc, #180] ; (8002cf8 ) 8002c44: 015b lsls r3, r3, #5 8002c46: 4413 add r3, r2 8002c48: 3306 adds r3, #6 8002c4a: 460a mov r2, r1 8002c4c: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8002c4e: 4b29 ldr r3, [pc, #164] ; (8002cf4 ) 8002c50: 681b ldr r3, [r3, #0] 8002c52: b2db uxtb r3, r3 8002c54: 4618 mov r0, r3 8002c56: f00d fc79 bl 801054c 8002c5a: 4603 mov r3, r0 8002c5c: 2b00 cmp r3, #0 8002c5e: d043 beq.n 8002ce8 pardata.amplif[ACTIVE_CHANNEL].IKU++; 8002c60: 4b24 ldr r3, [pc, #144] ; (8002cf4 ) 8002c62: 681b ldr r3, [r3, #0] 8002c64: 4924 ldr r1, [pc, #144] ; (8002cf8 ) 8002c66: 015a lsls r2, r3, #5 8002c68: 440a add r2, r1 8002c6a: 3206 adds r2, #6 8002c6c: 8812 ldrh r2, [r2, #0] 8002c6e: b292 uxth r2, r2 8002c70: 3201 adds r2, #1 8002c72: b291 uxth r1, r2 8002c74: 4a20 ldr r2, [pc, #128] ; (8002cf8 ) 8002c76: 015b lsls r3, r3, #5 8002c78: 4413 add r3, r2 8002c7a: 3306 adds r3, #6 8002c7c: 460a mov r2, r1 8002c7e: 801a strh r2, [r3, #0] } 8002c80: e032 b.n 8002ce8 if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku1) 8002c82: 4b1c ldr r3, [pc, #112] ; (8002cf4 ) 8002c84: 681b ldr r3, [r3, #0] 8002c86: 4a1c ldr r2, [pc, #112] ; (8002cf8 ) 8002c88: 015b lsls r3, r3, #5 8002c8a: 4413 add r3, r2 8002c8c: 3306 adds r3, #6 8002c8e: 881b ldrh r3, [r3, #0] 8002c90: b29b uxth r3, r3 8002c92: 2b03 cmp r3, #3 8002c94: d928 bls.n 8002ce8 pardata.amplif[ACTIVE_CHANNEL].IKU--; 8002c96: 4b17 ldr r3, [pc, #92] ; (8002cf4 ) 8002c98: 681b ldr r3, [r3, #0] 8002c9a: 4917 ldr r1, [pc, #92] ; (8002cf8 ) 8002c9c: 015a lsls r2, r3, #5 8002c9e: 440a add r2, r1 8002ca0: 3206 adds r2, #6 8002ca2: 8812 ldrh r2, [r2, #0] 8002ca4: b292 uxth r2, r2 8002ca6: 3a01 subs r2, #1 8002ca8: b291 uxth r1, r2 8002caa: 4a13 ldr r2, [pc, #76] ; (8002cf8 ) 8002cac: 015b lsls r3, r3, #5 8002cae: 4413 add r3, r2 8002cb0: 3306 adds r3, #6 8002cb2: 460a mov r2, r1 8002cb4: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8002cb6: 4b0f ldr r3, [pc, #60] ; (8002cf4 ) 8002cb8: 681b ldr r3, [r3, #0] 8002cba: b2db uxtb r3, r3 8002cbc: 4618 mov r0, r3 8002cbe: f00d fc45 bl 801054c 8002cc2: 4603 mov r3, r0 8002cc4: 2b00 cmp r3, #0 8002cc6: d00f beq.n 8002ce8 pardata.amplif[ACTIVE_CHANNEL].IKU++; 8002cc8: 4b0a ldr r3, [pc, #40] ; (8002cf4 ) 8002cca: 681b ldr r3, [r3, #0] 8002ccc: 490a ldr r1, [pc, #40] ; (8002cf8 ) 8002cce: 015a lsls r2, r3, #5 8002cd0: 440a add r2, r1 8002cd2: 3206 adds r2, #6 8002cd4: 8812 ldrh r2, [r2, #0] 8002cd6: b292 uxth r2, r2 8002cd8: 3201 adds r2, #1 8002cda: b291 uxth r1, r2 8002cdc: 4a06 ldr r2, [pc, #24] ; (8002cf8 ) 8002cde: 015b lsls r3, r3, #5 8002ce0: 4413 add r3, r2 8002ce2: 3306 adds r3, #6 8002ce4: 460a mov r2, r1 8002ce6: 801a strh r2, [r3, #0] } 8002ce8: bf00 nop 8002cea: bd80 pop {r7, pc} 8002cec: 20020010 .word 0x20020010 8002cf0: 200209e4 .word 0x200209e4 8002cf4: 2006ba68 .word 0x2006ba68 8002cf8: 2006bca8 .word 0x2006bca8 08002cfc : void DoKeyUP(void) { 8002cfc: b580 push {r7, lr} 8002cfe: b088 sub sp, #32 8002d00: af00 add r7, sp, #0 uint32_t s, ikdt, ikt, iks, ikd, ike, ipt; if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10.0f) { 8002d02: 4b5f ldr r3, [pc, #380] ; (8002e80 ) 8002d04: 681b ldr r3, [r3, #0] 8002d06: 4a5f ldr r2, [pc, #380] ; (8002e84 ) 8002d08: 015b lsls r3, r3, #5 8002d0a: 4413 add r3, r2 8002d0c: 3318 adds r3, #24 8002d0e: edd3 7a00 vldr s15, [r3] 8002d12: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8002d16: eef4 7ac7 vcmpe.f32 s15, s14 8002d1a: eef1 fa10 vmrs APSR_nzcv, fpscr 8002d1e: d517 bpl.n 8002d50 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10000.0f) + 0.5f); 8002d20: 4b57 ldr r3, [pc, #348] ; (8002e80 ) 8002d22: 681b ldr r3, [r3, #0] 8002d24: 4a57 ldr r2, [pc, #348] ; (8002e84 ) 8002d26: 015b lsls r3, r3, #5 8002d28: 4413 add r3, r2 8002d2a: 3318 adds r3, #24 8002d2c: edd3 7a00 vldr s15, [r3] 8002d30: ed9f 7a55 vldr s14, [pc, #340] ; 8002e88 8002d34: ee67 7a87 vmul.f32 s15, s15, s14 8002d38: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8002d3c: ee77 7a87 vadd.f32 s15, s15, s14 8002d40: eefc 7ae7 vcvt.u32.f32 s15, s15 8002d44: ee17 3a90 vmov r3, s15 8002d48: 61fb str r3, [r7, #28] ipt = 4; 8002d4a: 2304 movs r3, #4 8002d4c: 607b str r3, [r7, #4] 8002d4e: e0be b.n 8002ece } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100.0f) { 8002d50: 4b4b ldr r3, [pc, #300] ; (8002e80 ) 8002d52: 681b ldr r3, [r3, #0] 8002d54: 4a4b ldr r2, [pc, #300] ; (8002e84 ) 8002d56: 015b lsls r3, r3, #5 8002d58: 4413 add r3, r2 8002d5a: 3318 adds r3, #24 8002d5c: edd3 7a00 vldr s15, [r3] 8002d60: ed9f 7a4a vldr s14, [pc, #296] ; 8002e8c 8002d64: eef4 7ac7 vcmpe.f32 s15, s14 8002d68: eef1 fa10 vmrs APSR_nzcv, fpscr 8002d6c: d517 bpl.n 8002d9e s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 1000.0f) + 0.5f); 8002d6e: 4b44 ldr r3, [pc, #272] ; (8002e80 ) 8002d70: 681b ldr r3, [r3, #0] 8002d72: 4a44 ldr r2, [pc, #272] ; (8002e84 ) 8002d74: 015b lsls r3, r3, #5 8002d76: 4413 add r3, r2 8002d78: 3318 adds r3, #24 8002d7a: edd3 7a00 vldr s15, [r3] 8002d7e: ed9f 7a44 vldr s14, [pc, #272] ; 8002e90 8002d82: ee67 7a87 vmul.f32 s15, s15, s14 8002d86: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8002d8a: ee77 7a87 vadd.f32 s15, s15, s14 8002d8e: eefc 7ae7 vcvt.u32.f32 s15, s15 8002d92: ee17 3a90 vmov r3, s15 8002d96: 61fb str r3, [r7, #28] ipt = 3; 8002d98: 2303 movs r3, #3 8002d9a: 607b str r3, [r7, #4] 8002d9c: e097 b.n 8002ece } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 1000.0f) { 8002d9e: 4b38 ldr r3, [pc, #224] ; (8002e80 ) 8002da0: 681b ldr r3, [r3, #0] 8002da2: 4a38 ldr r2, [pc, #224] ; (8002e84 ) 8002da4: 015b lsls r3, r3, #5 8002da6: 4413 add r3, r2 8002da8: 3318 adds r3, #24 8002daa: edd3 7a00 vldr s15, [r3] 8002dae: ed9f 7a38 vldr s14, [pc, #224] ; 8002e90 8002db2: eef4 7ac7 vcmpe.f32 s15, s14 8002db6: eef1 fa10 vmrs APSR_nzcv, fpscr 8002dba: d517 bpl.n 8002dec s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 100.0f) + 0.5f); 8002dbc: 4b30 ldr r3, [pc, #192] ; (8002e80 ) 8002dbe: 681b ldr r3, [r3, #0] 8002dc0: 4a30 ldr r2, [pc, #192] ; (8002e84 ) 8002dc2: 015b lsls r3, r3, #5 8002dc4: 4413 add r3, r2 8002dc6: 3318 adds r3, #24 8002dc8: edd3 7a00 vldr s15, [r3] 8002dcc: ed9f 7a2f vldr s14, [pc, #188] ; 8002e8c 8002dd0: ee67 7a87 vmul.f32 s15, s15, s14 8002dd4: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8002dd8: ee77 7a87 vadd.f32 s15, s15, s14 8002ddc: eefc 7ae7 vcvt.u32.f32 s15, s15 8002de0: ee17 3a90 vmov r3, s15 8002de4: 61fb str r3, [r7, #28] ipt = 2; 8002de6: 2302 movs r3, #2 8002de8: 607b str r3, [r7, #4] 8002dea: e070 b.n 8002ece } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10000.0f) { 8002dec: 4b24 ldr r3, [pc, #144] ; (8002e80 ) 8002dee: 681b ldr r3, [r3, #0] 8002df0: 4a24 ldr r2, [pc, #144] ; (8002e84 ) 8002df2: 015b lsls r3, r3, #5 8002df4: 4413 add r3, r2 8002df6: 3318 adds r3, #24 8002df8: edd3 7a00 vldr s15, [r3] 8002dfc: ed9f 7a22 vldr s14, [pc, #136] ; 8002e88 8002e00: eef4 7ac7 vcmpe.f32 s15, s14 8002e04: eef1 fa10 vmrs APSR_nzcv, fpscr 8002e08: d517 bpl.n 8002e3a s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10.0f) + 0.5f); 8002e0a: 4b1d ldr r3, [pc, #116] ; (8002e80 ) 8002e0c: 681b ldr r3, [r3, #0] 8002e0e: 4a1d ldr r2, [pc, #116] ; (8002e84 ) 8002e10: 015b lsls r3, r3, #5 8002e12: 4413 add r3, r2 8002e14: 3318 adds r3, #24 8002e16: edd3 7a00 vldr s15, [r3] 8002e1a: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8002e1e: ee67 7a87 vmul.f32 s15, s15, s14 8002e22: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8002e26: ee77 7a87 vadd.f32 s15, s15, s14 8002e2a: eefc 7ae7 vcvt.u32.f32 s15, s15 8002e2e: ee17 3a90 vmov r3, s15 8002e32: 61fb str r3, [r7, #28] ipt = 1; 8002e34: 2301 movs r3, #1 8002e36: 607b str r3, [r7, #4] 8002e38: e049 b.n 8002ece } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) { 8002e3a: 4b11 ldr r3, [pc, #68] ; (8002e80 ) 8002e3c: 681b ldr r3, [r3, #0] 8002e3e: 4a11 ldr r2, [pc, #68] ; (8002e84 ) 8002e40: 015b lsls r3, r3, #5 8002e42: 4413 add r3, r2 8002e44: 3318 adds r3, #24 8002e46: edd3 7a00 vldr s15, [r3] 8002e4a: ed9f 7a12 vldr s14, [pc, #72] ; 8002e94 8002e4e: eef4 7ac7 vcmpe.f32 s15, s14 8002e52: eef1 fa10 vmrs APSR_nzcv, fpscr 8002e56: d51f bpl.n 8002e98 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS) + 0.5f); 8002e58: 4b09 ldr r3, [pc, #36] ; (8002e80 ) 8002e5a: 681b ldr r3, [r3, #0] 8002e5c: 4a09 ldr r2, [pc, #36] ; (8002e84 ) 8002e5e: 015b lsls r3, r3, #5 8002e60: 4413 add r3, r2 8002e62: 3318 adds r3, #24 8002e64: edd3 7a00 vldr s15, [r3] 8002e68: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8002e6c: ee77 7a87 vadd.f32 s15, s15, s14 8002e70: eefc 7ae7 vcvt.u32.f32 s15, s15 8002e74: ee17 3a90 vmov r3, s15 8002e78: 61fb str r3, [r7, #28] ipt = 0; 8002e7a: 2300 movs r3, #0 8002e7c: 607b str r3, [r7, #4] 8002e7e: e026 b.n 8002ece 8002e80: 2006ba68 .word 0x2006ba68 8002e84: 2006bca8 .word 0x2006bca8 8002e88: 461c4000 .word 0x461c4000 8002e8c: 42c80000 .word 0x42c80000 8002e90: 447a0000 .word 0x447a0000 8002e94: 47c35000 .word 0x47c35000 } else if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 8002e98: 4bb0 ldr r3, [pc, #704] ; (800315c ) 8002e9a: 681b ldr r3, [r3, #0] 8002e9c: 4ab0 ldr r2, [pc, #704] ; (8003160 ) 8002e9e: 015b lsls r3, r3, #5 8002ea0: 4413 add r3, r2 8002ea2: 3318 adds r3, #24 8002ea4: edd3 7a00 vldr s15, [r3] 8002ea8: ed9f 7aae vldr s14, [pc, #696] ; 8003164 8002eac: eef4 7ac7 vcmpe.f32 s15, s14 8002eb0: eef1 fa10 vmrs APSR_nzcv, fpscr 8002eb4: db0b blt.n 8002ece pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 8002eb6: 4ba9 ldr r3, [pc, #676] ; (800315c ) 8002eb8: 681b ldr r3, [r3, #0] 8002eba: 4aa9 ldr r2, [pc, #676] ; (8003160 ) 8002ebc: 015b lsls r3, r3, #5 8002ebe: 4413 add r3, r2 8002ec0: 3318 adds r3, #24 8002ec2: 4aa9 ldr r2, [pc, #676] ; (8003168 ) 8002ec4: 601a str r2, [r3, #0] s = 99999; 8002ec6: 4ba9 ldr r3, [pc, #676] ; (800316c ) 8002ec8: 61fb str r3, [r7, #28] ipt = 0; 8002eca: 2300 movs r3, #0 8002ecc: 607b str r3, [r7, #4] } ikdt = (s / 10000); 8002ece: 69fb ldr r3, [r7, #28] 8002ed0: 4aa7 ldr r2, [pc, #668] ; (8003170 ) 8002ed2: fba2 2303 umull r2, r3, r2, r3 8002ed6: 0b5b lsrs r3, r3, #13 8002ed8: 61bb str r3, [r7, #24] ikt = (s % 10000 / 1000); 8002eda: 69fa ldr r2, [r7, #28] 8002edc: 4ba4 ldr r3, [pc, #656] ; (8003170 ) 8002ede: fba3 1302 umull r1, r3, r3, r2 8002ee2: 0b5b lsrs r3, r3, #13 8002ee4: f242 7110 movw r1, #10000 ; 0x2710 8002ee8: fb01 f303 mul.w r3, r1, r3 8002eec: 1ad3 subs r3, r2, r3 8002eee: 4aa1 ldr r2, [pc, #644] ; (8003174 ) 8002ef0: fba2 2303 umull r2, r3, r2, r3 8002ef4: 099b lsrs r3, r3, #6 8002ef6: 617b str r3, [r7, #20] iks = (s % 10000 % 1000 / 100); 8002ef8: 69fa ldr r2, [r7, #28] 8002efa: 4b9d ldr r3, [pc, #628] ; (8003170 ) 8002efc: fba3 1302 umull r1, r3, r3, r2 8002f00: 0b5b lsrs r3, r3, #13 8002f02: f242 7110 movw r1, #10000 ; 0x2710 8002f06: fb01 f303 mul.w r3, r1, r3 8002f0a: 1ad3 subs r3, r2, r3 8002f0c: 4a99 ldr r2, [pc, #612] ; (8003174 ) 8002f0e: fba2 1203 umull r1, r2, r2, r3 8002f12: 0992 lsrs r2, r2, #6 8002f14: f44f 717a mov.w r1, #1000 ; 0x3e8 8002f18: fb01 f202 mul.w r2, r1, r2 8002f1c: 1a9a subs r2, r3, r2 8002f1e: 4b96 ldr r3, [pc, #600] ; (8003178 ) 8002f20: fba3 2302 umull r2, r3, r3, r2 8002f24: 095b lsrs r3, r3, #5 8002f26: 613b str r3, [r7, #16] ikd = (s % 10000 % 1000 % 100 / 10); 8002f28: 69fb ldr r3, [r7, #28] 8002f2a: 4a91 ldr r2, [pc, #580] ; (8003170 ) 8002f2c: fba2 1203 umull r1, r2, r2, r3 8002f30: 0b52 lsrs r2, r2, #13 8002f32: f242 7110 movw r1, #10000 ; 0x2710 8002f36: fb01 f202 mul.w r2, r1, r2 8002f3a: 1a9a subs r2, r3, r2 8002f3c: 4b8d ldr r3, [pc, #564] ; (8003174 ) 8002f3e: fba3 1302 umull r1, r3, r3, r2 8002f42: 099b lsrs r3, r3, #6 8002f44: f44f 717a mov.w r1, #1000 ; 0x3e8 8002f48: fb01 f303 mul.w r3, r1, r3 8002f4c: 1ad3 subs r3, r2, r3 8002f4e: 4a8a ldr r2, [pc, #552] ; (8003178 ) 8002f50: fba2 1203 umull r1, r2, r2, r3 8002f54: 0952 lsrs r2, r2, #5 8002f56: 2164 movs r1, #100 ; 0x64 8002f58: fb01 f202 mul.w r2, r1, r2 8002f5c: 1a9a subs r2, r3, r2 8002f5e: 4b87 ldr r3, [pc, #540] ; (800317c ) 8002f60: fba3 2302 umull r2, r3, r3, r2 8002f64: 08db lsrs r3, r3, #3 8002f66: 60fb str r3, [r7, #12] ike = (s % 10000 % 1000 % 100 % 10); 8002f68: 69fb ldr r3, [r7, #28] 8002f6a: 4a81 ldr r2, [pc, #516] ; (8003170 ) 8002f6c: fba2 1203 umull r1, r2, r2, r3 8002f70: 0b52 lsrs r2, r2, #13 8002f72: f242 7110 movw r1, #10000 ; 0x2710 8002f76: fb01 f202 mul.w r2, r1, r2 8002f7a: 1a9a subs r2, r3, r2 8002f7c: 4b7d ldr r3, [pc, #500] ; (8003174 ) 8002f7e: fba3 1302 umull r1, r3, r3, r2 8002f82: 099b lsrs r3, r3, #6 8002f84: f44f 717a mov.w r1, #1000 ; 0x3e8 8002f88: fb01 f303 mul.w r3, r1, r3 8002f8c: 1ad3 subs r3, r2, r3 8002f8e: 4a7a ldr r2, [pc, #488] ; (8003178 ) 8002f90: fba2 1203 umull r1, r2, r2, r3 8002f94: 0952 lsrs r2, r2, #5 8002f96: 2164 movs r1, #100 ; 0x64 8002f98: fb01 f202 mul.w r2, r1, r2 8002f9c: 1a9a subs r2, r3, r2 8002f9e: 4b77 ldr r3, [pc, #476] ; (800317c ) 8002fa0: fba3 1302 umull r1, r3, r3, r2 8002fa4: 08d9 lsrs r1, r3, #3 8002fa6: 460b mov r3, r1 8002fa8: 009b lsls r3, r3, #2 8002faa: 440b add r3, r1 8002fac: 005b lsls r3, r3, #1 8002fae: 1ad3 subs r3, r2, r3 8002fb0: 60bb str r3, [r7, #8] if(menupos == Kikdt_1 || menupos == Kikdt_2 || menupos == Kikdt_3 || menupos == Kikdt_4) 8002fb2: 4b73 ldr r3, [pc, #460] ; (8003180 ) 8002fb4: 781b ldrb r3, [r3, #0] 8002fb6: b2db uxtb r3, r3 8002fb8: 2b02 cmp r3, #2 8002fba: d00f beq.n 8002fdc 8002fbc: 4b70 ldr r3, [pc, #448] ; (8003180 ) 8002fbe: 781b ldrb r3, [r3, #0] 8002fc0: b2db uxtb r3, r3 8002fc2: 2b0a cmp r3, #10 8002fc4: d00a beq.n 8002fdc 8002fc6: 4b6e ldr r3, [pc, #440] ; (8003180 ) 8002fc8: 781b ldrb r3, [r3, #0] 8002fca: b2db uxtb r3, r3 8002fcc: 2b12 cmp r3, #18 8002fce: d005 beq.n 8002fdc 8002fd0: 4b6b ldr r3, [pc, #428] ; (8003180 ) 8002fd2: 781b ldrb r3, [r3, #0] 8002fd4: b2db uxtb r3, r3 8002fd6: 2b1a cmp r3, #26 8002fd8: f040 80e2 bne.w 80031a0 { if(ikdt < 9) { 8002fdc: 69bb ldr r3, [r7, #24] 8002fde: 2b08 cmp r3, #8 8002fe0: d802 bhi.n 8002fe8 ikdt++; 8002fe2: 69bb ldr r3, [r7, #24] 8002fe4: 3301 adds r3, #1 8002fe6: 61bb str r3, [r7, #24] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 8002fe8: 69bb ldr r3, [r7, #24] 8002fea: f242 7210 movw r2, #10000 ; 0x2710 8002fee: fb02 f203 mul.w r2, r2, r3 8002ff2: 697b ldr r3, [r7, #20] 8002ff4: f44f 717a mov.w r1, #1000 ; 0x3e8 8002ff8: fb01 f303 mul.w r3, r1, r3 8002ffc: 18d1 adds r1, r2, r3 8002ffe: 68fa ldr r2, [r7, #12] 8003000: 4613 mov r3, r2 8003002: 009b lsls r3, r3, #2 8003004: 4413 add r3, r2 8003006: 005b lsls r3, r3, #1 8003008: 4618 mov r0, r3 800300a: 693b ldr r3, [r7, #16] 800300c: 2264 movs r2, #100 ; 0x64 800300e: fb02 f303 mul.w r3, r2, r3 8003012: 4403 add r3, r0 8003014: 18ca adds r2, r1, r3 8003016: 68bb ldr r3, [r7, #8] 8003018: 4413 add r3, r2 800301a: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 800301c: 4b4f ldr r3, [pc, #316] ; (800315c ) 800301e: 681b ldr r3, [r3, #0] 8003020: 69fa ldr r2, [r7, #28] 8003022: ee07 2a90 vmov s15, r2 8003026: eef8 7a67 vcvt.f32.u32 s15, s15 800302a: 4a4d ldr r2, [pc, #308] ; (8003160 ) 800302c: 015b lsls r3, r3, #5 800302e: 4413 add r3, r2 8003030: 3318 adds r3, #24 8003032: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 8003036: 687b ldr r3, [r7, #4] 8003038: 2b01 cmp r3, #1 800303a: d112 bne.n 8003062 800303c: 4b47 ldr r3, [pc, #284] ; (800315c ) 800303e: 681b ldr r3, [r3, #0] 8003040: 4947 ldr r1, [pc, #284] ; (8003160 ) 8003042: 015a lsls r2, r3, #5 8003044: 440a add r2, r1 8003046: 3218 adds r2, #24 8003048: edd2 7a00 vldr s15, [r2] 800304c: ed9f 7a4d vldr s14, [pc, #308] ; 8003184 8003050: ee67 7a87 vmul.f32 s15, s15, s14 8003054: 4a42 ldr r2, [pc, #264] ; (8003160 ) 8003056: 015b lsls r3, r3, #5 8003058: 4413 add r3, r2 800305a: 3318 adds r3, #24 800305c: edc3 7a00 vstr s15, [r3] 8003060: e040 b.n 80030e4 else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8003062: 687b ldr r3, [r7, #4] 8003064: 2b02 cmp r3, #2 8003066: d112 bne.n 800308e 8003068: 4b3c ldr r3, [pc, #240] ; (800315c ) 800306a: 681b ldr r3, [r3, #0] 800306c: 493c ldr r1, [pc, #240] ; (8003160 ) 800306e: 015a lsls r2, r3, #5 8003070: 440a add r2, r1 8003072: 3218 adds r2, #24 8003074: edd2 7a00 vldr s15, [r2] 8003078: ed9f 7a43 vldr s14, [pc, #268] ; 8003188 800307c: ee67 7a87 vmul.f32 s15, s15, s14 8003080: 4a37 ldr r2, [pc, #220] ; (8003160 ) 8003082: 015b lsls r3, r3, #5 8003084: 4413 add r3, r2 8003086: 3318 adds r3, #24 8003088: edc3 7a00 vstr s15, [r3] 800308c: e02a b.n 80030e4 else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 800308e: 687b ldr r3, [r7, #4] 8003090: 2b03 cmp r3, #3 8003092: d112 bne.n 80030ba 8003094: 4b31 ldr r3, [pc, #196] ; (800315c ) 8003096: 681b ldr r3, [r3, #0] 8003098: 4931 ldr r1, [pc, #196] ; (8003160 ) 800309a: 015a lsls r2, r3, #5 800309c: 440a add r2, r1 800309e: 3218 adds r2, #24 80030a0: edd2 7a00 vldr s15, [r2] 80030a4: ed9f 7a39 vldr s14, [pc, #228] ; 800318c 80030a8: ee67 7a87 vmul.f32 s15, s15, s14 80030ac: 4a2c ldr r2, [pc, #176] ; (8003160 ) 80030ae: 015b lsls r3, r3, #5 80030b0: 4413 add r3, r2 80030b2: 3318 adds r3, #24 80030b4: edc3 7a00 vstr s15, [r3] 80030b8: e014 b.n 80030e4 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 80030ba: 687b ldr r3, [r7, #4] 80030bc: 2b04 cmp r3, #4 80030be: d111 bne.n 80030e4 80030c0: 4b26 ldr r3, [pc, #152] ; (800315c ) 80030c2: 681b ldr r3, [r3, #0] 80030c4: 4926 ldr r1, [pc, #152] ; (8003160 ) 80030c6: 015a lsls r2, r3, #5 80030c8: 440a add r2, r1 80030ca: 3218 adds r2, #24 80030cc: edd2 7a00 vldr s15, [r2] 80030d0: ed9f 7a2f vldr s14, [pc, #188] ; 8003190 80030d4: ee67 7a87 vmul.f32 s15, s15, s14 80030d8: 4a21 ldr r2, [pc, #132] ; (8003160 ) 80030da: 015b lsls r3, r3, #5 80030dc: 4413 add r3, r2 80030de: 3318 adds r3, #24 80030e0: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //поправил 80030e4: 4b1d ldr r3, [pc, #116] ; (800315c ) 80030e6: 681b ldr r3, [r3, #0] 80030e8: 4a1d ldr r2, [pc, #116] ; (8003160 ) 80030ea: 015b lsls r3, r3, #5 80030ec: 4413 add r3, r2 80030ee: 3318 adds r3, #24 80030f0: edd3 7a00 vldr s15, [r3] 80030f4: ed9f 7a25 vldr s14, [pc, #148] ; 800318c 80030f8: eef4 7ac7 vcmpe.f32 s15, s14 80030fc: eef1 fa10 vmrs APSR_nzcv, fpscr 8003100: d507 bpl.n 8003112 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f; 8003102: 4b16 ldr r3, [pc, #88] ; (800315c ) 8003104: 681b ldr r3, [r3, #0] 8003106: 4a16 ldr r2, [pc, #88] ; (8003160 ) 8003108: 015b lsls r3, r3, #5 800310a: 4413 add r3, r2 800310c: 3318 adds r3, #24 800310e: 4a21 ldr r2, [pc, #132] ; (8003194 ) 8003110: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) { 8003112: 4b12 ldr r3, [pc, #72] ; (800315c ) 8003114: 681b ldr r3, [r3, #0] 8003116: 4a12 ldr r2, [pc, #72] ; (8003160 ) 8003118: 015b lsls r3, r3, #5 800311a: 4413 add r3, r2 800311c: 3318 adds r3, #24 800311e: edd3 7a00 vldr s15, [r3] 8003122: ed9f 7a1d vldr s14, [pc, #116] ; 8003198 8003126: eef4 7ac7 vcmpe.f32 s15, s14 800312a: eef1 fa10 vmrs APSR_nzcv, fpscr 800312e: db07 blt.n 8003140 pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f; 8003130: 4b0a ldr r3, [pc, #40] ; (800315c ) 8003132: 681b ldr r3, [r3, #0] 8003134: 4a0a ldr r2, [pc, #40] ; (8003160 ) 8003136: 015b lsls r3, r3, #5 8003138: 4413 add r3, r2 800313a: 3318 adds r3, #24 800313c: 4a17 ldr r2, [pc, #92] ; (800319c ) 800313e: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 8003140: 4b06 ldr r3, [pc, #24] ; (800315c ) 8003142: 681b ldr r3, [r3, #0] 8003144: 4a06 ldr r2, [pc, #24] ; (8003160 ) 8003146: 015b lsls r3, r3, #5 8003148: 4413 add r3, r2 800314a: 3318 adds r3, #24 800314c: edd3 7a00 vldr s15, [r3] 8003150: eeb0 0a67 vmov.f32 s0, s15 8003154: f001 fb5a bl 800480c 8003158: f000 bc82 b.w 8003a60 800315c: 2006ba68 .word 0x2006ba68 8003160: 2006bca8 .word 0x2006bca8 8003164: 47c35000 .word 0x47c35000 8003168: 47c34f80 .word 0x47c34f80 800316c: 0001869f .word 0x0001869f 8003170: d1b71759 .word 0xd1b71759 8003174: 10624dd3 .word 0x10624dd3 8003178: 51eb851f .word 0x51eb851f 800317c: cccccccd .word 0xcccccccd 8003180: 20020010 .word 0x20020010 8003184: 3dcccccd .word 0x3dcccccd 8003188: 3c23d70a .word 0x3c23d70a 800318c: 3a83126f .word 0x3a83126f 8003190: 38d1b717 .word 0x38d1b717 8003194: 3a83126f .word 0x3a83126f 8003198: 461c4000 .word 0x461c4000 800319c: 461c3c00 .word 0x461c3c00 } else if(menupos == Kikt_1 || menupos == Kikt_2 || menupos == Kikt_3 || menupos == Kikt_4) 80031a0: 4bab ldr r3, [pc, #684] ; (8003450 ) 80031a2: 781b ldrb r3, [r3, #0] 80031a4: b2db uxtb r3, r3 80031a6: 2b03 cmp r3, #3 80031a8: d00f beq.n 80031ca 80031aa: 4ba9 ldr r3, [pc, #676] ; (8003450 ) 80031ac: 781b ldrb r3, [r3, #0] 80031ae: b2db uxtb r3, r3 80031b0: 2b0b cmp r3, #11 80031b2: d00a beq.n 80031ca 80031b4: 4ba6 ldr r3, [pc, #664] ; (8003450 ) 80031b6: 781b ldrb r3, [r3, #0] 80031b8: b2db uxtb r3, r3 80031ba: 2b13 cmp r3, #19 80031bc: d005 beq.n 80031ca 80031be: 4ba4 ldr r3, [pc, #656] ; (8003450 ) 80031c0: 781b ldrb r3, [r3, #0] 80031c2: b2db uxtb r3, r3 80031c4: 2b1b cmp r3, #27 80031c6: f040 80bf bne.w 8003348 { if(ikt < 9) { 80031ca: 697b ldr r3, [r7, #20] 80031cc: 2b08 cmp r3, #8 80031ce: d802 bhi.n 80031d6 ikt++; 80031d0: 697b ldr r3, [r7, #20] 80031d2: 3301 adds r3, #1 80031d4: 617b str r3, [r7, #20] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 80031d6: 69bb ldr r3, [r7, #24] 80031d8: f242 7210 movw r2, #10000 ; 0x2710 80031dc: fb02 f203 mul.w r2, r2, r3 80031e0: 697b ldr r3, [r7, #20] 80031e2: f44f 717a mov.w r1, #1000 ; 0x3e8 80031e6: fb01 f303 mul.w r3, r1, r3 80031ea: 18d1 adds r1, r2, r3 80031ec: 68fa ldr r2, [r7, #12] 80031ee: 4613 mov r3, r2 80031f0: 009b lsls r3, r3, #2 80031f2: 4413 add r3, r2 80031f4: 005b lsls r3, r3, #1 80031f6: 4618 mov r0, r3 80031f8: 693b ldr r3, [r7, #16] 80031fa: 2264 movs r2, #100 ; 0x64 80031fc: fb02 f303 mul.w r3, r2, r3 8003200: 4403 add r3, r0 8003202: 18ca adds r2, r1, r3 8003204: 68bb ldr r3, [r7, #8] 8003206: 4413 add r3, r2 8003208: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 800320a: 4b92 ldr r3, [pc, #584] ; (8003454 ) 800320c: 681b ldr r3, [r3, #0] 800320e: 69fa ldr r2, [r7, #28] 8003210: ee07 2a90 vmov s15, r2 8003214: eef8 7a67 vcvt.f32.u32 s15, s15 8003218: 4a8f ldr r2, [pc, #572] ; (8003458 ) 800321a: 015b lsls r3, r3, #5 800321c: 4413 add r3, r2 800321e: 3318 adds r3, #24 8003220: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 8003224: 687b ldr r3, [r7, #4] 8003226: 2b01 cmp r3, #1 8003228: d112 bne.n 8003250 800322a: 4b8a ldr r3, [pc, #552] ; (8003454 ) 800322c: 681b ldr r3, [r3, #0] 800322e: 498a ldr r1, [pc, #552] ; (8003458 ) 8003230: 015a lsls r2, r3, #5 8003232: 440a add r2, r1 8003234: 3218 adds r2, #24 8003236: edd2 7a00 vldr s15, [r2] 800323a: ed9f 7a88 vldr s14, [pc, #544] ; 800345c 800323e: ee67 7a87 vmul.f32 s15, s15, s14 8003242: 4a85 ldr r2, [pc, #532] ; (8003458 ) 8003244: 015b lsls r3, r3, #5 8003246: 4413 add r3, r2 8003248: 3318 adds r3, #24 800324a: edc3 7a00 vstr s15, [r3] 800324e: e040 b.n 80032d2 else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8003250: 687b ldr r3, [r7, #4] 8003252: 2b02 cmp r3, #2 8003254: d112 bne.n 800327c 8003256: 4b7f ldr r3, [pc, #508] ; (8003454 ) 8003258: 681b ldr r3, [r3, #0] 800325a: 497f ldr r1, [pc, #508] ; (8003458 ) 800325c: 015a lsls r2, r3, #5 800325e: 440a add r2, r1 8003260: 3218 adds r2, #24 8003262: edd2 7a00 vldr s15, [r2] 8003266: ed9f 7a7e vldr s14, [pc, #504] ; 8003460 800326a: ee67 7a87 vmul.f32 s15, s15, s14 800326e: 4a7a ldr r2, [pc, #488] ; (8003458 ) 8003270: 015b lsls r3, r3, #5 8003272: 4413 add r3, r2 8003274: 3318 adds r3, #24 8003276: edc3 7a00 vstr s15, [r3] 800327a: e02a b.n 80032d2 else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 800327c: 687b ldr r3, [r7, #4] 800327e: 2b03 cmp r3, #3 8003280: d112 bne.n 80032a8 8003282: 4b74 ldr r3, [pc, #464] ; (8003454 ) 8003284: 681b ldr r3, [r3, #0] 8003286: 4974 ldr r1, [pc, #464] ; (8003458 ) 8003288: 015a lsls r2, r3, #5 800328a: 440a add r2, r1 800328c: 3218 adds r2, #24 800328e: edd2 7a00 vldr s15, [r2] 8003292: ed9f 7a74 vldr s14, [pc, #464] ; 8003464 8003296: ee67 7a87 vmul.f32 s15, s15, s14 800329a: 4a6f ldr r2, [pc, #444] ; (8003458 ) 800329c: 015b lsls r3, r3, #5 800329e: 4413 add r3, r2 80032a0: 3318 adds r3, #24 80032a2: edc3 7a00 vstr s15, [r3] 80032a6: e014 b.n 80032d2 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 80032a8: 687b ldr r3, [r7, #4] 80032aa: 2b04 cmp r3, #4 80032ac: d111 bne.n 80032d2 80032ae: 4b69 ldr r3, [pc, #420] ; (8003454 ) 80032b0: 681b ldr r3, [r3, #0] 80032b2: 4969 ldr r1, [pc, #420] ; (8003458 ) 80032b4: 015a lsls r2, r3, #5 80032b6: 440a add r2, r1 80032b8: 3218 adds r2, #24 80032ba: edd2 7a00 vldr s15, [r2] 80032be: ed9f 7a6a vldr s14, [pc, #424] ; 8003468 80032c2: ee67 7a87 vmul.f32 s15, s15, s14 80032c6: 4a64 ldr r2, [pc, #400] ; (8003458 ) 80032c8: 015b lsls r3, r3, #5 80032ca: 4413 add r3, r2 80032cc: 3318 adds r3, #24 80032ce: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //поправил 80032d2: 4b60 ldr r3, [pc, #384] ; (8003454 ) 80032d4: 681b ldr r3, [r3, #0] 80032d6: 4a60 ldr r2, [pc, #384] ; (8003458 ) 80032d8: 015b lsls r3, r3, #5 80032da: 4413 add r3, r2 80032dc: 3318 adds r3, #24 80032de: edd3 7a00 vldr s15, [r3] 80032e2: ed9f 7a60 vldr s14, [pc, #384] ; 8003464 80032e6: eef4 7ac7 vcmpe.f32 s15, s14 80032ea: eef1 fa10 vmrs APSR_nzcv, fpscr 80032ee: d507 bpl.n 8003300 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f; 80032f0: 4b58 ldr r3, [pc, #352] ; (8003454 ) 80032f2: 681b ldr r3, [r3, #0] 80032f4: 4a58 ldr r2, [pc, #352] ; (8003458 ) 80032f6: 015b lsls r3, r3, #5 80032f8: 4413 add r3, r2 80032fa: 3318 adds r3, #24 80032fc: 4a5b ldr r2, [pc, #364] ; (800346c ) 80032fe: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) { 8003300: 4b54 ldr r3, [pc, #336] ; (8003454 ) 8003302: 681b ldr r3, [r3, #0] 8003304: 4a54 ldr r2, [pc, #336] ; (8003458 ) 8003306: 015b lsls r3, r3, #5 8003308: 4413 add r3, r2 800330a: 3318 adds r3, #24 800330c: edd3 7a00 vldr s15, [r3] 8003310: ed9f 7a57 vldr s14, [pc, #348] ; 8003470 8003314: eef4 7ac7 vcmpe.f32 s15, s14 8003318: eef1 fa10 vmrs APSR_nzcv, fpscr 800331c: db07 blt.n 800332e pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f; 800331e: 4b4d ldr r3, [pc, #308] ; (8003454 ) 8003320: 681b ldr r3, [r3, #0] 8003322: 4a4d ldr r2, [pc, #308] ; (8003458 ) 8003324: 015b lsls r3, r3, #5 8003326: 4413 add r3, r2 8003328: 3318 adds r3, #24 800332a: 4a52 ldr r2, [pc, #328] ; (8003474 ) 800332c: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 800332e: 4b49 ldr r3, [pc, #292] ; (8003454 ) 8003330: 681b ldr r3, [r3, #0] 8003332: 4a49 ldr r2, [pc, #292] ; (8003458 ) 8003334: 015b lsls r3, r3, #5 8003336: 4413 add r3, r2 8003338: 3318 adds r3, #24 800333a: edd3 7a00 vldr s15, [r3] 800333e: eeb0 0a67 vmov.f32 s0, s15 8003342: f001 fa63 bl 800480c 8003346: e38b b.n 8003a60 } else if(menupos == Kiks_1 || menupos == Kiks_2 || menupos == Kiks_3 || menupos == Kiks_4) 8003348: 4b41 ldr r3, [pc, #260] ; (8003450 ) 800334a: 781b ldrb r3, [r3, #0] 800334c: b2db uxtb r3, r3 800334e: 2b04 cmp r3, #4 8003350: d00f beq.n 8003372 8003352: 4b3f ldr r3, [pc, #252] ; (8003450 ) 8003354: 781b ldrb r3, [r3, #0] 8003356: b2db uxtb r3, r3 8003358: 2b0c cmp r3, #12 800335a: d00a beq.n 8003372 800335c: 4b3c ldr r3, [pc, #240] ; (8003450 ) 800335e: 781b ldrb r3, [r3, #0] 8003360: b2db uxtb r3, r3 8003362: 2b14 cmp r3, #20 8003364: d005 beq.n 8003372 8003366: 4b3a ldr r3, [pc, #232] ; (8003450 ) 8003368: 781b ldrb r3, [r3, #0] 800336a: b2db uxtb r3, r3 800336c: 2b1c cmp r3, #28 800336e: f040 80d3 bne.w 8003518 { if(iks < 9) { 8003372: 693b ldr r3, [r7, #16] 8003374: 2b08 cmp r3, #8 8003376: d802 bhi.n 800337e iks++; 8003378: 693b ldr r3, [r7, #16] 800337a: 3301 adds r3, #1 800337c: 613b str r3, [r7, #16] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 800337e: 69bb ldr r3, [r7, #24] 8003380: f242 7210 movw r2, #10000 ; 0x2710 8003384: fb02 f203 mul.w r2, r2, r3 8003388: 697b ldr r3, [r7, #20] 800338a: f44f 717a mov.w r1, #1000 ; 0x3e8 800338e: fb01 f303 mul.w r3, r1, r3 8003392: 18d1 adds r1, r2, r3 8003394: 68fa ldr r2, [r7, #12] 8003396: 4613 mov r3, r2 8003398: 009b lsls r3, r3, #2 800339a: 4413 add r3, r2 800339c: 005b lsls r3, r3, #1 800339e: 4618 mov r0, r3 80033a0: 693b ldr r3, [r7, #16] 80033a2: 2264 movs r2, #100 ; 0x64 80033a4: fb02 f303 mul.w r3, r2, r3 80033a8: 4403 add r3, r0 80033aa: 18ca adds r2, r1, r3 80033ac: 68bb ldr r3, [r7, #8] 80033ae: 4413 add r3, r2 80033b0: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 80033b2: 4b28 ldr r3, [pc, #160] ; (8003454 ) 80033b4: 681b ldr r3, [r3, #0] 80033b6: 69fa ldr r2, [r7, #28] 80033b8: ee07 2a90 vmov s15, r2 80033bc: eef8 7a67 vcvt.f32.u32 s15, s15 80033c0: 4a25 ldr r2, [pc, #148] ; (8003458 ) 80033c2: 015b lsls r3, r3, #5 80033c4: 4413 add r3, r2 80033c6: 3318 adds r3, #24 80033c8: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 80033cc: 687b ldr r3, [r7, #4] 80033ce: 2b01 cmp r3, #1 80033d0: d112 bne.n 80033f8 80033d2: 4b20 ldr r3, [pc, #128] ; (8003454 ) 80033d4: 681b ldr r3, [r3, #0] 80033d6: 4920 ldr r1, [pc, #128] ; (8003458 ) 80033d8: 015a lsls r2, r3, #5 80033da: 440a add r2, r1 80033dc: 3218 adds r2, #24 80033de: edd2 7a00 vldr s15, [r2] 80033e2: ed9f 7a1e vldr s14, [pc, #120] ; 800345c 80033e6: ee67 7a87 vmul.f32 s15, s15, s14 80033ea: 4a1b ldr r2, [pc, #108] ; (8003458 ) 80033ec: 015b lsls r3, r3, #5 80033ee: 4413 add r3, r2 80033f0: 3318 adds r3, #24 80033f2: edc3 7a00 vstr s15, [r3] 80033f6: e054 b.n 80034a2 else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 80033f8: 687b ldr r3, [r7, #4] 80033fa: 2b02 cmp r3, #2 80033fc: d112 bne.n 8003424 80033fe: 4b15 ldr r3, [pc, #84] ; (8003454 ) 8003400: 681b ldr r3, [r3, #0] 8003402: 4915 ldr r1, [pc, #84] ; (8003458 ) 8003404: 015a lsls r2, r3, #5 8003406: 440a add r2, r1 8003408: 3218 adds r2, #24 800340a: edd2 7a00 vldr s15, [r2] 800340e: ed9f 7a14 vldr s14, [pc, #80] ; 8003460 8003412: ee67 7a87 vmul.f32 s15, s15, s14 8003416: 4a10 ldr r2, [pc, #64] ; (8003458 ) 8003418: 015b lsls r3, r3, #5 800341a: 4413 add r3, r2 800341c: 3318 adds r3, #24 800341e: edc3 7a00 vstr s15, [r3] 8003422: e03e b.n 80034a2 else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 8003424: 687b ldr r3, [r7, #4] 8003426: 2b03 cmp r3, #3 8003428: d126 bne.n 8003478 800342a: 4b0a ldr r3, [pc, #40] ; (8003454 ) 800342c: 681b ldr r3, [r3, #0] 800342e: 490a ldr r1, [pc, #40] ; (8003458 ) 8003430: 015a lsls r2, r3, #5 8003432: 440a add r2, r1 8003434: 3218 adds r2, #24 8003436: edd2 7a00 vldr s15, [r2] 800343a: ed9f 7a0a vldr s14, [pc, #40] ; 8003464 800343e: ee67 7a87 vmul.f32 s15, s15, s14 8003442: 4a05 ldr r2, [pc, #20] ; (8003458 ) 8003444: 015b lsls r3, r3, #5 8003446: 4413 add r3, r2 8003448: 3318 adds r3, #24 800344a: edc3 7a00 vstr s15, [r3] 800344e: e028 b.n 80034a2 8003450: 20020010 .word 0x20020010 8003454: 2006ba68 .word 0x2006ba68 8003458: 2006bca8 .word 0x2006bca8 800345c: 3dcccccd .word 0x3dcccccd 8003460: 3c23d70a .word 0x3c23d70a 8003464: 3a83126f .word 0x3a83126f 8003468: 38d1b717 .word 0x38d1b717 800346c: 3a83126f .word 0x3a83126f 8003470: 461c4000 .word 0x461c4000 8003474: 461c3c00 .word 0x461c3c00 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 8003478: 687b ldr r3, [r7, #4] 800347a: 2b04 cmp r3, #4 800347c: d111 bne.n 80034a2 800347e: 4b90 ldr r3, [pc, #576] ; (80036c0 ) 8003480: 681b ldr r3, [r3, #0] 8003482: 4990 ldr r1, [pc, #576] ; (80036c4 ) 8003484: 015a lsls r2, r3, #5 8003486: 440a add r2, r1 8003488: 3218 adds r2, #24 800348a: edd2 7a00 vldr s15, [r2] 800348e: ed9f 7a8e vldr s14, [pc, #568] ; 80036c8 8003492: ee67 7a87 vmul.f32 s15, s15, s14 8003496: 4a8b ldr r2, [pc, #556] ; (80036c4 ) 8003498: 015b lsls r3, r3, #5 800349a: 4413 add r3, r2 800349c: 3318 adds r3, #24 800349e: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //поправил 80034a2: 4b87 ldr r3, [pc, #540] ; (80036c0 ) 80034a4: 681b ldr r3, [r3, #0] 80034a6: 4a87 ldr r2, [pc, #540] ; (80036c4 ) 80034a8: 015b lsls r3, r3, #5 80034aa: 4413 add r3, r2 80034ac: 3318 adds r3, #24 80034ae: edd3 7a00 vldr s15, [r3] 80034b2: ed9f 7a86 vldr s14, [pc, #536] ; 80036cc 80034b6: eef4 7ac7 vcmpe.f32 s15, s14 80034ba: eef1 fa10 vmrs APSR_nzcv, fpscr 80034be: d507 bpl.n 80034d0 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f; 80034c0: 4b7f ldr r3, [pc, #508] ; (80036c0 ) 80034c2: 681b ldr r3, [r3, #0] 80034c4: 4a7f ldr r2, [pc, #508] ; (80036c4 ) 80034c6: 015b lsls r3, r3, #5 80034c8: 4413 add r3, r2 80034ca: 3318 adds r3, #24 80034cc: 4a80 ldr r2, [pc, #512] ; (80036d0 ) 80034ce: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) { 80034d0: 4b7b ldr r3, [pc, #492] ; (80036c0 ) 80034d2: 681b ldr r3, [r3, #0] 80034d4: 4a7b ldr r2, [pc, #492] ; (80036c4 ) 80034d6: 015b lsls r3, r3, #5 80034d8: 4413 add r3, r2 80034da: 3318 adds r3, #24 80034dc: edd3 7a00 vldr s15, [r3] 80034e0: ed9f 7a7c vldr s14, [pc, #496] ; 80036d4 80034e4: eef4 7ac7 vcmpe.f32 s15, s14 80034e8: eef1 fa10 vmrs APSR_nzcv, fpscr 80034ec: db07 blt.n 80034fe pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f; 80034ee: 4b74 ldr r3, [pc, #464] ; (80036c0 ) 80034f0: 681b ldr r3, [r3, #0] 80034f2: 4a74 ldr r2, [pc, #464] ; (80036c4 ) 80034f4: 015b lsls r3, r3, #5 80034f6: 4413 add r3, r2 80034f8: 3318 adds r3, #24 80034fa: 4a77 ldr r2, [pc, #476] ; (80036d8 ) 80034fc: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 80034fe: 4b70 ldr r3, [pc, #448] ; (80036c0 ) 8003500: 681b ldr r3, [r3, #0] 8003502: 4a70 ldr r2, [pc, #448] ; (80036c4 ) 8003504: 015b lsls r3, r3, #5 8003506: 4413 add r3, r2 8003508: 3318 adds r3, #24 800350a: edd3 7a00 vldr s15, [r3] 800350e: eeb0 0a67 vmov.f32 s0, s15 8003512: f001 f97b bl 800480c 8003516: e2a3 b.n 8003a60 } else if(menupos == Kikd_1 || menupos == Kikd_2 || menupos == Kikd_3 || menupos == Kikd_4) 8003518: 4b70 ldr r3, [pc, #448] ; (80036dc ) 800351a: 781b ldrb r3, [r3, #0] 800351c: b2db uxtb r3, r3 800351e: 2b05 cmp r3, #5 8003520: d00f beq.n 8003542 8003522: 4b6e ldr r3, [pc, #440] ; (80036dc ) 8003524: 781b ldrb r3, [r3, #0] 8003526: b2db uxtb r3, r3 8003528: 2b0d cmp r3, #13 800352a: d00a beq.n 8003542 800352c: 4b6b ldr r3, [pc, #428] ; (80036dc ) 800352e: 781b ldrb r3, [r3, #0] 8003530: b2db uxtb r3, r3 8003532: 2b15 cmp r3, #21 8003534: d005 beq.n 8003542 8003536: 4b69 ldr r3, [pc, #420] ; (80036dc ) 8003538: 781b ldrb r3, [r3, #0] 800353a: b2db uxtb r3, r3 800353c: 2b1d cmp r3, #29 800353e: f040 80d3 bne.w 80036e8 { if(ikd < 9) { 8003542: 68fb ldr r3, [r7, #12] 8003544: 2b08 cmp r3, #8 8003546: d802 bhi.n 800354e ikd++; 8003548: 68fb ldr r3, [r7, #12] 800354a: 3301 adds r3, #1 800354c: 60fb str r3, [r7, #12] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 800354e: 69bb ldr r3, [r7, #24] 8003550: f242 7210 movw r2, #10000 ; 0x2710 8003554: fb02 f203 mul.w r2, r2, r3 8003558: 697b ldr r3, [r7, #20] 800355a: f44f 717a mov.w r1, #1000 ; 0x3e8 800355e: fb01 f303 mul.w r3, r1, r3 8003562: 18d1 adds r1, r2, r3 8003564: 68fa ldr r2, [r7, #12] 8003566: 4613 mov r3, r2 8003568: 009b lsls r3, r3, #2 800356a: 4413 add r3, r2 800356c: 005b lsls r3, r3, #1 800356e: 4618 mov r0, r3 8003570: 693b ldr r3, [r7, #16] 8003572: 2264 movs r2, #100 ; 0x64 8003574: fb02 f303 mul.w r3, r2, r3 8003578: 4403 add r3, r0 800357a: 18ca adds r2, r1, r3 800357c: 68bb ldr r3, [r7, #8] 800357e: 4413 add r3, r2 8003580: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 8003582: 4b4f ldr r3, [pc, #316] ; (80036c0 ) 8003584: 681b ldr r3, [r3, #0] 8003586: 69fa ldr r2, [r7, #28] 8003588: ee07 2a90 vmov s15, r2 800358c: eef8 7a67 vcvt.f32.u32 s15, s15 8003590: 4a4c ldr r2, [pc, #304] ; (80036c4 ) 8003592: 015b lsls r3, r3, #5 8003594: 4413 add r3, r2 8003596: 3318 adds r3, #24 8003598: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 800359c: 687b ldr r3, [r7, #4] 800359e: 2b01 cmp r3, #1 80035a0: d112 bne.n 80035c8 80035a2: 4b47 ldr r3, [pc, #284] ; (80036c0 ) 80035a4: 681b ldr r3, [r3, #0] 80035a6: 4947 ldr r1, [pc, #284] ; (80036c4 ) 80035a8: 015a lsls r2, r3, #5 80035aa: 440a add r2, r1 80035ac: 3218 adds r2, #24 80035ae: edd2 7a00 vldr s15, [r2] 80035b2: ed9f 7a4b vldr s14, [pc, #300] ; 80036e0 80035b6: ee67 7a87 vmul.f32 s15, s15, s14 80035ba: 4a42 ldr r2, [pc, #264] ; (80036c4 ) 80035bc: 015b lsls r3, r3, #5 80035be: 4413 add r3, r2 80035c0: 3318 adds r3, #24 80035c2: edc3 7a00 vstr s15, [r3] 80035c6: e040 b.n 800364a else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 80035c8: 687b ldr r3, [r7, #4] 80035ca: 2b02 cmp r3, #2 80035cc: d112 bne.n 80035f4 80035ce: 4b3c ldr r3, [pc, #240] ; (80036c0 ) 80035d0: 681b ldr r3, [r3, #0] 80035d2: 493c ldr r1, [pc, #240] ; (80036c4 ) 80035d4: 015a lsls r2, r3, #5 80035d6: 440a add r2, r1 80035d8: 3218 adds r2, #24 80035da: edd2 7a00 vldr s15, [r2] 80035de: ed9f 7a41 vldr s14, [pc, #260] ; 80036e4 80035e2: ee67 7a87 vmul.f32 s15, s15, s14 80035e6: 4a37 ldr r2, [pc, #220] ; (80036c4 ) 80035e8: 015b lsls r3, r3, #5 80035ea: 4413 add r3, r2 80035ec: 3318 adds r3, #24 80035ee: edc3 7a00 vstr s15, [r3] 80035f2: e02a b.n 800364a else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 80035f4: 687b ldr r3, [r7, #4] 80035f6: 2b03 cmp r3, #3 80035f8: d112 bne.n 8003620 80035fa: 4b31 ldr r3, [pc, #196] ; (80036c0 ) 80035fc: 681b ldr r3, [r3, #0] 80035fe: 4931 ldr r1, [pc, #196] ; (80036c4 ) 8003600: 015a lsls r2, r3, #5 8003602: 440a add r2, r1 8003604: 3218 adds r2, #24 8003606: edd2 7a00 vldr s15, [r2] 800360a: ed9f 7a30 vldr s14, [pc, #192] ; 80036cc 800360e: ee67 7a87 vmul.f32 s15, s15, s14 8003612: 4a2c ldr r2, [pc, #176] ; (80036c4 ) 8003614: 015b lsls r3, r3, #5 8003616: 4413 add r3, r2 8003618: 3318 adds r3, #24 800361a: edc3 7a00 vstr s15, [r3] 800361e: e014 b.n 800364a else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 8003620: 687b ldr r3, [r7, #4] 8003622: 2b04 cmp r3, #4 8003624: d111 bne.n 800364a 8003626: 4b26 ldr r3, [pc, #152] ; (80036c0 ) 8003628: 681b ldr r3, [r3, #0] 800362a: 4926 ldr r1, [pc, #152] ; (80036c4 ) 800362c: 015a lsls r2, r3, #5 800362e: 440a add r2, r1 8003630: 3218 adds r2, #24 8003632: edd2 7a00 vldr s15, [r2] 8003636: ed9f 7a24 vldr s14, [pc, #144] ; 80036c8 800363a: ee67 7a87 vmul.f32 s15, s15, s14 800363e: 4a21 ldr r2, [pc, #132] ; (80036c4 ) 8003640: 015b lsls r3, r3, #5 8003642: 4413 add r3, r2 8003644: 3318 adds r3, #24 8003646: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //поправил 800364a: 4b1d ldr r3, [pc, #116] ; (80036c0 ) 800364c: 681b ldr r3, [r3, #0] 800364e: 4a1d ldr r2, [pc, #116] ; (80036c4 ) 8003650: 015b lsls r3, r3, #5 8003652: 4413 add r3, r2 8003654: 3318 adds r3, #24 8003656: edd3 7a00 vldr s15, [r3] 800365a: ed9f 7a1c vldr s14, [pc, #112] ; 80036cc 800365e: eef4 7ac7 vcmpe.f32 s15, s14 8003662: eef1 fa10 vmrs APSR_nzcv, fpscr 8003666: d507 bpl.n 8003678 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f; 8003668: 4b15 ldr r3, [pc, #84] ; (80036c0 ) 800366a: 681b ldr r3, [r3, #0] 800366c: 4a15 ldr r2, [pc, #84] ; (80036c4 ) 800366e: 015b lsls r3, r3, #5 8003670: 4413 add r3, r2 8003672: 3318 adds r3, #24 8003674: 4a16 ldr r2, [pc, #88] ; (80036d0 ) 8003676: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) { 8003678: 4b11 ldr r3, [pc, #68] ; (80036c0 ) 800367a: 681b ldr r3, [r3, #0] 800367c: 4a11 ldr r2, [pc, #68] ; (80036c4 ) 800367e: 015b lsls r3, r3, #5 8003680: 4413 add r3, r2 8003682: 3318 adds r3, #24 8003684: edd3 7a00 vldr s15, [r3] 8003688: ed9f 7a12 vldr s14, [pc, #72] ; 80036d4 800368c: eef4 7ac7 vcmpe.f32 s15, s14 8003690: eef1 fa10 vmrs APSR_nzcv, fpscr 8003694: db07 blt.n 80036a6 pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f; 8003696: 4b0a ldr r3, [pc, #40] ; (80036c0 ) 8003698: 681b ldr r3, [r3, #0] 800369a: 4a0a ldr r2, [pc, #40] ; (80036c4 ) 800369c: 015b lsls r3, r3, #5 800369e: 4413 add r3, r2 80036a0: 3318 adds r3, #24 80036a2: 4a0d ldr r2, [pc, #52] ; (80036d8 ) 80036a4: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 80036a6: 4b06 ldr r3, [pc, #24] ; (80036c0 ) 80036a8: 681b ldr r3, [r3, #0] 80036aa: 4a06 ldr r2, [pc, #24] ; (80036c4 ) 80036ac: 015b lsls r3, r3, #5 80036ae: 4413 add r3, r2 80036b0: 3318 adds r3, #24 80036b2: edd3 7a00 vldr s15, [r3] 80036b6: eeb0 0a67 vmov.f32 s0, s15 80036ba: f001 f8a7 bl 800480c 80036be: e1cf b.n 8003a60 80036c0: 2006ba68 .word 0x2006ba68 80036c4: 2006bca8 .word 0x2006bca8 80036c8: 38d1b717 .word 0x38d1b717 80036cc: 3a83126f .word 0x3a83126f 80036d0: 3a83126f .word 0x3a83126f 80036d4: 461c4000 .word 0x461c4000 80036d8: 461c3c00 .word 0x461c3c00 80036dc: 20020010 .word 0x20020010 80036e0: 3dcccccd .word 0x3dcccccd 80036e4: 3c23d70a .word 0x3c23d70a } else if(menupos == Kike_1 || menupos == Kike_2 || menupos == Kike_3 || menupos == Kike_4) 80036e8: 4bab ldr r3, [pc, #684] ; (8003998 ) 80036ea: 781b ldrb r3, [r3, #0] 80036ec: b2db uxtb r3, r3 80036ee: 2b06 cmp r3, #6 80036f0: d00f beq.n 8003712 80036f2: 4ba9 ldr r3, [pc, #676] ; (8003998 ) 80036f4: 781b ldrb r3, [r3, #0] 80036f6: b2db uxtb r3, r3 80036f8: 2b0e cmp r3, #14 80036fa: d00a beq.n 8003712 80036fc: 4ba6 ldr r3, [pc, #664] ; (8003998 ) 80036fe: 781b ldrb r3, [r3, #0] 8003700: b2db uxtb r3, r3 8003702: 2b16 cmp r3, #22 8003704: d005 beq.n 8003712 8003706: 4ba4 ldr r3, [pc, #656] ; (8003998 ) 8003708: 781b ldrb r3, [r3, #0] 800370a: b2db uxtb r3, r3 800370c: 2b1e cmp r3, #30 800370e: f040 80bf bne.w 8003890 { if(ike < 9) { 8003712: 68bb ldr r3, [r7, #8] 8003714: 2b08 cmp r3, #8 8003716: d802 bhi.n 800371e ike++; 8003718: 68bb ldr r3, [r7, #8] 800371a: 3301 adds r3, #1 800371c: 60bb str r3, [r7, #8] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 800371e: 69bb ldr r3, [r7, #24] 8003720: f242 7210 movw r2, #10000 ; 0x2710 8003724: fb02 f203 mul.w r2, r2, r3 8003728: 697b ldr r3, [r7, #20] 800372a: f44f 717a mov.w r1, #1000 ; 0x3e8 800372e: fb01 f303 mul.w r3, r1, r3 8003732: 18d1 adds r1, r2, r3 8003734: 68fa ldr r2, [r7, #12] 8003736: 4613 mov r3, r2 8003738: 009b lsls r3, r3, #2 800373a: 4413 add r3, r2 800373c: 005b lsls r3, r3, #1 800373e: 4618 mov r0, r3 8003740: 693b ldr r3, [r7, #16] 8003742: 2264 movs r2, #100 ; 0x64 8003744: fb02 f303 mul.w r3, r2, r3 8003748: 4403 add r3, r0 800374a: 18ca adds r2, r1, r3 800374c: 68bb ldr r3, [r7, #8] 800374e: 4413 add r3, r2 8003750: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 8003752: 4b92 ldr r3, [pc, #584] ; (800399c ) 8003754: 681b ldr r3, [r3, #0] 8003756: 69fa ldr r2, [r7, #28] 8003758: ee07 2a90 vmov s15, r2 800375c: eef8 7a67 vcvt.f32.u32 s15, s15 8003760: 4a8f ldr r2, [pc, #572] ; (80039a0 ) 8003762: 015b lsls r3, r3, #5 8003764: 4413 add r3, r2 8003766: 3318 adds r3, #24 8003768: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 800376c: 687b ldr r3, [r7, #4] 800376e: 2b01 cmp r3, #1 8003770: d112 bne.n 8003798 8003772: 4b8a ldr r3, [pc, #552] ; (800399c ) 8003774: 681b ldr r3, [r3, #0] 8003776: 498a ldr r1, [pc, #552] ; (80039a0 ) 8003778: 015a lsls r2, r3, #5 800377a: 440a add r2, r1 800377c: 3218 adds r2, #24 800377e: edd2 7a00 vldr s15, [r2] 8003782: ed9f 7a88 vldr s14, [pc, #544] ; 80039a4 8003786: ee67 7a87 vmul.f32 s15, s15, s14 800378a: 4a85 ldr r2, [pc, #532] ; (80039a0 ) 800378c: 015b lsls r3, r3, #5 800378e: 4413 add r3, r2 8003790: 3318 adds r3, #24 8003792: edc3 7a00 vstr s15, [r3] 8003796: e040 b.n 800381a else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8003798: 687b ldr r3, [r7, #4] 800379a: 2b02 cmp r3, #2 800379c: d112 bne.n 80037c4 800379e: 4b7f ldr r3, [pc, #508] ; (800399c ) 80037a0: 681b ldr r3, [r3, #0] 80037a2: 497f ldr r1, [pc, #508] ; (80039a0 ) 80037a4: 015a lsls r2, r3, #5 80037a6: 440a add r2, r1 80037a8: 3218 adds r2, #24 80037aa: edd2 7a00 vldr s15, [r2] 80037ae: ed9f 7a7e vldr s14, [pc, #504] ; 80039a8 80037b2: ee67 7a87 vmul.f32 s15, s15, s14 80037b6: 4a7a ldr r2, [pc, #488] ; (80039a0 ) 80037b8: 015b lsls r3, r3, #5 80037ba: 4413 add r3, r2 80037bc: 3318 adds r3, #24 80037be: edc3 7a00 vstr s15, [r3] 80037c2: e02a b.n 800381a else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 80037c4: 687b ldr r3, [r7, #4] 80037c6: 2b03 cmp r3, #3 80037c8: d112 bne.n 80037f0 80037ca: 4b74 ldr r3, [pc, #464] ; (800399c ) 80037cc: 681b ldr r3, [r3, #0] 80037ce: 4974 ldr r1, [pc, #464] ; (80039a0 ) 80037d0: 015a lsls r2, r3, #5 80037d2: 440a add r2, r1 80037d4: 3218 adds r2, #24 80037d6: edd2 7a00 vldr s15, [r2] 80037da: ed9f 7a74 vldr s14, [pc, #464] ; 80039ac 80037de: ee67 7a87 vmul.f32 s15, s15, s14 80037e2: 4a6f ldr r2, [pc, #444] ; (80039a0 ) 80037e4: 015b lsls r3, r3, #5 80037e6: 4413 add r3, r2 80037e8: 3318 adds r3, #24 80037ea: edc3 7a00 vstr s15, [r3] 80037ee: e014 b.n 800381a else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 80037f0: 687b ldr r3, [r7, #4] 80037f2: 2b04 cmp r3, #4 80037f4: d111 bne.n 800381a 80037f6: 4b69 ldr r3, [pc, #420] ; (800399c ) 80037f8: 681b ldr r3, [r3, #0] 80037fa: 4969 ldr r1, [pc, #420] ; (80039a0 ) 80037fc: 015a lsls r2, r3, #5 80037fe: 440a add r2, r1 8003800: 3218 adds r2, #24 8003802: edd2 7a00 vldr s15, [r2] 8003806: ed9f 7a6a vldr s14, [pc, #424] ; 80039b0 800380a: ee67 7a87 vmul.f32 s15, s15, s14 800380e: 4a64 ldr r2, [pc, #400] ; (80039a0 ) 8003810: 015b lsls r3, r3, #5 8003812: 4413 add r3, r2 8003814: 3318 adds r3, #24 8003816: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //поправил 800381a: 4b60 ldr r3, [pc, #384] ; (800399c ) 800381c: 681b ldr r3, [r3, #0] 800381e: 4a60 ldr r2, [pc, #384] ; (80039a0 ) 8003820: 015b lsls r3, r3, #5 8003822: 4413 add r3, r2 8003824: 3318 adds r3, #24 8003826: edd3 7a00 vldr s15, [r3] 800382a: ed9f 7a60 vldr s14, [pc, #384] ; 80039ac 800382e: eef4 7ac7 vcmpe.f32 s15, s14 8003832: eef1 fa10 vmrs APSR_nzcv, fpscr 8003836: d507 bpl.n 8003848 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f; 8003838: 4b58 ldr r3, [pc, #352] ; (800399c ) 800383a: 681b ldr r3, [r3, #0] 800383c: 4a58 ldr r2, [pc, #352] ; (80039a0 ) 800383e: 015b lsls r3, r3, #5 8003840: 4413 add r3, r2 8003842: 3318 adds r3, #24 8003844: 4a5b ldr r2, [pc, #364] ; (80039b4 ) 8003846: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) { 8003848: 4b54 ldr r3, [pc, #336] ; (800399c ) 800384a: 681b ldr r3, [r3, #0] 800384c: 4a54 ldr r2, [pc, #336] ; (80039a0 ) 800384e: 015b lsls r3, r3, #5 8003850: 4413 add r3, r2 8003852: 3318 adds r3, #24 8003854: edd3 7a00 vldr s15, [r3] 8003858: ed9f 7a57 vldr s14, [pc, #348] ; 80039b8 800385c: eef4 7ac7 vcmpe.f32 s15, s14 8003860: eef1 fa10 vmrs APSR_nzcv, fpscr 8003864: db07 blt.n 8003876 pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f; 8003866: 4b4d ldr r3, [pc, #308] ; (800399c ) 8003868: 681b ldr r3, [r3, #0] 800386a: 4a4d ldr r2, [pc, #308] ; (80039a0 ) 800386c: 015b lsls r3, r3, #5 800386e: 4413 add r3, r2 8003870: 3318 adds r3, #24 8003872: 4a52 ldr r2, [pc, #328] ; (80039bc ) 8003874: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 8003876: 4b49 ldr r3, [pc, #292] ; (800399c ) 8003878: 681b ldr r3, [r3, #0] 800387a: 4a49 ldr r2, [pc, #292] ; (80039a0 ) 800387c: 015b lsls r3, r3, #5 800387e: 4413 add r3, r2 8003880: 3318 adds r3, #24 8003882: edd3 7a00 vldr s15, [r3] 8003886: eeb0 0a67 vmov.f32 s0, s15 800388a: f000 ffbf bl 800480c 800388e: e0e7 b.n 8003a60 } else if(menupos == Kpt_1 || menupos == Kpt_2 || menupos == Kpt_3 || menupos == Kpt_4) 8003890: 4b41 ldr r3, [pc, #260] ; (8003998 ) 8003892: 781b ldrb r3, [r3, #0] 8003894: b2db uxtb r3, r3 8003896: 2b07 cmp r3, #7 8003898: d00f beq.n 80038ba 800389a: 4b3f ldr r3, [pc, #252] ; (8003998 ) 800389c: 781b ldrb r3, [r3, #0] 800389e: b2db uxtb r3, r3 80038a0: 2b0f cmp r3, #15 80038a2: d00a beq.n 80038ba 80038a4: 4b3c ldr r3, [pc, #240] ; (8003998 ) 80038a6: 781b ldrb r3, [r3, #0] 80038a8: b2db uxtb r3, r3 80038aa: 2b17 cmp r3, #23 80038ac: d005 beq.n 80038ba 80038ae: 4b3a ldr r3, [pc, #232] ; (8003998 ) 80038b0: 781b ldrb r3, [r3, #0] 80038b2: b2db uxtb r3, r3 80038b4: 2b1f cmp r3, #31 80038b6: f040 80d3 bne.w 8003a60 { if(ipt) { 80038ba: 687b ldr r3, [r7, #4] 80038bc: 2b00 cmp r3, #0 80038be: d002 beq.n 80038c6 ipt--; 80038c0: 687b ldr r3, [r7, #4] 80038c2: 3b01 subs r3, #1 80038c4: 607b str r3, [r7, #4] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 80038c6: 69bb ldr r3, [r7, #24] 80038c8: f242 7210 movw r2, #10000 ; 0x2710 80038cc: fb02 f203 mul.w r2, r2, r3 80038d0: 697b ldr r3, [r7, #20] 80038d2: f44f 717a mov.w r1, #1000 ; 0x3e8 80038d6: fb01 f303 mul.w r3, r1, r3 80038da: 18d1 adds r1, r2, r3 80038dc: 68fa ldr r2, [r7, #12] 80038de: 4613 mov r3, r2 80038e0: 009b lsls r3, r3, #2 80038e2: 4413 add r3, r2 80038e4: 005b lsls r3, r3, #1 80038e6: 4618 mov r0, r3 80038e8: 693b ldr r3, [r7, #16] 80038ea: 2264 movs r2, #100 ; 0x64 80038ec: fb02 f303 mul.w r3, r2, r3 80038f0: 4403 add r3, r0 80038f2: 18ca adds r2, r1, r3 80038f4: 68bb ldr r3, [r7, #8] 80038f6: 4413 add r3, r2 80038f8: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 80038fa: 4b28 ldr r3, [pc, #160] ; (800399c ) 80038fc: 681b ldr r3, [r3, #0] 80038fe: 69fa ldr r2, [r7, #28] 8003900: ee07 2a90 vmov s15, r2 8003904: eef8 7a67 vcvt.f32.u32 s15, s15 8003908: 4a25 ldr r2, [pc, #148] ; (80039a0 ) 800390a: 015b lsls r3, r3, #5 800390c: 4413 add r3, r2 800390e: 3318 adds r3, #24 8003910: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 8003914: 687b ldr r3, [r7, #4] 8003916: 2b01 cmp r3, #1 8003918: d112 bne.n 8003940 800391a: 4b20 ldr r3, [pc, #128] ; (800399c ) 800391c: 681b ldr r3, [r3, #0] 800391e: 4920 ldr r1, [pc, #128] ; (80039a0 ) 8003920: 015a lsls r2, r3, #5 8003922: 440a add r2, r1 8003924: 3218 adds r2, #24 8003926: edd2 7a00 vldr s15, [r2] 800392a: ed9f 7a1e vldr s14, [pc, #120] ; 80039a4 800392e: ee67 7a87 vmul.f32 s15, s15, s14 8003932: 4a1b ldr r2, [pc, #108] ; (80039a0 ) 8003934: 015b lsls r3, r3, #5 8003936: 4413 add r3, r2 8003938: 3318 adds r3, #24 800393a: edc3 7a00 vstr s15, [r3] 800393e: e054 b.n 80039ea else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8003940: 687b ldr r3, [r7, #4] 8003942: 2b02 cmp r3, #2 8003944: d112 bne.n 800396c 8003946: 4b15 ldr r3, [pc, #84] ; (800399c ) 8003948: 681b ldr r3, [r3, #0] 800394a: 4915 ldr r1, [pc, #84] ; (80039a0 ) 800394c: 015a lsls r2, r3, #5 800394e: 440a add r2, r1 8003950: 3218 adds r2, #24 8003952: edd2 7a00 vldr s15, [r2] 8003956: ed9f 7a14 vldr s14, [pc, #80] ; 80039a8 800395a: ee67 7a87 vmul.f32 s15, s15, s14 800395e: 4a10 ldr r2, [pc, #64] ; (80039a0 ) 8003960: 015b lsls r3, r3, #5 8003962: 4413 add r3, r2 8003964: 3318 adds r3, #24 8003966: edc3 7a00 vstr s15, [r3] 800396a: e03e b.n 80039ea else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 800396c: 687b ldr r3, [r7, #4] 800396e: 2b03 cmp r3, #3 8003970: d126 bne.n 80039c0 8003972: 4b0a ldr r3, [pc, #40] ; (800399c ) 8003974: 681b ldr r3, [r3, #0] 8003976: 490a ldr r1, [pc, #40] ; (80039a0 ) 8003978: 015a lsls r2, r3, #5 800397a: 440a add r2, r1 800397c: 3218 adds r2, #24 800397e: edd2 7a00 vldr s15, [r2] 8003982: ed9f 7a0a vldr s14, [pc, #40] ; 80039ac 8003986: ee67 7a87 vmul.f32 s15, s15, s14 800398a: 4a05 ldr r2, [pc, #20] ; (80039a0 ) 800398c: 015b lsls r3, r3, #5 800398e: 4413 add r3, r2 8003990: 3318 adds r3, #24 8003992: edc3 7a00 vstr s15, [r3] 8003996: e028 b.n 80039ea 8003998: 20020010 .word 0x20020010 800399c: 2006ba68 .word 0x2006ba68 80039a0: 2006bca8 .word 0x2006bca8 80039a4: 3dcccccd .word 0x3dcccccd 80039a8: 3c23d70a .word 0x3c23d70a 80039ac: 3a83126f .word 0x3a83126f 80039b0: 38d1b717 .word 0x38d1b717 80039b4: 3a83126f .word 0x3a83126f 80039b8: 461c4000 .word 0x461c4000 80039bc: 461c3c00 .word 0x461c3c00 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 80039c0: 687b ldr r3, [r7, #4] 80039c2: 2b04 cmp r3, #4 80039c4: d111 bne.n 80039ea 80039c6: 4b28 ldr r3, [pc, #160] ; (8003a68 ) 80039c8: 681b ldr r3, [r3, #0] 80039ca: 4928 ldr r1, [pc, #160] ; (8003a6c ) 80039cc: 015a lsls r2, r3, #5 80039ce: 440a add r2, r1 80039d0: 3218 adds r2, #24 80039d2: edd2 7a00 vldr s15, [r2] 80039d6: ed9f 7a26 vldr s14, [pc, #152] ; 8003a70 80039da: ee67 7a87 vmul.f32 s15, s15, s14 80039de: 4a23 ldr r2, [pc, #140] ; (8003a6c ) 80039e0: 015b lsls r3, r3, #5 80039e2: 4413 add r3, r2 80039e4: 3318 adds r3, #24 80039e6: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //поправил 80039ea: 4b1f ldr r3, [pc, #124] ; (8003a68 ) 80039ec: 681b ldr r3, [r3, #0] 80039ee: 4a1f ldr r2, [pc, #124] ; (8003a6c ) 80039f0: 015b lsls r3, r3, #5 80039f2: 4413 add r3, r2 80039f4: 3318 adds r3, #24 80039f6: edd3 7a00 vldr s15, [r3] 80039fa: ed9f 7a1e vldr s14, [pc, #120] ; 8003a74 80039fe: eef4 7ac7 vcmpe.f32 s15, s14 8003a02: eef1 fa10 vmrs APSR_nzcv, fpscr 8003a06: d507 bpl.n 8003a18 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f; 8003a08: 4b17 ldr r3, [pc, #92] ; (8003a68 ) 8003a0a: 681b ldr r3, [r3, #0] 8003a0c: 4a17 ldr r2, [pc, #92] ; (8003a6c ) 8003a0e: 015b lsls r3, r3, #5 8003a10: 4413 add r3, r2 8003a12: 3318 adds r3, #24 8003a14: 4a18 ldr r2, [pc, #96] ; (8003a78 ) 8003a16: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) { 8003a18: 4b13 ldr r3, [pc, #76] ; (8003a68 ) 8003a1a: 681b ldr r3, [r3, #0] 8003a1c: 4a13 ldr r2, [pc, #76] ; (8003a6c ) 8003a1e: 015b lsls r3, r3, #5 8003a20: 4413 add r3, r2 8003a22: 3318 adds r3, #24 8003a24: edd3 7a00 vldr s15, [r3] 8003a28: ed9f 7a14 vldr s14, [pc, #80] ; 8003a7c 8003a2c: eef4 7ac7 vcmpe.f32 s15, s14 8003a30: eef1 fa10 vmrs APSR_nzcv, fpscr 8003a34: db07 blt.n 8003a46 pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f; 8003a36: 4b0c ldr r3, [pc, #48] ; (8003a68 ) 8003a38: 681b ldr r3, [r3, #0] 8003a3a: 4a0c ldr r2, [pc, #48] ; (8003a6c ) 8003a3c: 015b lsls r3, r3, #5 8003a3e: 4413 add r3, r2 8003a40: 3318 adds r3, #24 8003a42: 4a0f ldr r2, [pc, #60] ; (8003a80 ) 8003a44: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 8003a46: 4b08 ldr r3, [pc, #32] ; (8003a68 ) 8003a48: 681b ldr r3, [r3, #0] 8003a4a: 4a08 ldr r2, [pc, #32] ; (8003a6c ) 8003a4c: 015b lsls r3, r3, #5 8003a4e: 4413 add r3, r2 8003a50: 3318 adds r3, #24 8003a52: edd3 7a00 vldr s15, [r3] 8003a56: eeb0 0a67 vmov.f32 s0, s15 8003a5a: f000 fed7 bl 800480c pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); }*/ } 8003a5e: e7ff b.n 8003a60 8003a60: bf00 nop 8003a62: 3720 adds r7, #32 8003a64: 46bd mov sp, r7 8003a66: bd80 pop {r7, pc} 8003a68: 2006ba68 .word 0x2006ba68 8003a6c: 2006bca8 .word 0x2006bca8 8003a70: 38d1b717 .word 0x38d1b717 8003a74: 3a83126f .word 0x3a83126f 8003a78: 3a83126f .word 0x3a83126f 8003a7c: 461c4000 .word 0x461c4000 8003a80: 461c3c00 .word 0x461c3c00 08003a84 : void DoKeyDN(void) { 8003a84: b580 push {r7, lr} 8003a86: b088 sub sp, #32 8003a88: af00 add r7, sp, #0 uint32_t s, ikdt, ikt, iks, ikd, ike, ipt; if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10.0f) { 8003a8a: 4b5f ldr r3, [pc, #380] ; (8003c08 ) 8003a8c: 681b ldr r3, [r3, #0] 8003a8e: 4a5f ldr r2, [pc, #380] ; (8003c0c ) 8003a90: 015b lsls r3, r3, #5 8003a92: 4413 add r3, r2 8003a94: 3318 adds r3, #24 8003a96: edd3 7a00 vldr s15, [r3] 8003a9a: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8003a9e: eef4 7ac7 vcmpe.f32 s15, s14 8003aa2: eef1 fa10 vmrs APSR_nzcv, fpscr 8003aa6: d517 bpl.n 8003ad8 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10000.0f) + 0.5f); 8003aa8: 4b57 ldr r3, [pc, #348] ; (8003c08 ) 8003aaa: 681b ldr r3, [r3, #0] 8003aac: 4a57 ldr r2, [pc, #348] ; (8003c0c ) 8003aae: 015b lsls r3, r3, #5 8003ab0: 4413 add r3, r2 8003ab2: 3318 adds r3, #24 8003ab4: edd3 7a00 vldr s15, [r3] 8003ab8: ed9f 7a55 vldr s14, [pc, #340] ; 8003c10 8003abc: ee67 7a87 vmul.f32 s15, s15, s14 8003ac0: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8003ac4: ee77 7a87 vadd.f32 s15, s15, s14 8003ac8: eefc 7ae7 vcvt.u32.f32 s15, s15 8003acc: ee17 3a90 vmov r3, s15 8003ad0: 61fb str r3, [r7, #28] ipt = 4; 8003ad2: 2304 movs r3, #4 8003ad4: 607b str r3, [r7, #4] 8003ad6: e0be b.n 8003c56 } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100.0f) { 8003ad8: 4b4b ldr r3, [pc, #300] ; (8003c08 ) 8003ada: 681b ldr r3, [r3, #0] 8003adc: 4a4b ldr r2, [pc, #300] ; (8003c0c ) 8003ade: 015b lsls r3, r3, #5 8003ae0: 4413 add r3, r2 8003ae2: 3318 adds r3, #24 8003ae4: edd3 7a00 vldr s15, [r3] 8003ae8: ed9f 7a4a vldr s14, [pc, #296] ; 8003c14 8003aec: eef4 7ac7 vcmpe.f32 s15, s14 8003af0: eef1 fa10 vmrs APSR_nzcv, fpscr 8003af4: d517 bpl.n 8003b26 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 1000.0f) + 0.5f); 8003af6: 4b44 ldr r3, [pc, #272] ; (8003c08 ) 8003af8: 681b ldr r3, [r3, #0] 8003afa: 4a44 ldr r2, [pc, #272] ; (8003c0c ) 8003afc: 015b lsls r3, r3, #5 8003afe: 4413 add r3, r2 8003b00: 3318 adds r3, #24 8003b02: edd3 7a00 vldr s15, [r3] 8003b06: ed9f 7a44 vldr s14, [pc, #272] ; 8003c18 8003b0a: ee67 7a87 vmul.f32 s15, s15, s14 8003b0e: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8003b12: ee77 7a87 vadd.f32 s15, s15, s14 8003b16: eefc 7ae7 vcvt.u32.f32 s15, s15 8003b1a: ee17 3a90 vmov r3, s15 8003b1e: 61fb str r3, [r7, #28] ipt = 3; 8003b20: 2303 movs r3, #3 8003b22: 607b str r3, [r7, #4] 8003b24: e097 b.n 8003c56 } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 1000.0f) { 8003b26: 4b38 ldr r3, [pc, #224] ; (8003c08 ) 8003b28: 681b ldr r3, [r3, #0] 8003b2a: 4a38 ldr r2, [pc, #224] ; (8003c0c ) 8003b2c: 015b lsls r3, r3, #5 8003b2e: 4413 add r3, r2 8003b30: 3318 adds r3, #24 8003b32: edd3 7a00 vldr s15, [r3] 8003b36: ed9f 7a38 vldr s14, [pc, #224] ; 8003c18 8003b3a: eef4 7ac7 vcmpe.f32 s15, s14 8003b3e: eef1 fa10 vmrs APSR_nzcv, fpscr 8003b42: d517 bpl.n 8003b74 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 100.0f) + 0.5f); 8003b44: 4b30 ldr r3, [pc, #192] ; (8003c08 ) 8003b46: 681b ldr r3, [r3, #0] 8003b48: 4a30 ldr r2, [pc, #192] ; (8003c0c ) 8003b4a: 015b lsls r3, r3, #5 8003b4c: 4413 add r3, r2 8003b4e: 3318 adds r3, #24 8003b50: edd3 7a00 vldr s15, [r3] 8003b54: ed9f 7a2f vldr s14, [pc, #188] ; 8003c14 8003b58: ee67 7a87 vmul.f32 s15, s15, s14 8003b5c: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8003b60: ee77 7a87 vadd.f32 s15, s15, s14 8003b64: eefc 7ae7 vcvt.u32.f32 s15, s15 8003b68: ee17 3a90 vmov r3, s15 8003b6c: 61fb str r3, [r7, #28] ipt = 2; 8003b6e: 2302 movs r3, #2 8003b70: 607b str r3, [r7, #4] 8003b72: e070 b.n 8003c56 } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10000.0f) { 8003b74: 4b24 ldr r3, [pc, #144] ; (8003c08 ) 8003b76: 681b ldr r3, [r3, #0] 8003b78: 4a24 ldr r2, [pc, #144] ; (8003c0c ) 8003b7a: 015b lsls r3, r3, #5 8003b7c: 4413 add r3, r2 8003b7e: 3318 adds r3, #24 8003b80: edd3 7a00 vldr s15, [r3] 8003b84: ed9f 7a22 vldr s14, [pc, #136] ; 8003c10 8003b88: eef4 7ac7 vcmpe.f32 s15, s14 8003b8c: eef1 fa10 vmrs APSR_nzcv, fpscr 8003b90: d517 bpl.n 8003bc2 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10.0f) + 0.5f); 8003b92: 4b1d ldr r3, [pc, #116] ; (8003c08 ) 8003b94: 681b ldr r3, [r3, #0] 8003b96: 4a1d ldr r2, [pc, #116] ; (8003c0c ) 8003b98: 015b lsls r3, r3, #5 8003b9a: 4413 add r3, r2 8003b9c: 3318 adds r3, #24 8003b9e: edd3 7a00 vldr s15, [r3] 8003ba2: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8003ba6: ee67 7a87 vmul.f32 s15, s15, s14 8003baa: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8003bae: ee77 7a87 vadd.f32 s15, s15, s14 8003bb2: eefc 7ae7 vcvt.u32.f32 s15, s15 8003bb6: ee17 3a90 vmov r3, s15 8003bba: 61fb str r3, [r7, #28] ipt = 1; 8003bbc: 2301 movs r3, #1 8003bbe: 607b str r3, [r7, #4] 8003bc0: e049 b.n 8003c56 } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) { 8003bc2: 4b11 ldr r3, [pc, #68] ; (8003c08 ) 8003bc4: 681b ldr r3, [r3, #0] 8003bc6: 4a11 ldr r2, [pc, #68] ; (8003c0c ) 8003bc8: 015b lsls r3, r3, #5 8003bca: 4413 add r3, r2 8003bcc: 3318 adds r3, #24 8003bce: edd3 7a00 vldr s15, [r3] 8003bd2: ed9f 7a12 vldr s14, [pc, #72] ; 8003c1c 8003bd6: eef4 7ac7 vcmpe.f32 s15, s14 8003bda: eef1 fa10 vmrs APSR_nzcv, fpscr 8003bde: d51f bpl.n 8003c20 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS) + 0.5f); 8003be0: 4b09 ldr r3, [pc, #36] ; (8003c08 ) 8003be2: 681b ldr r3, [r3, #0] 8003be4: 4a09 ldr r2, [pc, #36] ; (8003c0c ) 8003be6: 015b lsls r3, r3, #5 8003be8: 4413 add r3, r2 8003bea: 3318 adds r3, #24 8003bec: edd3 7a00 vldr s15, [r3] 8003bf0: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8003bf4: ee77 7a87 vadd.f32 s15, s15, s14 8003bf8: eefc 7ae7 vcvt.u32.f32 s15, s15 8003bfc: ee17 3a90 vmov r3, s15 8003c00: 61fb str r3, [r7, #28] ipt = 0; 8003c02: 2300 movs r3, #0 8003c04: 607b str r3, [r7, #4] 8003c06: e026 b.n 8003c56 8003c08: 2006ba68 .word 0x2006ba68 8003c0c: 2006bca8 .word 0x2006bca8 8003c10: 461c4000 .word 0x461c4000 8003c14: 42c80000 .word 0x42c80000 8003c18: 447a0000 .word 0x447a0000 8003c1c: 47c35000 .word 0x47c35000 } else if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 8003c20: 4bb0 ldr r3, [pc, #704] ; (8003ee4 ) 8003c22: 681b ldr r3, [r3, #0] 8003c24: 4ab0 ldr r2, [pc, #704] ; (8003ee8 ) 8003c26: 015b lsls r3, r3, #5 8003c28: 4413 add r3, r2 8003c2a: 3318 adds r3, #24 8003c2c: edd3 7a00 vldr s15, [r3] 8003c30: ed9f 7aae vldr s14, [pc, #696] ; 8003eec 8003c34: eef4 7ac7 vcmpe.f32 s15, s14 8003c38: eef1 fa10 vmrs APSR_nzcv, fpscr 8003c3c: db0b blt.n 8003c56 pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 8003c3e: 4ba9 ldr r3, [pc, #676] ; (8003ee4 ) 8003c40: 681b ldr r3, [r3, #0] 8003c42: 4aa9 ldr r2, [pc, #676] ; (8003ee8 ) 8003c44: 015b lsls r3, r3, #5 8003c46: 4413 add r3, r2 8003c48: 3318 adds r3, #24 8003c4a: 4aa9 ldr r2, [pc, #676] ; (8003ef0 ) 8003c4c: 601a str r2, [r3, #0] s = 99999; 8003c4e: 4ba9 ldr r3, [pc, #676] ; (8003ef4 ) 8003c50: 61fb str r3, [r7, #28] ipt = 0; 8003c52: 2300 movs r3, #0 8003c54: 607b str r3, [r7, #4] } ikdt = (s / 10000); 8003c56: 69fb ldr r3, [r7, #28] 8003c58: 4aa7 ldr r2, [pc, #668] ; (8003ef8 ) 8003c5a: fba2 2303 umull r2, r3, r2, r3 8003c5e: 0b5b lsrs r3, r3, #13 8003c60: 61bb str r3, [r7, #24] ikt = (s % 10000 / 1000); 8003c62: 69fa ldr r2, [r7, #28] 8003c64: 4ba4 ldr r3, [pc, #656] ; (8003ef8 ) 8003c66: fba3 1302 umull r1, r3, r3, r2 8003c6a: 0b5b lsrs r3, r3, #13 8003c6c: f242 7110 movw r1, #10000 ; 0x2710 8003c70: fb01 f303 mul.w r3, r1, r3 8003c74: 1ad3 subs r3, r2, r3 8003c76: 4aa1 ldr r2, [pc, #644] ; (8003efc ) 8003c78: fba2 2303 umull r2, r3, r2, r3 8003c7c: 099b lsrs r3, r3, #6 8003c7e: 617b str r3, [r7, #20] iks = (s % 10000 % 1000 / 100); 8003c80: 69fa ldr r2, [r7, #28] 8003c82: 4b9d ldr r3, [pc, #628] ; (8003ef8 ) 8003c84: fba3 1302 umull r1, r3, r3, r2 8003c88: 0b5b lsrs r3, r3, #13 8003c8a: f242 7110 movw r1, #10000 ; 0x2710 8003c8e: fb01 f303 mul.w r3, r1, r3 8003c92: 1ad3 subs r3, r2, r3 8003c94: 4a99 ldr r2, [pc, #612] ; (8003efc ) 8003c96: fba2 1203 umull r1, r2, r2, r3 8003c9a: 0992 lsrs r2, r2, #6 8003c9c: f44f 717a mov.w r1, #1000 ; 0x3e8 8003ca0: fb01 f202 mul.w r2, r1, r2 8003ca4: 1a9a subs r2, r3, r2 8003ca6: 4b96 ldr r3, [pc, #600] ; (8003f00 ) 8003ca8: fba3 2302 umull r2, r3, r3, r2 8003cac: 095b lsrs r3, r3, #5 8003cae: 613b str r3, [r7, #16] ikd = (s % 10000 % 1000 % 100 / 10); 8003cb0: 69fb ldr r3, [r7, #28] 8003cb2: 4a91 ldr r2, [pc, #580] ; (8003ef8 ) 8003cb4: fba2 1203 umull r1, r2, r2, r3 8003cb8: 0b52 lsrs r2, r2, #13 8003cba: f242 7110 movw r1, #10000 ; 0x2710 8003cbe: fb01 f202 mul.w r2, r1, r2 8003cc2: 1a9a subs r2, r3, r2 8003cc4: 4b8d ldr r3, [pc, #564] ; (8003efc ) 8003cc6: fba3 1302 umull r1, r3, r3, r2 8003cca: 099b lsrs r3, r3, #6 8003ccc: f44f 717a mov.w r1, #1000 ; 0x3e8 8003cd0: fb01 f303 mul.w r3, r1, r3 8003cd4: 1ad3 subs r3, r2, r3 8003cd6: 4a8a ldr r2, [pc, #552] ; (8003f00 ) 8003cd8: fba2 1203 umull r1, r2, r2, r3 8003cdc: 0952 lsrs r2, r2, #5 8003cde: 2164 movs r1, #100 ; 0x64 8003ce0: fb01 f202 mul.w r2, r1, r2 8003ce4: 1a9a subs r2, r3, r2 8003ce6: 4b87 ldr r3, [pc, #540] ; (8003f04 ) 8003ce8: fba3 2302 umull r2, r3, r3, r2 8003cec: 08db lsrs r3, r3, #3 8003cee: 60fb str r3, [r7, #12] ike = (s % 10000 % 1000 % 100 % 10); 8003cf0: 69fb ldr r3, [r7, #28] 8003cf2: 4a81 ldr r2, [pc, #516] ; (8003ef8 ) 8003cf4: fba2 1203 umull r1, r2, r2, r3 8003cf8: 0b52 lsrs r2, r2, #13 8003cfa: f242 7110 movw r1, #10000 ; 0x2710 8003cfe: fb01 f202 mul.w r2, r1, r2 8003d02: 1a9a subs r2, r3, r2 8003d04: 4b7d ldr r3, [pc, #500] ; (8003efc ) 8003d06: fba3 1302 umull r1, r3, r3, r2 8003d0a: 099b lsrs r3, r3, #6 8003d0c: f44f 717a mov.w r1, #1000 ; 0x3e8 8003d10: fb01 f303 mul.w r3, r1, r3 8003d14: 1ad3 subs r3, r2, r3 8003d16: 4a7a ldr r2, [pc, #488] ; (8003f00 ) 8003d18: fba2 1203 umull r1, r2, r2, r3 8003d1c: 0952 lsrs r2, r2, #5 8003d1e: 2164 movs r1, #100 ; 0x64 8003d20: fb01 f202 mul.w r2, r1, r2 8003d24: 1a9a subs r2, r3, r2 8003d26: 4b77 ldr r3, [pc, #476] ; (8003f04 ) 8003d28: fba3 1302 umull r1, r3, r3, r2 8003d2c: 08d9 lsrs r1, r3, #3 8003d2e: 460b mov r3, r1 8003d30: 009b lsls r3, r3, #2 8003d32: 440b add r3, r1 8003d34: 005b lsls r3, r3, #1 8003d36: 1ad3 subs r3, r2, r3 8003d38: 60bb str r3, [r7, #8] if(menupos == Kikdt_1 || menupos == Kikdt_2 || menupos == Kikdt_3 || menupos == Kikdt_4) 8003d3a: 4b73 ldr r3, [pc, #460] ; (8003f08 ) 8003d3c: 781b ldrb r3, [r3, #0] 8003d3e: b2db uxtb r3, r3 8003d40: 2b02 cmp r3, #2 8003d42: d00f beq.n 8003d64 8003d44: 4b70 ldr r3, [pc, #448] ; (8003f08 ) 8003d46: 781b ldrb r3, [r3, #0] 8003d48: b2db uxtb r3, r3 8003d4a: 2b0a cmp r3, #10 8003d4c: d00a beq.n 8003d64 8003d4e: 4b6e ldr r3, [pc, #440] ; (8003f08 ) 8003d50: 781b ldrb r3, [r3, #0] 8003d52: b2db uxtb r3, r3 8003d54: 2b12 cmp r3, #18 8003d56: d005 beq.n 8003d64 8003d58: 4b6b ldr r3, [pc, #428] ; (8003f08 ) 8003d5a: 781b ldrb r3, [r3, #0] 8003d5c: b2db uxtb r3, r3 8003d5e: 2b1a cmp r3, #26 8003d60: f040 80e2 bne.w 8003f28 { if(ikdt) { 8003d64: 69bb ldr r3, [r7, #24] 8003d66: 2b00 cmp r3, #0 8003d68: d002 beq.n 8003d70 ikdt--; 8003d6a: 69bb ldr r3, [r7, #24] 8003d6c: 3b01 subs r3, #1 8003d6e: 61bb str r3, [r7, #24] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 8003d70: 69bb ldr r3, [r7, #24] 8003d72: f242 7210 movw r2, #10000 ; 0x2710 8003d76: fb02 f203 mul.w r2, r2, r3 8003d7a: 697b ldr r3, [r7, #20] 8003d7c: f44f 717a mov.w r1, #1000 ; 0x3e8 8003d80: fb01 f303 mul.w r3, r1, r3 8003d84: 18d1 adds r1, r2, r3 8003d86: 68fa ldr r2, [r7, #12] 8003d88: 4613 mov r3, r2 8003d8a: 009b lsls r3, r3, #2 8003d8c: 4413 add r3, r2 8003d8e: 005b lsls r3, r3, #1 8003d90: 4618 mov r0, r3 8003d92: 693b ldr r3, [r7, #16] 8003d94: 2264 movs r2, #100 ; 0x64 8003d96: fb02 f303 mul.w r3, r2, r3 8003d9a: 4403 add r3, r0 8003d9c: 18ca adds r2, r1, r3 8003d9e: 68bb ldr r3, [r7, #8] 8003da0: 4413 add r3, r2 8003da2: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 8003da4: 4b4f ldr r3, [pc, #316] ; (8003ee4 ) 8003da6: 681b ldr r3, [r3, #0] 8003da8: 69fa ldr r2, [r7, #28] 8003daa: ee07 2a90 vmov s15, r2 8003dae: eef8 7a67 vcvt.f32.u32 s15, s15 8003db2: 4a4d ldr r2, [pc, #308] ; (8003ee8 ) 8003db4: 015b lsls r3, r3, #5 8003db6: 4413 add r3, r2 8003db8: 3318 adds r3, #24 8003dba: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 8003dbe: 687b ldr r3, [r7, #4] 8003dc0: 2b01 cmp r3, #1 8003dc2: d112 bne.n 8003dea 8003dc4: 4b47 ldr r3, [pc, #284] ; (8003ee4 ) 8003dc6: 681b ldr r3, [r3, #0] 8003dc8: 4947 ldr r1, [pc, #284] ; (8003ee8 ) 8003dca: 015a lsls r2, r3, #5 8003dcc: 440a add r2, r1 8003dce: 3218 adds r2, #24 8003dd0: edd2 7a00 vldr s15, [r2] 8003dd4: ed9f 7a4d vldr s14, [pc, #308] ; 8003f0c 8003dd8: ee67 7a87 vmul.f32 s15, s15, s14 8003ddc: 4a42 ldr r2, [pc, #264] ; (8003ee8 ) 8003dde: 015b lsls r3, r3, #5 8003de0: 4413 add r3, r2 8003de2: 3318 adds r3, #24 8003de4: edc3 7a00 vstr s15, [r3] 8003de8: e040 b.n 8003e6c else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8003dea: 687b ldr r3, [r7, #4] 8003dec: 2b02 cmp r3, #2 8003dee: d112 bne.n 8003e16 8003df0: 4b3c ldr r3, [pc, #240] ; (8003ee4 ) 8003df2: 681b ldr r3, [r3, #0] 8003df4: 493c ldr r1, [pc, #240] ; (8003ee8 ) 8003df6: 015a lsls r2, r3, #5 8003df8: 440a add r2, r1 8003dfa: 3218 adds r2, #24 8003dfc: edd2 7a00 vldr s15, [r2] 8003e00: ed9f 7a43 vldr s14, [pc, #268] ; 8003f10 8003e04: ee67 7a87 vmul.f32 s15, s15, s14 8003e08: 4a37 ldr r2, [pc, #220] ; (8003ee8 ) 8003e0a: 015b lsls r3, r3, #5 8003e0c: 4413 add r3, r2 8003e0e: 3318 adds r3, #24 8003e10: edc3 7a00 vstr s15, [r3] 8003e14: e02a b.n 8003e6c else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 8003e16: 687b ldr r3, [r7, #4] 8003e18: 2b03 cmp r3, #3 8003e1a: d112 bne.n 8003e42 8003e1c: 4b31 ldr r3, [pc, #196] ; (8003ee4 ) 8003e1e: 681b ldr r3, [r3, #0] 8003e20: 4931 ldr r1, [pc, #196] ; (8003ee8 ) 8003e22: 015a lsls r2, r3, #5 8003e24: 440a add r2, r1 8003e26: 3218 adds r2, #24 8003e28: edd2 7a00 vldr s15, [r2] 8003e2c: ed9f 7a39 vldr s14, [pc, #228] ; 8003f14 8003e30: ee67 7a87 vmul.f32 s15, s15, s14 8003e34: 4a2c ldr r2, [pc, #176] ; (8003ee8 ) 8003e36: 015b lsls r3, r3, #5 8003e38: 4413 add r3, r2 8003e3a: 3318 adds r3, #24 8003e3c: edc3 7a00 vstr s15, [r3] 8003e40: e014 b.n 8003e6c else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 8003e42: 687b ldr r3, [r7, #4] 8003e44: 2b04 cmp r3, #4 8003e46: d111 bne.n 8003e6c 8003e48: 4b26 ldr r3, [pc, #152] ; (8003ee4 ) 8003e4a: 681b ldr r3, [r3, #0] 8003e4c: 4926 ldr r1, [pc, #152] ; (8003ee8 ) 8003e4e: 015a lsls r2, r3, #5 8003e50: 440a add r2, r1 8003e52: 3218 adds r2, #24 8003e54: edd2 7a00 vldr s15, [r2] 8003e58: ed9f 7a2f vldr s14, [pc, #188] ; 8003f18 8003e5c: ee67 7a87 vmul.f32 s15, s15, s14 8003e60: 4a21 ldr r2, [pc, #132] ; (8003ee8 ) 8003e62: 015b lsls r3, r3, #5 8003e64: 4413 add r3, r2 8003e66: 3318 adds r3, #24 8003e68: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //поправил 8003e6c: 4b1d ldr r3, [pc, #116] ; (8003ee4 ) 8003e6e: 681b ldr r3, [r3, #0] 8003e70: 4a1d ldr r2, [pc, #116] ; (8003ee8 ) 8003e72: 015b lsls r3, r3, #5 8003e74: 4413 add r3, r2 8003e76: 3318 adds r3, #24 8003e78: edd3 7a00 vldr s15, [r3] 8003e7c: ed9f 7a25 vldr s14, [pc, #148] ; 8003f14 8003e80: eef4 7ac7 vcmpe.f32 s15, s14 8003e84: eef1 fa10 vmrs APSR_nzcv, fpscr 8003e88: d507 bpl.n 8003e9a pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f; 8003e8a: 4b16 ldr r3, [pc, #88] ; (8003ee4 ) 8003e8c: 681b ldr r3, [r3, #0] 8003e8e: 4a16 ldr r2, [pc, #88] ; (8003ee8 ) 8003e90: 015b lsls r3, r3, #5 8003e92: 4413 add r3, r2 8003e94: 3318 adds r3, #24 8003e96: 4a21 ldr r2, [pc, #132] ; (8003f1c ) 8003e98: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) { 8003e9a: 4b12 ldr r3, [pc, #72] ; (8003ee4 ) 8003e9c: 681b ldr r3, [r3, #0] 8003e9e: 4a12 ldr r2, [pc, #72] ; (8003ee8 ) 8003ea0: 015b lsls r3, r3, #5 8003ea2: 4413 add r3, r2 8003ea4: 3318 adds r3, #24 8003ea6: edd3 7a00 vldr s15, [r3] 8003eaa: ed9f 7a1d vldr s14, [pc, #116] ; 8003f20 8003eae: eef4 7ac7 vcmpe.f32 s15, s14 8003eb2: eef1 fa10 vmrs APSR_nzcv, fpscr 8003eb6: db07 blt.n 8003ec8 pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f; 8003eb8: 4b0a ldr r3, [pc, #40] ; (8003ee4 ) 8003eba: 681b ldr r3, [r3, #0] 8003ebc: 4a0a ldr r2, [pc, #40] ; (8003ee8 ) 8003ebe: 015b lsls r3, r3, #5 8003ec0: 4413 add r3, r2 8003ec2: 3318 adds r3, #24 8003ec4: 4a17 ldr r2, [pc, #92] ; (8003f24 ) 8003ec6: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 8003ec8: 4b06 ldr r3, [pc, #24] ; (8003ee4 ) 8003eca: 681b ldr r3, [r3, #0] 8003ecc: 4a06 ldr r2, [pc, #24] ; (8003ee8 ) 8003ece: 015b lsls r3, r3, #5 8003ed0: 4413 add r3, r2 8003ed2: 3318 adds r3, #24 8003ed4: edd3 7a00 vldr s15, [r3] 8003ed8: eeb0 0a67 vmov.f32 s0, s15 8003edc: f000 fc96 bl 800480c 8003ee0: f000 bc82 b.w 80047e8 8003ee4: 2006ba68 .word 0x2006ba68 8003ee8: 2006bca8 .word 0x2006bca8 8003eec: 47c35000 .word 0x47c35000 8003ef0: 47c34f80 .word 0x47c34f80 8003ef4: 0001869f .word 0x0001869f 8003ef8: d1b71759 .word 0xd1b71759 8003efc: 10624dd3 .word 0x10624dd3 8003f00: 51eb851f .word 0x51eb851f 8003f04: cccccccd .word 0xcccccccd 8003f08: 20020010 .word 0x20020010 8003f0c: 3dcccccd .word 0x3dcccccd 8003f10: 3c23d70a .word 0x3c23d70a 8003f14: 3a83126f .word 0x3a83126f 8003f18: 38d1b717 .word 0x38d1b717 8003f1c: 3a83126f .word 0x3a83126f 8003f20: 461c4000 .word 0x461c4000 8003f24: 461c3c00 .word 0x461c3c00 } else if(menupos == Kikt_1 || menupos == Kikt_2 || menupos == Kikt_3 || menupos == Kikt_4) 8003f28: 4bab ldr r3, [pc, #684] ; (80041d8 ) 8003f2a: 781b ldrb r3, [r3, #0] 8003f2c: b2db uxtb r3, r3 8003f2e: 2b03 cmp r3, #3 8003f30: d00f beq.n 8003f52 8003f32: 4ba9 ldr r3, [pc, #676] ; (80041d8 ) 8003f34: 781b ldrb r3, [r3, #0] 8003f36: b2db uxtb r3, r3 8003f38: 2b0b cmp r3, #11 8003f3a: d00a beq.n 8003f52 8003f3c: 4ba6 ldr r3, [pc, #664] ; (80041d8 ) 8003f3e: 781b ldrb r3, [r3, #0] 8003f40: b2db uxtb r3, r3 8003f42: 2b13 cmp r3, #19 8003f44: d005 beq.n 8003f52 8003f46: 4ba4 ldr r3, [pc, #656] ; (80041d8 ) 8003f48: 781b ldrb r3, [r3, #0] 8003f4a: b2db uxtb r3, r3 8003f4c: 2b1b cmp r3, #27 8003f4e: f040 80bf bne.w 80040d0 { if(ikt) { 8003f52: 697b ldr r3, [r7, #20] 8003f54: 2b00 cmp r3, #0 8003f56: d002 beq.n 8003f5e ikt--; 8003f58: 697b ldr r3, [r7, #20] 8003f5a: 3b01 subs r3, #1 8003f5c: 617b str r3, [r7, #20] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 8003f5e: 69bb ldr r3, [r7, #24] 8003f60: f242 7210 movw r2, #10000 ; 0x2710 8003f64: fb02 f203 mul.w r2, r2, r3 8003f68: 697b ldr r3, [r7, #20] 8003f6a: f44f 717a mov.w r1, #1000 ; 0x3e8 8003f6e: fb01 f303 mul.w r3, r1, r3 8003f72: 18d1 adds r1, r2, r3 8003f74: 68fa ldr r2, [r7, #12] 8003f76: 4613 mov r3, r2 8003f78: 009b lsls r3, r3, #2 8003f7a: 4413 add r3, r2 8003f7c: 005b lsls r3, r3, #1 8003f7e: 4618 mov r0, r3 8003f80: 693b ldr r3, [r7, #16] 8003f82: 2264 movs r2, #100 ; 0x64 8003f84: fb02 f303 mul.w r3, r2, r3 8003f88: 4403 add r3, r0 8003f8a: 18ca adds r2, r1, r3 8003f8c: 68bb ldr r3, [r7, #8] 8003f8e: 4413 add r3, r2 8003f90: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 8003f92: 4b92 ldr r3, [pc, #584] ; (80041dc ) 8003f94: 681b ldr r3, [r3, #0] 8003f96: 69fa ldr r2, [r7, #28] 8003f98: ee07 2a90 vmov s15, r2 8003f9c: eef8 7a67 vcvt.f32.u32 s15, s15 8003fa0: 4a8f ldr r2, [pc, #572] ; (80041e0 ) 8003fa2: 015b lsls r3, r3, #5 8003fa4: 4413 add r3, r2 8003fa6: 3318 adds r3, #24 8003fa8: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 8003fac: 687b ldr r3, [r7, #4] 8003fae: 2b01 cmp r3, #1 8003fb0: d112 bne.n 8003fd8 8003fb2: 4b8a ldr r3, [pc, #552] ; (80041dc ) 8003fb4: 681b ldr r3, [r3, #0] 8003fb6: 498a ldr r1, [pc, #552] ; (80041e0 ) 8003fb8: 015a lsls r2, r3, #5 8003fba: 440a add r2, r1 8003fbc: 3218 adds r2, #24 8003fbe: edd2 7a00 vldr s15, [r2] 8003fc2: ed9f 7a88 vldr s14, [pc, #544] ; 80041e4 8003fc6: ee67 7a87 vmul.f32 s15, s15, s14 8003fca: 4a85 ldr r2, [pc, #532] ; (80041e0 ) 8003fcc: 015b lsls r3, r3, #5 8003fce: 4413 add r3, r2 8003fd0: 3318 adds r3, #24 8003fd2: edc3 7a00 vstr s15, [r3] 8003fd6: e040 b.n 800405a else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8003fd8: 687b ldr r3, [r7, #4] 8003fda: 2b02 cmp r3, #2 8003fdc: d112 bne.n 8004004 8003fde: 4b7f ldr r3, [pc, #508] ; (80041dc ) 8003fe0: 681b ldr r3, [r3, #0] 8003fe2: 497f ldr r1, [pc, #508] ; (80041e0 ) 8003fe4: 015a lsls r2, r3, #5 8003fe6: 440a add r2, r1 8003fe8: 3218 adds r2, #24 8003fea: edd2 7a00 vldr s15, [r2] 8003fee: ed9f 7a7e vldr s14, [pc, #504] ; 80041e8 8003ff2: ee67 7a87 vmul.f32 s15, s15, s14 8003ff6: 4a7a ldr r2, [pc, #488] ; (80041e0 ) 8003ff8: 015b lsls r3, r3, #5 8003ffa: 4413 add r3, r2 8003ffc: 3318 adds r3, #24 8003ffe: edc3 7a00 vstr s15, [r3] 8004002: e02a b.n 800405a else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 8004004: 687b ldr r3, [r7, #4] 8004006: 2b03 cmp r3, #3 8004008: d112 bne.n 8004030 800400a: 4b74 ldr r3, [pc, #464] ; (80041dc ) 800400c: 681b ldr r3, [r3, #0] 800400e: 4974 ldr r1, [pc, #464] ; (80041e0 ) 8004010: 015a lsls r2, r3, #5 8004012: 440a add r2, r1 8004014: 3218 adds r2, #24 8004016: edd2 7a00 vldr s15, [r2] 800401a: ed9f 7a74 vldr s14, [pc, #464] ; 80041ec 800401e: ee67 7a87 vmul.f32 s15, s15, s14 8004022: 4a6f ldr r2, [pc, #444] ; (80041e0 ) 8004024: 015b lsls r3, r3, #5 8004026: 4413 add r3, r2 8004028: 3318 adds r3, #24 800402a: edc3 7a00 vstr s15, [r3] 800402e: e014 b.n 800405a else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 8004030: 687b ldr r3, [r7, #4] 8004032: 2b04 cmp r3, #4 8004034: d111 bne.n 800405a 8004036: 4b69 ldr r3, [pc, #420] ; (80041dc ) 8004038: 681b ldr r3, [r3, #0] 800403a: 4969 ldr r1, [pc, #420] ; (80041e0 ) 800403c: 015a lsls r2, r3, #5 800403e: 440a add r2, r1 8004040: 3218 adds r2, #24 8004042: edd2 7a00 vldr s15, [r2] 8004046: ed9f 7a6a vldr s14, [pc, #424] ; 80041f0 800404a: ee67 7a87 vmul.f32 s15, s15, s14 800404e: 4a64 ldr r2, [pc, #400] ; (80041e0 ) 8004050: 015b lsls r3, r3, #5 8004052: 4413 add r3, r2 8004054: 3318 adds r3, #24 8004056: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //поправил 800405a: 4b60 ldr r3, [pc, #384] ; (80041dc ) 800405c: 681b ldr r3, [r3, #0] 800405e: 4a60 ldr r2, [pc, #384] ; (80041e0 ) 8004060: 015b lsls r3, r3, #5 8004062: 4413 add r3, r2 8004064: 3318 adds r3, #24 8004066: edd3 7a00 vldr s15, [r3] 800406a: ed9f 7a60 vldr s14, [pc, #384] ; 80041ec 800406e: eef4 7ac7 vcmpe.f32 s15, s14 8004072: eef1 fa10 vmrs APSR_nzcv, fpscr 8004076: d507 bpl.n 8004088 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f; 8004078: 4b58 ldr r3, [pc, #352] ; (80041dc ) 800407a: 681b ldr r3, [r3, #0] 800407c: 4a58 ldr r2, [pc, #352] ; (80041e0 ) 800407e: 015b lsls r3, r3, #5 8004080: 4413 add r3, r2 8004082: 3318 adds r3, #24 8004084: 4a5b ldr r2, [pc, #364] ; (80041f4 ) 8004086: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) { 8004088: 4b54 ldr r3, [pc, #336] ; (80041dc ) 800408a: 681b ldr r3, [r3, #0] 800408c: 4a54 ldr r2, [pc, #336] ; (80041e0 ) 800408e: 015b lsls r3, r3, #5 8004090: 4413 add r3, r2 8004092: 3318 adds r3, #24 8004094: edd3 7a00 vldr s15, [r3] 8004098: ed9f 7a57 vldr s14, [pc, #348] ; 80041f8 800409c: eef4 7ac7 vcmpe.f32 s15, s14 80040a0: eef1 fa10 vmrs APSR_nzcv, fpscr 80040a4: db07 blt.n 80040b6 pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f; 80040a6: 4b4d ldr r3, [pc, #308] ; (80041dc ) 80040a8: 681b ldr r3, [r3, #0] 80040aa: 4a4d ldr r2, [pc, #308] ; (80041e0 ) 80040ac: 015b lsls r3, r3, #5 80040ae: 4413 add r3, r2 80040b0: 3318 adds r3, #24 80040b2: 4a52 ldr r2, [pc, #328] ; (80041fc ) 80040b4: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 80040b6: 4b49 ldr r3, [pc, #292] ; (80041dc ) 80040b8: 681b ldr r3, [r3, #0] 80040ba: 4a49 ldr r2, [pc, #292] ; (80041e0 ) 80040bc: 015b lsls r3, r3, #5 80040be: 4413 add r3, r2 80040c0: 3318 adds r3, #24 80040c2: edd3 7a00 vldr s15, [r3] 80040c6: eeb0 0a67 vmov.f32 s0, s15 80040ca: f000 fb9f bl 800480c 80040ce: e38b b.n 80047e8 } else if(menupos == Kiks_1 || menupos == Kiks_2 || menupos == Kiks_3 || menupos == Kiks_4) 80040d0: 4b41 ldr r3, [pc, #260] ; (80041d8 ) 80040d2: 781b ldrb r3, [r3, #0] 80040d4: b2db uxtb r3, r3 80040d6: 2b04 cmp r3, #4 80040d8: d00f beq.n 80040fa 80040da: 4b3f ldr r3, [pc, #252] ; (80041d8 ) 80040dc: 781b ldrb r3, [r3, #0] 80040de: b2db uxtb r3, r3 80040e0: 2b0c cmp r3, #12 80040e2: d00a beq.n 80040fa 80040e4: 4b3c ldr r3, [pc, #240] ; (80041d8 ) 80040e6: 781b ldrb r3, [r3, #0] 80040e8: b2db uxtb r3, r3 80040ea: 2b14 cmp r3, #20 80040ec: d005 beq.n 80040fa 80040ee: 4b3a ldr r3, [pc, #232] ; (80041d8 ) 80040f0: 781b ldrb r3, [r3, #0] 80040f2: b2db uxtb r3, r3 80040f4: 2b1c cmp r3, #28 80040f6: f040 80d3 bne.w 80042a0 { if(iks) { 80040fa: 693b ldr r3, [r7, #16] 80040fc: 2b00 cmp r3, #0 80040fe: d002 beq.n 8004106 iks--; 8004100: 693b ldr r3, [r7, #16] 8004102: 3b01 subs r3, #1 8004104: 613b str r3, [r7, #16] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 8004106: 69bb ldr r3, [r7, #24] 8004108: f242 7210 movw r2, #10000 ; 0x2710 800410c: fb02 f203 mul.w r2, r2, r3 8004110: 697b ldr r3, [r7, #20] 8004112: f44f 717a mov.w r1, #1000 ; 0x3e8 8004116: fb01 f303 mul.w r3, r1, r3 800411a: 18d1 adds r1, r2, r3 800411c: 68fa ldr r2, [r7, #12] 800411e: 4613 mov r3, r2 8004120: 009b lsls r3, r3, #2 8004122: 4413 add r3, r2 8004124: 005b lsls r3, r3, #1 8004126: 4618 mov r0, r3 8004128: 693b ldr r3, [r7, #16] 800412a: 2264 movs r2, #100 ; 0x64 800412c: fb02 f303 mul.w r3, r2, r3 8004130: 4403 add r3, r0 8004132: 18ca adds r2, r1, r3 8004134: 68bb ldr r3, [r7, #8] 8004136: 4413 add r3, r2 8004138: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 800413a: 4b28 ldr r3, [pc, #160] ; (80041dc ) 800413c: 681b ldr r3, [r3, #0] 800413e: 69fa ldr r2, [r7, #28] 8004140: ee07 2a90 vmov s15, r2 8004144: eef8 7a67 vcvt.f32.u32 s15, s15 8004148: 4a25 ldr r2, [pc, #148] ; (80041e0 ) 800414a: 015b lsls r3, r3, #5 800414c: 4413 add r3, r2 800414e: 3318 adds r3, #24 8004150: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 8004154: 687b ldr r3, [r7, #4] 8004156: 2b01 cmp r3, #1 8004158: d112 bne.n 8004180 800415a: 4b20 ldr r3, [pc, #128] ; (80041dc ) 800415c: 681b ldr r3, [r3, #0] 800415e: 4920 ldr r1, [pc, #128] ; (80041e0 ) 8004160: 015a lsls r2, r3, #5 8004162: 440a add r2, r1 8004164: 3218 adds r2, #24 8004166: edd2 7a00 vldr s15, [r2] 800416a: ed9f 7a1e vldr s14, [pc, #120] ; 80041e4 800416e: ee67 7a87 vmul.f32 s15, s15, s14 8004172: 4a1b ldr r2, [pc, #108] ; (80041e0 ) 8004174: 015b lsls r3, r3, #5 8004176: 4413 add r3, r2 8004178: 3318 adds r3, #24 800417a: edc3 7a00 vstr s15, [r3] 800417e: e054 b.n 800422a else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8004180: 687b ldr r3, [r7, #4] 8004182: 2b02 cmp r3, #2 8004184: d112 bne.n 80041ac 8004186: 4b15 ldr r3, [pc, #84] ; (80041dc ) 8004188: 681b ldr r3, [r3, #0] 800418a: 4915 ldr r1, [pc, #84] ; (80041e0 ) 800418c: 015a lsls r2, r3, #5 800418e: 440a add r2, r1 8004190: 3218 adds r2, #24 8004192: edd2 7a00 vldr s15, [r2] 8004196: ed9f 7a14 vldr s14, [pc, #80] ; 80041e8 800419a: ee67 7a87 vmul.f32 s15, s15, s14 800419e: 4a10 ldr r2, [pc, #64] ; (80041e0 ) 80041a0: 015b lsls r3, r3, #5 80041a2: 4413 add r3, r2 80041a4: 3318 adds r3, #24 80041a6: edc3 7a00 vstr s15, [r3] 80041aa: e03e b.n 800422a else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 80041ac: 687b ldr r3, [r7, #4] 80041ae: 2b03 cmp r3, #3 80041b0: d126 bne.n 8004200 80041b2: 4b0a ldr r3, [pc, #40] ; (80041dc ) 80041b4: 681b ldr r3, [r3, #0] 80041b6: 490a ldr r1, [pc, #40] ; (80041e0 ) 80041b8: 015a lsls r2, r3, #5 80041ba: 440a add r2, r1 80041bc: 3218 adds r2, #24 80041be: edd2 7a00 vldr s15, [r2] 80041c2: ed9f 7a0a vldr s14, [pc, #40] ; 80041ec 80041c6: ee67 7a87 vmul.f32 s15, s15, s14 80041ca: 4a05 ldr r2, [pc, #20] ; (80041e0 ) 80041cc: 015b lsls r3, r3, #5 80041ce: 4413 add r3, r2 80041d0: 3318 adds r3, #24 80041d2: edc3 7a00 vstr s15, [r3] 80041d6: e028 b.n 800422a 80041d8: 20020010 .word 0x20020010 80041dc: 2006ba68 .word 0x2006ba68 80041e0: 2006bca8 .word 0x2006bca8 80041e4: 3dcccccd .word 0x3dcccccd 80041e8: 3c23d70a .word 0x3c23d70a 80041ec: 3a83126f .word 0x3a83126f 80041f0: 38d1b717 .word 0x38d1b717 80041f4: 3a83126f .word 0x3a83126f 80041f8: 461c4000 .word 0x461c4000 80041fc: 461c3c00 .word 0x461c3c00 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 8004200: 687b ldr r3, [r7, #4] 8004202: 2b04 cmp r3, #4 8004204: d111 bne.n 800422a 8004206: 4b90 ldr r3, [pc, #576] ; (8004448 ) 8004208: 681b ldr r3, [r3, #0] 800420a: 4990 ldr r1, [pc, #576] ; (800444c ) 800420c: 015a lsls r2, r3, #5 800420e: 440a add r2, r1 8004210: 3218 adds r2, #24 8004212: edd2 7a00 vldr s15, [r2] 8004216: ed9f 7a8e vldr s14, [pc, #568] ; 8004450 800421a: ee67 7a87 vmul.f32 s15, s15, s14 800421e: 4a8b ldr r2, [pc, #556] ; (800444c ) 8004220: 015b lsls r3, r3, #5 8004222: 4413 add r3, r2 8004224: 3318 adds r3, #24 8004226: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //поправил 800422a: 4b87 ldr r3, [pc, #540] ; (8004448 ) 800422c: 681b ldr r3, [r3, #0] 800422e: 4a87 ldr r2, [pc, #540] ; (800444c ) 8004230: 015b lsls r3, r3, #5 8004232: 4413 add r3, r2 8004234: 3318 adds r3, #24 8004236: edd3 7a00 vldr s15, [r3] 800423a: ed9f 7a86 vldr s14, [pc, #536] ; 8004454 800423e: eef4 7ac7 vcmpe.f32 s15, s14 8004242: eef1 fa10 vmrs APSR_nzcv, fpscr 8004246: d507 bpl.n 8004258 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f; 8004248: 4b7f ldr r3, [pc, #508] ; (8004448 ) 800424a: 681b ldr r3, [r3, #0] 800424c: 4a7f ldr r2, [pc, #508] ; (800444c ) 800424e: 015b lsls r3, r3, #5 8004250: 4413 add r3, r2 8004252: 3318 adds r3, #24 8004254: 4a80 ldr r2, [pc, #512] ; (8004458 ) 8004256: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) { 8004258: 4b7b ldr r3, [pc, #492] ; (8004448 ) 800425a: 681b ldr r3, [r3, #0] 800425c: 4a7b ldr r2, [pc, #492] ; (800444c ) 800425e: 015b lsls r3, r3, #5 8004260: 4413 add r3, r2 8004262: 3318 adds r3, #24 8004264: edd3 7a00 vldr s15, [r3] 8004268: ed9f 7a7c vldr s14, [pc, #496] ; 800445c 800426c: eef4 7ac7 vcmpe.f32 s15, s14 8004270: eef1 fa10 vmrs APSR_nzcv, fpscr 8004274: db07 blt.n 8004286 pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f; 8004276: 4b74 ldr r3, [pc, #464] ; (8004448 ) 8004278: 681b ldr r3, [r3, #0] 800427a: 4a74 ldr r2, [pc, #464] ; (800444c ) 800427c: 015b lsls r3, r3, #5 800427e: 4413 add r3, r2 8004280: 3318 adds r3, #24 8004282: 4a77 ldr r2, [pc, #476] ; (8004460 ) 8004284: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 8004286: 4b70 ldr r3, [pc, #448] ; (8004448 ) 8004288: 681b ldr r3, [r3, #0] 800428a: 4a70 ldr r2, [pc, #448] ; (800444c ) 800428c: 015b lsls r3, r3, #5 800428e: 4413 add r3, r2 8004290: 3318 adds r3, #24 8004292: edd3 7a00 vldr s15, [r3] 8004296: eeb0 0a67 vmov.f32 s0, s15 800429a: f000 fab7 bl 800480c 800429e: e2a3 b.n 80047e8 } else if(menupos == Kikd_1 || menupos == Kikd_2 || menupos == Kikd_3 || menupos == Kikd_4) 80042a0: 4b70 ldr r3, [pc, #448] ; (8004464 ) 80042a2: 781b ldrb r3, [r3, #0] 80042a4: b2db uxtb r3, r3 80042a6: 2b05 cmp r3, #5 80042a8: d00f beq.n 80042ca 80042aa: 4b6e ldr r3, [pc, #440] ; (8004464 ) 80042ac: 781b ldrb r3, [r3, #0] 80042ae: b2db uxtb r3, r3 80042b0: 2b0d cmp r3, #13 80042b2: d00a beq.n 80042ca 80042b4: 4b6b ldr r3, [pc, #428] ; (8004464 ) 80042b6: 781b ldrb r3, [r3, #0] 80042b8: b2db uxtb r3, r3 80042ba: 2b15 cmp r3, #21 80042bc: d005 beq.n 80042ca 80042be: 4b69 ldr r3, [pc, #420] ; (8004464 ) 80042c0: 781b ldrb r3, [r3, #0] 80042c2: b2db uxtb r3, r3 80042c4: 2b1d cmp r3, #29 80042c6: f040 80d3 bne.w 8004470 { if(ikd) { 80042ca: 68fb ldr r3, [r7, #12] 80042cc: 2b00 cmp r3, #0 80042ce: d002 beq.n 80042d6 ikd--; 80042d0: 68fb ldr r3, [r7, #12] 80042d2: 3b01 subs r3, #1 80042d4: 60fb str r3, [r7, #12] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 80042d6: 69bb ldr r3, [r7, #24] 80042d8: f242 7210 movw r2, #10000 ; 0x2710 80042dc: fb02 f203 mul.w r2, r2, r3 80042e0: 697b ldr r3, [r7, #20] 80042e2: f44f 717a mov.w r1, #1000 ; 0x3e8 80042e6: fb01 f303 mul.w r3, r1, r3 80042ea: 18d1 adds r1, r2, r3 80042ec: 68fa ldr r2, [r7, #12] 80042ee: 4613 mov r3, r2 80042f0: 009b lsls r3, r3, #2 80042f2: 4413 add r3, r2 80042f4: 005b lsls r3, r3, #1 80042f6: 4618 mov r0, r3 80042f8: 693b ldr r3, [r7, #16] 80042fa: 2264 movs r2, #100 ; 0x64 80042fc: fb02 f303 mul.w r3, r2, r3 8004300: 4403 add r3, r0 8004302: 18ca adds r2, r1, r3 8004304: 68bb ldr r3, [r7, #8] 8004306: 4413 add r3, r2 8004308: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 800430a: 4b4f ldr r3, [pc, #316] ; (8004448 ) 800430c: 681b ldr r3, [r3, #0] 800430e: 69fa ldr r2, [r7, #28] 8004310: ee07 2a90 vmov s15, r2 8004314: eef8 7a67 vcvt.f32.u32 s15, s15 8004318: 4a4c ldr r2, [pc, #304] ; (800444c ) 800431a: 015b lsls r3, r3, #5 800431c: 4413 add r3, r2 800431e: 3318 adds r3, #24 8004320: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 8004324: 687b ldr r3, [r7, #4] 8004326: 2b01 cmp r3, #1 8004328: d112 bne.n 8004350 800432a: 4b47 ldr r3, [pc, #284] ; (8004448 ) 800432c: 681b ldr r3, [r3, #0] 800432e: 4947 ldr r1, [pc, #284] ; (800444c ) 8004330: 015a lsls r2, r3, #5 8004332: 440a add r2, r1 8004334: 3218 adds r2, #24 8004336: edd2 7a00 vldr s15, [r2] 800433a: ed9f 7a4b vldr s14, [pc, #300] ; 8004468 800433e: ee67 7a87 vmul.f32 s15, s15, s14 8004342: 4a42 ldr r2, [pc, #264] ; (800444c ) 8004344: 015b lsls r3, r3, #5 8004346: 4413 add r3, r2 8004348: 3318 adds r3, #24 800434a: edc3 7a00 vstr s15, [r3] 800434e: e040 b.n 80043d2 else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8004350: 687b ldr r3, [r7, #4] 8004352: 2b02 cmp r3, #2 8004354: d112 bne.n 800437c 8004356: 4b3c ldr r3, [pc, #240] ; (8004448 ) 8004358: 681b ldr r3, [r3, #0] 800435a: 493c ldr r1, [pc, #240] ; (800444c ) 800435c: 015a lsls r2, r3, #5 800435e: 440a add r2, r1 8004360: 3218 adds r2, #24 8004362: edd2 7a00 vldr s15, [r2] 8004366: ed9f 7a41 vldr s14, [pc, #260] ; 800446c 800436a: ee67 7a87 vmul.f32 s15, s15, s14 800436e: 4a37 ldr r2, [pc, #220] ; (800444c ) 8004370: 015b lsls r3, r3, #5 8004372: 4413 add r3, r2 8004374: 3318 adds r3, #24 8004376: edc3 7a00 vstr s15, [r3] 800437a: e02a b.n 80043d2 else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 800437c: 687b ldr r3, [r7, #4] 800437e: 2b03 cmp r3, #3 8004380: d112 bne.n 80043a8 8004382: 4b31 ldr r3, [pc, #196] ; (8004448 ) 8004384: 681b ldr r3, [r3, #0] 8004386: 4931 ldr r1, [pc, #196] ; (800444c ) 8004388: 015a lsls r2, r3, #5 800438a: 440a add r2, r1 800438c: 3218 adds r2, #24 800438e: edd2 7a00 vldr s15, [r2] 8004392: ed9f 7a30 vldr s14, [pc, #192] ; 8004454 8004396: ee67 7a87 vmul.f32 s15, s15, s14 800439a: 4a2c ldr r2, [pc, #176] ; (800444c ) 800439c: 015b lsls r3, r3, #5 800439e: 4413 add r3, r2 80043a0: 3318 adds r3, #24 80043a2: edc3 7a00 vstr s15, [r3] 80043a6: e014 b.n 80043d2 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 80043a8: 687b ldr r3, [r7, #4] 80043aa: 2b04 cmp r3, #4 80043ac: d111 bne.n 80043d2 80043ae: 4b26 ldr r3, [pc, #152] ; (8004448 ) 80043b0: 681b ldr r3, [r3, #0] 80043b2: 4926 ldr r1, [pc, #152] ; (800444c ) 80043b4: 015a lsls r2, r3, #5 80043b6: 440a add r2, r1 80043b8: 3218 adds r2, #24 80043ba: edd2 7a00 vldr s15, [r2] 80043be: ed9f 7a24 vldr s14, [pc, #144] ; 8004450 80043c2: ee67 7a87 vmul.f32 s15, s15, s14 80043c6: 4a21 ldr r2, [pc, #132] ; (800444c ) 80043c8: 015b lsls r3, r3, #5 80043ca: 4413 add r3, r2 80043cc: 3318 adds r3, #24 80043ce: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //поправил 80043d2: 4b1d ldr r3, [pc, #116] ; (8004448 ) 80043d4: 681b ldr r3, [r3, #0] 80043d6: 4a1d ldr r2, [pc, #116] ; (800444c ) 80043d8: 015b lsls r3, r3, #5 80043da: 4413 add r3, r2 80043dc: 3318 adds r3, #24 80043de: edd3 7a00 vldr s15, [r3] 80043e2: ed9f 7a1c vldr s14, [pc, #112] ; 8004454 80043e6: eef4 7ac7 vcmpe.f32 s15, s14 80043ea: eef1 fa10 vmrs APSR_nzcv, fpscr 80043ee: d507 bpl.n 8004400 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f; 80043f0: 4b15 ldr r3, [pc, #84] ; (8004448 ) 80043f2: 681b ldr r3, [r3, #0] 80043f4: 4a15 ldr r2, [pc, #84] ; (800444c ) 80043f6: 015b lsls r3, r3, #5 80043f8: 4413 add r3, r2 80043fa: 3318 adds r3, #24 80043fc: 4a16 ldr r2, [pc, #88] ; (8004458 ) 80043fe: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) { 8004400: 4b11 ldr r3, [pc, #68] ; (8004448 ) 8004402: 681b ldr r3, [r3, #0] 8004404: 4a11 ldr r2, [pc, #68] ; (800444c ) 8004406: 015b lsls r3, r3, #5 8004408: 4413 add r3, r2 800440a: 3318 adds r3, #24 800440c: edd3 7a00 vldr s15, [r3] 8004410: ed9f 7a12 vldr s14, [pc, #72] ; 800445c 8004414: eef4 7ac7 vcmpe.f32 s15, s14 8004418: eef1 fa10 vmrs APSR_nzcv, fpscr 800441c: db07 blt.n 800442e pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f; 800441e: 4b0a ldr r3, [pc, #40] ; (8004448 ) 8004420: 681b ldr r3, [r3, #0] 8004422: 4a0a ldr r2, [pc, #40] ; (800444c ) 8004424: 015b lsls r3, r3, #5 8004426: 4413 add r3, r2 8004428: 3318 adds r3, #24 800442a: 4a0d ldr r2, [pc, #52] ; (8004460 ) 800442c: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 800442e: 4b06 ldr r3, [pc, #24] ; (8004448 ) 8004430: 681b ldr r3, [r3, #0] 8004432: 4a06 ldr r2, [pc, #24] ; (800444c ) 8004434: 015b lsls r3, r3, #5 8004436: 4413 add r3, r2 8004438: 3318 adds r3, #24 800443a: edd3 7a00 vldr s15, [r3] 800443e: eeb0 0a67 vmov.f32 s0, s15 8004442: f000 f9e3 bl 800480c 8004446: e1cf b.n 80047e8 8004448: 2006ba68 .word 0x2006ba68 800444c: 2006bca8 .word 0x2006bca8 8004450: 38d1b717 .word 0x38d1b717 8004454: 3a83126f .word 0x3a83126f 8004458: 3a83126f .word 0x3a83126f 800445c: 461c4000 .word 0x461c4000 8004460: 461c3c00 .word 0x461c3c00 8004464: 20020010 .word 0x20020010 8004468: 3dcccccd .word 0x3dcccccd 800446c: 3c23d70a .word 0x3c23d70a } else if(menupos == Kike_1 || menupos == Kike_2 || menupos == Kike_3 || menupos == Kike_4) 8004470: 4bab ldr r3, [pc, #684] ; (8004720 ) 8004472: 781b ldrb r3, [r3, #0] 8004474: b2db uxtb r3, r3 8004476: 2b06 cmp r3, #6 8004478: d00f beq.n 800449a 800447a: 4ba9 ldr r3, [pc, #676] ; (8004720 ) 800447c: 781b ldrb r3, [r3, #0] 800447e: b2db uxtb r3, r3 8004480: 2b0e cmp r3, #14 8004482: d00a beq.n 800449a 8004484: 4ba6 ldr r3, [pc, #664] ; (8004720 ) 8004486: 781b ldrb r3, [r3, #0] 8004488: b2db uxtb r3, r3 800448a: 2b16 cmp r3, #22 800448c: d005 beq.n 800449a 800448e: 4ba4 ldr r3, [pc, #656] ; (8004720 ) 8004490: 781b ldrb r3, [r3, #0] 8004492: b2db uxtb r3, r3 8004494: 2b1e cmp r3, #30 8004496: f040 80bf bne.w 8004618 { if(ike) { 800449a: 68bb ldr r3, [r7, #8] 800449c: 2b00 cmp r3, #0 800449e: d002 beq.n 80044a6 ike--; 80044a0: 68bb ldr r3, [r7, #8] 80044a2: 3b01 subs r3, #1 80044a4: 60bb str r3, [r7, #8] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 80044a6: 69bb ldr r3, [r7, #24] 80044a8: f242 7210 movw r2, #10000 ; 0x2710 80044ac: fb02 f203 mul.w r2, r2, r3 80044b0: 697b ldr r3, [r7, #20] 80044b2: f44f 717a mov.w r1, #1000 ; 0x3e8 80044b6: fb01 f303 mul.w r3, r1, r3 80044ba: 18d1 adds r1, r2, r3 80044bc: 68fa ldr r2, [r7, #12] 80044be: 4613 mov r3, r2 80044c0: 009b lsls r3, r3, #2 80044c2: 4413 add r3, r2 80044c4: 005b lsls r3, r3, #1 80044c6: 4618 mov r0, r3 80044c8: 693b ldr r3, [r7, #16] 80044ca: 2264 movs r2, #100 ; 0x64 80044cc: fb02 f303 mul.w r3, r2, r3 80044d0: 4403 add r3, r0 80044d2: 18ca adds r2, r1, r3 80044d4: 68bb ldr r3, [r7, #8] 80044d6: 4413 add r3, r2 80044d8: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 80044da: 4b92 ldr r3, [pc, #584] ; (8004724 ) 80044dc: 681b ldr r3, [r3, #0] 80044de: 69fa ldr r2, [r7, #28] 80044e0: ee07 2a90 vmov s15, r2 80044e4: eef8 7a67 vcvt.f32.u32 s15, s15 80044e8: 4a8f ldr r2, [pc, #572] ; (8004728 ) 80044ea: 015b lsls r3, r3, #5 80044ec: 4413 add r3, r2 80044ee: 3318 adds r3, #24 80044f0: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 80044f4: 687b ldr r3, [r7, #4] 80044f6: 2b01 cmp r3, #1 80044f8: d112 bne.n 8004520 80044fa: 4b8a ldr r3, [pc, #552] ; (8004724 ) 80044fc: 681b ldr r3, [r3, #0] 80044fe: 498a ldr r1, [pc, #552] ; (8004728 ) 8004500: 015a lsls r2, r3, #5 8004502: 440a add r2, r1 8004504: 3218 adds r2, #24 8004506: edd2 7a00 vldr s15, [r2] 800450a: ed9f 7a88 vldr s14, [pc, #544] ; 800472c 800450e: ee67 7a87 vmul.f32 s15, s15, s14 8004512: 4a85 ldr r2, [pc, #532] ; (8004728 ) 8004514: 015b lsls r3, r3, #5 8004516: 4413 add r3, r2 8004518: 3318 adds r3, #24 800451a: edc3 7a00 vstr s15, [r3] 800451e: e040 b.n 80045a2 else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8004520: 687b ldr r3, [r7, #4] 8004522: 2b02 cmp r3, #2 8004524: d112 bne.n 800454c 8004526: 4b7f ldr r3, [pc, #508] ; (8004724 ) 8004528: 681b ldr r3, [r3, #0] 800452a: 497f ldr r1, [pc, #508] ; (8004728 ) 800452c: 015a lsls r2, r3, #5 800452e: 440a add r2, r1 8004530: 3218 adds r2, #24 8004532: edd2 7a00 vldr s15, [r2] 8004536: ed9f 7a7e vldr s14, [pc, #504] ; 8004730 800453a: ee67 7a87 vmul.f32 s15, s15, s14 800453e: 4a7a ldr r2, [pc, #488] ; (8004728 ) 8004540: 015b lsls r3, r3, #5 8004542: 4413 add r3, r2 8004544: 3318 adds r3, #24 8004546: edc3 7a00 vstr s15, [r3] 800454a: e02a b.n 80045a2 else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 800454c: 687b ldr r3, [r7, #4] 800454e: 2b03 cmp r3, #3 8004550: d112 bne.n 8004578 8004552: 4b74 ldr r3, [pc, #464] ; (8004724 ) 8004554: 681b ldr r3, [r3, #0] 8004556: 4974 ldr r1, [pc, #464] ; (8004728 ) 8004558: 015a lsls r2, r3, #5 800455a: 440a add r2, r1 800455c: 3218 adds r2, #24 800455e: edd2 7a00 vldr s15, [r2] 8004562: ed9f 7a74 vldr s14, [pc, #464] ; 8004734 8004566: ee67 7a87 vmul.f32 s15, s15, s14 800456a: 4a6f ldr r2, [pc, #444] ; (8004728 ) 800456c: 015b lsls r3, r3, #5 800456e: 4413 add r3, r2 8004570: 3318 adds r3, #24 8004572: edc3 7a00 vstr s15, [r3] 8004576: e014 b.n 80045a2 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 8004578: 687b ldr r3, [r7, #4] 800457a: 2b04 cmp r3, #4 800457c: d111 bne.n 80045a2 800457e: 4b69 ldr r3, [pc, #420] ; (8004724 ) 8004580: 681b ldr r3, [r3, #0] 8004582: 4969 ldr r1, [pc, #420] ; (8004728 ) 8004584: 015a lsls r2, r3, #5 8004586: 440a add r2, r1 8004588: 3218 adds r2, #24 800458a: edd2 7a00 vldr s15, [r2] 800458e: ed9f 7a6a vldr s14, [pc, #424] ; 8004738 8004592: ee67 7a87 vmul.f32 s15, s15, s14 8004596: 4a64 ldr r2, [pc, #400] ; (8004728 ) 8004598: 015b lsls r3, r3, #5 800459a: 4413 add r3, r2 800459c: 3318 adds r3, #24 800459e: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //поправил 80045a2: 4b60 ldr r3, [pc, #384] ; (8004724 ) 80045a4: 681b ldr r3, [r3, #0] 80045a6: 4a60 ldr r2, [pc, #384] ; (8004728 ) 80045a8: 015b lsls r3, r3, #5 80045aa: 4413 add r3, r2 80045ac: 3318 adds r3, #24 80045ae: edd3 7a00 vldr s15, [r3] 80045b2: ed9f 7a60 vldr s14, [pc, #384] ; 8004734 80045b6: eef4 7ac7 vcmpe.f32 s15, s14 80045ba: eef1 fa10 vmrs APSR_nzcv, fpscr 80045be: d507 bpl.n 80045d0 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f; 80045c0: 4b58 ldr r3, [pc, #352] ; (8004724 ) 80045c2: 681b ldr r3, [r3, #0] 80045c4: 4a58 ldr r2, [pc, #352] ; (8004728 ) 80045c6: 015b lsls r3, r3, #5 80045c8: 4413 add r3, r2 80045ca: 3318 adds r3, #24 80045cc: 4a5b ldr r2, [pc, #364] ; (800473c ) 80045ce: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) { 80045d0: 4b54 ldr r3, [pc, #336] ; (8004724 ) 80045d2: 681b ldr r3, [r3, #0] 80045d4: 4a54 ldr r2, [pc, #336] ; (8004728 ) 80045d6: 015b lsls r3, r3, #5 80045d8: 4413 add r3, r2 80045da: 3318 adds r3, #24 80045dc: edd3 7a00 vldr s15, [r3] 80045e0: ed9f 7a57 vldr s14, [pc, #348] ; 8004740 80045e4: eef4 7ac7 vcmpe.f32 s15, s14 80045e8: eef1 fa10 vmrs APSR_nzcv, fpscr 80045ec: db07 blt.n 80045fe pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f; 80045ee: 4b4d ldr r3, [pc, #308] ; (8004724 ) 80045f0: 681b ldr r3, [r3, #0] 80045f2: 4a4d ldr r2, [pc, #308] ; (8004728 ) 80045f4: 015b lsls r3, r3, #5 80045f6: 4413 add r3, r2 80045f8: 3318 adds r3, #24 80045fa: 4a52 ldr r2, [pc, #328] ; (8004744 ) 80045fc: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 80045fe: 4b49 ldr r3, [pc, #292] ; (8004724 ) 8004600: 681b ldr r3, [r3, #0] 8004602: 4a49 ldr r2, [pc, #292] ; (8004728 ) 8004604: 015b lsls r3, r3, #5 8004606: 4413 add r3, r2 8004608: 3318 adds r3, #24 800460a: edd3 7a00 vldr s15, [r3] 800460e: eeb0 0a67 vmov.f32 s0, s15 8004612: f000 f8fb bl 800480c 8004616: e0e7 b.n 80047e8 } else if(menupos == Kpt_1 || menupos == Kpt_2 || menupos == Kpt_3 || menupos == Kpt_4) 8004618: 4b41 ldr r3, [pc, #260] ; (8004720 ) 800461a: 781b ldrb r3, [r3, #0] 800461c: b2db uxtb r3, r3 800461e: 2b07 cmp r3, #7 8004620: d00f beq.n 8004642 8004622: 4b3f ldr r3, [pc, #252] ; (8004720 ) 8004624: 781b ldrb r3, [r3, #0] 8004626: b2db uxtb r3, r3 8004628: 2b0f cmp r3, #15 800462a: d00a beq.n 8004642 800462c: 4b3c ldr r3, [pc, #240] ; (8004720 ) 800462e: 781b ldrb r3, [r3, #0] 8004630: b2db uxtb r3, r3 8004632: 2b17 cmp r3, #23 8004634: d005 beq.n 8004642 8004636: 4b3a ldr r3, [pc, #232] ; (8004720 ) 8004638: 781b ldrb r3, [r3, #0] 800463a: b2db uxtb r3, r3 800463c: 2b1f cmp r3, #31 800463e: f040 80d3 bne.w 80047e8 { if(ipt < 4) { 8004642: 687b ldr r3, [r7, #4] 8004644: 2b03 cmp r3, #3 8004646: d802 bhi.n 800464e ipt++; 8004648: 687b ldr r3, [r7, #4] 800464a: 3301 adds r3, #1 800464c: 607b str r3, [r7, #4] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 800464e: 69bb ldr r3, [r7, #24] 8004650: f242 7210 movw r2, #10000 ; 0x2710 8004654: fb02 f203 mul.w r2, r2, r3 8004658: 697b ldr r3, [r7, #20] 800465a: f44f 717a mov.w r1, #1000 ; 0x3e8 800465e: fb01 f303 mul.w r3, r1, r3 8004662: 18d1 adds r1, r2, r3 8004664: 68fa ldr r2, [r7, #12] 8004666: 4613 mov r3, r2 8004668: 009b lsls r3, r3, #2 800466a: 4413 add r3, r2 800466c: 005b lsls r3, r3, #1 800466e: 4618 mov r0, r3 8004670: 693b ldr r3, [r7, #16] 8004672: 2264 movs r2, #100 ; 0x64 8004674: fb02 f303 mul.w r3, r2, r3 8004678: 4403 add r3, r0 800467a: 18ca adds r2, r1, r3 800467c: 68bb ldr r3, [r7, #8] 800467e: 4413 add r3, r2 8004680: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 8004682: 4b28 ldr r3, [pc, #160] ; (8004724 ) 8004684: 681b ldr r3, [r3, #0] 8004686: 69fa ldr r2, [r7, #28] 8004688: ee07 2a90 vmov s15, r2 800468c: eef8 7a67 vcvt.f32.u32 s15, s15 8004690: 4a25 ldr r2, [pc, #148] ; (8004728 ) 8004692: 015b lsls r3, r3, #5 8004694: 4413 add r3, r2 8004696: 3318 adds r3, #24 8004698: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 800469c: 687b ldr r3, [r7, #4] 800469e: 2b01 cmp r3, #1 80046a0: d112 bne.n 80046c8 80046a2: 4b20 ldr r3, [pc, #128] ; (8004724 ) 80046a4: 681b ldr r3, [r3, #0] 80046a6: 4920 ldr r1, [pc, #128] ; (8004728 ) 80046a8: 015a lsls r2, r3, #5 80046aa: 440a add r2, r1 80046ac: 3218 adds r2, #24 80046ae: edd2 7a00 vldr s15, [r2] 80046b2: ed9f 7a1e vldr s14, [pc, #120] ; 800472c 80046b6: ee67 7a87 vmul.f32 s15, s15, s14 80046ba: 4a1b ldr r2, [pc, #108] ; (8004728 ) 80046bc: 015b lsls r3, r3, #5 80046be: 4413 add r3, r2 80046c0: 3318 adds r3, #24 80046c2: edc3 7a00 vstr s15, [r3] 80046c6: e054 b.n 8004772 else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 80046c8: 687b ldr r3, [r7, #4] 80046ca: 2b02 cmp r3, #2 80046cc: d112 bne.n 80046f4 80046ce: 4b15 ldr r3, [pc, #84] ; (8004724 ) 80046d0: 681b ldr r3, [r3, #0] 80046d2: 4915 ldr r1, [pc, #84] ; (8004728 ) 80046d4: 015a lsls r2, r3, #5 80046d6: 440a add r2, r1 80046d8: 3218 adds r2, #24 80046da: edd2 7a00 vldr s15, [r2] 80046de: ed9f 7a14 vldr s14, [pc, #80] ; 8004730 80046e2: ee67 7a87 vmul.f32 s15, s15, s14 80046e6: 4a10 ldr r2, [pc, #64] ; (8004728 ) 80046e8: 015b lsls r3, r3, #5 80046ea: 4413 add r3, r2 80046ec: 3318 adds r3, #24 80046ee: edc3 7a00 vstr s15, [r3] 80046f2: e03e b.n 8004772 else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 80046f4: 687b ldr r3, [r7, #4] 80046f6: 2b03 cmp r3, #3 80046f8: d126 bne.n 8004748 80046fa: 4b0a ldr r3, [pc, #40] ; (8004724 ) 80046fc: 681b ldr r3, [r3, #0] 80046fe: 490a ldr r1, [pc, #40] ; (8004728 ) 8004700: 015a lsls r2, r3, #5 8004702: 440a add r2, r1 8004704: 3218 adds r2, #24 8004706: edd2 7a00 vldr s15, [r2] 800470a: ed9f 7a0a vldr s14, [pc, #40] ; 8004734 800470e: ee67 7a87 vmul.f32 s15, s15, s14 8004712: 4a05 ldr r2, [pc, #20] ; (8004728 ) 8004714: 015b lsls r3, r3, #5 8004716: 4413 add r3, r2 8004718: 3318 adds r3, #24 800471a: edc3 7a00 vstr s15, [r3] 800471e: e028 b.n 8004772 8004720: 20020010 .word 0x20020010 8004724: 2006ba68 .word 0x2006ba68 8004728: 2006bca8 .word 0x2006bca8 800472c: 3dcccccd .word 0x3dcccccd 8004730: 3c23d70a .word 0x3c23d70a 8004734: 3a83126f .word 0x3a83126f 8004738: 38d1b717 .word 0x38d1b717 800473c: 3a83126f .word 0x3a83126f 8004740: 461c4000 .word 0x461c4000 8004744: 461c3c00 .word 0x461c3c00 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 8004748: 687b ldr r3, [r7, #4] 800474a: 2b04 cmp r3, #4 800474c: d111 bne.n 8004772 800474e: 4b28 ldr r3, [pc, #160] ; (80047f0 ) 8004750: 681b ldr r3, [r3, #0] 8004752: 4928 ldr r1, [pc, #160] ; (80047f4 ) 8004754: 015a lsls r2, r3, #5 8004756: 440a add r2, r1 8004758: 3218 adds r2, #24 800475a: edd2 7a00 vldr s15, [r2] 800475e: ed9f 7a26 vldr s14, [pc, #152] ; 80047f8 8004762: ee67 7a87 vmul.f32 s15, s15, s14 8004766: 4a23 ldr r2, [pc, #140] ; (80047f4 ) 8004768: 015b lsls r3, r3, #5 800476a: 4413 add r3, r2 800476c: 3318 adds r3, #24 800476e: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //поправил 8004772: 4b1f ldr r3, [pc, #124] ; (80047f0 ) 8004774: 681b ldr r3, [r3, #0] 8004776: 4a1f ldr r2, [pc, #124] ; (80047f4 ) 8004778: 015b lsls r3, r3, #5 800477a: 4413 add r3, r2 800477c: 3318 adds r3, #24 800477e: edd3 7a00 vldr s15, [r3] 8004782: ed9f 7a1e vldr s14, [pc, #120] ; 80047fc 8004786: eef4 7ac7 vcmpe.f32 s15, s14 800478a: eef1 fa10 vmrs APSR_nzcv, fpscr 800478e: d507 bpl.n 80047a0 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f; 8004790: 4b17 ldr r3, [pc, #92] ; (80047f0 ) 8004792: 681b ldr r3, [r3, #0] 8004794: 4a17 ldr r2, [pc, #92] ; (80047f4 ) 8004796: 015b lsls r3, r3, #5 8004798: 4413 add r3, r2 800479a: 3318 adds r3, #24 800479c: 4a18 ldr r2, [pc, #96] ; (8004800 ) 800479e: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) { 80047a0: 4b13 ldr r3, [pc, #76] ; (80047f0 ) 80047a2: 681b ldr r3, [r3, #0] 80047a4: 4a13 ldr r2, [pc, #76] ; (80047f4 ) 80047a6: 015b lsls r3, r3, #5 80047a8: 4413 add r3, r2 80047aa: 3318 adds r3, #24 80047ac: edd3 7a00 vldr s15, [r3] 80047b0: ed9f 7a14 vldr s14, [pc, #80] ; 8004804 80047b4: eef4 7ac7 vcmpe.f32 s15, s14 80047b8: eef1 fa10 vmrs APSR_nzcv, fpscr 80047bc: db07 blt.n 80047ce pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f; 80047be: 4b0c ldr r3, [pc, #48] ; (80047f0 ) 80047c0: 681b ldr r3, [r3, #0] 80047c2: 4a0c ldr r2, [pc, #48] ; (80047f4 ) 80047c4: 015b lsls r3, r3, #5 80047c6: 4413 add r3, r2 80047c8: 3318 adds r3, #24 80047ca: 4a0f ldr r2, [pc, #60] ; (8004808 ) 80047cc: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 80047ce: 4b08 ldr r3, [pc, #32] ; (80047f0 ) 80047d0: 681b ldr r3, [r3, #0] 80047d2: 4a08 ldr r2, [pc, #32] ; (80047f4 ) 80047d4: 015b lsls r3, r3, #5 80047d6: 4413 add r3, r2 80047d8: 3318 adds r3, #24 80047da: edd3 7a00 vldr s15, [r3] 80047de: eeb0 0a67 vmov.f32 s0, s15 80047e2: f000 f813 bl 800480c pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f; } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); }*/ } 80047e6: e7ff b.n 80047e8 80047e8: bf00 nop 80047ea: 3720 adds r7, #32 80047ec: 46bd mov sp, r7 80047ee: bd80 pop {r7, pc} 80047f0: 2006ba68 .word 0x2006ba68 80047f4: 2006bca8 .word 0x2006bca8 80047f8: 38d1b717 .word 0x38d1b717 80047fc: 3a83126f .word 0x3a83126f 8004800: 3a83126f .word 0x3a83126f 8004804: 461c4000 .word 0x461c4000 8004808: 461c3c00 .word 0x461c3c00 0800480c : void VerifyGain(float32_t sens) { 800480c: b480 push {r7} 800480e: b083 sub sp, #12 8004810: af00 add r7, sp, #0 8004812: ed87 0a01 vstr s0, [r7, #4] return; //!!!Отключил 8004816: bf00 nop if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku0_1) { pardata.amplif[ACTIVE_CHANNEL].IKU = Ku0_1; } } } 8004818: 370c adds r7, #12 800481a: 46bd mov sp, r7 800481c: f85d 7b04 ldr.w r7, [sp], #4 8004820: 4770 bx lr ... 08004824 : } void LTDC_Reset(void) { 8004824: b580 push {r7, lr} 8004826: af00 add r7, sp, #0 HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_SET); HAL_Delay(100); 8004828: 2201 movs r2, #1 800482a: 2140 movs r1, #64 ; 0x40 800482c: 480b ldr r0, [pc, #44] ; (800485c ) 800482e: f00e fa0d bl 8012c4c 8004832: 2064 movs r0, #100 ; 0x64 8004834: f00c fede bl 80115f4 HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_RESET); HAL_Delay(100); 8004838: 2200 movs r2, #0 800483a: 2140 movs r1, #64 ; 0x40 800483c: 4807 ldr r0, [pc, #28] ; (800485c ) 800483e: f00e fa05 bl 8012c4c 8004842: 2064 movs r0, #100 ; 0x64 8004844: f00c fed6 bl 80115f4 HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_SET); HAL_Delay(100); 8004848: 2201 movs r2, #1 800484a: 2140 movs r1, #64 ; 0x40 800484c: 4803 ldr r0, [pc, #12] ; (800485c ) 800484e: f00e f9fd bl 8012c4c 8004852: 2064 movs r0, #100 ; 0x64 8004854: f00c fece bl 80115f4 } 8004858: bf00 nop 800485a: bd80 pop {r7, pc} 800485c: 40020c00 .word 0x40020c00 08004860 : /* LTDC init function */ void MX_LTDC_Init(void) { 8004860: b580 push {r7, lr} 8004862: b09c sub sp, #112 ; 0x70 8004864: af00 add r7, sp, #0 __IO uint32_t tickstart; // SET_BIT(RCC->CR, RCC_CR_PLLSAION); // HAL_Delay(100); LTDC_Reset(); 8004866: f7ff ffdd bl 8004824 __HAL_RCC_PLLSAI_ENABLE(); 800486a: 4a8c ldr r2, [pc, #560] ; (8004a9c ) 800486c: 4b8b ldr r3, [pc, #556] ; (8004a9c ) 800486e: 681b ldr r3, [r3, #0] 8004870: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 8004874: 6013 str r3, [r2, #0] tickstart = HAL_GetTick(); 8004876: f00c feb1 bl 80115dc 800487a: 4603 mov r3, r0 800487c: 607b str r3, [r7, #4] while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET) 800487e: e008 b.n 8004892 { if((HAL_GetTick() - tickstart) >= PLLSAI_TIMEOUT_VALUE) { 8004880: f00c feac bl 80115dc 8004884: 4602 mov r2, r0 8004886: 687b ldr r3, [r7, #4] 8004888: 1ad3 subs r3, r2, r3 800488a: 2b63 cmp r3, #99 ; 0x63 800488c: d901 bls.n 8004892 Error_Handler(); 800488e: f001 fae9 bl 8005e64 while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET) 8004892: 4b82 ldr r3, [pc, #520] ; (8004a9c ) 8004894: 681b ldr r3, [r3, #0] 8004896: f003 5300 and.w r3, r3, #536870912 ; 0x20000000 800489a: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000 800489e: d1ef bne.n 8004880 } } hLtdcHandler.Instance = LTDC; 80048a0: 4b7f ldr r3, [pc, #508] ; (8004aa0 ) 80048a2: 4a80 ldr r2, [pc, #512] ; (8004aa4 ) 80048a4: 601a str r2, [r3, #0] hLtdcHandler.Init.HSPolarity = LTDC_HSPOLARITY_AL; 80048a6: 4b7e ldr r3, [pc, #504] ; (8004aa0 ) 80048a8: 2200 movs r2, #0 80048aa: 605a str r2, [r3, #4] hLtdcHandler.Init.VSPolarity = LTDC_VSPOLARITY_AL; 80048ac: 4b7c ldr r3, [pc, #496] ; (8004aa0 ) 80048ae: 2200 movs r2, #0 80048b0: 609a str r2, [r3, #8] hLtdcHandler.Init.DEPolarity = LTDC_DEPOLARITY_AH; 80048b2: 4b7b ldr r3, [pc, #492] ; (8004aa0 ) 80048b4: f04f 5200 mov.w r2, #536870912 ; 0x20000000 80048b8: 60da str r2, [r3, #12] hLtdcHandler.Init.PCPolarity = LTDC_PCPOLARITY_IPC; 80048ba: 4b79 ldr r3, [pc, #484] ; (8004aa0 ) 80048bc: 2200 movs r2, #0 80048be: 611a str r2, [r3, #16] hLtdcHandler.Init.HorizontalSync = 38; 80048c0: 4b77 ldr r3, [pc, #476] ; (8004aa0 ) 80048c2: 2226 movs r2, #38 ; 0x26 80048c4: 615a str r2, [r3, #20] hLtdcHandler.Init.VerticalSync = 4; 80048c6: 4b76 ldr r3, [pc, #472] ; (8004aa0 ) 80048c8: 2204 movs r2, #4 80048ca: 619a str r2, [r3, #24] hLtdcHandler.Init.AccumulatedHBP = 68; 80048cc: 4b74 ldr r3, [pc, #464] ; (8004aa0 ) 80048ce: 2244 movs r2, #68 ; 0x44 80048d0: 61da str r2, [r3, #28] hLtdcHandler.Init.AccumulatedVBP = 18; 80048d2: 4b73 ldr r3, [pc, #460] ; (8004aa0 ) 80048d4: 2212 movs r2, #18 80048d6: 621a str r2, [r3, #32] hLtdcHandler.Init.AccumulatedActiveW = 388; 80048d8: 4b71 ldr r3, [pc, #452] ; (8004aa0 ) 80048da: f44f 72c2 mov.w r2, #388 ; 0x184 80048de: 625a str r2, [r3, #36] ; 0x24 hLtdcHandler.Init.AccumulatedActiveH = 262; 80048e0: 4b6f ldr r3, [pc, #444] ; (8004aa0 ) 80048e2: f44f 7283 mov.w r2, #262 ; 0x106 80048e6: 629a str r2, [r3, #40] ; 0x28 hLtdcHandler.Init.TotalWidth = 408; 80048e8: 4b6d ldr r3, [pc, #436] ; (8004aa0 ) 80048ea: f44f 72cc mov.w r2, #408 ; 0x198 80048ee: 62da str r2, [r3, #44] ; 0x2c hLtdcHandler.Init.TotalHeigh = 263; 80048f0: 4b6b ldr r3, [pc, #428] ; (8004aa0 ) 80048f2: f240 1207 movw r2, #263 ; 0x107 80048f6: 631a str r2, [r3, #48] ; 0x30 hLtdcHandler.Init.Backcolor.Blue = 0; 80048f8: 4b69 ldr r3, [pc, #420] ; (8004aa0 ) 80048fa: 2200 movs r2, #0 80048fc: f883 2034 strb.w r2, [r3, #52] ; 0x34 hLtdcHandler.Init.Backcolor.Green = 0; 8004900: 4b67 ldr r3, [pc, #412] ; (8004aa0 ) 8004902: 2200 movs r2, #0 8004904: f883 2035 strb.w r2, [r3, #53] ; 0x35 hLtdcHandler.Init.Backcolor.Red = 0; 8004908: 4b65 ldr r3, [pc, #404] ; (8004aa0 ) 800490a: 2200 movs r2, #0 800490c: f883 2036 strb.w r2, [r3, #54] ; 0x36 if (HAL_LTDC_Init(&hLtdcHandler) != HAL_OK) { 8004910: 4863 ldr r0, [pc, #396] ; (8004aa0 ) 8004912: f00e f9cd bl 8012cb0 8004916: 4603 mov r3, r0 8004918: 2b00 cmp r3, #0 800491a: d001 beq.n 8004920 Error_Handler(); 800491c: f001 faa2 bl 8005e64 } pLayerCfg.WindowX0 = 0; 8004920: 2300 movs r3, #0 8004922: 63fb str r3, [r7, #60] ; 0x3c pLayerCfg.WindowX1 = 320; 8004924: f44f 73a0 mov.w r3, #320 ; 0x140 8004928: 643b str r3, [r7, #64] ; 0x40 pLayerCfg.WindowY0 = 0; 800492a: 2300 movs r3, #0 800492c: 647b str r3, [r7, #68] ; 0x44 pLayerCfg.WindowY1 = 240; 800492e: 23f0 movs r3, #240 ; 0xf0 8004930: 64bb str r3, [r7, #72] ; 0x48 pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565; 8004932: 2302 movs r3, #2 8004934: 64fb str r3, [r7, #76] ; 0x4c pLayerCfg.Alpha = 255; 8004936: 23ff movs r3, #255 ; 0xff 8004938: 653b str r3, [r7, #80] ; 0x50 pLayerCfg.Alpha0 = 0; 800493a: 2300 movs r3, #0 800493c: 657b str r3, [r7, #84] ; 0x54 pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA; 800493e: f44f 63c0 mov.w r3, #1536 ; 0x600 8004942: 65bb str r3, [r7, #88] ; 0x58 pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA; 8004944: 2307 movs r3, #7 8004946: 65fb str r3, [r7, #92] ; 0x5c pLayerCfg.FBStartAdress = (uint32_t) &LAYER_1[0]; 8004948: 4b57 ldr r3, [pc, #348] ; (8004aa8 ) 800494a: 663b str r3, [r7, #96] ; 0x60 pLayerCfg.ImageWidth = 320; 800494c: f44f 73a0 mov.w r3, #320 ; 0x140 8004950: 667b str r3, [r7, #100] ; 0x64 pLayerCfg.ImageHeight = 240; 8004952: 23f0 movs r3, #240 ; 0xf0 8004954: 66bb str r3, [r7, #104] ; 0x68 pLayerCfg.Backcolor.Blue = 0; 8004956: 2300 movs r3, #0 8004958: f887 306c strb.w r3, [r7, #108] ; 0x6c pLayerCfg.Backcolor.Green = 0; 800495c: 2300 movs r3, #0 800495e: f887 306d strb.w r3, [r7, #109] ; 0x6d pLayerCfg.Backcolor.Red = 0; 8004962: 2300 movs r3, #0 8004964: f887 306e strb.w r3, [r7, #110] ; 0x6e if(HAL_LTDC_ConfigLayer(&hLtdcHandler, &pLayerCfg, 0) != HAL_OK) { 8004968: f107 033c add.w r3, r7, #60 ; 0x3c 800496c: 2200 movs r2, #0 800496e: 4619 mov r1, r3 8004970: 484b ldr r0, [pc, #300] ; (8004aa0 ) 8004972: f00e fb25 bl 8012fc0 8004976: 4603 mov r3, r0 8004978: 2b00 cmp r3, #0 800497a: d001 beq.n 8004980 Error_Handler(); 800497c: f001 fa72 bl 8005e64 } pLayerCfg1.WindowX0 = 0; 8004980: 2300 movs r3, #0 8004982: 60bb str r3, [r7, #8] pLayerCfg1.WindowX1 = 320; 8004984: f44f 73a0 mov.w r3, #320 ; 0x140 8004988: 60fb str r3, [r7, #12] pLayerCfg1.WindowY0 = 0; 800498a: 2300 movs r3, #0 800498c: 613b str r3, [r7, #16] pLayerCfg1.WindowY1 = 240; 800498e: 23f0 movs r3, #240 ; 0xf0 8004990: 617b str r3, [r7, #20] pLayerCfg1.PixelFormat = LTDC_PIXEL_FORMAT_RGB565; 8004992: 2302 movs r3, #2 8004994: 61bb str r3, [r7, #24] pLayerCfg1.Alpha = 255; 8004996: 23ff movs r3, #255 ; 0xff 8004998: 61fb str r3, [r7, #28] pLayerCfg1.Alpha0 = 0; 800499a: 2300 movs r3, #0 800499c: 623b str r3, [r7, #32] pLayerCfg1.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA; 800499e: f44f 63c0 mov.w r3, #1536 ; 0x600 80049a2: 627b str r3, [r7, #36] ; 0x24 pLayerCfg1.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA; 80049a4: 2307 movs r3, #7 80049a6: 62bb str r3, [r7, #40] ; 0x28 pLayerCfg1.FBStartAdress = (uint32_t) &LAYER_2[0]; 80049a8: 4b40 ldr r3, [pc, #256] ; (8004aac ) 80049aa: 62fb str r3, [r7, #44] ; 0x2c pLayerCfg1.ImageWidth = 320; 80049ac: f44f 73a0 mov.w r3, #320 ; 0x140 80049b0: 633b str r3, [r7, #48] ; 0x30 pLayerCfg1.ImageHeight = 240; 80049b2: 23f0 movs r3, #240 ; 0xf0 80049b4: 637b str r3, [r7, #52] ; 0x34 pLayerCfg1.Backcolor.Blue = 0; 80049b6: 2300 movs r3, #0 80049b8: f887 3038 strb.w r3, [r7, #56] ; 0x38 pLayerCfg1.Backcolor.Green = 0; 80049bc: 2300 movs r3, #0 80049be: f887 3039 strb.w r3, [r7, #57] ; 0x39 pLayerCfg1.Backcolor.Red = 0; 80049c2: 2300 movs r3, #0 80049c4: f887 303a strb.w r3, [r7, #58] ; 0x3a if(HAL_LTDC_ConfigLayer(&hLtdcHandler, &pLayerCfg1, 1) != HAL_OK) { 80049c8: f107 0308 add.w r3, r7, #8 80049cc: 2201 movs r2, #1 80049ce: 4619 mov r1, r3 80049d0: 4833 ldr r0, [pc, #204] ; (8004aa0 ) 80049d2: f00e faf5 bl 8012fc0 80049d6: 4603 mov r3, r0 80049d8: 2b00 cmp r3, #0 80049da: d001 beq.n 80049e0 Error_Handler(); 80049dc: f001 fa42 bl 8005e64 } //HAL_LTDC_EnableCLUT(&hLtdcHandler, 0); //HAL_LTDC_EnableCLUT(&hLtdcHandler, 1); ActiveLayer = 1; 80049e0: 4b33 ldr r3, [pc, #204] ; (8004ab0 ) 80049e2: 2201 movs r2, #1 80049e4: 601a str r2, [r3, #0] RenderingLayer = 0; 80049e6: 4b33 ldr r3, [pc, #204] ; (8004ab4 ) 80049e8: 2200 movs r2, #0 80049ea: 601a str r2, [r3, #0] BSP_LCD_DisplayOff(); 80049ec: f000 f87a bl 8004ae4 BSP_LCD_SelectLayer(0); 80049f0: 2000 movs r0, #0 80049f2: f000 f961 bl 8004cb8 BSP_LCD_Clear(0xFF000000); 80049f6: f04f 407f mov.w r0, #4278190080 ; 0xff000000 80049fa: f000 fa3f bl 8004e7c BSP_LCD_SelectLayer(1); 80049fe: 2001 movs r0, #1 8004a00: f000 f95a bl 8004cb8 BSP_LCD_Clear(0xFF000000); 8004a04: f04f 407f mov.w r0, #4278190080 ; 0xff000000 8004a08: f000 fa38 bl 8004e7c BSP_LCD_SetLayerVisible(RenderingLayer, DISABLE); 8004a0c: 4b29 ldr r3, [pc, #164] ; (8004ab4 ) 8004a0e: 681b ldr r3, [r3, #0] 8004a10: 2100 movs r1, #0 8004a12: 4618 mov r0, r3 8004a14: f000 f960 bl 8004cd8 BSP_LCD_SetLayerVisible(ActiveLayer, DISABLE); 8004a18: 4b25 ldr r3, [pc, #148] ; (8004ab0 ) 8004a1a: 681b ldr r3, [r3, #0] 8004a1c: 2100 movs r1, #0 8004a1e: 4618 mov r0, r3 8004a20: f000 f95a bl 8004cd8 HAL_LTDC_Reload(&hLtdcHandler, LTDC_RELOAD_IMMEDIATE); 8004a24: 2101 movs r1, #1 8004a26: 481e ldr r0, [pc, #120] ; (8004aa0 ) 8004a28: f00e fb40 bl 80130ac DrawProp[0].BackColor = LCD_COLOR_BLACK; 8004a2c: 4b22 ldr r3, [pc, #136] ; (8004ab8 ) 8004a2e: f04f 427f mov.w r2, #4278190080 ; 0xff000000 8004a32: 605a str r2, [r3, #4] DrawProp[0].pFont = &Font17; 8004a34: 4b20 ldr r3, [pc, #128] ; (8004ab8 ) 8004a36: 4a21 ldr r2, [pc, #132] ; (8004abc ) 8004a38: 609a str r2, [r3, #8] DrawProp[0].TextColor = LCD_COLOR_WHITE; 8004a3a: 4b1f ldr r3, [pc, #124] ; (8004ab8 ) 8004a3c: f04f 32ff mov.w r2, #4294967295 8004a40: 601a str r2, [r3, #0] DrawProp[1].BackColor = LCD_COLOR_BLACK; 8004a42: 4b1d ldr r3, [pc, #116] ; (8004ab8 ) 8004a44: f04f 427f mov.w r2, #4278190080 ; 0xff000000 8004a48: 611a str r2, [r3, #16] DrawProp[1].pFont = &Font17; 8004a4a: 4b1b ldr r3, [pc, #108] ; (8004ab8 ) 8004a4c: 4a1b ldr r2, [pc, #108] ; (8004abc ) 8004a4e: 615a str r2, [r3, #20] DrawProp[1].TextColor = LCD_COLOR_WHITE; 8004a50: 4b19 ldr r3, [pc, #100] ; (8004ab8 ) 8004a52: f04f 32ff mov.w r2, #4294967295 8004a56: 60da str r2, [r3, #12] CurrentFont = &Font17; 8004a58: 4b19 ldr r3, [pc, #100] ; (8004ac0 ) 8004a5a: 4a18 ldr r2, [pc, #96] ; (8004abc ) 8004a5c: 601a str r2, [r3, #0] BSP_LCD_DisplayOn(); 8004a5e: f000 f835 bl 8004acc HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_SET); // BACKLIGHT IS OFF 8004a62: 2201 movs r2, #1 8004a64: f44f 7180 mov.w r1, #256 ; 0x100 8004a68: 4816 ldr r0, [pc, #88] ; (8004ac4 ) 8004a6a: f00e f8ef bl 8012c4c RefreshScreen = true; 8004a6e: 4b16 ldr r3, [pc, #88] ; (8004ac8 ) 8004a70: 2201 movs r2, #1 8004a72: 701a strb r2, [r3, #0] HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 255); 8004a74: 21ff movs r1, #255 ; 0xff 8004a76: 480a ldr r0, [pc, #40] ; (8004aa0 ) 8004a78: f00e fae0 bl 801303c while(RefreshScreen); 8004a7c: bf00 nop 8004a7e: 4b12 ldr r3, [pc, #72] ; (8004ac8 ) 8004a80: 781b ldrb r3, [r3, #0] 8004a82: b2db uxtb r3, r3 8004a84: 2b00 cmp r3, #0 8004a86: d1fa bne.n 8004a7e BSP_LCD_SetLayerVisible(RenderingLayer, ENABLE); 8004a88: 4b0a ldr r3, [pc, #40] ; (8004ab4 ) 8004a8a: 681b ldr r3, [r3, #0] 8004a8c: 2101 movs r1, #1 8004a8e: 4618 mov r0, r3 8004a90: f000 f922 bl 8004cd8 } 8004a94: bf00 nop 8004a96: 3770 adds r7, #112 ; 0x70 8004a98: 46bd mov sp, r7 8004a9a: bd80 pop {r7, pc} 8004a9c: 40023800 .word 0x40023800 8004aa0: 2006c174 .word 0x2006c174 8004aa4: 40016800 .word 0x40016800 8004aa8: 200209ec .word 0x200209ec 8004aac: 200461ec .word 0x200461ec 8004ab0: 20020018 .word 0x20020018 8004ab4: 2006ba5c .word 0x2006ba5c 8004ab8: 2006ba44 .word 0x2006ba44 8004abc: 20020008 .word 0x20020008 8004ac0: 2006c170 .word 0x2006c170 8004ac4: 40020000 .word 0x40020000 8004ac8: 2006ba60 .word 0x2006ba60 08004acc : void BSP_LCD_DisplayOn(void) { 8004acc: b580 push {r7, lr} 8004ace: af00 add r7, sp, #0 //__HAL_LTDC_ENABLE(&hLtdcHandler); HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_SET); // DISPLAY_ON 8004ad0: 2201 movs r2, #1 8004ad2: f44f 6180 mov.w r1, #1024 ; 0x400 8004ad6: 4802 ldr r0, [pc, #8] ; (8004ae0 ) 8004ad8: f00e f8b8 bl 8012c4c } 8004adc: bf00 nop 8004ade: bd80 pop {r7, pc} 8004ae0: 40021400 .word 0x40021400 08004ae4 : /** * @brief Disables the display. * @retval None */ void BSP_LCD_DisplayOff(void) { 8004ae4: b580 push {r7, lr} 8004ae6: af00 add r7, sp, #0 //__HAL_LTDC_DISABLE(&hLtdcHandler); HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_RESET); // DISPLAY_OFF 8004ae8: 2200 movs r2, #0 8004aea: f44f 6180 mov.w r1, #1024 ; 0x400 8004aee: 4802 ldr r0, [pc, #8] ; (8004af8 ) 8004af0: f00e f8ac bl 8012c4c } 8004af4: bf00 nop 8004af6: bd80 pop {r7, pc} 8004af8: 40021400 .word 0x40021400 08004afc : void HAL_LTDC_MspInit(LTDC_HandleTypeDef* ltdcHandle) { 8004afc: b580 push {r7, lr} 8004afe: b088 sub sp, #32 8004b00: af00 add r7, sp, #0 8004b02: 6078 str r0, [r7, #4] GPIO_InitTypeDef GPIO_InitStruct; if(ltdcHandle->Instance == LTDC) 8004b04: 687b ldr r3, [r7, #4] 8004b06: 681b ldr r3, [r3, #0] 8004b08: 4a4f ldr r2, [pc, #316] ; (8004c48 ) 8004b0a: 4293 cmp r3, r2 8004b0c: f040 8097 bne.w 8004c3e { __HAL_RCC_LTDC_CLK_ENABLE(); 8004b10: 4a4e ldr r2, [pc, #312] ; (8004c4c ) 8004b12: 4b4e ldr r3, [pc, #312] ; (8004c4c ) 8004b14: 6c5b ldr r3, [r3, #68] ; 0x44 8004b16: f043 6380 orr.w r3, r3, #67108864 ; 0x4000000 8004b1a: 6453 str r3, [r2, #68] ; 0x44 8004b1c: 4b4b ldr r3, [pc, #300] ; (8004c4c ) 8004b1e: 6c5b ldr r3, [r3, #68] ; 0x44 8004b20: f003 6380 and.w r3, r3, #67108864 ; 0x4000000 8004b24: 60bb str r3, [r7, #8] 8004b26: 68bb ldr r3, [r7, #8] PG7 ------> LTDC_CLK PG10 ------> LTDC_G3 PG11 ------> LTDC_B3 PG12 ------> LTDC_B4 */ GPIO_InitStruct.Pin = GPIO_PIN_10; 8004b28: f44f 6380 mov.w r3, #1024 ; 0x400 8004b2c: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 8004b2e: 2301 movs r3, #1 8004b30: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 8004b32: 2300 movs r3, #0 8004b34: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 8004b36: 2303 movs r3, #3 8004b38: 61bb str r3, [r7, #24] HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); 8004b3a: f107 030c add.w r3, r7, #12 8004b3e: 4619 mov r1, r3 8004b40: 4843 ldr r0, [pc, #268] ; (8004c50 ) 8004b42: f00d fec1 bl 80128c8 GPIO_InitStruct.Pin = GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_6 | GPIO_PIN_11 |GPIO_PIN_12; 8004b46: f641 0358 movw r3, #6232 ; 0x1858 8004b4a: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 8004b4c: 2302 movs r3, #2 8004b4e: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 8004b50: 2300 movs r3, #0 8004b52: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 8004b54: 2303 movs r3, #3 8004b56: 61bb str r3, [r7, #24] GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; 8004b58: 230e movs r3, #14 8004b5a: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); 8004b5c: f107 030c add.w r3, r7, #12 8004b60: 4619 mov r1, r3 8004b62: 483c ldr r0, [pc, #240] ; (8004c54 ) 8004b64: f00d feb0 bl 80128c8 GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1; 8004b68: 2303 movs r3, #3 8004b6a: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 8004b6c: 2302 movs r3, #2 8004b6e: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 8004b70: 2300 movs r3, #0 8004b72: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 8004b74: 2303 movs r3, #3 8004b76: 61bb str r3, [r7, #24] GPIO_InitStruct.Alternate = GPIO_AF9_LTDC; 8004b78: 2309 movs r3, #9 8004b7a: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 8004b7c: f107 030c add.w r3, r7, #12 8004b80: 4619 mov r1, r3 8004b82: 4835 ldr r0, [pc, #212] ; (8004c58 ) 8004b84: f00d fea0 bl 80128c8 GPIO_InitStruct.Pin = GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_8 | GPIO_PIN_9; 8004b88: f44f 6370 mov.w r3, #3840 ; 0xf00 8004b8c: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 8004b8e: 2302 movs r3, #2 8004b90: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 8004b92: 2300 movs r3, #0 8004b94: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 8004b96: 2303 movs r3, #3 8004b98: 61bb str r3, [r7, #24] GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; 8004b9a: 230e movs r3, #14 8004b9c: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 8004b9e: f107 030c add.w r3, r7, #12 8004ba2: 4619 mov r1, r3 8004ba4: 482c ldr r0, [pc, #176] ; (8004c58 ) 8004ba6: f00d fe8f bl 80128c8 GPIO_InitStruct.Pin = GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_11; 8004baa: f44f 630c mov.w r3, #2240 ; 0x8c0 8004bae: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 8004bb0: 2302 movs r3, #2 8004bb2: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 8004bb4: 2300 movs r3, #0 8004bb6: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 8004bb8: 2303 movs r3, #3 8004bba: 61bb str r3, [r7, #24] GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; 8004bbc: 230e movs r3, #14 8004bbe: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); 8004bc0: f107 030c add.w r3, r7, #12 8004bc4: 4619 mov r1, r3 8004bc6: 4825 ldr r0, [pc, #148] ; (8004c5c ) 8004bc8: f00d fe7e bl 80128c8 GPIO_InitStruct.Pin = GPIO_PIN_6 | GPIO_PIN_7; 8004bcc: 23c0 movs r3, #192 ; 0xc0 8004bce: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 8004bd0: 2302 movs r3, #2 8004bd2: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 8004bd4: 2300 movs r3, #0 8004bd6: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 8004bd8: 2303 movs r3, #3 8004bda: 61bb str r3, [r7, #24] GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; 8004bdc: 230e movs r3, #14 8004bde: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); 8004be0: f107 030c add.w r3, r7, #12 8004be4: 4619 mov r1, r3 8004be6: 481e ldr r0, [pc, #120] ; (8004c60 ) 8004be8: f00d fe6e bl 80128c8 GPIO_InitStruct.Pin = GPIO_PIN_3; 8004bec: 2308 movs r3, #8 8004bee: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 8004bf0: 2302 movs r3, #2 8004bf2: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 8004bf4: 2300 movs r3, #0 8004bf6: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 8004bf8: 2303 movs r3, #3 8004bfa: 61bb str r3, [r7, #24] GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; 8004bfc: 230e movs r3, #14 8004bfe: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); 8004c00: f107 030c add.w r3, r7, #12 8004c04: 4619 mov r1, r3 8004c06: 4817 ldr r0, [pc, #92] ; (8004c64 ) 8004c08: f00d fe5e bl 80128c8 GPIO_InitStruct.Pin = GPIO_PIN_10 | GPIO_PIN_12; 8004c0c: f44f 53a0 mov.w r3, #5120 ; 0x1400 8004c10: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 8004c12: 2302 movs r3, #2 8004c14: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 8004c16: 2300 movs r3, #0 8004c18: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 8004c1a: 2303 movs r3, #3 8004c1c: 61bb str r3, [r7, #24] GPIO_InitStruct.Alternate = GPIO_AF9_LTDC; 8004c1e: 2309 movs r3, #9 8004c20: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); 8004c22: f107 030c add.w r3, r7, #12 8004c26: 4619 mov r1, r3 8004c28: 480c ldr r0, [pc, #48] ; (8004c5c ) 8004c2a: f00d fe4d bl 80128c8 HAL_NVIC_SetPriority(LTDC_IRQn, 6, 0); 8004c2e: 2200 movs r2, #0 8004c30: 2106 movs r1, #6 8004c32: 2058 movs r0, #88 ; 0x58 8004c34: f00c fdfb bl 801182e HAL_NVIC_EnableIRQ(LTDC_IRQn); 8004c38: 2058 movs r0, #88 ; 0x58 8004c3a: f00c fe14 bl 8011866 } } 8004c3e: bf00 nop 8004c40: 3720 adds r7, #32 8004c42: 46bd mov sp, r7 8004c44: bd80 pop {r7, pc} 8004c46: bf00 nop 8004c48: 40016800 .word 0x40016800 8004c4c: 40023800 .word 0x40023800 8004c50: 40021400 .word 0x40021400 8004c54: 40020000 .word 0x40020000 8004c58: 40020400 .word 0x40020400 8004c5c: 40021800 .word 0x40021800 8004c60: 40020800 .word 0x40020800 8004c64: 40020c00 .word 0x40020c00 08004c68 : HAL_NVIC_DisableIRQ(LTDC_IRQn); } } uint32_t BSP_LCD_GetXSize(void) { 8004c68: b480 push {r7} 8004c6a: af00 add r7, sp, #0 return hLtdcHandler.LayerCfg[ActiveLayer].ImageWidth; 8004c6c: 4b06 ldr r3, [pc, #24] ; (8004c88 ) 8004c6e: 681b ldr r3, [r3, #0] 8004c70: 4a06 ldr r2, [pc, #24] ; (8004c8c ) 8004c72: 2134 movs r1, #52 ; 0x34 8004c74: fb01 f303 mul.w r3, r1, r3 8004c78: 4413 add r3, r2 8004c7a: 3360 adds r3, #96 ; 0x60 8004c7c: 681b ldr r3, [r3, #0] } 8004c7e: 4618 mov r0, r3 8004c80: 46bd mov sp, r7 8004c82: f85d 7b04 ldr.w r7, [sp], #4 8004c86: 4770 bx lr 8004c88: 20020018 .word 0x20020018 8004c8c: 2006c174 .word 0x2006c174 08004c90 : /** * @brief Gets the LCD Y size. * @retval Used LCD Y size */ uint32_t BSP_LCD_GetYSize(void) { 8004c90: b480 push {r7} 8004c92: af00 add r7, sp, #0 return hLtdcHandler.LayerCfg[ActiveLayer].ImageHeight; 8004c94: 4b06 ldr r3, [pc, #24] ; (8004cb0 ) 8004c96: 681b ldr r3, [r3, #0] 8004c98: 4a06 ldr r2, [pc, #24] ; (8004cb4 ) 8004c9a: 2134 movs r1, #52 ; 0x34 8004c9c: fb01 f303 mul.w r3, r1, r3 8004ca0: 4413 add r3, r2 8004ca2: 3364 adds r3, #100 ; 0x64 8004ca4: 681b ldr r3, [r3, #0] } 8004ca6: 4618 mov r0, r3 8004ca8: 46bd mov sp, r7 8004caa: f85d 7b04 ldr.w r7, [sp], #4 8004cae: 4770 bx lr 8004cb0: 20020018 .word 0x20020018 8004cb4: 2006c174 .word 0x2006c174 08004cb8 : { hLtdcHandler.LayerCfg[ActiveLayer].ImageHeight = imageHeightPixels; } void BSP_LCD_SelectLayer(uint32_t LayerIndex) { 8004cb8: b480 push {r7} 8004cba: b083 sub sp, #12 8004cbc: af00 add r7, sp, #0 8004cbe: 6078 str r0, [r7, #4] ActiveLayer = LayerIndex; 8004cc0: 4a04 ldr r2, [pc, #16] ; (8004cd4 ) 8004cc2: 687b ldr r3, [r7, #4] 8004cc4: 6013 str r3, [r2, #0] } 8004cc6: bf00 nop 8004cc8: 370c adds r7, #12 8004cca: 46bd mov sp, r7 8004ccc: f85d 7b04 ldr.w r7, [sp], #4 8004cd0: 4770 bx lr 8004cd2: bf00 nop 8004cd4: 20020018 .word 0x20020018 08004cd8 : * @arg ENABLE * @arg DISABLE * @retval None */ void BSP_LCD_SetLayerVisible(uint32_t LayerIndex, FunctionalState State) { 8004cd8: b480 push {r7} 8004cda: b083 sub sp, #12 8004cdc: af00 add r7, sp, #0 8004cde: 6078 str r0, [r7, #4] 8004ce0: 460b mov r3, r1 8004ce2: 70fb strb r3, [r7, #3] if(State == ENABLE) 8004ce4: 78fb ldrb r3, [r7, #3] 8004ce6: 2b01 cmp r3, #1 8004ce8: d113 bne.n 8004d12 __HAL_LTDC_LAYER_ENABLE(&hLtdcHandler, LayerIndex); 8004cea: 4b1a ldr r3, [pc, #104] ; (8004d54 ) 8004cec: 681b ldr r3, [r3, #0] 8004cee: 461a mov r2, r3 8004cf0: 687b ldr r3, [r7, #4] 8004cf2: 01db lsls r3, r3, #7 8004cf4: 4413 add r3, r2 8004cf6: 3384 adds r3, #132 ; 0x84 8004cf8: 461a mov r2, r3 8004cfa: 4b16 ldr r3, [pc, #88] ; (8004d54 ) 8004cfc: 681b ldr r3, [r3, #0] 8004cfe: 4619 mov r1, r3 8004d00: 687b ldr r3, [r7, #4] 8004d02: 01db lsls r3, r3, #7 8004d04: 440b add r3, r1 8004d06: 3384 adds r3, #132 ; 0x84 8004d08: 681b ldr r3, [r3, #0] 8004d0a: f043 0301 orr.w r3, r3, #1 8004d0e: 6013 str r3, [r2, #0] 8004d10: e012 b.n 8004d38 else __HAL_LTDC_LAYER_DISABLE(&hLtdcHandler, LayerIndex); 8004d12: 4b10 ldr r3, [pc, #64] ; (8004d54 ) 8004d14: 681b ldr r3, [r3, #0] 8004d16: 461a mov r2, r3 8004d18: 687b ldr r3, [r7, #4] 8004d1a: 01db lsls r3, r3, #7 8004d1c: 4413 add r3, r2 8004d1e: 3384 adds r3, #132 ; 0x84 8004d20: 461a mov r2, r3 8004d22: 4b0c ldr r3, [pc, #48] ; (8004d54 ) 8004d24: 681b ldr r3, [r3, #0] 8004d26: 4619 mov r1, r3 8004d28: 687b ldr r3, [r7, #4] 8004d2a: 01db lsls r3, r3, #7 8004d2c: 440b add r3, r1 8004d2e: 3384 adds r3, #132 ; 0x84 8004d30: 681b ldr r3, [r3, #0] 8004d32: f023 0301 bic.w r3, r3, #1 8004d36: 6013 str r3, [r2, #0] __HAL_LTDC_RELOAD_CONFIG(&hLtdcHandler); 8004d38: 4b06 ldr r3, [pc, #24] ; (8004d54 ) 8004d3a: 681b ldr r3, [r3, #0] 8004d3c: 4a05 ldr r2, [pc, #20] ; (8004d54 ) 8004d3e: 6812 ldr r2, [r2, #0] 8004d40: 6a52 ldr r2, [r2, #36] ; 0x24 8004d42: f042 0201 orr.w r2, r2, #1 8004d46: 625a str r2, [r3, #36] ; 0x24 } 8004d48: bf00 nop 8004d4a: 370c adds r7, #12 8004d4c: 46bd mov sp, r7 8004d4e: f85d 7b04 ldr.w r7, [sp], #4 8004d52: 4770 bx lr 8004d54: 2006c174 .word 0x2006c174 08004d58 : * @arg ENABLE * @arg DISABLE * @retval None */ void BSP_LCD_SetLayerVisible_NoReload(uint32_t LayerIndex, FunctionalState State) { 8004d58: b480 push {r7} 8004d5a: b083 sub sp, #12 8004d5c: af00 add r7, sp, #0 8004d5e: 6078 str r0, [r7, #4] 8004d60: 460b mov r3, r1 8004d62: 70fb strb r3, [r7, #3] if(State == ENABLE) 8004d64: 78fb ldrb r3, [r7, #3] 8004d66: 2b01 cmp r3, #1 8004d68: d113 bne.n 8004d92 __HAL_LTDC_LAYER_ENABLE(&hLtdcHandler, LayerIndex); 8004d6a: 4b16 ldr r3, [pc, #88] ; (8004dc4 ) 8004d6c: 681b ldr r3, [r3, #0] 8004d6e: 461a mov r2, r3 8004d70: 687b ldr r3, [r7, #4] 8004d72: 01db lsls r3, r3, #7 8004d74: 4413 add r3, r2 8004d76: 3384 adds r3, #132 ; 0x84 8004d78: 461a mov r2, r3 8004d7a: 4b12 ldr r3, [pc, #72] ; (8004dc4 ) 8004d7c: 681b ldr r3, [r3, #0] 8004d7e: 4619 mov r1, r3 8004d80: 687b ldr r3, [r7, #4] 8004d82: 01db lsls r3, r3, #7 8004d84: 440b add r3, r1 8004d86: 3384 adds r3, #132 ; 0x84 8004d88: 681b ldr r3, [r3, #0] 8004d8a: f043 0301 orr.w r3, r3, #1 8004d8e: 6013 str r3, [r2, #0] else __HAL_LTDC_LAYER_DISABLE(&hLtdcHandler, LayerIndex); } 8004d90: e012 b.n 8004db8 else __HAL_LTDC_LAYER_DISABLE(&hLtdcHandler, LayerIndex); 8004d92: 4b0c ldr r3, [pc, #48] ; (8004dc4 ) 8004d94: 681b ldr r3, [r3, #0] 8004d96: 461a mov r2, r3 8004d98: 687b ldr r3, [r7, #4] 8004d9a: 01db lsls r3, r3, #7 8004d9c: 4413 add r3, r2 8004d9e: 3384 adds r3, #132 ; 0x84 8004da0: 461a mov r2, r3 8004da2: 4b08 ldr r3, [pc, #32] ; (8004dc4 ) 8004da4: 681b ldr r3, [r3, #0] 8004da6: 4619 mov r1, r3 8004da8: 687b ldr r3, [r7, #4] 8004daa: 01db lsls r3, r3, #7 8004dac: 440b add r3, r1 8004dae: 3384 adds r3, #132 ; 0x84 8004db0: 681b ldr r3, [r3, #0] 8004db2: f023 0301 bic.w r3, r3, #1 8004db6: 6013 str r3, [r2, #0] } 8004db8: bf00 nop 8004dba: 370c adds r7, #12 8004dbc: 46bd mov sp, r7 8004dbe: f85d 7b04 ldr.w r7, [sp], #4 8004dc2: 4770 bx lr 8004dc4: 2006c174 .word 0x2006c174 08004dc8 : * @brief Sets the LCD text color. * @param Color: Text color code ARGB(8-8-8-8) * @retval None */ void LCD_SetColors(uint32_t ColorUp, uint32_t ColorDn) { 8004dc8: b480 push {r7} 8004dca: b083 sub sp, #12 8004dcc: af00 add r7, sp, #0 8004dce: 6078 str r0, [r7, #4] 8004dd0: 6039 str r1, [r7, #0] DrawProp[ActiveLayer].TextColor = ColorUp; 8004dd2: 4b0d ldr r3, [pc, #52] ; (8004e08 ) 8004dd4: 681a ldr r2, [r3, #0] 8004dd6: 490d ldr r1, [pc, #52] ; (8004e0c ) 8004dd8: 4613 mov r3, r2 8004dda: 005b lsls r3, r3, #1 8004ddc: 4413 add r3, r2 8004dde: 009b lsls r3, r3, #2 8004de0: 440b add r3, r1 8004de2: 687a ldr r2, [r7, #4] 8004de4: 601a str r2, [r3, #0] DrawProp[ActiveLayer].BackColor = ColorDn; 8004de6: 4b08 ldr r3, [pc, #32] ; (8004e08 ) 8004de8: 681a ldr r2, [r3, #0] 8004dea: 4908 ldr r1, [pc, #32] ; (8004e0c ) 8004dec: 4613 mov r3, r2 8004dee: 005b lsls r3, r3, #1 8004df0: 4413 add r3, r2 8004df2: 009b lsls r3, r3, #2 8004df4: 440b add r3, r1 8004df6: 3304 adds r3, #4 8004df8: 683a ldr r2, [r7, #0] 8004dfa: 601a str r2, [r3, #0] } 8004dfc: bf00 nop 8004dfe: 370c adds r7, #12 8004e00: 46bd mov sp, r7 8004e02: f85d 7b04 ldr.w r7, [sp], #4 8004e06: 4770 bx lr 8004e08: 20020018 .word 0x20020018 8004e0c: 2006ba44 .word 0x2006ba44 08004e10 : void BSP_LCD_SetTextColor(uint32_t Color) { 8004e10: b480 push {r7} 8004e12: b083 sub sp, #12 8004e14: af00 add r7, sp, #0 8004e16: 6078 str r0, [r7, #4] DrawProp[ActiveLayer].TextColor = Color; 8004e18: 4b07 ldr r3, [pc, #28] ; (8004e38 ) 8004e1a: 681a ldr r2, [r3, #0] 8004e1c: 4907 ldr r1, [pc, #28] ; (8004e3c ) 8004e1e: 4613 mov r3, r2 8004e20: 005b lsls r3, r3, #1 8004e22: 4413 add r3, r2 8004e24: 009b lsls r3, r3, #2 8004e26: 440b add r3, r1 8004e28: 687a ldr r2, [r7, #4] 8004e2a: 601a str r2, [r3, #0] } 8004e2c: bf00 nop 8004e2e: 370c adds r7, #12 8004e30: 46bd mov sp, r7 8004e32: f85d 7b04 ldr.w r7, [sp], #4 8004e36: 4770 bx lr 8004e38: 20020018 .word 0x20020018 8004e3c: 2006ba44 .word 0x2006ba44 08004e40 : * @brief Sets the LCD text font. * @param fonts: Layer font to be used * @retval None */ void BSP_LCD_SetFont(sFONT *fonts) { 8004e40: b480 push {r7} 8004e42: b083 sub sp, #12 8004e44: af00 add r7, sp, #0 8004e46: 6078 str r0, [r7, #4] DrawProp[ActiveLayer].pFont = fonts; 8004e48: 4b09 ldr r3, [pc, #36] ; (8004e70 ) 8004e4a: 681a ldr r2, [r3, #0] 8004e4c: 4909 ldr r1, [pc, #36] ; (8004e74 ) 8004e4e: 4613 mov r3, r2 8004e50: 005b lsls r3, r3, #1 8004e52: 4413 add r3, r2 8004e54: 009b lsls r3, r3, #2 8004e56: 440b add r3, r1 8004e58: 3308 adds r3, #8 8004e5a: 687a ldr r2, [r7, #4] 8004e5c: 601a str r2, [r3, #0] CurrentFont = fonts; 8004e5e: 4a06 ldr r2, [pc, #24] ; (8004e78 ) 8004e60: 687b ldr r3, [r7, #4] 8004e62: 6013 str r3, [r2, #0] } 8004e64: bf00 nop 8004e66: 370c adds r7, #12 8004e68: 46bd mov sp, r7 8004e6a: f85d 7b04 ldr.w r7, [sp], #4 8004e6e: 4770 bx lr 8004e70: 20020018 .word 0x20020018 8004e74: 2006ba44 .word 0x2006ba44 8004e78: 2006c170 .word 0x2006c170 08004e7c : * @brief Clears the hole LCD. * @param Color: Color of the background * @retval None */ void BSP_LCD_Clear(uint32_t Color) { 8004e7c: b5f0 push {r4, r5, r6, r7, lr} 8004e7e: b085 sub sp, #20 8004e80: af02 add r7, sp, #8 8004e82: 6078 str r0, [r7, #4] LL_FillBuffer(ActiveLayer, (uint32_t *)(hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress), BSP_LCD_GetXSize(), BSP_LCD_GetYSize(), 0, Color); 8004e84: 4b0f ldr r3, [pc, #60] ; (8004ec4 ) 8004e86: 681c ldr r4, [r3, #0] 8004e88: 4b0e ldr r3, [pc, #56] ; (8004ec4 ) 8004e8a: 681b ldr r3, [r3, #0] 8004e8c: 4a0e ldr r2, [pc, #56] ; (8004ec8 ) 8004e8e: 2134 movs r1, #52 ; 0x34 8004e90: fb01 f303 mul.w r3, r1, r3 8004e94: 4413 add r3, r2 8004e96: 335c adds r3, #92 ; 0x5c 8004e98: 681b ldr r3, [r3, #0] 8004e9a: 461d mov r5, r3 8004e9c: f7ff fee4 bl 8004c68 8004ea0: 4606 mov r6, r0 8004ea2: f7ff fef5 bl 8004c90 8004ea6: 4602 mov r2, r0 8004ea8: 687b ldr r3, [r7, #4] 8004eaa: 9301 str r3, [sp, #4] 8004eac: 2300 movs r3, #0 8004eae: 9300 str r3, [sp, #0] 8004eb0: 4613 mov r3, r2 8004eb2: 4632 mov r2, r6 8004eb4: 4629 mov r1, r5 8004eb6: 4620 mov r0, r4 8004eb8: f000 fd1a bl 80058f0 } 8004ebc: bf00 nop 8004ebe: 370c adds r7, #12 8004ec0: 46bd mov sp, r7 8004ec2: bdf0 pop {r4, r5, r6, r7, pc} 8004ec4: 20020018 .word 0x20020018 8004ec8: 2006c174 .word 0x2006c174 08004ecc : * @param Ascii: Character ascii code * This parameter must be a number between Min_Data = 0x20 and Max_Data = 0x7E * @retval None */ void BSP_LCD_DisplayChar(uint16_t Xpos, uint16_t Ypos, uint8_t Ascii) { 8004ecc: b590 push {r4, r7, lr} 8004ece: b083 sub sp, #12 8004ed0: af00 add r7, sp, #0 8004ed2: 4603 mov r3, r0 8004ed4: 80fb strh r3, [r7, #6] 8004ed6: 460b mov r3, r1 8004ed8: 80bb strh r3, [r7, #4] 8004eda: 4613 mov r3, r2 8004edc: 70fb strb r3, [r7, #3] DrawChar( Xpos, Ypos, &DrawProp[ActiveLayer].pFont->table[(Ascii - ' ') * DrawProp[ActiveLayer].pFont->Height * ((DrawProp[ActiveLayer].pFont->Width + 7) / 8)] ); 8004ede: 4b1b ldr r3, [pc, #108] ; (8004f4c ) 8004ee0: 681a ldr r2, [r3, #0] 8004ee2: 491b ldr r1, [pc, #108] ; (8004f50 ) 8004ee4: 4613 mov r3, r2 8004ee6: 005b lsls r3, r3, #1 8004ee8: 4413 add r3, r2 8004eea: 009b lsls r3, r3, #2 8004eec: 440b add r3, r1 8004eee: 3308 adds r3, #8 8004ef0: 681b ldr r3, [r3, #0] 8004ef2: 6819 ldr r1, [r3, #0] 8004ef4: 78fb ldrb r3, [r7, #3] 8004ef6: f1a3 0020 sub.w r0, r3, #32 8004efa: 4b14 ldr r3, [pc, #80] ; (8004f4c ) 8004efc: 681a ldr r2, [r3, #0] 8004efe: 4c14 ldr r4, [pc, #80] ; (8004f50 ) 8004f00: 4613 mov r3, r2 8004f02: 005b lsls r3, r3, #1 8004f04: 4413 add r3, r2 8004f06: 009b lsls r3, r3, #2 8004f08: 4423 add r3, r4 8004f0a: 3308 adds r3, #8 8004f0c: 681b ldr r3, [r3, #0] 8004f0e: 88db ldrh r3, [r3, #6] 8004f10: fb03 f000 mul.w r0, r3, r0 8004f14: 4b0d ldr r3, [pc, #52] ; (8004f4c ) 8004f16: 681a ldr r2, [r3, #0] 8004f18: 4c0d ldr r4, [pc, #52] ; (8004f50 ) 8004f1a: 4613 mov r3, r2 8004f1c: 005b lsls r3, r3, #1 8004f1e: 4413 add r3, r2 8004f20: 009b lsls r3, r3, #2 8004f22: 4423 add r3, r4 8004f24: 3308 adds r3, #8 8004f26: 681b ldr r3, [r3, #0] 8004f28: 889b ldrh r3, [r3, #4] 8004f2a: 3307 adds r3, #7 8004f2c: 2b00 cmp r3, #0 8004f2e: da00 bge.n 8004f32 8004f30: 3307 adds r3, #7 8004f32: 10db asrs r3, r3, #3 8004f34: fb03 f300 mul.w r3, r3, r0 8004f38: 18ca adds r2, r1, r3 8004f3a: 88b9 ldrh r1, [r7, #4] 8004f3c: 88fb ldrh r3, [r7, #6] 8004f3e: 4618 mov r0, r3 8004f40: f000 fc1e bl 8005780 } 8004f44: bf00 nop 8004f46: 370c adds r7, #12 8004f48: 46bd mov sp, r7 8004f4a: bd90 pop {r4, r7, pc} 8004f4c: 20020018 .word 0x20020018 8004f50: 2006ba44 .word 0x2006ba44 08004f54 : * @arg RIGHT_MODE * @arg LEFT_MODE * @retval None */ void BSP_LCD_DisplayStringAt(uint16_t Xpos, uint16_t Ypos, char *Text, Text_AlignModeTypdef Mode) { 8004f54: b5b0 push {r4, r5, r7, lr} 8004f56: b088 sub sp, #32 8004f58: af00 add r7, sp, #0 8004f5a: 60ba str r2, [r7, #8] 8004f5c: 461a mov r2, r3 8004f5e: 4603 mov r3, r0 8004f60: 81fb strh r3, [r7, #14] 8004f62: 460b mov r3, r1 8004f64: 81bb strh r3, [r7, #12] 8004f66: 4613 mov r3, r2 8004f68: 71fb strb r3, [r7, #7] uint16_t ref_column = 1, i = 0, ll = 0; 8004f6a: 2301 movs r3, #1 8004f6c: 83fb strh r3, [r7, #30] 8004f6e: 2300 movs r3, #0 8004f70: 83bb strh r3, [r7, #28] 8004f72: 2300 movs r3, #0 8004f74: 827b strh r3, [r7, #18] uint32_t size = 0; 8004f76: 2300 movs r3, #0 8004f78: 61bb str r3, [r7, #24] uint8_t *ptr; ptr = (uint8_t *) Text; 8004f7a: 68bb ldr r3, [r7, #8] 8004f7c: 617b str r3, [r7, #20] /* Get the text size */ while (*ptr++) size++ ; 8004f7e: e002 b.n 8004f86 8004f80: 69bb ldr r3, [r7, #24] 8004f82: 3301 adds r3, #1 8004f84: 61bb str r3, [r7, #24] 8004f86: 697b ldr r3, [r7, #20] 8004f88: 1c5a adds r2, r3, #1 8004f8a: 617a str r2, [r7, #20] 8004f8c: 781b ldrb r3, [r3, #0] 8004f8e: 2b00 cmp r3, #0 8004f90: d1f6 bne.n 8004f80 /* Characters number per line */ // xsize = (BSP_LCD_GetXSize() / DrawProp[ActiveLayer].pFont->Width); switch (Mode) 8004f92: 79fb ldrb r3, [r7, #7] 8004f94: 2b02 cmp r3, #2 8004f96: d01d beq.n 8004fd4 8004f98: 2b03 cmp r3, #3 8004f9a: d018 beq.n 8004fce 8004f9c: 2b01 cmp r3, #1 8004f9e: d12e bne.n 8004ffe { case CENTER_MODE: { ll = DrawProp[ActiveLayer].pFont->Width * size; 8004fa0: 4b44 ldr r3, [pc, #272] ; (80050b4 ) 8004fa2: 681a ldr r2, [r3, #0] 8004fa4: 4944 ldr r1, [pc, #272] ; (80050b8 ) 8004fa6: 4613 mov r3, r2 8004fa8: 005b lsls r3, r3, #1 8004faa: 4413 add r3, r2 8004fac: 009b lsls r3, r3, #2 8004fae: 440b add r3, r1 8004fb0: 3308 adds r3, #8 8004fb2: 681b ldr r3, [r3, #0] 8004fb4: 889a ldrh r2, [r3, #4] 8004fb6: 69bb ldr r3, [r7, #24] 8004fb8: b29b uxth r3, r3 8004fba: fb12 f303 smulbb r3, r2, r3 8004fbe: 827b strh r3, [r7, #18] ref_column = Xpos - (ll >> 1); 8004fc0: 8a7b ldrh r3, [r7, #18] 8004fc2: 085b lsrs r3, r3, #1 8004fc4: b29b uxth r3, r3 8004fc6: 89fa ldrh r2, [r7, #14] 8004fc8: 1ad3 subs r3, r2, r3 8004fca: 83fb strh r3, [r7, #30] //if((ref_column + ll > 319) || (ref_column > 319)) // ref_column = Xpos + ((xsize - size)* DrawProp[ActiveLayer].pFont->Width) / 2; break; 8004fcc: e01a b.n 8005004 } case LEFT_MODE: { ref_column = Xpos; 8004fce: 89fb ldrh r3, [r7, #14] 8004fd0: 83fb strh r3, [r7, #30] break; 8004fd2: e017 b.n 8005004 } case RIGHT_MODE: { ll = DrawProp[ActiveLayer].pFont->Width * size; 8004fd4: 4b37 ldr r3, [pc, #220] ; (80050b4 ) 8004fd6: 681a ldr r2, [r3, #0] 8004fd8: 4937 ldr r1, [pc, #220] ; (80050b8 ) 8004fda: 4613 mov r3, r2 8004fdc: 005b lsls r3, r3, #1 8004fde: 4413 add r3, r2 8004fe0: 009b lsls r3, r3, #2 8004fe2: 440b add r3, r1 8004fe4: 3308 adds r3, #8 8004fe6: 681b ldr r3, [r3, #0] 8004fe8: 889a ldrh r2, [r3, #4] 8004fea: 69bb ldr r3, [r7, #24] 8004fec: b29b uxth r3, r3 8004fee: fb12 f303 smulbb r3, r2, r3 8004ff2: 827b strh r3, [r7, #18] ref_column = Xpos - ll; 8004ff4: 89fa ldrh r2, [r7, #14] 8004ff6: 8a7b ldrh r3, [r7, #18] 8004ff8: 1ad3 subs r3, r2, r3 8004ffa: 83fb strh r3, [r7, #30] // ref_column = - Xpos + ((xsize - size)*DrawProp[ActiveLayer].pFont->Width); break; 8004ffc: e002 b.n 8005004 } default: { ref_column = Xpos; 8004ffe: 89fb ldrh r3, [r7, #14] 8005000: 83fb strh r3, [r7, #30] break; 8005002: bf00 nop } } /* Check that the Start column is located in the screen */ if ((ref_column < 1) || (ref_column >= 0x8000)) 8005004: 8bfb ldrh r3, [r7, #30] 8005006: 2b00 cmp r3, #0 8005008: d003 beq.n 8005012 800500a: f9b7 301e ldrsh.w r3, [r7, #30] 800500e: 2b00 cmp r3, #0 8005010: da1d bge.n 800504e { ref_column = 1; 8005012: 2301 movs r3, #1 8005014: 83fb strh r3, [r7, #30] } /* Send the string character by character on LCD */ while ((*Text != 0) & (((BSP_LCD_GetXSize() - (i*DrawProp[ActiveLayer].pFont->Width)) & 0xFFFF) >= DrawProp[ActiveLayer].pFont->Width)) 8005016: e01a b.n 800504e { /* Display one character on LCD */ BSP_LCD_DisplayChar(ref_column, Ypos, *Text); 8005018: 68bb ldr r3, [r7, #8] 800501a: 781a ldrb r2, [r3, #0] 800501c: 89b9 ldrh r1, [r7, #12] 800501e: 8bfb ldrh r3, [r7, #30] 8005020: 4618 mov r0, r3 8005022: f7ff ff53 bl 8004ecc /* Decrement the column position by 16 */ ref_column += DrawProp[ActiveLayer].pFont->Width; 8005026: 4b23 ldr r3, [pc, #140] ; (80050b4 ) 8005028: 681a ldr r2, [r3, #0] 800502a: 4923 ldr r1, [pc, #140] ; (80050b8 ) 800502c: 4613 mov r3, r2 800502e: 005b lsls r3, r3, #1 8005030: 4413 add r3, r2 8005032: 009b lsls r3, r3, #2 8005034: 440b add r3, r1 8005036: 3308 adds r3, #8 8005038: 681b ldr r3, [r3, #0] 800503a: 889a ldrh r2, [r3, #4] 800503c: 8bfb ldrh r3, [r7, #30] 800503e: 4413 add r3, r2 8005040: 83fb strh r3, [r7, #30] /* Point on the next character */ Text++; 8005042: 68bb ldr r3, [r7, #8] 8005044: 3301 adds r3, #1 8005046: 60bb str r3, [r7, #8] i++; 8005048: 8bbb ldrh r3, [r7, #28] 800504a: 3301 adds r3, #1 800504c: 83bb strh r3, [r7, #28] while ((*Text != 0) & (((BSP_LCD_GetXSize() - (i*DrawProp[ActiveLayer].pFont->Width)) & 0xFFFF) >= DrawProp[ActiveLayer].pFont->Width)) 800504e: 68bb ldr r3, [r7, #8] 8005050: 781b ldrb r3, [r3, #0] 8005052: 2b00 cmp r3, #0 8005054: bf14 ite ne 8005056: 2301 movne r3, #1 8005058: 2300 moveq r3, #0 800505a: b2dc uxtb r4, r3 800505c: f7ff fe04 bl 8004c68 8005060: 4605 mov r5, r0 8005062: 8bb9 ldrh r1, [r7, #28] 8005064: 4b13 ldr r3, [pc, #76] ; (80050b4 ) 8005066: 681a ldr r2, [r3, #0] 8005068: 4813 ldr r0, [pc, #76] ; (80050b8 ) 800506a: 4613 mov r3, r2 800506c: 005b lsls r3, r3, #1 800506e: 4413 add r3, r2 8005070: 009b lsls r3, r3, #2 8005072: 4403 add r3, r0 8005074: 3308 adds r3, #8 8005076: 681b ldr r3, [r3, #0] 8005078: 889b ldrh r3, [r3, #4] 800507a: fb03 f301 mul.w r3, r3, r1 800507e: 1aeb subs r3, r5, r3 8005080: b299 uxth r1, r3 8005082: 4b0c ldr r3, [pc, #48] ; (80050b4 ) 8005084: 681a ldr r2, [r3, #0] 8005086: 480c ldr r0, [pc, #48] ; (80050b8 ) 8005088: 4613 mov r3, r2 800508a: 005b lsls r3, r3, #1 800508c: 4413 add r3, r2 800508e: 009b lsls r3, r3, #2 8005090: 4403 add r3, r0 8005092: 3308 adds r3, #8 8005094: 681b ldr r3, [r3, #0] 8005096: 889b ldrh r3, [r3, #4] 8005098: 4299 cmp r1, r3 800509a: bf2c ite cs 800509c: 2301 movcs r3, #1 800509e: 2300 movcc r3, #0 80050a0: b2db uxtb r3, r3 80050a2: 4023 ands r3, r4 80050a4: b2db uxtb r3, r3 80050a6: 2b00 cmp r3, #0 80050a8: d1b6 bne.n 8005018 } } 80050aa: bf00 nop 80050ac: 3720 adds r7, #32 80050ae: 46bd mov sp, r7 80050b0: bdb0 pop {r4, r5, r7, pc} 80050b2: bf00 nop 80050b4: 20020018 .word 0x20020018 80050b8: 2006ba44 .word 0x2006ba44 080050bc : * @param Ypos: Y position * @param Length: Line length * @retval None */ void BSP_LCD_DrawHLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length) { 80050bc: b5b0 push {r4, r5, r7, lr} 80050be: b086 sub sp, #24 80050c0: af02 add r7, sp, #8 80050c2: 4603 mov r3, r0 80050c4: 80fb strh r3, [r7, #6] 80050c6: 460b mov r3, r1 80050c8: 80bb strh r3, [r7, #4] 80050ca: 4613 mov r3, r2 80050cc: 807b strh r3, [r7, #2] uint32_t Xaddress = 0; 80050ce: 2300 movs r3, #0 80050d0: 60fb str r3, [r7, #12] /* Get the line address */ if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565) 80050d2: 4b26 ldr r3, [pc, #152] ; (800516c ) 80050d4: 681b ldr r3, [r3, #0] 80050d6: 4a26 ldr r2, [pc, #152] ; (8005170 ) 80050d8: 2134 movs r1, #52 ; 0x34 80050da: fb01 f303 mul.w r3, r1, r3 80050de: 4413 add r3, r2 80050e0: 3348 adds r3, #72 ; 0x48 80050e2: 681b ldr r3, [r3, #0] 80050e4: 2b02 cmp r3, #2 80050e6: d114 bne.n 8005112 { /* RGB565 format */ Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 2*(BSP_LCD_GetXSize()*Ypos + Xpos); 80050e8: 4b20 ldr r3, [pc, #128] ; (800516c ) 80050ea: 681b ldr r3, [r3, #0] 80050ec: 4a20 ldr r2, [pc, #128] ; (8005170 ) 80050ee: 2134 movs r1, #52 ; 0x34 80050f0: fb01 f303 mul.w r3, r1, r3 80050f4: 4413 add r3, r2 80050f6: 335c adds r3, #92 ; 0x5c 80050f8: 681c ldr r4, [r3, #0] 80050fa: f7ff fdb5 bl 8004c68 80050fe: 4602 mov r2, r0 8005100: 88bb ldrh r3, [r7, #4] 8005102: fb03 f202 mul.w r2, r3, r2 8005106: 88fb ldrh r3, [r7, #6] 8005108: 4413 add r3, r2 800510a: 005b lsls r3, r3, #1 800510c: 4423 add r3, r4 800510e: 60fb str r3, [r7, #12] 8005110: e013 b.n 800513a } else { /* ARGB8888 format */ Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 4*(BSP_LCD_GetXSize()*Ypos + Xpos); 8005112: 4b16 ldr r3, [pc, #88] ; (800516c ) 8005114: 681b ldr r3, [r3, #0] 8005116: 4a16 ldr r2, [pc, #88] ; (8005170 ) 8005118: 2134 movs r1, #52 ; 0x34 800511a: fb01 f303 mul.w r3, r1, r3 800511e: 4413 add r3, r2 8005120: 335c adds r3, #92 ; 0x5c 8005122: 681c ldr r4, [r3, #0] 8005124: f7ff fda0 bl 8004c68 8005128: 4602 mov r2, r0 800512a: 88bb ldrh r3, [r7, #4] 800512c: fb03 f202 mul.w r2, r3, r2 8005130: 88fb ldrh r3, [r7, #6] 8005132: 4413 add r3, r2 8005134: 009b lsls r3, r3, #2 8005136: 4423 add r3, r4 8005138: 60fb str r3, [r7, #12] } /* Write line */ LL_FillBuffer(ActiveLayer, (uint32_t *)Xaddress, Length, 1, 0, DrawProp[ActiveLayer].TextColor); 800513a: 4b0c ldr r3, [pc, #48] ; (800516c ) 800513c: 6818 ldr r0, [r3, #0] 800513e: 68fc ldr r4, [r7, #12] 8005140: 887d ldrh r5, [r7, #2] 8005142: 4b0a ldr r3, [pc, #40] ; (800516c ) 8005144: 681a ldr r2, [r3, #0] 8005146: 490b ldr r1, [pc, #44] ; (8005174 ) 8005148: 4613 mov r3, r2 800514a: 005b lsls r3, r3, #1 800514c: 4413 add r3, r2 800514e: 009b lsls r3, r3, #2 8005150: 440b add r3, r1 8005152: 681b ldr r3, [r3, #0] 8005154: 9301 str r3, [sp, #4] 8005156: 2300 movs r3, #0 8005158: 9300 str r3, [sp, #0] 800515a: 2301 movs r3, #1 800515c: 462a mov r2, r5 800515e: 4621 mov r1, r4 8005160: f000 fbc6 bl 80058f0 } 8005164: bf00 nop 8005166: 3710 adds r7, #16 8005168: 46bd mov sp, r7 800516a: bdb0 pop {r4, r5, r7, pc} 800516c: 20020018 .word 0x20020018 8005170: 2006c174 .word 0x2006c174 8005174: 2006ba44 .word 0x2006ba44 08005178 : * @param Ypos: Y position * @param Length: Line length * @retval None */ void BSP_LCD_DrawVLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length) { 8005178: b5f0 push {r4, r5, r6, r7, lr} 800517a: b087 sub sp, #28 800517c: af02 add r7, sp, #8 800517e: 4603 mov r3, r0 8005180: 80fb strh r3, [r7, #6] 8005182: 460b mov r3, r1 8005184: 80bb strh r3, [r7, #4] 8005186: 4613 mov r3, r2 8005188: 807b strh r3, [r7, #2] uint32_t Xaddress = 0; 800518a: 2300 movs r3, #0 800518c: 60fb str r3, [r7, #12] /* Get the line address */ if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565) 800518e: 4b28 ldr r3, [pc, #160] ; (8005230 ) 8005190: 681b ldr r3, [r3, #0] 8005192: 4a28 ldr r2, [pc, #160] ; (8005234 ) 8005194: 2134 movs r1, #52 ; 0x34 8005196: fb01 f303 mul.w r3, r1, r3 800519a: 4413 add r3, r2 800519c: 3348 adds r3, #72 ; 0x48 800519e: 681b ldr r3, [r3, #0] 80051a0: 2b02 cmp r3, #2 80051a2: d114 bne.n 80051ce { /* RGB565 format */ Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 2*(BSP_LCD_GetXSize()*Ypos + Xpos); 80051a4: 4b22 ldr r3, [pc, #136] ; (8005230 ) 80051a6: 681b ldr r3, [r3, #0] 80051a8: 4a22 ldr r2, [pc, #136] ; (8005234 ) 80051aa: 2134 movs r1, #52 ; 0x34 80051ac: fb01 f303 mul.w r3, r1, r3 80051b0: 4413 add r3, r2 80051b2: 335c adds r3, #92 ; 0x5c 80051b4: 681c ldr r4, [r3, #0] 80051b6: f7ff fd57 bl 8004c68 80051ba: 4602 mov r2, r0 80051bc: 88bb ldrh r3, [r7, #4] 80051be: fb03 f202 mul.w r2, r3, r2 80051c2: 88fb ldrh r3, [r7, #6] 80051c4: 4413 add r3, r2 80051c6: 005b lsls r3, r3, #1 80051c8: 4423 add r3, r4 80051ca: 60fb str r3, [r7, #12] 80051cc: e013 b.n 80051f6 } else { /* ARGB8888 format */ Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 4*(BSP_LCD_GetXSize()*Ypos + Xpos); 80051ce: 4b18 ldr r3, [pc, #96] ; (8005230 ) 80051d0: 681b ldr r3, [r3, #0] 80051d2: 4a18 ldr r2, [pc, #96] ; (8005234 ) 80051d4: 2134 movs r1, #52 ; 0x34 80051d6: fb01 f303 mul.w r3, r1, r3 80051da: 4413 add r3, r2 80051dc: 335c adds r3, #92 ; 0x5c 80051de: 681c ldr r4, [r3, #0] 80051e0: f7ff fd42 bl 8004c68 80051e4: 4602 mov r2, r0 80051e6: 88bb ldrh r3, [r7, #4] 80051e8: fb03 f202 mul.w r2, r3, r2 80051ec: 88fb ldrh r3, [r7, #6] 80051ee: 4413 add r3, r2 80051f0: 009b lsls r3, r3, #2 80051f2: 4423 add r3, r4 80051f4: 60fb str r3, [r7, #12] } /* Write line */ LL_FillBuffer(ActiveLayer, (uint32_t *)Xaddress, 1, Length, (BSP_LCD_GetXSize() - 1), DrawProp[ActiveLayer].TextColor); 80051f6: 4b0e ldr r3, [pc, #56] ; (8005230 ) 80051f8: 681c ldr r4, [r3, #0] 80051fa: 68fd ldr r5, [r7, #12] 80051fc: 887e ldrh r6, [r7, #2] 80051fe: f7ff fd33 bl 8004c68 8005202: 4603 mov r3, r0 8005204: 1e59 subs r1, r3, #1 8005206: 4b0a ldr r3, [pc, #40] ; (8005230 ) 8005208: 681a ldr r2, [r3, #0] 800520a: 480b ldr r0, [pc, #44] ; (8005238 ) 800520c: 4613 mov r3, r2 800520e: 005b lsls r3, r3, #1 8005210: 4413 add r3, r2 8005212: 009b lsls r3, r3, #2 8005214: 4403 add r3, r0 8005216: 681b ldr r3, [r3, #0] 8005218: 9301 str r3, [sp, #4] 800521a: 9100 str r1, [sp, #0] 800521c: 4633 mov r3, r6 800521e: 2201 movs r2, #1 8005220: 4629 mov r1, r5 8005222: 4620 mov r0, r4 8005224: f000 fb64 bl 80058f0 } 8005228: bf00 nop 800522a: 3714 adds r7, #20 800522c: 46bd mov sp, r7 800522e: bdf0 pop {r4, r5, r6, r7, pc} 8005230: 20020018 .word 0x20020018 8005234: 2006c174 .word 0x2006c174 8005238: 2006ba44 .word 0x2006ba44 0800523c : * @param Width: Rectangle width * @param Height: Rectangle height * @retval None */ void BSP_LCD_DrawRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height) { 800523c: b590 push {r4, r7, lr} 800523e: b083 sub sp, #12 8005240: af00 add r7, sp, #0 8005242: 4604 mov r4, r0 8005244: 4608 mov r0, r1 8005246: 4611 mov r1, r2 8005248: 461a mov r2, r3 800524a: 4623 mov r3, r4 800524c: 80fb strh r3, [r7, #6] 800524e: 4603 mov r3, r0 8005250: 80bb strh r3, [r7, #4] 8005252: 460b mov r3, r1 8005254: 807b strh r3, [r7, #2] 8005256: 4613 mov r3, r2 8005258: 803b strh r3, [r7, #0] BSP_LCD_DrawHLine(Xpos, Ypos, Width); 800525a: 887a ldrh r2, [r7, #2] 800525c: 88b9 ldrh r1, [r7, #4] 800525e: 88fb ldrh r3, [r7, #6] 8005260: 4618 mov r0, r3 8005262: f7ff ff2b bl 80050bc BSP_LCD_DrawVLine(Xpos, Ypos, Height); 8005266: 883a ldrh r2, [r7, #0] 8005268: 88b9 ldrh r1, [r7, #4] 800526a: 88fb ldrh r3, [r7, #6] 800526c: 4618 mov r0, r3 800526e: f7ff ff83 bl 8005178 BSP_LCD_DrawHLine(Xpos, (Ypos + Height), Width); 8005272: 88ba ldrh r2, [r7, #4] 8005274: 883b ldrh r3, [r7, #0] 8005276: 4413 add r3, r2 8005278: b299 uxth r1, r3 800527a: 887a ldrh r2, [r7, #2] 800527c: 88fb ldrh r3, [r7, #6] 800527e: 4618 mov r0, r3 8005280: f7ff ff1c bl 80050bc BSP_LCD_DrawVLine((Xpos + Width), Ypos, Height + 1); 8005284: 88fa ldrh r2, [r7, #6] 8005286: 887b ldrh r3, [r7, #2] 8005288: 4413 add r3, r2 800528a: b298 uxth r0, r3 800528c: 883b ldrh r3, [r7, #0] 800528e: 3301 adds r3, #1 8005290: b29a uxth r2, r3 8005292: 88bb ldrh r3, [r7, #4] 8005294: 4619 mov r1, r3 8005296: f7ff ff6f bl 8005178 } 800529a: bf00 nop 800529c: 370c adds r7, #12 800529e: 46bd mov sp, r7 80052a0: bd90 pop {r4, r7, pc} ... 080052a4 : * @param Ypos: Y position * @param Radius: Circle radius * @retval None */ void BSP_LCD_DrawCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius) { 80052a4: b590 push {r4, r7, lr} 80052a6: b087 sub sp, #28 80052a8: af00 add r7, sp, #0 80052aa: 4603 mov r3, r0 80052ac: 80fb strh r3, [r7, #6] 80052ae: 460b mov r3, r1 80052b0: 80bb strh r3, [r7, #4] 80052b2: 4613 mov r3, r2 80052b4: 807b strh r3, [r7, #2] int32_t decision; /* Decision Variable */ uint32_t current_x; /* Current X Value */ uint32_t current_y; /* Current Y Value */ decision = 3 - (Radius << 1); 80052b6: 887b ldrh r3, [r7, #2] 80052b8: 005b lsls r3, r3, #1 80052ba: f1c3 0303 rsb r3, r3, #3 80052be: 617b str r3, [r7, #20] current_x = 0; 80052c0: 2300 movs r3, #0 80052c2: 613b str r3, [r7, #16] current_y = Radius; 80052c4: 887b ldrh r3, [r7, #2] 80052c6: 60fb str r3, [r7, #12] while (current_x <= current_y) 80052c8: e0cf b.n 800546a { BSP_LCD_DrawPixel((Xpos + current_x), (Ypos - current_y), DrawProp[ActiveLayer].TextColor); 80052ca: 693b ldr r3, [r7, #16] 80052cc: b29a uxth r2, r3 80052ce: 88fb ldrh r3, [r7, #6] 80052d0: 4413 add r3, r2 80052d2: b298 uxth r0, r3 80052d4: 68fb ldr r3, [r7, #12] 80052d6: b29b uxth r3, r3 80052d8: 88ba ldrh r2, [r7, #4] 80052da: 1ad3 subs r3, r2, r3 80052dc: b29c uxth r4, r3 80052de: 4b67 ldr r3, [pc, #412] ; (800547c ) 80052e0: 681a ldr r2, [r3, #0] 80052e2: 4967 ldr r1, [pc, #412] ; (8005480 ) 80052e4: 4613 mov r3, r2 80052e6: 005b lsls r3, r3, #1 80052e8: 4413 add r3, r2 80052ea: 009b lsls r3, r3, #2 80052ec: 440b add r3, r1 80052ee: 681b ldr r3, [r3, #0] 80052f0: 461a mov r2, r3 80052f2: 4621 mov r1, r4 80052f4: f000 f8c6 bl 8005484 BSP_LCD_DrawPixel((Xpos - current_x), (Ypos - current_y), DrawProp[ActiveLayer].TextColor); 80052f8: 693b ldr r3, [r7, #16] 80052fa: b29b uxth r3, r3 80052fc: 88fa ldrh r2, [r7, #6] 80052fe: 1ad3 subs r3, r2, r3 8005300: b298 uxth r0, r3 8005302: 68fb ldr r3, [r7, #12] 8005304: b29b uxth r3, r3 8005306: 88ba ldrh r2, [r7, #4] 8005308: 1ad3 subs r3, r2, r3 800530a: b29c uxth r4, r3 800530c: 4b5b ldr r3, [pc, #364] ; (800547c ) 800530e: 681a ldr r2, [r3, #0] 8005310: 495b ldr r1, [pc, #364] ; (8005480 ) 8005312: 4613 mov r3, r2 8005314: 005b lsls r3, r3, #1 8005316: 4413 add r3, r2 8005318: 009b lsls r3, r3, #2 800531a: 440b add r3, r1 800531c: 681b ldr r3, [r3, #0] 800531e: 461a mov r2, r3 8005320: 4621 mov r1, r4 8005322: f000 f8af bl 8005484 BSP_LCD_DrawPixel((Xpos + current_y), (Ypos - current_x), DrawProp[ActiveLayer].TextColor); 8005326: 68fb ldr r3, [r7, #12] 8005328: b29a uxth r2, r3 800532a: 88fb ldrh r3, [r7, #6] 800532c: 4413 add r3, r2 800532e: b298 uxth r0, r3 8005330: 693b ldr r3, [r7, #16] 8005332: b29b uxth r3, r3 8005334: 88ba ldrh r2, [r7, #4] 8005336: 1ad3 subs r3, r2, r3 8005338: b29c uxth r4, r3 800533a: 4b50 ldr r3, [pc, #320] ; (800547c ) 800533c: 681a ldr r2, [r3, #0] 800533e: 4950 ldr r1, [pc, #320] ; (8005480 ) 8005340: 4613 mov r3, r2 8005342: 005b lsls r3, r3, #1 8005344: 4413 add r3, r2 8005346: 009b lsls r3, r3, #2 8005348: 440b add r3, r1 800534a: 681b ldr r3, [r3, #0] 800534c: 461a mov r2, r3 800534e: 4621 mov r1, r4 8005350: f000 f898 bl 8005484 BSP_LCD_DrawPixel((Xpos - current_y), (Ypos - current_x), DrawProp[ActiveLayer].TextColor); 8005354: 68fb ldr r3, [r7, #12] 8005356: b29b uxth r3, r3 8005358: 88fa ldrh r2, [r7, #6] 800535a: 1ad3 subs r3, r2, r3 800535c: b298 uxth r0, r3 800535e: 693b ldr r3, [r7, #16] 8005360: b29b uxth r3, r3 8005362: 88ba ldrh r2, [r7, #4] 8005364: 1ad3 subs r3, r2, r3 8005366: b29c uxth r4, r3 8005368: 4b44 ldr r3, [pc, #272] ; (800547c ) 800536a: 681a ldr r2, [r3, #0] 800536c: 4944 ldr r1, [pc, #272] ; (8005480 ) 800536e: 4613 mov r3, r2 8005370: 005b lsls r3, r3, #1 8005372: 4413 add r3, r2 8005374: 009b lsls r3, r3, #2 8005376: 440b add r3, r1 8005378: 681b ldr r3, [r3, #0] 800537a: 461a mov r2, r3 800537c: 4621 mov r1, r4 800537e: f000 f881 bl 8005484 BSP_LCD_DrawPixel((Xpos + current_x), (Ypos + current_y), DrawProp[ActiveLayer].TextColor); 8005382: 693b ldr r3, [r7, #16] 8005384: b29a uxth r2, r3 8005386: 88fb ldrh r3, [r7, #6] 8005388: 4413 add r3, r2 800538a: b298 uxth r0, r3 800538c: 68fb ldr r3, [r7, #12] 800538e: b29a uxth r2, r3 8005390: 88bb ldrh r3, [r7, #4] 8005392: 4413 add r3, r2 8005394: b29c uxth r4, r3 8005396: 4b39 ldr r3, [pc, #228] ; (800547c ) 8005398: 681a ldr r2, [r3, #0] 800539a: 4939 ldr r1, [pc, #228] ; (8005480 ) 800539c: 4613 mov r3, r2 800539e: 005b lsls r3, r3, #1 80053a0: 4413 add r3, r2 80053a2: 009b lsls r3, r3, #2 80053a4: 440b add r3, r1 80053a6: 681b ldr r3, [r3, #0] 80053a8: 461a mov r2, r3 80053aa: 4621 mov r1, r4 80053ac: f000 f86a bl 8005484 BSP_LCD_DrawPixel((Xpos - current_x), (Ypos + current_y), DrawProp[ActiveLayer].TextColor); 80053b0: 693b ldr r3, [r7, #16] 80053b2: b29b uxth r3, r3 80053b4: 88fa ldrh r2, [r7, #6] 80053b6: 1ad3 subs r3, r2, r3 80053b8: b298 uxth r0, r3 80053ba: 68fb ldr r3, [r7, #12] 80053bc: b29a uxth r2, r3 80053be: 88bb ldrh r3, [r7, #4] 80053c0: 4413 add r3, r2 80053c2: b29c uxth r4, r3 80053c4: 4b2d ldr r3, [pc, #180] ; (800547c ) 80053c6: 681a ldr r2, [r3, #0] 80053c8: 492d ldr r1, [pc, #180] ; (8005480 ) 80053ca: 4613 mov r3, r2 80053cc: 005b lsls r3, r3, #1 80053ce: 4413 add r3, r2 80053d0: 009b lsls r3, r3, #2 80053d2: 440b add r3, r1 80053d4: 681b ldr r3, [r3, #0] 80053d6: 461a mov r2, r3 80053d8: 4621 mov r1, r4 80053da: f000 f853 bl 8005484 BSP_LCD_DrawPixel((Xpos + current_y), (Ypos + current_x), DrawProp[ActiveLayer].TextColor); 80053de: 68fb ldr r3, [r7, #12] 80053e0: b29a uxth r2, r3 80053e2: 88fb ldrh r3, [r7, #6] 80053e4: 4413 add r3, r2 80053e6: b298 uxth r0, r3 80053e8: 693b ldr r3, [r7, #16] 80053ea: b29a uxth r2, r3 80053ec: 88bb ldrh r3, [r7, #4] 80053ee: 4413 add r3, r2 80053f0: b29c uxth r4, r3 80053f2: 4b22 ldr r3, [pc, #136] ; (800547c ) 80053f4: 681a ldr r2, [r3, #0] 80053f6: 4922 ldr r1, [pc, #136] ; (8005480 ) 80053f8: 4613 mov r3, r2 80053fa: 005b lsls r3, r3, #1 80053fc: 4413 add r3, r2 80053fe: 009b lsls r3, r3, #2 8005400: 440b add r3, r1 8005402: 681b ldr r3, [r3, #0] 8005404: 461a mov r2, r3 8005406: 4621 mov r1, r4 8005408: f000 f83c bl 8005484 BSP_LCD_DrawPixel((Xpos - current_y), (Ypos + current_x), DrawProp[ActiveLayer].TextColor); 800540c: 68fb ldr r3, [r7, #12] 800540e: b29b uxth r3, r3 8005410: 88fa ldrh r2, [r7, #6] 8005412: 1ad3 subs r3, r2, r3 8005414: b298 uxth r0, r3 8005416: 693b ldr r3, [r7, #16] 8005418: b29a uxth r2, r3 800541a: 88bb ldrh r3, [r7, #4] 800541c: 4413 add r3, r2 800541e: b29c uxth r4, r3 8005420: 4b16 ldr r3, [pc, #88] ; (800547c ) 8005422: 681a ldr r2, [r3, #0] 8005424: 4916 ldr r1, [pc, #88] ; (8005480 ) 8005426: 4613 mov r3, r2 8005428: 005b lsls r3, r3, #1 800542a: 4413 add r3, r2 800542c: 009b lsls r3, r3, #2 800542e: 440b add r3, r1 8005430: 681b ldr r3, [r3, #0] 8005432: 461a mov r2, r3 8005434: 4621 mov r1, r4 8005436: f000 f825 bl 8005484 if (decision < 0) 800543a: 697b ldr r3, [r7, #20] 800543c: 2b00 cmp r3, #0 800543e: da06 bge.n 800544e { decision += (current_x << 2) + 6; 8005440: 693b ldr r3, [r7, #16] 8005442: 009a lsls r2, r3, #2 8005444: 697b ldr r3, [r7, #20] 8005446: 4413 add r3, r2 8005448: 3306 adds r3, #6 800544a: 617b str r3, [r7, #20] 800544c: e00a b.n 8005464 } else { decision += ((current_x - current_y) << 2) + 10; 800544e: 693a ldr r2, [r7, #16] 8005450: 68fb ldr r3, [r7, #12] 8005452: 1ad3 subs r3, r2, r3 8005454: 009a lsls r2, r3, #2 8005456: 697b ldr r3, [r7, #20] 8005458: 4413 add r3, r2 800545a: 330a adds r3, #10 800545c: 617b str r3, [r7, #20] current_y--; 800545e: 68fb ldr r3, [r7, #12] 8005460: 3b01 subs r3, #1 8005462: 60fb str r3, [r7, #12] } current_x++; 8005464: 693b ldr r3, [r7, #16] 8005466: 3301 adds r3, #1 8005468: 613b str r3, [r7, #16] while (current_x <= current_y) 800546a: 693a ldr r2, [r7, #16] 800546c: 68fb ldr r3, [r7, #12] 800546e: 429a cmp r2, r3 8005470: f67f af2b bls.w 80052ca } } 8005474: bf00 nop 8005476: 371c adds r7, #28 8005478: 46bd mov sp, r7 800547a: bd90 pop {r4, r7, pc} 800547c: 20020018 .word 0x20020018 8005480: 2006ba44 .word 0x2006ba44 08005484 : * @param Ypos: Y position * @param RGB_Code: Pixel color in ARGB mode (8-8-8-8) * @retval None */ void BSP_LCD_DrawPixel(uint16_t Xpos, uint16_t Ypos, uint32_t RGB_Code) { 8005484: b5b0 push {r4, r5, r7, lr} 8005486: b082 sub sp, #8 8005488: af00 add r7, sp, #0 800548a: 4603 mov r3, r0 800548c: 603a str r2, [r7, #0] 800548e: 80fb strh r3, [r7, #6] 8005490: 460b mov r3, r1 8005492: 80bb strh r3, [r7, #4] /* Write data value to all SDRAM memory */ if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565) 8005494: 4b2a ldr r3, [pc, #168] ; (8005540 ) 8005496: 681b ldr r3, [r3, #0] 8005498: 4a2a ldr r2, [pc, #168] ; (8005544 ) 800549a: 2134 movs r1, #52 ; 0x34 800549c: fb01 f303 mul.w r3, r1, r3 80054a0: 4413 add r3, r2 80054a2: 3348 adds r3, #72 ; 0x48 80054a4: 681b ldr r3, [r3, #0] 80054a6: 2b02 cmp r3, #2 80054a8: d12f bne.n 800550a { /* RGB565 format */ *(__IO uint16_t*) (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (2*(Ypos*BSP_LCD_GetXSize() + Xpos))) = COLOR24TO16(RGB_Code); 80054aa: 4b25 ldr r3, [pc, #148] ; (8005540 ) 80054ac: 681b ldr r3, [r3, #0] 80054ae: 4a25 ldr r2, [pc, #148] ; (8005544 ) 80054b0: 2134 movs r1, #52 ; 0x34 80054b2: fb01 f303 mul.w r3, r1, r3 80054b6: 4413 add r3, r2 80054b8: 335c adds r3, #92 ; 0x5c 80054ba: 681c ldr r4, [r3, #0] 80054bc: 88bd ldrh r5, [r7, #4] 80054be: f7ff fbd3 bl 8004c68 80054c2: 4603 mov r3, r0 80054c4: fb03 f205 mul.w r2, r3, r5 80054c8: 88fb ldrh r3, [r7, #6] 80054ca: 4413 add r3, r2 80054cc: 005b lsls r3, r3, #1 80054ce: 4423 add r3, r4 80054d0: 4619 mov r1, r3 80054d2: 683b ldr r3, [r7, #0] 80054d4: 0c1b lsrs r3, r3, #16 80054d6: b29b uxth r3, r3 80054d8: 021b lsls r3, r3, #8 80054da: b29a uxth r2, r3 80054dc: 4b1a ldr r3, [pc, #104] ; (8005548 ) 80054de: 4013 ands r3, r2 80054e0: b29a uxth r2, r3 80054e2: 683b ldr r3, [r7, #0] 80054e4: 0a1b lsrs r3, r3, #8 80054e6: b29b uxth r3, r3 80054e8: 00db lsls r3, r3, #3 80054ea: b29b uxth r3, r3 80054ec: f403 63fc and.w r3, r3, #2016 ; 0x7e0 80054f0: b29b uxth r3, r3 80054f2: 4313 orrs r3, r2 80054f4: b29a uxth r2, r3 80054f6: 683b ldr r3, [r7, #0] 80054f8: 08db lsrs r3, r3, #3 80054fa: b29b uxth r3, r3 80054fc: f003 031f and.w r3, r3, #31 8005500: b29b uxth r3, r3 8005502: 4313 orrs r3, r2 8005504: b29b uxth r3, r3 8005506: 800b strh r3, [r1, #0] } else { /* ARGB8888 format */ *(__IO uint32_t*) (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (4*(Ypos*BSP_LCD_GetXSize() + Xpos))) = RGB_Code; } } 8005508: e015 b.n 8005536 *(__IO uint32_t*) (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (4*(Ypos*BSP_LCD_GetXSize() + Xpos))) = RGB_Code; 800550a: 4b0d ldr r3, [pc, #52] ; (8005540 ) 800550c: 681b ldr r3, [r3, #0] 800550e: 4a0d ldr r2, [pc, #52] ; (8005544 ) 8005510: 2134 movs r1, #52 ; 0x34 8005512: fb01 f303 mul.w r3, r1, r3 8005516: 4413 add r3, r2 8005518: 335c adds r3, #92 ; 0x5c 800551a: 681c ldr r4, [r3, #0] 800551c: 88bd ldrh r5, [r7, #4] 800551e: f7ff fba3 bl 8004c68 8005522: 4603 mov r3, r0 8005524: fb03 f205 mul.w r2, r3, r5 8005528: 88fb ldrh r3, [r7, #6] 800552a: 4413 add r3, r2 800552c: 009b lsls r3, r3, #2 800552e: 4423 add r3, r4 8005530: 461a mov r2, r3 8005532: 683b ldr r3, [r7, #0] 8005534: 6013 str r3, [r2, #0] } 8005536: bf00 nop 8005538: 3708 adds r7, #8 800553a: 46bd mov sp, r7 800553c: bdb0 pop {r4, r5, r7, pc} 800553e: bf00 nop 8005540: 20020018 .word 0x20020018 8005544: 2006c174 .word 0x2006c174 8005548: fffff800 .word 0xfffff800 0800554c : * @param Width: Rectangle width * @param Height: Rectangle height * @retval None */ void BSP_LCD_FillRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height) { 800554c: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} 8005550: b086 sub sp, #24 8005552: af02 add r7, sp, #8 8005554: 4604 mov r4, r0 8005556: 4608 mov r0, r1 8005558: 4611 mov r1, r2 800555a: 461a mov r2, r3 800555c: 4623 mov r3, r4 800555e: 80fb strh r3, [r7, #6] 8005560: 4603 mov r3, r0 8005562: 80bb strh r3, [r7, #4] 8005564: 460b mov r3, r1 8005566: 807b strh r3, [r7, #2] 8005568: 4613 mov r3, r2 800556a: 803b strh r3, [r7, #0] uint32_t x_address = 0; 800556c: 2300 movs r3, #0 800556e: 60fb str r3, [r7, #12] /* Set the text color */ BSP_LCD_SetTextColor(DrawProp[ActiveLayer].TextColor); 8005570: 4b30 ldr r3, [pc, #192] ; (8005634 ) 8005572: 681a ldr r2, [r3, #0] 8005574: 4930 ldr r1, [pc, #192] ; (8005638 ) 8005576: 4613 mov r3, r2 8005578: 005b lsls r3, r3, #1 800557a: 4413 add r3, r2 800557c: 009b lsls r3, r3, #2 800557e: 440b add r3, r1 8005580: 681b ldr r3, [r3, #0] 8005582: 4618 mov r0, r3 8005584: f7ff fc44 bl 8004e10 /* Get the rectangle start address */ if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565) 8005588: 4b2a ldr r3, [pc, #168] ; (8005634 ) 800558a: 681b ldr r3, [r3, #0] 800558c: 4a2b ldr r2, [pc, #172] ; (800563c ) 800558e: 2134 movs r1, #52 ; 0x34 8005590: fb01 f303 mul.w r3, r1, r3 8005594: 4413 add r3, r2 8005596: 3348 adds r3, #72 ; 0x48 8005598: 681b ldr r3, [r3, #0] 800559a: 2b02 cmp r3, #2 800559c: d114 bne.n 80055c8 { /* RGB565 format */ x_address = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 2*(BSP_LCD_GetXSize()*Ypos + Xpos); 800559e: 4b25 ldr r3, [pc, #148] ; (8005634 ) 80055a0: 681b ldr r3, [r3, #0] 80055a2: 4a26 ldr r2, [pc, #152] ; (800563c ) 80055a4: 2134 movs r1, #52 ; 0x34 80055a6: fb01 f303 mul.w r3, r1, r3 80055aa: 4413 add r3, r2 80055ac: 335c adds r3, #92 ; 0x5c 80055ae: 681c ldr r4, [r3, #0] 80055b0: f7ff fb5a bl 8004c68 80055b4: 4602 mov r2, r0 80055b6: 88bb ldrh r3, [r7, #4] 80055b8: fb03 f202 mul.w r2, r3, r2 80055bc: 88fb ldrh r3, [r7, #6] 80055be: 4413 add r3, r2 80055c0: 005b lsls r3, r3, #1 80055c2: 4423 add r3, r4 80055c4: 60fb str r3, [r7, #12] 80055c6: e013 b.n 80055f0 } else { /* ARGB8888 format */ x_address = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 4*(BSP_LCD_GetXSize()*Ypos + Xpos); 80055c8: 4b1a ldr r3, [pc, #104] ; (8005634 ) 80055ca: 681b ldr r3, [r3, #0] 80055cc: 4a1b ldr r2, [pc, #108] ; (800563c ) 80055ce: 2134 movs r1, #52 ; 0x34 80055d0: fb01 f303 mul.w r3, r1, r3 80055d4: 4413 add r3, r2 80055d6: 335c adds r3, #92 ; 0x5c 80055d8: 681c ldr r4, [r3, #0] 80055da: f7ff fb45 bl 8004c68 80055de: 4602 mov r2, r0 80055e0: 88bb ldrh r3, [r7, #4] 80055e2: fb03 f202 mul.w r2, r3, r2 80055e6: 88fb ldrh r3, [r7, #6] 80055e8: 4413 add r3, r2 80055ea: 009b lsls r3, r3, #2 80055ec: 4423 add r3, r4 80055ee: 60fb str r3, [r7, #12] } /* Fill the rectangle */ LL_FillBuffer(ActiveLayer, (uint32_t *)x_address, Width, Height, (BSP_LCD_GetXSize() - Width), DrawProp[ActiveLayer].TextColor); 80055f0: 4b10 ldr r3, [pc, #64] ; (8005634 ) 80055f2: 681c ldr r4, [r3, #0] 80055f4: 68fd ldr r5, [r7, #12] 80055f6: 887e ldrh r6, [r7, #2] 80055f8: f8b7 8000 ldrh.w r8, [r7] 80055fc: f7ff fb34 bl 8004c68 8005600: 4602 mov r2, r0 8005602: 887b ldrh r3, [r7, #2] 8005604: 1ad1 subs r1, r2, r3 8005606: 4b0b ldr r3, [pc, #44] ; (8005634 ) 8005608: 681a ldr r2, [r3, #0] 800560a: 480b ldr r0, [pc, #44] ; (8005638 ) 800560c: 4613 mov r3, r2 800560e: 005b lsls r3, r3, #1 8005610: 4413 add r3, r2 8005612: 009b lsls r3, r3, #2 8005614: 4403 add r3, r0 8005616: 681b ldr r3, [r3, #0] 8005618: 9301 str r3, [sp, #4] 800561a: 9100 str r1, [sp, #0] 800561c: 4643 mov r3, r8 800561e: 4632 mov r2, r6 8005620: 4629 mov r1, r5 8005622: 4620 mov r0, r4 8005624: f000 f964 bl 80058f0 } 8005628: bf00 nop 800562a: 3710 adds r7, #16 800562c: 46bd mov sp, r7 800562e: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} 8005632: bf00 nop 8005634: 20020018 .word 0x20020018 8005638: 2006ba44 .word 0x2006ba44 800563c: 2006c174 .word 0x2006c174 08005640 : * @param Ypos: Y position * @param Radius: Circle radius * @retval None */ void BSP_LCD_FillCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius) { 8005640: b580 push {r7, lr} 8005642: b086 sub sp, #24 8005644: af00 add r7, sp, #0 8005646: 4603 mov r3, r0 8005648: 80fb strh r3, [r7, #6] 800564a: 460b mov r3, r1 800564c: 80bb strh r3, [r7, #4] 800564e: 4613 mov r3, r2 8005650: 807b strh r3, [r7, #2] int32_t decision; /* Decision Variable */ uint32_t current_x; /* Current X Value */ uint32_t current_y; /* Current Y Value */ decision = 3 - (Radius << 1); 8005652: 887b ldrh r3, [r7, #2] 8005654: 005b lsls r3, r3, #1 8005656: f1c3 0303 rsb r3, r3, #3 800565a: 617b str r3, [r7, #20] current_x = 0; 800565c: 2300 movs r3, #0 800565e: 613b str r3, [r7, #16] current_y = Radius; 8005660: 887b ldrh r3, [r7, #2] 8005662: 60fb str r3, [r7, #12] BSP_LCD_SetTextColor(DrawProp[ActiveLayer].TextColor); 8005664: 4b44 ldr r3, [pc, #272] ; (8005778 ) 8005666: 681a ldr r2, [r3, #0] 8005668: 4944 ldr r1, [pc, #272] ; (800577c ) 800566a: 4613 mov r3, r2 800566c: 005b lsls r3, r3, #1 800566e: 4413 add r3, r2 8005670: 009b lsls r3, r3, #2 8005672: 440b add r3, r1 8005674: 681b ldr r3, [r3, #0] 8005676: 4618 mov r0, r3 8005678: f7ff fbca bl 8004e10 while (current_x <= current_y) 800567c: e061 b.n 8005742 { if(current_y > 0) 800567e: 68fb ldr r3, [r7, #12] 8005680: 2b00 cmp r3, #0 8005682: d021 beq.n 80056c8 { BSP_LCD_DrawHLine(Xpos - current_y, Ypos + current_x, 2*current_y); 8005684: 68fb ldr r3, [r7, #12] 8005686: b29b uxth r3, r3 8005688: 88fa ldrh r2, [r7, #6] 800568a: 1ad3 subs r3, r2, r3 800568c: b298 uxth r0, r3 800568e: 693b ldr r3, [r7, #16] 8005690: b29a uxth r2, r3 8005692: 88bb ldrh r3, [r7, #4] 8005694: 4413 add r3, r2 8005696: b299 uxth r1, r3 8005698: 68fb ldr r3, [r7, #12] 800569a: b29b uxth r3, r3 800569c: 005b lsls r3, r3, #1 800569e: b29b uxth r3, r3 80056a0: 461a mov r2, r3 80056a2: f7ff fd0b bl 80050bc BSP_LCD_DrawHLine(Xpos - current_y, Ypos - current_x, 2*current_y); 80056a6: 68fb ldr r3, [r7, #12] 80056a8: b29b uxth r3, r3 80056aa: 88fa ldrh r2, [r7, #6] 80056ac: 1ad3 subs r3, r2, r3 80056ae: b298 uxth r0, r3 80056b0: 693b ldr r3, [r7, #16] 80056b2: b29b uxth r3, r3 80056b4: 88ba ldrh r2, [r7, #4] 80056b6: 1ad3 subs r3, r2, r3 80056b8: b299 uxth r1, r3 80056ba: 68fb ldr r3, [r7, #12] 80056bc: b29b uxth r3, r3 80056be: 005b lsls r3, r3, #1 80056c0: b29b uxth r3, r3 80056c2: 461a mov r2, r3 80056c4: f7ff fcfa bl 80050bc } if(current_x > 0) 80056c8: 693b ldr r3, [r7, #16] 80056ca: 2b00 cmp r3, #0 80056cc: d021 beq.n 8005712 { BSP_LCD_DrawHLine(Xpos - current_x, Ypos - current_y, 2*current_x); 80056ce: 693b ldr r3, [r7, #16] 80056d0: b29b uxth r3, r3 80056d2: 88fa ldrh r2, [r7, #6] 80056d4: 1ad3 subs r3, r2, r3 80056d6: b298 uxth r0, r3 80056d8: 68fb ldr r3, [r7, #12] 80056da: b29b uxth r3, r3 80056dc: 88ba ldrh r2, [r7, #4] 80056de: 1ad3 subs r3, r2, r3 80056e0: b299 uxth r1, r3 80056e2: 693b ldr r3, [r7, #16] 80056e4: b29b uxth r3, r3 80056e6: 005b lsls r3, r3, #1 80056e8: b29b uxth r3, r3 80056ea: 461a mov r2, r3 80056ec: f7ff fce6 bl 80050bc BSP_LCD_DrawHLine(Xpos - current_x, Ypos + current_y, 2*current_x); 80056f0: 693b ldr r3, [r7, #16] 80056f2: b29b uxth r3, r3 80056f4: 88fa ldrh r2, [r7, #6] 80056f6: 1ad3 subs r3, r2, r3 80056f8: b298 uxth r0, r3 80056fa: 68fb ldr r3, [r7, #12] 80056fc: b29a uxth r2, r3 80056fe: 88bb ldrh r3, [r7, #4] 8005700: 4413 add r3, r2 8005702: b299 uxth r1, r3 8005704: 693b ldr r3, [r7, #16] 8005706: b29b uxth r3, r3 8005708: 005b lsls r3, r3, #1 800570a: b29b uxth r3, r3 800570c: 461a mov r2, r3 800570e: f7ff fcd5 bl 80050bc } if (decision < 0) 8005712: 697b ldr r3, [r7, #20] 8005714: 2b00 cmp r3, #0 8005716: da06 bge.n 8005726 { decision += (current_x << 2) + 6; 8005718: 693b ldr r3, [r7, #16] 800571a: 009a lsls r2, r3, #2 800571c: 697b ldr r3, [r7, #20] 800571e: 4413 add r3, r2 8005720: 3306 adds r3, #6 8005722: 617b str r3, [r7, #20] 8005724: e00a b.n 800573c } else { decision += ((current_x - current_y) << 2) + 10; 8005726: 693a ldr r2, [r7, #16] 8005728: 68fb ldr r3, [r7, #12] 800572a: 1ad3 subs r3, r2, r3 800572c: 009a lsls r2, r3, #2 800572e: 697b ldr r3, [r7, #20] 8005730: 4413 add r3, r2 8005732: 330a adds r3, #10 8005734: 617b str r3, [r7, #20] current_y--; 8005736: 68fb ldr r3, [r7, #12] 8005738: 3b01 subs r3, #1 800573a: 60fb str r3, [r7, #12] } current_x++; 800573c: 693b ldr r3, [r7, #16] 800573e: 3301 adds r3, #1 8005740: 613b str r3, [r7, #16] while (current_x <= current_y) 8005742: 693a ldr r2, [r7, #16] 8005744: 68fb ldr r3, [r7, #12] 8005746: 429a cmp r2, r3 8005748: d999 bls.n 800567e } BSP_LCD_SetTextColor(DrawProp[ActiveLayer].TextColor); 800574a: 4b0b ldr r3, [pc, #44] ; (8005778 ) 800574c: 681a ldr r2, [r3, #0] 800574e: 490b ldr r1, [pc, #44] ; (800577c ) 8005750: 4613 mov r3, r2 8005752: 005b lsls r3, r3, #1 8005754: 4413 add r3, r2 8005756: 009b lsls r3, r3, #2 8005758: 440b add r3, r1 800575a: 681b ldr r3, [r3, #0] 800575c: 4618 mov r0, r3 800575e: f7ff fb57 bl 8004e10 BSP_LCD_DrawCircle(Xpos, Ypos, Radius); 8005762: 887a ldrh r2, [r7, #2] 8005764: 88b9 ldrh r1, [r7, #4] 8005766: 88fb ldrh r3, [r7, #6] 8005768: 4618 mov r0, r3 800576a: f7ff fd9b bl 80052a4 } 800576e: bf00 nop 8005770: 3718 adds r7, #24 8005772: 46bd mov sp, r7 8005774: bd80 pop {r7, pc} 8005776: bf00 nop 8005778: 20020018 .word 0x20020018 800577c: 2006ba44 .word 0x2006ba44 08005780 : * @param Ypos: Start column address * @param c: Pointer to the character data * @retval None */ static void DrawChar(uint16_t Xpos, uint16_t Ypos, const uint8_t *c) { 8005780: b580 push {r7, lr} 8005782: b088 sub sp, #32 8005784: af00 add r7, sp, #0 8005786: 4603 mov r3, r0 8005788: 603a str r2, [r7, #0] 800578a: 80fb strh r3, [r7, #6] 800578c: 460b mov r3, r1 800578e: 80bb strh r3, [r7, #4] uint32_t i = 0, j = 0; 8005790: 2300 movs r3, #0 8005792: 61fb str r3, [r7, #28] 8005794: 2300 movs r3, #0 8005796: 61bb str r3, [r7, #24] uint8_t offset; uint8_t *pchar; uint32_t line; //uint16_t b; height = DrawProp[ActiveLayer].pFont->Height; 8005798: 4b53 ldr r3, [pc, #332] ; (80058e8 ) 800579a: 681a ldr r2, [r3, #0] 800579c: 4953 ldr r1, [pc, #332] ; (80058ec ) 800579e: 4613 mov r3, r2 80057a0: 005b lsls r3, r3, #1 80057a2: 4413 add r3, r2 80057a4: 009b lsls r3, r3, #2 80057a6: 440b add r3, r1 80057a8: 3308 adds r3, #8 80057aa: 681b ldr r3, [r3, #0] 80057ac: 88db ldrh r3, [r3, #6] 80057ae: 827b strh r3, [r7, #18] width = DrawProp[ActiveLayer].pFont->Width; 80057b0: 4b4d ldr r3, [pc, #308] ; (80058e8 ) 80057b2: 681a ldr r2, [r3, #0] 80057b4: 494d ldr r1, [pc, #308] ; (80058ec ) 80057b6: 4613 mov r3, r2 80057b8: 005b lsls r3, r3, #1 80057ba: 4413 add r3, r2 80057bc: 009b lsls r3, r3, #2 80057be: 440b add r3, r1 80057c0: 3308 adds r3, #8 80057c2: 681b ldr r3, [r3, #0] 80057c4: 889b ldrh r3, [r3, #4] 80057c6: 823b strh r3, [r7, #16] offset = 8 *((width + 7)/8) - width ; 80057c8: 8a3b ldrh r3, [r7, #16] 80057ca: 3307 adds r3, #7 80057cc: 2b00 cmp r3, #0 80057ce: da00 bge.n 80057d2 80057d0: 3307 adds r3, #7 80057d2: 10db asrs r3, r3, #3 80057d4: b2db uxtb r3, r3 80057d6: 00db lsls r3, r3, #3 80057d8: b2da uxtb r2, r3 80057da: 8a3b ldrh r3, [r7, #16] 80057dc: b2db uxtb r3, r3 80057de: 1ad3 subs r3, r2, r3 80057e0: 73fb strb r3, [r7, #15] for(i = 0; i < height; i++) 80057e2: 2300 movs r3, #0 80057e4: 61fb str r3, [r7, #28] 80057e6: e076 b.n 80058d6 { pchar = ((uint8_t *)c + (width + 7)/8 * i); 80057e8: 8a3b ldrh r3, [r7, #16] 80057ea: 3307 adds r3, #7 80057ec: 2b00 cmp r3, #0 80057ee: da00 bge.n 80057f2 80057f0: 3307 adds r3, #7 80057f2: 10db asrs r3, r3, #3 80057f4: 461a mov r2, r3 80057f6: 69fb ldr r3, [r7, #28] 80057f8: fb03 f302 mul.w r3, r3, r2 80057fc: 683a ldr r2, [r7, #0] 80057fe: 4413 add r3, r2 8005800: 60bb str r3, [r7, #8] switch(((width + 7)/8)) 8005802: 8a3b ldrh r3, [r7, #16] 8005804: 3307 adds r3, #7 8005806: 2b00 cmp r3, #0 8005808: da00 bge.n 800580c 800580a: 3307 adds r3, #7 800580c: 10db asrs r3, r3, #3 800580e: 2b01 cmp r3, #1 8005810: d002 beq.n 8005818 8005812: 2b02 cmp r3, #2 8005814: d004 beq.n 8005820 8005816: e00c b.n 8005832 { case 1: line = pchar[0]; 8005818: 68bb ldr r3, [r7, #8] 800581a: 781b ldrb r3, [r3, #0] 800581c: 617b str r3, [r7, #20] break; 800581e: e016 b.n 800584e case 2: line = (pchar[0]<< 8) | pchar[1]; 8005820: 68bb ldr r3, [r7, #8] 8005822: 781b ldrb r3, [r3, #0] 8005824: 021b lsls r3, r3, #8 8005826: 68ba ldr r2, [r7, #8] 8005828: 3201 adds r2, #1 800582a: 7812 ldrb r2, [r2, #0] 800582c: 4313 orrs r3, r2 800582e: 617b str r3, [r7, #20] break; 8005830: e00d b.n 800584e case 3: default: line = (pchar[0]<< 16) | (pchar[1]<< 8) | pchar[2]; 8005832: 68bb ldr r3, [r7, #8] 8005834: 781b ldrb r3, [r3, #0] 8005836: 041a lsls r2, r3, #16 8005838: 68bb ldr r3, [r7, #8] 800583a: 3301 adds r3, #1 800583c: 781b ldrb r3, [r3, #0] 800583e: 021b lsls r3, r3, #8 8005840: 4313 orrs r3, r2 8005842: 68ba ldr r2, [r7, #8] 8005844: 3202 adds r2, #2 8005846: 7812 ldrb r2, [r2, #0] 8005848: 4313 orrs r3, r2 800584a: 617b str r3, [r7, #20] break; 800584c: bf00 nop } for (j = 0; j < width; j++) 800584e: 2300 movs r3, #0 8005850: 61bb str r3, [r7, #24] 8005852: e036 b.n 80058c2 { if(line & (1 << (width- j + offset- 1))) 8005854: 8a3a ldrh r2, [r7, #16] 8005856: 69bb ldr r3, [r7, #24] 8005858: 1ad2 subs r2, r2, r3 800585a: 7bfb ldrb r3, [r7, #15] 800585c: 4413 add r3, r2 800585e: 3b01 subs r3, #1 8005860: 2201 movs r2, #1 8005862: fa02 f303 lsl.w r3, r2, r3 8005866: 461a mov r2, r3 8005868: 697b ldr r3, [r7, #20] 800586a: 4013 ands r3, r2 800586c: 2b00 cmp r3, #0 800586e: d012 beq.n 8005896 { BSP_LCD_DrawPixel((Xpos + j), Ypos, DrawProp[ActiveLayer].TextColor); 8005870: 69bb ldr r3, [r7, #24] 8005872: b29a uxth r2, r3 8005874: 88fb ldrh r3, [r7, #6] 8005876: 4413 add r3, r2 8005878: b298 uxth r0, r3 800587a: 4b1b ldr r3, [pc, #108] ; (80058e8 ) 800587c: 681a ldr r2, [r3, #0] 800587e: 491b ldr r1, [pc, #108] ; (80058ec ) 8005880: 4613 mov r3, r2 8005882: 005b lsls r3, r3, #1 8005884: 4413 add r3, r2 8005886: 009b lsls r3, r3, #2 8005888: 440b add r3, r1 800588a: 681a ldr r2, [r3, #0] 800588c: 88bb ldrh r3, [r7, #4] 800588e: 4619 mov r1, r3 8005890: f7ff fdf8 bl 8005484 8005894: e012 b.n 80058bc } else { BSP_LCD_DrawPixel((Xpos + j), Ypos, DrawProp[ActiveLayer].BackColor); 8005896: 69bb ldr r3, [r7, #24] 8005898: b29a uxth r2, r3 800589a: 88fb ldrh r3, [r7, #6] 800589c: 4413 add r3, r2 800589e: b298 uxth r0, r3 80058a0: 4b11 ldr r3, [pc, #68] ; (80058e8 ) 80058a2: 681a ldr r2, [r3, #0] 80058a4: 4911 ldr r1, [pc, #68] ; (80058ec ) 80058a6: 4613 mov r3, r2 80058a8: 005b lsls r3, r3, #1 80058aa: 4413 add r3, r2 80058ac: 009b lsls r3, r3, #2 80058ae: 440b add r3, r1 80058b0: 3304 adds r3, #4 80058b2: 681a ldr r2, [r3, #0] 80058b4: 88bb ldrh r3, [r7, #4] 80058b6: 4619 mov r1, r3 80058b8: f7ff fde4 bl 8005484 for (j = 0; j < width; j++) 80058bc: 69bb ldr r3, [r7, #24] 80058be: 3301 adds r3, #1 80058c0: 61bb str r3, [r7, #24] 80058c2: 8a3a ldrh r2, [r7, #16] 80058c4: 69bb ldr r3, [r7, #24] 80058c6: 429a cmp r2, r3 80058c8: d8c4 bhi.n 8005854 } } Ypos++; 80058ca: 88bb ldrh r3, [r7, #4] 80058cc: 3301 adds r3, #1 80058ce: 80bb strh r3, [r7, #4] for(i = 0; i < height; i++) 80058d0: 69fb ldr r3, [r7, #28] 80058d2: 3301 adds r3, #1 80058d4: 61fb str r3, [r7, #28] 80058d6: 8a7a ldrh r2, [r7, #18] 80058d8: 69fb ldr r3, [r7, #28] 80058da: 429a cmp r2, r3 80058dc: d884 bhi.n 80057e8 } } 80058de: bf00 nop 80058e0: 3720 adds r7, #32 80058e2: 46bd mov sp, r7 80058e4: bd80 pop {r7, pc} 80058e6: bf00 nop 80058e8: 20020018 .word 0x20020018 80058ec: 2006ba44 .word 0x2006ba44 080058f0 : * @param OffLine: Offset * @param ColorIndex: Color index * @retval None */ static void LL_FillBuffer(uint32_t LayerIndex, void *pDst, uint32_t xSize, uint32_t ySize, uint32_t OffLine, uint32_t ColorIndex) { 80058f0: b580 push {r7, lr} 80058f2: b086 sub sp, #24 80058f4: af02 add r7, sp, #8 80058f6: 60f8 str r0, [r7, #12] 80058f8: 60b9 str r1, [r7, #8] 80058fa: 607a str r2, [r7, #4] 80058fc: 603b str r3, [r7, #0] /* Register to memory mode with ARGB8888 as color Mode */ hDma2dHandler.Init.Mode = DMA2D_R2M; 80058fe: 4b1e ldr r3, [pc, #120] ; (8005978 ) 8005900: f44f 3240 mov.w r2, #196608 ; 0x30000 8005904: 605a str r2, [r3, #4] if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565) 8005906: 4b1d ldr r3, [pc, #116] ; (800597c ) 8005908: 681b ldr r3, [r3, #0] 800590a: 4a1d ldr r2, [pc, #116] ; (8005980 ) 800590c: 2134 movs r1, #52 ; 0x34 800590e: fb01 f303 mul.w r3, r1, r3 8005912: 4413 add r3, r2 8005914: 3348 adds r3, #72 ; 0x48 8005916: 681b ldr r3, [r3, #0] 8005918: 2b02 cmp r3, #2 800591a: d103 bne.n 8005924 hDma2dHandler.Init.ColorMode = DMA2D_RGB565; 800591c: 4b16 ldr r3, [pc, #88] ; (8005978 ) 800591e: 2202 movs r2, #2 8005920: 609a str r2, [r3, #8] 8005922: e002 b.n 800592a else hDma2dHandler.Init.ColorMode = DMA2D_ARGB8888; 8005924: 4b14 ldr r3, [pc, #80] ; (8005978 ) 8005926: 2200 movs r2, #0 8005928: 609a str r2, [r3, #8] hDma2dHandler.Init.OutputOffset = OffLine; 800592a: 4a13 ldr r2, [pc, #76] ; (8005978 ) 800592c: 69bb ldr r3, [r7, #24] 800592e: 60d3 str r3, [r2, #12] hDma2dHandler.Instance = DMA2D; 8005930: 4b11 ldr r3, [pc, #68] ; (8005978 ) 8005932: 4a14 ldr r2, [pc, #80] ; (8005984 ) 8005934: 601a str r2, [r3, #0] if(HAL_DMA2D_Init(&hDma2dHandler) == HAL_OK) 8005936: 4810 ldr r0, [pc, #64] ; (8005978 ) 8005938: f00c f9da bl 8011cf0 800593c: 4603 mov r3, r0 800593e: 2b00 cmp r3, #0 8005940: d115 bne.n 800596e { if(HAL_DMA2D_ConfigLayer(&hDma2dHandler, LayerIndex) == HAL_OK) 8005942: 68f9 ldr r1, [r7, #12] 8005944: 480c ldr r0, [pc, #48] ; (8005978 ) 8005946: f00c fb41 bl 8011fcc 800594a: 4603 mov r3, r0 800594c: 2b00 cmp r3, #0 800594e: d10e bne.n 800596e { if (HAL_DMA2D_Start(&hDma2dHandler, ColorIndex, (uint32_t)pDst, xSize, ySize) == HAL_OK) 8005950: 68ba ldr r2, [r7, #8] 8005952: 683b ldr r3, [r7, #0] 8005954: 9300 str r3, [sp, #0] 8005956: 687b ldr r3, [r7, #4] 8005958: 69f9 ldr r1, [r7, #28] 800595a: 4807 ldr r0, [pc, #28] ; (8005978 ) 800595c: f00c fa22 bl 8011da4 8005960: 4603 mov r3, r0 8005962: 2b00 cmp r3, #0 8005964: d103 bne.n 800596e { HAL_DMA2D_PollForTransfer(&hDma2dHandler, 30); 8005966: 211e movs r1, #30 8005968: 4803 ldr r0, [pc, #12] ; (8005978 ) 800596a: f00c fa46 bl 8011dfa } } } } 800596e: bf00 nop 8005970: 3710 adds r7, #16 8005972: 46bd mov sp, r7 8005974: bd80 pop {r7, pc} 8005976: bf00 nop 8005978: 2006b9ec .word 0x2006b9ec 800597c: 20020018 .word 0x20020018 8005980: 2006c174 .word 0x2006c174 8005984: 4002b000 .word 0x4002b000 08005988 : } } void DrawImage(const GUI_BITMAP * pBM, uint16_t x0, uint16_t y0) { 8005988: b580 push {r7, lr} 800598a: b088 sub sp, #32 800598c: af02 add r7, sp, #8 800598e: 6078 str r0, [r7, #4] 8005990: 460b mov r3, r1 8005992: 807b strh r3, [r7, #2] 8005994: 4613 mov r3, r2 8005996: 803b strh r3, [r7, #0] //HAL_StatusTypeDef hal_status = HAL_OK; uint32_t Xaddress = 0; 8005998: 2300 movs r3, #0 800599a: 617b str r3, [r7, #20] uint8_t * p; uint16_t xSize = pBM->XSize; 800599c: 687b ldr r3, [r7, #4] 800599e: 881b ldrh r3, [r3, #0] 80059a0: 827b strh r3, [r7, #18] uint16_t ySize = pBM->YSize; 80059a2: 687b ldr r3, [r7, #4] 80059a4: 885b ldrh r3, [r3, #2] 80059a6: 823b strh r3, [r7, #16] //uint16_t BytesPerLine = pBM->BytesPerLine; p = (uint8_t *) pBM->pData; 80059a8: 687b ldr r3, [r7, #4] 80059aa: 689b ldr r3, [r3, #8] 80059ac: 60fb str r3, [r7, #12] Xaddress = hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + ((320 * y0 + x0) << 1); 80059ae: 4b39 ldr r3, [pc, #228] ; (8005a94 ) 80059b0: 681b ldr r3, [r3, #0] 80059b2: 4a39 ldr r2, [pc, #228] ; (8005a98 ) 80059b4: 2134 movs r1, #52 ; 0x34 80059b6: fb01 f303 mul.w r3, r1, r3 80059ba: 4413 add r3, r2 80059bc: 335c adds r3, #92 ; 0x5c 80059be: 6819 ldr r1, [r3, #0] 80059c0: 883a ldrh r2, [r7, #0] 80059c2: 4613 mov r3, r2 80059c4: 009b lsls r3, r3, #2 80059c6: 4413 add r3, r2 80059c8: 019b lsls r3, r3, #6 80059ca: 461a mov r2, r3 80059cc: 887b ldrh r3, [r7, #2] 80059ce: 4413 add r3, r2 80059d0: 005b lsls r3, r3, #1 80059d2: 440b add r3, r1 80059d4: 617b str r3, [r7, #20] hDma2dHandler.Init.Mode = DMA2D_M2M; 80059d6: 4b31 ldr r3, [pc, #196] ; (8005a9c ) 80059d8: 2200 movs r2, #0 80059da: 605a str r2, [r3, #4] hDma2dHandler.Init.ColorMode = DMA2D_RGB565; 80059dc: 4b2f ldr r3, [pc, #188] ; (8005a9c ) 80059de: 2202 movs r2, #2 80059e0: 609a str r2, [r3, #8] hDma2dHandler.Init.OutputOffset = 320 - xSize; 80059e2: 8a7b ldrh r3, [r7, #18] 80059e4: f5c3 73a0 rsb r3, r3, #320 ; 0x140 80059e8: 461a mov r2, r3 80059ea: 4b2c ldr r3, [pc, #176] ; (8005a9c ) 80059ec: 60da str r2, [r3, #12] /* DMA2D Callbacks Configuration */ hDma2dHandler.XferCpltCallback = TransferComplete; 80059ee: 4b2b ldr r3, [pc, #172] ; (8005a9c ) 80059f0: 4a2b ldr r2, [pc, #172] ; (8005aa0 ) 80059f2: 619a str r2, [r3, #24] hDma2dHandler.XferErrorCallback = TransferError; 80059f4: 4b29 ldr r3, [pc, #164] ; (8005a9c ) 80059f6: 4a2b ldr r2, [pc, #172] ; (8005aa4 ) 80059f8: 61da str r2, [r3, #28] /* Foreground layer Configuration : layer 1 */ hDma2dHandler.LayerCfg[ActiveLayer].AlphaMode = DMA2D_NO_MODIF_ALPHA; 80059fa: 4b26 ldr r3, [pc, #152] ; (8005a94 ) 80059fc: 681a ldr r2, [r3, #0] 80059fe: 4927 ldr r1, [pc, #156] ; (8005a9c ) 8005a00: 4613 mov r3, r2 8005a02: 005b lsls r3, r3, #1 8005a04: 4413 add r3, r2 8005a06: 00db lsls r3, r3, #3 8005a08: 440b add r3, r1 8005a0a: 3328 adds r3, #40 ; 0x28 8005a0c: 2200 movs r2, #0 8005a0e: 601a str r2, [r3, #0] hDma2dHandler.LayerCfg[ActiveLayer].InputAlpha = 255; /* Alpha fully opaque */ 8005a10: 4b20 ldr r3, [pc, #128] ; (8005a94 ) 8005a12: 681a ldr r2, [r3, #0] 8005a14: 4921 ldr r1, [pc, #132] ; (8005a9c ) 8005a16: 4613 mov r3, r2 8005a18: 005b lsls r3, r3, #1 8005a1a: 4413 add r3, r2 8005a1c: 00db lsls r3, r3, #3 8005a1e: 440b add r3, r1 8005a20: 332c adds r3, #44 ; 0x2c 8005a22: 22ff movs r2, #255 ; 0xff 8005a24: 601a str r2, [r3, #0] hDma2dHandler.LayerCfg[ActiveLayer].InputColorMode = DMA2D_INPUT_RGB565; /* Layer 1 input format is ARGB8888 (32 bpp) */ 8005a26: 4b1b ldr r3, [pc, #108] ; (8005a94 ) 8005a28: 681a ldr r2, [r3, #0] 8005a2a: 491c ldr r1, [pc, #112] ; (8005a9c ) 8005a2c: 4613 mov r3, r2 8005a2e: 005b lsls r3, r3, #1 8005a30: 4413 add r3, r2 8005a32: 00db lsls r3, r3, #3 8005a34: 440b add r3, r1 8005a36: 3324 adds r3, #36 ; 0x24 8005a38: 2202 movs r2, #2 8005a3a: 601a str r2, [r3, #0] hDma2dHandler.LayerCfg[ActiveLayer].InputOffset = 0; /* No offset in input */ 8005a3c: 4b15 ldr r3, [pc, #84] ; (8005a94 ) 8005a3e: 681a ldr r2, [r3, #0] 8005a40: 4916 ldr r1, [pc, #88] ; (8005a9c ) 8005a42: 4613 mov r3, r2 8005a44: 005b lsls r3, r3, #1 8005a46: 4413 add r3, r2 8005a48: 00db lsls r3, r3, #3 8005a4a: 440b add r3, r1 8005a4c: 3320 adds r3, #32 8005a4e: 2200 movs r2, #0 8005a50: 601a str r2, [r3, #0] hDma2dHandler.Instance = DMA2D; 8005a52: 4b12 ldr r3, [pc, #72] ; (8005a9c ) 8005a54: 4a14 ldr r2, [pc, #80] ; (8005aa8 ) 8005a56: 601a str r2, [r3, #0] /* DMA2D Initialization */ HAL_DMA2D_Init(&hDma2dHandler); 8005a58: 4810 ldr r0, [pc, #64] ; (8005a9c ) 8005a5a: f00c f949 bl 8011cf0 HAL_DMA2D_ConfigLayer(&hDma2dHandler, ActiveLayer); 8005a5e: 4b0d ldr r3, [pc, #52] ; (8005a94 ) 8005a60: 681b ldr r3, [r3, #0] 8005a62: 4619 mov r1, r3 8005a64: 480d ldr r0, [pc, #52] ; (8005a9c ) 8005a66: f00c fab1 bl 8011fcc DMA2D_TransferOk = 0; 8005a6a: 4b10 ldr r3, [pc, #64] ; (8005aac ) 8005a6c: 2200 movs r2, #0 8005a6e: 601a str r2, [r3, #0] HAL_DMA2D_Start(&hDma2dHandler, (uint32_t) p, Xaddress, xSize, ySize); 8005a70: 68f9 ldr r1, [r7, #12] 8005a72: 8a7a ldrh r2, [r7, #18] 8005a74: 8a3b ldrh r3, [r7, #16] 8005a76: 9300 str r3, [sp, #0] 8005a78: 4613 mov r3, r2 8005a7a: 697a ldr r2, [r7, #20] 8005a7c: 4807 ldr r0, [pc, #28] ; (8005a9c ) 8005a7e: f00c f991 bl 8011da4 HAL_DMA2D_PollForTransfer(&hDma2dHandler, 30); 8005a82: 211e movs r1, #30 8005a84: 4805 ldr r0, [pc, #20] ; (8005a9c ) 8005a86: f00c f9b8 bl 8011dfa //SCB_CleanInvalidateDCache(); } 8005a8a: bf00 nop 8005a8c: 3718 adds r7, #24 8005a8e: 46bd mov sp, r7 8005a90: bd80 pop {r7, pc} 8005a92: bf00 nop 8005a94: 20020018 .word 0x20020018 8005a98: 2006c174 .word 0x2006c174 8005a9c: 2006b9ec .word 0x2006b9ec 8005aa0: 08005ab1 .word 0x08005ab1 8005aa4: 08005ad1 .word 0x08005ad1 8005aa8: 4002b000 .word 0x4002b000 8005aac: 2002001c .word 0x2002001c 08005ab0 : static void TransferComplete(DMA2D_HandleTypeDef *hdma2d) { 8005ab0: b480 push {r7} 8005ab2: b083 sub sp, #12 8005ab4: af00 add r7, sp, #0 8005ab6: 6078 str r0, [r7, #4] DMA2D_TransferOk = 1; 8005ab8: 4b04 ldr r3, [pc, #16] ; (8005acc ) 8005aba: 2201 movs r2, #1 8005abc: 601a str r2, [r3, #0] } 8005abe: bf00 nop 8005ac0: 370c adds r7, #12 8005ac2: 46bd mov sp, r7 8005ac4: f85d 7b04 ldr.w r7, [sp], #4 8005ac8: 4770 bx lr 8005aca: bf00 nop 8005acc: 2002001c .word 0x2002001c 08005ad0 : static void TransferError(DMA2D_HandleTypeDef *hdma2d) { 8005ad0: b480 push {r7} 8005ad2: b083 sub sp, #12 8005ad4: af00 add r7, sp, #0 8005ad6: 6078 str r0, [r7, #4] } 8005ad8: bf00 nop 8005ada: 370c adds r7, #12 8005adc: 46bd mov sp, r7 8005ade: f85d 7b04 ldr.w r7, [sp], #4 8005ae2: 4770 bx lr 08005ae4 : void LCD_Refresh(void) { 8005ae4: b580 push {r7, lr} 8005ae6: af00 add r7, sp, #0 ActiveLayer ^= 1; 8005ae8: 4b0e ldr r3, [pc, #56] ; (8005b24 ) 8005aea: 681b ldr r3, [r3, #0] 8005aec: f083 0301 eor.w r3, r3, #1 8005af0: 4a0c ldr r2, [pc, #48] ; (8005b24 ) 8005af2: 6013 str r3, [r2, #0] RenderingLayer ^= 1; 8005af4: 4b0c ldr r3, [pc, #48] ; (8005b28 ) 8005af6: 681b ldr r3, [r3, #0] 8005af8: f083 0301 eor.w r3, r3, #1 8005afc: 4a0a ldr r2, [pc, #40] ; (8005b28 ) 8005afe: 6013 str r3, [r2, #0] BSP_LCD_SetLayerVisible_NoReload(ActiveLayer, DISABLE); 8005b00: 4b08 ldr r3, [pc, #32] ; (8005b24 ) 8005b02: 681b ldr r3, [r3, #0] 8005b04: 2100 movs r1, #0 8005b06: 4618 mov r0, r3 8005b08: f7ff f926 bl 8004d58 BSP_LCD_SetLayerVisible_NoReload(RenderingLayer, ENABLE); 8005b0c: 4b06 ldr r3, [pc, #24] ; (8005b28 ) 8005b0e: 681b ldr r3, [r3, #0] 8005b10: 2101 movs r1, #1 8005b12: 4618 mov r0, r3 8005b14: f7ff f920 bl 8004d58 HAL_LTDC_Reload(&hLtdcHandler, LTDC_RELOAD_IMMEDIATE); 8005b18: 2101 movs r1, #1 8005b1a: 4804 ldr r0, [pc, #16] ; (8005b2c ) 8005b1c: f00d fac6 bl 80130ac //BSP_LCD_Reload(LCD_RELOAD_VERTICAL_BLANKING); } 8005b20: bf00 nop 8005b22: bd80 pop {r7, pc} 8005b24: 20020018 .word 0x20020018 8005b28: 2006ba5c .word 0x2006ba5c 8005b2c: 2006c174 .word 0x2006c174 08005b30 : void HAL_LTDC_LineEventCallback(LTDC_HandleTypeDef *hltdc) { 8005b30: b580 push {r7, lr} 8005b32: b082 sub sp, #8 8005b34: af00 add r7, sp, #0 8005b36: 6078 str r0, [r7, #4] if(RefreshScreen) 8005b38: 4b06 ldr r3, [pc, #24] ; (8005b54 ) 8005b3a: 781b ldrb r3, [r3, #0] 8005b3c: b2db uxtb r3, r3 8005b3e: 2b00 cmp r3, #0 8005b40: d004 beq.n 8005b4c { LCD_Refresh(); 8005b42: f7ff ffcf bl 8005ae4 RefreshScreen = false; 8005b46: 4b03 ldr r3, [pc, #12] ; (8005b54 ) 8005b48: 2200 movs r2, #0 8005b4a: 701a strb r2, [r3, #0] } } 8005b4c: bf00 nop 8005b4e: 3708 adds r7, #8 8005b50: 46bd mov sp, r7 8005b52: bd80 pop {r7, pc} 8005b54: 2006ba60 .word 0x2006ba60 08005b58
: const char _VERSION[] = "VER 2.203.0\0"; volatile char _SERIAL_DRAW[10] = {'S', 'N', ' ', '2', '4', '0', '0', '3', 0, 0}; int main(void) { 8005b58: b580 push {r7, lr} 8005b5a: b092 sub sp, #72 ; 0x48 8005b5c: af00 add r7, sp, #0 uint32_t cnt = 0, i, j, k, l; 8005b5e: 2300 movs r3, #0 8005b60: 63fb str r3, [r7, #60] ; 0x3c float32_t f; char str[50]; uint32_t keys = 0; 8005b62: 2300 movs r3, #0 8005b64: 63bb str r3, [r7, #56] ; 0x38 HAL_Init(); 8005b66: f00b fcd9 bl 801151c SystemClock_Config(); 8005b6a: f000 f8df bl 8005d2c MX_GPIO_Init(); 8005b6e: f7fa fe13 bl 8000798 initFlash(); 8005b72: f7fa fd77 bl 8000664 MX_DMA2D_Init(); 8005b76: f7fa fd1d bl 80005b4 MX_TIM7_Init(); 8005b7a: f009 ff0d bl 800f998 MX_LTDC_Init(); 8005b7e: f7fe fe6f bl 8004860 initKeys(); 8005b82: f7fa fefd bl 8000980 /////////////////////////////// todo CNT_CHANNELS = 4; 8005b86: 4b5e ldr r3, [pc, #376] ; (8005d00 ) 8005b88: 2204 movs r2, #4 8005b8a: 601a str r2, [r3, #0] ACTIVE_CHANNEL = Ch1; 8005b8c: 4b5d ldr r3, [pc, #372] ; (8005d04 ) 8005b8e: 2200 movs r2, #0 8005b90: 601a str r2, [r3, #0] menupos = Hp; 8005b92: 4b5d ldr r3, [pc, #372] ; (8005d08 ) 8005b94: 2200 movs r2, #0 8005b96: 701a strb r2, [r3, #0] for(i = 0; i < 16; i++) 8005b98: 2300 movs r3, #0 8005b9a: 647b str r3, [r7, #68] ; 0x44 8005b9c: e05d b.n 8005c5a { pardata.amplif[i].IIN = CHARGE; 8005b9e: 4a5b ldr r2, [pc, #364] ; (8005d0c ) 8005ba0: 6c7b ldr r3, [r7, #68] ; 0x44 8005ba2: 015b lsls r3, r3, #5 8005ba4: 4413 add r3, r2 8005ba6: 2200 movs r2, #0 8005ba8: 801a strh r2, [r3, #0] pardata.amplif[i].IFV = Hp0_2; 8005baa: 4a58 ldr r2, [pc, #352] ; (8005d0c ) 8005bac: 6c7b ldr r3, [r7, #68] ; 0x44 8005bae: 015b lsls r3, r3, #5 8005bb0: 4413 add r3, r2 8005bb2: 3302 adds r3, #2 8005bb4: 2200 movs r2, #0 8005bb6: 801a strh r2, [r3, #0] pardata.amplif[i].IFN = Lp100000; 8005bb8: 4a54 ldr r2, [pc, #336] ; (8005d0c ) 8005bba: 6c7b ldr r3, [r7, #68] ; 0x44 8005bbc: 015b lsls r3, r3, #5 8005bbe: 4413 add r3, r2 8005bc0: 3304 adds r3, #4 8005bc2: 2207 movs r2, #7 8005bc4: 801a strh r2, [r3, #0] pardata.amplif[i].IKU = Ku1000; 8005bc6: 4a51 ldr r2, [pc, #324] ; (8005d0c ) 8005bc8: 6c7b ldr r3, [r7, #68] ; 0x44 8005bca: 015b lsls r3, r3, #5 8005bcc: 4413 add r3, r2 8005bce: 3306 adds r3, #6 8005bd0: 220c movs r2, #12 8005bd2: 801a strh r2, [r3, #0] pardata.amplif[i].IKS = 0; 8005bd4: 4a4d ldr r2, [pc, #308] ; (8005d0c ) 8005bd6: 6c7b ldr r3, [r7, #68] ; 0x44 8005bd8: 015b lsls r3, r3, #5 8005bda: 4413 add r3, r2 8005bdc: 330c adds r3, #12 8005bde: 2200 movs r2, #0 8005be0: 801a strh r2, [r3, #0] pardata.amplif[i].IKD = 0; 8005be2: 4a4a ldr r2, [pc, #296] ; (8005d0c ) 8005be4: 6c7b ldr r3, [r7, #68] ; 0x44 8005be6: 015b lsls r3, r3, #5 8005be8: 4413 add r3, r2 8005bea: 330a adds r3, #10 8005bec: 2200 movs r2, #0 8005bee: 801a strh r2, [r3, #0] pardata.amplif[i].IKE = 1; 8005bf0: 4a46 ldr r2, [pc, #280] ; (8005d0c ) 8005bf2: 6c7b ldr r3, [r7, #68] ; 0x44 8005bf4: 015b lsls r3, r3, #5 8005bf6: 4413 add r3, r2 8005bf8: 3308 adds r3, #8 8005bfa: 2201 movs r2, #1 8005bfc: 801a strh r2, [r3, #0] pardata.amplif[i].IPZ = 0; 8005bfe: 4a43 ldr r2, [pc, #268] ; (8005d0c ) 8005c00: 6c7b ldr r3, [r7, #68] ; 0x44 8005c02: 015b lsls r3, r3, #5 8005c04: 4413 add r3, r2 8005c06: 330e adds r3, #14 8005c08: 2200 movs r2, #0 8005c0a: 801a strh r2, [r3, #0] pardata.amplif[i].OPZ = 0; 8005c0c: 4a3f ldr r2, [pc, #252] ; (8005d0c ) 8005c0e: 6c7b ldr r3, [r7, #68] ; 0x44 8005c10: 015b lsls r3, r3, #5 8005c12: 4413 add r3, r2 8005c14: 3310 adds r3, #16 8005c16: 2200 movs r2, #0 8005c18: 801a strh r2, [r3, #0] pardata.amplif[i].VAL = Accel; 8005c1a: 4a3c ldr r2, [pc, #240] ; (8005d0c ) 8005c1c: 6c7b ldr r3, [r7, #68] ; 0x44 8005c1e: 015b lsls r3, r3, #5 8005c20: 4413 add r3, r2 8005c22: 3312 adds r3, #18 8005c24: 2200 movs r2, #0 8005c26: 801a strh r2, [r3, #0] pardata.amplif[i].KCOND = 1.00f; 8005c28: 4a38 ldr r2, [pc, #224] ; (8005d0c ) 8005c2a: 6c7b ldr r3, [r7, #68] ; 0x44 8005c2c: 015b lsls r3, r3, #5 8005c2e: 4413 add r3, r2 8005c30: 3314 adds r3, #20 8005c32: f04f 527e mov.w r2, #1065353216 ; 0x3f800000 8005c36: 601a str r2, [r3, #0] pardata.amplif[i].SENS = 10.00f; 8005c38: 4a34 ldr r2, [pc, #208] ; (8005d0c ) 8005c3a: 6c7b ldr r3, [r7, #68] ; 0x44 8005c3c: 015b lsls r3, r3, #5 8005c3e: 4413 add r3, r2 8005c40: 3318 adds r3, #24 8005c42: 4a33 ldr r2, [pc, #204] ; (8005d10 ) 8005c44: 601a str r2, [r3, #0] pardata.amplif[i].ACCEL = 100.00f; 8005c46: 4a31 ldr r2, [pc, #196] ; (8005d0c ) 8005c48: 6c7b ldr r3, [r7, #68] ; 0x44 8005c4a: 015b lsls r3, r3, #5 8005c4c: 4413 add r3, r2 8005c4e: 331c adds r3, #28 8005c50: 4a30 ldr r2, [pc, #192] ; (8005d14 ) 8005c52: 601a str r2, [r3, #0] for(i = 0; i < 16; i++) 8005c54: 6c7b ldr r3, [r7, #68] ; 0x44 8005c56: 3301 adds r3, #1 8005c58: 647b str r3, [r7, #68] ; 0x44 8005c5a: 6c7b ldr r3, [r7, #68] ; 0x44 8005c5c: 2b0f cmp r3, #15 8005c5e: d99e bls.n 8005b9e } pardata.OWN = 18; 8005c60: 4b2a ldr r3, [pc, #168] ; (8005d0c ) 8005c62: 2212 movs r2, #18 8005c64: f8a3 2200 strh.w r2, [r3, #512] ; 0x200 pardata.BAUD = 7; 8005c68: 4b28 ldr r3, [pc, #160] ; (8005d0c ) 8005c6a: 2207 movs r2, #7 8005c6c: f8a3 2202 strh.w r2, [r3, #514] ; 0x202 pardata.INFB = 0; 8005c70: 4b26 ldr r3, [pc, #152] ; (8005d0c ) 8005c72: 2200 movs r2, #0 8005c74: f8a3 2204 strh.w r2, [r3, #516] ; 0x204 //pardata.LANG = RUS; ///////////////////////////// MX_UART7_Init(); 8005c78: f009 ffa8 bl 800fbcc EXTI_Config(); 8005c7c: f000 f8f6 bl 8005e6c Logo(); 8005c80: f000 f958 bl 8005f34 while(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET) { 8005c84: e001 b.n 8005c8a RedrawScreen(); 8005c86: f000 f945 bl 8005f14 while(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET) { 8005c8a: 2101 movs r1, #1 8005c8c: 4822 ldr r0, [pc, #136] ; (8005d18 ) 8005c8e: f00c ffc5 bl 8012c1c 8005c92: 4603 mov r3, r0 8005c94: 2b01 cmp r3, #1 8005c96: d0f6 beq.n 8005c86 } KeysIsReady = true; 8005c98: 4b20 ldr r3, [pc, #128] ; (8005d1c ) 8005c9a: 2201 movs r2, #1 8005c9c: 701a strb r2, [r3, #0] for(k = 0; k < 30; k++) 8005c9e: 2300 movs r3, #0 8005ca0: 643b str r3, [r7, #64] ; 0x40 8005ca2: e00f b.n 8005cc4 { keys = kbhit(); 8005ca4: f7fa fefa bl 8000a9c 8005ca8: 63b8 str r0, [r7, #56] ; 0x38 if((keys == KEY_UP) || (keys == (KEY_UP + KEY_OK))) 8005caa: 6bbb ldr r3, [r7, #56] ; 0x38 8005cac: 2b02 cmp r3, #2 8005cae: d002 beq.n 8005cb6 8005cb0: 6bbb ldr r3, [r7, #56] ; 0x38 8005cb2: 2b22 cmp r3, #34 ; 0x22 8005cb4: d103 bne.n 8005cbe { clbr = true; 8005cb6: 4b1a ldr r3, [pc, #104] ; (8005d20 ) 8005cb8: 2201 movs r2, #1 8005cba: 701a strb r2, [r3, #0] break; 8005cbc: e005 b.n 8005cca for(k = 0; k < 30; k++) 8005cbe: 6c3b ldr r3, [r7, #64] ; 0x40 8005cc0: 3301 adds r3, #1 8005cc2: 643b str r3, [r7, #64] ; 0x40 8005cc4: 6c3b ldr r3, [r7, #64] ; 0x40 8005cc6: 2b1d cmp r3, #29 8005cc8: d9ec bls.n 8005ca4 } } HAL_Delay(1000); 8005cca: f44f 707a mov.w r0, #1000 ; 0x3e8 8005cce: f00b fc91 bl 80115f4 AskChannels(); 8005cd2: f00b fb59 bl 8011388 //menu = MAIN; //todo timerAsk = msec1900; 8005cd6: 4b13 ldr r3, [pc, #76] ; (8005d24 ) 8005cd8: 22be movs r2, #190 ; 0xbe 8005cda: 801a strh r2, [r3, #0] FlagAsk = 0; 8005cdc: 4b12 ldr r3, [pc, #72] ; (8005d28 ) 8005cde: 2200 movs r2, #0 8005ce0: 701a strb r2, [r3, #0] while(1) { RedrawScreen(); 8005ce2: f000 f917 bl 8005f14 keyIns(); 8005ce6: f7fa ff49 bl 8000b7c if(FlagAsk) 8005cea: 4b0f ldr r3, [pc, #60] ; (8005d28 ) 8005cec: 781b ldrb r3, [r3, #0] 8005cee: b2db uxtb r3, r3 8005cf0: 2b00 cmp r3, #0 8005cf2: d0f6 beq.n 8005ce2 { FlagAsk = 0; 8005cf4: 4b0c ldr r3, [pc, #48] ; (8005d28 ) 8005cf6: 2200 movs r2, #0 8005cf8: 701a strb r2, [r3, #0] AskPeriodic(); 8005cfa: f00b fbe1 bl 80114c0 RedrawScreen(); 8005cfe: e7f0 b.n 8005ce2 8005d00: 2006ba6c .word 0x2006ba6c 8005d04: 2006ba68 .word 0x2006ba68 8005d08: 20020010 .word 0x20020010 8005d0c: 2006bca8 .word 0x2006bca8 8005d10: 41200000 .word 0x41200000 8005d14: 42c80000 .word 0x42c80000 8005d18: 40020000 .word 0x40020000 8005d1c: 200209dc .word 0x200209dc 8005d20: 2006c21c .word 0x2006c21c 8005d24: 2002099e .word 0x2002099e 8005d28: 2006ba87 .word 0x2006ba87 08005d2c : /** * @brief System Clock Configuration * @retval None */ void SystemClock_Config(void) { 8005d2c: b580 push {r7, lr} 8005d2e: b0b8 sub sp, #224 ; 0xe0 8005d30: af00 add r7, sp, #0 RCC_OscInitTypeDef RCC_OscInitStruct = {0}; 8005d32: f107 03ac add.w r3, r7, #172 ; 0xac 8005d36: 2234 movs r2, #52 ; 0x34 8005d38: 2100 movs r1, #0 8005d3a: 4618 mov r0, r3 8005d3c: f010 fbcd bl 80164da RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; 8005d40: f107 0398 add.w r3, r7, #152 ; 0x98 8005d44: 2200 movs r2, #0 8005d46: 601a str r2, [r3, #0] 8005d48: 605a str r2, [r3, #4] 8005d4a: 609a str r2, [r3, #8] 8005d4c: 60da str r2, [r3, #12] 8005d4e: 611a str r2, [r3, #16] RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; 8005d50: f107 0308 add.w r3, r7, #8 8005d54: 2290 movs r2, #144 ; 0x90 8005d56: 2100 movs r1, #0 8005d58: 4618 mov r0, r3 8005d5a: f010 fbbe bl 80164da __HAL_RCC_PWR_CLK_ENABLE(); 8005d5e: 4a3f ldr r2, [pc, #252] ; (8005e5c ) 8005d60: 4b3e ldr r3, [pc, #248] ; (8005e5c ) 8005d62: 6c1b ldr r3, [r3, #64] ; 0x40 8005d64: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 8005d68: 6413 str r3, [r2, #64] ; 0x40 8005d6a: 4b3c ldr r3, [pc, #240] ; (8005e5c ) 8005d6c: 6c1b ldr r3, [r3, #64] ; 0x40 8005d6e: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 8005d72: 607b str r3, [r7, #4] 8005d74: 687b ldr r3, [r7, #4] __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3); 8005d76: 4a3a ldr r2, [pc, #232] ; (8005e60 ) 8005d78: 4b39 ldr r3, [pc, #228] ; (8005e60 ) 8005d7a: 681b ldr r3, [r3, #0] 8005d7c: f423 4340 bic.w r3, r3, #49152 ; 0xc000 8005d80: f443 4380 orr.w r3, r3, #16384 ; 0x4000 8005d84: 6013 str r3, [r2, #0] 8005d86: 4b36 ldr r3, [pc, #216] ; (8005e60 ) 8005d88: 681b ldr r3, [r3, #0] 8005d8a: f403 4340 and.w r3, r3, #49152 ; 0xc000 8005d8e: 603b str r3, [r7, #0] 8005d90: 683b ldr r3, [r7, #0] RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; 8005d92: 2302 movs r3, #2 8005d94: f8c7 30ac str.w r3, [r7, #172] ; 0xac RCC_OscInitStruct.LSEState = RCC_LSE_BYPASS; 8005d98: 2305 movs r3, #5 8005d9a: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 RCC_OscInitStruct.HSIState = RCC_HSI_ON; 8005d9e: 2301 movs r3, #1 8005da0: f8c7 30b8 str.w r3, [r7, #184] ; 0xb8 RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; 8005da4: 2310 movs r3, #16 8005da6: f8c7 30bc str.w r3, [r7, #188] ; 0xbc RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; 8005daa: 2302 movs r3, #2 8005dac: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; 8005db0: 2300 movs r3, #0 8005db2: f8c7 30c8 str.w r3, [r7, #200] ; 0xc8 RCC_OscInitStruct.PLL.PLLM = 16; 8005db6: 2310 movs r3, #16 8005db8: f8c7 30cc str.w r3, [r7, #204] ; 0xcc RCC_OscInitStruct.PLL.PLLN = 432; 8005dbc: f44f 73d8 mov.w r3, #432 ; 0x1b0 8005dc0: f8c7 30d0 str.w r3, [r7, #208] ; 0xd0 RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV8; 8005dc4: 2308 movs r3, #8 8005dc6: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4 RCC_OscInitStruct.PLL.PLLQ = 9; 8005dca: 2309 movs r3, #9 8005dcc: f8c7 30d8 str.w r3, [r7, #216] ; 0xd8 if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) 8005dd0: f107 03ac add.w r3, r7, #172 ; 0xac 8005dd4: 4618 mov r0, r3 8005dd6: f00d fb3b bl 8013450 8005dda: 4603 mov r3, r0 8005ddc: 2b00 cmp r3, #0 8005dde: d001 beq.n 8005de4 { Error_Handler(); 8005de0: f000 f840 bl 8005e64 } RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK 8005de4: 230f movs r3, #15 8005de6: f8c7 3098 str.w r3, [r7, #152] ; 0x98 |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; 8005dea: 2302 movs r3, #2 8005dec: f8c7 309c str.w r3, [r7, #156] ; 0x9c RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; 8005df0: 2300 movs r3, #0 8005df2: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; 8005df6: 2300 movs r3, #0 8005df8: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; 8005dfc: 2300 movs r3, #0 8005dfe: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8 if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) 8005e02: f107 0398 add.w r3, r7, #152 ; 0x98 8005e06: 2101 movs r1, #1 8005e08: 4618 mov r0, r3 8005e0a: f00d fdcf bl 80139ac 8005e0e: 4603 mov r3, r0 8005e10: 2b00 cmp r3, #0 8005e12: d001 beq.n 8005e18 { Error_Handler(); 8005e14: f000 f826 bl 8005e64 } PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC |RCC_PERIPHCLK_UART7; 8005e18: f241 0308 movw r3, #4104 ; 0x1008 8005e1c: 60bb str r3, [r7, #8] PeriphClkInitStruct.PLLSAI.PLLSAIN = 192; 8005e1e: 23c0 movs r3, #192 ; 0xc0 8005e20: 61fb str r3, [r7, #28] PeriphClkInitStruct.PLLSAI.PLLSAIR = 4; 8005e22: 2304 movs r3, #4 8005e24: 627b str r3, [r7, #36] ; 0x24 PeriphClkInitStruct.PLLSAI.PLLSAIQ = 2; 8005e26: 2302 movs r3, #2 8005e28: 623b str r3, [r7, #32] PeriphClkInitStruct.PLLSAI.PLLSAIP = RCC_PLLSAIP_DIV4; 8005e2a: 2301 movs r3, #1 8005e2c: 62bb str r3, [r7, #40] ; 0x28 PeriphClkInitStruct.PLLSAIDivQ = 1; 8005e2e: 2301 movs r3, #1 8005e30: 633b str r3, [r7, #48] ; 0x30 PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_2; 8005e32: 2300 movs r3, #0 8005e34: 637b str r3, [r7, #52] ; 0x34 PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE; 8005e36: f44f 7380 mov.w r3, #256 ; 0x100 8005e3a: 63bb str r3, [r7, #56] ; 0x38 PeriphClkInitStruct.Uart7ClockSelection = RCC_UART7CLKSOURCE_PCLK1; 8005e3c: 2300 movs r3, #0 8005e3e: 667b str r3, [r7, #100] ; 0x64 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) 8005e40: f107 0308 add.w r3, r7, #8 8005e44: 4618 mov r0, r3 8005e46: f00d ff87 bl 8013d58 8005e4a: 4603 mov r3, r0 8005e4c: 2b00 cmp r3, #0 8005e4e: d001 beq.n 8005e54 { Error_Handler(); 8005e50: f000 f808 bl 8005e64 PeriphClkInitStruct.Sdmmc1ClockSelection = RCC_SDMMC1CLKSOURCE_CLK48; if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) { Error_Handler(); }*/ } 8005e54: bf00 nop 8005e56: 37e0 adds r7, #224 ; 0xe0 8005e58: 46bd mov sp, r7 8005e5a: bd80 pop {r7, pc} 8005e5c: 40023800 .word 0x40023800 8005e60: 40007000 .word 0x40007000 08005e64 : /** * @brief This function is executed in case of error occurrence. * @retval None */ void Error_Handler(void) { 8005e64: b480 push {r7} 8005e66: af00 add r7, sp, #0 __ASM volatile ("cpsid i" : : : "memory"); 8005e68: b672 cpsid i /* USER CODE BEGIN Error_Handler_Debug */ /* User can add his own implementation to report the HAL error return state */ __disable_irq(); while (1) 8005e6a: e7fe b.n 8005e6a 08005e6c : void EXTI_Config(void) { 8005e6c: b580 push {r7, lr} 8005e6e: b086 sub sp, #24 8005e70: af00 add r7, sp, #0 GPIO_InitTypeDef EXTILineStruct; __HAL_RCC_SYSCFG_CLK_ENABLE(); 8005e72: 4a12 ldr r2, [pc, #72] ; (8005ebc ) 8005e74: 4b11 ldr r3, [pc, #68] ; (8005ebc ) 8005e76: 6c5b ldr r3, [r3, #68] ; 0x44 8005e78: f443 4380 orr.w r3, r3, #16384 ; 0x4000 8005e7c: 6453 str r3, [r2, #68] ; 0x44 8005e7e: 4b0f ldr r3, [pc, #60] ; (8005ebc ) 8005e80: 6c5b ldr r3, [r3, #68] ; 0x44 8005e82: f403 4380 and.w r3, r3, #16384 ; 0x4000 8005e86: 603b str r3, [r7, #0] 8005e88: 683b ldr r3, [r7, #0] EXTILineStruct.Pin = GPIO_PIN_2; 8005e8a: 2304 movs r3, #4 8005e8c: 607b str r3, [r7, #4] EXTILineStruct.Mode = GPIO_MODE_IT_RISING; 8005e8e: f44f 1388 mov.w r3, #1114112 ; 0x110000 8005e92: 60bb str r3, [r7, #8] EXTILineStruct.Pull = GPIO_NOPULL; 8005e94: 2300 movs r3, #0 8005e96: 60fb str r3, [r7, #12] HAL_GPIO_Init(GPIOC, &EXTILineStruct); 8005e98: 1d3b adds r3, r7, #4 8005e9a: 4619 mov r1, r3 8005e9c: 4808 ldr r0, [pc, #32] ; (8005ec0 ) 8005e9e: f00c fd13 bl 80128c8 HAL_NVIC_SetPriority(EXTI2_IRQn, 12, 0); 8005ea2: 2200 movs r2, #0 8005ea4: 210c movs r1, #12 8005ea6: 2008 movs r0, #8 8005ea8: f00b fcc1 bl 801182e HAL_NVIC_EnableIRQ(EXTI2_IRQn); 8005eac: 2008 movs r0, #8 8005eae: f00b fcda bl 8011866 } 8005eb2: bf00 nop 8005eb4: 3718 adds r7, #24 8005eb6: 46bd mov sp, r7 8005eb8: bd80 pop {r7, pc} 8005eba: bf00 nop 8005ebc: 40023800 .word 0x40023800 8005ec0: 40020800 .word 0x40020800 08005ec4 : void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { 8005ec4: b580 push {r7, lr} 8005ec6: b082 sub sp, #8 8005ec8: af00 add r7, sp, #0 8005eca: 4603 mov r3, r0 8005ecc: 80fb strh r3, [r7, #6] if(GPIO_Pin == GPIO_PIN_2) 8005ece: 88fb ldrh r3, [r7, #6] 8005ed0: 2b04 cmp r3, #4 8005ed2: d114 bne.n 8005efe { __HAL_GPIO_EXTI_CLEAR_FLAG(GPIO_PIN_2); 8005ed4: 4b0c ldr r3, [pc, #48] ; (8005f08 ) 8005ed6: 2204 movs r2, #4 8005ed8: 615a str r2, [r3, #20] if((RefreshScreen == false) && (screen == true)) 8005eda: 4b0c ldr r3, [pc, #48] ; (8005f0c ) 8005edc: 781b ldrb r3, [r3, #0] 8005ede: b2db uxtb r3, r3 8005ee0: f083 0301 eor.w r3, r3, #1 8005ee4: b2db uxtb r3, r3 8005ee6: 2b00 cmp r3, #0 8005ee8: d009 beq.n 8005efe 8005eea: 4b09 ldr r3, [pc, #36] ; (8005f10 ) 8005eec: 781b ldrb r3, [r3, #0] 8005eee: b2db uxtb r3, r3 8005ef0: 2b00 cmp r3, #0 8005ef2: d004 beq.n 8005efe { screen = false; 8005ef4: 4b06 ldr r3, [pc, #24] ; (8005f10 ) 8005ef6: 2200 movs r2, #0 8005ef8: 701a strb r2, [r3, #0] Display(); 8005efa: f000 f8b9 bl 8006070 } //ReadChannel(Ch1); } } 8005efe: bf00 nop 8005f00: 3708 adds r7, #8 8005f02: 46bd mov sp, r7 8005f04: bd80 pop {r7, pc} 8005f06: bf00 nop 8005f08: 40013c00 .word 0x40013c00 8005f0c: 2006ba60 .word 0x2006ba60 8005f10: 20020030 .word 0x20020030 08005f14 : void RedrawScreen(void) { 8005f14: b480 push {r7} 8005f16: af00 add r7, sp, #0 __HAL_GPIO_EXTI_GENERATE_SWIT(GPIO_PIN_2); 8005f18: 4a05 ldr r2, [pc, #20] ; (8005f30 ) 8005f1a: 4b05 ldr r3, [pc, #20] ; (8005f30 ) 8005f1c: 691b ldr r3, [r3, #16] 8005f1e: f043 0304 orr.w r3, r3, #4 8005f22: 6113 str r3, [r2, #16] { screen = false; Display(); }*/ } 8005f24: bf00 nop 8005f26: 46bd mov sp, r7 8005f28: f85d 7b04 ldr.w r7, [sp], #4 8005f2c: 4770 bx lr 8005f2e: bf00 nop 8005f30: 40013c00 .word 0x40013c00 08005f34 : void Logo(void) { 8005f34: b580 push {r7, lr} 8005f36: b082 sub sp, #8 8005f38: af00 add r7, sp, #0 uint32_t i; uint32_t color = LCD_COLOR_BLACK; //0xFF212829; 8005f3a: f04f 437f mov.w r3, #4278190080 ; 0xff000000 8005f3e: 603b str r3, [r7, #0] #ifdef DRAW_LOGO BSP_LCD_DisplayOn(); 8005f40: f7fe fdc4 bl 8004acc HAL_NVIC_DisableIRQ(EXTI2_IRQn); 8005f44: 2008 movs r0, #8 8005f46: f00b fc9c bl 8011882 //********************************************************* BSP_LCD_SetFont(&Font12); 8005f4a: 4843 ldr r0, [pc, #268] ; (8006058 ) 8005f4c: f7fe ff78 bl 8004e40 for(i = 0; i < 3; i++) 8005f50: 2300 movs r3, #0 8005f52: 607b str r3, [r7, #4] 8005f54: e032 b.n 8005fbc { BSP_LCD_Clear(color); 8005f56: 6838 ldr r0, [r7, #0] 8005f58: f7fe ff90 bl 8004e7c DrawImage(&bmLOGO_NEW, 0, 54); 8005f5c: 2236 movs r2, #54 ; 0x36 8005f5e: 2100 movs r1, #0 8005f60: 483e ldr r0, [pc, #248] ; (800605c ) 8005f62: f7ff fd11 bl 8005988 RefreshScreen = true; 8005f66: 4b3e ldr r3, [pc, #248] ; (8006060 ) 8005f68: 2201 movs r2, #1 8005f6a: 701a strb r2, [r3, #0] HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0); 8005f6c: 2100 movs r1, #0 8005f6e: 483d ldr r0, [pc, #244] ; (8006064 ) 8005f70: f00d f864 bl 801303c while(RefreshScreen); 8005f74: bf00 nop 8005f76: 4b3a ldr r3, [pc, #232] ; (8006060 ) 8005f78: 781b ldrb r3, [r3, #0] 8005f7a: b2db uxtb r3, r3 8005f7c: 2b00 cmp r3, #0 8005f7e: d1fa bne.n 8005f76 HAL_Delay(50); 8005f80: 2032 movs r0, #50 ; 0x32 8005f82: f00b fb37 bl 80115f4 BSP_LCD_Clear(color); 8005f86: 6838 ldr r0, [r7, #0] 8005f88: f7fe ff78 bl 8004e7c DrawImage(&bmLOGO_NEW, 0, 54); 8005f8c: 2236 movs r2, #54 ; 0x36 8005f8e: 2100 movs r1, #0 8005f90: 4832 ldr r0, [pc, #200] ; (800605c ) 8005f92: f7ff fcf9 bl 8005988 RefreshScreen = true; 8005f96: 4b32 ldr r3, [pc, #200] ; (8006060 ) 8005f98: 2201 movs r2, #1 8005f9a: 701a strb r2, [r3, #0] HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0); 8005f9c: 2100 movs r1, #0 8005f9e: 4831 ldr r0, [pc, #196] ; (8006064 ) 8005fa0: f00d f84c bl 801303c while(RefreshScreen); 8005fa4: bf00 nop 8005fa6: 4b2e ldr r3, [pc, #184] ; (8006060 ) 8005fa8: 781b ldrb r3, [r3, #0] 8005faa: b2db uxtb r3, r3 8005fac: 2b00 cmp r3, #0 8005fae: d1fa bne.n 8005fa6 HAL_Delay(50); 8005fb0: 2032 movs r0, #50 ; 0x32 8005fb2: f00b fb1f bl 80115f4 for(i = 0; i < 3; i++) 8005fb6: 687b ldr r3, [r7, #4] 8005fb8: 3301 adds r3, #1 8005fba: 607b str r3, [r7, #4] 8005fbc: 687b ldr r3, [r7, #4] 8005fbe: 2b02 cmp r3, #2 8005fc0: d9c9 bls.n 8005f56 } HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_RESET); // BACKLIGHT_ON 8005fc2: 2200 movs r2, #0 8005fc4: f44f 7180 mov.w r1, #256 ; 0x100 8005fc8: 4827 ldr r0, [pc, #156] ; (8006068 ) 8005fca: f00c fe3f bl 8012c4c //********************************************************* BSP_LCD_Clear(color); 8005fce: 6838 ldr r0, [r7, #0] 8005fd0: f7fe ff54 bl 8004e7c DrawImage(&bmLOGO_NEW, 0, 54); 8005fd4: 2236 movs r2, #54 ; 0x36 8005fd6: 2100 movs r1, #0 8005fd8: 4820 ldr r0, [pc, #128] ; (800605c ) 8005fda: f7ff fcd5 bl 8005988 RefreshScreen = true; 8005fde: 4b20 ldr r3, [pc, #128] ; (8006060 ) 8005fe0: 2201 movs r2, #1 8005fe2: 701a strb r2, [r3, #0] HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0); 8005fe4: 2100 movs r1, #0 8005fe6: 481f ldr r0, [pc, #124] ; (8006064 ) 8005fe8: f00d f828 bl 801303c while(RefreshScreen); 8005fec: bf00 nop 8005fee: 4b1c ldr r3, [pc, #112] ; (8006060 ) 8005ff0: 781b ldrb r3, [r3, #0] 8005ff2: b2db uxtb r3, r3 8005ff4: 2b00 cmp r3, #0 8005ff6: d1fa bne.n 8005fee HAL_Delay(50); 8005ff8: 2032 movs r0, #50 ; 0x32 8005ffa: f00b fafb bl 80115f4 BSP_LCD_Clear(color); 8005ffe: 6838 ldr r0, [r7, #0] 8006000: f7fe ff3c bl 8004e7c DrawImage(&bmLOGO_NEW, 0, 54); 8006004: 2236 movs r2, #54 ; 0x36 8006006: 2100 movs r1, #0 8006008: 4814 ldr r0, [pc, #80] ; (800605c ) 800600a: f7ff fcbd bl 8005988 RefreshScreen = true; 800600e: 4b14 ldr r3, [pc, #80] ; (8006060 ) 8006010: 2201 movs r2, #1 8006012: 701a strb r2, [r3, #0] HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0); 8006014: 2100 movs r1, #0 8006016: 4813 ldr r0, [pc, #76] ; (8006064 ) 8006018: f00d f810 bl 801303c while(RefreshScreen); 800601c: bf00 nop 800601e: 4b10 ldr r3, [pc, #64] ; (8006060 ) 8006020: 781b ldrb r3, [r3, #0] 8006022: b2db uxtb r3, r3 8006024: 2b00 cmp r3, #0 8006026: d1fa bne.n 800601e HAL_Delay(50); 8006028: 2032 movs r0, #50 ; 0x32 800602a: f00b fae3 bl 80115f4 HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_RESET); // BACKLIGHT_ON 800602e: 2200 movs r2, #0 8006030: f44f 7180 mov.w r1, #256 ; 0x100 8006034: 480c ldr r0, [pc, #48] ; (8006068 ) 8006036: f00c fe09 bl 8012c4c HAL_Delay(500); 800603a: f44f 70fa mov.w r0, #500 ; 0x1f4 800603e: f00b fad9 bl 80115f4 menu = LOGO; 8006042: 4b0a ldr r3, [pc, #40] ; (800606c ) 8006044: 221e movs r2, #30 8006046: 701a strb r2, [r3, #0] HAL_NVIC_EnableIRQ(EXTI2_IRQn); 8006048: 2008 movs r0, #8 800604a: f00b fc0c bl 8011866 #endif } 800604e: bf00 nop 8006050: 3708 adds r7, #8 8006052: 46bd mov sp, r7 8006054: bd80 pop {r7, pc} 8006056: bf00 nop 8006058: 20020000 .word 0x20020000 800605c: 0802fd10 .word 0x0802fd10 8006060: 2006ba60 .word 0x2006ba60 8006064: 2006c174 .word 0x2006c174 8006068: 40020000 .word 0x40020000 800606c: 200209d9 .word 0x200209d9 08006070 : void Display(void) { 8006070: b580 push {r7, lr} 8006072: f5ad 7d52 sub.w sp, sp, #840 ; 0x348 8006076: af00 add r7, sp, #0 char *p8; TimeDate_TypeDef FatTime; float32_t f, fs; uint32_t cl1, cl2; static uint32_t blink = 0; bool bl = false; 8006078: 2300 movs r3, #0 800607a: f887 333f strb.w r3, [r7, #831] ; 0x33f static uint32_t blk = 0; static uint8_t tt = 0; static uint32_t tme = 0; bool bll = false; 800607e: 2300 movs r3, #0 8006080: f887 333e strb.w r3, [r7, #830] ; 0x33e uint32_t old_DateTime; uint32_t lx, ly; uint32_t Year, Month, Day, Hour, Min, Sec; blk++; 8006084: 4bbd ldr r3, [pc, #756] ; (800637c ) 8006086: 681b ldr r3, [r3, #0] 8006088: 3301 adds r3, #1 800608a: 4abc ldr r2, [pc, #752] ; (800637c ) 800608c: 6013 str r3, [r2, #0] if(blk > 1) 800608e: 4bbb ldr r3, [pc, #748] ; (800637c ) 8006090: 681b ldr r3, [r3, #0] 8006092: 2b01 cmp r3, #1 8006094: d905 bls.n 80060a2 { blk = 0; 8006096: 4bb9 ldr r3, [pc, #740] ; (800637c ) 8006098: 2200 movs r2, #0 800609a: 601a str r2, [r3, #0] bll = true; 800609c: 2301 movs r3, #1 800609e: f887 333e strb.w r3, [r7, #830] ; 0x33e } blink++; 80060a2: 4bb7 ldr r3, [pc, #732] ; (8006380 ) 80060a4: 681b ldr r3, [r3, #0] 80060a6: 3301 adds r3, #1 80060a8: 4ab5 ldr r2, [pc, #724] ; (8006380 ) 80060aa: 6013 str r3, [r2, #0] if(blink > 8) 80060ac: 4bb4 ldr r3, [pc, #720] ; (8006380 ) 80060ae: 681b ldr r3, [r3, #0] 80060b0: 2b08 cmp r3, #8 80060b2: d905 bls.n 80060c0 { blink = 0; 80060b4: 4bb2 ldr r3, [pc, #712] ; (8006380 ) 80060b6: 2200 movs r2, #0 80060b8: 601a str r2, [r3, #0] bl = true; 80060ba: 2301 movs r3, #1 80060bc: f887 333f strb.w r3, [r7, #831] ; 0x33f } Redrawing = true; 80060c0: 4bb0 ldr r3, [pc, #704] ; (8006384 ) 80060c2: 2201 movs r2, #1 80060c4: 701a strb r2, [r3, #0] BSP_LCD_Clear(LCD_COLOR_BLACK); 80060c6: f04f 407f mov.w r0, #4278190080 ; 0xff000000 80060ca: f7fe fed7 bl 8004e7c //*************************************************** ОТРИСОВКА СТРОКИ СТАТУСА (ВЕРХ ДИСПЛЕЯ С ЧАСАМИ И БАТАРЕЕЙ) **************************************************************// //==========================================================================================================================// //--------------------------------------------------------------------------------------------------------------------------// //==========================================================================================================================// switch(menu) 80060ce: 4bae ldr r3, [pc, #696] ; (8006388 ) 80060d0: 781b ldrb r3, [r3, #0] 80060d2: b2db uxtb r3, r3 80060d4: 2b4e cmp r3, #78 ; 0x4e 80060d6: f207 8480 bhi.w 800d9da 80060da: a201 add r2, pc, #4 ; (adr r2, 80060e0 ) 80060dc: f852 f023 ldr.w pc, [r2, r3, lsl #2] 80060e0: 0800cfc1 .word 0x0800cfc1 80060e4: 0800d39d .word 0x0800d39d 80060e8: 0800d4ad .word 0x0800d4ad 80060ec: 0800d4dd .word 0x0800d4dd 80060f0: 0800d569 .word 0x0800d569 80060f4: 0800d599 .word 0x0800d599 80060f8: 0800d5c9 .word 0x0800d5c9 80060fc: 0800d5f9 .word 0x0800d5f9 8006100: 0800d629 .word 0x0800d629 8006104: 0800d659 .word 0x0800d659 8006108: 0800d689 .word 0x0800d689 800610c: 0800d6b9 .word 0x0800d6b9 8006110: 0800d6e9 .word 0x0800d6e9 8006114: 0800d719 .word 0x0800d719 8006118: 0800d749 .word 0x0800d749 800611c: 0800d779 .word 0x0800d779 8006120: 0800d7a9 .word 0x0800d7a9 8006124: 0800d7d9 .word 0x0800d7d9 8006128: 0800d809 .word 0x0800d809 800612c: 0800d839 .word 0x0800d839 8006130: 0800d869 .word 0x0800d869 8006134: 0800d899 .word 0x0800d899 8006138: 0800d93d .word 0x0800d93d 800613c: 0800d96d .word 0x0800d96d 8006140: 0800d99d .word 0x0800d99d 8006144: 08006509 .word 0x08006509 8006148: 0800d9db .word 0x0800d9db 800614c: 0800d9db .word 0x0800d9db 8006150: 0800d9db .word 0x0800d9db 8006154: 0800d9db .word 0x0800d9db 8006158: 0800621d .word 0x0800621d 800615c: 0800d9db .word 0x0800d9db 8006160: 0800d9db .word 0x0800d9db 8006164: 0800d9db .word 0x0800d9db 8006168: 0800d9db .word 0x0800d9db 800616c: 0800d9db .word 0x0800d9db 8006170: 0800d9db .word 0x0800d9db 8006174: 0800d9db .word 0x0800d9db 8006178: 0800d9db .word 0x0800d9db 800617c: 0800d9db .word 0x0800d9db 8006180: 0800d9db .word 0x0800d9db 8006184: 0800d9db .word 0x0800d9db 8006188: 0800d9db .word 0x0800d9db 800618c: 0800680f .word 0x0800680f 8006190: 0800d9db .word 0x0800d9db 8006194: 0800d9db .word 0x0800d9db 8006198: 0800d9db .word 0x0800d9db 800619c: 0800d9db .word 0x0800d9db 80061a0: 0800d9db .word 0x0800d9db 80061a4: 0800d9db .word 0x0800d9db 80061a8: 0800d9db .word 0x0800d9db 80061ac: 0800d9db .word 0x0800d9db 80061b0: 0800d9db .word 0x0800d9db 80061b4: 0800d9db .word 0x0800d9db 80061b8: 0800d9db .word 0x0800d9db 80061bc: 0800d9db .word 0x0800d9db 80061c0: 0800d9db .word 0x0800d9db 80061c4: 0800d9db .word 0x0800d9db 80061c8: 0800d9db .word 0x0800d9db 80061cc: 0800d9db .word 0x0800d9db 80061d0: 0800d9db .word 0x0800d9db 80061d4: 0800d9db .word 0x0800d9db 80061d8: 0800d9db .word 0x0800d9db 80061dc: 0800d9db .word 0x0800d9db 80061e0: 0800d9db .word 0x0800d9db 80061e4: 0800d9db .word 0x0800d9db 80061e8: 0800d9db .word 0x0800d9db 80061ec: 0800d9db .word 0x0800d9db 80061f0: 0800d9db .word 0x0800d9db 80061f4: 0800d9db .word 0x0800d9db 80061f8: 0800d9db .word 0x0800d9db 80061fc: 0800d9db .word 0x0800d9db 8006200: 0800d9db .word 0x0800d9db 8006204: 0800d9db .word 0x0800d9db 8006208: 0800d9db .word 0x0800d9db 800620c: 0800d9db .word 0x0800d9db 8006210: 0800d9db .word 0x0800d9db 8006214: 0800d9db .word 0x0800d9db 8006218: 0800d9db .word 0x0800d9db { case LOGO: //********************************************************* DrawImage(&bmLOGO_NEW, 0, 54); 800621c: 2236 movs r2, #54 ; 0x36 800621e: 2100 movs r1, #0 8006220: 485a ldr r0, [pc, #360] ; (800638c ) 8006222: f7ff fbb1 bl 8005988 timesLOGO++; 8006226: 4b5a ldr r3, [pc, #360] ; (8006390 ) 8006228: 681b ldr r3, [r3, #0] 800622a: 3301 adds r3, #1 800622c: 4a58 ldr r2, [pc, #352] ; (8006390 ) 800622e: 6013 str r3, [r2, #0] if(timesLOGO >= 2) 8006230: 4b57 ldr r3, [pc, #348] ; (8006390 ) 8006232: 681b ldr r3, [r3, #0] 8006234: 2b01 cmp r3, #1 8006236: f247 83c9 bls.w 800d9cc { LCD_SetColors(0xFFFFFFFF, 0); 800623a: 2100 movs r1, #0 800623c: f04f 30ff mov.w r0, #4294967295 8006240: f7fe fdc2 bl 8004dc8 BSP_LCD_SetFont(&Font12); 8006244: 4853 ldr r0, [pc, #332] ; (8006394 ) 8006246: f7fe fdfb bl 8004e40 #ifdef A142 if(pardata.LANG == RUS) 800624a: 4b53 ldr r3, [pc, #332] ; (8006398 ) 800624c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8006250: b29b uxth r3, r3 8006252: 2b00 cmp r3, #0 8006254: d10c bne.n 8006270 { BSP_LCD_DisplayStringAt(165, 195, "А142", CENTER_MODE); 8006256: 2301 movs r3, #1 8006258: 4a50 ldr r2, [pc, #320] ; (800639c ) 800625a: 21c3 movs r1, #195 ; 0xc3 800625c: 20a5 movs r0, #165 ; 0xa5 800625e: f7fe fe79 bl 8004f54 BSP_LCD_DisplayStringAt(165, 206, "Усилитель заряда и напряжения", CENTER_MODE); 8006262: 2301 movs r3, #1 8006264: 4a4e ldr r2, [pc, #312] ; (80063a0 ) 8006266: 21ce movs r1, #206 ; 0xce 8006268: 20a5 movs r0, #165 ; 0xa5 800626a: f7fe fe73 bl 8004f54 800626e: e005 b.n 800627c } else BSP_LCD_DisplayStringAt(165, 206, "Amplifier A142", CENTER_MODE); 8006270: 2301 movs r3, #1 8006272: 4a4c ldr r2, [pc, #304] ; (80063a4 ) 8006274: 21ce movs r1, #206 ; 0xce 8006276: 20a5 movs r0, #165 ; 0xa5 8006278: f7fe fe6c bl 8004f54 else BSP_LCD_DisplayStringAt(165, 206, "Amplifier A148", CENTER_MODE); #endif #endif BSP_LCD_DisplayStringAt(160, 224, (char *) _VERSION, CENTER_MODE); 800627c: 2301 movs r3, #1 800627e: 4a4a ldr r2, [pc, #296] ; (80063a8 ) 8006280: 21e0 movs r1, #224 ; 0xe0 8006282: 20a0 movs r0, #160 ; 0xa0 8006284: f7fe fe66 bl 8004f54 BSP_LCD_DisplayStringAt(160, 4, (char *) _SERIAL_DRAW, CENTER_MODE); 8006288: 2301 movs r3, #1 800628a: 4a48 ldr r2, [pc, #288] ; (80063ac ) 800628c: 2104 movs r1, #4 800628e: 20a0 movs r0, #160 ; 0xa0 8006290: f7fe fe60 bl 8004f54 memset(str, 0, sizeof(str)); 8006294: f507 7307 add.w r3, r7, #540 ; 0x21c 8006298: 223c movs r2, #60 ; 0x3c 800629a: 2100 movs r1, #0 800629c: 4618 mov r0, r3 800629e: f010 f91c bl 80164da l = 0; 80062a2: 2300 movs r3, #0 80062a4: f8c7 3324 str.w r3, [r7, #804] ; 0x324 if(ip_assigned) 80062a8: 4b41 ldr r3, [pc, #260] ; (80063b0 ) 80062aa: 781b ldrb r3, [r3, #0] 80062ac: b2db uxtb r3, r3 80062ae: 2b00 cmp r3, #0 80062b0: f000 80f9 beq.w 80064a6 { for(j = 0; j < 4; j++) 80062b4: 2300 movs r3, #0 80062b6: f8c7 332c str.w r3, [r7, #812] ; 0x32c 80062ba: e0d9 b.n 8006470 { k = ip[j]; 80062bc: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c 80062c0: 4a3c ldr r2, [pc, #240] ; (80063b4 ) 80062c2: 5cd3 ldrb r3, [r2, r3] 80062c4: f8c7 3328 str.w r3, [r7, #808] ; 0x328 if(k < 10) 80062c8: f8d7 3328 ldr.w r3, [r7, #808] ; 0x328 80062cc: 2b09 cmp r3, #9 80062ce: d81b bhi.n 8006308 { str[l++] = (uint8_t) (k + 48); 80062d0: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324 80062d4: 1c5a adds r2, r3, #1 80062d6: f8c7 2324 str.w r2, [r7, #804] ; 0x324 80062da: f8d7 2328 ldr.w r2, [r7, #808] ; 0x328 80062de: b2d2 uxtb r2, r2 80062e0: 3230 adds r2, #48 ; 0x30 80062e2: b2d1 uxtb r1, r2 80062e4: f507 7207 add.w r2, r7, #540 ; 0x21c 80062e8: 54d1 strb r1, [r2, r3] if(j < 3) { 80062ea: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c 80062ee: 2b02 cmp r3, #2 80062f0: f200 80b9 bhi.w 8006466 str[l++] = '.'; 80062f4: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324 80062f8: 1c5a adds r2, r3, #1 80062fa: f8c7 2324 str.w r2, [r7, #804] ; 0x324 80062fe: f507 7207 add.w r2, r7, #540 ; 0x21c 8006302: 212e movs r1, #46 ; 0x2e 8006304: 54d1 strb r1, [r2, r3] 8006306: e0ae b.n 8006466 } } else if(k < 100) 8006308: f8d7 3328 ldr.w r3, [r7, #808] ; 0x328 800630c: 2b63 cmp r3, #99 ; 0x63 800630e: d855 bhi.n 80063bc { str[l++] = (uint8_t) ((k / 10) + 48); 8006310: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324 8006314: 1c5a adds r2, r3, #1 8006316: f8c7 2324 str.w r2, [r7, #804] ; 0x324 800631a: f8d7 2328 ldr.w r2, [r7, #808] ; 0x328 800631e: 4926 ldr r1, [pc, #152] ; (80063b8 ) 8006320: fba1 1202 umull r1, r2, r1, r2 8006324: 08d2 lsrs r2, r2, #3 8006326: b2d2 uxtb r2, r2 8006328: 3230 adds r2, #48 ; 0x30 800632a: b2d1 uxtb r1, r2 800632c: f507 7207 add.w r2, r7, #540 ; 0x21c 8006330: 54d1 strb r1, [r2, r3] str[l++] = (uint8_t) ((k % 10) + 48); 8006332: f8d7 1324 ldr.w r1, [r7, #804] ; 0x324 8006336: 1c4b adds r3, r1, #1 8006338: f8c7 3324 str.w r3, [r7, #804] ; 0x324 800633c: f8d7 0328 ldr.w r0, [r7, #808] ; 0x328 8006340: 4b1d ldr r3, [pc, #116] ; (80063b8 ) 8006342: fba3 2300 umull r2, r3, r3, r0 8006346: 08da lsrs r2, r3, #3 8006348: 4613 mov r3, r2 800634a: 009b lsls r3, r3, #2 800634c: 4413 add r3, r2 800634e: 005b lsls r3, r3, #1 8006350: 1ac2 subs r2, r0, r3 8006352: b2d3 uxtb r3, r2 8006354: 3330 adds r3, #48 ; 0x30 8006356: b2da uxtb r2, r3 8006358: f507 7307 add.w r3, r7, #540 ; 0x21c 800635c: 545a strb r2, [r3, r1] if(j < 3) { 800635e: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c 8006362: 2b02 cmp r3, #2 8006364: d87f bhi.n 8006466 str[l++] = '.'; 8006366: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324 800636a: 1c5a adds r2, r3, #1 800636c: f8c7 2324 str.w r2, [r7, #804] ; 0x324 8006370: f507 7207 add.w r2, r7, #540 ; 0x21c 8006374: 212e movs r1, #46 ; 0x2e 8006376: 54d1 strb r1, [r2, r3] 8006378: e075 b.n 8006466 800637a: bf00 nop 800637c: 2006ba78 .word 0x2006ba78 8006380: 2006ba7c .word 0x2006ba7c 8006384: 2006ba74 .word 0x2006ba74 8006388: 200209d9 .word 0x200209d9 800638c: 0802fd10 .word 0x0802fd10 8006390: 2006ba70 .word 0x2006ba70 8006394: 20020000 .word 0x20020000 8006398: 2006bca8 .word 0x2006bca8 800639c: 080180f4 .word 0x080180f4 80063a0: 080180fc .word 0x080180fc 80063a4: 0801811c .word 0x0801811c 80063a8: 0801ae00 .word 0x0801ae00 80063ac: 20020020 .word 0x20020020 80063b0: 2006ba94 .word 0x2006ba94 80063b4: 2006ba8c .word 0x2006ba8c 80063b8: cccccccd .word 0xcccccccd } } else { str[l++] = (uint8_t) ((k / 100) + 48); 80063bc: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324 80063c0: 1c5a adds r2, r3, #1 80063c2: f8c7 2324 str.w r2, [r7, #804] ; 0x324 80063c6: f8d7 2328 ldr.w r2, [r7, #808] ; 0x328 80063ca: 49ba ldr r1, [pc, #744] ; (80066b4 ) 80063cc: fba1 1202 umull r1, r2, r1, r2 80063d0: 0952 lsrs r2, r2, #5 80063d2: b2d2 uxtb r2, r2 80063d4: 3230 adds r2, #48 ; 0x30 80063d6: b2d1 uxtb r1, r2 80063d8: f507 7207 add.w r2, r7, #540 ; 0x21c 80063dc: 54d1 strb r1, [r2, r3] str[l++] = (uint8_t) ((k % 100 / 10) + 48); 80063de: f8d7 2324 ldr.w r2, [r7, #804] ; 0x324 80063e2: 1c53 adds r3, r2, #1 80063e4: f8c7 3324 str.w r3, [r7, #804] ; 0x324 80063e8: f8d7 1328 ldr.w r1, [r7, #808] ; 0x328 80063ec: 4bb1 ldr r3, [pc, #708] ; (80066b4 ) 80063ee: fba3 0301 umull r0, r3, r3, r1 80063f2: 095b lsrs r3, r3, #5 80063f4: 2064 movs r0, #100 ; 0x64 80063f6: fb00 f303 mul.w r3, r0, r3 80063fa: 1acb subs r3, r1, r3 80063fc: 49ae ldr r1, [pc, #696] ; (80066b8 ) 80063fe: fba1 1303 umull r1, r3, r1, r3 8006402: 08db lsrs r3, r3, #3 8006404: b2db uxtb r3, r3 8006406: 3330 adds r3, #48 ; 0x30 8006408: b2d9 uxtb r1, r3 800640a: f507 7307 add.w r3, r7, #540 ; 0x21c 800640e: 5499 strb r1, [r3, r2] str[l++] = (uint8_t) ((k % 100 % 10) + 48); 8006410: f8d7 0324 ldr.w r0, [r7, #804] ; 0x324 8006414: 1c43 adds r3, r0, #1 8006416: f8c7 3324 str.w r3, [r7, #804] ; 0x324 800641a: f8d7 3328 ldr.w r3, [r7, #808] ; 0x328 800641e: 4aa5 ldr r2, [pc, #660] ; (80066b4 ) 8006420: fba2 1203 umull r1, r2, r2, r3 8006424: 0952 lsrs r2, r2, #5 8006426: 2164 movs r1, #100 ; 0x64 8006428: fb01 f202 mul.w r2, r1, r2 800642c: 1a9a subs r2, r3, r2 800642e: 4ba2 ldr r3, [pc, #648] ; (80066b8 ) 8006430: fba3 1302 umull r1, r3, r3, r2 8006434: 08d9 lsrs r1, r3, #3 8006436: 460b mov r3, r1 8006438: 009b lsls r3, r3, #2 800643a: 440b add r3, r1 800643c: 005b lsls r3, r3, #1 800643e: 1ad1 subs r1, r2, r3 8006440: b2cb uxtb r3, r1 8006442: 3330 adds r3, #48 ; 0x30 8006444: b2da uxtb r2, r3 8006446: f507 7307 add.w r3, r7, #540 ; 0x21c 800644a: 541a strb r2, [r3, r0] if(j < 3) { 800644c: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c 8006450: 2b02 cmp r3, #2 8006452: d808 bhi.n 8006466 str[l++] = '.'; 8006454: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324 8006458: 1c5a adds r2, r3, #1 800645a: f8c7 2324 str.w r2, [r7, #804] ; 0x324 800645e: f507 7207 add.w r2, r7, #540 ; 0x21c 8006462: 212e movs r1, #46 ; 0x2e 8006464: 54d1 strb r1, [r2, r3] for(j = 0; j < 4; j++) 8006466: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c 800646a: 3301 adds r3, #1 800646c: f8c7 332c str.w r3, [r7, #812] ; 0x32c 8006470: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c 8006474: 2b03 cmp r3, #3 8006476: f67f af21 bls.w 80062bc } } } strcat(str, ":7000"); 800647a: f507 7307 add.w r3, r7, #540 ; 0x21c 800647e: 4618 mov r0, r3 8006480: f7f9 feda bl 8000238 8006484: 4603 mov r3, r0 8006486: 461a mov r2, r3 8006488: f507 7307 add.w r3, r7, #540 ; 0x21c 800648c: 4413 add r3, r2 800648e: 4a8b ldr r2, [pc, #556] ; (80066bc ) 8006490: 6810 ldr r0, [r2, #0] 8006492: 6018 str r0, [r3, #0] 8006494: 8892 ldrh r2, [r2, #4] 8006496: 809a strh r2, [r3, #4] BSP_LCD_DisplayStringAt(160, 24, str, CENTER_MODE); 8006498: f507 7207 add.w r2, r7, #540 ; 0x21c 800649c: 2301 movs r3, #1 800649e: 2118 movs r1, #24 80064a0: 20a0 movs r0, #160 ; 0xa0 80064a2: f7fe fd57 bl 8004f54 /*if(CORRECTION == false) { BSP_LCD_DisplayStringAt(0, 4, ".", LEFT_MODE); }*/ DrawSpinner(300, 20); 80064a6: 2114 movs r1, #20 80064a8: f44f 7096 mov.w r0, #300 ; 0x12c 80064ac: f007 fdee bl 800e08c if(clbr) 80064b0: 4b83 ldr r3, [pc, #524] ; (80066c0 ) 80064b2: 781b ldrb r3, [r3, #0] 80064b4: b2db uxtb r3, r3 80064b6: 2b00 cmp r3, #0 80064b8: d00b beq.n 80064d2 { LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 80064ba: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80064be: f04f 30ff mov.w r0, #4294967295 80064c2: f7fe fc81 bl 8004dc8 BSP_LCD_DisplayStringAt(160, 18, "ЗАПУСК КАЛИБРОВКИ", CENTER_MODE); 80064c6: 2301 movs r3, #1 80064c8: 4a7e ldr r2, [pc, #504] ; (80066c4 ) 80064ca: 2112 movs r1, #18 80064cc: 20a0 movs r0, #160 ; 0xa0 80064ce: f7fe fd41 bl 8004f54 } if(ASK_COMPLETE) 80064d2: 4b7d ldr r3, [pc, #500] ; (80066c8 ) 80064d4: 781b ldrb r3, [r3, #0] 80064d6: b2db uxtb r3, r3 80064d8: 2b00 cmp r3, #0 80064da: f007 8277 beq.w 800d9cc { timesLOGO = 0; 80064de: 4b7b ldr r3, [pc, #492] ; (80066cc ) 80064e0: 2200 movs r2, #0 80064e2: 601a str r2, [r3, #0] if(clbr) 80064e4: 4b76 ldr r3, [pc, #472] ; (80066c0 ) 80064e6: 781b ldrb r3, [r3, #0] 80064e8: b2db uxtb r3, r3 80064ea: 2b00 cmp r3, #0 80064ec: d007 beq.n 80064fe { menu = CALIBR_00; 80064ee: 4b78 ldr r3, [pc, #480] ; (80066d0 ) 80064f0: 2201 movs r2, #1 80064f2: 701a strb r2, [r3, #0] menupos = Ch1; 80064f4: 4b77 ldr r3, [pc, #476] ; (80066d4 ) 80064f6: 2200 movs r2, #0 80064f8: 701a strb r2, [r3, #0] } else menu = MAIN; } } break; 80064fa: f007 ba67 b.w 800d9cc menu = MAIN; 80064fe: 4b74 ldr r3, [pc, #464] ; (80066d0 ) 8006500: 2200 movs r2, #0 8006502: 701a strb r2, [r3, #0] break; 8006504: f007 ba62 b.w 800d9cc case OPTIONS: BSP_LCD_SetFont(&Font12); 8006508: 4873 ldr r0, [pc, #460] ; (80066d8 ) 800650a: f7fe fc99 bl 8004e40 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800650e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006512: f04f 30ff mov.w r0, #4294967295 8006516: f7fe fc57 bl 8004dc8 BSP_LCD_DisplayStringAt(55, 120, (char *) pOPTIONS[pardata.LANG][2], LEFT_MODE); //Язык 800651a: 4b70 ldr r3, [pc, #448] ; (80066dc ) 800651c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8006520: b29b uxth r3, r3 8006522: 4a6f ldr r2, [pc, #444] ; (80066e0 ) 8006524: 011b lsls r3, r3, #4 8006526: 4413 add r3, r2 8006528: 3308 adds r3, #8 800652a: 681a ldr r2, [r3, #0] 800652c: 2303 movs r3, #3 800652e: 2178 movs r1, #120 ; 0x78 8006530: 2037 movs r0, #55 ; 0x37 8006532: f7fe fd0f bl 8004f54 if(menupos == Back) 8006536: 4b67 ldr r3, [pc, #412] ; (80066d4 ) 8006538: 781b ldrb r3, [r3, #0] 800653a: b2db uxtb r3, r3 800653c: 2bff cmp r3, #255 ; 0xff 800653e: d148 bne.n 80065d2 { LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8006540: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006544: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8006548: f7fe fc3e bl 8004dc8 BSP_LCD_DisplayStringAt(55, 80, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //Назад 800654c: 4b63 ldr r3, [pc, #396] ; (80066dc ) 800654e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8006552: b29b uxth r3, r3 8006554: 4a62 ldr r2, [pc, #392] ; (80066e0 ) 8006556: 011b lsls r3, r3, #4 8006558: 4413 add r3, r2 800655a: 681a ldr r2, [r3, #0] 800655c: 2303 movs r3, #3 800655e: 2150 movs r1, #80 ; 0x50 8006560: 2037 movs r0, #55 ; 0x37 8006562: f7fe fcf7 bl 8004f54 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 8006566: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800656a: f04f 30ff mov.w r0, #4294967295 800656e: f7fe fc2b bl 8004dc8 BSP_LCD_DisplayStringAt(55, 100, (char *) pOPTIONS[pardata.LANG][1], LEFT_MODE); //Настройка каналов 8006572: 4b5a ldr r3, [pc, #360] ; (80066dc ) 8006574: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8006578: b29b uxth r3, r3 800657a: 4a59 ldr r2, [pc, #356] ; (80066e0 ) 800657c: 011b lsls r3, r3, #4 800657e: 4413 add r3, r2 8006580: 3304 adds r3, #4 8006582: 681a ldr r2, [r3, #0] 8006584: 2303 movs r3, #3 8006586: 2164 movs r1, #100 ; 0x64 8006588: 2037 movs r0, #55 ; 0x37 800658a: f7fe fce3 bl 8004f54 BSP_LCD_DisplayStringAt(55, 140, (char *) pOPTIONS[pardata.LANG][3], LEFT_MODE); //Off 800658e: 4b53 ldr r3, [pc, #332] ; (80066dc ) 8006590: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8006594: b29b uxth r3, r3 8006596: 4a52 ldr r2, [pc, #328] ; (80066e0 ) 8006598: 011b lsls r3, r3, #4 800659a: 4413 add r3, r2 800659c: 330c adds r3, #12 800659e: 681a ldr r2, [r3, #0] 80065a0: 2303 movs r3, #3 80065a2: 218c movs r1, #140 ; 0x8c 80065a4: 2037 movs r0, #55 ; 0x37 80065a6: f7fe fcd5 bl 8004f54 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 80065aa: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80065ae: 484d ldr r0, [pc, #308] ; (80066e4 ) 80065b0: f7fe fc0a bl 8004dc8 BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //Язык 80065b4: 4b49 ldr r3, [pc, #292] ; (80066dc ) 80065b6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80065ba: b29b uxth r3, r3 80065bc: 461a mov r2, r3 80065be: 4b4a ldr r3, [pc, #296] ; (80066e8 ) 80065c0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80065c4: 2301 movs r3, #1 80065c6: 2178 movs r1, #120 ; 0x78 80065c8: 20f0 movs r0, #240 ; 0xf0 80065ca: f7fe fcc3 bl 8004f54 BSP_LCD_DisplayStringAt(55, 100, (char *) pOPTIONS[pardata.LANG][1], LEFT_MODE); //Настройка каналов LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //Язык } break; 80065ce: f007 b9ff b.w 800d9d0 if(menupos == Inputs) 80065d2: 4b40 ldr r3, [pc, #256] ; (80066d4 ) 80065d4: 781b ldrb r3, [r3, #0] 80065d6: b2db uxtb r3, r3 80065d8: 2b00 cmp r3, #0 80065da: d148 bne.n 800666e LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 80065dc: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80065e0: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 80065e4: f7fe fbf0 bl 8004dc8 BSP_LCD_DisplayStringAt(55, 100, (char *) pOPTIONS[pardata.LANG][1], LEFT_MODE); //Настройка каналов 80065e8: 4b3c ldr r3, [pc, #240] ; (80066dc ) 80065ea: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80065ee: b29b uxth r3, r3 80065f0: 4a3b ldr r2, [pc, #236] ; (80066e0 ) 80065f2: 011b lsls r3, r3, #4 80065f4: 4413 add r3, r2 80065f6: 3304 adds r3, #4 80065f8: 681a ldr r2, [r3, #0] 80065fa: 2303 movs r3, #3 80065fc: 2164 movs r1, #100 ; 0x64 80065fe: 2037 movs r0, #55 ; 0x37 8006600: f7fe fca8 bl 8004f54 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 8006604: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006608: f04f 30ff mov.w r0, #4294967295 800660c: f7fe fbdc bl 8004dc8 BSP_LCD_DisplayStringAt(55, 80, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //Назад 8006610: 4b32 ldr r3, [pc, #200] ; (80066dc ) 8006612: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8006616: b29b uxth r3, r3 8006618: 4a31 ldr r2, [pc, #196] ; (80066e0 ) 800661a: 011b lsls r3, r3, #4 800661c: 4413 add r3, r2 800661e: 681a ldr r2, [r3, #0] 8006620: 2303 movs r3, #3 8006622: 2150 movs r1, #80 ; 0x50 8006624: 2037 movs r0, #55 ; 0x37 8006626: f7fe fc95 bl 8004f54 BSP_LCD_DisplayStringAt(55, 140, (char *) pOPTIONS[pardata.LANG][3], LEFT_MODE); //Off 800662a: 4b2c ldr r3, [pc, #176] ; (80066dc ) 800662c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8006630: b29b uxth r3, r3 8006632: 4a2b ldr r2, [pc, #172] ; (80066e0 ) 8006634: 011b lsls r3, r3, #4 8006636: 4413 add r3, r2 8006638: 330c adds r3, #12 800663a: 681a ldr r2, [r3, #0] 800663c: 2303 movs r3, #3 800663e: 218c movs r1, #140 ; 0x8c 8006640: 2037 movs r0, #55 ; 0x37 8006642: f7fe fc87 bl 8004f54 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8006646: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800664a: 4826 ldr r0, [pc, #152] ; (80066e4 ) 800664c: f7fe fbbc bl 8004dc8 BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //Язык 8006650: 4b22 ldr r3, [pc, #136] ; (80066dc ) 8006652: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8006656: b29b uxth r3, r3 8006658: 461a mov r2, r3 800665a: 4b23 ldr r3, [pc, #140] ; (80066e8 ) 800665c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8006660: 2301 movs r3, #1 8006662: 2178 movs r1, #120 ; 0x78 8006664: 20f0 movs r0, #240 ; 0xf0 8006666: f7fe fc75 bl 8004f54 break; 800666a: f007 b9b1 b.w 800d9d0 if(menupos == Lang) 800666e: 4b19 ldr r3, [pc, #100] ; (80066d4 ) 8006670: 781b ldrb r3, [r3, #0] 8006672: b2db uxtb r3, r3 8006674: 2b01 cmp r3, #1 8006676: d17b bne.n 8006770 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8006678: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800667c: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8006680: f7fe fba2 bl 8004dc8 if(focused) 8006684: 4b19 ldr r3, [pc, #100] ; (80066ec ) 8006686: 781b ldrb r3, [r3, #0] 8006688: b2db uxtb r3, r3 800668a: 2b00 cmp r3, #0 800668c: d032 beq.n 80066f4 if(blk) 800668e: 4b18 ldr r3, [pc, #96] ; (80066f0 ) 8006690: 681b ldr r3, [r3, #0] 8006692: 2b00 cmp r3, #0 8006694: d03b beq.n 800670e BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //Язык 8006696: 4b11 ldr r3, [pc, #68] ; (80066dc ) 8006698: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800669c: b29b uxth r3, r3 800669e: 461a mov r2, r3 80066a0: 4b11 ldr r3, [pc, #68] ; (80066e8 ) 80066a2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80066a6: 2301 movs r3, #1 80066a8: 2178 movs r1, #120 ; 0x78 80066aa: 20f0 movs r0, #240 ; 0xf0 80066ac: f7fe fc52 bl 8004f54 80066b0: e02d b.n 800670e 80066b2: bf00 nop 80066b4: 51eb851f .word 0x51eb851f 80066b8: cccccccd .word 0xcccccccd 80066bc: 0801812c .word 0x0801812c 80066c0: 2006c21c .word 0x2006c21c 80066c4: 08018134 .word 0x08018134 80066c8: 2006ba90 .word 0x2006ba90 80066cc: 2006ba70 .word 0x2006ba70 80066d0: 200209d9 .word 0x200209d9 80066d4: 20020010 .word 0x20020010 80066d8: 20020000 .word 0x20020000 80066dc: 2006bca8 .word 0x2006bca8 80066e0: 20020034 .word 0x20020034 80066e4: ffd8aa57 .word 0xffd8aa57 80066e8: 20020964 .word 0x20020964 80066ec: 200209e4 .word 0x200209e4 80066f0: 2006ba78 .word 0x2006ba78 BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //Язык 80066f4: 4b99 ldr r3, [pc, #612] ; (800695c ) 80066f6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80066fa: b29b uxth r3, r3 80066fc: 461a mov r2, r3 80066fe: 4b98 ldr r3, [pc, #608] ; (8006960 ) 8006700: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8006704: 2301 movs r3, #1 8006706: 2178 movs r1, #120 ; 0x78 8006708: 20f0 movs r0, #240 ; 0xf0 800670a: f7fe fc23 bl 8004f54 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800670e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006712: f04f 30ff mov.w r0, #4294967295 8006716: f7fe fb57 bl 8004dc8 BSP_LCD_DisplayStringAt(55, 80, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //Назад 800671a: 4b90 ldr r3, [pc, #576] ; (800695c ) 800671c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8006720: b29b uxth r3, r3 8006722: 4a90 ldr r2, [pc, #576] ; (8006964 ) 8006724: 011b lsls r3, r3, #4 8006726: 4413 add r3, r2 8006728: 681a ldr r2, [r3, #0] 800672a: 2303 movs r3, #3 800672c: 2150 movs r1, #80 ; 0x50 800672e: 2037 movs r0, #55 ; 0x37 8006730: f7fe fc10 bl 8004f54 BSP_LCD_DisplayStringAt(55, 100, (char *) pOPTIONS[pardata.LANG][1], LEFT_MODE); //Настройка каналов 8006734: 4b89 ldr r3, [pc, #548] ; (800695c ) 8006736: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800673a: b29b uxth r3, r3 800673c: 4a89 ldr r2, [pc, #548] ; (8006964 ) 800673e: 011b lsls r3, r3, #4 8006740: 4413 add r3, r2 8006742: 3304 adds r3, #4 8006744: 681a ldr r2, [r3, #0] 8006746: 2303 movs r3, #3 8006748: 2164 movs r1, #100 ; 0x64 800674a: 2037 movs r0, #55 ; 0x37 800674c: f7fe fc02 bl 8004f54 BSP_LCD_DisplayStringAt(55, 140, (char *) pOPTIONS[pardata.LANG][3], LEFT_MODE); //Off 8006750: 4b82 ldr r3, [pc, #520] ; (800695c ) 8006752: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8006756: b29b uxth r3, r3 8006758: 4a82 ldr r2, [pc, #520] ; (8006964 ) 800675a: 011b lsls r3, r3, #4 800675c: 4413 add r3, r2 800675e: 330c adds r3, #12 8006760: 681a ldr r2, [r3, #0] 8006762: 2303 movs r3, #3 8006764: 218c movs r1, #140 ; 0x8c 8006766: 2037 movs r0, #55 ; 0x37 8006768: f7fe fbf4 bl 8004f54 break; 800676c: f007 b930 b.w 800d9d0 if(menupos == PowerOff) 8006770: 4b7d ldr r3, [pc, #500] ; (8006968 ) 8006772: 781b ldrb r3, [r3, #0] 8006774: b2db uxtb r3, r3 8006776: 2b02 cmp r3, #2 8006778: f047 812a bne.w 800d9d0 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800677c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006780: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8006784: f7fe fb20 bl 8004dc8 BSP_LCD_DisplayStringAt(55, 140, (char *) pOPTIONS[pardata.LANG][3], LEFT_MODE); //Off 8006788: 4b74 ldr r3, [pc, #464] ; (800695c ) 800678a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800678e: b29b uxth r3, r3 8006790: 4a74 ldr r2, [pc, #464] ; (8006964 ) 8006792: 011b lsls r3, r3, #4 8006794: 4413 add r3, r2 8006796: 330c adds r3, #12 8006798: 681a ldr r2, [r3, #0] 800679a: 2303 movs r3, #3 800679c: 218c movs r1, #140 ; 0x8c 800679e: 2037 movs r0, #55 ; 0x37 80067a0: f7fe fbd8 bl 8004f54 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 80067a4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80067a8: f04f 30ff mov.w r0, #4294967295 80067ac: f7fe fb0c bl 8004dc8 BSP_LCD_DisplayStringAt(55, 80, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //Назад 80067b0: 4b6a ldr r3, [pc, #424] ; (800695c ) 80067b2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80067b6: b29b uxth r3, r3 80067b8: 4a6a ldr r2, [pc, #424] ; (8006964 ) 80067ba: 011b lsls r3, r3, #4 80067bc: 4413 add r3, r2 80067be: 681a ldr r2, [r3, #0] 80067c0: 2303 movs r3, #3 80067c2: 2150 movs r1, #80 ; 0x50 80067c4: 2037 movs r0, #55 ; 0x37 80067c6: f7fe fbc5 bl 8004f54 BSP_LCD_DisplayStringAt(55, 100, (char *) pOPTIONS[pardata.LANG][1], LEFT_MODE); //Настройка каналов 80067ca: 4b64 ldr r3, [pc, #400] ; (800695c ) 80067cc: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80067d0: b29b uxth r3, r3 80067d2: 4a64 ldr r2, [pc, #400] ; (8006964 ) 80067d4: 011b lsls r3, r3, #4 80067d6: 4413 add r3, r2 80067d8: 3304 adds r3, #4 80067da: 681a ldr r2, [r3, #0] 80067dc: 2303 movs r3, #3 80067de: 2164 movs r1, #100 ; 0x64 80067e0: 2037 movs r0, #55 ; 0x37 80067e2: f7fe fbb7 bl 8004f54 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 80067e6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80067ea: 4860 ldr r0, [pc, #384] ; (800696c ) 80067ec: f7fe faec bl 8004dc8 BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //Язык 80067f0: 4b5a ldr r3, [pc, #360] ; (800695c ) 80067f2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80067f6: b29b uxth r3, r3 80067f8: 461a mov r2, r3 80067fa: 4b59 ldr r3, [pc, #356] ; (8006960 ) 80067fc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8006800: 2301 movs r3, #1 8006802: 2178 movs r1, #120 ; 0x78 8006804: 20f0 movs r0, #240 ; 0xf0 8006806: f7fe fba5 bl 8004f54 break; 800680a: f007 b8e1 b.w 800d9d0 case SETTINGS: //todo ////////////////////////////////////////////////////////////////////////////// if(pardata.amplif[Ch1].SENS <= 0.0f) { 800680e: 4b53 ldr r3, [pc, #332] ; (800695c ) 8006810: edd3 7a06 vldr s15, [r3, #24] 8006814: eef5 7ac0 vcmpe.f32 s15, #0.0 8006818: eef1 fa10 vmrs APSR_nzcv, fpscr 800681c: d807 bhi.n 800682e pardata.amplif[Ch1].SENS = 1.0f; 800681e: 4b4f ldr r3, [pc, #316] ; (800695c ) 8006820: f04f 527e mov.w r2, #1065353216 ; 0x3f800000 8006824: 619a str r2, [r3, #24] s = 10000; 8006826: f242 7310 movw r3, #10000 ; 0x2710 800682a: f8c7 3344 str.w r3, [r7, #836] ; 0x344 } if(pardata.amplif[Ch1].SENS < 10.0f) { 800682e: 4b4b ldr r3, [pc, #300] ; (800695c ) 8006830: edd3 7a06 vldr s15, [r3, #24] 8006834: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8006838: eef4 7ac7 vcmpe.f32 s15, s14 800683c: eef1 fa10 vmrs APSR_nzcv, fpscr 8006840: d514 bpl.n 800686c s = (uint32_t) ((pardata.amplif[Ch1].SENS * 10000.0f) + 0.5f); 8006842: 4b46 ldr r3, [pc, #280] ; (800695c ) 8006844: edd3 7a06 vldr s15, [r3, #24] 8006848: ed9f 7a49 vldr s14, [pc, #292] ; 8006970 800684c: ee67 7a87 vmul.f32 s15, s15, s14 8006850: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006854: ee77 7a87 vadd.f32 s15, s15, s14 8006858: eefc 7ae7 vcvt.u32.f32 s15, s15 800685c: ee17 3a90 vmov r3, s15 8006860: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt1 = 4; 8006864: 2304 movs r3, #4 8006866: f887 3318 strb.w r3, [r7, #792] ; 0x318 800686a: e09c b.n 80069a6 } else if(pardata.amplif[Ch1].SENS < 100.0f) { 800686c: 4b3b ldr r3, [pc, #236] ; (800695c ) 800686e: edd3 7a06 vldr s15, [r3, #24] 8006872: ed9f 7a40 vldr s14, [pc, #256] ; 8006974 8006876: eef4 7ac7 vcmpe.f32 s15, s14 800687a: eef1 fa10 vmrs APSR_nzcv, fpscr 800687e: d514 bpl.n 80068aa s = (uint32_t) ((pardata.amplif[Ch1].SENS * 1000.0f) + 0.5f); 8006880: 4b36 ldr r3, [pc, #216] ; (800695c ) 8006882: edd3 7a06 vldr s15, [r3, #24] 8006886: ed9f 7a3c vldr s14, [pc, #240] ; 8006978 800688a: ee67 7a87 vmul.f32 s15, s15, s14 800688e: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006892: ee77 7a87 vadd.f32 s15, s15, s14 8006896: eefc 7ae7 vcvt.u32.f32 s15, s15 800689a: ee17 3a90 vmov r3, s15 800689e: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt1 = 3; 80068a2: 2303 movs r3, #3 80068a4: f887 3318 strb.w r3, [r7, #792] ; 0x318 80068a8: e07d b.n 80069a6 } else if(pardata.amplif[Ch1].SENS < 1000.0f) { 80068aa: 4b2c ldr r3, [pc, #176] ; (800695c ) 80068ac: edd3 7a06 vldr s15, [r3, #24] 80068b0: ed9f 7a31 vldr s14, [pc, #196] ; 8006978 80068b4: eef4 7ac7 vcmpe.f32 s15, s14 80068b8: eef1 fa10 vmrs APSR_nzcv, fpscr 80068bc: d514 bpl.n 80068e8 s = (uint32_t) ((pardata.amplif[Ch1].SENS * 100.0f) + 0.5f); 80068be: 4b27 ldr r3, [pc, #156] ; (800695c ) 80068c0: edd3 7a06 vldr s15, [r3, #24] 80068c4: ed9f 7a2b vldr s14, [pc, #172] ; 8006974 80068c8: ee67 7a87 vmul.f32 s15, s15, s14 80068cc: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 80068d0: ee77 7a87 vadd.f32 s15, s15, s14 80068d4: eefc 7ae7 vcvt.u32.f32 s15, s15 80068d8: ee17 3a90 vmov r3, s15 80068dc: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt1 = 2; 80068e0: 2302 movs r3, #2 80068e2: f887 3318 strb.w r3, [r7, #792] ; 0x318 80068e6: e05e b.n 80069a6 } else if(pardata.amplif[Ch1].SENS < 10000.0f) { 80068e8: 4b1c ldr r3, [pc, #112] ; (800695c ) 80068ea: edd3 7a06 vldr s15, [r3, #24] 80068ee: ed9f 7a20 vldr s14, [pc, #128] ; 8006970 80068f2: eef4 7ac7 vcmpe.f32 s15, s14 80068f6: eef1 fa10 vmrs APSR_nzcv, fpscr 80068fa: d514 bpl.n 8006926 s = (uint32_t) ((pardata.amplif[Ch1].SENS * 10.0f) + 0.5f); 80068fc: 4b17 ldr r3, [pc, #92] ; (800695c ) 80068fe: edd3 7a06 vldr s15, [r3, #24] 8006902: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8006906: ee67 7a87 vmul.f32 s15, s15, s14 800690a: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 800690e: ee77 7a87 vadd.f32 s15, s15, s14 8006912: eefc 7ae7 vcvt.u32.f32 s15, s15 8006916: ee17 3a90 vmov r3, s15 800691a: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt1 = 1; 800691e: 2301 movs r3, #1 8006920: f887 3318 strb.w r3, [r7, #792] ; 0x318 8006924: e03f b.n 80069a6 } else if(pardata.amplif[Ch1].SENS < 100000.0f) { 8006926: 4b0d ldr r3, [pc, #52] ; (800695c ) 8006928: edd3 7a06 vldr s15, [r3, #24] 800692c: ed9f 7a13 vldr s14, [pc, #76] ; 800697c 8006930: eef4 7ac7 vcmpe.f32 s15, s14 8006934: eef1 fa10 vmrs APSR_nzcv, fpscr 8006938: d522 bpl.n 8006980 s = (uint32_t) ((pardata.amplif[Ch1].SENS) + 0.5f); 800693a: 4b08 ldr r3, [pc, #32] ; (800695c ) 800693c: edd3 7a06 vldr s15, [r3, #24] 8006940: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006944: ee77 7a87 vadd.f32 s15, s15, s14 8006948: eefc 7ae7 vcvt.u32.f32 s15, s15 800694c: ee17 3a90 vmov r3, s15 8006950: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt1 = 0; 8006954: 2300 movs r3, #0 8006956: f887 3318 strb.w r3, [r7, #792] ; 0x318 800695a: e024 b.n 80069a6 800695c: 2006bca8 .word 0x2006bca8 8006960: 20020964 .word 0x20020964 8006964: 20020034 .word 0x20020034 8006968: 20020010 .word 0x20020010 800696c: ffd8aa57 .word 0xffd8aa57 8006970: 461c4000 .word 0x461c4000 8006974: 42c80000 .word 0x42c80000 8006978: 447a0000 .word 0x447a0000 800697c: 47c35000 .word 0x47c35000 } else if(pardata.amplif[Ch1].SENS >= 100000.0f) { 8006980: 4bd8 ldr r3, [pc, #864] ; (8006ce4 ) 8006982: edd3 7a06 vldr s15, [r3, #24] 8006986: ed9f 7ad8 vldr s14, [pc, #864] ; 8006ce8 800698a: eef4 7ac7 vcmpe.f32 s15, s14 800698e: eef1 fa10 vmrs APSR_nzcv, fpscr 8006992: db08 blt.n 80069a6 pardata.amplif[Ch1].SENS = 99999.0f; 8006994: 4bd3 ldr r3, [pc, #844] ; (8006ce4 ) 8006996: 4ad5 ldr r2, [pc, #852] ; (8006cec ) 8006998: 619a str r2, [r3, #24] s = 99999; 800699a: 4bd5 ldr r3, [pc, #852] ; (8006cf0 ) 800699c: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt1 = 0; 80069a0: 2300 movs r3, #0 80069a2: f887 3318 strb.w r3, [r7, #792] ; 0x318 } idt1 = (s / 10000); 80069a6: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 80069aa: 4ad2 ldr r2, [pc, #840] ; (8006cf4 ) 80069ac: fba2 2303 umull r2, r3, r2, r3 80069b0: 0b5b lsrs r3, r3, #13 80069b2: b2db uxtb r3, r3 80069b4: f887 331f strb.w r3, [r7, #799] ; 0x31f iet1 = (s % 10000 / 1000); 80069b8: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344 80069bc: 4bcd ldr r3, [pc, #820] ; (8006cf4 ) 80069be: fba3 1302 umull r1, r3, r3, r2 80069c2: 0b5b lsrs r3, r3, #13 80069c4: f242 7110 movw r1, #10000 ; 0x2710 80069c8: fb01 f303 mul.w r3, r1, r3 80069cc: 1ad3 subs r3, r2, r3 80069ce: 4aca ldr r2, [pc, #808] ; (8006cf8 ) 80069d0: fba2 2303 umull r2, r3, r2, r3 80069d4: 099b lsrs r3, r3, #6 80069d6: b2db uxtb r3, r3 80069d8: f887 331e strb.w r3, [r7, #798] ; 0x31e ies1 = (s % 10000 % 1000 / 100); 80069dc: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344 80069e0: 4bc4 ldr r3, [pc, #784] ; (8006cf4 ) 80069e2: fba3 1302 umull r1, r3, r3, r2 80069e6: 0b5b lsrs r3, r3, #13 80069e8: f242 7110 movw r1, #10000 ; 0x2710 80069ec: fb01 f303 mul.w r3, r1, r3 80069f0: 1ad3 subs r3, r2, r3 80069f2: 4ac1 ldr r2, [pc, #772] ; (8006cf8 ) 80069f4: fba2 1203 umull r1, r2, r2, r3 80069f8: 0992 lsrs r2, r2, #6 80069fa: f44f 717a mov.w r1, #1000 ; 0x3e8 80069fe: fb01 f202 mul.w r2, r1, r2 8006a02: 1a9a subs r2, r3, r2 8006a04: 4bbd ldr r3, [pc, #756] ; (8006cfc ) 8006a06: fba3 2302 umull r2, r3, r3, r2 8006a0a: 095b lsrs r3, r3, #5 8006a0c: b2db uxtb r3, r3 8006a0e: f887 331d strb.w r3, [r7, #797] ; 0x31d ied1 = (s % 10000 % 1000 % 100 / 10); 8006a12: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 8006a16: 4ab7 ldr r2, [pc, #732] ; (8006cf4 ) 8006a18: fba2 1203 umull r1, r2, r2, r3 8006a1c: 0b52 lsrs r2, r2, #13 8006a1e: f242 7110 movw r1, #10000 ; 0x2710 8006a22: fb01 f202 mul.w r2, r1, r2 8006a26: 1a9a subs r2, r3, r2 8006a28: 4bb3 ldr r3, [pc, #716] ; (8006cf8 ) 8006a2a: fba3 1302 umull r1, r3, r3, r2 8006a2e: 099b lsrs r3, r3, #6 8006a30: f44f 717a mov.w r1, #1000 ; 0x3e8 8006a34: fb01 f303 mul.w r3, r1, r3 8006a38: 1ad3 subs r3, r2, r3 8006a3a: 4ab0 ldr r2, [pc, #704] ; (8006cfc ) 8006a3c: fba2 1203 umull r1, r2, r2, r3 8006a40: 0952 lsrs r2, r2, #5 8006a42: 2164 movs r1, #100 ; 0x64 8006a44: fb01 f202 mul.w r2, r1, r2 8006a48: 1a9a subs r2, r3, r2 8006a4a: 4bad ldr r3, [pc, #692] ; (8006d00 ) 8006a4c: fba3 2302 umull r2, r3, r3, r2 8006a50: 08db lsrs r3, r3, #3 8006a52: b2db uxtb r3, r3 8006a54: f887 331c strb.w r3, [r7, #796] ; 0x31c iee1 = (s % 10000 % 1000 % 100 % 10); 8006a58: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 8006a5c: 4aa5 ldr r2, [pc, #660] ; (8006cf4 ) 8006a5e: fba2 1203 umull r1, r2, r2, r3 8006a62: 0b52 lsrs r2, r2, #13 8006a64: f242 7110 movw r1, #10000 ; 0x2710 8006a68: fb01 f202 mul.w r2, r1, r2 8006a6c: 1a9a subs r2, r3, r2 8006a6e: 4ba2 ldr r3, [pc, #648] ; (8006cf8 ) 8006a70: fba3 1302 umull r1, r3, r3, r2 8006a74: 099b lsrs r3, r3, #6 8006a76: f44f 717a mov.w r1, #1000 ; 0x3e8 8006a7a: fb01 f303 mul.w r3, r1, r3 8006a7e: 1ad3 subs r3, r2, r3 8006a80: 4a9e ldr r2, [pc, #632] ; (8006cfc ) 8006a82: fba2 1203 umull r1, r2, r2, r3 8006a86: 0952 lsrs r2, r2, #5 8006a88: 2164 movs r1, #100 ; 0x64 8006a8a: fb01 f202 mul.w r2, r1, r2 8006a8e: 1a9a subs r2, r3, r2 8006a90: 4b9b ldr r3, [pc, #620] ; (8006d00 ) 8006a92: fba3 1302 umull r1, r3, r3, r2 8006a96: 08d9 lsrs r1, r3, #3 8006a98: 460b mov r3, r1 8006a9a: 009b lsls r3, r3, #2 8006a9c: 440b add r3, r1 8006a9e: 005b lsls r3, r3, #1 8006aa0: 1ad1 subs r1, r2, r3 8006aa2: b2cb uxtb r3, r1 8006aa4: f887 331b strb.w r3, [r7, #795] ; 0x31b p8 = str1; 8006aa8: f507 738e add.w r3, r7, #284 ; 0x11c 8006aac: f8c7 3340 str.w r3, [r7, #832] ; 0x340 if(pardata.amplif[Ch1].SENS < 10.0f) { 8006ab0: 4b8c ldr r3, [pc, #560] ; (8006ce4 ) 8006ab2: edd3 7a06 vldr s15, [r3, #24] 8006ab6: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8006aba: eef4 7ac7 vcmpe.f32 s15, s14 8006abe: eef1 fa10 vmrs APSR_nzcv, fpscr 8006ac2: d50b bpl.n 8006adc p8 = FloatToASCII(pardata.amplif[Ch1].SENS, -4); 8006ac4: 4b87 ldr r3, [pc, #540] ; (8006ce4 ) 8006ac6: edd3 7a06 vldr s15, [r3, #24] 8006aca: f06f 0003 mvn.w r0, #3 8006ace: eeb0 0a67 vmov.f32 s0, s15 8006ad2: f008 fce5 bl 800f4a0 8006ad6: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8006ada: e055 b.n 8006b88 } else if(pardata.amplif[Ch1].SENS < 100.0f) { 8006adc: 4b81 ldr r3, [pc, #516] ; (8006ce4 ) 8006ade: edd3 7a06 vldr s15, [r3, #24] 8006ae2: ed9f 7a88 vldr s14, [pc, #544] ; 8006d04 8006ae6: eef4 7ac7 vcmpe.f32 s15, s14 8006aea: eef1 fa10 vmrs APSR_nzcv, fpscr 8006aee: d50b bpl.n 8006b08 p8 = FloatToASCII(pardata.amplif[Ch1].SENS, -3); 8006af0: 4b7c ldr r3, [pc, #496] ; (8006ce4 ) 8006af2: edd3 7a06 vldr s15, [r3, #24] 8006af6: f06f 0002 mvn.w r0, #2 8006afa: eeb0 0a67 vmov.f32 s0, s15 8006afe: f008 fccf bl 800f4a0 8006b02: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8006b06: e03f b.n 8006b88 } else if(pardata.amplif[Ch1].SENS < 1000.0f) { 8006b08: 4b76 ldr r3, [pc, #472] ; (8006ce4 ) 8006b0a: edd3 7a06 vldr s15, [r3, #24] 8006b0e: ed9f 7a7e vldr s14, [pc, #504] ; 8006d08 8006b12: eef4 7ac7 vcmpe.f32 s15, s14 8006b16: eef1 fa10 vmrs APSR_nzcv, fpscr 8006b1a: d50b bpl.n 8006b34 p8 = FloatToASCII(pardata.amplif[Ch1].SENS, -2); 8006b1c: 4b71 ldr r3, [pc, #452] ; (8006ce4 ) 8006b1e: edd3 7a06 vldr s15, [r3, #24] 8006b22: f06f 0001 mvn.w r0, #1 8006b26: eeb0 0a67 vmov.f32 s0, s15 8006b2a: f008 fcb9 bl 800f4a0 8006b2e: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8006b32: e029 b.n 8006b88 } else if(pardata.amplif[Ch1].SENS < 10000.0f) { 8006b34: 4b6b ldr r3, [pc, #428] ; (8006ce4 ) 8006b36: edd3 7a06 vldr s15, [r3, #24] 8006b3a: ed9f 7a74 vldr s14, [pc, #464] ; 8006d0c 8006b3e: eef4 7ac7 vcmpe.f32 s15, s14 8006b42: eef1 fa10 vmrs APSR_nzcv, fpscr 8006b46: d50b bpl.n 8006b60 p8 = FloatToASCII(pardata.amplif[Ch1].SENS, -1); 8006b48: 4b66 ldr r3, [pc, #408] ; (8006ce4 ) 8006b4a: edd3 7a06 vldr s15, [r3, #24] 8006b4e: f04f 30ff mov.w r0, #4294967295 8006b52: eeb0 0a67 vmov.f32 s0, s15 8006b56: f008 fca3 bl 800f4a0 8006b5a: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8006b5e: e013 b.n 8006b88 } else if(pardata.amplif[Ch1].SENS < 100000.0f) { 8006b60: 4b60 ldr r3, [pc, #384] ; (8006ce4 ) 8006b62: edd3 7a06 vldr s15, [r3, #24] 8006b66: ed9f 7a60 vldr s14, [pc, #384] ; 8006ce8 8006b6a: eef4 7ac7 vcmpe.f32 s15, s14 8006b6e: eef1 fa10 vmrs APSR_nzcv, fpscr 8006b72: d509 bpl.n 8006b88 p8 = FloatToASCII(pardata.amplif[Ch1].SENS, 0); 8006b74: 4b5b ldr r3, [pc, #364] ; (8006ce4 ) 8006b76: edd3 7a06 vldr s15, [r3, #24] 8006b7a: 2000 movs r0, #0 8006b7c: eeb0 0a67 vmov.f32 s0, s15 8006b80: f008 fc8e bl 800f4a0 8006b84: f8c7 0340 str.w r0, [r7, #832] ; 0x340 } strcpy((void *) str1, (void *) p8); 8006b88: f507 738e add.w r3, r7, #284 ; 0x11c 8006b8c: f8d7 1340 ldr.w r1, [r7, #832] ; 0x340 8006b90: 4618 mov r0, r3 8006b92: f00f fcaa bl 80164ea ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// if(pardata.amplif[Ch2].SENS <= 0.0f) { 8006b96: 4b53 ldr r3, [pc, #332] ; (8006ce4 ) 8006b98: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006b9c: eef5 7ac0 vcmpe.f32 s15, #0.0 8006ba0: eef1 fa10 vmrs APSR_nzcv, fpscr 8006ba4: d807 bhi.n 8006bb6 pardata.amplif[Ch2].SENS = 1.0f; 8006ba6: 4b4f ldr r3, [pc, #316] ; (8006ce4 ) 8006ba8: f04f 527e mov.w r2, #1065353216 ; 0x3f800000 8006bac: 639a str r2, [r3, #56] ; 0x38 s = 10000; 8006bae: f242 7310 movw r3, #10000 ; 0x2710 8006bb2: f8c7 3344 str.w r3, [r7, #836] ; 0x344 } if(pardata.amplif[Ch2].SENS < 10.0f) { 8006bb6: 4b4b ldr r3, [pc, #300] ; (8006ce4 ) 8006bb8: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006bbc: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8006bc0: eef4 7ac7 vcmpe.f32 s15, s14 8006bc4: eef1 fa10 vmrs APSR_nzcv, fpscr 8006bc8: d514 bpl.n 8006bf4 s = (uint32_t) ((pardata.amplif[Ch2].SENS * 10000.0f) + 0.5f); 8006bca: 4b46 ldr r3, [pc, #280] ; (8006ce4 ) 8006bcc: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006bd0: ed9f 7a4e vldr s14, [pc, #312] ; 8006d0c 8006bd4: ee67 7a87 vmul.f32 s15, s15, s14 8006bd8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006bdc: ee77 7a87 vadd.f32 s15, s15, s14 8006be0: eefc 7ae7 vcvt.u32.f32 s15, s15 8006be4: ee17 3a90 vmov r3, s15 8006be8: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt2 = 4; 8006bec: 2304 movs r3, #4 8006bee: f887 3310 strb.w r3, [r7, #784] ; 0x310 8006bf2: e0a0 b.n 8006d36 } else if(pardata.amplif[Ch2].SENS < 100.0f) { 8006bf4: 4b3b ldr r3, [pc, #236] ; (8006ce4 ) 8006bf6: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006bfa: ed9f 7a42 vldr s14, [pc, #264] ; 8006d04 8006bfe: eef4 7ac7 vcmpe.f32 s15, s14 8006c02: eef1 fa10 vmrs APSR_nzcv, fpscr 8006c06: d514 bpl.n 8006c32 s = (uint32_t) ((pardata.amplif[Ch2].SENS * 1000.0f) + 0.5f); 8006c08: 4b36 ldr r3, [pc, #216] ; (8006ce4 ) 8006c0a: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006c0e: ed9f 7a3e vldr s14, [pc, #248] ; 8006d08 8006c12: ee67 7a87 vmul.f32 s15, s15, s14 8006c16: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006c1a: ee77 7a87 vadd.f32 s15, s15, s14 8006c1e: eefc 7ae7 vcvt.u32.f32 s15, s15 8006c22: ee17 3a90 vmov r3, s15 8006c26: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt2 = 3; 8006c2a: 2303 movs r3, #3 8006c2c: f887 3310 strb.w r3, [r7, #784] ; 0x310 8006c30: e081 b.n 8006d36 } else if(pardata.amplif[Ch2].SENS < 1000.0f) { 8006c32: 4b2c ldr r3, [pc, #176] ; (8006ce4 ) 8006c34: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006c38: ed9f 7a33 vldr s14, [pc, #204] ; 8006d08 8006c3c: eef4 7ac7 vcmpe.f32 s15, s14 8006c40: eef1 fa10 vmrs APSR_nzcv, fpscr 8006c44: d514 bpl.n 8006c70 s = (uint32_t) ((pardata.amplif[Ch2].SENS * 100.0f) + 0.5f); 8006c46: 4b27 ldr r3, [pc, #156] ; (8006ce4 ) 8006c48: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006c4c: ed9f 7a2d vldr s14, [pc, #180] ; 8006d04 8006c50: ee67 7a87 vmul.f32 s15, s15, s14 8006c54: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006c58: ee77 7a87 vadd.f32 s15, s15, s14 8006c5c: eefc 7ae7 vcvt.u32.f32 s15, s15 8006c60: ee17 3a90 vmov r3, s15 8006c64: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt2 = 2; 8006c68: 2302 movs r3, #2 8006c6a: f887 3310 strb.w r3, [r7, #784] ; 0x310 8006c6e: e062 b.n 8006d36 } else if(pardata.amplif[Ch2].SENS < 10000.0f) { 8006c70: 4b1c ldr r3, [pc, #112] ; (8006ce4 ) 8006c72: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006c76: ed9f 7a25 vldr s14, [pc, #148] ; 8006d0c 8006c7a: eef4 7ac7 vcmpe.f32 s15, s14 8006c7e: eef1 fa10 vmrs APSR_nzcv, fpscr 8006c82: d514 bpl.n 8006cae s = (uint32_t) ((pardata.amplif[Ch2].SENS * 10.0f) + 0.5f); 8006c84: 4b17 ldr r3, [pc, #92] ; (8006ce4 ) 8006c86: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006c8a: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8006c8e: ee67 7a87 vmul.f32 s15, s15, s14 8006c92: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006c96: ee77 7a87 vadd.f32 s15, s15, s14 8006c9a: eefc 7ae7 vcvt.u32.f32 s15, s15 8006c9e: ee17 3a90 vmov r3, s15 8006ca2: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt2 = 1; 8006ca6: 2301 movs r3, #1 8006ca8: f887 3310 strb.w r3, [r7, #784] ; 0x310 8006cac: e043 b.n 8006d36 } else if(pardata.amplif[Ch2].SENS < 100000.0f) { 8006cae: 4b0d ldr r3, [pc, #52] ; (8006ce4 ) 8006cb0: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006cb4: ed9f 7a0c vldr s14, [pc, #48] ; 8006ce8 8006cb8: eef4 7ac7 vcmpe.f32 s15, s14 8006cbc: eef1 fa10 vmrs APSR_nzcv, fpscr 8006cc0: d526 bpl.n 8006d10 s = (uint32_t) ((pardata.amplif[Ch2].SENS) + 0.5f); 8006cc2: 4b08 ldr r3, [pc, #32] ; (8006ce4 ) 8006cc4: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006cc8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006ccc: ee77 7a87 vadd.f32 s15, s15, s14 8006cd0: eefc 7ae7 vcvt.u32.f32 s15, s15 8006cd4: ee17 3a90 vmov r3, s15 8006cd8: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt2 = 0; 8006cdc: 2300 movs r3, #0 8006cde: f887 3310 strb.w r3, [r7, #784] ; 0x310 8006ce2: e028 b.n 8006d36 8006ce4: 2006bca8 .word 0x2006bca8 8006ce8: 47c35000 .word 0x47c35000 8006cec: 47c34f80 .word 0x47c34f80 8006cf0: 0001869f .word 0x0001869f 8006cf4: d1b71759 .word 0xd1b71759 8006cf8: 10624dd3 .word 0x10624dd3 8006cfc: 51eb851f .word 0x51eb851f 8006d00: cccccccd .word 0xcccccccd 8006d04: 42c80000 .word 0x42c80000 8006d08: 447a0000 .word 0x447a0000 8006d0c: 461c4000 .word 0x461c4000 } else if(pardata.amplif[Ch2].SENS >= 100000.0f) { 8006d10: 4bd8 ldr r3, [pc, #864] ; (8007074 ) 8006d12: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006d16: ed9f 7ad8 vldr s14, [pc, #864] ; 8007078 8006d1a: eef4 7ac7 vcmpe.f32 s15, s14 8006d1e: eef1 fa10 vmrs APSR_nzcv, fpscr 8006d22: db08 blt.n 8006d36 pardata.amplif[Ch2].SENS = 99999.0f; 8006d24: 4bd3 ldr r3, [pc, #844] ; (8007074 ) 8006d26: 4ad5 ldr r2, [pc, #852] ; (800707c ) 8006d28: 639a str r2, [r3, #56] ; 0x38 s = 99999; 8006d2a: 4bd5 ldr r3, [pc, #852] ; (8007080 ) 8006d2c: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt2 = 0; 8006d30: 2300 movs r3, #0 8006d32: f887 3310 strb.w r3, [r7, #784] ; 0x310 } idt2 = (s / 10000); 8006d36: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 8006d3a: 4ad2 ldr r2, [pc, #840] ; (8007084 ) 8006d3c: fba2 2303 umull r2, r3, r2, r3 8006d40: 0b5b lsrs r3, r3, #13 8006d42: b2db uxtb r3, r3 8006d44: f887 3317 strb.w r3, [r7, #791] ; 0x317 iet2 = (s % 10000 / 1000); 8006d48: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344 8006d4c: 4bcd ldr r3, [pc, #820] ; (8007084 ) 8006d4e: fba3 1302 umull r1, r3, r3, r2 8006d52: 0b5b lsrs r3, r3, #13 8006d54: f242 7110 movw r1, #10000 ; 0x2710 8006d58: fb01 f303 mul.w r3, r1, r3 8006d5c: 1ad3 subs r3, r2, r3 8006d5e: 4aca ldr r2, [pc, #808] ; (8007088 ) 8006d60: fba2 2303 umull r2, r3, r2, r3 8006d64: 099b lsrs r3, r3, #6 8006d66: b2db uxtb r3, r3 8006d68: f887 3316 strb.w r3, [r7, #790] ; 0x316 ies2 = (s % 10000 % 1000 / 100); 8006d6c: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344 8006d70: 4bc4 ldr r3, [pc, #784] ; (8007084 ) 8006d72: fba3 1302 umull r1, r3, r3, r2 8006d76: 0b5b lsrs r3, r3, #13 8006d78: f242 7110 movw r1, #10000 ; 0x2710 8006d7c: fb01 f303 mul.w r3, r1, r3 8006d80: 1ad3 subs r3, r2, r3 8006d82: 4ac1 ldr r2, [pc, #772] ; (8007088 ) 8006d84: fba2 1203 umull r1, r2, r2, r3 8006d88: 0992 lsrs r2, r2, #6 8006d8a: f44f 717a mov.w r1, #1000 ; 0x3e8 8006d8e: fb01 f202 mul.w r2, r1, r2 8006d92: 1a9a subs r2, r3, r2 8006d94: 4bbd ldr r3, [pc, #756] ; (800708c ) 8006d96: fba3 2302 umull r2, r3, r3, r2 8006d9a: 095b lsrs r3, r3, #5 8006d9c: b2db uxtb r3, r3 8006d9e: f887 3315 strb.w r3, [r7, #789] ; 0x315 ied2 = (s % 10000 % 1000 % 100 / 10); 8006da2: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 8006da6: 4ab7 ldr r2, [pc, #732] ; (8007084 ) 8006da8: fba2 1203 umull r1, r2, r2, r3 8006dac: 0b52 lsrs r2, r2, #13 8006dae: f242 7110 movw r1, #10000 ; 0x2710 8006db2: fb01 f202 mul.w r2, r1, r2 8006db6: 1a9a subs r2, r3, r2 8006db8: 4bb3 ldr r3, [pc, #716] ; (8007088 ) 8006dba: fba3 1302 umull r1, r3, r3, r2 8006dbe: 099b lsrs r3, r3, #6 8006dc0: f44f 717a mov.w r1, #1000 ; 0x3e8 8006dc4: fb01 f303 mul.w r3, r1, r3 8006dc8: 1ad3 subs r3, r2, r3 8006dca: 4ab0 ldr r2, [pc, #704] ; (800708c ) 8006dcc: fba2 1203 umull r1, r2, r2, r3 8006dd0: 0952 lsrs r2, r2, #5 8006dd2: 2164 movs r1, #100 ; 0x64 8006dd4: fb01 f202 mul.w r2, r1, r2 8006dd8: 1a9a subs r2, r3, r2 8006dda: 4bad ldr r3, [pc, #692] ; (8007090 ) 8006ddc: fba3 2302 umull r2, r3, r3, r2 8006de0: 08db lsrs r3, r3, #3 8006de2: b2db uxtb r3, r3 8006de4: f887 3314 strb.w r3, [r7, #788] ; 0x314 iee2 = (s % 10000 % 1000 % 100 % 10); 8006de8: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 8006dec: 4aa5 ldr r2, [pc, #660] ; (8007084 ) 8006dee: fba2 1203 umull r1, r2, r2, r3 8006df2: 0b52 lsrs r2, r2, #13 8006df4: f242 7110 movw r1, #10000 ; 0x2710 8006df8: fb01 f202 mul.w r2, r1, r2 8006dfc: 1a9a subs r2, r3, r2 8006dfe: 4ba2 ldr r3, [pc, #648] ; (8007088 ) 8006e00: fba3 1302 umull r1, r3, r3, r2 8006e04: 099b lsrs r3, r3, #6 8006e06: f44f 717a mov.w r1, #1000 ; 0x3e8 8006e0a: fb01 f303 mul.w r3, r1, r3 8006e0e: 1ad3 subs r3, r2, r3 8006e10: 4a9e ldr r2, [pc, #632] ; (800708c ) 8006e12: fba2 1203 umull r1, r2, r2, r3 8006e16: 0952 lsrs r2, r2, #5 8006e18: 2164 movs r1, #100 ; 0x64 8006e1a: fb01 f202 mul.w r2, r1, r2 8006e1e: 1a9a subs r2, r3, r2 8006e20: 4b9b ldr r3, [pc, #620] ; (8007090 ) 8006e22: fba3 1302 umull r1, r3, r3, r2 8006e26: 08d9 lsrs r1, r3, #3 8006e28: 460b mov r3, r1 8006e2a: 009b lsls r3, r3, #2 8006e2c: 440b add r3, r1 8006e2e: 005b lsls r3, r3, #1 8006e30: 1ad1 subs r1, r2, r3 8006e32: b2cb uxtb r3, r1 8006e34: f887 3313 strb.w r3, [r7, #787] ; 0x313 p8 = str2; 8006e38: f107 03e0 add.w r3, r7, #224 ; 0xe0 8006e3c: f8c7 3340 str.w r3, [r7, #832] ; 0x340 if(pardata.amplif[Ch2].SENS < 10.0f) { 8006e40: 4b8c ldr r3, [pc, #560] ; (8007074 ) 8006e42: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006e46: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8006e4a: eef4 7ac7 vcmpe.f32 s15, s14 8006e4e: eef1 fa10 vmrs APSR_nzcv, fpscr 8006e52: d50b bpl.n 8006e6c p8 = FloatToASCII(pardata.amplif[Ch2].SENS, -4); 8006e54: 4b87 ldr r3, [pc, #540] ; (8007074 ) 8006e56: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006e5a: f06f 0003 mvn.w r0, #3 8006e5e: eeb0 0a67 vmov.f32 s0, s15 8006e62: f008 fb1d bl 800f4a0 8006e66: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8006e6a: e055 b.n 8006f18 } else if(pardata.amplif[Ch2].SENS < 100.0f) { 8006e6c: 4b81 ldr r3, [pc, #516] ; (8007074 ) 8006e6e: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006e72: ed9f 7a88 vldr s14, [pc, #544] ; 8007094 8006e76: eef4 7ac7 vcmpe.f32 s15, s14 8006e7a: eef1 fa10 vmrs APSR_nzcv, fpscr 8006e7e: d50b bpl.n 8006e98 p8 = FloatToASCII(pardata.amplif[Ch2].SENS, -3); 8006e80: 4b7c ldr r3, [pc, #496] ; (8007074 ) 8006e82: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006e86: f06f 0002 mvn.w r0, #2 8006e8a: eeb0 0a67 vmov.f32 s0, s15 8006e8e: f008 fb07 bl 800f4a0 8006e92: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8006e96: e03f b.n 8006f18 } else if(pardata.amplif[Ch2].SENS < 1000.0f) { 8006e98: 4b76 ldr r3, [pc, #472] ; (8007074 ) 8006e9a: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006e9e: ed9f 7a7e vldr s14, [pc, #504] ; 8007098 8006ea2: eef4 7ac7 vcmpe.f32 s15, s14 8006ea6: eef1 fa10 vmrs APSR_nzcv, fpscr 8006eaa: d50b bpl.n 8006ec4 p8 = FloatToASCII(pardata.amplif[Ch2].SENS, -2); 8006eac: 4b71 ldr r3, [pc, #452] ; (8007074 ) 8006eae: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006eb2: f06f 0001 mvn.w r0, #1 8006eb6: eeb0 0a67 vmov.f32 s0, s15 8006eba: f008 faf1 bl 800f4a0 8006ebe: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8006ec2: e029 b.n 8006f18 } else if(pardata.amplif[Ch2].SENS < 10000.0f) { 8006ec4: 4b6b ldr r3, [pc, #428] ; (8007074 ) 8006ec6: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006eca: ed9f 7a74 vldr s14, [pc, #464] ; 800709c 8006ece: eef4 7ac7 vcmpe.f32 s15, s14 8006ed2: eef1 fa10 vmrs APSR_nzcv, fpscr 8006ed6: d50b bpl.n 8006ef0 p8 = FloatToASCII(pardata.amplif[Ch2].SENS, -1); 8006ed8: 4b66 ldr r3, [pc, #408] ; (8007074 ) 8006eda: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006ede: f04f 30ff mov.w r0, #4294967295 8006ee2: eeb0 0a67 vmov.f32 s0, s15 8006ee6: f008 fadb bl 800f4a0 8006eea: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8006eee: e013 b.n 8006f18 } else if(pardata.amplif[Ch2].SENS < 100000.0f) { 8006ef0: 4b60 ldr r3, [pc, #384] ; (8007074 ) 8006ef2: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006ef6: ed9f 7a60 vldr s14, [pc, #384] ; 8007078 8006efa: eef4 7ac7 vcmpe.f32 s15, s14 8006efe: eef1 fa10 vmrs APSR_nzcv, fpscr 8006f02: d509 bpl.n 8006f18 p8 = FloatToASCII(pardata.amplif[Ch2].SENS, 0); 8006f04: 4b5b ldr r3, [pc, #364] ; (8007074 ) 8006f06: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006f0a: 2000 movs r0, #0 8006f0c: eeb0 0a67 vmov.f32 s0, s15 8006f10: f008 fac6 bl 800f4a0 8006f14: f8c7 0340 str.w r0, [r7, #832] ; 0x340 } strcpy((void *) str2, (void *) p8); 8006f18: f107 03e0 add.w r3, r7, #224 ; 0xe0 8006f1c: f8d7 1340 ldr.w r1, [r7, #832] ; 0x340 8006f20: 4618 mov r0, r3 8006f22: f00f fae2 bl 80164ea ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// if(pardata.amplif[Ch3].SENS <= 0.0f) { 8006f26: 4b53 ldr r3, [pc, #332] ; (8007074 ) 8006f28: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8006f2c: eef5 7ac0 vcmpe.f32 s15, #0.0 8006f30: eef1 fa10 vmrs APSR_nzcv, fpscr 8006f34: d807 bhi.n 8006f46 pardata.amplif[Ch3].SENS = 1.0f; 8006f36: 4b4f ldr r3, [pc, #316] ; (8007074 ) 8006f38: f04f 527e mov.w r2, #1065353216 ; 0x3f800000 8006f3c: 659a str r2, [r3, #88] ; 0x58 s = 10000; 8006f3e: f242 7310 movw r3, #10000 ; 0x2710 8006f42: f8c7 3344 str.w r3, [r7, #836] ; 0x344 } if(pardata.amplif[Ch3].SENS < 10.0f) { 8006f46: 4b4b ldr r3, [pc, #300] ; (8007074 ) 8006f48: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8006f4c: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8006f50: eef4 7ac7 vcmpe.f32 s15, s14 8006f54: eef1 fa10 vmrs APSR_nzcv, fpscr 8006f58: d514 bpl.n 8006f84 s = (uint32_t) ((pardata.amplif[Ch3].SENS * 10000.0f) + 0.5f); 8006f5a: 4b46 ldr r3, [pc, #280] ; (8007074 ) 8006f5c: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8006f60: ed9f 7a4e vldr s14, [pc, #312] ; 800709c 8006f64: ee67 7a87 vmul.f32 s15, s15, s14 8006f68: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006f6c: ee77 7a87 vadd.f32 s15, s15, s14 8006f70: eefc 7ae7 vcvt.u32.f32 s15, s15 8006f74: ee17 3a90 vmov r3, s15 8006f78: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt3 = 4; 8006f7c: 2304 movs r3, #4 8006f7e: f887 3308 strb.w r3, [r7, #776] ; 0x308 8006f82: e0a0 b.n 80070c6 } else if(pardata.amplif[Ch3].SENS < 100.0f) { 8006f84: 4b3b ldr r3, [pc, #236] ; (8007074 ) 8006f86: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8006f8a: ed9f 7a42 vldr s14, [pc, #264] ; 8007094 8006f8e: eef4 7ac7 vcmpe.f32 s15, s14 8006f92: eef1 fa10 vmrs APSR_nzcv, fpscr 8006f96: d514 bpl.n 8006fc2 s = (uint32_t) ((pardata.amplif[Ch3].SENS * 1000.0f) + 0.5f); 8006f98: 4b36 ldr r3, [pc, #216] ; (8007074 ) 8006f9a: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8006f9e: ed9f 7a3e vldr s14, [pc, #248] ; 8007098 8006fa2: ee67 7a87 vmul.f32 s15, s15, s14 8006fa6: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006faa: ee77 7a87 vadd.f32 s15, s15, s14 8006fae: eefc 7ae7 vcvt.u32.f32 s15, s15 8006fb2: ee17 3a90 vmov r3, s15 8006fb6: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt3 = 3; 8006fba: 2303 movs r3, #3 8006fbc: f887 3308 strb.w r3, [r7, #776] ; 0x308 8006fc0: e081 b.n 80070c6 } else if(pardata.amplif[Ch3].SENS < 1000.0f) { 8006fc2: 4b2c ldr r3, [pc, #176] ; (8007074 ) 8006fc4: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8006fc8: ed9f 7a33 vldr s14, [pc, #204] ; 8007098 8006fcc: eef4 7ac7 vcmpe.f32 s15, s14 8006fd0: eef1 fa10 vmrs APSR_nzcv, fpscr 8006fd4: d514 bpl.n 8007000 s = (uint32_t) ((pardata.amplif[Ch3].SENS * 100.0f) + 0.5f); 8006fd6: 4b27 ldr r3, [pc, #156] ; (8007074 ) 8006fd8: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8006fdc: ed9f 7a2d vldr s14, [pc, #180] ; 8007094 8006fe0: ee67 7a87 vmul.f32 s15, s15, s14 8006fe4: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006fe8: ee77 7a87 vadd.f32 s15, s15, s14 8006fec: eefc 7ae7 vcvt.u32.f32 s15, s15 8006ff0: ee17 3a90 vmov r3, s15 8006ff4: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt3 = 2; 8006ff8: 2302 movs r3, #2 8006ffa: f887 3308 strb.w r3, [r7, #776] ; 0x308 8006ffe: e062 b.n 80070c6 } else if(pardata.amplif[Ch3].SENS < 10000.0f) { 8007000: 4b1c ldr r3, [pc, #112] ; (8007074 ) 8007002: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8007006: ed9f 7a25 vldr s14, [pc, #148] ; 800709c 800700a: eef4 7ac7 vcmpe.f32 s15, s14 800700e: eef1 fa10 vmrs APSR_nzcv, fpscr 8007012: d514 bpl.n 800703e s = (uint32_t) ((pardata.amplif[Ch3].SENS * 10.0f) + 0.5f); 8007014: 4b17 ldr r3, [pc, #92] ; (8007074 ) 8007016: edd3 7a16 vldr s15, [r3, #88] ; 0x58 800701a: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 800701e: ee67 7a87 vmul.f32 s15, s15, s14 8007022: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8007026: ee77 7a87 vadd.f32 s15, s15, s14 800702a: eefc 7ae7 vcvt.u32.f32 s15, s15 800702e: ee17 3a90 vmov r3, s15 8007032: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt3 = 1; 8007036: 2301 movs r3, #1 8007038: f887 3308 strb.w r3, [r7, #776] ; 0x308 800703c: e043 b.n 80070c6 } else if(pardata.amplif[Ch3].SENS < 100000.0f) { 800703e: 4b0d ldr r3, [pc, #52] ; (8007074 ) 8007040: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8007044: ed9f 7a0c vldr s14, [pc, #48] ; 8007078 8007048: eef4 7ac7 vcmpe.f32 s15, s14 800704c: eef1 fa10 vmrs APSR_nzcv, fpscr 8007050: d526 bpl.n 80070a0 s = (uint32_t) ((pardata.amplif[Ch3].SENS) + 0.5f); 8007052: 4b08 ldr r3, [pc, #32] ; (8007074 ) 8007054: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8007058: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 800705c: ee77 7a87 vadd.f32 s15, s15, s14 8007060: eefc 7ae7 vcvt.u32.f32 s15, s15 8007064: ee17 3a90 vmov r3, s15 8007068: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt3 = 0; 800706c: 2300 movs r3, #0 800706e: f887 3308 strb.w r3, [r7, #776] ; 0x308 8007072: e028 b.n 80070c6 8007074: 2006bca8 .word 0x2006bca8 8007078: 47c35000 .word 0x47c35000 800707c: 47c34f80 .word 0x47c34f80 8007080: 0001869f .word 0x0001869f 8007084: d1b71759 .word 0xd1b71759 8007088: 10624dd3 .word 0x10624dd3 800708c: 51eb851f .word 0x51eb851f 8007090: cccccccd .word 0xcccccccd 8007094: 42c80000 .word 0x42c80000 8007098: 447a0000 .word 0x447a0000 800709c: 461c4000 .word 0x461c4000 } else if(pardata.amplif[Ch3].SENS >= 100000.0f) { 80070a0: 4bd8 ldr r3, [pc, #864] ; (8007404 ) 80070a2: edd3 7a16 vldr s15, [r3, #88] ; 0x58 80070a6: ed9f 7ad8 vldr s14, [pc, #864] ; 8007408 80070aa: eef4 7ac7 vcmpe.f32 s15, s14 80070ae: eef1 fa10 vmrs APSR_nzcv, fpscr 80070b2: db08 blt.n 80070c6 pardata.amplif[Ch3].SENS = 99999.0f; 80070b4: 4bd3 ldr r3, [pc, #844] ; (8007404 ) 80070b6: 4ad5 ldr r2, [pc, #852] ; (800740c ) 80070b8: 659a str r2, [r3, #88] ; 0x58 s = 99999; 80070ba: 4bd5 ldr r3, [pc, #852] ; (8007410 ) 80070bc: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt3 = 0; 80070c0: 2300 movs r3, #0 80070c2: f887 3308 strb.w r3, [r7, #776] ; 0x308 } idt3 = (s / 10000); 80070c6: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 80070ca: 4ad2 ldr r2, [pc, #840] ; (8007414 ) 80070cc: fba2 2303 umull r2, r3, r2, r3 80070d0: 0b5b lsrs r3, r3, #13 80070d2: b2db uxtb r3, r3 80070d4: f887 330f strb.w r3, [r7, #783] ; 0x30f iet3 = (s % 10000 / 1000); 80070d8: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344 80070dc: 4bcd ldr r3, [pc, #820] ; (8007414 ) 80070de: fba3 1302 umull r1, r3, r3, r2 80070e2: 0b5b lsrs r3, r3, #13 80070e4: f242 7110 movw r1, #10000 ; 0x2710 80070e8: fb01 f303 mul.w r3, r1, r3 80070ec: 1ad3 subs r3, r2, r3 80070ee: 4aca ldr r2, [pc, #808] ; (8007418 ) 80070f0: fba2 2303 umull r2, r3, r2, r3 80070f4: 099b lsrs r3, r3, #6 80070f6: b2db uxtb r3, r3 80070f8: f887 330e strb.w r3, [r7, #782] ; 0x30e ies3 = (s % 10000 % 1000 / 100); 80070fc: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344 8007100: 4bc4 ldr r3, [pc, #784] ; (8007414 ) 8007102: fba3 1302 umull r1, r3, r3, r2 8007106: 0b5b lsrs r3, r3, #13 8007108: f242 7110 movw r1, #10000 ; 0x2710 800710c: fb01 f303 mul.w r3, r1, r3 8007110: 1ad3 subs r3, r2, r3 8007112: 4ac1 ldr r2, [pc, #772] ; (8007418 ) 8007114: fba2 1203 umull r1, r2, r2, r3 8007118: 0992 lsrs r2, r2, #6 800711a: f44f 717a mov.w r1, #1000 ; 0x3e8 800711e: fb01 f202 mul.w r2, r1, r2 8007122: 1a9a subs r2, r3, r2 8007124: 4bbd ldr r3, [pc, #756] ; (800741c ) 8007126: fba3 2302 umull r2, r3, r3, r2 800712a: 095b lsrs r3, r3, #5 800712c: b2db uxtb r3, r3 800712e: f887 330d strb.w r3, [r7, #781] ; 0x30d ied3 = (s % 10000 % 1000 % 100 / 10); 8007132: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 8007136: 4ab7 ldr r2, [pc, #732] ; (8007414 ) 8007138: fba2 1203 umull r1, r2, r2, r3 800713c: 0b52 lsrs r2, r2, #13 800713e: f242 7110 movw r1, #10000 ; 0x2710 8007142: fb01 f202 mul.w r2, r1, r2 8007146: 1a9a subs r2, r3, r2 8007148: 4bb3 ldr r3, [pc, #716] ; (8007418 ) 800714a: fba3 1302 umull r1, r3, r3, r2 800714e: 099b lsrs r3, r3, #6 8007150: f44f 717a mov.w r1, #1000 ; 0x3e8 8007154: fb01 f303 mul.w r3, r1, r3 8007158: 1ad3 subs r3, r2, r3 800715a: 4ab0 ldr r2, [pc, #704] ; (800741c ) 800715c: fba2 1203 umull r1, r2, r2, r3 8007160: 0952 lsrs r2, r2, #5 8007162: 2164 movs r1, #100 ; 0x64 8007164: fb01 f202 mul.w r2, r1, r2 8007168: 1a9a subs r2, r3, r2 800716a: 4bad ldr r3, [pc, #692] ; (8007420 ) 800716c: fba3 2302 umull r2, r3, r3, r2 8007170: 08db lsrs r3, r3, #3 8007172: b2db uxtb r3, r3 8007174: f887 330c strb.w r3, [r7, #780] ; 0x30c iee3 = (s % 10000 % 1000 % 100 % 10); 8007178: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 800717c: 4aa5 ldr r2, [pc, #660] ; (8007414 ) 800717e: fba2 1203 umull r1, r2, r2, r3 8007182: 0b52 lsrs r2, r2, #13 8007184: f242 7110 movw r1, #10000 ; 0x2710 8007188: fb01 f202 mul.w r2, r1, r2 800718c: 1a9a subs r2, r3, r2 800718e: 4ba2 ldr r3, [pc, #648] ; (8007418 ) 8007190: fba3 1302 umull r1, r3, r3, r2 8007194: 099b lsrs r3, r3, #6 8007196: f44f 717a mov.w r1, #1000 ; 0x3e8 800719a: fb01 f303 mul.w r3, r1, r3 800719e: 1ad3 subs r3, r2, r3 80071a0: 4a9e ldr r2, [pc, #632] ; (800741c ) 80071a2: fba2 1203 umull r1, r2, r2, r3 80071a6: 0952 lsrs r2, r2, #5 80071a8: 2164 movs r1, #100 ; 0x64 80071aa: fb01 f202 mul.w r2, r1, r2 80071ae: 1a9a subs r2, r3, r2 80071b0: 4b9b ldr r3, [pc, #620] ; (8007420 ) 80071b2: fba3 1302 umull r1, r3, r3, r2 80071b6: 08d9 lsrs r1, r3, #3 80071b8: 460b mov r3, r1 80071ba: 009b lsls r3, r3, #2 80071bc: 440b add r3, r1 80071be: 005b lsls r3, r3, #1 80071c0: 1ad1 subs r1, r2, r3 80071c2: b2cb uxtb r3, r1 80071c4: f887 330b strb.w r3, [r7, #779] ; 0x30b p8 = str3; 80071c8: f107 03a4 add.w r3, r7, #164 ; 0xa4 80071cc: f8c7 3340 str.w r3, [r7, #832] ; 0x340 if(pardata.amplif[Ch3].SENS < 10.0f) { 80071d0: 4b8c ldr r3, [pc, #560] ; (8007404 ) 80071d2: edd3 7a16 vldr s15, [r3, #88] ; 0x58 80071d6: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 80071da: eef4 7ac7 vcmpe.f32 s15, s14 80071de: eef1 fa10 vmrs APSR_nzcv, fpscr 80071e2: d50b bpl.n 80071fc p8 = FloatToASCII(pardata.amplif[Ch3].SENS, -4); 80071e4: 4b87 ldr r3, [pc, #540] ; (8007404 ) 80071e6: edd3 7a16 vldr s15, [r3, #88] ; 0x58 80071ea: f06f 0003 mvn.w r0, #3 80071ee: eeb0 0a67 vmov.f32 s0, s15 80071f2: f008 f955 bl 800f4a0 80071f6: f8c7 0340 str.w r0, [r7, #832] ; 0x340 80071fa: e055 b.n 80072a8 } else if(pardata.amplif[Ch3].SENS < 100.0f) { 80071fc: 4b81 ldr r3, [pc, #516] ; (8007404 ) 80071fe: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8007202: ed9f 7a88 vldr s14, [pc, #544] ; 8007424 8007206: eef4 7ac7 vcmpe.f32 s15, s14 800720a: eef1 fa10 vmrs APSR_nzcv, fpscr 800720e: d50b bpl.n 8007228 p8 = FloatToASCII(pardata.amplif[Ch3].SENS, -3); 8007210: 4b7c ldr r3, [pc, #496] ; (8007404 ) 8007212: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8007216: f06f 0002 mvn.w r0, #2 800721a: eeb0 0a67 vmov.f32 s0, s15 800721e: f008 f93f bl 800f4a0 8007222: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8007226: e03f b.n 80072a8 } else if(pardata.amplif[Ch3].SENS < 1000.0f) { 8007228: 4b76 ldr r3, [pc, #472] ; (8007404 ) 800722a: edd3 7a16 vldr s15, [r3, #88] ; 0x58 800722e: ed9f 7a7e vldr s14, [pc, #504] ; 8007428 8007232: eef4 7ac7 vcmpe.f32 s15, s14 8007236: eef1 fa10 vmrs APSR_nzcv, fpscr 800723a: d50b bpl.n 8007254 p8 = FloatToASCII(pardata.amplif[Ch3].SENS, -2); 800723c: 4b71 ldr r3, [pc, #452] ; (8007404 ) 800723e: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8007242: f06f 0001 mvn.w r0, #1 8007246: eeb0 0a67 vmov.f32 s0, s15 800724a: f008 f929 bl 800f4a0 800724e: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8007252: e029 b.n 80072a8 } else if(pardata.amplif[Ch3].SENS < 10000.0f) { 8007254: 4b6b ldr r3, [pc, #428] ; (8007404 ) 8007256: edd3 7a16 vldr s15, [r3, #88] ; 0x58 800725a: ed9f 7a74 vldr s14, [pc, #464] ; 800742c 800725e: eef4 7ac7 vcmpe.f32 s15, s14 8007262: eef1 fa10 vmrs APSR_nzcv, fpscr 8007266: d50b bpl.n 8007280 p8 = FloatToASCII(pardata.amplif[Ch3].SENS, -1); 8007268: 4b66 ldr r3, [pc, #408] ; (8007404 ) 800726a: edd3 7a16 vldr s15, [r3, #88] ; 0x58 800726e: f04f 30ff mov.w r0, #4294967295 8007272: eeb0 0a67 vmov.f32 s0, s15 8007276: f008 f913 bl 800f4a0 800727a: f8c7 0340 str.w r0, [r7, #832] ; 0x340 800727e: e013 b.n 80072a8 } else if(pardata.amplif[Ch3].SENS < 100000.0f) { 8007280: 4b60 ldr r3, [pc, #384] ; (8007404 ) 8007282: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8007286: ed9f 7a60 vldr s14, [pc, #384] ; 8007408 800728a: eef4 7ac7 vcmpe.f32 s15, s14 800728e: eef1 fa10 vmrs APSR_nzcv, fpscr 8007292: d509 bpl.n 80072a8 p8 = FloatToASCII(pardata.amplif[Ch3].SENS, 0); 8007294: 4b5b ldr r3, [pc, #364] ; (8007404 ) 8007296: edd3 7a16 vldr s15, [r3, #88] ; 0x58 800729a: 2000 movs r0, #0 800729c: eeb0 0a67 vmov.f32 s0, s15 80072a0: f008 f8fe bl 800f4a0 80072a4: f8c7 0340 str.w r0, [r7, #832] ; 0x340 } strcpy((void *) str3, (void *) p8); 80072a8: f107 03a4 add.w r3, r7, #164 ; 0xa4 80072ac: f8d7 1340 ldr.w r1, [r7, #832] ; 0x340 80072b0: 4618 mov r0, r3 80072b2: f00f f91a bl 80164ea ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// if(pardata.amplif[Ch4].SENS <= 0.0f) { 80072b6: 4b53 ldr r3, [pc, #332] ; (8007404 ) 80072b8: edd3 7a1e vldr s15, [r3, #120] ; 0x78 80072bc: eef5 7ac0 vcmpe.f32 s15, #0.0 80072c0: eef1 fa10 vmrs APSR_nzcv, fpscr 80072c4: d807 bhi.n 80072d6 pardata.amplif[Ch4].SENS = 1.0f; 80072c6: 4b4f ldr r3, [pc, #316] ; (8007404 ) 80072c8: f04f 527e mov.w r2, #1065353216 ; 0x3f800000 80072cc: 679a str r2, [r3, #120] ; 0x78 s = 10000; 80072ce: f242 7310 movw r3, #10000 ; 0x2710 80072d2: f8c7 3344 str.w r3, [r7, #836] ; 0x344 } if(pardata.amplif[Ch4].SENS < 10.0f) { 80072d6: 4b4b ldr r3, [pc, #300] ; (8007404 ) 80072d8: edd3 7a1e vldr s15, [r3, #120] ; 0x78 80072dc: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 80072e0: eef4 7ac7 vcmpe.f32 s15, s14 80072e4: eef1 fa10 vmrs APSR_nzcv, fpscr 80072e8: d514 bpl.n 8007314 s = (uint32_t) ((pardata.amplif[Ch4].SENS * 10000.0f) + 0.5f); 80072ea: 4b46 ldr r3, [pc, #280] ; (8007404 ) 80072ec: edd3 7a1e vldr s15, [r3, #120] ; 0x78 80072f0: ed9f 7a4e vldr s14, [pc, #312] ; 800742c 80072f4: ee67 7a87 vmul.f32 s15, s15, s14 80072f8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 80072fc: ee77 7a87 vadd.f32 s15, s15, s14 8007300: eefc 7ae7 vcvt.u32.f32 s15, s15 8007304: ee17 3a90 vmov r3, s15 8007308: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt4 = 4; 800730c: 2304 movs r3, #4 800730e: f887 3300 strb.w r3, [r7, #768] ; 0x300 8007312: e0a0 b.n 8007456 } else if(pardata.amplif[Ch4].SENS < 100.0f) { 8007314: 4b3b ldr r3, [pc, #236] ; (8007404 ) 8007316: edd3 7a1e vldr s15, [r3, #120] ; 0x78 800731a: ed9f 7a42 vldr s14, [pc, #264] ; 8007424 800731e: eef4 7ac7 vcmpe.f32 s15, s14 8007322: eef1 fa10 vmrs APSR_nzcv, fpscr 8007326: d514 bpl.n 8007352 s = (uint32_t) ((pardata.amplif[Ch4].SENS * 1000.0f) + 0.5f); 8007328: 4b36 ldr r3, [pc, #216] ; (8007404 ) 800732a: edd3 7a1e vldr s15, [r3, #120] ; 0x78 800732e: ed9f 7a3e vldr s14, [pc, #248] ; 8007428 8007332: ee67 7a87 vmul.f32 s15, s15, s14 8007336: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 800733a: ee77 7a87 vadd.f32 s15, s15, s14 800733e: eefc 7ae7 vcvt.u32.f32 s15, s15 8007342: ee17 3a90 vmov r3, s15 8007346: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt4 = 3; 800734a: 2303 movs r3, #3 800734c: f887 3300 strb.w r3, [r7, #768] ; 0x300 8007350: e081 b.n 8007456 } else if(pardata.amplif[Ch4].SENS < 1000.0f) { 8007352: 4b2c ldr r3, [pc, #176] ; (8007404 ) 8007354: edd3 7a1e vldr s15, [r3, #120] ; 0x78 8007358: ed9f 7a33 vldr s14, [pc, #204] ; 8007428 800735c: eef4 7ac7 vcmpe.f32 s15, s14 8007360: eef1 fa10 vmrs APSR_nzcv, fpscr 8007364: d514 bpl.n 8007390 s = (uint32_t) ((pardata.amplif[Ch4].SENS * 100.0f) + 0.5f); 8007366: 4b27 ldr r3, [pc, #156] ; (8007404 ) 8007368: edd3 7a1e vldr s15, [r3, #120] ; 0x78 800736c: ed9f 7a2d vldr s14, [pc, #180] ; 8007424 8007370: ee67 7a87 vmul.f32 s15, s15, s14 8007374: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8007378: ee77 7a87 vadd.f32 s15, s15, s14 800737c: eefc 7ae7 vcvt.u32.f32 s15, s15 8007380: ee17 3a90 vmov r3, s15 8007384: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt4 = 2; 8007388: 2302 movs r3, #2 800738a: f887 3300 strb.w r3, [r7, #768] ; 0x300 800738e: e062 b.n 8007456 } else if(pardata.amplif[Ch4].SENS < 10000.0f) { 8007390: 4b1c ldr r3, [pc, #112] ; (8007404 ) 8007392: edd3 7a1e vldr s15, [r3, #120] ; 0x78 8007396: ed9f 7a25 vldr s14, [pc, #148] ; 800742c 800739a: eef4 7ac7 vcmpe.f32 s15, s14 800739e: eef1 fa10 vmrs APSR_nzcv, fpscr 80073a2: d514 bpl.n 80073ce s = (uint32_t) ((pardata.amplif[Ch4].SENS * 10.0f) + 0.5f); 80073a4: 4b17 ldr r3, [pc, #92] ; (8007404 ) 80073a6: edd3 7a1e vldr s15, [r3, #120] ; 0x78 80073aa: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 80073ae: ee67 7a87 vmul.f32 s15, s15, s14 80073b2: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 80073b6: ee77 7a87 vadd.f32 s15, s15, s14 80073ba: eefc 7ae7 vcvt.u32.f32 s15, s15 80073be: ee17 3a90 vmov r3, s15 80073c2: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt4 = 1; 80073c6: 2301 movs r3, #1 80073c8: f887 3300 strb.w r3, [r7, #768] ; 0x300 80073cc: e043 b.n 8007456 } else if(pardata.amplif[Ch4].SENS < 100000.0f) { 80073ce: 4b0d ldr r3, [pc, #52] ; (8007404 ) 80073d0: edd3 7a1e vldr s15, [r3, #120] ; 0x78 80073d4: ed9f 7a0c vldr s14, [pc, #48] ; 8007408 80073d8: eef4 7ac7 vcmpe.f32 s15, s14 80073dc: eef1 fa10 vmrs APSR_nzcv, fpscr 80073e0: d526 bpl.n 8007430 s = (uint32_t) ((pardata.amplif[Ch4].SENS) + 0.5f); 80073e2: 4b08 ldr r3, [pc, #32] ; (8007404 ) 80073e4: edd3 7a1e vldr s15, [r3, #120] ; 0x78 80073e8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 80073ec: ee77 7a87 vadd.f32 s15, s15, s14 80073f0: eefc 7ae7 vcvt.u32.f32 s15, s15 80073f4: ee17 3a90 vmov r3, s15 80073f8: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt4 = 0; 80073fc: 2300 movs r3, #0 80073fe: f887 3300 strb.w r3, [r7, #768] ; 0x300 8007402: e028 b.n 8007456 8007404: 2006bca8 .word 0x2006bca8 8007408: 47c35000 .word 0x47c35000 800740c: 47c34f80 .word 0x47c34f80 8007410: 0001869f .word 0x0001869f 8007414: d1b71759 .word 0xd1b71759 8007418: 10624dd3 .word 0x10624dd3 800741c: 51eb851f .word 0x51eb851f 8007420: cccccccd .word 0xcccccccd 8007424: 42c80000 .word 0x42c80000 8007428: 447a0000 .word 0x447a0000 800742c: 461c4000 .word 0x461c4000 } else if(pardata.amplif[Ch4].SENS >= 100000.0f) { 8007430: 4bc9 ldr r3, [pc, #804] ; (8007758 ) 8007432: edd3 7a1e vldr s15, [r3, #120] ; 0x78 8007436: ed9f 7ac9 vldr s14, [pc, #804] ; 800775c 800743a: eef4 7ac7 vcmpe.f32 s15, s14 800743e: eef1 fa10 vmrs APSR_nzcv, fpscr 8007442: db08 blt.n 8007456 pardata.amplif[Ch4].SENS = 99999.0f; 8007444: 4bc4 ldr r3, [pc, #784] ; (8007758 ) 8007446: 4ac6 ldr r2, [pc, #792] ; (8007760 ) 8007448: 679a str r2, [r3, #120] ; 0x78 s = 99999; 800744a: 4bc6 ldr r3, [pc, #792] ; (8007764 ) 800744c: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt4 = 0; 8007450: 2300 movs r3, #0 8007452: f887 3300 strb.w r3, [r7, #768] ; 0x300 } idt4 = (s / 10000); 8007456: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 800745a: 4ac3 ldr r2, [pc, #780] ; (8007768 ) 800745c: fba2 2303 umull r2, r3, r2, r3 8007460: 0b5b lsrs r3, r3, #13 8007462: b2db uxtb r3, r3 8007464: f887 3307 strb.w r3, [r7, #775] ; 0x307 iet4 = (s % 10000 / 1000); 8007468: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344 800746c: 4bbe ldr r3, [pc, #760] ; (8007768 ) 800746e: fba3 1302 umull r1, r3, r3, r2 8007472: 0b5b lsrs r3, r3, #13 8007474: f242 7110 movw r1, #10000 ; 0x2710 8007478: fb01 f303 mul.w r3, r1, r3 800747c: 1ad3 subs r3, r2, r3 800747e: 4abb ldr r2, [pc, #748] ; (800776c ) 8007480: fba2 2303 umull r2, r3, r2, r3 8007484: 099b lsrs r3, r3, #6 8007486: b2db uxtb r3, r3 8007488: f887 3306 strb.w r3, [r7, #774] ; 0x306 ies4 = (s % 10000 % 1000 / 100); 800748c: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344 8007490: 4bb5 ldr r3, [pc, #724] ; (8007768 ) 8007492: fba3 1302 umull r1, r3, r3, r2 8007496: 0b5b lsrs r3, r3, #13 8007498: f242 7110 movw r1, #10000 ; 0x2710 800749c: fb01 f303 mul.w r3, r1, r3 80074a0: 1ad3 subs r3, r2, r3 80074a2: 4ab2 ldr r2, [pc, #712] ; (800776c ) 80074a4: fba2 1203 umull r1, r2, r2, r3 80074a8: 0992 lsrs r2, r2, #6 80074aa: f44f 717a mov.w r1, #1000 ; 0x3e8 80074ae: fb01 f202 mul.w r2, r1, r2 80074b2: 1a9a subs r2, r3, r2 80074b4: 4bae ldr r3, [pc, #696] ; (8007770 ) 80074b6: fba3 2302 umull r2, r3, r3, r2 80074ba: 095b lsrs r3, r3, #5 80074bc: b2db uxtb r3, r3 80074be: f887 3305 strb.w r3, [r7, #773] ; 0x305 ied4 = (s % 10000 % 1000 % 100 / 10); 80074c2: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 80074c6: 4aa8 ldr r2, [pc, #672] ; (8007768 ) 80074c8: fba2 1203 umull r1, r2, r2, r3 80074cc: 0b52 lsrs r2, r2, #13 80074ce: f242 7110 movw r1, #10000 ; 0x2710 80074d2: fb01 f202 mul.w r2, r1, r2 80074d6: 1a9a subs r2, r3, r2 80074d8: 4ba4 ldr r3, [pc, #656] ; (800776c ) 80074da: fba3 1302 umull r1, r3, r3, r2 80074de: 099b lsrs r3, r3, #6 80074e0: f44f 717a mov.w r1, #1000 ; 0x3e8 80074e4: fb01 f303 mul.w r3, r1, r3 80074e8: 1ad3 subs r3, r2, r3 80074ea: 4aa1 ldr r2, [pc, #644] ; (8007770 ) 80074ec: fba2 1203 umull r1, r2, r2, r3 80074f0: 0952 lsrs r2, r2, #5 80074f2: 2164 movs r1, #100 ; 0x64 80074f4: fb01 f202 mul.w r2, r1, r2 80074f8: 1a9a subs r2, r3, r2 80074fa: 4b9e ldr r3, [pc, #632] ; (8007774 ) 80074fc: fba3 2302 umull r2, r3, r3, r2 8007500: 08db lsrs r3, r3, #3 8007502: b2db uxtb r3, r3 8007504: f887 3304 strb.w r3, [r7, #772] ; 0x304 iee4 = (s % 10000 % 1000 % 100 % 10); 8007508: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 800750c: 4a96 ldr r2, [pc, #600] ; (8007768 ) 800750e: fba2 1203 umull r1, r2, r2, r3 8007512: 0b52 lsrs r2, r2, #13 8007514: f242 7110 movw r1, #10000 ; 0x2710 8007518: fb01 f202 mul.w r2, r1, r2 800751c: 1a9a subs r2, r3, r2 800751e: 4b93 ldr r3, [pc, #588] ; (800776c ) 8007520: fba3 1302 umull r1, r3, r3, r2 8007524: 099b lsrs r3, r3, #6 8007526: f44f 717a mov.w r1, #1000 ; 0x3e8 800752a: fb01 f303 mul.w r3, r1, r3 800752e: 1ad3 subs r3, r2, r3 8007530: 4a8f ldr r2, [pc, #572] ; (8007770 ) 8007532: fba2 1203 umull r1, r2, r2, r3 8007536: 0952 lsrs r2, r2, #5 8007538: 2164 movs r1, #100 ; 0x64 800753a: fb01 f202 mul.w r2, r1, r2 800753e: 1a9a subs r2, r3, r2 8007540: 4b8c ldr r3, [pc, #560] ; (8007774 ) 8007542: fba3 1302 umull r1, r3, r3, r2 8007546: 08d9 lsrs r1, r3, #3 8007548: 460b mov r3, r1 800754a: 009b lsls r3, r3, #2 800754c: 440b add r3, r1 800754e: 005b lsls r3, r3, #1 8007550: 1ad1 subs r1, r2, r3 8007552: b2cb uxtb r3, r1 8007554: f887 3303 strb.w r3, [r7, #771] ; 0x303 p8 = str4; 8007558: f107 0368 add.w r3, r7, #104 ; 0x68 800755c: f8c7 3340 str.w r3, [r7, #832] ; 0x340 if(pardata.amplif[Ch4].SENS < 10.0f) { 8007560: 4b7d ldr r3, [pc, #500] ; (8007758 ) 8007562: edd3 7a1e vldr s15, [r3, #120] ; 0x78 8007566: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 800756a: eef4 7ac7 vcmpe.f32 s15, s14 800756e: eef1 fa10 vmrs APSR_nzcv, fpscr 8007572: d50b bpl.n 800758c p8 = FloatToASCII(pardata.amplif[Ch4].SENS, -4); 8007574: 4b78 ldr r3, [pc, #480] ; (8007758 ) 8007576: edd3 7a1e vldr s15, [r3, #120] ; 0x78 800757a: f06f 0003 mvn.w r0, #3 800757e: eeb0 0a67 vmov.f32 s0, s15 8007582: f007 ff8d bl 800f4a0 8007586: f8c7 0340 str.w r0, [r7, #832] ; 0x340 800758a: e055 b.n 8007638 } else if(pardata.amplif[Ch4].SENS < 100.0f) { 800758c: 4b72 ldr r3, [pc, #456] ; (8007758 ) 800758e: edd3 7a1e vldr s15, [r3, #120] ; 0x78 8007592: ed9f 7a79 vldr s14, [pc, #484] ; 8007778 8007596: eef4 7ac7 vcmpe.f32 s15, s14 800759a: eef1 fa10 vmrs APSR_nzcv, fpscr 800759e: d50b bpl.n 80075b8 p8 = FloatToASCII(pardata.amplif[Ch4].SENS, -3); 80075a0: 4b6d ldr r3, [pc, #436] ; (8007758 ) 80075a2: edd3 7a1e vldr s15, [r3, #120] ; 0x78 80075a6: f06f 0002 mvn.w r0, #2 80075aa: eeb0 0a67 vmov.f32 s0, s15 80075ae: f007 ff77 bl 800f4a0 80075b2: f8c7 0340 str.w r0, [r7, #832] ; 0x340 80075b6: e03f b.n 8007638 } else if(pardata.amplif[Ch4].SENS < 1000.0f) { 80075b8: 4b67 ldr r3, [pc, #412] ; (8007758 ) 80075ba: edd3 7a1e vldr s15, [r3, #120] ; 0x78 80075be: ed9f 7a6f vldr s14, [pc, #444] ; 800777c 80075c2: eef4 7ac7 vcmpe.f32 s15, s14 80075c6: eef1 fa10 vmrs APSR_nzcv, fpscr 80075ca: d50b bpl.n 80075e4 p8 = FloatToASCII(pardata.amplif[Ch4].SENS, -2); 80075cc: 4b62 ldr r3, [pc, #392] ; (8007758 ) 80075ce: edd3 7a1e vldr s15, [r3, #120] ; 0x78 80075d2: f06f 0001 mvn.w r0, #1 80075d6: eeb0 0a67 vmov.f32 s0, s15 80075da: f007 ff61 bl 800f4a0 80075de: f8c7 0340 str.w r0, [r7, #832] ; 0x340 80075e2: e029 b.n 8007638 } else if(pardata.amplif[Ch4].SENS < 10000.0f) { 80075e4: 4b5c ldr r3, [pc, #368] ; (8007758 ) 80075e6: edd3 7a1e vldr s15, [r3, #120] ; 0x78 80075ea: ed9f 7a65 vldr s14, [pc, #404] ; 8007780 80075ee: eef4 7ac7 vcmpe.f32 s15, s14 80075f2: eef1 fa10 vmrs APSR_nzcv, fpscr 80075f6: d50b bpl.n 8007610 p8 = FloatToASCII(pardata.amplif[Ch4].SENS, -1); 80075f8: 4b57 ldr r3, [pc, #348] ; (8007758 ) 80075fa: edd3 7a1e vldr s15, [r3, #120] ; 0x78 80075fe: f04f 30ff mov.w r0, #4294967295 8007602: eeb0 0a67 vmov.f32 s0, s15 8007606: f007 ff4b bl 800f4a0 800760a: f8c7 0340 str.w r0, [r7, #832] ; 0x340 800760e: e013 b.n 8007638 } else if(pardata.amplif[Ch4].SENS < 100000.0f) { 8007610: 4b51 ldr r3, [pc, #324] ; (8007758 ) 8007612: edd3 7a1e vldr s15, [r3, #120] ; 0x78 8007616: ed9f 7a51 vldr s14, [pc, #324] ; 800775c 800761a: eef4 7ac7 vcmpe.f32 s15, s14 800761e: eef1 fa10 vmrs APSR_nzcv, fpscr 8007622: d509 bpl.n 8007638 p8 = FloatToASCII(pardata.amplif[Ch4].SENS, 0); 8007624: 4b4c ldr r3, [pc, #304] ; (8007758 ) 8007626: edd3 7a1e vldr s15, [r3, #120] ; 0x78 800762a: 2000 movs r0, #0 800762c: eeb0 0a67 vmov.f32 s0, s15 8007630: f007 ff36 bl 800f4a0 8007634: f8c7 0340 str.w r0, [r7, #832] ; 0x340 } strcpy((void *) str4, (void *) p8); 8007638: f107 0368 add.w r3, r7, #104 ; 0x68 800763c: f8d7 1340 ldr.w r1, [r7, #832] ; 0x340 8007640: 4618 mov r0, r3 8007642: f00e ff52 bl 80164ea ////////////////////////////////////////////////////////////////////////////// BSP_LCD_SetFont(&Font12); 8007646: 484f ldr r0, [pc, #316] ; (8007784 ) 8007648: f7fd fbfa bl 8004e40 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800764c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007650: 484d ldr r0, [pc, #308] ; (8007788 ) 8007652: f7fd fbb9 bl 8004dc8 BSP_LCD_DisplayStringAt(160, 5, "Sensitivity", CENTER_MODE); 8007656: 2301 movs r3, #1 8007658: 4a4c ldr r2, [pc, #304] ; (800778c ) 800765a: 2105 movs r1, #5 800765c: 20a0 movs r0, #160 ; 0xa0 800765e: f7fd fc79 bl 8004f54 BSP_LCD_DisplayStringAt(240, 5, "Units", CENTER_MODE); 8007662: 2301 movs r3, #1 8007664: 4a4a ldr r2, [pc, #296] ; (8007790 ) 8007666: 2105 movs r1, #5 8007668: 20f0 movs r0, #240 ; 0xf0 800766a: f7fd fc73 bl 8004f54 LCD_SetColors(LCD_COLOR_ORANGE, LCD_COLOR_BLACK); 800766e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007672: 4848 ldr r0, [pc, #288] ; (8007794 ) 8007674: f7fd fba8 bl 8004dc8 if(pardata.amplif[Ch1].IIN == CHARGE) 8007678: 4b37 ldr r3, [pc, #220] ; (8007758 ) 800767a: 881b ldrh r3, [r3, #0] 800767c: b29b uxth r3, r3 800767e: 2b00 cmp r3, #0 8007680: d106 bne.n 8007690 BSP_LCD_DisplayStringAt(95, 60, "PE", LEFT_MODE); 8007682: 2303 movs r3, #3 8007684: 4a44 ldr r2, [pc, #272] ; (8007798 ) 8007686: 213c movs r1, #60 ; 0x3c 8007688: 205f movs r0, #95 ; 0x5f 800768a: f7fd fc63 bl 8004f54 800768e: e005 b.n 800769c else BSP_LCD_DisplayStringAt(95, 60, "IEPE", LEFT_MODE); 8007690: 2303 movs r3, #3 8007692: 4a42 ldr r2, [pc, #264] ; (800779c ) 8007694: 213c movs r1, #60 ; 0x3c 8007696: 205f movs r0, #95 ; 0x5f 8007698: f7fd fc5c bl 8004f54 if(pardata.amplif[Ch2].IIN == CHARGE) 800769c: 4b2e ldr r3, [pc, #184] ; (8007758 ) 800769e: 8c1b ldrh r3, [r3, #32] 80076a0: b29b uxth r3, r3 80076a2: 2b00 cmp r3, #0 80076a4: d106 bne.n 80076b4 BSP_LCD_DisplayStringAt(95, 80, "PE", LEFT_MODE); 80076a6: 2303 movs r3, #3 80076a8: 4a3b ldr r2, [pc, #236] ; (8007798 ) 80076aa: 2150 movs r1, #80 ; 0x50 80076ac: 205f movs r0, #95 ; 0x5f 80076ae: f7fd fc51 bl 8004f54 80076b2: e005 b.n 80076c0 else BSP_LCD_DisplayStringAt(95, 80, "IEPE", LEFT_MODE); 80076b4: 2303 movs r3, #3 80076b6: 4a39 ldr r2, [pc, #228] ; (800779c ) 80076b8: 2150 movs r1, #80 ; 0x50 80076ba: 205f movs r0, #95 ; 0x5f 80076bc: f7fd fc4a bl 8004f54 if(pardata.amplif[Ch3].IIN == CHARGE) 80076c0: 4b25 ldr r3, [pc, #148] ; (8007758 ) 80076c2: f8b3 3040 ldrh.w r3, [r3, #64] ; 0x40 80076c6: b29b uxth r3, r3 80076c8: 2b00 cmp r3, #0 80076ca: d106 bne.n 80076da BSP_LCD_DisplayStringAt(95, 100, "PE", LEFT_MODE); 80076cc: 2303 movs r3, #3 80076ce: 4a32 ldr r2, [pc, #200] ; (8007798 ) 80076d0: 2164 movs r1, #100 ; 0x64 80076d2: 205f movs r0, #95 ; 0x5f 80076d4: f7fd fc3e bl 8004f54 80076d8: e005 b.n 80076e6 else BSP_LCD_DisplayStringAt(95, 100, "IEPE", LEFT_MODE); 80076da: 2303 movs r3, #3 80076dc: 4a2f ldr r2, [pc, #188] ; (800779c ) 80076de: 2164 movs r1, #100 ; 0x64 80076e0: 205f movs r0, #95 ; 0x5f 80076e2: f7fd fc37 bl 8004f54 if(pardata.amplif[Ch4].IIN == CHARGE) 80076e6: 4b1c ldr r3, [pc, #112] ; (8007758 ) 80076e8: f8b3 3060 ldrh.w r3, [r3, #96] ; 0x60 80076ec: b29b uxth r3, r3 80076ee: 2b00 cmp r3, #0 80076f0: d106 bne.n 8007700 BSP_LCD_DisplayStringAt(95, 120, "PE", LEFT_MODE); 80076f2: 2303 movs r3, #3 80076f4: 4a28 ldr r2, [pc, #160] ; (8007798 ) 80076f6: 2178 movs r1, #120 ; 0x78 80076f8: 205f movs r0, #95 ; 0x5f 80076fa: f7fd fc2b bl 8004f54 80076fe: e005 b.n 800770c else BSP_LCD_DisplayStringAt(95, 120, "IEPE", LEFT_MODE); 8007700: 2303 movs r3, #3 8007702: 4a26 ldr r2, [pc, #152] ; (800779c ) 8007704: 2178 movs r1, #120 ; 0x78 8007706: 205f movs r0, #95 ; 0x5f 8007708: f7fd fc24 bl 8004f54 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800770c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007710: f04f 30ff mov.w r0, #4294967295 8007714: f7fd fb58 bl 8004dc8 if(pardata.LANG == RUS) 8007718: 4b0f ldr r3, [pc, #60] ; (8007758 ) 800771a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800771e: b29b uxth r3, r3 8007720: 2b00 cmp r3, #0 8007722: d145 bne.n 80077b0 { BSP_LCD_DisplayStringAt(20, 60, "КАНАЛ 1:", LEFT_MODE); 8007724: 2303 movs r3, #3 8007726: 4a1e ldr r2, [pc, #120] ; (80077a0 ) 8007728: 213c movs r1, #60 ; 0x3c 800772a: 2014 movs r0, #20 800772c: f7fd fc12 bl 8004f54 BSP_LCD_DisplayStringAt(20, 80, "КАНАЛ 2:", LEFT_MODE); 8007730: 2303 movs r3, #3 8007732: 4a1c ldr r2, [pc, #112] ; (80077a4 ) 8007734: 2150 movs r1, #80 ; 0x50 8007736: 2014 movs r0, #20 8007738: f7fd fc0c bl 8004f54 BSP_LCD_DisplayStringAt(20, 100, "КАНАЛ 3:", LEFT_MODE); 800773c: 2303 movs r3, #3 800773e: 4a1a ldr r2, [pc, #104] ; (80077a8 ) 8007740: 2164 movs r1, #100 ; 0x64 8007742: 2014 movs r0, #20 8007744: f7fd fc06 bl 8004f54 BSP_LCD_DisplayStringAt(20, 120, "КАНАЛ 4:", LEFT_MODE); 8007748: 2303 movs r3, #3 800774a: 4a18 ldr r2, [pc, #96] ; (80077ac ) 800774c: 2178 movs r1, #120 ; 0x78 800774e: 2014 movs r0, #20 8007750: f7fd fc00 bl 8004f54 8007754: e044 b.n 80077e0 8007756: bf00 nop 8007758: 2006bca8 .word 0x2006bca8 800775c: 47c35000 .word 0x47c35000 8007760: 47c34f80 .word 0x47c34f80 8007764: 0001869f .word 0x0001869f 8007768: d1b71759 .word 0xd1b71759 800776c: 10624dd3 .word 0x10624dd3 8007770: 51eb851f .word 0x51eb851f 8007774: cccccccd .word 0xcccccccd 8007778: 42c80000 .word 0x42c80000 800777c: 447a0000 .word 0x447a0000 8007780: 461c4000 .word 0x461c4000 8007784: 20020000 .word 0x20020000 8007788: ff808080 .word 0xff808080 800778c: 08018148 .word 0x08018148 8007790: 08018154 .word 0x08018154 8007794: ffffa500 .word 0xffffa500 8007798: 0801815c .word 0x0801815c 800779c: 08018160 .word 0x08018160 80077a0: 08018168 .word 0x08018168 80077a4: 08018174 .word 0x08018174 80077a8: 08018180 .word 0x08018180 80077ac: 0801818c .word 0x0801818c } else { BSP_LCD_DisplayStringAt(20, 60, "CHANNEL 1:", LEFT_MODE); 80077b0: 2303 movs r3, #3 80077b2: 4abe ldr r2, [pc, #760] ; (8007aac ) 80077b4: 213c movs r1, #60 ; 0x3c 80077b6: 2014 movs r0, #20 80077b8: f7fd fbcc bl 8004f54 BSP_LCD_DisplayStringAt(20, 80, "CHANNEL 2:", LEFT_MODE); 80077bc: 2303 movs r3, #3 80077be: 4abc ldr r2, [pc, #752] ; (8007ab0 ) 80077c0: 2150 movs r1, #80 ; 0x50 80077c2: 2014 movs r0, #20 80077c4: f7fd fbc6 bl 8004f54 BSP_LCD_DisplayStringAt(20, 100, "CHANNEL 3:", LEFT_MODE); 80077c8: 2303 movs r3, #3 80077ca: 4aba ldr r2, [pc, #744] ; (8007ab4 ) 80077cc: 2164 movs r1, #100 ; 0x64 80077ce: 2014 movs r0, #20 80077d0: f7fd fbc0 bl 8004f54 BSP_LCD_DisplayStringAt(20, 120, "CHANNEL 4:", LEFT_MODE); 80077d4: 2303 movs r3, #3 80077d6: 4ab8 ldr r2, [pc, #736] ; (8007ab8 ) 80077d8: 2178 movs r1, #120 ; 0x78 80077da: 2014 movs r0, #20 80077dc: f7fd fbba bl 8004f54 } if(menupos != Back) 80077e0: 4bb6 ldr r3, [pc, #728] ; (8007abc ) 80077e2: 781b ldrb r3, [r3, #0] 80077e4: b2db uxtb r3, r3 80077e6: 2bff cmp r3, #255 ; 0xff 80077e8: d006 beq.n 80077f8 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 80077ea: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80077ee: f04f 30ff mov.w r0, #4294967295 80077f2: f7fd fae9 bl 8004dc8 80077f6: e005 b.n 8007804 else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 80077f8: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80077fc: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8007800: f7fd fae2 bl 8004dc8 BSP_LCD_DisplayStringAt(20, 40, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //Назад 8007804: 4bae ldr r3, [pc, #696] ; (8007ac0 ) 8007806: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800780a: b29b uxth r3, r3 800780c: 4aad ldr r2, [pc, #692] ; (8007ac4 ) 800780e: 011b lsls r3, r3, #4 8007810: 4413 add r3, r2 8007812: 681a ldr r2, [r3, #0] 8007814: 2303 movs r3, #3 8007816: 2128 movs r1, #40 ; 0x28 8007818: 2014 movs r0, #20 800781a: f7fd fb9b bl 8004f54 //todo if(menupos == Back) 800781e: 4ba7 ldr r3, [pc, #668] ; (8007abc ) 8007820: 781b ldrb r3, [r3, #0] 8007822: b2db uxtb r3, r3 8007824: 2bff cmp r3, #255 ; 0xff 8007826: f040 8083 bne.w 8007930 { LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800782a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800782e: 48a6 ldr r0, [pc, #664] ; (8007ac8 ) 8007830: f7fd faca bl 8004dc8 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 8007834: f507 728e add.w r2, r7, #284 ; 0x11c 8007838: 2303 movs r3, #3 800783a: 213c movs r1, #60 ; 0x3c 800783c: 208c movs r0, #140 ; 0x8c 800783e: f7fd fb89 bl 8004f54 BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 8007842: f107 02e0 add.w r2, r7, #224 ; 0xe0 8007846: 2303 movs r3, #3 8007848: 2150 movs r1, #80 ; 0x50 800784a: 208c movs r0, #140 ; 0x8c 800784c: f7fd fb82 bl 8004f54 BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 8007850: f107 02a4 add.w r2, r7, #164 ; 0xa4 8007854: 2303 movs r3, #3 8007856: 2164 movs r1, #100 ; 0x64 8007858: 208c movs r0, #140 ; 0x8c 800785a: f7fd fb7b bl 8004f54 BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 800785e: f107 0268 add.w r2, r7, #104 ; 0x68 8007862: 2303 movs r3, #3 8007864: 2178 movs r1, #120 ; 0x78 8007866: 208c movs r0, #140 ; 0x8c 8007868: f7fd fb74 bl 8004f54 BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 800786c: 4b94 ldr r3, [pc, #592] ; (8007ac0 ) 800786e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007872: b29b uxth r3, r3 8007874: 4618 mov r0, r3 8007876: 4b92 ldr r3, [pc, #584] ; (8007ac0 ) 8007878: 8a5b ldrh r3, [r3, #18] 800787a: b29b uxth r3, r3 800787c: 005b lsls r3, r3, #1 800787e: 4a90 ldr r2, [pc, #576] ; (8007ac0 ) 8007880: 8812 ldrh r2, [r2, #0] 8007882: b292 uxth r2, r2 8007884: 4413 add r3, r2 8007886: 4991 ldr r1, [pc, #580] ; (8007acc ) 8007888: 0102 lsls r2, r0, #4 800788a: 4413 add r3, r2 800788c: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007890: 2303 movs r3, #3 8007892: 213c movs r1, #60 ; 0x3c 8007894: 20dc movs r0, #220 ; 0xdc 8007896: f7fd fb5d bl 8004f54 BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 800789a: 4b89 ldr r3, [pc, #548] ; (8007ac0 ) 800789c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80078a0: b29b uxth r3, r3 80078a2: 4618 mov r0, r3 80078a4: 4b86 ldr r3, [pc, #536] ; (8007ac0 ) 80078a6: 8e5b ldrh r3, [r3, #50] ; 0x32 80078a8: b29b uxth r3, r3 80078aa: 005b lsls r3, r3, #1 80078ac: 4a84 ldr r2, [pc, #528] ; (8007ac0 ) 80078ae: 8c12 ldrh r2, [r2, #32] 80078b0: b292 uxth r2, r2 80078b2: 4413 add r3, r2 80078b4: 4985 ldr r1, [pc, #532] ; (8007acc ) 80078b6: 0102 lsls r2, r0, #4 80078b8: 4413 add r3, r2 80078ba: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80078be: 2303 movs r3, #3 80078c0: 2150 movs r1, #80 ; 0x50 80078c2: 20dc movs r0, #220 ; 0xdc 80078c4: f7fd fb46 bl 8004f54 BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 80078c8: 4b7d ldr r3, [pc, #500] ; (8007ac0 ) 80078ca: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80078ce: b29b uxth r3, r3 80078d0: 4618 mov r0, r3 80078d2: 4b7b ldr r3, [pc, #492] ; (8007ac0 ) 80078d4: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 80078d8: b29b uxth r3, r3 80078da: 005b lsls r3, r3, #1 80078dc: 4a78 ldr r2, [pc, #480] ; (8007ac0 ) 80078de: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 80078e2: b292 uxth r2, r2 80078e4: 4413 add r3, r2 80078e6: 4979 ldr r1, [pc, #484] ; (8007acc ) 80078e8: 0102 lsls r2, r0, #4 80078ea: 4413 add r3, r2 80078ec: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80078f0: 2303 movs r3, #3 80078f2: 2164 movs r1, #100 ; 0x64 80078f4: 20dc movs r0, #220 ; 0xdc 80078f6: f7fd fb2d bl 8004f54 BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 80078fa: 4b71 ldr r3, [pc, #452] ; (8007ac0 ) 80078fc: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007900: b29b uxth r3, r3 8007902: 4618 mov r0, r3 8007904: 4b6e ldr r3, [pc, #440] ; (8007ac0 ) 8007906: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 800790a: b29b uxth r3, r3 800790c: 005b lsls r3, r3, #1 800790e: 4a6c ldr r2, [pc, #432] ; (8007ac0 ) 8007910: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 8007914: b292 uxth r2, r2 8007916: 4413 add r3, r2 8007918: 496c ldr r1, [pc, #432] ; (8007acc ) 800791a: 0102 lsls r2, r0, #4 800791c: 4413 add r3, r2 800791e: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007922: 2303 movs r3, #3 8007924: 2178 movs r1, #120 ; 0x78 8007926: 20dc movs r0, #220 ; 0xdc 8007928: f7fd fb14 bl 8004f54 } } } } break; 800792c: f006 b852 b.w 800d9d4 if(menupos == Sens_1) 8007930: 4b62 ldr r3, [pc, #392] ; (8007abc ) 8007932: 781b ldrb r3, [r3, #0] 8007934: b2db uxtb r3, r3 8007936: 2b00 cmp r3, #0 8007938: f040 809a bne.w 8007a70 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800793c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007940: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8007944: f7fd fa40 bl 8004dc8 if(focused) 8007948: 4b61 ldr r3, [pc, #388] ; (8007ad0 ) 800794a: 781b ldrb r3, [r3, #0] 800794c: b2db uxtb r3, r3 800794e: 2b00 cmp r3, #0 8007950: d00b beq.n 800796a if(blk) 8007952: 4b60 ldr r3, [pc, #384] ; (8007ad4 ) 8007954: 681b ldr r3, [r3, #0] 8007956: 2b00 cmp r3, #0 8007958: d00e beq.n 8007978 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 800795a: f507 728e add.w r2, r7, #284 ; 0x11c 800795e: 2303 movs r3, #3 8007960: 213c movs r1, #60 ; 0x3c 8007962: 208c movs r0, #140 ; 0x8c 8007964: f7fd faf6 bl 8004f54 8007968: e006 b.n 8007978 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 800796a: f507 728e add.w r2, r7, #284 ; 0x11c 800796e: 2303 movs r3, #3 8007970: 213c movs r1, #60 ; 0x3c 8007972: 208c movs r0, #140 ; 0x8c 8007974: f7fd faee bl 8004f54 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8007978: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800797c: 4852 ldr r0, [pc, #328] ; (8007ac8 ) 800797e: f7fd fa23 bl 8004dc8 BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 8007982: f107 02e0 add.w r2, r7, #224 ; 0xe0 8007986: 2303 movs r3, #3 8007988: 2150 movs r1, #80 ; 0x50 800798a: 208c movs r0, #140 ; 0x8c 800798c: f7fd fae2 bl 8004f54 BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 8007990: f107 02a4 add.w r2, r7, #164 ; 0xa4 8007994: 2303 movs r3, #3 8007996: 2164 movs r1, #100 ; 0x64 8007998: 208c movs r0, #140 ; 0x8c 800799a: f7fd fadb bl 8004f54 BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 800799e: f107 0268 add.w r2, r7, #104 ; 0x68 80079a2: 2303 movs r3, #3 80079a4: 2178 movs r1, #120 ; 0x78 80079a6: 208c movs r0, #140 ; 0x8c 80079a8: f7fd fad4 bl 8004f54 BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 80079ac: 4b44 ldr r3, [pc, #272] ; (8007ac0 ) 80079ae: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80079b2: b29b uxth r3, r3 80079b4: 4618 mov r0, r3 80079b6: 4b42 ldr r3, [pc, #264] ; (8007ac0 ) 80079b8: 8a5b ldrh r3, [r3, #18] 80079ba: b29b uxth r3, r3 80079bc: 005b lsls r3, r3, #1 80079be: 4a40 ldr r2, [pc, #256] ; (8007ac0 ) 80079c0: 8812 ldrh r2, [r2, #0] 80079c2: b292 uxth r2, r2 80079c4: 4413 add r3, r2 80079c6: 4941 ldr r1, [pc, #260] ; (8007acc ) 80079c8: 0102 lsls r2, r0, #4 80079ca: 4413 add r3, r2 80079cc: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80079d0: 2303 movs r3, #3 80079d2: 213c movs r1, #60 ; 0x3c 80079d4: 20dc movs r0, #220 ; 0xdc 80079d6: f7fd fabd bl 8004f54 BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 80079da: 4b39 ldr r3, [pc, #228] ; (8007ac0 ) 80079dc: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80079e0: b29b uxth r3, r3 80079e2: 4618 mov r0, r3 80079e4: 4b36 ldr r3, [pc, #216] ; (8007ac0 ) 80079e6: 8e5b ldrh r3, [r3, #50] ; 0x32 80079e8: b29b uxth r3, r3 80079ea: 005b lsls r3, r3, #1 80079ec: 4a34 ldr r2, [pc, #208] ; (8007ac0 ) 80079ee: 8c12 ldrh r2, [r2, #32] 80079f0: b292 uxth r2, r2 80079f2: 4413 add r3, r2 80079f4: 4935 ldr r1, [pc, #212] ; (8007acc ) 80079f6: 0102 lsls r2, r0, #4 80079f8: 4413 add r3, r2 80079fa: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80079fe: 2303 movs r3, #3 8007a00: 2150 movs r1, #80 ; 0x50 8007a02: 20dc movs r0, #220 ; 0xdc 8007a04: f7fd faa6 bl 8004f54 BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 8007a08: 4b2d ldr r3, [pc, #180] ; (8007ac0 ) 8007a0a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007a0e: b29b uxth r3, r3 8007a10: 4618 mov r0, r3 8007a12: 4b2b ldr r3, [pc, #172] ; (8007ac0 ) 8007a14: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8007a18: b29b uxth r3, r3 8007a1a: 005b lsls r3, r3, #1 8007a1c: 4a28 ldr r2, [pc, #160] ; (8007ac0 ) 8007a1e: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 8007a22: b292 uxth r2, r2 8007a24: 4413 add r3, r2 8007a26: 4929 ldr r1, [pc, #164] ; (8007acc ) 8007a28: 0102 lsls r2, r0, #4 8007a2a: 4413 add r3, r2 8007a2c: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007a30: 2303 movs r3, #3 8007a32: 2164 movs r1, #100 ; 0x64 8007a34: 20dc movs r0, #220 ; 0xdc 8007a36: f7fd fa8d bl 8004f54 BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 8007a3a: 4b21 ldr r3, [pc, #132] ; (8007ac0 ) 8007a3c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007a40: b29b uxth r3, r3 8007a42: 4618 mov r0, r3 8007a44: 4b1e ldr r3, [pc, #120] ; (8007ac0 ) 8007a46: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 8007a4a: b29b uxth r3, r3 8007a4c: 005b lsls r3, r3, #1 8007a4e: 4a1c ldr r2, [pc, #112] ; (8007ac0 ) 8007a50: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 8007a54: b292 uxth r2, r2 8007a56: 4413 add r3, r2 8007a58: 491c ldr r1, [pc, #112] ; (8007acc ) 8007a5a: 0102 lsls r2, r0, #4 8007a5c: 4413 add r3, r2 8007a5e: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007a62: 2303 movs r3, #3 8007a64: 2178 movs r1, #120 ; 0x78 8007a66: 20dc movs r0, #220 ; 0xdc 8007a68: f7fd fa74 bl 8004f54 break; 8007a6c: f005 bfb2 b.w 800d9d4 if(menupos == Sens_2) 8007a70: 4b12 ldr r3, [pc, #72] ; (8007abc ) 8007a72: 781b ldrb r3, [r3, #0] 8007a74: b2db uxtb r3, r3 8007a76: 2b08 cmp r3, #8 8007a78: f040 80b1 bne.w 8007bde LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8007a7c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007a80: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8007a84: f7fd f9a0 bl 8004dc8 if(focused) 8007a88: 4b11 ldr r3, [pc, #68] ; (8007ad0 ) 8007a8a: 781b ldrb r3, [r3, #0] 8007a8c: b2db uxtb r3, r3 8007a8e: 2b00 cmp r3, #0 8007a90: d022 beq.n 8007ad8 if(blk) 8007a92: 4b10 ldr r3, [pc, #64] ; (8007ad4 ) 8007a94: 681b ldr r3, [r3, #0] 8007a96: 2b00 cmp r3, #0 8007a98: d025 beq.n 8007ae6 BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 8007a9a: f107 02e0 add.w r2, r7, #224 ; 0xe0 8007a9e: 2303 movs r3, #3 8007aa0: 2150 movs r1, #80 ; 0x50 8007aa2: 208c movs r0, #140 ; 0x8c 8007aa4: f7fd fa56 bl 8004f54 8007aa8: e01d b.n 8007ae6 8007aaa: bf00 nop 8007aac: 08018198 .word 0x08018198 8007ab0: 080181a4 .word 0x080181a4 8007ab4: 080181b0 .word 0x080181b0 8007ab8: 080181bc .word 0x080181bc 8007abc: 20020010 .word 0x20020010 8007ac0: 2006bca8 .word 0x2006bca8 8007ac4: 20020034 .word 0x20020034 8007ac8: ffd8aa57 .word 0xffd8aa57 8007acc: 200200bc .word 0x200200bc 8007ad0: 200209e4 .word 0x200209e4 8007ad4: 2006ba78 .word 0x2006ba78 BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 8007ad8: f107 02e0 add.w r2, r7, #224 ; 0xe0 8007adc: 2303 movs r3, #3 8007ade: 2150 movs r1, #80 ; 0x50 8007ae0: 208c movs r0, #140 ; 0x8c 8007ae2: f7fd fa37 bl 8004f54 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8007ae6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007aea: 489b ldr r0, [pc, #620] ; (8007d58 ) 8007aec: f7fd f96c bl 8004dc8 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 8007af0: f507 728e add.w r2, r7, #284 ; 0x11c 8007af4: 2303 movs r3, #3 8007af6: 213c movs r1, #60 ; 0x3c 8007af8: 208c movs r0, #140 ; 0x8c 8007afa: f7fd fa2b bl 8004f54 BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 8007afe: f107 02a4 add.w r2, r7, #164 ; 0xa4 8007b02: 2303 movs r3, #3 8007b04: 2164 movs r1, #100 ; 0x64 8007b06: 208c movs r0, #140 ; 0x8c 8007b08: f7fd fa24 bl 8004f54 BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 8007b0c: f107 0268 add.w r2, r7, #104 ; 0x68 8007b10: 2303 movs r3, #3 8007b12: 2178 movs r1, #120 ; 0x78 8007b14: 208c movs r0, #140 ; 0x8c 8007b16: f7fd fa1d bl 8004f54 BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 8007b1a: 4b90 ldr r3, [pc, #576] ; (8007d5c ) 8007b1c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007b20: b29b uxth r3, r3 8007b22: 4618 mov r0, r3 8007b24: 4b8d ldr r3, [pc, #564] ; (8007d5c ) 8007b26: 8a5b ldrh r3, [r3, #18] 8007b28: b29b uxth r3, r3 8007b2a: 005b lsls r3, r3, #1 8007b2c: 4a8b ldr r2, [pc, #556] ; (8007d5c ) 8007b2e: 8812 ldrh r2, [r2, #0] 8007b30: b292 uxth r2, r2 8007b32: 4413 add r3, r2 8007b34: 498a ldr r1, [pc, #552] ; (8007d60 ) 8007b36: 0102 lsls r2, r0, #4 8007b38: 4413 add r3, r2 8007b3a: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007b3e: 2303 movs r3, #3 8007b40: 213c movs r1, #60 ; 0x3c 8007b42: 20dc movs r0, #220 ; 0xdc 8007b44: f7fd fa06 bl 8004f54 BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 8007b48: 4b84 ldr r3, [pc, #528] ; (8007d5c ) 8007b4a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007b4e: b29b uxth r3, r3 8007b50: 4618 mov r0, r3 8007b52: 4b82 ldr r3, [pc, #520] ; (8007d5c ) 8007b54: 8e5b ldrh r3, [r3, #50] ; 0x32 8007b56: b29b uxth r3, r3 8007b58: 005b lsls r3, r3, #1 8007b5a: 4a80 ldr r2, [pc, #512] ; (8007d5c ) 8007b5c: 8c12 ldrh r2, [r2, #32] 8007b5e: b292 uxth r2, r2 8007b60: 4413 add r3, r2 8007b62: 497f ldr r1, [pc, #508] ; (8007d60 ) 8007b64: 0102 lsls r2, r0, #4 8007b66: 4413 add r3, r2 8007b68: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007b6c: 2303 movs r3, #3 8007b6e: 2150 movs r1, #80 ; 0x50 8007b70: 20dc movs r0, #220 ; 0xdc 8007b72: f7fd f9ef bl 8004f54 BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 8007b76: 4b79 ldr r3, [pc, #484] ; (8007d5c ) 8007b78: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007b7c: b29b uxth r3, r3 8007b7e: 4618 mov r0, r3 8007b80: 4b76 ldr r3, [pc, #472] ; (8007d5c ) 8007b82: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8007b86: b29b uxth r3, r3 8007b88: 005b lsls r3, r3, #1 8007b8a: 4a74 ldr r2, [pc, #464] ; (8007d5c ) 8007b8c: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 8007b90: b292 uxth r2, r2 8007b92: 4413 add r3, r2 8007b94: 4972 ldr r1, [pc, #456] ; (8007d60 ) 8007b96: 0102 lsls r2, r0, #4 8007b98: 4413 add r3, r2 8007b9a: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007b9e: 2303 movs r3, #3 8007ba0: 2164 movs r1, #100 ; 0x64 8007ba2: 20dc movs r0, #220 ; 0xdc 8007ba4: f7fd f9d6 bl 8004f54 BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 8007ba8: 4b6c ldr r3, [pc, #432] ; (8007d5c ) 8007baa: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007bae: b29b uxth r3, r3 8007bb0: 4618 mov r0, r3 8007bb2: 4b6a ldr r3, [pc, #424] ; (8007d5c ) 8007bb4: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 8007bb8: b29b uxth r3, r3 8007bba: 005b lsls r3, r3, #1 8007bbc: 4a67 ldr r2, [pc, #412] ; (8007d5c ) 8007bbe: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 8007bc2: b292 uxth r2, r2 8007bc4: 4413 add r3, r2 8007bc6: 4966 ldr r1, [pc, #408] ; (8007d60 ) 8007bc8: 0102 lsls r2, r0, #4 8007bca: 4413 add r3, r2 8007bcc: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007bd0: 2303 movs r3, #3 8007bd2: 2178 movs r1, #120 ; 0x78 8007bd4: 20dc movs r0, #220 ; 0xdc 8007bd6: f7fd f9bd bl 8004f54 break; 8007bda: f005 befb b.w 800d9d4 if(menupos == Sens_3) 8007bde: 4b61 ldr r3, [pc, #388] ; (8007d64 ) 8007be0: 781b ldrb r3, [r3, #0] 8007be2: b2db uxtb r3, r3 8007be4: 2b10 cmp r3, #16 8007be6: f040 809a bne.w 8007d1e LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8007bea: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007bee: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8007bf2: f7fd f8e9 bl 8004dc8 if(focused) 8007bf6: 4b5c ldr r3, [pc, #368] ; (8007d68 ) 8007bf8: 781b ldrb r3, [r3, #0] 8007bfa: b2db uxtb r3, r3 8007bfc: 2b00 cmp r3, #0 8007bfe: d00b beq.n 8007c18 if(blk) 8007c00: 4b5a ldr r3, [pc, #360] ; (8007d6c ) 8007c02: 681b ldr r3, [r3, #0] 8007c04: 2b00 cmp r3, #0 8007c06: d00e beq.n 8007c26 BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 8007c08: f107 02a4 add.w r2, r7, #164 ; 0xa4 8007c0c: 2303 movs r3, #3 8007c0e: 2164 movs r1, #100 ; 0x64 8007c10: 208c movs r0, #140 ; 0x8c 8007c12: f7fd f99f bl 8004f54 8007c16: e006 b.n 8007c26 BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 8007c18: f107 02a4 add.w r2, r7, #164 ; 0xa4 8007c1c: 2303 movs r3, #3 8007c1e: 2164 movs r1, #100 ; 0x64 8007c20: 208c movs r0, #140 ; 0x8c 8007c22: f7fd f997 bl 8004f54 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8007c26: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007c2a: 484b ldr r0, [pc, #300] ; (8007d58 ) 8007c2c: f7fd f8cc bl 8004dc8 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 8007c30: f507 728e add.w r2, r7, #284 ; 0x11c 8007c34: 2303 movs r3, #3 8007c36: 213c movs r1, #60 ; 0x3c 8007c38: 208c movs r0, #140 ; 0x8c 8007c3a: f7fd f98b bl 8004f54 BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 8007c3e: f107 02e0 add.w r2, r7, #224 ; 0xe0 8007c42: 2303 movs r3, #3 8007c44: 2150 movs r1, #80 ; 0x50 8007c46: 208c movs r0, #140 ; 0x8c 8007c48: f7fd f984 bl 8004f54 BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 8007c4c: f107 0268 add.w r2, r7, #104 ; 0x68 8007c50: 2303 movs r3, #3 8007c52: 2178 movs r1, #120 ; 0x78 8007c54: 208c movs r0, #140 ; 0x8c 8007c56: f7fd f97d bl 8004f54 BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 8007c5a: 4b40 ldr r3, [pc, #256] ; (8007d5c ) 8007c5c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007c60: b29b uxth r3, r3 8007c62: 4618 mov r0, r3 8007c64: 4b3d ldr r3, [pc, #244] ; (8007d5c ) 8007c66: 8a5b ldrh r3, [r3, #18] 8007c68: b29b uxth r3, r3 8007c6a: 005b lsls r3, r3, #1 8007c6c: 4a3b ldr r2, [pc, #236] ; (8007d5c ) 8007c6e: 8812 ldrh r2, [r2, #0] 8007c70: b292 uxth r2, r2 8007c72: 4413 add r3, r2 8007c74: 493a ldr r1, [pc, #232] ; (8007d60 ) 8007c76: 0102 lsls r2, r0, #4 8007c78: 4413 add r3, r2 8007c7a: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007c7e: 2303 movs r3, #3 8007c80: 213c movs r1, #60 ; 0x3c 8007c82: 20dc movs r0, #220 ; 0xdc 8007c84: f7fd f966 bl 8004f54 BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 8007c88: 4b34 ldr r3, [pc, #208] ; (8007d5c ) 8007c8a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007c8e: b29b uxth r3, r3 8007c90: 4618 mov r0, r3 8007c92: 4b32 ldr r3, [pc, #200] ; (8007d5c ) 8007c94: 8e5b ldrh r3, [r3, #50] ; 0x32 8007c96: b29b uxth r3, r3 8007c98: 005b lsls r3, r3, #1 8007c9a: 4a30 ldr r2, [pc, #192] ; (8007d5c ) 8007c9c: 8c12 ldrh r2, [r2, #32] 8007c9e: b292 uxth r2, r2 8007ca0: 4413 add r3, r2 8007ca2: 492f ldr r1, [pc, #188] ; (8007d60 ) 8007ca4: 0102 lsls r2, r0, #4 8007ca6: 4413 add r3, r2 8007ca8: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007cac: 2303 movs r3, #3 8007cae: 2150 movs r1, #80 ; 0x50 8007cb0: 20dc movs r0, #220 ; 0xdc 8007cb2: f7fd f94f bl 8004f54 BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 8007cb6: 4b29 ldr r3, [pc, #164] ; (8007d5c ) 8007cb8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007cbc: b29b uxth r3, r3 8007cbe: 4618 mov r0, r3 8007cc0: 4b26 ldr r3, [pc, #152] ; (8007d5c ) 8007cc2: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8007cc6: b29b uxth r3, r3 8007cc8: 005b lsls r3, r3, #1 8007cca: 4a24 ldr r2, [pc, #144] ; (8007d5c ) 8007ccc: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 8007cd0: b292 uxth r2, r2 8007cd2: 4413 add r3, r2 8007cd4: 4922 ldr r1, [pc, #136] ; (8007d60 ) 8007cd6: 0102 lsls r2, r0, #4 8007cd8: 4413 add r3, r2 8007cda: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007cde: 2303 movs r3, #3 8007ce0: 2164 movs r1, #100 ; 0x64 8007ce2: 20dc movs r0, #220 ; 0xdc 8007ce4: f7fd f936 bl 8004f54 BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 8007ce8: 4b1c ldr r3, [pc, #112] ; (8007d5c ) 8007cea: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007cee: b29b uxth r3, r3 8007cf0: 4618 mov r0, r3 8007cf2: 4b1a ldr r3, [pc, #104] ; (8007d5c ) 8007cf4: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 8007cf8: b29b uxth r3, r3 8007cfa: 005b lsls r3, r3, #1 8007cfc: 4a17 ldr r2, [pc, #92] ; (8007d5c ) 8007cfe: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 8007d02: b292 uxth r2, r2 8007d04: 4413 add r3, r2 8007d06: 4916 ldr r1, [pc, #88] ; (8007d60 ) 8007d08: 0102 lsls r2, r0, #4 8007d0a: 4413 add r3, r2 8007d0c: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007d10: 2303 movs r3, #3 8007d12: 2178 movs r1, #120 ; 0x78 8007d14: 20dc movs r0, #220 ; 0xdc 8007d16: f7fd f91d bl 8004f54 break; 8007d1a: f005 be5b b.w 800d9d4 if(menupos == Sens_4) 8007d1e: 4b11 ldr r3, [pc, #68] ; (8007d64 ) 8007d20: 781b ldrb r3, [r3, #0] 8007d22: b2db uxtb r3, r3 8007d24: 2b18 cmp r3, #24 8007d26: f040 80a6 bne.w 8007e76 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8007d2a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007d2e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8007d32: f7fd f849 bl 8004dc8 if(focused) 8007d36: 4b0c ldr r3, [pc, #48] ; (8007d68 ) 8007d38: 781b ldrb r3, [r3, #0] 8007d3a: b2db uxtb r3, r3 8007d3c: 2b00 cmp r3, #0 8007d3e: d017 beq.n 8007d70 if(blk) 8007d40: 4b0a ldr r3, [pc, #40] ; (8007d6c ) 8007d42: 681b ldr r3, [r3, #0] 8007d44: 2b00 cmp r3, #0 8007d46: d01a beq.n 8007d7e BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 8007d48: f107 0268 add.w r2, r7, #104 ; 0x68 8007d4c: 2303 movs r3, #3 8007d4e: 2178 movs r1, #120 ; 0x78 8007d50: 208c movs r0, #140 ; 0x8c 8007d52: f7fd f8ff bl 8004f54 8007d56: e012 b.n 8007d7e 8007d58: ffd8aa57 .word 0xffd8aa57 8007d5c: 2006bca8 .word 0x2006bca8 8007d60: 200200bc .word 0x200200bc 8007d64: 20020010 .word 0x20020010 8007d68: 200209e4 .word 0x200209e4 8007d6c: 2006ba78 .word 0x2006ba78 BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 8007d70: f107 0268 add.w r2, r7, #104 ; 0x68 8007d74: 2303 movs r3, #3 8007d76: 2178 movs r1, #120 ; 0x78 8007d78: 208c movs r0, #140 ; 0x8c 8007d7a: f7fd f8eb bl 8004f54 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8007d7e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007d82: 48ab ldr r0, [pc, #684] ; (8008030 ) 8007d84: f7fd f820 bl 8004dc8 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 8007d88: f507 728e add.w r2, r7, #284 ; 0x11c 8007d8c: 2303 movs r3, #3 8007d8e: 213c movs r1, #60 ; 0x3c 8007d90: 208c movs r0, #140 ; 0x8c 8007d92: f7fd f8df bl 8004f54 BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 8007d96: f107 02e0 add.w r2, r7, #224 ; 0xe0 8007d9a: 2303 movs r3, #3 8007d9c: 2150 movs r1, #80 ; 0x50 8007d9e: 208c movs r0, #140 ; 0x8c 8007da0: f7fd f8d8 bl 8004f54 BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 8007da4: f107 02a4 add.w r2, r7, #164 ; 0xa4 8007da8: 2303 movs r3, #3 8007daa: 2164 movs r1, #100 ; 0x64 8007dac: 208c movs r0, #140 ; 0x8c 8007dae: f7fd f8d1 bl 8004f54 BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 8007db2: 4ba0 ldr r3, [pc, #640] ; (8008034 ) 8007db4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007db8: b29b uxth r3, r3 8007dba: 4618 mov r0, r3 8007dbc: 4b9d ldr r3, [pc, #628] ; (8008034 ) 8007dbe: 8a5b ldrh r3, [r3, #18] 8007dc0: b29b uxth r3, r3 8007dc2: 005b lsls r3, r3, #1 8007dc4: 4a9b ldr r2, [pc, #620] ; (8008034 ) 8007dc6: 8812 ldrh r2, [r2, #0] 8007dc8: b292 uxth r2, r2 8007dca: 4413 add r3, r2 8007dcc: 499a ldr r1, [pc, #616] ; (8008038 ) 8007dce: 0102 lsls r2, r0, #4 8007dd0: 4413 add r3, r2 8007dd2: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007dd6: 2303 movs r3, #3 8007dd8: 213c movs r1, #60 ; 0x3c 8007dda: 20dc movs r0, #220 ; 0xdc 8007ddc: f7fd f8ba bl 8004f54 BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 8007de0: 4b94 ldr r3, [pc, #592] ; (8008034 ) 8007de2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007de6: b29b uxth r3, r3 8007de8: 4618 mov r0, r3 8007dea: 4b92 ldr r3, [pc, #584] ; (8008034 ) 8007dec: 8e5b ldrh r3, [r3, #50] ; 0x32 8007dee: b29b uxth r3, r3 8007df0: 005b lsls r3, r3, #1 8007df2: 4a90 ldr r2, [pc, #576] ; (8008034 ) 8007df4: 8c12 ldrh r2, [r2, #32] 8007df6: b292 uxth r2, r2 8007df8: 4413 add r3, r2 8007dfa: 498f ldr r1, [pc, #572] ; (8008038 ) 8007dfc: 0102 lsls r2, r0, #4 8007dfe: 4413 add r3, r2 8007e00: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007e04: 2303 movs r3, #3 8007e06: 2150 movs r1, #80 ; 0x50 8007e08: 20dc movs r0, #220 ; 0xdc 8007e0a: f7fd f8a3 bl 8004f54 BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 8007e0e: 4b89 ldr r3, [pc, #548] ; (8008034 ) 8007e10: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007e14: b29b uxth r3, r3 8007e16: 4618 mov r0, r3 8007e18: 4b86 ldr r3, [pc, #536] ; (8008034 ) 8007e1a: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8007e1e: b29b uxth r3, r3 8007e20: 005b lsls r3, r3, #1 8007e22: 4a84 ldr r2, [pc, #528] ; (8008034 ) 8007e24: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 8007e28: b292 uxth r2, r2 8007e2a: 4413 add r3, r2 8007e2c: 4982 ldr r1, [pc, #520] ; (8008038 ) 8007e2e: 0102 lsls r2, r0, #4 8007e30: 4413 add r3, r2 8007e32: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007e36: 2303 movs r3, #3 8007e38: 2164 movs r1, #100 ; 0x64 8007e3a: 20dc movs r0, #220 ; 0xdc 8007e3c: f7fd f88a bl 8004f54 BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 8007e40: 4b7c ldr r3, [pc, #496] ; (8008034 ) 8007e42: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007e46: b29b uxth r3, r3 8007e48: 4618 mov r0, r3 8007e4a: 4b7a ldr r3, [pc, #488] ; (8008034 ) 8007e4c: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 8007e50: b29b uxth r3, r3 8007e52: 005b lsls r3, r3, #1 8007e54: 4a77 ldr r2, [pc, #476] ; (8008034 ) 8007e56: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 8007e5a: b292 uxth r2, r2 8007e5c: 4413 add r3, r2 8007e5e: 4976 ldr r1, [pc, #472] ; (8008038 ) 8007e60: 0102 lsls r2, r0, #4 8007e62: 4413 add r3, r2 8007e64: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007e68: 2303 movs r3, #3 8007e6a: 2178 movs r1, #120 ; 0x78 8007e6c: 20dc movs r0, #220 ; 0xdc 8007e6e: f7fd f871 bl 8004f54 break; 8007e72: f005 bdaf b.w 800d9d4 if(menupos == Val_1) 8007e76: 4b71 ldr r3, [pc, #452] ; (800803c ) 8007e78: 781b ldrb r3, [r3, #0] 8007e7a: b2db uxtb r3, r3 8007e7c: 2b01 cmp r3, #1 8007e7e: f040 80aa bne.w 8007fd6 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8007e82: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007e86: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8007e8a: f7fc ff9d bl 8004dc8 if(focused) 8007e8e: 4b6c ldr r3, [pc, #432] ; (8008040 ) 8007e90: 781b ldrb r3, [r3, #0] 8007e92: b2db uxtb r3, r3 8007e94: 2b00 cmp r3, #0 8007e96: d01b beq.n 8007ed0 if(blk) 8007e98: 4b6a ldr r3, [pc, #424] ; (8008044 ) 8007e9a: 681b ldr r3, [r3, #0] 8007e9c: 2b00 cmp r3, #0 8007e9e: d02e beq.n 8007efe BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 8007ea0: 4b64 ldr r3, [pc, #400] ; (8008034 ) 8007ea2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007ea6: b29b uxth r3, r3 8007ea8: 4618 mov r0, r3 8007eaa: 4b62 ldr r3, [pc, #392] ; (8008034 ) 8007eac: 8a5b ldrh r3, [r3, #18] 8007eae: b29b uxth r3, r3 8007eb0: 005b lsls r3, r3, #1 8007eb2: 4a60 ldr r2, [pc, #384] ; (8008034 ) 8007eb4: 8812 ldrh r2, [r2, #0] 8007eb6: b292 uxth r2, r2 8007eb8: 4413 add r3, r2 8007eba: 495f ldr r1, [pc, #380] ; (8008038 ) 8007ebc: 0102 lsls r2, r0, #4 8007ebe: 4413 add r3, r2 8007ec0: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007ec4: 2303 movs r3, #3 8007ec6: 213c movs r1, #60 ; 0x3c 8007ec8: 20dc movs r0, #220 ; 0xdc 8007eca: f7fd f843 bl 8004f54 8007ece: e016 b.n 8007efe BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 8007ed0: 4b58 ldr r3, [pc, #352] ; (8008034 ) 8007ed2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007ed6: b29b uxth r3, r3 8007ed8: 4618 mov r0, r3 8007eda: 4b56 ldr r3, [pc, #344] ; (8008034 ) 8007edc: 8a5b ldrh r3, [r3, #18] 8007ede: b29b uxth r3, r3 8007ee0: 005b lsls r3, r3, #1 8007ee2: 4a54 ldr r2, [pc, #336] ; (8008034 ) 8007ee4: 8812 ldrh r2, [r2, #0] 8007ee6: b292 uxth r2, r2 8007ee8: 4413 add r3, r2 8007eea: 4953 ldr r1, [pc, #332] ; (8008038 ) 8007eec: 0102 lsls r2, r0, #4 8007eee: 4413 add r3, r2 8007ef0: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007ef4: 2303 movs r3, #3 8007ef6: 213c movs r1, #60 ; 0x3c 8007ef8: 20dc movs r0, #220 ; 0xdc 8007efa: f7fd f82b bl 8004f54 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8007efe: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007f02: 484b ldr r0, [pc, #300] ; (8008030 ) 8007f04: f7fc ff60 bl 8004dc8 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 8007f08: f507 728e add.w r2, r7, #284 ; 0x11c 8007f0c: 2303 movs r3, #3 8007f0e: 213c movs r1, #60 ; 0x3c 8007f10: 208c movs r0, #140 ; 0x8c 8007f12: f7fd f81f bl 8004f54 BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 8007f16: f107 02e0 add.w r2, r7, #224 ; 0xe0 8007f1a: 2303 movs r3, #3 8007f1c: 2150 movs r1, #80 ; 0x50 8007f1e: 208c movs r0, #140 ; 0x8c 8007f20: f7fd f818 bl 8004f54 BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 8007f24: f107 02a4 add.w r2, r7, #164 ; 0xa4 8007f28: 2303 movs r3, #3 8007f2a: 2164 movs r1, #100 ; 0x64 8007f2c: 208c movs r0, #140 ; 0x8c 8007f2e: f7fd f811 bl 8004f54 BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 8007f32: f107 0268 add.w r2, r7, #104 ; 0x68 8007f36: 2303 movs r3, #3 8007f38: 2178 movs r1, #120 ; 0x78 8007f3a: 208c movs r0, #140 ; 0x8c 8007f3c: f7fd f80a bl 8004f54 BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 8007f40: 4b3c ldr r3, [pc, #240] ; (8008034 ) 8007f42: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007f46: b29b uxth r3, r3 8007f48: 4618 mov r0, r3 8007f4a: 4b3a ldr r3, [pc, #232] ; (8008034 ) 8007f4c: 8e5b ldrh r3, [r3, #50] ; 0x32 8007f4e: b29b uxth r3, r3 8007f50: 005b lsls r3, r3, #1 8007f52: 4a38 ldr r2, [pc, #224] ; (8008034 ) 8007f54: 8c12 ldrh r2, [r2, #32] 8007f56: b292 uxth r2, r2 8007f58: 4413 add r3, r2 8007f5a: 4937 ldr r1, [pc, #220] ; (8008038 ) 8007f5c: 0102 lsls r2, r0, #4 8007f5e: 4413 add r3, r2 8007f60: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007f64: 2303 movs r3, #3 8007f66: 2150 movs r1, #80 ; 0x50 8007f68: 20dc movs r0, #220 ; 0xdc 8007f6a: f7fc fff3 bl 8004f54 BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 8007f6e: 4b31 ldr r3, [pc, #196] ; (8008034 ) 8007f70: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007f74: b29b uxth r3, r3 8007f76: 4618 mov r0, r3 8007f78: 4b2e ldr r3, [pc, #184] ; (8008034 ) 8007f7a: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8007f7e: b29b uxth r3, r3 8007f80: 005b lsls r3, r3, #1 8007f82: 4a2c ldr r2, [pc, #176] ; (8008034 ) 8007f84: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 8007f88: b292 uxth r2, r2 8007f8a: 4413 add r3, r2 8007f8c: 492a ldr r1, [pc, #168] ; (8008038 ) 8007f8e: 0102 lsls r2, r0, #4 8007f90: 4413 add r3, r2 8007f92: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007f96: 2303 movs r3, #3 8007f98: 2164 movs r1, #100 ; 0x64 8007f9a: 20dc movs r0, #220 ; 0xdc 8007f9c: f7fc ffda bl 8004f54 BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 8007fa0: 4b24 ldr r3, [pc, #144] ; (8008034 ) 8007fa2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007fa6: b29b uxth r3, r3 8007fa8: 4618 mov r0, r3 8007faa: 4b22 ldr r3, [pc, #136] ; (8008034 ) 8007fac: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 8007fb0: b29b uxth r3, r3 8007fb2: 005b lsls r3, r3, #1 8007fb4: 4a1f ldr r2, [pc, #124] ; (8008034 ) 8007fb6: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 8007fba: b292 uxth r2, r2 8007fbc: 4413 add r3, r2 8007fbe: 491e ldr r1, [pc, #120] ; (8008038 ) 8007fc0: 0102 lsls r2, r0, #4 8007fc2: 4413 add r3, r2 8007fc4: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007fc8: 2303 movs r3, #3 8007fca: 2178 movs r1, #120 ; 0x78 8007fcc: 20dc movs r0, #220 ; 0xdc 8007fce: f7fc ffc1 bl 8004f54 break; 8007fd2: f005 bcff b.w 800d9d4 if(menupos == Val_2) 8007fd6: 4b19 ldr r3, [pc, #100] ; (800803c ) 8007fd8: 781b ldrb r3, [r3, #0] 8007fda: b2db uxtb r3, r3 8007fdc: 2b09 cmp r3, #9 8007fde: f040 80b6 bne.w 800814e LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8007fe2: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007fe6: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8007fea: f7fc feed bl 8004dc8 if(focused) 8007fee: 4b14 ldr r3, [pc, #80] ; (8008040 ) 8007ff0: 781b ldrb r3, [r3, #0] 8007ff2: b2db uxtb r3, r3 8007ff4: 2b00 cmp r3, #0 8007ff6: d027 beq.n 8008048 if(blk) 8007ff8: 4b12 ldr r3, [pc, #72] ; (8008044 ) 8007ffa: 681b ldr r3, [r3, #0] 8007ffc: 2b00 cmp r3, #0 8007ffe: d03a beq.n 8008076 BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 8008000: 4b0c ldr r3, [pc, #48] ; (8008034 ) 8008002: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8008006: b29b uxth r3, r3 8008008: 4618 mov r0, r3 800800a: 4b0a ldr r3, [pc, #40] ; (8008034 ) 800800c: 8e5b ldrh r3, [r3, #50] ; 0x32 800800e: b29b uxth r3, r3 8008010: 005b lsls r3, r3, #1 8008012: 4a08 ldr r2, [pc, #32] ; (8008034 ) 8008014: 8c12 ldrh r2, [r2, #32] 8008016: b292 uxth r2, r2 8008018: 4413 add r3, r2 800801a: 4907 ldr r1, [pc, #28] ; (8008038 ) 800801c: 0102 lsls r2, r0, #4 800801e: 4413 add r3, r2 8008020: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8008024: 2303 movs r3, #3 8008026: 2150 movs r1, #80 ; 0x50 8008028: 20dc movs r0, #220 ; 0xdc 800802a: f7fc ff93 bl 8004f54 800802e: e022 b.n 8008076 8008030: ffd8aa57 .word 0xffd8aa57 8008034: 2006bca8 .word 0x2006bca8 8008038: 200200bc .word 0x200200bc 800803c: 20020010 .word 0x20020010 8008040: 200209e4 .word 0x200209e4 8008044: 2006ba78 .word 0x2006ba78 BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 8008048: 4bb1 ldr r3, [pc, #708] ; (8008310 ) 800804a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800804e: b29b uxth r3, r3 8008050: 4618 mov r0, r3 8008052: 4baf ldr r3, [pc, #700] ; (8008310 ) 8008054: 8e5b ldrh r3, [r3, #50] ; 0x32 8008056: b29b uxth r3, r3 8008058: 005b lsls r3, r3, #1 800805a: 4aad ldr r2, [pc, #692] ; (8008310 ) 800805c: 8c12 ldrh r2, [r2, #32] 800805e: b292 uxth r2, r2 8008060: 4413 add r3, r2 8008062: 49ac ldr r1, [pc, #688] ; (8008314 ) 8008064: 0102 lsls r2, r0, #4 8008066: 4413 add r3, r2 8008068: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800806c: 2303 movs r3, #3 800806e: 2150 movs r1, #80 ; 0x50 8008070: 20dc movs r0, #220 ; 0xdc 8008072: f7fc ff6f bl 8004f54 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8008076: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800807a: 48a7 ldr r0, [pc, #668] ; (8008318 ) 800807c: f7fc fea4 bl 8004dc8 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 8008080: f507 728e add.w r2, r7, #284 ; 0x11c 8008084: 2303 movs r3, #3 8008086: 213c movs r1, #60 ; 0x3c 8008088: 208c movs r0, #140 ; 0x8c 800808a: f7fc ff63 bl 8004f54 BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 800808e: f107 02e0 add.w r2, r7, #224 ; 0xe0 8008092: 2303 movs r3, #3 8008094: 2150 movs r1, #80 ; 0x50 8008096: 208c movs r0, #140 ; 0x8c 8008098: f7fc ff5c bl 8004f54 BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 800809c: f107 02a4 add.w r2, r7, #164 ; 0xa4 80080a0: 2303 movs r3, #3 80080a2: 2164 movs r1, #100 ; 0x64 80080a4: 208c movs r0, #140 ; 0x8c 80080a6: f7fc ff55 bl 8004f54 BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 80080aa: f107 0268 add.w r2, r7, #104 ; 0x68 80080ae: 2303 movs r3, #3 80080b0: 2178 movs r1, #120 ; 0x78 80080b2: 208c movs r0, #140 ; 0x8c 80080b4: f7fc ff4e bl 8004f54 BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 80080b8: 4b95 ldr r3, [pc, #596] ; (8008310 ) 80080ba: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80080be: b29b uxth r3, r3 80080c0: 4618 mov r0, r3 80080c2: 4b93 ldr r3, [pc, #588] ; (8008310 ) 80080c4: 8a5b ldrh r3, [r3, #18] 80080c6: b29b uxth r3, r3 80080c8: 005b lsls r3, r3, #1 80080ca: 4a91 ldr r2, [pc, #580] ; (8008310 ) 80080cc: 8812 ldrh r2, [r2, #0] 80080ce: b292 uxth r2, r2 80080d0: 4413 add r3, r2 80080d2: 4990 ldr r1, [pc, #576] ; (8008314 ) 80080d4: 0102 lsls r2, r0, #4 80080d6: 4413 add r3, r2 80080d8: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80080dc: 2303 movs r3, #3 80080de: 213c movs r1, #60 ; 0x3c 80080e0: 20dc movs r0, #220 ; 0xdc 80080e2: f7fc ff37 bl 8004f54 BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 80080e6: 4b8a ldr r3, [pc, #552] ; (8008310 ) 80080e8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80080ec: b29b uxth r3, r3 80080ee: 4618 mov r0, r3 80080f0: 4b87 ldr r3, [pc, #540] ; (8008310 ) 80080f2: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 80080f6: b29b uxth r3, r3 80080f8: 005b lsls r3, r3, #1 80080fa: 4a85 ldr r2, [pc, #532] ; (8008310 ) 80080fc: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 8008100: b292 uxth r2, r2 8008102: 4413 add r3, r2 8008104: 4983 ldr r1, [pc, #524] ; (8008314 ) 8008106: 0102 lsls r2, r0, #4 8008108: 4413 add r3, r2 800810a: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800810e: 2303 movs r3, #3 8008110: 2164 movs r1, #100 ; 0x64 8008112: 20dc movs r0, #220 ; 0xdc 8008114: f7fc ff1e bl 8004f54 BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 8008118: 4b7d ldr r3, [pc, #500] ; (8008310 ) 800811a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800811e: b29b uxth r3, r3 8008120: 4618 mov r0, r3 8008122: 4b7b ldr r3, [pc, #492] ; (8008310 ) 8008124: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 8008128: b29b uxth r3, r3 800812a: 005b lsls r3, r3, #1 800812c: 4a78 ldr r2, [pc, #480] ; (8008310 ) 800812e: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 8008132: b292 uxth r2, r2 8008134: 4413 add r3, r2 8008136: 4977 ldr r1, [pc, #476] ; (8008314 ) 8008138: 0102 lsls r2, r0, #4 800813a: 4413 add r3, r2 800813c: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8008140: 2303 movs r3, #3 8008142: 2178 movs r1, #120 ; 0x78 8008144: 20dc movs r0, #220 ; 0xdc 8008146: f7fc ff05 bl 8004f54 break; 800814a: f005 bc43 b.w 800d9d4 if(menupos == Val_3) 800814e: 4b73 ldr r3, [pc, #460] ; (800831c ) 8008150: 781b ldrb r3, [r3, #0] 8008152: b2db uxtb r3, r3 8008154: 2b11 cmp r3, #17 8008156: f040 80ac bne.w 80082b2 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800815a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800815e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8008162: f7fc fe31 bl 8004dc8 if(focused) 8008166: 4b6e ldr r3, [pc, #440] ; (8008320 ) 8008168: 781b ldrb r3, [r3, #0] 800816a: b2db uxtb r3, r3 800816c: 2b00 cmp r3, #0 800816e: d01d beq.n 80081ac if(blk) 8008170: 4b6c ldr r3, [pc, #432] ; (8008324 ) 8008172: 681b ldr r3, [r3, #0] 8008174: 2b00 cmp r3, #0 8008176: d032 beq.n 80081de BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 8008178: 4b65 ldr r3, [pc, #404] ; (8008310 ) 800817a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800817e: b29b uxth r3, r3 8008180: 4618 mov r0, r3 8008182: 4b63 ldr r3, [pc, #396] ; (8008310 ) 8008184: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8008188: b29b uxth r3, r3 800818a: 005b lsls r3, r3, #1 800818c: 4a60 ldr r2, [pc, #384] ; (8008310 ) 800818e: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 8008192: b292 uxth r2, r2 8008194: 4413 add r3, r2 8008196: 495f ldr r1, [pc, #380] ; (8008314 ) 8008198: 0102 lsls r2, r0, #4 800819a: 4413 add r3, r2 800819c: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80081a0: 2303 movs r3, #3 80081a2: 2164 movs r1, #100 ; 0x64 80081a4: 20dc movs r0, #220 ; 0xdc 80081a6: f7fc fed5 bl 8004f54 80081aa: e018 b.n 80081de BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 80081ac: 4b58 ldr r3, [pc, #352] ; (8008310 ) 80081ae: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80081b2: b29b uxth r3, r3 80081b4: 4618 mov r0, r3 80081b6: 4b56 ldr r3, [pc, #344] ; (8008310 ) 80081b8: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 80081bc: b29b uxth r3, r3 80081be: 005b lsls r3, r3, #1 80081c0: 4a53 ldr r2, [pc, #332] ; (8008310 ) 80081c2: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 80081c6: b292 uxth r2, r2 80081c8: 4413 add r3, r2 80081ca: 4952 ldr r1, [pc, #328] ; (8008314 ) 80081cc: 0102 lsls r2, r0, #4 80081ce: 4413 add r3, r2 80081d0: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80081d4: 2303 movs r3, #3 80081d6: 2164 movs r1, #100 ; 0x64 80081d8: 20dc movs r0, #220 ; 0xdc 80081da: f7fc febb bl 8004f54 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 80081de: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80081e2: 484d ldr r0, [pc, #308] ; (8008318 ) 80081e4: f7fc fdf0 bl 8004dc8 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 80081e8: f507 728e add.w r2, r7, #284 ; 0x11c 80081ec: 2303 movs r3, #3 80081ee: 213c movs r1, #60 ; 0x3c 80081f0: 208c movs r0, #140 ; 0x8c 80081f2: f7fc feaf bl 8004f54 BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 80081f6: f107 02e0 add.w r2, r7, #224 ; 0xe0 80081fa: 2303 movs r3, #3 80081fc: 2150 movs r1, #80 ; 0x50 80081fe: 208c movs r0, #140 ; 0x8c 8008200: f7fc fea8 bl 8004f54 BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 8008204: f107 02a4 add.w r2, r7, #164 ; 0xa4 8008208: 2303 movs r3, #3 800820a: 2164 movs r1, #100 ; 0x64 800820c: 208c movs r0, #140 ; 0x8c 800820e: f7fc fea1 bl 8004f54 BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 8008212: f107 0268 add.w r2, r7, #104 ; 0x68 8008216: 2303 movs r3, #3 8008218: 2178 movs r1, #120 ; 0x78 800821a: 208c movs r0, #140 ; 0x8c 800821c: f7fc fe9a bl 8004f54 BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 8008220: 4b3b ldr r3, [pc, #236] ; (8008310 ) 8008222: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8008226: b29b uxth r3, r3 8008228: 4618 mov r0, r3 800822a: 4b39 ldr r3, [pc, #228] ; (8008310 ) 800822c: 8a5b ldrh r3, [r3, #18] 800822e: b29b uxth r3, r3 8008230: 005b lsls r3, r3, #1 8008232: 4a37 ldr r2, [pc, #220] ; (8008310 ) 8008234: 8812 ldrh r2, [r2, #0] 8008236: b292 uxth r2, r2 8008238: 4413 add r3, r2 800823a: 4936 ldr r1, [pc, #216] ; (8008314 ) 800823c: 0102 lsls r2, r0, #4 800823e: 4413 add r3, r2 8008240: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8008244: 2303 movs r3, #3 8008246: 213c movs r1, #60 ; 0x3c 8008248: 20dc movs r0, #220 ; 0xdc 800824a: f7fc fe83 bl 8004f54 BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 800824e: 4b30 ldr r3, [pc, #192] ; (8008310 ) 8008250: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8008254: b29b uxth r3, r3 8008256: 4618 mov r0, r3 8008258: 4b2d ldr r3, [pc, #180] ; (8008310 ) 800825a: 8e5b ldrh r3, [r3, #50] ; 0x32 800825c: b29b uxth r3, r3 800825e: 005b lsls r3, r3, #1 8008260: 4a2b ldr r2, [pc, #172] ; (8008310 ) 8008262: 8c12 ldrh r2, [r2, #32] 8008264: b292 uxth r2, r2 8008266: 4413 add r3, r2 8008268: 492a ldr r1, [pc, #168] ; (8008314 ) 800826a: 0102 lsls r2, r0, #4 800826c: 4413 add r3, r2 800826e: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8008272: 2303 movs r3, #3 8008274: 2150 movs r1, #80 ; 0x50 8008276: 20dc movs r0, #220 ; 0xdc 8008278: f7fc fe6c bl 8004f54 BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 800827c: 4b24 ldr r3, [pc, #144] ; (8008310 ) 800827e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8008282: b29b uxth r3, r3 8008284: 4618 mov r0, r3 8008286: 4b22 ldr r3, [pc, #136] ; (8008310 ) 8008288: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 800828c: b29b uxth r3, r3 800828e: 005b lsls r3, r3, #1 8008290: 4a1f ldr r2, [pc, #124] ; (8008310 ) 8008292: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 8008296: b292 uxth r2, r2 8008298: 4413 add r3, r2 800829a: 491e ldr r1, [pc, #120] ; (8008314 ) 800829c: 0102 lsls r2, r0, #4 800829e: 4413 add r3, r2 80082a0: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80082a4: 2303 movs r3, #3 80082a6: 2178 movs r1, #120 ; 0x78 80082a8: 20dc movs r0, #220 ; 0xdc 80082aa: f7fc fe53 bl 8004f54 break; 80082ae: f005 bb91 b.w 800d9d4 if(menupos == Val_4) 80082b2: 4b1a ldr r3, [pc, #104] ; (800831c ) 80082b4: 781b ldrb r3, [r3, #0] 80082b6: b2db uxtb r3, r3 80082b8: 2b19 cmp r3, #25 80082ba: f040 80b8 bne.w 800842e LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 80082be: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80082c2: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 80082c6: f7fc fd7f bl 8004dc8 if(focused) 80082ca: 4b15 ldr r3, [pc, #84] ; (8008320 ) 80082cc: 781b ldrb r3, [r3, #0] 80082ce: b2db uxtb r3, r3 80082d0: 2b00 cmp r3, #0 80082d2: d029 beq.n 8008328 if(blk) 80082d4: 4b13 ldr r3, [pc, #76] ; (8008324 ) 80082d6: 681b ldr r3, [r3, #0] 80082d8: 2b00 cmp r3, #0 80082da: d03e beq.n 800835a BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 80082dc: 4b0c ldr r3, [pc, #48] ; (8008310 ) 80082de: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80082e2: b29b uxth r3, r3 80082e4: 4618 mov r0, r3 80082e6: 4b0a ldr r3, [pc, #40] ; (8008310 ) 80082e8: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 80082ec: b29b uxth r3, r3 80082ee: 005b lsls r3, r3, #1 80082f0: 4a07 ldr r2, [pc, #28] ; (8008310 ) 80082f2: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 80082f6: b292 uxth r2, r2 80082f8: 4413 add r3, r2 80082fa: 4906 ldr r1, [pc, #24] ; (8008314 ) 80082fc: 0102 lsls r2, r0, #4 80082fe: 4413 add r3, r2 8008300: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8008304: 2303 movs r3, #3 8008306: 2178 movs r1, #120 ; 0x78 8008308: 20dc movs r0, #220 ; 0xdc 800830a: f7fc fe23 bl 8004f54 800830e: e024 b.n 800835a 8008310: 2006bca8 .word 0x2006bca8 8008314: 200200bc .word 0x200200bc 8008318: ffd8aa57 .word 0xffd8aa57 800831c: 20020010 .word 0x20020010 8008320: 200209e4 .word 0x200209e4 8008324: 2006ba78 .word 0x2006ba78 BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 8008328: 4bb0 ldr r3, [pc, #704] ; (80085ec ) 800832a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800832e: b29b uxth r3, r3 8008330: 4618 mov r0, r3 8008332: 4bae ldr r3, [pc, #696] ; (80085ec ) 8008334: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 8008338: b29b uxth r3, r3 800833a: 005b lsls r3, r3, #1 800833c: 4aab ldr r2, [pc, #684] ; (80085ec ) 800833e: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 8008342: b292 uxth r2, r2 8008344: 4413 add r3, r2 8008346: 49aa ldr r1, [pc, #680] ; (80085f0 ) 8008348: 0102 lsls r2, r0, #4 800834a: 4413 add r3, r2 800834c: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8008350: 2303 movs r3, #3 8008352: 2178 movs r1, #120 ; 0x78 8008354: 20dc movs r0, #220 ; 0xdc 8008356: f7fc fdfd bl 8004f54 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800835a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800835e: 48a5 ldr r0, [pc, #660] ; (80085f4 ) 8008360: f7fc fd32 bl 8004dc8 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 8008364: f507 728e add.w r2, r7, #284 ; 0x11c 8008368: 2303 movs r3, #3 800836a: 213c movs r1, #60 ; 0x3c 800836c: 208c movs r0, #140 ; 0x8c 800836e: f7fc fdf1 bl 8004f54 BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 8008372: f107 02e0 add.w r2, r7, #224 ; 0xe0 8008376: 2303 movs r3, #3 8008378: 2150 movs r1, #80 ; 0x50 800837a: 208c movs r0, #140 ; 0x8c 800837c: f7fc fdea bl 8004f54 BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 8008380: f107 02a4 add.w r2, r7, #164 ; 0xa4 8008384: 2303 movs r3, #3 8008386: 2164 movs r1, #100 ; 0x64 8008388: 208c movs r0, #140 ; 0x8c 800838a: f7fc fde3 bl 8004f54 BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 800838e: f107 0268 add.w r2, r7, #104 ; 0x68 8008392: 2303 movs r3, #3 8008394: 2178 movs r1, #120 ; 0x78 8008396: 208c movs r0, #140 ; 0x8c 8008398: f7fc fddc bl 8004f54 BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 800839c: 4b93 ldr r3, [pc, #588] ; (80085ec ) 800839e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80083a2: b29b uxth r3, r3 80083a4: 4618 mov r0, r3 80083a6: 4b91 ldr r3, [pc, #580] ; (80085ec ) 80083a8: 8a5b ldrh r3, [r3, #18] 80083aa: b29b uxth r3, r3 80083ac: 005b lsls r3, r3, #1 80083ae: 4a8f ldr r2, [pc, #572] ; (80085ec ) 80083b0: 8812 ldrh r2, [r2, #0] 80083b2: b292 uxth r2, r2 80083b4: 4413 add r3, r2 80083b6: 498e ldr r1, [pc, #568] ; (80085f0 ) 80083b8: 0102 lsls r2, r0, #4 80083ba: 4413 add r3, r2 80083bc: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80083c0: 2303 movs r3, #3 80083c2: 213c movs r1, #60 ; 0x3c 80083c4: 20dc movs r0, #220 ; 0xdc 80083c6: f7fc fdc5 bl 8004f54 BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 80083ca: 4b88 ldr r3, [pc, #544] ; (80085ec ) 80083cc: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80083d0: b29b uxth r3, r3 80083d2: 4618 mov r0, r3 80083d4: 4b85 ldr r3, [pc, #532] ; (80085ec ) 80083d6: 8e5b ldrh r3, [r3, #50] ; 0x32 80083d8: b29b uxth r3, r3 80083da: 005b lsls r3, r3, #1 80083dc: 4a83 ldr r2, [pc, #524] ; (80085ec ) 80083de: 8c12 ldrh r2, [r2, #32] 80083e0: b292 uxth r2, r2 80083e2: 4413 add r3, r2 80083e4: 4982 ldr r1, [pc, #520] ; (80085f0 ) 80083e6: 0102 lsls r2, r0, #4 80083e8: 4413 add r3, r2 80083ea: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80083ee: 2303 movs r3, #3 80083f0: 2150 movs r1, #80 ; 0x50 80083f2: 20dc movs r0, #220 ; 0xdc 80083f4: f7fc fdae bl 8004f54 BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 80083f8: 4b7c ldr r3, [pc, #496] ; (80085ec ) 80083fa: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80083fe: b29b uxth r3, r3 8008400: 4618 mov r0, r3 8008402: 4b7a ldr r3, [pc, #488] ; (80085ec ) 8008404: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8008408: b29b uxth r3, r3 800840a: 005b lsls r3, r3, #1 800840c: 4a77 ldr r2, [pc, #476] ; (80085ec ) 800840e: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 8008412: b292 uxth r2, r2 8008414: 4413 add r3, r2 8008416: 4976 ldr r1, [pc, #472] ; (80085f0 ) 8008418: 0102 lsls r2, r0, #4 800841a: 4413 add r3, r2 800841c: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8008420: 2303 movs r3, #3 8008422: 2164 movs r1, #100 ; 0x64 8008424: 20dc movs r0, #220 ; 0xdc 8008426: f7fc fd95 bl 8004f54 break; 800842a: f005 bad3 b.w 800d9d4 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800842e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8008432: 4870 ldr r0, [pc, #448] ; (80085f4 ) 8008434: f7fc fcc8 bl 8004dc8 BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 8008438: 4b6c ldr r3, [pc, #432] ; (80085ec ) 800843a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800843e: b29b uxth r3, r3 8008440: 4618 mov r0, r3 8008442: 4b6a ldr r3, [pc, #424] ; (80085ec ) 8008444: 8a5b ldrh r3, [r3, #18] 8008446: b29b uxth r3, r3 8008448: 005b lsls r3, r3, #1 800844a: 4a68 ldr r2, [pc, #416] ; (80085ec ) 800844c: 8812 ldrh r2, [r2, #0] 800844e: b292 uxth r2, r2 8008450: 4413 add r3, r2 8008452: 4967 ldr r1, [pc, #412] ; (80085f0 ) 8008454: 0102 lsls r2, r0, #4 8008456: 4413 add r3, r2 8008458: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800845c: 2303 movs r3, #3 800845e: 213c movs r1, #60 ; 0x3c 8008460: 20dc movs r0, #220 ; 0xdc 8008462: f7fc fd77 bl 8004f54 BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 8008466: 4b61 ldr r3, [pc, #388] ; (80085ec ) 8008468: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800846c: b29b uxth r3, r3 800846e: 4618 mov r0, r3 8008470: 4b5e ldr r3, [pc, #376] ; (80085ec ) 8008472: 8e5b ldrh r3, [r3, #50] ; 0x32 8008474: b29b uxth r3, r3 8008476: 005b lsls r3, r3, #1 8008478: 4a5c ldr r2, [pc, #368] ; (80085ec ) 800847a: 8c12 ldrh r2, [r2, #32] 800847c: b292 uxth r2, r2 800847e: 4413 add r3, r2 8008480: 495b ldr r1, [pc, #364] ; (80085f0 ) 8008482: 0102 lsls r2, r0, #4 8008484: 4413 add r3, r2 8008486: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800848a: 2303 movs r3, #3 800848c: 2150 movs r1, #80 ; 0x50 800848e: 20dc movs r0, #220 ; 0xdc 8008490: f7fc fd60 bl 8004f54 BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 8008494: 4b55 ldr r3, [pc, #340] ; (80085ec ) 8008496: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800849a: b29b uxth r3, r3 800849c: 4618 mov r0, r3 800849e: 4b53 ldr r3, [pc, #332] ; (80085ec ) 80084a0: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 80084a4: b29b uxth r3, r3 80084a6: 005b lsls r3, r3, #1 80084a8: 4a50 ldr r2, [pc, #320] ; (80085ec ) 80084aa: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 80084ae: b292 uxth r2, r2 80084b0: 4413 add r3, r2 80084b2: 494f ldr r1, [pc, #316] ; (80085f0 ) 80084b4: 0102 lsls r2, r0, #4 80084b6: 4413 add r3, r2 80084b8: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80084bc: 2303 movs r3, #3 80084be: 2164 movs r1, #100 ; 0x64 80084c0: 20dc movs r0, #220 ; 0xdc 80084c2: f7fc fd47 bl 8004f54 BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 80084c6: 4b49 ldr r3, [pc, #292] ; (80085ec ) 80084c8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80084cc: b29b uxth r3, r3 80084ce: 4618 mov r0, r3 80084d0: 4b46 ldr r3, [pc, #280] ; (80085ec ) 80084d2: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 80084d6: b29b uxth r3, r3 80084d8: 005b lsls r3, r3, #1 80084da: 4a44 ldr r2, [pc, #272] ; (80085ec ) 80084dc: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 80084e0: b292 uxth r2, r2 80084e2: 4413 add r3, r2 80084e4: 4942 ldr r1, [pc, #264] ; (80085f0 ) 80084e6: 0102 lsls r2, r0, #4 80084e8: 4413 add r3, r2 80084ea: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80084ee: 2303 movs r3, #3 80084f0: 2178 movs r1, #120 ; 0x78 80084f2: 20dc movs r0, #220 ; 0xdc 80084f4: f7fc fd2e bl 8004f54 if(menupos >= Kikdt_1 && menupos <= Kpt_1) 80084f8: 4b3f ldr r3, [pc, #252] ; (80085f8 ) 80084fa: 781b ldrb r3, [r3, #0] 80084fc: b2db uxtb r3, r3 80084fe: 2b01 cmp r3, #1 8008500: f241 8152 bls.w 80097a8 8008504: 4b3c ldr r3, [pc, #240] ; (80085f8 ) 8008506: 781b ldrb r3, [r3, #0] 8008508: b2db uxtb r3, r3 800850a: 2b07 cmp r3, #7 800850c: f201 814c bhi.w 80097a8 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8008510: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8008514: 4837 ldr r0, [pc, #220] ; (80085f4 ) 8008516: f7fc fc57 bl 8004dc8 BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 800851a: f107 02e0 add.w r2, r7, #224 ; 0xe0 800851e: 2303 movs r3, #3 8008520: 2150 movs r1, #80 ; 0x50 8008522: 208c movs r0, #140 ; 0x8c 8008524: f7fc fd16 bl 8004f54 BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 8008528: f107 02a4 add.w r2, r7, #164 ; 0xa4 800852c: 2303 movs r3, #3 800852e: 2164 movs r1, #100 ; 0x64 8008530: 208c movs r0, #140 ; 0x8c 8008532: f7fc fd0f bl 8004f54 BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 8008536: f107 0268 add.w r2, r7, #104 ; 0x68 800853a: 2303 movs r3, #3 800853c: 2178 movs r1, #120 ; 0x78 800853e: 208c movs r0, #140 ; 0x8c 8008540: f7fc fd08 bl 8004f54 if(menupos == Kikdt_1) 8008544: 4b2c ldr r3, [pc, #176] ; (80085f8 ) 8008546: 781b ldrb r3, [r3, #0] 8008548: b2db uxtb r3, r3 800854a: 2b02 cmp r3, #2 800854c: f040 814f bne.w 80087ee LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8008550: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8008554: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8008558: f7fc fc36 bl 8004dc8 if(blk) 800855c: 4b27 ldr r3, [pc, #156] ; (80085fc ) 800855e: 681b ldr r3, [r3, #0] 8008560: 2b00 cmp r3, #0 8008562: d00b beq.n 800857c BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008564: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008568: b2db uxtb r3, r3 800856a: 461a mov r2, r3 800856c: 4b24 ldr r3, [pc, #144] ; (8008600 ) 800856e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008572: 2303 movs r3, #3 8008574: 213c movs r1, #60 ; 0x3c 8008576: 208c movs r0, #140 ; 0x8c 8008578: f7fc fcec bl 8004f54 if(!ipt1) 800857c: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008580: b2db uxtb r3, r3 8008582: 2b00 cmp r3, #0 8008584: d13e bne.n 8008604 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008586: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 800858a: b2db uxtb r3, r3 800858c: 461a mov r2, r3 800858e: 4b1c ldr r3, [pc, #112] ; (8008600 ) 8008590: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008594: 2303 movs r3, #3 8008596: 213c movs r1, #60 ; 0x3c 8008598: 2093 movs r0, #147 ; 0x93 800859a: f7fc fcdb bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 800859e: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 80085a2: b2db uxtb r3, r3 80085a4: 461a mov r2, r3 80085a6: 4b16 ldr r3, [pc, #88] ; (8008600 ) 80085a8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80085ac: 2303 movs r3, #3 80085ae: 213c movs r1, #60 ; 0x3c 80085b0: 209a movs r0, #154 ; 0x9a 80085b2: f7fc fccf bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 80085b6: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 80085ba: b2db uxtb r3, r3 80085bc: 461a mov r2, r3 80085be: 4b10 ldr r3, [pc, #64] ; (8008600 ) 80085c0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80085c4: 2303 movs r3, #3 80085c6: 213c movs r1, #60 ; 0x3c 80085c8: 20a1 movs r0, #161 ; 0xa1 80085ca: f7fc fcc3 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE); 80085ce: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 80085d2: b2db uxtb r3, r3 80085d4: 461a mov r2, r3 80085d6: 4b0a ldr r3, [pc, #40] ; (8008600 ) 80085d8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80085dc: 2303 movs r3, #3 80085de: 213c movs r1, #60 ; 0x3c 80085e0: 20a8 movs r0, #168 ; 0xa8 80085e2: f7fc fcb7 bl 8004f54 if(menupos == Kikdt_1) 80085e6: f004 bce2 b.w 800cfae 80085ea: bf00 nop 80085ec: 2006bca8 .word 0x2006bca8 80085f0: 200200bc .word 0x200200bc 80085f4: ffd8aa57 .word 0xffd8aa57 80085f8: 20020010 .word 0x20020010 80085fc: 2006ba78 .word 0x2006ba78 8008600: 2002096c .word 0x2002096c if(ipt1 == 1) 8008604: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008608: b2db uxtb r3, r3 800860a: 2b01 cmp r3, #1 800860c: d137 bne.n 800867e BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 800860e: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008612: b2db uxtb r3, r3 8008614: 461a mov r2, r3 8008616: 4bc6 ldr r3, [pc, #792] ; (8008930 ) 8008618: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800861c: 2303 movs r3, #3 800861e: 213c movs r1, #60 ; 0x3c 8008620: 2093 movs r0, #147 ; 0x93 8008622: f7fc fc97 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008626: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 800862a: b2db uxtb r3, r3 800862c: 461a mov r2, r3 800862e: 4bc0 ldr r3, [pc, #768] ; (8008930 ) 8008630: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008634: 2303 movs r3, #3 8008636: 213c movs r1, #60 ; 0x3c 8008638: 209a movs r0, #154 ; 0x9a 800863a: f7fc fc8b bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 800863e: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008642: b2db uxtb r3, r3 8008644: 461a mov r2, r3 8008646: 4bba ldr r3, [pc, #744] ; (8008930 ) 8008648: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800864c: 2303 movs r3, #3 800864e: 213c movs r1, #60 ; 0x3c 8008650: 20a1 movs r0, #161 ; 0xa1 8008652: f7fc fc7f bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE); 8008656: 2303 movs r3, #3 8008658: 4ab6 ldr r2, [pc, #728] ; (8008934 ) 800865a: 213c movs r1, #60 ; 0x3c 800865c: 20a8 movs r0, #168 ; 0xa8 800865e: f7fc fc79 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008662: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008666: b2db uxtb r3, r3 8008668: 461a mov r2, r3 800866a: 4bb1 ldr r3, [pc, #708] ; (8008930 ) 800866c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008670: 2303 movs r3, #3 8008672: 213c movs r1, #60 ; 0x3c 8008674: 20af movs r0, #175 ; 0xaf 8008676: f7fc fc6d bl 8004f54 if(menupos == Kikdt_1) 800867a: f004 bc98 b.w 800cfae if(ipt1 == 2) 800867e: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008682: b2db uxtb r3, r3 8008684: 2b02 cmp r3, #2 8008686: d137 bne.n 80086f8 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008688: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 800868c: b2db uxtb r3, r3 800868e: 461a mov r2, r3 8008690: 4ba7 ldr r3, [pc, #668] ; (8008930 ) 8008692: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008696: 2303 movs r3, #3 8008698: 213c movs r1, #60 ; 0x3c 800869a: 2093 movs r0, #147 ; 0x93 800869c: f7fc fc5a bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 80086a0: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 80086a4: b2db uxtb r3, r3 80086a6: 461a mov r2, r3 80086a8: 4ba1 ldr r3, [pc, #644] ; (8008930 ) 80086aa: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80086ae: 2303 movs r3, #3 80086b0: 213c movs r1, #60 ; 0x3c 80086b2: 209a movs r0, #154 ; 0x9a 80086b4: f7fc fc4e bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE); 80086b8: 2303 movs r3, #3 80086ba: 4a9e ldr r2, [pc, #632] ; (8008934 ) 80086bc: 213c movs r1, #60 ; 0x3c 80086be: 20a1 movs r0, #161 ; 0xa1 80086c0: f7fc fc48 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 80086c4: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 80086c8: b2db uxtb r3, r3 80086ca: 461a mov r2, r3 80086cc: 4b98 ldr r3, [pc, #608] ; (8008930 ) 80086ce: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80086d2: 2303 movs r3, #3 80086d4: 213c movs r1, #60 ; 0x3c 80086d6: 20a8 movs r0, #168 ; 0xa8 80086d8: f7fc fc3c bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 80086dc: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 80086e0: b2db uxtb r3, r3 80086e2: 461a mov r2, r3 80086e4: 4b92 ldr r3, [pc, #584] ; (8008930 ) 80086e6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80086ea: 2303 movs r3, #3 80086ec: 213c movs r1, #60 ; 0x3c 80086ee: 20af movs r0, #175 ; 0xaf 80086f0: f7fc fc30 bl 8004f54 if(menupos == Kikdt_1) 80086f4: f004 bc5b b.w 800cfae if(ipt1 == 3) 80086f8: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 80086fc: b2db uxtb r3, r3 80086fe: 2b03 cmp r3, #3 8008700: d137 bne.n 8008772 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008702: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008706: b2db uxtb r3, r3 8008708: 461a mov r2, r3 800870a: 4b89 ldr r3, [pc, #548] ; (8008930 ) 800870c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008710: 2303 movs r3, #3 8008712: 213c movs r1, #60 ; 0x3c 8008714: 2093 movs r0, #147 ; 0x93 8008716: f7fc fc1d bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE); 800871a: 2303 movs r3, #3 800871c: 4a85 ldr r2, [pc, #532] ; (8008934 ) 800871e: 213c movs r1, #60 ; 0x3c 8008720: 209a movs r0, #154 ; 0x9a 8008722: f7fc fc17 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008726: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 800872a: b2db uxtb r3, r3 800872c: 461a mov r2, r3 800872e: 4b80 ldr r3, [pc, #512] ; (8008930 ) 8008730: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008734: 2303 movs r3, #3 8008736: 213c movs r1, #60 ; 0x3c 8008738: 20a1 movs r0, #161 ; 0xa1 800873a: f7fc fc0b bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 800873e: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008742: b2db uxtb r3, r3 8008744: 461a mov r2, r3 8008746: 4b7a ldr r3, [pc, #488] ; (8008930 ) 8008748: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800874c: 2303 movs r3, #3 800874e: 213c movs r1, #60 ; 0x3c 8008750: 20a8 movs r0, #168 ; 0xa8 8008752: f7fc fbff bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008756: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 800875a: b2db uxtb r3, r3 800875c: 461a mov r2, r3 800875e: 4b74 ldr r3, [pc, #464] ; (8008930 ) 8008760: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008764: 2303 movs r3, #3 8008766: 213c movs r1, #60 ; 0x3c 8008768: 20af movs r0, #175 ; 0xaf 800876a: f7fc fbf3 bl 8004f54 if(menupos == Kikdt_1) 800876e: f004 bc1e b.w 800cfae if(ipt1 == 4) 8008772: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008776: b2db uxtb r3, r3 8008778: 2b04 cmp r3, #4 800877a: f044 8418 bne.w 800cfae BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE); 800877e: 2303 movs r3, #3 8008780: 4a6c ldr r2, [pc, #432] ; (8008934 ) 8008782: 213c movs r1, #60 ; 0x3c 8008784: 2093 movs r0, #147 ; 0x93 8008786: f7fc fbe5 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE); 800878a: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 800878e: b2db uxtb r3, r3 8008790: 461a mov r2, r3 8008792: 4b67 ldr r3, [pc, #412] ; (8008930 ) 8008794: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008798: 2303 movs r3, #3 800879a: 213c movs r1, #60 ; 0x3c 800879c: 209a movs r0, #154 ; 0x9a 800879e: f7fc fbd9 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 80087a2: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 80087a6: b2db uxtb r3, r3 80087a8: 461a mov r2, r3 80087aa: 4b61 ldr r3, [pc, #388] ; (8008930 ) 80087ac: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80087b0: 2303 movs r3, #3 80087b2: 213c movs r1, #60 ; 0x3c 80087b4: 20a1 movs r0, #161 ; 0xa1 80087b6: f7fc fbcd bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 80087ba: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 80087be: b2db uxtb r3, r3 80087c0: 461a mov r2, r3 80087c2: 4b5b ldr r3, [pc, #364] ; (8008930 ) 80087c4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80087c8: 2303 movs r3, #3 80087ca: 213c movs r1, #60 ; 0x3c 80087cc: 20a8 movs r0, #168 ; 0xa8 80087ce: f7fc fbc1 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 80087d2: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 80087d6: b2db uxtb r3, r3 80087d8: 461a mov r2, r3 80087da: 4b55 ldr r3, [pc, #340] ; (8008930 ) 80087dc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80087e0: 2303 movs r3, #3 80087e2: 213c movs r1, #60 ; 0x3c 80087e4: 20af movs r0, #175 ; 0xaf 80087e6: f7fc fbb5 bl 8004f54 if(menupos == Kikdt_1) 80087ea: f004 bbe0 b.w 800cfae if(menupos == Kikt_1) 80087ee: 4b52 ldr r3, [pc, #328] ; (8008938 ) 80087f0: 781b ldrb r3, [r3, #0] 80087f2: b2db uxtb r3, r3 80087f4: 2b03 cmp r3, #3 80087f6: f040 818b bne.w 8008b10 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 80087fa: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80087fe: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8008802: f7fc fae1 bl 8004dc8 if(!ipt1) 8008806: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 800880a: b2db uxtb r3, r3 800880c: 2b00 cmp r3, #0 800880e: d141 bne.n 8008894 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008810: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008814: b2db uxtb r3, r3 8008816: 461a mov r2, r3 8008818: 4b45 ldr r3, [pc, #276] ; (8008930 ) 800881a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800881e: 2303 movs r3, #3 8008820: 213c movs r1, #60 ; 0x3c 8008822: 208c movs r0, #140 ; 0x8c 8008824: f7fc fb96 bl 8004f54 if(blk) 8008828: 4b44 ldr r3, [pc, #272] ; (800893c ) 800882a: 681b ldr r3, [r3, #0] 800882c: 2b00 cmp r3, #0 800882e: d00b beq.n 8008848 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008830: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008834: b2db uxtb r3, r3 8008836: 461a mov r2, r3 8008838: 4b3d ldr r3, [pc, #244] ; (8008930 ) 800883a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800883e: 2303 movs r3, #3 8008840: 213c movs r1, #60 ; 0x3c 8008842: 2093 movs r0, #147 ; 0x93 8008844: f7fc fb86 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008848: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 800884c: b2db uxtb r3, r3 800884e: 461a mov r2, r3 8008850: 4b37 ldr r3, [pc, #220] ; (8008930 ) 8008852: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008856: 2303 movs r3, #3 8008858: 213c movs r1, #60 ; 0x3c 800885a: 209a movs r0, #154 ; 0x9a 800885c: f7fc fb7a bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008860: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008864: b2db uxtb r3, r3 8008866: 461a mov r2, r3 8008868: 4b31 ldr r3, [pc, #196] ; (8008930 ) 800886a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800886e: 2303 movs r3, #3 8008870: 213c movs r1, #60 ; 0x3c 8008872: 20a1 movs r0, #161 ; 0xa1 8008874: f7fc fb6e bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008878: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 800887c: b2db uxtb r3, r3 800887e: 461a mov r2, r3 8008880: 4b2b ldr r3, [pc, #172] ; (8008930 ) 8008882: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008886: 2303 movs r3, #3 8008888: 213c movs r1, #60 ; 0x3c 800888a: 20a8 movs r0, #168 ; 0xa8 800888c: f7fc fb62 bl 8004f54 if(menupos == Kikdt_1) 8008890: f004 bb8d b.w 800cfae if(ipt1 == 1) 8008894: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008898: b2db uxtb r3, r3 800889a: 2b01 cmp r3, #1 800889c: d150 bne.n 8008940 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 800889e: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 80088a2: b2db uxtb r3, r3 80088a4: 461a mov r2, r3 80088a6: 4b22 ldr r3, [pc, #136] ; (8008930 ) 80088a8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80088ac: 2303 movs r3, #3 80088ae: 213c movs r1, #60 ; 0x3c 80088b0: 208c movs r0, #140 ; 0x8c 80088b2: f7fc fb4f bl 8004f54 if(blk) 80088b6: 4b21 ldr r3, [pc, #132] ; (800893c ) 80088b8: 681b ldr r3, [r3, #0] 80088ba: 2b00 cmp r3, #0 80088bc: d00b beq.n 80088d6 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 80088be: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 80088c2: b2db uxtb r3, r3 80088c4: 461a mov r2, r3 80088c6: 4b1a ldr r3, [pc, #104] ; (8008930 ) 80088c8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80088cc: 2303 movs r3, #3 80088ce: 213c movs r1, #60 ; 0x3c 80088d0: 2093 movs r0, #147 ; 0x93 80088d2: f7fc fb3f bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 80088d6: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 80088da: b2db uxtb r3, r3 80088dc: 461a mov r2, r3 80088de: 4b14 ldr r3, [pc, #80] ; (8008930 ) 80088e0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80088e4: 2303 movs r3, #3 80088e6: 213c movs r1, #60 ; 0x3c 80088e8: 209a movs r0, #154 ; 0x9a 80088ea: f7fc fb33 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 80088ee: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 80088f2: b2db uxtb r3, r3 80088f4: 461a mov r2, r3 80088f6: 4b0e ldr r3, [pc, #56] ; (8008930 ) 80088f8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80088fc: 2303 movs r3, #3 80088fe: 213c movs r1, #60 ; 0x3c 8008900: 20a1 movs r0, #161 ; 0xa1 8008902: f7fc fb27 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE); 8008906: 2303 movs r3, #3 8008908: 4a0a ldr r2, [pc, #40] ; (8008934 ) 800890a: 213c movs r1, #60 ; 0x3c 800890c: 20a8 movs r0, #168 ; 0xa8 800890e: f7fc fb21 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008912: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008916: b2db uxtb r3, r3 8008918: 461a mov r2, r3 800891a: 4b05 ldr r3, [pc, #20] ; (8008930 ) 800891c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008920: 2303 movs r3, #3 8008922: 213c movs r1, #60 ; 0x3c 8008924: 20af movs r0, #175 ; 0xaf 8008926: f7fc fb15 bl 8004f54 if(menupos == Kikdt_1) 800892a: f004 bb40 b.w 800cfae 800892e: bf00 nop 8008930: 2002096c .word 0x2002096c 8008934: 080181c8 .word 0x080181c8 8008938: 20020010 .word 0x20020010 800893c: 2006ba78 .word 0x2006ba78 if(ipt1 == 2) 8008940: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008944: b2db uxtb r3, r3 8008946: 2b02 cmp r3, #2 8008948: d147 bne.n 80089da BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 800894a: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 800894e: b2db uxtb r3, r3 8008950: 461a mov r2, r3 8008952: 4bbf ldr r3, [pc, #764] ; (8008c50 ) 8008954: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008958: 2303 movs r3, #3 800895a: 213c movs r1, #60 ; 0x3c 800895c: 208c movs r0, #140 ; 0x8c 800895e: f7fc faf9 bl 8004f54 if(blk) 8008962: 4bbc ldr r3, [pc, #752] ; (8008c54 ) 8008964: 681b ldr r3, [r3, #0] 8008966: 2b00 cmp r3, #0 8008968: d00b beq.n 8008982 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 800896a: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 800896e: b2db uxtb r3, r3 8008970: 461a mov r2, r3 8008972: 4bb7 ldr r3, [pc, #732] ; (8008c50 ) 8008974: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008978: 2303 movs r3, #3 800897a: 213c movs r1, #60 ; 0x3c 800897c: 2093 movs r0, #147 ; 0x93 800897e: f7fc fae9 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008982: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008986: b2db uxtb r3, r3 8008988: 461a mov r2, r3 800898a: 4bb1 ldr r3, [pc, #708] ; (8008c50 ) 800898c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008990: 2303 movs r3, #3 8008992: 213c movs r1, #60 ; 0x3c 8008994: 209a movs r0, #154 ; 0x9a 8008996: f7fc fadd bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE); 800899a: 2303 movs r3, #3 800899c: 4aae ldr r2, [pc, #696] ; (8008c58 ) 800899e: 213c movs r1, #60 ; 0x3c 80089a0: 20a1 movs r0, #161 ; 0xa1 80089a2: f7fc fad7 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 80089a6: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 80089aa: b2db uxtb r3, r3 80089ac: 461a mov r2, r3 80089ae: 4ba8 ldr r3, [pc, #672] ; (8008c50 ) 80089b0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80089b4: 2303 movs r3, #3 80089b6: 213c movs r1, #60 ; 0x3c 80089b8: 20a8 movs r0, #168 ; 0xa8 80089ba: f7fc facb bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 80089be: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 80089c2: b2db uxtb r3, r3 80089c4: 461a mov r2, r3 80089c6: 4ba2 ldr r3, [pc, #648] ; (8008c50 ) 80089c8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80089cc: 2303 movs r3, #3 80089ce: 213c movs r1, #60 ; 0x3c 80089d0: 20af movs r0, #175 ; 0xaf 80089d2: f7fc fabf bl 8004f54 if(menupos == Kikdt_1) 80089d6: f004 baea b.w 800cfae if(ipt1 == 3) 80089da: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 80089de: b2db uxtb r3, r3 80089e0: 2b03 cmp r3, #3 80089e2: d147 bne.n 8008a74 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 80089e4: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 80089e8: b2db uxtb r3, r3 80089ea: 461a mov r2, r3 80089ec: 4b98 ldr r3, [pc, #608] ; (8008c50 ) 80089ee: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80089f2: 2303 movs r3, #3 80089f4: 213c movs r1, #60 ; 0x3c 80089f6: 208c movs r0, #140 ; 0x8c 80089f8: f7fc faac bl 8004f54 if(blk) 80089fc: 4b95 ldr r3, [pc, #596] ; (8008c54 ) 80089fe: 681b ldr r3, [r3, #0] 8008a00: 2b00 cmp r3, #0 8008a02: d00b beq.n 8008a1c BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008a04: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008a08: b2db uxtb r3, r3 8008a0a: 461a mov r2, r3 8008a0c: 4b90 ldr r3, [pc, #576] ; (8008c50 ) 8008a0e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008a12: 2303 movs r3, #3 8008a14: 213c movs r1, #60 ; 0x3c 8008a16: 2093 movs r0, #147 ; 0x93 8008a18: f7fc fa9c bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE); 8008a1c: 2303 movs r3, #3 8008a1e: 4a8e ldr r2, [pc, #568] ; (8008c58 ) 8008a20: 213c movs r1, #60 ; 0x3c 8008a22: 209a movs r0, #154 ; 0x9a 8008a24: f7fc fa96 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008a28: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008a2c: b2db uxtb r3, r3 8008a2e: 461a mov r2, r3 8008a30: 4b87 ldr r3, [pc, #540] ; (8008c50 ) 8008a32: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008a36: 2303 movs r3, #3 8008a38: 213c movs r1, #60 ; 0x3c 8008a3a: 20a1 movs r0, #161 ; 0xa1 8008a3c: f7fc fa8a bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008a40: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008a44: b2db uxtb r3, r3 8008a46: 461a mov r2, r3 8008a48: 4b81 ldr r3, [pc, #516] ; (8008c50 ) 8008a4a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008a4e: 2303 movs r3, #3 8008a50: 213c movs r1, #60 ; 0x3c 8008a52: 20a8 movs r0, #168 ; 0xa8 8008a54: f7fc fa7e bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008a58: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008a5c: b2db uxtb r3, r3 8008a5e: 461a mov r2, r3 8008a60: 4b7b ldr r3, [pc, #492] ; (8008c50 ) 8008a62: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008a66: 2303 movs r3, #3 8008a68: 213c movs r1, #60 ; 0x3c 8008a6a: 20af movs r0, #175 ; 0xaf 8008a6c: f7fc fa72 bl 8004f54 if(menupos == Kikdt_1) 8008a70: f004 ba9d b.w 800cfae if(ipt1 == 4) 8008a74: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008a78: b2db uxtb r3, r3 8008a7a: 2b04 cmp r3, #4 8008a7c: f044 8297 bne.w 800cfae BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008a80: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008a84: b2db uxtb r3, r3 8008a86: 461a mov r2, r3 8008a88: 4b71 ldr r3, [pc, #452] ; (8008c50 ) 8008a8a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008a8e: 2303 movs r3, #3 8008a90: 213c movs r1, #60 ; 0x3c 8008a92: 208c movs r0, #140 ; 0x8c 8008a94: f7fc fa5e bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE); 8008a98: 2303 movs r3, #3 8008a9a: 4a6f ldr r2, [pc, #444] ; (8008c58 ) 8008a9c: 213c movs r1, #60 ; 0x3c 8008a9e: 2093 movs r0, #147 ; 0x93 8008aa0: f7fc fa58 bl 8004f54 if(blk) 8008aa4: 4b6b ldr r3, [pc, #428] ; (8008c54 ) 8008aa6: 681b ldr r3, [r3, #0] 8008aa8: 2b00 cmp r3, #0 8008aaa: d00b beq.n 8008ac4 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008aac: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008ab0: b2db uxtb r3, r3 8008ab2: 461a mov r2, r3 8008ab4: 4b66 ldr r3, [pc, #408] ; (8008c50 ) 8008ab6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008aba: 2303 movs r3, #3 8008abc: 213c movs r1, #60 ; 0x3c 8008abe: 209a movs r0, #154 ; 0x9a 8008ac0: f7fc fa48 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008ac4: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008ac8: b2db uxtb r3, r3 8008aca: 461a mov r2, r3 8008acc: 4b60 ldr r3, [pc, #384] ; (8008c50 ) 8008ace: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008ad2: 2303 movs r3, #3 8008ad4: 213c movs r1, #60 ; 0x3c 8008ad6: 20a1 movs r0, #161 ; 0xa1 8008ad8: f7fc fa3c bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008adc: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008ae0: b2db uxtb r3, r3 8008ae2: 461a mov r2, r3 8008ae4: 4b5a ldr r3, [pc, #360] ; (8008c50 ) 8008ae6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008aea: 2303 movs r3, #3 8008aec: 213c movs r1, #60 ; 0x3c 8008aee: 20a8 movs r0, #168 ; 0xa8 8008af0: f7fc fa30 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008af4: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008af8: b2db uxtb r3, r3 8008afa: 461a mov r2, r3 8008afc: 4b54 ldr r3, [pc, #336] ; (8008c50 ) 8008afe: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008b02: 2303 movs r3, #3 8008b04: 213c movs r1, #60 ; 0x3c 8008b06: 20af movs r0, #175 ; 0xaf 8008b08: f7fc fa24 bl 8004f54 if(menupos == Kikdt_1) 8008b0c: f004 ba4f b.w 800cfae if(menupos == Kiks_1) 8008b10: 4b52 ldr r3, [pc, #328] ; (8008c5c ) 8008b12: 781b ldrb r3, [r3, #0] 8008b14: b2db uxtb r3, r3 8008b16: 2b04 cmp r3, #4 8008b18: f040 818a bne.w 8008e30 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8008b1c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8008b20: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8008b24: f7fc f950 bl 8004dc8 if(!ipt1) 8008b28: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008b2c: b2db uxtb r3, r3 8008b2e: 2b00 cmp r3, #0 8008b30: d141 bne.n 8008bb6 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008b32: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008b36: b2db uxtb r3, r3 8008b38: 461a mov r2, r3 8008b3a: 4b45 ldr r3, [pc, #276] ; (8008c50 ) 8008b3c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008b40: 2303 movs r3, #3 8008b42: 213c movs r1, #60 ; 0x3c 8008b44: 208c movs r0, #140 ; 0x8c 8008b46: f7fc fa05 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008b4a: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008b4e: b2db uxtb r3, r3 8008b50: 461a mov r2, r3 8008b52: 4b3f ldr r3, [pc, #252] ; (8008c50 ) 8008b54: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008b58: 2303 movs r3, #3 8008b5a: 213c movs r1, #60 ; 0x3c 8008b5c: 2093 movs r0, #147 ; 0x93 8008b5e: f7fc f9f9 bl 8004f54 if(blk) 8008b62: 4b3c ldr r3, [pc, #240] ; (8008c54 ) 8008b64: 681b ldr r3, [r3, #0] 8008b66: 2b00 cmp r3, #0 8008b68: d00b beq.n 8008b82 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008b6a: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008b6e: b2db uxtb r3, r3 8008b70: 461a mov r2, r3 8008b72: 4b37 ldr r3, [pc, #220] ; (8008c50 ) 8008b74: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008b78: 2303 movs r3, #3 8008b7a: 213c movs r1, #60 ; 0x3c 8008b7c: 209a movs r0, #154 ; 0x9a 8008b7e: f7fc f9e9 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008b82: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008b86: b2db uxtb r3, r3 8008b88: 461a mov r2, r3 8008b8a: 4b31 ldr r3, [pc, #196] ; (8008c50 ) 8008b8c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008b90: 2303 movs r3, #3 8008b92: 213c movs r1, #60 ; 0x3c 8008b94: 20a1 movs r0, #161 ; 0xa1 8008b96: f7fc f9dd bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008b9a: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008b9e: b2db uxtb r3, r3 8008ba0: 461a mov r2, r3 8008ba2: 4b2b ldr r3, [pc, #172] ; (8008c50 ) 8008ba4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008ba8: 2303 movs r3, #3 8008baa: 213c movs r1, #60 ; 0x3c 8008bac: 20a8 movs r0, #168 ; 0xa8 8008bae: f7fc f9d1 bl 8004f54 if(menupos == Kikdt_1) 8008bb2: f004 b9fc b.w 800cfae if(ipt1 == 1) 8008bb6: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008bba: b2db uxtb r3, r3 8008bbc: 2b01 cmp r3, #1 8008bbe: d14f bne.n 8008c60 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008bc0: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008bc4: b2db uxtb r3, r3 8008bc6: 461a mov r2, r3 8008bc8: 4b21 ldr r3, [pc, #132] ; (8008c50 ) 8008bca: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008bce: 2303 movs r3, #3 8008bd0: 213c movs r1, #60 ; 0x3c 8008bd2: 208c movs r0, #140 ; 0x8c 8008bd4: f7fc f9be bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008bd8: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008bdc: b2db uxtb r3, r3 8008bde: 461a mov r2, r3 8008be0: 4b1b ldr r3, [pc, #108] ; (8008c50 ) 8008be2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008be6: 2303 movs r3, #3 8008be8: 213c movs r1, #60 ; 0x3c 8008bea: 2093 movs r0, #147 ; 0x93 8008bec: f7fc f9b2 bl 8004f54 if(blk) 8008bf0: 4b18 ldr r3, [pc, #96] ; (8008c54 ) 8008bf2: 681b ldr r3, [r3, #0] 8008bf4: 2b00 cmp r3, #0 8008bf6: d00b beq.n 8008c10 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008bf8: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008bfc: b2db uxtb r3, r3 8008bfe: 461a mov r2, r3 8008c00: 4b13 ldr r3, [pc, #76] ; (8008c50 ) 8008c02: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008c06: 2303 movs r3, #3 8008c08: 213c movs r1, #60 ; 0x3c 8008c0a: 209a movs r0, #154 ; 0x9a 8008c0c: f7fc f9a2 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008c10: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008c14: b2db uxtb r3, r3 8008c16: 461a mov r2, r3 8008c18: 4b0d ldr r3, [pc, #52] ; (8008c50 ) 8008c1a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008c1e: 2303 movs r3, #3 8008c20: 213c movs r1, #60 ; 0x3c 8008c22: 20a1 movs r0, #161 ; 0xa1 8008c24: f7fc f996 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE); 8008c28: 2303 movs r3, #3 8008c2a: 4a0b ldr r2, [pc, #44] ; (8008c58 ) 8008c2c: 213c movs r1, #60 ; 0x3c 8008c2e: 20a8 movs r0, #168 ; 0xa8 8008c30: f7fc f990 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008c34: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008c38: b2db uxtb r3, r3 8008c3a: 461a mov r2, r3 8008c3c: 4b04 ldr r3, [pc, #16] ; (8008c50 ) 8008c3e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008c42: 2303 movs r3, #3 8008c44: 213c movs r1, #60 ; 0x3c 8008c46: 20af movs r0, #175 ; 0xaf 8008c48: f7fc f984 bl 8004f54 if(menupos == Kikdt_1) 8008c4c: f004 b9af b.w 800cfae 8008c50: 2002096c .word 0x2002096c 8008c54: 2006ba78 .word 0x2006ba78 8008c58: 080181c8 .word 0x080181c8 8008c5c: 20020010 .word 0x20020010 if(ipt1 == 2) 8008c60: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008c64: b2db uxtb r3, r3 8008c66: 2b02 cmp r3, #2 8008c68: d147 bne.n 8008cfa BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008c6a: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008c6e: b2db uxtb r3, r3 8008c70: 461a mov r2, r3 8008c72: 4bbf ldr r3, [pc, #764] ; (8008f70 ) 8008c74: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008c78: 2303 movs r3, #3 8008c7a: 213c movs r1, #60 ; 0x3c 8008c7c: 208c movs r0, #140 ; 0x8c 8008c7e: f7fc f969 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008c82: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008c86: b2db uxtb r3, r3 8008c88: 461a mov r2, r3 8008c8a: 4bb9 ldr r3, [pc, #740] ; (8008f70 ) 8008c8c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008c90: 2303 movs r3, #3 8008c92: 213c movs r1, #60 ; 0x3c 8008c94: 2093 movs r0, #147 ; 0x93 8008c96: f7fc f95d bl 8004f54 if(blk) 8008c9a: 4bb6 ldr r3, [pc, #728] ; (8008f74 ) 8008c9c: 681b ldr r3, [r3, #0] 8008c9e: 2b00 cmp r3, #0 8008ca0: d00b beq.n 8008cba BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008ca2: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008ca6: b2db uxtb r3, r3 8008ca8: 461a mov r2, r3 8008caa: 4bb1 ldr r3, [pc, #708] ; (8008f70 ) 8008cac: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008cb0: 2303 movs r3, #3 8008cb2: 213c movs r1, #60 ; 0x3c 8008cb4: 209a movs r0, #154 ; 0x9a 8008cb6: f7fc f94d bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE); 8008cba: 2303 movs r3, #3 8008cbc: 4aae ldr r2, [pc, #696] ; (8008f78 ) 8008cbe: 213c movs r1, #60 ; 0x3c 8008cc0: 20a1 movs r0, #161 ; 0xa1 8008cc2: f7fc f947 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008cc6: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008cca: b2db uxtb r3, r3 8008ccc: 461a mov r2, r3 8008cce: 4ba8 ldr r3, [pc, #672] ; (8008f70 ) 8008cd0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008cd4: 2303 movs r3, #3 8008cd6: 213c movs r1, #60 ; 0x3c 8008cd8: 20a8 movs r0, #168 ; 0xa8 8008cda: f7fc f93b bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008cde: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008ce2: b2db uxtb r3, r3 8008ce4: 461a mov r2, r3 8008ce6: 4ba2 ldr r3, [pc, #648] ; (8008f70 ) 8008ce8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008cec: 2303 movs r3, #3 8008cee: 213c movs r1, #60 ; 0x3c 8008cf0: 20af movs r0, #175 ; 0xaf 8008cf2: f7fc f92f bl 8004f54 if(menupos == Kikdt_1) 8008cf6: f004 b95a b.w 800cfae if(ipt1 == 3) 8008cfa: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008cfe: b2db uxtb r3, r3 8008d00: 2b03 cmp r3, #3 8008d02: d147 bne.n 8008d94 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008d04: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008d08: b2db uxtb r3, r3 8008d0a: 461a mov r2, r3 8008d0c: 4b98 ldr r3, [pc, #608] ; (8008f70 ) 8008d0e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008d12: 2303 movs r3, #3 8008d14: 213c movs r1, #60 ; 0x3c 8008d16: 208c movs r0, #140 ; 0x8c 8008d18: f7fc f91c bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008d1c: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008d20: b2db uxtb r3, r3 8008d22: 461a mov r2, r3 8008d24: 4b92 ldr r3, [pc, #584] ; (8008f70 ) 8008d26: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008d2a: 2303 movs r3, #3 8008d2c: 213c movs r1, #60 ; 0x3c 8008d2e: 2093 movs r0, #147 ; 0x93 8008d30: f7fc f910 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE); 8008d34: 2303 movs r3, #3 8008d36: 4a90 ldr r2, [pc, #576] ; (8008f78 ) 8008d38: 213c movs r1, #60 ; 0x3c 8008d3a: 209a movs r0, #154 ; 0x9a 8008d3c: f7fc f90a bl 8004f54 if(blk) 8008d40: 4b8c ldr r3, [pc, #560] ; (8008f74 ) 8008d42: 681b ldr r3, [r3, #0] 8008d44: 2b00 cmp r3, #0 8008d46: d00b beq.n 8008d60 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008d48: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008d4c: b2db uxtb r3, r3 8008d4e: 461a mov r2, r3 8008d50: 4b87 ldr r3, [pc, #540] ; (8008f70 ) 8008d52: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008d56: 2303 movs r3, #3 8008d58: 213c movs r1, #60 ; 0x3c 8008d5a: 20a1 movs r0, #161 ; 0xa1 8008d5c: f7fc f8fa bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008d60: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008d64: b2db uxtb r3, r3 8008d66: 461a mov r2, r3 8008d68: 4b81 ldr r3, [pc, #516] ; (8008f70 ) 8008d6a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008d6e: 2303 movs r3, #3 8008d70: 213c movs r1, #60 ; 0x3c 8008d72: 20a8 movs r0, #168 ; 0xa8 8008d74: f7fc f8ee bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008d78: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008d7c: b2db uxtb r3, r3 8008d7e: 461a mov r2, r3 8008d80: 4b7b ldr r3, [pc, #492] ; (8008f70 ) 8008d82: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008d86: 2303 movs r3, #3 8008d88: 213c movs r1, #60 ; 0x3c 8008d8a: 20af movs r0, #175 ; 0xaf 8008d8c: f7fc f8e2 bl 8004f54 if(menupos == Kikdt_1) 8008d90: f004 b90d b.w 800cfae if(ipt1 == 4) 8008d94: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008d98: b2db uxtb r3, r3 8008d9a: 2b04 cmp r3, #4 8008d9c: f044 8107 bne.w 800cfae BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008da0: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008da4: b2db uxtb r3, r3 8008da6: 461a mov r2, r3 8008da8: 4b71 ldr r3, [pc, #452] ; (8008f70 ) 8008daa: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008dae: 2303 movs r3, #3 8008db0: 213c movs r1, #60 ; 0x3c 8008db2: 208c movs r0, #140 ; 0x8c 8008db4: f7fc f8ce bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE); 8008db8: 2303 movs r3, #3 8008dba: 4a6f ldr r2, [pc, #444] ; (8008f78 ) 8008dbc: 213c movs r1, #60 ; 0x3c 8008dbe: 2093 movs r0, #147 ; 0x93 8008dc0: f7fc f8c8 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008dc4: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008dc8: b2db uxtb r3, r3 8008dca: 461a mov r2, r3 8008dcc: 4b68 ldr r3, [pc, #416] ; (8008f70 ) 8008dce: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008dd2: 2303 movs r3, #3 8008dd4: 213c movs r1, #60 ; 0x3c 8008dd6: 209a movs r0, #154 ; 0x9a 8008dd8: f7fc f8bc bl 8004f54 if(blk) 8008ddc: 4b65 ldr r3, [pc, #404] ; (8008f74 ) 8008dde: 681b ldr r3, [r3, #0] 8008de0: 2b00 cmp r3, #0 8008de2: d00b beq.n 8008dfc BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008de4: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008de8: b2db uxtb r3, r3 8008dea: 461a mov r2, r3 8008dec: 4b60 ldr r3, [pc, #384] ; (8008f70 ) 8008dee: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008df2: 2303 movs r3, #3 8008df4: 213c movs r1, #60 ; 0x3c 8008df6: 20a1 movs r0, #161 ; 0xa1 8008df8: f7fc f8ac bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008dfc: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008e00: b2db uxtb r3, r3 8008e02: 461a mov r2, r3 8008e04: 4b5a ldr r3, [pc, #360] ; (8008f70 ) 8008e06: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008e0a: 2303 movs r3, #3 8008e0c: 213c movs r1, #60 ; 0x3c 8008e0e: 20a8 movs r0, #168 ; 0xa8 8008e10: f7fc f8a0 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008e14: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008e18: b2db uxtb r3, r3 8008e1a: 461a mov r2, r3 8008e1c: 4b54 ldr r3, [pc, #336] ; (8008f70 ) 8008e1e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008e22: 2303 movs r3, #3 8008e24: 213c movs r1, #60 ; 0x3c 8008e26: 20af movs r0, #175 ; 0xaf 8008e28: f7fc f894 bl 8004f54 if(menupos == Kikdt_1) 8008e2c: f004 b8bf b.w 800cfae if(menupos == Kikd_1) 8008e30: 4b52 ldr r3, [pc, #328] ; (8008f7c ) 8008e32: 781b ldrb r3, [r3, #0] 8008e34: b2db uxtb r3, r3 8008e36: 2b05 cmp r3, #5 8008e38: f040 818a bne.w 8009150 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8008e3c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8008e40: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8008e44: f7fb ffc0 bl 8004dc8 if(!ipt1) 8008e48: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008e4c: b2db uxtb r3, r3 8008e4e: 2b00 cmp r3, #0 8008e50: d141 bne.n 8008ed6 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008e52: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008e56: b2db uxtb r3, r3 8008e58: 461a mov r2, r3 8008e5a: 4b45 ldr r3, [pc, #276] ; (8008f70 ) 8008e5c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008e60: 2303 movs r3, #3 8008e62: 213c movs r1, #60 ; 0x3c 8008e64: 208c movs r0, #140 ; 0x8c 8008e66: f7fc f875 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008e6a: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008e6e: b2db uxtb r3, r3 8008e70: 461a mov r2, r3 8008e72: 4b3f ldr r3, [pc, #252] ; (8008f70 ) 8008e74: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008e78: 2303 movs r3, #3 8008e7a: 213c movs r1, #60 ; 0x3c 8008e7c: 2093 movs r0, #147 ; 0x93 8008e7e: f7fc f869 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008e82: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008e86: b2db uxtb r3, r3 8008e88: 461a mov r2, r3 8008e8a: 4b39 ldr r3, [pc, #228] ; (8008f70 ) 8008e8c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008e90: 2303 movs r3, #3 8008e92: 213c movs r1, #60 ; 0x3c 8008e94: 209a movs r0, #154 ; 0x9a 8008e96: f7fc f85d bl 8004f54 if(blk) 8008e9a: 4b36 ldr r3, [pc, #216] ; (8008f74 ) 8008e9c: 681b ldr r3, [r3, #0] 8008e9e: 2b00 cmp r3, #0 8008ea0: d00b beq.n 8008eba BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008ea2: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008ea6: b2db uxtb r3, r3 8008ea8: 461a mov r2, r3 8008eaa: 4b31 ldr r3, [pc, #196] ; (8008f70 ) 8008eac: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008eb0: 2303 movs r3, #3 8008eb2: 213c movs r1, #60 ; 0x3c 8008eb4: 20a1 movs r0, #161 ; 0xa1 8008eb6: f7fc f84d bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008eba: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008ebe: b2db uxtb r3, r3 8008ec0: 461a mov r2, r3 8008ec2: 4b2b ldr r3, [pc, #172] ; (8008f70 ) 8008ec4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008ec8: 2303 movs r3, #3 8008eca: 213c movs r1, #60 ; 0x3c 8008ecc: 20a8 movs r0, #168 ; 0xa8 8008ece: f7fc f841 bl 8004f54 if(menupos == Kikdt_1) 8008ed2: f004 b86c b.w 800cfae if(ipt1 == 1) 8008ed6: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008eda: b2db uxtb r3, r3 8008edc: 2b01 cmp r3, #1 8008ede: d14f bne.n 8008f80 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008ee0: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008ee4: b2db uxtb r3, r3 8008ee6: 461a mov r2, r3 8008ee8: 4b21 ldr r3, [pc, #132] ; (8008f70 ) 8008eea: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008eee: 2303 movs r3, #3 8008ef0: 213c movs r1, #60 ; 0x3c 8008ef2: 208c movs r0, #140 ; 0x8c 8008ef4: f7fc f82e bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008ef8: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008efc: b2db uxtb r3, r3 8008efe: 461a mov r2, r3 8008f00: 4b1b ldr r3, [pc, #108] ; (8008f70 ) 8008f02: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008f06: 2303 movs r3, #3 8008f08: 213c movs r1, #60 ; 0x3c 8008f0a: 2093 movs r0, #147 ; 0x93 8008f0c: f7fc f822 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008f10: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008f14: b2db uxtb r3, r3 8008f16: 461a mov r2, r3 8008f18: 4b15 ldr r3, [pc, #84] ; (8008f70 ) 8008f1a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008f1e: 2303 movs r3, #3 8008f20: 213c movs r1, #60 ; 0x3c 8008f22: 209a movs r0, #154 ; 0x9a 8008f24: f7fc f816 bl 8004f54 if(blk) 8008f28: 4b12 ldr r3, [pc, #72] ; (8008f74 ) 8008f2a: 681b ldr r3, [r3, #0] 8008f2c: 2b00 cmp r3, #0 8008f2e: d00b beq.n 8008f48 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008f30: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008f34: b2db uxtb r3, r3 8008f36: 461a mov r2, r3 8008f38: 4b0d ldr r3, [pc, #52] ; (8008f70 ) 8008f3a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008f3e: 2303 movs r3, #3 8008f40: 213c movs r1, #60 ; 0x3c 8008f42: 20a1 movs r0, #161 ; 0xa1 8008f44: f7fc f806 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE); 8008f48: 2303 movs r3, #3 8008f4a: 4a0b ldr r2, [pc, #44] ; (8008f78 ) 8008f4c: 213c movs r1, #60 ; 0x3c 8008f4e: 20a8 movs r0, #168 ; 0xa8 8008f50: f7fc f800 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008f54: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008f58: b2db uxtb r3, r3 8008f5a: 461a mov r2, r3 8008f5c: 4b04 ldr r3, [pc, #16] ; (8008f70 ) 8008f5e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008f62: 2303 movs r3, #3 8008f64: 213c movs r1, #60 ; 0x3c 8008f66: 20af movs r0, #175 ; 0xaf 8008f68: f7fb fff4 bl 8004f54 if(menupos == Kikdt_1) 8008f6c: f004 b81f b.w 800cfae 8008f70: 2002096c .word 0x2002096c 8008f74: 2006ba78 .word 0x2006ba78 8008f78: 080181c8 .word 0x080181c8 8008f7c: 20020010 .word 0x20020010 if(ipt1 == 2) 8008f80: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008f84: b2db uxtb r3, r3 8008f86: 2b02 cmp r3, #2 8008f88: d147 bne.n 800901a BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008f8a: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008f8e: b2db uxtb r3, r3 8008f90: 461a mov r2, r3 8008f92: 4bc0 ldr r3, [pc, #768] ; (8009294 ) 8008f94: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008f98: 2303 movs r3, #3 8008f9a: 213c movs r1, #60 ; 0x3c 8008f9c: 208c movs r0, #140 ; 0x8c 8008f9e: f7fb ffd9 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008fa2: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008fa6: b2db uxtb r3, r3 8008fa8: 461a mov r2, r3 8008faa: 4bba ldr r3, [pc, #744] ; (8009294 ) 8008fac: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008fb0: 2303 movs r3, #3 8008fb2: 213c movs r1, #60 ; 0x3c 8008fb4: 2093 movs r0, #147 ; 0x93 8008fb6: f7fb ffcd bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008fba: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008fbe: b2db uxtb r3, r3 8008fc0: 461a mov r2, r3 8008fc2: 4bb4 ldr r3, [pc, #720] ; (8009294 ) 8008fc4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008fc8: 2303 movs r3, #3 8008fca: 213c movs r1, #60 ; 0x3c 8008fcc: 209a movs r0, #154 ; 0x9a 8008fce: f7fb ffc1 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE); 8008fd2: 2303 movs r3, #3 8008fd4: 4ab0 ldr r2, [pc, #704] ; (8009298 ) 8008fd6: 213c movs r1, #60 ; 0x3c 8008fd8: 20a1 movs r0, #161 ; 0xa1 8008fda: f7fb ffbb bl 8004f54 if(blk) 8008fde: 4baf ldr r3, [pc, #700] ; (800929c ) 8008fe0: 681b ldr r3, [r3, #0] 8008fe2: 2b00 cmp r3, #0 8008fe4: d00b beq.n 8008ffe BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008fe6: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008fea: b2db uxtb r3, r3 8008fec: 461a mov r2, r3 8008fee: 4ba9 ldr r3, [pc, #676] ; (8009294 ) 8008ff0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008ff4: 2303 movs r3, #3 8008ff6: 213c movs r1, #60 ; 0x3c 8008ff8: 20a8 movs r0, #168 ; 0xa8 8008ffa: f7fb ffab bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008ffe: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8009002: b2db uxtb r3, r3 8009004: 461a mov r2, r3 8009006: 4ba3 ldr r3, [pc, #652] ; (8009294 ) 8009008: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800900c: 2303 movs r3, #3 800900e: 213c movs r1, #60 ; 0x3c 8009010: 20af movs r0, #175 ; 0xaf 8009012: f7fb ff9f bl 8004f54 if(menupos == Kikdt_1) 8009016: f003 bfca b.w 800cfae if(ipt1 == 3) 800901a: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 800901e: b2db uxtb r3, r3 8009020: 2b03 cmp r3, #3 8009022: d147 bne.n 80090b4 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8009024: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8009028: b2db uxtb r3, r3 800902a: 461a mov r2, r3 800902c: 4b99 ldr r3, [pc, #612] ; (8009294 ) 800902e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009032: 2303 movs r3, #3 8009034: 213c movs r1, #60 ; 0x3c 8009036: 208c movs r0, #140 ; 0x8c 8009038: f7fb ff8c bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 800903c: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8009040: b2db uxtb r3, r3 8009042: 461a mov r2, r3 8009044: 4b93 ldr r3, [pc, #588] ; (8009294 ) 8009046: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800904a: 2303 movs r3, #3 800904c: 213c movs r1, #60 ; 0x3c 800904e: 2093 movs r0, #147 ; 0x93 8009050: f7fb ff80 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE); 8009054: 2303 movs r3, #3 8009056: 4a90 ldr r2, [pc, #576] ; (8009298 ) 8009058: 213c movs r1, #60 ; 0x3c 800905a: 209a movs r0, #154 ; 0x9a 800905c: f7fb ff7a bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 8009060: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8009064: b2db uxtb r3, r3 8009066: 461a mov r2, r3 8009068: 4b8a ldr r3, [pc, #552] ; (8009294 ) 800906a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800906e: 2303 movs r3, #3 8009070: 213c movs r1, #60 ; 0x3c 8009072: 20a1 movs r0, #161 ; 0xa1 8009074: f7fb ff6e bl 8004f54 if(blk) 8009078: 4b88 ldr r3, [pc, #544] ; (800929c ) 800907a: 681b ldr r3, [r3, #0] 800907c: 2b00 cmp r3, #0 800907e: d00b beq.n 8009098 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 8009080: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8009084: b2db uxtb r3, r3 8009086: 461a mov r2, r3 8009088: 4b82 ldr r3, [pc, #520] ; (8009294 ) 800908a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800908e: 2303 movs r3, #3 8009090: 213c movs r1, #60 ; 0x3c 8009092: 20a8 movs r0, #168 ; 0xa8 8009094: f7fb ff5e bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8009098: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 800909c: b2db uxtb r3, r3 800909e: 461a mov r2, r3 80090a0: 4b7c ldr r3, [pc, #496] ; (8009294 ) 80090a2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80090a6: 2303 movs r3, #3 80090a8: 213c movs r1, #60 ; 0x3c 80090aa: 20af movs r0, #175 ; 0xaf 80090ac: f7fb ff52 bl 8004f54 if(menupos == Kikdt_1) 80090b0: f003 bf7d b.w 800cfae if(ipt1 == 4) 80090b4: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 80090b8: b2db uxtb r3, r3 80090ba: 2b04 cmp r3, #4 80090bc: f043 8777 bne.w 800cfae BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 80090c0: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 80090c4: b2db uxtb r3, r3 80090c6: 461a mov r2, r3 80090c8: 4b72 ldr r3, [pc, #456] ; (8009294 ) 80090ca: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80090ce: 2303 movs r3, #3 80090d0: 213c movs r1, #60 ; 0x3c 80090d2: 208c movs r0, #140 ; 0x8c 80090d4: f7fb ff3e bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE); 80090d8: 2303 movs r3, #3 80090da: 4a6f ldr r2, [pc, #444] ; (8009298 ) 80090dc: 213c movs r1, #60 ; 0x3c 80090de: 2093 movs r0, #147 ; 0x93 80090e0: f7fb ff38 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE); 80090e4: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 80090e8: b2db uxtb r3, r3 80090ea: 461a mov r2, r3 80090ec: 4b69 ldr r3, [pc, #420] ; (8009294 ) 80090ee: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80090f2: 2303 movs r3, #3 80090f4: 213c movs r1, #60 ; 0x3c 80090f6: 209a movs r0, #154 ; 0x9a 80090f8: f7fb ff2c bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 80090fc: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8009100: b2db uxtb r3, r3 8009102: 461a mov r2, r3 8009104: 4b63 ldr r3, [pc, #396] ; (8009294 ) 8009106: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800910a: 2303 movs r3, #3 800910c: 213c movs r1, #60 ; 0x3c 800910e: 20a1 movs r0, #161 ; 0xa1 8009110: f7fb ff20 bl 8004f54 if(blk) 8009114: 4b61 ldr r3, [pc, #388] ; (800929c ) 8009116: 681b ldr r3, [r3, #0] 8009118: 2b00 cmp r3, #0 800911a: d00b beq.n 8009134 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 800911c: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8009120: b2db uxtb r3, r3 8009122: 461a mov r2, r3 8009124: 4b5b ldr r3, [pc, #364] ; (8009294 ) 8009126: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800912a: 2303 movs r3, #3 800912c: 213c movs r1, #60 ; 0x3c 800912e: 20a8 movs r0, #168 ; 0xa8 8009130: f7fb ff10 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8009134: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8009138: b2db uxtb r3, r3 800913a: 461a mov r2, r3 800913c: 4b55 ldr r3, [pc, #340] ; (8009294 ) 800913e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009142: 2303 movs r3, #3 8009144: 213c movs r1, #60 ; 0x3c 8009146: 20af movs r0, #175 ; 0xaf 8009148: f7fb ff04 bl 8004f54 if(menupos == Kikdt_1) 800914c: f003 bf2f b.w 800cfae if(menupos == Kike_1) 8009150: 4b53 ldr r3, [pc, #332] ; (80092a0 ) 8009152: 781b ldrb r3, [r3, #0] 8009154: b2db uxtb r3, r3 8009156: 2b06 cmp r3, #6 8009158: f040 818f bne.w 800947a LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800915c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8009160: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8009164: f7fb fe30 bl 8004dc8 if(!ipt1) 8009168: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 800916c: b2db uxtb r3, r3 800916e: 2b00 cmp r3, #0 8009170: d142 bne.n 80091f8 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8009172: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8009176: b2db uxtb r3, r3 8009178: 461a mov r2, r3 800917a: 4b46 ldr r3, [pc, #280] ; (8009294 ) 800917c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009180: 2303 movs r3, #3 8009182: 213c movs r1, #60 ; 0x3c 8009184: 208c movs r0, #140 ; 0x8c 8009186: f7fb fee5 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 800918a: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 800918e: b2db uxtb r3, r3 8009190: 461a mov r2, r3 8009192: 4b40 ldr r3, [pc, #256] ; (8009294 ) 8009194: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009198: 2303 movs r3, #3 800919a: 213c movs r1, #60 ; 0x3c 800919c: 2093 movs r0, #147 ; 0x93 800919e: f7fb fed9 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 80091a2: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 80091a6: b2db uxtb r3, r3 80091a8: 461a mov r2, r3 80091aa: 4b3a ldr r3, [pc, #232] ; (8009294 ) 80091ac: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80091b0: 2303 movs r3, #3 80091b2: 213c movs r1, #60 ; 0x3c 80091b4: 209a movs r0, #154 ; 0x9a 80091b6: f7fb fecd bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 80091ba: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 80091be: b2db uxtb r3, r3 80091c0: 461a mov r2, r3 80091c2: 4b34 ldr r3, [pc, #208] ; (8009294 ) 80091c4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80091c8: 2303 movs r3, #3 80091ca: 213c movs r1, #60 ; 0x3c 80091cc: 20a1 movs r0, #161 ; 0xa1 80091ce: f7fb fec1 bl 8004f54 if(blk) 80091d2: 4b32 ldr r3, [pc, #200] ; (800929c ) 80091d4: 681b ldr r3, [r3, #0] 80091d6: 2b00 cmp r3, #0 80091d8: f003 86e9 beq.w 800cfae BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE); 80091dc: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 80091e0: b2db uxtb r3, r3 80091e2: 461a mov r2, r3 80091e4: 4b2b ldr r3, [pc, #172] ; (8009294 ) 80091e6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80091ea: 2303 movs r3, #3 80091ec: 213c movs r1, #60 ; 0x3c 80091ee: 20a8 movs r0, #168 ; 0xa8 80091f0: f7fb feb0 bl 8004f54 if(menupos == Kikdt_1) 80091f4: f003 bedb b.w 800cfae if(ipt1 == 1) 80091f8: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 80091fc: b2db uxtb r3, r3 80091fe: 2b01 cmp r3, #1 8009200: d150 bne.n 80092a4 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8009202: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8009206: b2db uxtb r3, r3 8009208: 461a mov r2, r3 800920a: 4b22 ldr r3, [pc, #136] ; (8009294 ) 800920c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009210: 2303 movs r3, #3 8009212: 213c movs r1, #60 ; 0x3c 8009214: 208c movs r0, #140 ; 0x8c 8009216: f7fb fe9d bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 800921a: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 800921e: b2db uxtb r3, r3 8009220: 461a mov r2, r3 8009222: 4b1c ldr r3, [pc, #112] ; (8009294 ) 8009224: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009228: 2303 movs r3, #3 800922a: 213c movs r1, #60 ; 0x3c 800922c: 2093 movs r0, #147 ; 0x93 800922e: f7fb fe91 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8009232: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8009236: b2db uxtb r3, r3 8009238: 461a mov r2, r3 800923a: 4b16 ldr r3, [pc, #88] ; (8009294 ) 800923c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009240: 2303 movs r3, #3 8009242: 213c movs r1, #60 ; 0x3c 8009244: 209a movs r0, #154 ; 0x9a 8009246: f7fb fe85 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 800924a: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 800924e: b2db uxtb r3, r3 8009250: 461a mov r2, r3 8009252: 4b10 ldr r3, [pc, #64] ; (8009294 ) 8009254: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009258: 2303 movs r3, #3 800925a: 213c movs r1, #60 ; 0x3c 800925c: 20a1 movs r0, #161 ; 0xa1 800925e: f7fb fe79 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE); 8009262: 2303 movs r3, #3 8009264: 4a0c ldr r2, [pc, #48] ; (8009298 ) 8009266: 213c movs r1, #60 ; 0x3c 8009268: 20a8 movs r0, #168 ; 0xa8 800926a: f7fb fe73 bl 8004f54 if(blk) 800926e: 4b0b ldr r3, [pc, #44] ; (800929c ) 8009270: 681b ldr r3, [r3, #0] 8009272: 2b00 cmp r3, #0 8009274: f003 869b beq.w 800cfae BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8009278: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 800927c: b2db uxtb r3, r3 800927e: 461a mov r2, r3 8009280: 4b04 ldr r3, [pc, #16] ; (8009294 ) 8009282: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009286: 2303 movs r3, #3 8009288: 213c movs r1, #60 ; 0x3c 800928a: 20af movs r0, #175 ; 0xaf 800928c: f7fb fe62 bl 8004f54 if(menupos == Kikdt_1) 8009290: f003 be8d b.w 800cfae 8009294: 2002096c .word 0x2002096c 8009298: 080181c8 .word 0x080181c8 800929c: 2006ba78 .word 0x2006ba78 80092a0: 20020010 .word 0x20020010 if(ipt1 == 2) 80092a4: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 80092a8: b2db uxtb r3, r3 80092aa: 2b02 cmp r3, #2 80092ac: d148 bne.n 8009340 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 80092ae: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 80092b2: b2db uxtb r3, r3 80092b4: 461a mov r2, r3 80092b6: 4bc4 ldr r3, [pc, #784] ; (80095c8 ) 80092b8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80092bc: 2303 movs r3, #3 80092be: 213c movs r1, #60 ; 0x3c 80092c0: 208c movs r0, #140 ; 0x8c 80092c2: f7fb fe47 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 80092c6: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 80092ca: b2db uxtb r3, r3 80092cc: 461a mov r2, r3 80092ce: 4bbe ldr r3, [pc, #760] ; (80095c8 ) 80092d0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80092d4: 2303 movs r3, #3 80092d6: 213c movs r1, #60 ; 0x3c 80092d8: 2093 movs r0, #147 ; 0x93 80092da: f7fb fe3b bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 80092de: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 80092e2: b2db uxtb r3, r3 80092e4: 461a mov r2, r3 80092e6: 4bb8 ldr r3, [pc, #736] ; (80095c8 ) 80092e8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80092ec: 2303 movs r3, #3 80092ee: 213c movs r1, #60 ; 0x3c 80092f0: 209a movs r0, #154 ; 0x9a 80092f2: f7fb fe2f bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE); 80092f6: 2303 movs r3, #3 80092f8: 4ab4 ldr r2, [pc, #720] ; (80095cc ) 80092fa: 213c movs r1, #60 ; 0x3c 80092fc: 20a1 movs r0, #161 ; 0xa1 80092fe: f7fb fe29 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 8009302: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8009306: b2db uxtb r3, r3 8009308: 461a mov r2, r3 800930a: 4baf ldr r3, [pc, #700] ; (80095c8 ) 800930c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009310: 2303 movs r3, #3 8009312: 213c movs r1, #60 ; 0x3c 8009314: 20a8 movs r0, #168 ; 0xa8 8009316: f7fb fe1d bl 8004f54 if(blk) 800931a: 4bad ldr r3, [pc, #692] ; (80095d0 ) 800931c: 681b ldr r3, [r3, #0] 800931e: 2b00 cmp r3, #0 8009320: f003 8645 beq.w 800cfae BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8009324: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8009328: b2db uxtb r3, r3 800932a: 461a mov r2, r3 800932c: 4ba6 ldr r3, [pc, #664] ; (80095c8 ) 800932e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009332: 2303 movs r3, #3 8009334: 213c movs r1, #60 ; 0x3c 8009336: 20af movs r0, #175 ; 0xaf 8009338: f7fb fe0c bl 8004f54 if(menupos == Kikdt_1) 800933c: f003 be37 b.w 800cfae if(ipt1 == 3) 8009340: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8009344: b2db uxtb r3, r3 8009346: 2b03 cmp r3, #3 8009348: d148 bne.n 80093dc BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 800934a: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 800934e: b2db uxtb r3, r3 8009350: 461a mov r2, r3 8009352: 4b9d ldr r3, [pc, #628] ; (80095c8 ) 8009354: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009358: 2303 movs r3, #3 800935a: 213c movs r1, #60 ; 0x3c 800935c: 208c movs r0, #140 ; 0x8c 800935e: f7fb fdf9 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8009362: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8009366: b2db uxtb r3, r3 8009368: 461a mov r2, r3 800936a: 4b97 ldr r3, [pc, #604] ; (80095c8 ) 800936c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009370: 2303 movs r3, #3 8009372: 213c movs r1, #60 ; 0x3c 8009374: 2093 movs r0, #147 ; 0x93 8009376: f7fb fded bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE); 800937a: 2303 movs r3, #3 800937c: 4a93 ldr r2, [pc, #588] ; (80095cc ) 800937e: 213c movs r1, #60 ; 0x3c 8009380: 209a movs r0, #154 ; 0x9a 8009382: f7fb fde7 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 8009386: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 800938a: b2db uxtb r3, r3 800938c: 461a mov r2, r3 800938e: 4b8e ldr r3, [pc, #568] ; (80095c8 ) 8009390: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009394: 2303 movs r3, #3 8009396: 213c movs r1, #60 ; 0x3c 8009398: 20a1 movs r0, #161 ; 0xa1 800939a: f7fb fddb bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 800939e: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 80093a2: b2db uxtb r3, r3 80093a4: 461a mov r2, r3 80093a6: 4b88 ldr r3, [pc, #544] ; (80095c8 ) 80093a8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80093ac: 2303 movs r3, #3 80093ae: 213c movs r1, #60 ; 0x3c 80093b0: 20a8 movs r0, #168 ; 0xa8 80093b2: f7fb fdcf bl 8004f54 if(blk) 80093b6: 4b86 ldr r3, [pc, #536] ; (80095d0 ) 80093b8: 681b ldr r3, [r3, #0] 80093ba: 2b00 cmp r3, #0 80093bc: f003 85f7 beq.w 800cfae BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 80093c0: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 80093c4: b2db uxtb r3, r3 80093c6: 461a mov r2, r3 80093c8: 4b7f ldr r3, [pc, #508] ; (80095c8 ) 80093ca: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80093ce: 2303 movs r3, #3 80093d0: 213c movs r1, #60 ; 0x3c 80093d2: 20af movs r0, #175 ; 0xaf 80093d4: f7fb fdbe bl 8004f54 if(menupos == Kikdt_1) 80093d8: f003 bde9 b.w 800cfae if(ipt1 == 4) 80093dc: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 80093e0: b2db uxtb r3, r3 80093e2: 2b04 cmp r3, #4 80093e4: f043 85e3 bne.w 800cfae BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 80093e8: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 80093ec: b2db uxtb r3, r3 80093ee: 461a mov r2, r3 80093f0: 4b75 ldr r3, [pc, #468] ; (80095c8 ) 80093f2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80093f6: 2303 movs r3, #3 80093f8: 213c movs r1, #60 ; 0x3c 80093fa: 208c movs r0, #140 ; 0x8c 80093fc: f7fb fdaa bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE); 8009400: 2303 movs r3, #3 8009402: 4a72 ldr r2, [pc, #456] ; (80095cc ) 8009404: 213c movs r1, #60 ; 0x3c 8009406: 2093 movs r0, #147 ; 0x93 8009408: f7fb fda4 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE); 800940c: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8009410: b2db uxtb r3, r3 8009412: 461a mov r2, r3 8009414: 4b6c ldr r3, [pc, #432] ; (80095c8 ) 8009416: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800941a: 2303 movs r3, #3 800941c: 213c movs r1, #60 ; 0x3c 800941e: 209a movs r0, #154 ; 0x9a 8009420: f7fb fd98 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 8009424: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8009428: b2db uxtb r3, r3 800942a: 461a mov r2, r3 800942c: 4b66 ldr r3, [pc, #408] ; (80095c8 ) 800942e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009432: 2303 movs r3, #3 8009434: 213c movs r1, #60 ; 0x3c 8009436: 20a1 movs r0, #161 ; 0xa1 8009438: f7fb fd8c bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 800943c: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8009440: b2db uxtb r3, r3 8009442: 461a mov r2, r3 8009444: 4b60 ldr r3, [pc, #384] ; (80095c8 ) 8009446: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800944a: 2303 movs r3, #3 800944c: 213c movs r1, #60 ; 0x3c 800944e: 20a8 movs r0, #168 ; 0xa8 8009450: f7fb fd80 bl 8004f54 if(blk) 8009454: 4b5e ldr r3, [pc, #376] ; (80095d0 ) 8009456: 681b ldr r3, [r3, #0] 8009458: 2b00 cmp r3, #0 800945a: f003 85a8 beq.w 800cfae BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 800945e: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8009462: b2db uxtb r3, r3 8009464: 461a mov r2, r3 8009466: 4b58 ldr r3, [pc, #352] ; (80095c8 ) 8009468: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800946c: 2303 movs r3, #3 800946e: 213c movs r1, #60 ; 0x3c 8009470: 20af movs r0, #175 ; 0xaf 8009472: f7fb fd6f bl 8004f54 if(menupos == Kikdt_1) 8009476: f003 bd9a b.w 800cfae if(menupos == Kpt_1) 800947a: 4b56 ldr r3, [pc, #344] ; (80095d4 ) 800947c: 781b ldrb r3, [r3, #0] 800947e: b2db uxtb r3, r3 8009480: 2b07 cmp r3, #7 8009482: f043 8594 bne.w 800cfae LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8009486: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800948a: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800948e: f7fb fc9b bl 8004dc8 if(!ipt1) 8009492: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8009496: b2db uxtb r3, r3 8009498: 2b00 cmp r3, #0 800949a: d148 bne.n 800952e BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 800949c: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 80094a0: b2db uxtb r3, r3 80094a2: 461a mov r2, r3 80094a4: 4b48 ldr r3, [pc, #288] ; (80095c8 ) 80094a6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80094aa: 2303 movs r3, #3 80094ac: 213c movs r1, #60 ; 0x3c 80094ae: 208c movs r0, #140 ; 0x8c 80094b0: f7fb fd50 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 80094b4: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 80094b8: b2db uxtb r3, r3 80094ba: 461a mov r2, r3 80094bc: 4b42 ldr r3, [pc, #264] ; (80095c8 ) 80094be: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80094c2: 2303 movs r3, #3 80094c4: 213c movs r1, #60 ; 0x3c 80094c6: 2093 movs r0, #147 ; 0x93 80094c8: f7fb fd44 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 80094cc: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 80094d0: b2db uxtb r3, r3 80094d2: 461a mov r2, r3 80094d4: 4b3c ldr r3, [pc, #240] ; (80095c8 ) 80094d6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80094da: 2303 movs r3, #3 80094dc: 213c movs r1, #60 ; 0x3c 80094de: 209a movs r0, #154 ; 0x9a 80094e0: f7fb fd38 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 80094e4: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 80094e8: b2db uxtb r3, r3 80094ea: 461a mov r2, r3 80094ec: 4b36 ldr r3, [pc, #216] ; (80095c8 ) 80094ee: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80094f2: 2303 movs r3, #3 80094f4: 213c movs r1, #60 ; 0x3c 80094f6: 20a1 movs r0, #161 ; 0xa1 80094f8: f7fb fd2c bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE); 80094fc: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8009500: b2db uxtb r3, r3 8009502: 461a mov r2, r3 8009504: 4b30 ldr r3, [pc, #192] ; (80095c8 ) 8009506: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800950a: 2303 movs r3, #3 800950c: 213c movs r1, #60 ; 0x3c 800950e: 20a8 movs r0, #168 ; 0xa8 8009510: f7fb fd20 bl 8004f54 if(blk) 8009514: 4b2e ldr r3, [pc, #184] ; (80095d0 ) 8009516: 681b ldr r3, [r3, #0] 8009518: 2b00 cmp r3, #0 800951a: f003 8548 beq.w 800cfae BSP_LCD_DisplayStringAt(140+35, 60, ".", LEFT_MODE); 800951e: 2303 movs r3, #3 8009520: 4a2a ldr r2, [pc, #168] ; (80095cc ) 8009522: 213c movs r1, #60 ; 0x3c 8009524: 20af movs r0, #175 ; 0xaf 8009526: f7fb fd15 bl 8004f54 if(menupos == Kikdt_1) 800952a: f003 bd40 b.w 800cfae if(ipt1 == 1) 800952e: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8009532: b2db uxtb r3, r3 8009534: 2b01 cmp r3, #1 8009536: d14f bne.n 80095d8 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8009538: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 800953c: b2db uxtb r3, r3 800953e: 461a mov r2, r3 8009540: 4b21 ldr r3, [pc, #132] ; (80095c8 ) 8009542: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009546: 2303 movs r3, #3 8009548: 213c movs r1, #60 ; 0x3c 800954a: 208c movs r0, #140 ; 0x8c 800954c: f7fb fd02 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8009550: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8009554: b2db uxtb r3, r3 8009556: 461a mov r2, r3 8009558: 4b1b ldr r3, [pc, #108] ; (80095c8 ) 800955a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800955e: 2303 movs r3, #3 8009560: 213c movs r1, #60 ; 0x3c 8009562: 2093 movs r0, #147 ; 0x93 8009564: f7fb fcf6 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8009568: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 800956c: b2db uxtb r3, r3 800956e: 461a mov r2, r3 8009570: 4b15 ldr r3, [pc, #84] ; (80095c8 ) 8009572: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009576: 2303 movs r3, #3 8009578: 213c movs r1, #60 ; 0x3c 800957a: 209a movs r0, #154 ; 0x9a 800957c: f7fb fcea bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 8009580: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8009584: b2db uxtb r3, r3 8009586: 461a mov r2, r3 8009588: 4b0f ldr r3, [pc, #60] ; (80095c8 ) 800958a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800958e: 2303 movs r3, #3 8009590: 213c movs r1, #60 ; 0x3c 8009592: 20a1 movs r0, #161 ; 0xa1 8009594: f7fb fcde bl 8004f54 if(blk) 8009598: 4b0d ldr r3, [pc, #52] ; (80095d0 ) 800959a: 681b ldr r3, [r3, #0] 800959c: 2b00 cmp r3, #0 800959e: d005 beq.n 80095ac BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE); 80095a0: 2303 movs r3, #3 80095a2: 4a0a ldr r2, [pc, #40] ; (80095cc ) 80095a4: 213c movs r1, #60 ; 0x3c 80095a6: 20a8 movs r0, #168 ; 0xa8 80095a8: f7fb fcd4 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 80095ac: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 80095b0: b2db uxtb r3, r3 80095b2: 461a mov r2, r3 80095b4: 4b04 ldr r3, [pc, #16] ; (80095c8 ) 80095b6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80095ba: 2303 movs r3, #3 80095bc: 213c movs r1, #60 ; 0x3c 80095be: 20af movs r0, #175 ; 0xaf 80095c0: f7fb fcc8 bl 8004f54 if(menupos == Kikdt_1) 80095c4: f003 bcf3 b.w 800cfae 80095c8: 2002096c .word 0x2002096c 80095cc: 080181c8 .word 0x080181c8 80095d0: 2006ba78 .word 0x2006ba78 80095d4: 20020010 .word 0x20020010 if(ipt1 == 2) 80095d8: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 80095dc: b2db uxtb r3, r3 80095de: 2b02 cmp r3, #2 80095e0: d147 bne.n 8009672 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 80095e2: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 80095e6: b2db uxtb r3, r3 80095e8: 461a mov r2, r3 80095ea: 4bca ldr r3, [pc, #808] ; (8009914 ) 80095ec: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80095f0: 2303 movs r3, #3 80095f2: 213c movs r1, #60 ; 0x3c 80095f4: 208c movs r0, #140 ; 0x8c 80095f6: f7fb fcad bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 80095fa: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 80095fe: b2db uxtb r3, r3 8009600: 461a mov r2, r3 8009602: 4bc4 ldr r3, [pc, #784] ; (8009914 ) 8009604: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009608: 2303 movs r3, #3 800960a: 213c movs r1, #60 ; 0x3c 800960c: 2093 movs r0, #147 ; 0x93 800960e: f7fb fca1 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8009612: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8009616: b2db uxtb r3, r3 8009618: 461a mov r2, r3 800961a: 4bbe ldr r3, [pc, #760] ; (8009914 ) 800961c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009620: 2303 movs r3, #3 8009622: 213c movs r1, #60 ; 0x3c 8009624: 209a movs r0, #154 ; 0x9a 8009626: f7fb fc95 bl 8004f54 if(blk) 800962a: 4bbb ldr r3, [pc, #748] ; (8009918 ) 800962c: 681b ldr r3, [r3, #0] 800962e: 2b00 cmp r3, #0 8009630: d005 beq.n 800963e BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE); 8009632: 2303 movs r3, #3 8009634: 4ab9 ldr r2, [pc, #740] ; (800991c ) 8009636: 213c movs r1, #60 ; 0x3c 8009638: 20a1 movs r0, #161 ; 0xa1 800963a: f7fb fc8b bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 800963e: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8009642: b2db uxtb r3, r3 8009644: 461a mov r2, r3 8009646: 4bb3 ldr r3, [pc, #716] ; (8009914 ) 8009648: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800964c: 2303 movs r3, #3 800964e: 213c movs r1, #60 ; 0x3c 8009650: 20a8 movs r0, #168 ; 0xa8 8009652: f7fb fc7f bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8009656: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 800965a: b2db uxtb r3, r3 800965c: 461a mov r2, r3 800965e: 4bad ldr r3, [pc, #692] ; (8009914 ) 8009660: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009664: 2303 movs r3, #3 8009666: 213c movs r1, #60 ; 0x3c 8009668: 20af movs r0, #175 ; 0xaf 800966a: f7fb fc73 bl 8004f54 if(menupos == Kikdt_1) 800966e: f003 bc9e b.w 800cfae if(ipt1 == 3) 8009672: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8009676: b2db uxtb r3, r3 8009678: 2b03 cmp r3, #3 800967a: d147 bne.n 800970c BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 800967c: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8009680: b2db uxtb r3, r3 8009682: 461a mov r2, r3 8009684: 4ba3 ldr r3, [pc, #652] ; (8009914 ) 8009686: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800968a: 2303 movs r3, #3 800968c: 213c movs r1, #60 ; 0x3c 800968e: 208c movs r0, #140 ; 0x8c 8009690: f7fb fc60 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8009694: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8009698: b2db uxtb r3, r3 800969a: 461a mov r2, r3 800969c: 4b9d ldr r3, [pc, #628] ; (8009914 ) 800969e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80096a2: 2303 movs r3, #3 80096a4: 213c movs r1, #60 ; 0x3c 80096a6: 2093 movs r0, #147 ; 0x93 80096a8: f7fb fc54 bl 8004f54 if(blk) 80096ac: 4b9a ldr r3, [pc, #616] ; (8009918 ) 80096ae: 681b ldr r3, [r3, #0] 80096b0: 2b00 cmp r3, #0 80096b2: d005 beq.n 80096c0 BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE); 80096b4: 2303 movs r3, #3 80096b6: 4a99 ldr r2, [pc, #612] ; (800991c ) 80096b8: 213c movs r1, #60 ; 0x3c 80096ba: 209a movs r0, #154 ; 0x9a 80096bc: f7fb fc4a bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 80096c0: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 80096c4: b2db uxtb r3, r3 80096c6: 461a mov r2, r3 80096c8: 4b92 ldr r3, [pc, #584] ; (8009914 ) 80096ca: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80096ce: 2303 movs r3, #3 80096d0: 213c movs r1, #60 ; 0x3c 80096d2: 20a1 movs r0, #161 ; 0xa1 80096d4: f7fb fc3e bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 80096d8: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 80096dc: b2db uxtb r3, r3 80096de: 461a mov r2, r3 80096e0: 4b8c ldr r3, [pc, #560] ; (8009914 ) 80096e2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80096e6: 2303 movs r3, #3 80096e8: 213c movs r1, #60 ; 0x3c 80096ea: 20a8 movs r0, #168 ; 0xa8 80096ec: f7fb fc32 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 80096f0: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 80096f4: b2db uxtb r3, r3 80096f6: 461a mov r2, r3 80096f8: 4b86 ldr r3, [pc, #536] ; (8009914 ) 80096fa: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80096fe: 2303 movs r3, #3 8009700: 213c movs r1, #60 ; 0x3c 8009702: 20af movs r0, #175 ; 0xaf 8009704: f7fb fc26 bl 8004f54 if(menupos == Kikdt_1) 8009708: f003 bc51 b.w 800cfae if(ipt1 == 4) 800970c: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8009710: b2db uxtb r3, r3 8009712: 2b04 cmp r3, #4 8009714: f043 844b bne.w 800cfae BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8009718: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 800971c: b2db uxtb r3, r3 800971e: 461a mov r2, r3 8009720: 4b7c ldr r3, [pc, #496] ; (8009914 ) 8009722: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009726: 2303 movs r3, #3 8009728: 213c movs r1, #60 ; 0x3c 800972a: 208c movs r0, #140 ; 0x8c 800972c: f7fb fc12 bl 8004f54 if(blk) 8009730: 4b79 ldr r3, [pc, #484] ; (8009918 ) 8009732: 681b ldr r3, [r3, #0] 8009734: 2b00 cmp r3, #0 8009736: d005 beq.n 8009744 BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE); 8009738: 2303 movs r3, #3 800973a: 4a78 ldr r2, [pc, #480] ; (800991c ) 800973c: 213c movs r1, #60 ; 0x3c 800973e: 2093 movs r0, #147 ; 0x93 8009740: f7fb fc08 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE); 8009744: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8009748: b2db uxtb r3, r3 800974a: 461a mov r2, r3 800974c: 4b71 ldr r3, [pc, #452] ; (8009914 ) 800974e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009752: 2303 movs r3, #3 8009754: 213c movs r1, #60 ; 0x3c 8009756: 209a movs r0, #154 ; 0x9a 8009758: f7fb fbfc bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 800975c: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8009760: b2db uxtb r3, r3 8009762: 461a mov r2, r3 8009764: 4b6b ldr r3, [pc, #428] ; (8009914 ) 8009766: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800976a: 2303 movs r3, #3 800976c: 213c movs r1, #60 ; 0x3c 800976e: 20a1 movs r0, #161 ; 0xa1 8009770: f7fb fbf0 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 8009774: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8009778: b2db uxtb r3, r3 800977a: 461a mov r2, r3 800977c: 4b65 ldr r3, [pc, #404] ; (8009914 ) 800977e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009782: 2303 movs r3, #3 8009784: 213c movs r1, #60 ; 0x3c 8009786: 20a8 movs r0, #168 ; 0xa8 8009788: f7fb fbe4 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 800978c: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8009790: b2db uxtb r3, r3 8009792: 461a mov r2, r3 8009794: 4b5f ldr r3, [pc, #380] ; (8009914 ) 8009796: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800979a: 2303 movs r3, #3 800979c: 213c movs r1, #60 ; 0x3c 800979e: 20af movs r0, #175 ; 0xaf 80097a0: f7fb fbd8 bl 8004f54 if(menupos == Kikdt_1) 80097a4: f003 bc03 b.w 800cfae if(menupos >= Kikdt_2 && menupos <= Kpt_2) 80097a8: 4b5d ldr r3, [pc, #372] ; (8009920 ) 80097aa: 781b ldrb r3, [r3, #0] 80097ac: b2db uxtb r3, r3 80097ae: 2b09 cmp r3, #9 80097b0: f241 8151 bls.w 800aa56 80097b4: 4b5a ldr r3, [pc, #360] ; (8009920 ) 80097b6: 781b ldrb r3, [r3, #0] 80097b8: b2db uxtb r3, r3 80097ba: 2b0f cmp r3, #15 80097bc: f201 814b bhi.w 800aa56 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 80097c0: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80097c4: 4857 ldr r0, [pc, #348] ; (8009924 ) 80097c6: f7fb faff bl 8004dc8 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 80097ca: f507 728e add.w r2, r7, #284 ; 0x11c 80097ce: 2303 movs r3, #3 80097d0: 213c movs r1, #60 ; 0x3c 80097d2: 208c movs r0, #140 ; 0x8c 80097d4: f7fb fbbe bl 8004f54 BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 80097d8: f107 02a4 add.w r2, r7, #164 ; 0xa4 80097dc: 2303 movs r3, #3 80097de: 2164 movs r1, #100 ; 0x64 80097e0: 208c movs r0, #140 ; 0x8c 80097e2: f7fb fbb7 bl 8004f54 BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 80097e6: f107 0268 add.w r2, r7, #104 ; 0x68 80097ea: 2303 movs r3, #3 80097ec: 2178 movs r1, #120 ; 0x78 80097ee: 208c movs r0, #140 ; 0x8c 80097f0: f7fb fbb0 bl 8004f54 if(menupos == Kikdt_2) 80097f4: 4b4a ldr r3, [pc, #296] ; (8009920 ) 80097f6: 781b ldrb r3, [r3, #0] 80097f8: b2db uxtb r3, r3 80097fa: 2b0a cmp r3, #10 80097fc: f040 814c bne.w 8009a98 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8009800: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8009804: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8009808: f7fb fade bl 8004dc8 if(blk) 800980c: 4b42 ldr r3, [pc, #264] ; (8009918 ) 800980e: 681b ldr r3, [r3, #0] 8009810: 2b00 cmp r3, #0 8009812: d00b beq.n 800982c BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 8009814: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 8009818: b2db uxtb r3, r3 800981a: 461a mov r2, r3 800981c: 4b3d ldr r3, [pc, #244] ; (8009914 ) 800981e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009822: 2303 movs r3, #3 8009824: 2150 movs r1, #80 ; 0x50 8009826: 208c movs r0, #140 ; 0x8c 8009828: f7fb fb94 bl 8004f54 if(!ipt2) 800982c: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009830: b2db uxtb r3, r3 8009832: 2b00 cmp r3, #0 8009834: d131 bne.n 800989a BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009836: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800983a: b2db uxtb r3, r3 800983c: 461a mov r2, r3 800983e: 4b35 ldr r3, [pc, #212] ; (8009914 ) 8009840: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009844: 2303 movs r3, #3 8009846: 2150 movs r1, #80 ; 0x50 8009848: 2093 movs r0, #147 ; 0x93 800984a: f7fb fb83 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 800984e: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 8009852: b2db uxtb r3, r3 8009854: 461a mov r2, r3 8009856: 4b2f ldr r3, [pc, #188] ; (8009914 ) 8009858: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800985c: 2303 movs r3, #3 800985e: 2150 movs r1, #80 ; 0x50 8009860: 209a movs r0, #154 ; 0x9a 8009862: f7fb fb77 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 8009866: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800986a: b2db uxtb r3, r3 800986c: 461a mov r2, r3 800986e: 4b29 ldr r3, [pc, #164] ; (8009914 ) 8009870: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009874: 2303 movs r3, #3 8009876: 2150 movs r1, #80 ; 0x50 8009878: 20a1 movs r0, #161 ; 0xa1 800987a: f7fb fb6b bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE); 800987e: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009882: b2db uxtb r3, r3 8009884: 461a mov r2, r3 8009886: 4b23 ldr r3, [pc, #140] ; (8009914 ) 8009888: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800988c: 2303 movs r3, #3 800988e: 2150 movs r1, #80 ; 0x50 8009890: 20a8 movs r0, #168 ; 0xa8 8009892: f7fb fb5f bl 8004f54 if(menupos == Kikdt_2) 8009896: f003 bb8d b.w 800cfb4 if(ipt2 == 1) 800989a: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800989e: b2db uxtb r3, r3 80098a0: 2b01 cmp r3, #1 80098a2: d141 bne.n 8009928 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 80098a4: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 80098a8: b2db uxtb r3, r3 80098aa: 461a mov r2, r3 80098ac: 4b19 ldr r3, [pc, #100] ; (8009914 ) 80098ae: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80098b2: 2303 movs r3, #3 80098b4: 2150 movs r1, #80 ; 0x50 80098b6: 2093 movs r0, #147 ; 0x93 80098b8: f7fb fb4c bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 80098bc: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 80098c0: b2db uxtb r3, r3 80098c2: 461a mov r2, r3 80098c4: 4b13 ldr r3, [pc, #76] ; (8009914 ) 80098c6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80098ca: 2303 movs r3, #3 80098cc: 2150 movs r1, #80 ; 0x50 80098ce: 209a movs r0, #154 ; 0x9a 80098d0: f7fb fb40 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 80098d4: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 80098d8: b2db uxtb r3, r3 80098da: 461a mov r2, r3 80098dc: 4b0d ldr r3, [pc, #52] ; (8009914 ) 80098de: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80098e2: 2303 movs r3, #3 80098e4: 2150 movs r1, #80 ; 0x50 80098e6: 20a1 movs r0, #161 ; 0xa1 80098e8: f7fb fb34 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE); 80098ec: 2303 movs r3, #3 80098ee: 4a0b ldr r2, [pc, #44] ; (800991c ) 80098f0: 2150 movs r1, #80 ; 0x50 80098f2: 20a8 movs r0, #168 ; 0xa8 80098f4: f7fb fb2e bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 80098f8: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 80098fc: b2db uxtb r3, r3 80098fe: 461a mov r2, r3 8009900: 4b04 ldr r3, [pc, #16] ; (8009914 ) 8009902: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009906: 2303 movs r3, #3 8009908: 2150 movs r1, #80 ; 0x50 800990a: 20af movs r0, #175 ; 0xaf 800990c: f7fb fb22 bl 8004f54 if(menupos == Kikdt_2) 8009910: f003 bb50 b.w 800cfb4 8009914: 2002096c .word 0x2002096c 8009918: 2006ba78 .word 0x2006ba78 800991c: 080181c8 .word 0x080181c8 8009920: 20020010 .word 0x20020010 8009924: ffd8aa57 .word 0xffd8aa57 if(ipt2 == 2) 8009928: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800992c: b2db uxtb r3, r3 800992e: 2b02 cmp r3, #2 8009930: d137 bne.n 80099a2 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009932: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009936: b2db uxtb r3, r3 8009938: 461a mov r2, r3 800993a: 4bce ldr r3, [pc, #824] ; (8009c74 ) 800993c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009940: 2303 movs r3, #3 8009942: 2150 movs r1, #80 ; 0x50 8009944: 2093 movs r0, #147 ; 0x93 8009946: f7fb fb05 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 800994a: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800994e: b2db uxtb r3, r3 8009950: 461a mov r2, r3 8009952: 4bc8 ldr r3, [pc, #800] ; (8009c74 ) 8009954: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009958: 2303 movs r3, #3 800995a: 2150 movs r1, #80 ; 0x50 800995c: 209a movs r0, #154 ; 0x9a 800995e: f7fb faf9 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE); 8009962: 2303 movs r3, #3 8009964: 4ac4 ldr r2, [pc, #784] ; (8009c78 ) 8009966: 2150 movs r1, #80 ; 0x50 8009968: 20a1 movs r0, #161 ; 0xa1 800996a: f7fb faf3 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800996e: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 8009972: b2db uxtb r3, r3 8009974: 461a mov r2, r3 8009976: 4bbf ldr r3, [pc, #764] ; (8009c74 ) 8009978: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800997c: 2303 movs r3, #3 800997e: 2150 movs r1, #80 ; 0x50 8009980: 20a8 movs r0, #168 ; 0xa8 8009982: f7fb fae7 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009986: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800998a: b2db uxtb r3, r3 800998c: 461a mov r2, r3 800998e: 4bb9 ldr r3, [pc, #740] ; (8009c74 ) 8009990: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009994: 2303 movs r3, #3 8009996: 2150 movs r1, #80 ; 0x50 8009998: 20af movs r0, #175 ; 0xaf 800999a: f7fb fadb bl 8004f54 if(menupos == Kikdt_2) 800999e: f003 bb09 b.w 800cfb4 if(ipt2 == 3) 80099a2: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 80099a6: b2db uxtb r3, r3 80099a8: 2b03 cmp r3, #3 80099aa: d137 bne.n 8009a1c BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 80099ac: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 80099b0: b2db uxtb r3, r3 80099b2: 461a mov r2, r3 80099b4: 4baf ldr r3, [pc, #700] ; (8009c74 ) 80099b6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80099ba: 2303 movs r3, #3 80099bc: 2150 movs r1, #80 ; 0x50 80099be: 2093 movs r0, #147 ; 0x93 80099c0: f7fb fac8 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE); 80099c4: 2303 movs r3, #3 80099c6: 4aac ldr r2, [pc, #688] ; (8009c78 ) 80099c8: 2150 movs r1, #80 ; 0x50 80099ca: 209a movs r0, #154 ; 0x9a 80099cc: f7fb fac2 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 80099d0: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 80099d4: b2db uxtb r3, r3 80099d6: 461a mov r2, r3 80099d8: 4ba6 ldr r3, [pc, #664] ; (8009c74 ) 80099da: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80099de: 2303 movs r3, #3 80099e0: 2150 movs r1, #80 ; 0x50 80099e2: 20a1 movs r0, #161 ; 0xa1 80099e4: f7fb fab6 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 80099e8: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 80099ec: b2db uxtb r3, r3 80099ee: 461a mov r2, r3 80099f0: 4ba0 ldr r3, [pc, #640] ; (8009c74 ) 80099f2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80099f6: 2303 movs r3, #3 80099f8: 2150 movs r1, #80 ; 0x50 80099fa: 20a8 movs r0, #168 ; 0xa8 80099fc: f7fb faaa bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009a00: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009a04: b2db uxtb r3, r3 8009a06: 461a mov r2, r3 8009a08: 4b9a ldr r3, [pc, #616] ; (8009c74 ) 8009a0a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009a0e: 2303 movs r3, #3 8009a10: 2150 movs r1, #80 ; 0x50 8009a12: 20af movs r0, #175 ; 0xaf 8009a14: f7fb fa9e bl 8004f54 if(menupos == Kikdt_2) 8009a18: f003 bacc b.w 800cfb4 if(ipt2 == 4) 8009a1c: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009a20: b2db uxtb r3, r3 8009a22: 2b04 cmp r3, #4 8009a24: f043 82c6 bne.w 800cfb4 BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE); 8009a28: 2303 movs r3, #3 8009a2a: 4a93 ldr r2, [pc, #588] ; (8009c78 ) 8009a2c: 2150 movs r1, #80 ; 0x50 8009a2e: 2093 movs r0, #147 ; 0x93 8009a30: f7fb fa90 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009a34: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009a38: b2db uxtb r3, r3 8009a3a: 461a mov r2, r3 8009a3c: 4b8d ldr r3, [pc, #564] ; (8009c74 ) 8009a3e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009a42: 2303 movs r3, #3 8009a44: 2150 movs r1, #80 ; 0x50 8009a46: 209a movs r0, #154 ; 0x9a 8009a48: f7fb fa84 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 8009a4c: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 8009a50: b2db uxtb r3, r3 8009a52: 461a mov r2, r3 8009a54: 4b87 ldr r3, [pc, #540] ; (8009c74 ) 8009a56: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009a5a: 2303 movs r3, #3 8009a5c: 2150 movs r1, #80 ; 0x50 8009a5e: 20a1 movs r0, #161 ; 0xa1 8009a60: f7fb fa78 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 8009a64: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 8009a68: b2db uxtb r3, r3 8009a6a: 461a mov r2, r3 8009a6c: 4b81 ldr r3, [pc, #516] ; (8009c74 ) 8009a6e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009a72: 2303 movs r3, #3 8009a74: 2150 movs r1, #80 ; 0x50 8009a76: 20a8 movs r0, #168 ; 0xa8 8009a78: f7fb fa6c bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009a7c: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009a80: b2db uxtb r3, r3 8009a82: 461a mov r2, r3 8009a84: 4b7b ldr r3, [pc, #492] ; (8009c74 ) 8009a86: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009a8a: 2303 movs r3, #3 8009a8c: 2150 movs r1, #80 ; 0x50 8009a8e: 20af movs r0, #175 ; 0xaf 8009a90: f7fb fa60 bl 8004f54 if(menupos == Kikdt_2) 8009a94: f003 ba8e b.w 800cfb4 if(menupos == Kikt_2) 8009a98: 4b78 ldr r3, [pc, #480] ; (8009c7c ) 8009a9a: 781b ldrb r3, [r3, #0] 8009a9c: b2db uxtb r3, r3 8009a9e: 2b0b cmp r3, #11 8009aa0: f040 818b bne.w 8009dba LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8009aa4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8009aa8: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8009aac: f7fb f98c bl 8004dc8 if(!ipt2) 8009ab0: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009ab4: b2db uxtb r3, r3 8009ab6: 2b00 cmp r3, #0 8009ab8: d141 bne.n 8009b3e BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 8009aba: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 8009abe: b2db uxtb r3, r3 8009ac0: 461a mov r2, r3 8009ac2: 4b6c ldr r3, [pc, #432] ; (8009c74 ) 8009ac4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009ac8: 2303 movs r3, #3 8009aca: 2150 movs r1, #80 ; 0x50 8009acc: 208c movs r0, #140 ; 0x8c 8009ace: f7fb fa41 bl 8004f54 if(blk) 8009ad2: 4b6b ldr r3, [pc, #428] ; (8009c80 ) 8009ad4: 681b ldr r3, [r3, #0] 8009ad6: 2b00 cmp r3, #0 8009ad8: d00b beq.n 8009af2 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009ada: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009ade: b2db uxtb r3, r3 8009ae0: 461a mov r2, r3 8009ae2: 4b64 ldr r3, [pc, #400] ; (8009c74 ) 8009ae4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009ae8: 2303 movs r3, #3 8009aea: 2150 movs r1, #80 ; 0x50 8009aec: 2093 movs r0, #147 ; 0x93 8009aee: f7fb fa31 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 8009af2: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 8009af6: b2db uxtb r3, r3 8009af8: 461a mov r2, r3 8009afa: 4b5e ldr r3, [pc, #376] ; (8009c74 ) 8009afc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009b00: 2303 movs r3, #3 8009b02: 2150 movs r1, #80 ; 0x50 8009b04: 209a movs r0, #154 ; 0x9a 8009b06: f7fb fa25 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 8009b0a: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 8009b0e: b2db uxtb r3, r3 8009b10: 461a mov r2, r3 8009b12: 4b58 ldr r3, [pc, #352] ; (8009c74 ) 8009b14: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009b18: 2303 movs r3, #3 8009b1a: 2150 movs r1, #80 ; 0x50 8009b1c: 20a1 movs r0, #161 ; 0xa1 8009b1e: f7fb fa19 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009b22: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009b26: b2db uxtb r3, r3 8009b28: 461a mov r2, r3 8009b2a: 4b52 ldr r3, [pc, #328] ; (8009c74 ) 8009b2c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009b30: 2303 movs r3, #3 8009b32: 2150 movs r1, #80 ; 0x50 8009b34: 20a8 movs r0, #168 ; 0xa8 8009b36: f7fb fa0d bl 8004f54 if(menupos == Kikdt_2) 8009b3a: f003 ba3b b.w 800cfb4 if(ipt2 == 1) 8009b3e: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009b42: b2db uxtb r3, r3 8009b44: 2b01 cmp r3, #1 8009b46: d147 bne.n 8009bd8 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 8009b48: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 8009b4c: b2db uxtb r3, r3 8009b4e: 461a mov r2, r3 8009b50: 4b48 ldr r3, [pc, #288] ; (8009c74 ) 8009b52: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009b56: 2303 movs r3, #3 8009b58: 2150 movs r1, #80 ; 0x50 8009b5a: 208c movs r0, #140 ; 0x8c 8009b5c: f7fb f9fa bl 8004f54 if(blk) 8009b60: 4b47 ldr r3, [pc, #284] ; (8009c80 ) 8009b62: 681b ldr r3, [r3, #0] 8009b64: 2b00 cmp r3, #0 8009b66: d00b beq.n 8009b80 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009b68: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009b6c: b2db uxtb r3, r3 8009b6e: 461a mov r2, r3 8009b70: 4b40 ldr r3, [pc, #256] ; (8009c74 ) 8009b72: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009b76: 2303 movs r3, #3 8009b78: 2150 movs r1, #80 ; 0x50 8009b7a: 2093 movs r0, #147 ; 0x93 8009b7c: f7fb f9ea bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 8009b80: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 8009b84: b2db uxtb r3, r3 8009b86: 461a mov r2, r3 8009b88: 4b3a ldr r3, [pc, #232] ; (8009c74 ) 8009b8a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009b8e: 2303 movs r3, #3 8009b90: 2150 movs r1, #80 ; 0x50 8009b92: 209a movs r0, #154 ; 0x9a 8009b94: f7fb f9de bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 8009b98: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 8009b9c: b2db uxtb r3, r3 8009b9e: 461a mov r2, r3 8009ba0: 4b34 ldr r3, [pc, #208] ; (8009c74 ) 8009ba2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009ba6: 2303 movs r3, #3 8009ba8: 2150 movs r1, #80 ; 0x50 8009baa: 20a1 movs r0, #161 ; 0xa1 8009bac: f7fb f9d2 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE); 8009bb0: 2303 movs r3, #3 8009bb2: 4a31 ldr r2, [pc, #196] ; (8009c78 ) 8009bb4: 2150 movs r1, #80 ; 0x50 8009bb6: 20a8 movs r0, #168 ; 0xa8 8009bb8: f7fb f9cc bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009bbc: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009bc0: b2db uxtb r3, r3 8009bc2: 461a mov r2, r3 8009bc4: 4b2b ldr r3, [pc, #172] ; (8009c74 ) 8009bc6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009bca: 2303 movs r3, #3 8009bcc: 2150 movs r1, #80 ; 0x50 8009bce: 20af movs r0, #175 ; 0xaf 8009bd0: f7fb f9c0 bl 8004f54 if(menupos == Kikdt_2) 8009bd4: f003 b9ee b.w 800cfb4 if(ipt2 == 2) 8009bd8: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009bdc: b2db uxtb r3, r3 8009bde: 2b02 cmp r3, #2 8009be0: d150 bne.n 8009c84 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 8009be2: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 8009be6: b2db uxtb r3, r3 8009be8: 461a mov r2, r3 8009bea: 4b22 ldr r3, [pc, #136] ; (8009c74 ) 8009bec: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009bf0: 2303 movs r3, #3 8009bf2: 2150 movs r1, #80 ; 0x50 8009bf4: 208c movs r0, #140 ; 0x8c 8009bf6: f7fb f9ad bl 8004f54 if(blk) 8009bfa: 4b21 ldr r3, [pc, #132] ; (8009c80 ) 8009bfc: 681b ldr r3, [r3, #0] 8009bfe: 2b00 cmp r3, #0 8009c00: d00b beq.n 8009c1a BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009c02: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009c06: b2db uxtb r3, r3 8009c08: 461a mov r2, r3 8009c0a: 4b1a ldr r3, [pc, #104] ; (8009c74 ) 8009c0c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009c10: 2303 movs r3, #3 8009c12: 2150 movs r1, #80 ; 0x50 8009c14: 2093 movs r0, #147 ; 0x93 8009c16: f7fb f99d bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 8009c1a: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 8009c1e: b2db uxtb r3, r3 8009c20: 461a mov r2, r3 8009c22: 4b14 ldr r3, [pc, #80] ; (8009c74 ) 8009c24: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009c28: 2303 movs r3, #3 8009c2a: 2150 movs r1, #80 ; 0x50 8009c2c: 209a movs r0, #154 ; 0x9a 8009c2e: f7fb f991 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE); 8009c32: 2303 movs r3, #3 8009c34: 4a10 ldr r2, [pc, #64] ; (8009c78 ) 8009c36: 2150 movs r1, #80 ; 0x50 8009c38: 20a1 movs r0, #161 ; 0xa1 8009c3a: f7fb f98b bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 8009c3e: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 8009c42: b2db uxtb r3, r3 8009c44: 461a mov r2, r3 8009c46: 4b0b ldr r3, [pc, #44] ; (8009c74 ) 8009c48: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009c4c: 2303 movs r3, #3 8009c4e: 2150 movs r1, #80 ; 0x50 8009c50: 20a8 movs r0, #168 ; 0xa8 8009c52: f7fb f97f bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009c56: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009c5a: b2db uxtb r3, r3 8009c5c: 461a mov r2, r3 8009c5e: 4b05 ldr r3, [pc, #20] ; (8009c74 ) 8009c60: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009c64: 2303 movs r3, #3 8009c66: 2150 movs r1, #80 ; 0x50 8009c68: 20af movs r0, #175 ; 0xaf 8009c6a: f7fb f973 bl 8004f54 if(menupos == Kikdt_2) 8009c6e: f003 b9a1 b.w 800cfb4 8009c72: bf00 nop 8009c74: 2002096c .word 0x2002096c 8009c78: 080181c8 .word 0x080181c8 8009c7c: 20020010 .word 0x20020010 8009c80: 2006ba78 .word 0x2006ba78 if(ipt2 == 3) 8009c84: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009c88: b2db uxtb r3, r3 8009c8a: 2b03 cmp r3, #3 8009c8c: d147 bne.n 8009d1e BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 8009c8e: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 8009c92: b2db uxtb r3, r3 8009c94: 461a mov r2, r3 8009c96: 4bbf ldr r3, [pc, #764] ; (8009f94 ) 8009c98: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009c9c: 2303 movs r3, #3 8009c9e: 2150 movs r1, #80 ; 0x50 8009ca0: 208c movs r0, #140 ; 0x8c 8009ca2: f7fb f957 bl 8004f54 if(blk) 8009ca6: 4bbc ldr r3, [pc, #752] ; (8009f98 ) 8009ca8: 681b ldr r3, [r3, #0] 8009caa: 2b00 cmp r3, #0 8009cac: d00b beq.n 8009cc6 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009cae: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009cb2: b2db uxtb r3, r3 8009cb4: 461a mov r2, r3 8009cb6: 4bb7 ldr r3, [pc, #732] ; (8009f94 ) 8009cb8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009cbc: 2303 movs r3, #3 8009cbe: 2150 movs r1, #80 ; 0x50 8009cc0: 2093 movs r0, #147 ; 0x93 8009cc2: f7fb f947 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE); 8009cc6: 2303 movs r3, #3 8009cc8: 4ab4 ldr r2, [pc, #720] ; (8009f9c ) 8009cca: 2150 movs r1, #80 ; 0x50 8009ccc: 209a movs r0, #154 ; 0x9a 8009cce: f7fb f941 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 8009cd2: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 8009cd6: b2db uxtb r3, r3 8009cd8: 461a mov r2, r3 8009cda: 4bae ldr r3, [pc, #696] ; (8009f94 ) 8009cdc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009ce0: 2303 movs r3, #3 8009ce2: 2150 movs r1, #80 ; 0x50 8009ce4: 20a1 movs r0, #161 ; 0xa1 8009ce6: f7fb f935 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 8009cea: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 8009cee: b2db uxtb r3, r3 8009cf0: 461a mov r2, r3 8009cf2: 4ba8 ldr r3, [pc, #672] ; (8009f94 ) 8009cf4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009cf8: 2303 movs r3, #3 8009cfa: 2150 movs r1, #80 ; 0x50 8009cfc: 20a8 movs r0, #168 ; 0xa8 8009cfe: f7fb f929 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009d02: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009d06: b2db uxtb r3, r3 8009d08: 461a mov r2, r3 8009d0a: 4ba2 ldr r3, [pc, #648] ; (8009f94 ) 8009d0c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009d10: 2303 movs r3, #3 8009d12: 2150 movs r1, #80 ; 0x50 8009d14: 20af movs r0, #175 ; 0xaf 8009d16: f7fb f91d bl 8004f54 if(menupos == Kikdt_2) 8009d1a: f003 b94b b.w 800cfb4 if(ipt2 == 4) 8009d1e: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009d22: b2db uxtb r3, r3 8009d24: 2b04 cmp r3, #4 8009d26: f043 8145 bne.w 800cfb4 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 8009d2a: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 8009d2e: b2db uxtb r3, r3 8009d30: 461a mov r2, r3 8009d32: 4b98 ldr r3, [pc, #608] ; (8009f94 ) 8009d34: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009d38: 2303 movs r3, #3 8009d3a: 2150 movs r1, #80 ; 0x50 8009d3c: 208c movs r0, #140 ; 0x8c 8009d3e: f7fb f909 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE); 8009d42: 2303 movs r3, #3 8009d44: 4a95 ldr r2, [pc, #596] ; (8009f9c ) 8009d46: 2150 movs r1, #80 ; 0x50 8009d48: 2093 movs r0, #147 ; 0x93 8009d4a: f7fb f903 bl 8004f54 if(blk) 8009d4e: 4b92 ldr r3, [pc, #584] ; (8009f98 ) 8009d50: 681b ldr r3, [r3, #0] 8009d52: 2b00 cmp r3, #0 8009d54: d00b beq.n 8009d6e BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009d56: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009d5a: b2db uxtb r3, r3 8009d5c: 461a mov r2, r3 8009d5e: 4b8d ldr r3, [pc, #564] ; (8009f94 ) 8009d60: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009d64: 2303 movs r3, #3 8009d66: 2150 movs r1, #80 ; 0x50 8009d68: 209a movs r0, #154 ; 0x9a 8009d6a: f7fb f8f3 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 8009d6e: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 8009d72: b2db uxtb r3, r3 8009d74: 461a mov r2, r3 8009d76: 4b87 ldr r3, [pc, #540] ; (8009f94 ) 8009d78: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009d7c: 2303 movs r3, #3 8009d7e: 2150 movs r1, #80 ; 0x50 8009d80: 20a1 movs r0, #161 ; 0xa1 8009d82: f7fb f8e7 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 8009d86: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 8009d8a: b2db uxtb r3, r3 8009d8c: 461a mov r2, r3 8009d8e: 4b81 ldr r3, [pc, #516] ; (8009f94 ) 8009d90: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009d94: 2303 movs r3, #3 8009d96: 2150 movs r1, #80 ; 0x50 8009d98: 20a8 movs r0, #168 ; 0xa8 8009d9a: f7fb f8db bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009d9e: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009da2: b2db uxtb r3, r3 8009da4: 461a mov r2, r3 8009da6: 4b7b ldr r3, [pc, #492] ; (8009f94 ) 8009da8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009dac: 2303 movs r3, #3 8009dae: 2150 movs r1, #80 ; 0x50 8009db0: 20af movs r0, #175 ; 0xaf 8009db2: f7fb f8cf bl 8004f54 if(menupos == Kikdt_2) 8009db6: f003 b8fd b.w 800cfb4 if(menupos == Kiks_2) 8009dba: 4b79 ldr r3, [pc, #484] ; (8009fa0 ) 8009dbc: 781b ldrb r3, [r3, #0] 8009dbe: b2db uxtb r3, r3 8009dc0: 2b0c cmp r3, #12 8009dc2: f040 818a bne.w 800a0da LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8009dc6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8009dca: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8009dce: f7fa fffb bl 8004dc8 if(!ipt2) 8009dd2: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009dd6: b2db uxtb r3, r3 8009dd8: 2b00 cmp r3, #0 8009dda: d141 bne.n 8009e60 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 8009ddc: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 8009de0: b2db uxtb r3, r3 8009de2: 461a mov r2, r3 8009de4: 4b6b ldr r3, [pc, #428] ; (8009f94 ) 8009de6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009dea: 2303 movs r3, #3 8009dec: 2150 movs r1, #80 ; 0x50 8009dee: 208c movs r0, #140 ; 0x8c 8009df0: f7fb f8b0 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009df4: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009df8: b2db uxtb r3, r3 8009dfa: 461a mov r2, r3 8009dfc: 4b65 ldr r3, [pc, #404] ; (8009f94 ) 8009dfe: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009e02: 2303 movs r3, #3 8009e04: 2150 movs r1, #80 ; 0x50 8009e06: 2093 movs r0, #147 ; 0x93 8009e08: f7fb f8a4 bl 8004f54 if(blk) 8009e0c: 4b62 ldr r3, [pc, #392] ; (8009f98 ) 8009e0e: 681b ldr r3, [r3, #0] 8009e10: 2b00 cmp r3, #0 8009e12: d00b beq.n 8009e2c BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 8009e14: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 8009e18: b2db uxtb r3, r3 8009e1a: 461a mov r2, r3 8009e1c: 4b5d ldr r3, [pc, #372] ; (8009f94 ) 8009e1e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009e22: 2303 movs r3, #3 8009e24: 2150 movs r1, #80 ; 0x50 8009e26: 209a movs r0, #154 ; 0x9a 8009e28: f7fb f894 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 8009e2c: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 8009e30: b2db uxtb r3, r3 8009e32: 461a mov r2, r3 8009e34: 4b57 ldr r3, [pc, #348] ; (8009f94 ) 8009e36: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009e3a: 2303 movs r3, #3 8009e3c: 2150 movs r1, #80 ; 0x50 8009e3e: 20a1 movs r0, #161 ; 0xa1 8009e40: f7fb f888 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009e44: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009e48: b2db uxtb r3, r3 8009e4a: 461a mov r2, r3 8009e4c: 4b51 ldr r3, [pc, #324] ; (8009f94 ) 8009e4e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009e52: 2303 movs r3, #3 8009e54: 2150 movs r1, #80 ; 0x50 8009e56: 20a8 movs r0, #168 ; 0xa8 8009e58: f7fb f87c bl 8004f54 if(menupos == Kikdt_2) 8009e5c: f003 b8aa b.w 800cfb4 if(ipt2 == 1) 8009e60: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009e64: b2db uxtb r3, r3 8009e66: 2b01 cmp r3, #1 8009e68: d147 bne.n 8009efa BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 8009e6a: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 8009e6e: b2db uxtb r3, r3 8009e70: 461a mov r2, r3 8009e72: 4b48 ldr r3, [pc, #288] ; (8009f94 ) 8009e74: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009e78: 2303 movs r3, #3 8009e7a: 2150 movs r1, #80 ; 0x50 8009e7c: 208c movs r0, #140 ; 0x8c 8009e7e: f7fb f869 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009e82: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009e86: b2db uxtb r3, r3 8009e88: 461a mov r2, r3 8009e8a: 4b42 ldr r3, [pc, #264] ; (8009f94 ) 8009e8c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009e90: 2303 movs r3, #3 8009e92: 2150 movs r1, #80 ; 0x50 8009e94: 2093 movs r0, #147 ; 0x93 8009e96: f7fb f85d bl 8004f54 if(blk) 8009e9a: 4b3f ldr r3, [pc, #252] ; (8009f98 ) 8009e9c: 681b ldr r3, [r3, #0] 8009e9e: 2b00 cmp r3, #0 8009ea0: d00b beq.n 8009eba BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 8009ea2: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 8009ea6: b2db uxtb r3, r3 8009ea8: 461a mov r2, r3 8009eaa: 4b3a ldr r3, [pc, #232] ; (8009f94 ) 8009eac: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009eb0: 2303 movs r3, #3 8009eb2: 2150 movs r1, #80 ; 0x50 8009eb4: 209a movs r0, #154 ; 0x9a 8009eb6: f7fb f84d bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 8009eba: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 8009ebe: b2db uxtb r3, r3 8009ec0: 461a mov r2, r3 8009ec2: 4b34 ldr r3, [pc, #208] ; (8009f94 ) 8009ec4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009ec8: 2303 movs r3, #3 8009eca: 2150 movs r1, #80 ; 0x50 8009ecc: 20a1 movs r0, #161 ; 0xa1 8009ece: f7fb f841 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE); 8009ed2: 2303 movs r3, #3 8009ed4: 4a31 ldr r2, [pc, #196] ; (8009f9c ) 8009ed6: 2150 movs r1, #80 ; 0x50 8009ed8: 20a8 movs r0, #168 ; 0xa8 8009eda: f7fb f83b bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009ede: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009ee2: b2db uxtb r3, r3 8009ee4: 461a mov r2, r3 8009ee6: 4b2b ldr r3, [pc, #172] ; (8009f94 ) 8009ee8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009eec: 2303 movs r3, #3 8009eee: 2150 movs r1, #80 ; 0x50 8009ef0: 20af movs r0, #175 ; 0xaf 8009ef2: f7fb f82f bl 8004f54 if(menupos == Kikdt_2) 8009ef6: f003 b85d b.w 800cfb4 if(ipt2 == 2) 8009efa: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009efe: b2db uxtb r3, r3 8009f00: 2b02 cmp r3, #2 8009f02: d14f bne.n 8009fa4 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 8009f04: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 8009f08: b2db uxtb r3, r3 8009f0a: 461a mov r2, r3 8009f0c: 4b21 ldr r3, [pc, #132] ; (8009f94 ) 8009f0e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009f12: 2303 movs r3, #3 8009f14: 2150 movs r1, #80 ; 0x50 8009f16: 208c movs r0, #140 ; 0x8c 8009f18: f7fb f81c bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009f1c: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009f20: b2db uxtb r3, r3 8009f22: 461a mov r2, r3 8009f24: 4b1b ldr r3, [pc, #108] ; (8009f94 ) 8009f26: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009f2a: 2303 movs r3, #3 8009f2c: 2150 movs r1, #80 ; 0x50 8009f2e: 2093 movs r0, #147 ; 0x93 8009f30: f7fb f810 bl 8004f54 if(blk) 8009f34: 4b18 ldr r3, [pc, #96] ; (8009f98 ) 8009f36: 681b ldr r3, [r3, #0] 8009f38: 2b00 cmp r3, #0 8009f3a: d00b beq.n 8009f54 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 8009f3c: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 8009f40: b2db uxtb r3, r3 8009f42: 461a mov r2, r3 8009f44: 4b13 ldr r3, [pc, #76] ; (8009f94 ) 8009f46: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009f4a: 2303 movs r3, #3 8009f4c: 2150 movs r1, #80 ; 0x50 8009f4e: 209a movs r0, #154 ; 0x9a 8009f50: f7fb f800 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE); 8009f54: 2303 movs r3, #3 8009f56: 4a11 ldr r2, [pc, #68] ; (8009f9c ) 8009f58: 2150 movs r1, #80 ; 0x50 8009f5a: 20a1 movs r0, #161 ; 0xa1 8009f5c: f7fa fffa bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 8009f60: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 8009f64: b2db uxtb r3, r3 8009f66: 461a mov r2, r3 8009f68: 4b0a ldr r3, [pc, #40] ; (8009f94 ) 8009f6a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009f6e: 2303 movs r3, #3 8009f70: 2150 movs r1, #80 ; 0x50 8009f72: 20a8 movs r0, #168 ; 0xa8 8009f74: f7fa ffee bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009f78: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009f7c: b2db uxtb r3, r3 8009f7e: 461a mov r2, r3 8009f80: 4b04 ldr r3, [pc, #16] ; (8009f94 ) 8009f82: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009f86: 2303 movs r3, #3 8009f88: 2150 movs r1, #80 ; 0x50 8009f8a: 20af movs r0, #175 ; 0xaf 8009f8c: f7fa ffe2 bl 8004f54 if(menupos == Kikdt_2) 8009f90: f003 b810 b.w 800cfb4 8009f94: 2002096c .word 0x2002096c 8009f98: 2006ba78 .word 0x2006ba78 8009f9c: 080181c8 .word 0x080181c8 8009fa0: 20020010 .word 0x20020010 if(ipt2 == 3) 8009fa4: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009fa8: b2db uxtb r3, r3 8009faa: 2b03 cmp r3, #3 8009fac: d147 bne.n 800a03e BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 8009fae: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 8009fb2: b2db uxtb r3, r3 8009fb4: 461a mov r2, r3 8009fb6: 4bbf ldr r3, [pc, #764] ; (800a2b4 ) 8009fb8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009fbc: 2303 movs r3, #3 8009fbe: 2150 movs r1, #80 ; 0x50 8009fc0: 208c movs r0, #140 ; 0x8c 8009fc2: f7fa ffc7 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009fc6: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009fca: b2db uxtb r3, r3 8009fcc: 461a mov r2, r3 8009fce: 4bb9 ldr r3, [pc, #740] ; (800a2b4 ) 8009fd0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009fd4: 2303 movs r3, #3 8009fd6: 2150 movs r1, #80 ; 0x50 8009fd8: 2093 movs r0, #147 ; 0x93 8009fda: f7fa ffbb bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE); 8009fde: 2303 movs r3, #3 8009fe0: 4ab5 ldr r2, [pc, #724] ; (800a2b8 ) 8009fe2: 2150 movs r1, #80 ; 0x50 8009fe4: 209a movs r0, #154 ; 0x9a 8009fe6: f7fa ffb5 bl 8004f54 if(blk) 8009fea: 4bb4 ldr r3, [pc, #720] ; (800a2bc ) 8009fec: 681b ldr r3, [r3, #0] 8009fee: 2b00 cmp r3, #0 8009ff0: d00b beq.n 800a00a BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 8009ff2: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 8009ff6: b2db uxtb r3, r3 8009ff8: 461a mov r2, r3 8009ffa: 4bae ldr r3, [pc, #696] ; (800a2b4 ) 8009ffc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a000: 2303 movs r3, #3 800a002: 2150 movs r1, #80 ; 0x50 800a004: 20a1 movs r0, #161 ; 0xa1 800a006: f7fa ffa5 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a00a: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a00e: b2db uxtb r3, r3 800a010: 461a mov r2, r3 800a012: 4ba8 ldr r3, [pc, #672] ; (800a2b4 ) 800a014: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a018: 2303 movs r3, #3 800a01a: 2150 movs r1, #80 ; 0x50 800a01c: 20a8 movs r0, #168 ; 0xa8 800a01e: f7fa ff99 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a022: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a026: b2db uxtb r3, r3 800a028: 461a mov r2, r3 800a02a: 4ba2 ldr r3, [pc, #648] ; (800a2b4 ) 800a02c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a030: 2303 movs r3, #3 800a032: 2150 movs r1, #80 ; 0x50 800a034: 20af movs r0, #175 ; 0xaf 800a036: f7fa ff8d bl 8004f54 if(menupos == Kikdt_2) 800a03a: f002 bfbb b.w 800cfb4 if(ipt2 == 4) 800a03e: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a042: b2db uxtb r3, r3 800a044: 2b04 cmp r3, #4 800a046: f042 87b5 bne.w 800cfb4 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a04a: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a04e: b2db uxtb r3, r3 800a050: 461a mov r2, r3 800a052: 4b98 ldr r3, [pc, #608] ; (800a2b4 ) 800a054: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a058: 2303 movs r3, #3 800a05a: 2150 movs r1, #80 ; 0x50 800a05c: 208c movs r0, #140 ; 0x8c 800a05e: f7fa ff79 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE); 800a062: 2303 movs r3, #3 800a064: 4a94 ldr r2, [pc, #592] ; (800a2b8 ) 800a066: 2150 movs r1, #80 ; 0x50 800a068: 2093 movs r0, #147 ; 0x93 800a06a: f7fa ff73 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a06e: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a072: b2db uxtb r3, r3 800a074: 461a mov r2, r3 800a076: 4b8f ldr r3, [pc, #572] ; (800a2b4 ) 800a078: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a07c: 2303 movs r3, #3 800a07e: 2150 movs r1, #80 ; 0x50 800a080: 209a movs r0, #154 ; 0x9a 800a082: f7fa ff67 bl 8004f54 if(blk) 800a086: 4b8d ldr r3, [pc, #564] ; (800a2bc ) 800a088: 681b ldr r3, [r3, #0] 800a08a: 2b00 cmp r3, #0 800a08c: d00b beq.n 800a0a6 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a08e: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a092: b2db uxtb r3, r3 800a094: 461a mov r2, r3 800a096: 4b87 ldr r3, [pc, #540] ; (800a2b4 ) 800a098: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a09c: 2303 movs r3, #3 800a09e: 2150 movs r1, #80 ; 0x50 800a0a0: 20a1 movs r0, #161 ; 0xa1 800a0a2: f7fa ff57 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a0a6: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a0aa: b2db uxtb r3, r3 800a0ac: 461a mov r2, r3 800a0ae: 4b81 ldr r3, [pc, #516] ; (800a2b4 ) 800a0b0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a0b4: 2303 movs r3, #3 800a0b6: 2150 movs r1, #80 ; 0x50 800a0b8: 20a8 movs r0, #168 ; 0xa8 800a0ba: f7fa ff4b bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a0be: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a0c2: b2db uxtb r3, r3 800a0c4: 461a mov r2, r3 800a0c6: 4b7b ldr r3, [pc, #492] ; (800a2b4 ) 800a0c8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a0cc: 2303 movs r3, #3 800a0ce: 2150 movs r1, #80 ; 0x50 800a0d0: 20af movs r0, #175 ; 0xaf 800a0d2: f7fa ff3f bl 8004f54 if(menupos == Kikdt_2) 800a0d6: f002 bf6d b.w 800cfb4 if(menupos == Kikd_2) 800a0da: 4b79 ldr r3, [pc, #484] ; (800a2c0 ) 800a0dc: 781b ldrb r3, [r3, #0] 800a0de: b2db uxtb r3, r3 800a0e0: 2b0d cmp r3, #13 800a0e2: f040 818a bne.w 800a3fa LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800a0e6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800a0ea: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800a0ee: f7fa fe6b bl 8004dc8 if(!ipt2) 800a0f2: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a0f6: b2db uxtb r3, r3 800a0f8: 2b00 cmp r3, #0 800a0fa: d141 bne.n 800a180 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a0fc: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a100: b2db uxtb r3, r3 800a102: 461a mov r2, r3 800a104: 4b6b ldr r3, [pc, #428] ; (800a2b4 ) 800a106: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a10a: 2303 movs r3, #3 800a10c: 2150 movs r1, #80 ; 0x50 800a10e: 208c movs r0, #140 ; 0x8c 800a110: f7fa ff20 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a114: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a118: b2db uxtb r3, r3 800a11a: 461a mov r2, r3 800a11c: 4b65 ldr r3, [pc, #404] ; (800a2b4 ) 800a11e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a122: 2303 movs r3, #3 800a124: 2150 movs r1, #80 ; 0x50 800a126: 2093 movs r0, #147 ; 0x93 800a128: f7fa ff14 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a12c: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a130: b2db uxtb r3, r3 800a132: 461a mov r2, r3 800a134: 4b5f ldr r3, [pc, #380] ; (800a2b4 ) 800a136: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a13a: 2303 movs r3, #3 800a13c: 2150 movs r1, #80 ; 0x50 800a13e: 209a movs r0, #154 ; 0x9a 800a140: f7fa ff08 bl 8004f54 if(blk) 800a144: 4b5d ldr r3, [pc, #372] ; (800a2bc ) 800a146: 681b ldr r3, [r3, #0] 800a148: 2b00 cmp r3, #0 800a14a: d00b beq.n 800a164 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a14c: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a150: b2db uxtb r3, r3 800a152: 461a mov r2, r3 800a154: 4b57 ldr r3, [pc, #348] ; (800a2b4 ) 800a156: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a15a: 2303 movs r3, #3 800a15c: 2150 movs r1, #80 ; 0x50 800a15e: 20a1 movs r0, #161 ; 0xa1 800a160: f7fa fef8 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a164: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a168: b2db uxtb r3, r3 800a16a: 461a mov r2, r3 800a16c: 4b51 ldr r3, [pc, #324] ; (800a2b4 ) 800a16e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a172: 2303 movs r3, #3 800a174: 2150 movs r1, #80 ; 0x50 800a176: 20a8 movs r0, #168 ; 0xa8 800a178: f7fa feec bl 8004f54 if(menupos == Kikdt_2) 800a17c: f002 bf1a b.w 800cfb4 if(ipt2 == 1) 800a180: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a184: b2db uxtb r3, r3 800a186: 2b01 cmp r3, #1 800a188: d147 bne.n 800a21a BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a18a: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a18e: b2db uxtb r3, r3 800a190: 461a mov r2, r3 800a192: 4b48 ldr r3, [pc, #288] ; (800a2b4 ) 800a194: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a198: 2303 movs r3, #3 800a19a: 2150 movs r1, #80 ; 0x50 800a19c: 208c movs r0, #140 ; 0x8c 800a19e: f7fa fed9 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a1a2: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a1a6: b2db uxtb r3, r3 800a1a8: 461a mov r2, r3 800a1aa: 4b42 ldr r3, [pc, #264] ; (800a2b4 ) 800a1ac: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a1b0: 2303 movs r3, #3 800a1b2: 2150 movs r1, #80 ; 0x50 800a1b4: 2093 movs r0, #147 ; 0x93 800a1b6: f7fa fecd bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a1ba: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a1be: b2db uxtb r3, r3 800a1c0: 461a mov r2, r3 800a1c2: 4b3c ldr r3, [pc, #240] ; (800a2b4 ) 800a1c4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a1c8: 2303 movs r3, #3 800a1ca: 2150 movs r1, #80 ; 0x50 800a1cc: 209a movs r0, #154 ; 0x9a 800a1ce: f7fa fec1 bl 8004f54 if(blk) 800a1d2: 4b3a ldr r3, [pc, #232] ; (800a2bc ) 800a1d4: 681b ldr r3, [r3, #0] 800a1d6: 2b00 cmp r3, #0 800a1d8: d00b beq.n 800a1f2 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a1da: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a1de: b2db uxtb r3, r3 800a1e0: 461a mov r2, r3 800a1e2: 4b34 ldr r3, [pc, #208] ; (800a2b4 ) 800a1e4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a1e8: 2303 movs r3, #3 800a1ea: 2150 movs r1, #80 ; 0x50 800a1ec: 20a1 movs r0, #161 ; 0xa1 800a1ee: f7fa feb1 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE); 800a1f2: 2303 movs r3, #3 800a1f4: 4a30 ldr r2, [pc, #192] ; (800a2b8 ) 800a1f6: 2150 movs r1, #80 ; 0x50 800a1f8: 20a8 movs r0, #168 ; 0xa8 800a1fa: f7fa feab bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a1fe: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a202: b2db uxtb r3, r3 800a204: 461a mov r2, r3 800a206: 4b2b ldr r3, [pc, #172] ; (800a2b4 ) 800a208: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a20c: 2303 movs r3, #3 800a20e: 2150 movs r1, #80 ; 0x50 800a210: 20af movs r0, #175 ; 0xaf 800a212: f7fa fe9f bl 8004f54 if(menupos == Kikdt_2) 800a216: f002 becd b.w 800cfb4 if(ipt2 == 2) 800a21a: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a21e: b2db uxtb r3, r3 800a220: 2b02 cmp r3, #2 800a222: d14f bne.n 800a2c4 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a224: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a228: b2db uxtb r3, r3 800a22a: 461a mov r2, r3 800a22c: 4b21 ldr r3, [pc, #132] ; (800a2b4 ) 800a22e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a232: 2303 movs r3, #3 800a234: 2150 movs r1, #80 ; 0x50 800a236: 208c movs r0, #140 ; 0x8c 800a238: f7fa fe8c bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a23c: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a240: b2db uxtb r3, r3 800a242: 461a mov r2, r3 800a244: 4b1b ldr r3, [pc, #108] ; (800a2b4 ) 800a246: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a24a: 2303 movs r3, #3 800a24c: 2150 movs r1, #80 ; 0x50 800a24e: 2093 movs r0, #147 ; 0x93 800a250: f7fa fe80 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a254: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a258: b2db uxtb r3, r3 800a25a: 461a mov r2, r3 800a25c: 4b15 ldr r3, [pc, #84] ; (800a2b4 ) 800a25e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a262: 2303 movs r3, #3 800a264: 2150 movs r1, #80 ; 0x50 800a266: 209a movs r0, #154 ; 0x9a 800a268: f7fa fe74 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE); 800a26c: 2303 movs r3, #3 800a26e: 4a12 ldr r2, [pc, #72] ; (800a2b8 ) 800a270: 2150 movs r1, #80 ; 0x50 800a272: 20a1 movs r0, #161 ; 0xa1 800a274: f7fa fe6e bl 8004f54 if(blk) 800a278: 4b10 ldr r3, [pc, #64] ; (800a2bc ) 800a27a: 681b ldr r3, [r3, #0] 800a27c: 2b00 cmp r3, #0 800a27e: d00b beq.n 800a298 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a280: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a284: b2db uxtb r3, r3 800a286: 461a mov r2, r3 800a288: 4b0a ldr r3, [pc, #40] ; (800a2b4 ) 800a28a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a28e: 2303 movs r3, #3 800a290: 2150 movs r1, #80 ; 0x50 800a292: 20a8 movs r0, #168 ; 0xa8 800a294: f7fa fe5e bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a298: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a29c: b2db uxtb r3, r3 800a29e: 461a mov r2, r3 800a2a0: 4b04 ldr r3, [pc, #16] ; (800a2b4 ) 800a2a2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a2a6: 2303 movs r3, #3 800a2a8: 2150 movs r1, #80 ; 0x50 800a2aa: 20af movs r0, #175 ; 0xaf 800a2ac: f7fa fe52 bl 8004f54 if(menupos == Kikdt_2) 800a2b0: f002 be80 b.w 800cfb4 800a2b4: 2002096c .word 0x2002096c 800a2b8: 080181c8 .word 0x080181c8 800a2bc: 2006ba78 .word 0x2006ba78 800a2c0: 20020010 .word 0x20020010 if(ipt2 == 3) 800a2c4: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a2c8: b2db uxtb r3, r3 800a2ca: 2b03 cmp r3, #3 800a2cc: d147 bne.n 800a35e BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a2ce: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a2d2: b2db uxtb r3, r3 800a2d4: 461a mov r2, r3 800a2d6: 4bc1 ldr r3, [pc, #772] ; (800a5dc ) 800a2d8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a2dc: 2303 movs r3, #3 800a2de: 2150 movs r1, #80 ; 0x50 800a2e0: 208c movs r0, #140 ; 0x8c 800a2e2: f7fa fe37 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a2e6: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a2ea: b2db uxtb r3, r3 800a2ec: 461a mov r2, r3 800a2ee: 4bbb ldr r3, [pc, #748] ; (800a5dc ) 800a2f0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a2f4: 2303 movs r3, #3 800a2f6: 2150 movs r1, #80 ; 0x50 800a2f8: 2093 movs r0, #147 ; 0x93 800a2fa: f7fa fe2b bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE); 800a2fe: 2303 movs r3, #3 800a300: 4ab7 ldr r2, [pc, #732] ; (800a5e0 ) 800a302: 2150 movs r1, #80 ; 0x50 800a304: 209a movs r0, #154 ; 0x9a 800a306: f7fa fe25 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a30a: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a30e: b2db uxtb r3, r3 800a310: 461a mov r2, r3 800a312: 4bb2 ldr r3, [pc, #712] ; (800a5dc ) 800a314: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a318: 2303 movs r3, #3 800a31a: 2150 movs r1, #80 ; 0x50 800a31c: 20a1 movs r0, #161 ; 0xa1 800a31e: f7fa fe19 bl 8004f54 if(blk) 800a322: 4bb0 ldr r3, [pc, #704] ; (800a5e4 ) 800a324: 681b ldr r3, [r3, #0] 800a326: 2b00 cmp r3, #0 800a328: d00b beq.n 800a342 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a32a: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a32e: b2db uxtb r3, r3 800a330: 461a mov r2, r3 800a332: 4baa ldr r3, [pc, #680] ; (800a5dc ) 800a334: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a338: 2303 movs r3, #3 800a33a: 2150 movs r1, #80 ; 0x50 800a33c: 20a8 movs r0, #168 ; 0xa8 800a33e: f7fa fe09 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a342: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a346: b2db uxtb r3, r3 800a348: 461a mov r2, r3 800a34a: 4ba4 ldr r3, [pc, #656] ; (800a5dc ) 800a34c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a350: 2303 movs r3, #3 800a352: 2150 movs r1, #80 ; 0x50 800a354: 20af movs r0, #175 ; 0xaf 800a356: f7fa fdfd bl 8004f54 if(menupos == Kikdt_2) 800a35a: f002 be2b b.w 800cfb4 if(ipt2 == 4) 800a35e: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a362: b2db uxtb r3, r3 800a364: 2b04 cmp r3, #4 800a366: f042 8625 bne.w 800cfb4 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a36a: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a36e: b2db uxtb r3, r3 800a370: 461a mov r2, r3 800a372: 4b9a ldr r3, [pc, #616] ; (800a5dc ) 800a374: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a378: 2303 movs r3, #3 800a37a: 2150 movs r1, #80 ; 0x50 800a37c: 208c movs r0, #140 ; 0x8c 800a37e: f7fa fde9 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE); 800a382: 2303 movs r3, #3 800a384: 4a96 ldr r2, [pc, #600] ; (800a5e0 ) 800a386: 2150 movs r1, #80 ; 0x50 800a388: 2093 movs r0, #147 ; 0x93 800a38a: f7fa fde3 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a38e: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a392: b2db uxtb r3, r3 800a394: 461a mov r2, r3 800a396: 4b91 ldr r3, [pc, #580] ; (800a5dc ) 800a398: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a39c: 2303 movs r3, #3 800a39e: 2150 movs r1, #80 ; 0x50 800a3a0: 209a movs r0, #154 ; 0x9a 800a3a2: f7fa fdd7 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a3a6: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a3aa: b2db uxtb r3, r3 800a3ac: 461a mov r2, r3 800a3ae: 4b8b ldr r3, [pc, #556] ; (800a5dc ) 800a3b0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a3b4: 2303 movs r3, #3 800a3b6: 2150 movs r1, #80 ; 0x50 800a3b8: 20a1 movs r0, #161 ; 0xa1 800a3ba: f7fa fdcb bl 8004f54 if(blk) 800a3be: 4b89 ldr r3, [pc, #548] ; (800a5e4 ) 800a3c0: 681b ldr r3, [r3, #0] 800a3c2: 2b00 cmp r3, #0 800a3c4: d00b beq.n 800a3de BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a3c6: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a3ca: b2db uxtb r3, r3 800a3cc: 461a mov r2, r3 800a3ce: 4b83 ldr r3, [pc, #524] ; (800a5dc ) 800a3d0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a3d4: 2303 movs r3, #3 800a3d6: 2150 movs r1, #80 ; 0x50 800a3d8: 20a8 movs r0, #168 ; 0xa8 800a3da: f7fa fdbb bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a3de: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a3e2: b2db uxtb r3, r3 800a3e4: 461a mov r2, r3 800a3e6: 4b7d ldr r3, [pc, #500] ; (800a5dc ) 800a3e8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a3ec: 2303 movs r3, #3 800a3ee: 2150 movs r1, #80 ; 0x50 800a3f0: 20af movs r0, #175 ; 0xaf 800a3f2: f7fa fdaf bl 8004f54 if(menupos == Kikdt_2) 800a3f6: f002 bddd b.w 800cfb4 if(menupos == Kike_2) 800a3fa: 4b7b ldr r3, [pc, #492] ; (800a5e8 ) 800a3fc: 781b ldrb r3, [r3, #0] 800a3fe: b2db uxtb r3, r3 800a400: 2b0e cmp r3, #14 800a402: f040 8190 bne.w 800a726 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800a406: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800a40a: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800a40e: f7fa fcdb bl 8004dc8 if(!ipt2) 800a412: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a416: b2db uxtb r3, r3 800a418: 2b00 cmp r3, #0 800a41a: d142 bne.n 800a4a2 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a41c: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a420: b2db uxtb r3, r3 800a422: 461a mov r2, r3 800a424: 4b6d ldr r3, [pc, #436] ; (800a5dc ) 800a426: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a42a: 2303 movs r3, #3 800a42c: 2150 movs r1, #80 ; 0x50 800a42e: 208c movs r0, #140 ; 0x8c 800a430: f7fa fd90 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a434: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a438: b2db uxtb r3, r3 800a43a: 461a mov r2, r3 800a43c: 4b67 ldr r3, [pc, #412] ; (800a5dc ) 800a43e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a442: 2303 movs r3, #3 800a444: 2150 movs r1, #80 ; 0x50 800a446: 2093 movs r0, #147 ; 0x93 800a448: f7fa fd84 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a44c: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a450: b2db uxtb r3, r3 800a452: 461a mov r2, r3 800a454: 4b61 ldr r3, [pc, #388] ; (800a5dc ) 800a456: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a45a: 2303 movs r3, #3 800a45c: 2150 movs r1, #80 ; 0x50 800a45e: 209a movs r0, #154 ; 0x9a 800a460: f7fa fd78 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a464: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a468: b2db uxtb r3, r3 800a46a: 461a mov r2, r3 800a46c: 4b5b ldr r3, [pc, #364] ; (800a5dc ) 800a46e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a472: 2303 movs r3, #3 800a474: 2150 movs r1, #80 ; 0x50 800a476: 20a1 movs r0, #161 ; 0xa1 800a478: f7fa fd6c bl 8004f54 if(blk) 800a47c: 4b59 ldr r3, [pc, #356] ; (800a5e4 ) 800a47e: 681b ldr r3, [r3, #0] 800a480: 2b00 cmp r3, #0 800a482: f002 8597 beq.w 800cfb4 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a486: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a48a: b2db uxtb r3, r3 800a48c: 461a mov r2, r3 800a48e: 4b53 ldr r3, [pc, #332] ; (800a5dc ) 800a490: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a494: 2303 movs r3, #3 800a496: 2150 movs r1, #80 ; 0x50 800a498: 20a8 movs r0, #168 ; 0xa8 800a49a: f7fa fd5b bl 8004f54 if(menupos == Kikdt_2) 800a49e: f002 bd89 b.w 800cfb4 if(ipt2 == 1) 800a4a2: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a4a6: b2db uxtb r3, r3 800a4a8: 2b01 cmp r3, #1 800a4aa: d148 bne.n 800a53e BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a4ac: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a4b0: b2db uxtb r3, r3 800a4b2: 461a mov r2, r3 800a4b4: 4b49 ldr r3, [pc, #292] ; (800a5dc ) 800a4b6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a4ba: 2303 movs r3, #3 800a4bc: 2150 movs r1, #80 ; 0x50 800a4be: 208c movs r0, #140 ; 0x8c 800a4c0: f7fa fd48 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a4c4: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a4c8: b2db uxtb r3, r3 800a4ca: 461a mov r2, r3 800a4cc: 4b43 ldr r3, [pc, #268] ; (800a5dc ) 800a4ce: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a4d2: 2303 movs r3, #3 800a4d4: 2150 movs r1, #80 ; 0x50 800a4d6: 2093 movs r0, #147 ; 0x93 800a4d8: f7fa fd3c bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a4dc: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a4e0: b2db uxtb r3, r3 800a4e2: 461a mov r2, r3 800a4e4: 4b3d ldr r3, [pc, #244] ; (800a5dc ) 800a4e6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a4ea: 2303 movs r3, #3 800a4ec: 2150 movs r1, #80 ; 0x50 800a4ee: 209a movs r0, #154 ; 0x9a 800a4f0: f7fa fd30 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a4f4: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a4f8: b2db uxtb r3, r3 800a4fa: 461a mov r2, r3 800a4fc: 4b37 ldr r3, [pc, #220] ; (800a5dc ) 800a4fe: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a502: 2303 movs r3, #3 800a504: 2150 movs r1, #80 ; 0x50 800a506: 20a1 movs r0, #161 ; 0xa1 800a508: f7fa fd24 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE); 800a50c: 2303 movs r3, #3 800a50e: 4a34 ldr r2, [pc, #208] ; (800a5e0 ) 800a510: 2150 movs r1, #80 ; 0x50 800a512: 20a8 movs r0, #168 ; 0xa8 800a514: f7fa fd1e bl 8004f54 if(blk) 800a518: 4b32 ldr r3, [pc, #200] ; (800a5e4 ) 800a51a: 681b ldr r3, [r3, #0] 800a51c: 2b00 cmp r3, #0 800a51e: f002 8549 beq.w 800cfb4 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a522: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a526: b2db uxtb r3, r3 800a528: 461a mov r2, r3 800a52a: 4b2c ldr r3, [pc, #176] ; (800a5dc ) 800a52c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a530: 2303 movs r3, #3 800a532: 2150 movs r1, #80 ; 0x50 800a534: 20af movs r0, #175 ; 0xaf 800a536: f7fa fd0d bl 8004f54 if(menupos == Kikdt_2) 800a53a: f002 bd3b b.w 800cfb4 if(ipt2 == 2) 800a53e: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a542: b2db uxtb r3, r3 800a544: 2b02 cmp r3, #2 800a546: d151 bne.n 800a5ec BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a548: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a54c: b2db uxtb r3, r3 800a54e: 461a mov r2, r3 800a550: 4b22 ldr r3, [pc, #136] ; (800a5dc ) 800a552: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a556: 2303 movs r3, #3 800a558: 2150 movs r1, #80 ; 0x50 800a55a: 208c movs r0, #140 ; 0x8c 800a55c: f7fa fcfa bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a560: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a564: b2db uxtb r3, r3 800a566: 461a mov r2, r3 800a568: 4b1c ldr r3, [pc, #112] ; (800a5dc ) 800a56a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a56e: 2303 movs r3, #3 800a570: 2150 movs r1, #80 ; 0x50 800a572: 2093 movs r0, #147 ; 0x93 800a574: f7fa fcee bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a578: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a57c: b2db uxtb r3, r3 800a57e: 461a mov r2, r3 800a580: 4b16 ldr r3, [pc, #88] ; (800a5dc ) 800a582: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a586: 2303 movs r3, #3 800a588: 2150 movs r1, #80 ; 0x50 800a58a: 209a movs r0, #154 ; 0x9a 800a58c: f7fa fce2 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE); 800a590: 2303 movs r3, #3 800a592: 4a13 ldr r2, [pc, #76] ; (800a5e0 ) 800a594: 2150 movs r1, #80 ; 0x50 800a596: 20a1 movs r0, #161 ; 0xa1 800a598: f7fa fcdc bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a59c: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a5a0: b2db uxtb r3, r3 800a5a2: 461a mov r2, r3 800a5a4: 4b0d ldr r3, [pc, #52] ; (800a5dc ) 800a5a6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a5aa: 2303 movs r3, #3 800a5ac: 2150 movs r1, #80 ; 0x50 800a5ae: 20a8 movs r0, #168 ; 0xa8 800a5b0: f7fa fcd0 bl 8004f54 if(blk) 800a5b4: 4b0b ldr r3, [pc, #44] ; (800a5e4 ) 800a5b6: 681b ldr r3, [r3, #0] 800a5b8: 2b00 cmp r3, #0 800a5ba: f002 84fb beq.w 800cfb4 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a5be: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a5c2: b2db uxtb r3, r3 800a5c4: 461a mov r2, r3 800a5c6: 4b05 ldr r3, [pc, #20] ; (800a5dc ) 800a5c8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a5cc: 2303 movs r3, #3 800a5ce: 2150 movs r1, #80 ; 0x50 800a5d0: 20af movs r0, #175 ; 0xaf 800a5d2: f7fa fcbf bl 8004f54 if(menupos == Kikdt_2) 800a5d6: f002 bced b.w 800cfb4 800a5da: bf00 nop 800a5dc: 2002096c .word 0x2002096c 800a5e0: 080181c8 .word 0x080181c8 800a5e4: 2006ba78 .word 0x2006ba78 800a5e8: 20020010 .word 0x20020010 if(ipt2 == 3) 800a5ec: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a5f0: b2db uxtb r3, r3 800a5f2: 2b03 cmp r3, #3 800a5f4: d148 bne.n 800a688 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a5f6: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a5fa: b2db uxtb r3, r3 800a5fc: 461a mov r2, r3 800a5fe: 4bc4 ldr r3, [pc, #784] ; (800a910 ) 800a600: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a604: 2303 movs r3, #3 800a606: 2150 movs r1, #80 ; 0x50 800a608: 208c movs r0, #140 ; 0x8c 800a60a: f7fa fca3 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a60e: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a612: b2db uxtb r3, r3 800a614: 461a mov r2, r3 800a616: 4bbe ldr r3, [pc, #760] ; (800a910 ) 800a618: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a61c: 2303 movs r3, #3 800a61e: 2150 movs r1, #80 ; 0x50 800a620: 2093 movs r0, #147 ; 0x93 800a622: f7fa fc97 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE); 800a626: 2303 movs r3, #3 800a628: 4aba ldr r2, [pc, #744] ; (800a914 ) 800a62a: 2150 movs r1, #80 ; 0x50 800a62c: 209a movs r0, #154 ; 0x9a 800a62e: f7fa fc91 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a632: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a636: b2db uxtb r3, r3 800a638: 461a mov r2, r3 800a63a: 4bb5 ldr r3, [pc, #724] ; (800a910 ) 800a63c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a640: 2303 movs r3, #3 800a642: 2150 movs r1, #80 ; 0x50 800a644: 20a1 movs r0, #161 ; 0xa1 800a646: f7fa fc85 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a64a: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a64e: b2db uxtb r3, r3 800a650: 461a mov r2, r3 800a652: 4baf ldr r3, [pc, #700] ; (800a910 ) 800a654: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a658: 2303 movs r3, #3 800a65a: 2150 movs r1, #80 ; 0x50 800a65c: 20a8 movs r0, #168 ; 0xa8 800a65e: f7fa fc79 bl 8004f54 if(blk) 800a662: 4bad ldr r3, [pc, #692] ; (800a918 ) 800a664: 681b ldr r3, [r3, #0] 800a666: 2b00 cmp r3, #0 800a668: f002 84a4 beq.w 800cfb4 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a66c: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a670: b2db uxtb r3, r3 800a672: 461a mov r2, r3 800a674: 4ba6 ldr r3, [pc, #664] ; (800a910 ) 800a676: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a67a: 2303 movs r3, #3 800a67c: 2150 movs r1, #80 ; 0x50 800a67e: 20af movs r0, #175 ; 0xaf 800a680: f7fa fc68 bl 8004f54 if(menupos == Kikdt_2) 800a684: f002 bc96 b.w 800cfb4 if(ipt2 == 4) 800a688: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a68c: b2db uxtb r3, r3 800a68e: 2b04 cmp r3, #4 800a690: f042 8490 bne.w 800cfb4 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a694: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a698: b2db uxtb r3, r3 800a69a: 461a mov r2, r3 800a69c: 4b9c ldr r3, [pc, #624] ; (800a910 ) 800a69e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a6a2: 2303 movs r3, #3 800a6a4: 2150 movs r1, #80 ; 0x50 800a6a6: 208c movs r0, #140 ; 0x8c 800a6a8: f7fa fc54 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE); 800a6ac: 2303 movs r3, #3 800a6ae: 4a99 ldr r2, [pc, #612] ; (800a914 ) 800a6b0: 2150 movs r1, #80 ; 0x50 800a6b2: 2093 movs r0, #147 ; 0x93 800a6b4: f7fa fc4e bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a6b8: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a6bc: b2db uxtb r3, r3 800a6be: 461a mov r2, r3 800a6c0: 4b93 ldr r3, [pc, #588] ; (800a910 ) 800a6c2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a6c6: 2303 movs r3, #3 800a6c8: 2150 movs r1, #80 ; 0x50 800a6ca: 209a movs r0, #154 ; 0x9a 800a6cc: f7fa fc42 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a6d0: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a6d4: b2db uxtb r3, r3 800a6d6: 461a mov r2, r3 800a6d8: 4b8d ldr r3, [pc, #564] ; (800a910 ) 800a6da: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a6de: 2303 movs r3, #3 800a6e0: 2150 movs r1, #80 ; 0x50 800a6e2: 20a1 movs r0, #161 ; 0xa1 800a6e4: f7fa fc36 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a6e8: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a6ec: b2db uxtb r3, r3 800a6ee: 461a mov r2, r3 800a6f0: 4b87 ldr r3, [pc, #540] ; (800a910 ) 800a6f2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a6f6: 2303 movs r3, #3 800a6f8: 2150 movs r1, #80 ; 0x50 800a6fa: 20a8 movs r0, #168 ; 0xa8 800a6fc: f7fa fc2a bl 8004f54 if(blk) 800a700: 4b85 ldr r3, [pc, #532] ; (800a918 ) 800a702: 681b ldr r3, [r3, #0] 800a704: 2b00 cmp r3, #0 800a706: f002 8455 beq.w 800cfb4 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a70a: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a70e: b2db uxtb r3, r3 800a710: 461a mov r2, r3 800a712: 4b7f ldr r3, [pc, #508] ; (800a910 ) 800a714: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a718: 2303 movs r3, #3 800a71a: 2150 movs r1, #80 ; 0x50 800a71c: 20af movs r0, #175 ; 0xaf 800a71e: f7fa fc19 bl 8004f54 if(menupos == Kikdt_2) 800a722: f002 bc47 b.w 800cfb4 if(menupos == Kpt_2) 800a726: 4b7d ldr r3, [pc, #500] ; (800a91c ) 800a728: 781b ldrb r3, [r3, #0] 800a72a: b2db uxtb r3, r3 800a72c: 2b0f cmp r3, #15 800a72e: f042 8441 bne.w 800cfb4 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800a732: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800a736: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800a73a: f7fa fb45 bl 8004dc8 if(!ipt2) 800a73e: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a742: b2db uxtb r3, r3 800a744: 2b00 cmp r3, #0 800a746: d148 bne.n 800a7da BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a748: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a74c: b2db uxtb r3, r3 800a74e: 461a mov r2, r3 800a750: 4b6f ldr r3, [pc, #444] ; (800a910 ) 800a752: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a756: 2303 movs r3, #3 800a758: 2150 movs r1, #80 ; 0x50 800a75a: 208c movs r0, #140 ; 0x8c 800a75c: f7fa fbfa bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a760: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a764: b2db uxtb r3, r3 800a766: 461a mov r2, r3 800a768: 4b69 ldr r3, [pc, #420] ; (800a910 ) 800a76a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a76e: 2303 movs r3, #3 800a770: 2150 movs r1, #80 ; 0x50 800a772: 2093 movs r0, #147 ; 0x93 800a774: f7fa fbee bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a778: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a77c: b2db uxtb r3, r3 800a77e: 461a mov r2, r3 800a780: 4b63 ldr r3, [pc, #396] ; (800a910 ) 800a782: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a786: 2303 movs r3, #3 800a788: 2150 movs r1, #80 ; 0x50 800a78a: 209a movs r0, #154 ; 0x9a 800a78c: f7fa fbe2 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a790: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a794: b2db uxtb r3, r3 800a796: 461a mov r2, r3 800a798: 4b5d ldr r3, [pc, #372] ; (800a910 ) 800a79a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a79e: 2303 movs r3, #3 800a7a0: 2150 movs r1, #80 ; 0x50 800a7a2: 20a1 movs r0, #161 ; 0xa1 800a7a4: f7fa fbd6 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a7a8: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a7ac: b2db uxtb r3, r3 800a7ae: 461a mov r2, r3 800a7b0: 4b57 ldr r3, [pc, #348] ; (800a910 ) 800a7b2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a7b6: 2303 movs r3, #3 800a7b8: 2150 movs r1, #80 ; 0x50 800a7ba: 20a8 movs r0, #168 ; 0xa8 800a7bc: f7fa fbca bl 8004f54 if(blk) 800a7c0: 4b55 ldr r3, [pc, #340] ; (800a918 ) 800a7c2: 681b ldr r3, [r3, #0] 800a7c4: 2b00 cmp r3, #0 800a7c6: f002 83f5 beq.w 800cfb4 BSP_LCD_DisplayStringAt(140+35, 80, ".", LEFT_MODE); 800a7ca: 2303 movs r3, #3 800a7cc: 4a51 ldr r2, [pc, #324] ; (800a914 ) 800a7ce: 2150 movs r1, #80 ; 0x50 800a7d0: 20af movs r0, #175 ; 0xaf 800a7d2: f7fa fbbf bl 8004f54 if(menupos == Kikdt_2) 800a7d6: f002 bbed b.w 800cfb4 if(ipt2 == 1) 800a7da: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a7de: b2db uxtb r3, r3 800a7e0: 2b01 cmp r3, #1 800a7e2: d147 bne.n 800a874 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a7e4: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a7e8: b2db uxtb r3, r3 800a7ea: 461a mov r2, r3 800a7ec: 4b48 ldr r3, [pc, #288] ; (800a910 ) 800a7ee: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a7f2: 2303 movs r3, #3 800a7f4: 2150 movs r1, #80 ; 0x50 800a7f6: 208c movs r0, #140 ; 0x8c 800a7f8: f7fa fbac bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a7fc: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a800: b2db uxtb r3, r3 800a802: 461a mov r2, r3 800a804: 4b42 ldr r3, [pc, #264] ; (800a910 ) 800a806: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a80a: 2303 movs r3, #3 800a80c: 2150 movs r1, #80 ; 0x50 800a80e: 2093 movs r0, #147 ; 0x93 800a810: f7fa fba0 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a814: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a818: b2db uxtb r3, r3 800a81a: 461a mov r2, r3 800a81c: 4b3c ldr r3, [pc, #240] ; (800a910 ) 800a81e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a822: 2303 movs r3, #3 800a824: 2150 movs r1, #80 ; 0x50 800a826: 209a movs r0, #154 ; 0x9a 800a828: f7fa fb94 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a82c: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a830: b2db uxtb r3, r3 800a832: 461a mov r2, r3 800a834: 4b36 ldr r3, [pc, #216] ; (800a910 ) 800a836: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a83a: 2303 movs r3, #3 800a83c: 2150 movs r1, #80 ; 0x50 800a83e: 20a1 movs r0, #161 ; 0xa1 800a840: f7fa fb88 bl 8004f54 if(blk) 800a844: 4b34 ldr r3, [pc, #208] ; (800a918 ) 800a846: 681b ldr r3, [r3, #0] 800a848: 2b00 cmp r3, #0 800a84a: d005 beq.n 800a858 BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE); 800a84c: 2303 movs r3, #3 800a84e: 4a31 ldr r2, [pc, #196] ; (800a914 ) 800a850: 2150 movs r1, #80 ; 0x50 800a852: 20a8 movs r0, #168 ; 0xa8 800a854: f7fa fb7e bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a858: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a85c: b2db uxtb r3, r3 800a85e: 461a mov r2, r3 800a860: 4b2b ldr r3, [pc, #172] ; (800a910 ) 800a862: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a866: 2303 movs r3, #3 800a868: 2150 movs r1, #80 ; 0x50 800a86a: 20af movs r0, #175 ; 0xaf 800a86c: f7fa fb72 bl 8004f54 if(menupos == Kikdt_2) 800a870: f002 bba0 b.w 800cfb4 if(ipt2 == 2) 800a874: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a878: b2db uxtb r3, r3 800a87a: 2b02 cmp r3, #2 800a87c: d150 bne.n 800a920 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a87e: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a882: b2db uxtb r3, r3 800a884: 461a mov r2, r3 800a886: 4b22 ldr r3, [pc, #136] ; (800a910 ) 800a888: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a88c: 2303 movs r3, #3 800a88e: 2150 movs r1, #80 ; 0x50 800a890: 208c movs r0, #140 ; 0x8c 800a892: f7fa fb5f bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a896: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a89a: b2db uxtb r3, r3 800a89c: 461a mov r2, r3 800a89e: 4b1c ldr r3, [pc, #112] ; (800a910 ) 800a8a0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a8a4: 2303 movs r3, #3 800a8a6: 2150 movs r1, #80 ; 0x50 800a8a8: 2093 movs r0, #147 ; 0x93 800a8aa: f7fa fb53 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a8ae: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a8b2: b2db uxtb r3, r3 800a8b4: 461a mov r2, r3 800a8b6: 4b16 ldr r3, [pc, #88] ; (800a910 ) 800a8b8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a8bc: 2303 movs r3, #3 800a8be: 2150 movs r1, #80 ; 0x50 800a8c0: 209a movs r0, #154 ; 0x9a 800a8c2: f7fa fb47 bl 8004f54 if(blk) 800a8c6: 4b14 ldr r3, [pc, #80] ; (800a918 ) 800a8c8: 681b ldr r3, [r3, #0] 800a8ca: 2b00 cmp r3, #0 800a8cc: d005 beq.n 800a8da BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE); 800a8ce: 2303 movs r3, #3 800a8d0: 4a10 ldr r2, [pc, #64] ; (800a914 ) 800a8d2: 2150 movs r1, #80 ; 0x50 800a8d4: 20a1 movs r0, #161 ; 0xa1 800a8d6: f7fa fb3d bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a8da: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a8de: b2db uxtb r3, r3 800a8e0: 461a mov r2, r3 800a8e2: 4b0b ldr r3, [pc, #44] ; (800a910 ) 800a8e4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a8e8: 2303 movs r3, #3 800a8ea: 2150 movs r1, #80 ; 0x50 800a8ec: 20a8 movs r0, #168 ; 0xa8 800a8ee: f7fa fb31 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a8f2: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a8f6: b2db uxtb r3, r3 800a8f8: 461a mov r2, r3 800a8fa: 4b05 ldr r3, [pc, #20] ; (800a910 ) 800a8fc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a900: 2303 movs r3, #3 800a902: 2150 movs r1, #80 ; 0x50 800a904: 20af movs r0, #175 ; 0xaf 800a906: f7fa fb25 bl 8004f54 if(menupos == Kikdt_2) 800a90a: f002 bb53 b.w 800cfb4 800a90e: bf00 nop 800a910: 2002096c .word 0x2002096c 800a914: 080181c8 .word 0x080181c8 800a918: 2006ba78 .word 0x2006ba78 800a91c: 20020010 .word 0x20020010 if(ipt2 == 3) 800a920: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a924: b2db uxtb r3, r3 800a926: 2b03 cmp r3, #3 800a928: d147 bne.n 800a9ba BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a92a: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a92e: b2db uxtb r3, r3 800a930: 461a mov r2, r3 800a932: 4bc2 ldr r3, [pc, #776] ; (800ac3c ) 800a934: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a938: 2303 movs r3, #3 800a93a: 2150 movs r1, #80 ; 0x50 800a93c: 208c movs r0, #140 ; 0x8c 800a93e: f7fa fb09 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a942: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a946: b2db uxtb r3, r3 800a948: 461a mov r2, r3 800a94a: 4bbc ldr r3, [pc, #752] ; (800ac3c ) 800a94c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a950: 2303 movs r3, #3 800a952: 2150 movs r1, #80 ; 0x50 800a954: 2093 movs r0, #147 ; 0x93 800a956: f7fa fafd bl 8004f54 if(blk) 800a95a: 4bb9 ldr r3, [pc, #740] ; (800ac40 ) 800a95c: 681b ldr r3, [r3, #0] 800a95e: 2b00 cmp r3, #0 800a960: d005 beq.n 800a96e BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE); 800a962: 2303 movs r3, #3 800a964: 4ab7 ldr r2, [pc, #732] ; (800ac44 ) 800a966: 2150 movs r1, #80 ; 0x50 800a968: 209a movs r0, #154 ; 0x9a 800a96a: f7fa faf3 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a96e: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a972: b2db uxtb r3, r3 800a974: 461a mov r2, r3 800a976: 4bb1 ldr r3, [pc, #708] ; (800ac3c ) 800a978: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a97c: 2303 movs r3, #3 800a97e: 2150 movs r1, #80 ; 0x50 800a980: 20a1 movs r0, #161 ; 0xa1 800a982: f7fa fae7 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a986: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a98a: b2db uxtb r3, r3 800a98c: 461a mov r2, r3 800a98e: 4bab ldr r3, [pc, #684] ; (800ac3c ) 800a990: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a994: 2303 movs r3, #3 800a996: 2150 movs r1, #80 ; 0x50 800a998: 20a8 movs r0, #168 ; 0xa8 800a99a: f7fa fadb bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a99e: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a9a2: b2db uxtb r3, r3 800a9a4: 461a mov r2, r3 800a9a6: 4ba5 ldr r3, [pc, #660] ; (800ac3c ) 800a9a8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a9ac: 2303 movs r3, #3 800a9ae: 2150 movs r1, #80 ; 0x50 800a9b0: 20af movs r0, #175 ; 0xaf 800a9b2: f7fa facf bl 8004f54 if(menupos == Kikdt_2) 800a9b6: f002 bafd b.w 800cfb4 if(ipt2 == 4) 800a9ba: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a9be: b2db uxtb r3, r3 800a9c0: 2b04 cmp r3, #4 800a9c2: f042 82f7 bne.w 800cfb4 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a9c6: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a9ca: b2db uxtb r3, r3 800a9cc: 461a mov r2, r3 800a9ce: 4b9b ldr r3, [pc, #620] ; (800ac3c ) 800a9d0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a9d4: 2303 movs r3, #3 800a9d6: 2150 movs r1, #80 ; 0x50 800a9d8: 208c movs r0, #140 ; 0x8c 800a9da: f7fa fabb bl 8004f54 if(blk) 800a9de: 4b98 ldr r3, [pc, #608] ; (800ac40 ) 800a9e0: 681b ldr r3, [r3, #0] 800a9e2: 2b00 cmp r3, #0 800a9e4: d005 beq.n 800a9f2 BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE); 800a9e6: 2303 movs r3, #3 800a9e8: 4a96 ldr r2, [pc, #600] ; (800ac44 ) 800a9ea: 2150 movs r1, #80 ; 0x50 800a9ec: 2093 movs r0, #147 ; 0x93 800a9ee: f7fa fab1 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a9f2: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a9f6: b2db uxtb r3, r3 800a9f8: 461a mov r2, r3 800a9fa: 4b90 ldr r3, [pc, #576] ; (800ac3c ) 800a9fc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800aa00: 2303 movs r3, #3 800aa02: 2150 movs r1, #80 ; 0x50 800aa04: 209a movs r0, #154 ; 0x9a 800aa06: f7fa faa5 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 800aa0a: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800aa0e: b2db uxtb r3, r3 800aa10: 461a mov r2, r3 800aa12: 4b8a ldr r3, [pc, #552] ; (800ac3c ) 800aa14: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800aa18: 2303 movs r3, #3 800aa1a: 2150 movs r1, #80 ; 0x50 800aa1c: 20a1 movs r0, #161 ; 0xa1 800aa1e: f7fa fa99 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800aa22: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800aa26: b2db uxtb r3, r3 800aa28: 461a mov r2, r3 800aa2a: 4b84 ldr r3, [pc, #528] ; (800ac3c ) 800aa2c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800aa30: 2303 movs r3, #3 800aa32: 2150 movs r1, #80 ; 0x50 800aa34: 20a8 movs r0, #168 ; 0xa8 800aa36: f7fa fa8d bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800aa3a: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800aa3e: b2db uxtb r3, r3 800aa40: 461a mov r2, r3 800aa42: 4b7e ldr r3, [pc, #504] ; (800ac3c ) 800aa44: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800aa48: 2303 movs r3, #3 800aa4a: 2150 movs r1, #80 ; 0x50 800aa4c: 20af movs r0, #175 ; 0xaf 800aa4e: f7fa fa81 bl 8004f54 if(menupos == Kikdt_2) 800aa52: f002 baaf b.w 800cfb4 if(menupos >= Kikdt_3 && menupos <= Kpt_3) 800aa56: 4b7c ldr r3, [pc, #496] ; (800ac48 ) 800aa58: 781b ldrb r3, [r3, #0] 800aa5a: b2db uxtb r3, r3 800aa5c: 2b11 cmp r3, #17 800aa5e: f241 8150 bls.w 800bd02 800aa62: 4b79 ldr r3, [pc, #484] ; (800ac48 ) 800aa64: 781b ldrb r3, [r3, #0] 800aa66: b2db uxtb r3, r3 800aa68: 2b17 cmp r3, #23 800aa6a: f201 814a bhi.w 800bd02 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800aa6e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800aa72: 4876 ldr r0, [pc, #472] ; (800ac4c ) 800aa74: f7fa f9a8 bl 8004dc8 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 800aa78: f507 728e add.w r2, r7, #284 ; 0x11c 800aa7c: 2303 movs r3, #3 800aa7e: 213c movs r1, #60 ; 0x3c 800aa80: 208c movs r0, #140 ; 0x8c 800aa82: f7fa fa67 bl 8004f54 BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 800aa86: f107 02e0 add.w r2, r7, #224 ; 0xe0 800aa8a: 2303 movs r3, #3 800aa8c: 2150 movs r1, #80 ; 0x50 800aa8e: 208c movs r0, #140 ; 0x8c 800aa90: f7fa fa60 bl 8004f54 BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 800aa94: f107 0268 add.w r2, r7, #104 ; 0x68 800aa98: 2303 movs r3, #3 800aa9a: 2178 movs r1, #120 ; 0x78 800aa9c: 208c movs r0, #140 ; 0x8c 800aa9e: f7fa fa59 bl 8004f54 if(menupos == Kikdt_3) 800aaa2: 4b69 ldr r3, [pc, #420] ; (800ac48 ) 800aaa4: 781b ldrb r3, [r3, #0] 800aaa6: b2db uxtb r3, r3 800aaa8: 2b12 cmp r3, #18 800aaaa: f040 814c bne.w 800ad46 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800aaae: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800aab2: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800aab6: f7fa f987 bl 8004dc8 if(blk) 800aaba: 4b61 ldr r3, [pc, #388] ; (800ac40 ) 800aabc: 681b ldr r3, [r3, #0] 800aabe: 2b00 cmp r3, #0 800aac0: d00b beq.n 800aada BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800aac2: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800aac6: b2db uxtb r3, r3 800aac8: 461a mov r2, r3 800aaca: 4b5c ldr r3, [pc, #368] ; (800ac3c ) 800aacc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800aad0: 2303 movs r3, #3 800aad2: 2164 movs r1, #100 ; 0x64 800aad4: 208c movs r0, #140 ; 0x8c 800aad6: f7fa fa3d bl 8004f54 if(!ipt3) 800aada: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800aade: b2db uxtb r3, r3 800aae0: 2b00 cmp r3, #0 800aae2: d131 bne.n 800ab48 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800aae4: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800aae8: b2db uxtb r3, r3 800aaea: 461a mov r2, r3 800aaec: 4b53 ldr r3, [pc, #332] ; (800ac3c ) 800aaee: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800aaf2: 2303 movs r3, #3 800aaf4: 2164 movs r1, #100 ; 0x64 800aaf6: 2093 movs r0, #147 ; 0x93 800aaf8: f7fa fa2c bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800aafc: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800ab00: b2db uxtb r3, r3 800ab02: 461a mov r2, r3 800ab04: 4b4d ldr r3, [pc, #308] ; (800ac3c ) 800ab06: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ab0a: 2303 movs r3, #3 800ab0c: 2164 movs r1, #100 ; 0x64 800ab0e: 209a movs r0, #154 ; 0x9a 800ab10: f7fa fa20 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800ab14: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800ab18: b2db uxtb r3, r3 800ab1a: 461a mov r2, r3 800ab1c: 4b47 ldr r3, [pc, #284] ; (800ac3c ) 800ab1e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ab22: 2303 movs r3, #3 800ab24: 2164 movs r1, #100 ; 0x64 800ab26: 20a1 movs r0, #161 ; 0xa1 800ab28: f7fa fa14 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE); 800ab2c: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800ab30: b2db uxtb r3, r3 800ab32: 461a mov r2, r3 800ab34: 4b41 ldr r3, [pc, #260] ; (800ac3c ) 800ab36: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ab3a: 2303 movs r3, #3 800ab3c: 2164 movs r1, #100 ; 0x64 800ab3e: 20a8 movs r0, #168 ; 0xa8 800ab40: f7fa fa08 bl 8004f54 if(menupos == Kikdt_3) 800ab44: f002 ba39 b.w 800cfba if(ipt3 == 1) 800ab48: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800ab4c: b2db uxtb r3, r3 800ab4e: 2b01 cmp r3, #1 800ab50: d137 bne.n 800abc2 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800ab52: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800ab56: b2db uxtb r3, r3 800ab58: 461a mov r2, r3 800ab5a: 4b38 ldr r3, [pc, #224] ; (800ac3c ) 800ab5c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ab60: 2303 movs r3, #3 800ab62: 2164 movs r1, #100 ; 0x64 800ab64: 2093 movs r0, #147 ; 0x93 800ab66: f7fa f9f5 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800ab6a: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800ab6e: b2db uxtb r3, r3 800ab70: 461a mov r2, r3 800ab72: 4b32 ldr r3, [pc, #200] ; (800ac3c ) 800ab74: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ab78: 2303 movs r3, #3 800ab7a: 2164 movs r1, #100 ; 0x64 800ab7c: 209a movs r0, #154 ; 0x9a 800ab7e: f7fa f9e9 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800ab82: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800ab86: b2db uxtb r3, r3 800ab88: 461a mov r2, r3 800ab8a: 4b2c ldr r3, [pc, #176] ; (800ac3c ) 800ab8c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ab90: 2303 movs r3, #3 800ab92: 2164 movs r1, #100 ; 0x64 800ab94: 20a1 movs r0, #161 ; 0xa1 800ab96: f7fa f9dd bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE); 800ab9a: 2303 movs r3, #3 800ab9c: 4a29 ldr r2, [pc, #164] ; (800ac44 ) 800ab9e: 2164 movs r1, #100 ; 0x64 800aba0: 20a8 movs r0, #168 ; 0xa8 800aba2: f7fa f9d7 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800aba6: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800abaa: b2db uxtb r3, r3 800abac: 461a mov r2, r3 800abae: 4b23 ldr r3, [pc, #140] ; (800ac3c ) 800abb0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800abb4: 2303 movs r3, #3 800abb6: 2164 movs r1, #100 ; 0x64 800abb8: 20af movs r0, #175 ; 0xaf 800abba: f7fa f9cb bl 8004f54 if(menupos == Kikdt_3) 800abbe: f002 b9fc b.w 800cfba if(ipt3 == 2) 800abc2: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800abc6: b2db uxtb r3, r3 800abc8: 2b02 cmp r3, #2 800abca: d141 bne.n 800ac50 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800abcc: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800abd0: b2db uxtb r3, r3 800abd2: 461a mov r2, r3 800abd4: 4b19 ldr r3, [pc, #100] ; (800ac3c ) 800abd6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800abda: 2303 movs r3, #3 800abdc: 2164 movs r1, #100 ; 0x64 800abde: 2093 movs r0, #147 ; 0x93 800abe0: f7fa f9b8 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800abe4: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800abe8: b2db uxtb r3, r3 800abea: 461a mov r2, r3 800abec: 4b13 ldr r3, [pc, #76] ; (800ac3c ) 800abee: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800abf2: 2303 movs r3, #3 800abf4: 2164 movs r1, #100 ; 0x64 800abf6: 209a movs r0, #154 ; 0x9a 800abf8: f7fa f9ac bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE); 800abfc: 2303 movs r3, #3 800abfe: 4a11 ldr r2, [pc, #68] ; (800ac44 ) 800ac00: 2164 movs r1, #100 ; 0x64 800ac02: 20a1 movs r0, #161 ; 0xa1 800ac04: f7fa f9a6 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800ac08: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800ac0c: b2db uxtb r3, r3 800ac0e: 461a mov r2, r3 800ac10: 4b0a ldr r3, [pc, #40] ; (800ac3c ) 800ac12: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ac16: 2303 movs r3, #3 800ac18: 2164 movs r1, #100 ; 0x64 800ac1a: 20a8 movs r0, #168 ; 0xa8 800ac1c: f7fa f99a bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800ac20: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800ac24: b2db uxtb r3, r3 800ac26: 461a mov r2, r3 800ac28: 4b04 ldr r3, [pc, #16] ; (800ac3c ) 800ac2a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ac2e: 2303 movs r3, #3 800ac30: 2164 movs r1, #100 ; 0x64 800ac32: 20af movs r0, #175 ; 0xaf 800ac34: f7fa f98e bl 8004f54 if(menupos == Kikdt_3) 800ac38: f002 b9bf b.w 800cfba 800ac3c: 2002096c .word 0x2002096c 800ac40: 2006ba78 .word 0x2006ba78 800ac44: 080181c8 .word 0x080181c8 800ac48: 20020010 .word 0x20020010 800ac4c: ffd8aa57 .word 0xffd8aa57 if(ipt3 == 3) 800ac50: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800ac54: b2db uxtb r3, r3 800ac56: 2b03 cmp r3, #3 800ac58: d137 bne.n 800acca BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800ac5a: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800ac5e: b2db uxtb r3, r3 800ac60: 461a mov r2, r3 800ac62: 4baf ldr r3, [pc, #700] ; (800af20 ) 800ac64: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ac68: 2303 movs r3, #3 800ac6a: 2164 movs r1, #100 ; 0x64 800ac6c: 2093 movs r0, #147 ; 0x93 800ac6e: f7fa f971 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE); 800ac72: 2303 movs r3, #3 800ac74: 4aab ldr r2, [pc, #684] ; (800af24 ) 800ac76: 2164 movs r1, #100 ; 0x64 800ac78: 209a movs r0, #154 ; 0x9a 800ac7a: f7fa f96b bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800ac7e: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800ac82: b2db uxtb r3, r3 800ac84: 461a mov r2, r3 800ac86: 4ba6 ldr r3, [pc, #664] ; (800af20 ) 800ac88: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ac8c: 2303 movs r3, #3 800ac8e: 2164 movs r1, #100 ; 0x64 800ac90: 20a1 movs r0, #161 ; 0xa1 800ac92: f7fa f95f bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800ac96: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800ac9a: b2db uxtb r3, r3 800ac9c: 461a mov r2, r3 800ac9e: 4ba0 ldr r3, [pc, #640] ; (800af20 ) 800aca0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800aca4: 2303 movs r3, #3 800aca6: 2164 movs r1, #100 ; 0x64 800aca8: 20a8 movs r0, #168 ; 0xa8 800acaa: f7fa f953 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800acae: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800acb2: b2db uxtb r3, r3 800acb4: 461a mov r2, r3 800acb6: 4b9a ldr r3, [pc, #616] ; (800af20 ) 800acb8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800acbc: 2303 movs r3, #3 800acbe: 2164 movs r1, #100 ; 0x64 800acc0: 20af movs r0, #175 ; 0xaf 800acc2: f7fa f947 bl 8004f54 if(menupos == Kikdt_3) 800acc6: f002 b978 b.w 800cfba if(ipt3 == 4) 800acca: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800acce: b2db uxtb r3, r3 800acd0: 2b04 cmp r3, #4 800acd2: f042 8172 bne.w 800cfba BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE); 800acd6: 2303 movs r3, #3 800acd8: 4a92 ldr r2, [pc, #584] ; (800af24 ) 800acda: 2164 movs r1, #100 ; 0x64 800acdc: 2093 movs r0, #147 ; 0x93 800acde: f7fa f939 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE); 800ace2: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800ace6: b2db uxtb r3, r3 800ace8: 461a mov r2, r3 800acea: 4b8d ldr r3, [pc, #564] ; (800af20 ) 800acec: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800acf0: 2303 movs r3, #3 800acf2: 2164 movs r1, #100 ; 0x64 800acf4: 209a movs r0, #154 ; 0x9a 800acf6: f7fa f92d bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800acfa: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800acfe: b2db uxtb r3, r3 800ad00: 461a mov r2, r3 800ad02: 4b87 ldr r3, [pc, #540] ; (800af20 ) 800ad04: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ad08: 2303 movs r3, #3 800ad0a: 2164 movs r1, #100 ; 0x64 800ad0c: 20a1 movs r0, #161 ; 0xa1 800ad0e: f7fa f921 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800ad12: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800ad16: b2db uxtb r3, r3 800ad18: 461a mov r2, r3 800ad1a: 4b81 ldr r3, [pc, #516] ; (800af20 ) 800ad1c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ad20: 2303 movs r3, #3 800ad22: 2164 movs r1, #100 ; 0x64 800ad24: 20a8 movs r0, #168 ; 0xa8 800ad26: f7fa f915 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800ad2a: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800ad2e: b2db uxtb r3, r3 800ad30: 461a mov r2, r3 800ad32: 4b7b ldr r3, [pc, #492] ; (800af20 ) 800ad34: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ad38: 2303 movs r3, #3 800ad3a: 2164 movs r1, #100 ; 0x64 800ad3c: 20af movs r0, #175 ; 0xaf 800ad3e: f7fa f909 bl 8004f54 if(menupos == Kikdt_3) 800ad42: f002 b93a b.w 800cfba if(menupos == Kikt_3) 800ad46: 4b78 ldr r3, [pc, #480] ; (800af28 ) 800ad48: 781b ldrb r3, [r3, #0] 800ad4a: b2db uxtb r3, r3 800ad4c: 2b13 cmp r3, #19 800ad4e: f040 818a bne.w 800b066 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800ad52: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800ad56: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800ad5a: f7fa f835 bl 8004dc8 if(!ipt3) 800ad5e: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800ad62: b2db uxtb r3, r3 800ad64: 2b00 cmp r3, #0 800ad66: d141 bne.n 800adec BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800ad68: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800ad6c: b2db uxtb r3, r3 800ad6e: 461a mov r2, r3 800ad70: 4b6b ldr r3, [pc, #428] ; (800af20 ) 800ad72: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ad76: 2303 movs r3, #3 800ad78: 2164 movs r1, #100 ; 0x64 800ad7a: 208c movs r0, #140 ; 0x8c 800ad7c: f7fa f8ea bl 8004f54 if(blk) 800ad80: 4b6a ldr r3, [pc, #424] ; (800af2c ) 800ad82: 681b ldr r3, [r3, #0] 800ad84: 2b00 cmp r3, #0 800ad86: d00b beq.n 800ada0 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800ad88: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800ad8c: b2db uxtb r3, r3 800ad8e: 461a mov r2, r3 800ad90: 4b63 ldr r3, [pc, #396] ; (800af20 ) 800ad92: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ad96: 2303 movs r3, #3 800ad98: 2164 movs r1, #100 ; 0x64 800ad9a: 2093 movs r0, #147 ; 0x93 800ad9c: f7fa f8da bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800ada0: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800ada4: b2db uxtb r3, r3 800ada6: 461a mov r2, r3 800ada8: 4b5d ldr r3, [pc, #372] ; (800af20 ) 800adaa: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800adae: 2303 movs r3, #3 800adb0: 2164 movs r1, #100 ; 0x64 800adb2: 209a movs r0, #154 ; 0x9a 800adb4: f7fa f8ce bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800adb8: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800adbc: b2db uxtb r3, r3 800adbe: 461a mov r2, r3 800adc0: 4b57 ldr r3, [pc, #348] ; (800af20 ) 800adc2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800adc6: 2303 movs r3, #3 800adc8: 2164 movs r1, #100 ; 0x64 800adca: 20a1 movs r0, #161 ; 0xa1 800adcc: f7fa f8c2 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE); 800add0: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800add4: b2db uxtb r3, r3 800add6: 461a mov r2, r3 800add8: 4b51 ldr r3, [pc, #324] ; (800af20 ) 800adda: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800adde: 2303 movs r3, #3 800ade0: 2164 movs r1, #100 ; 0x64 800ade2: 20a8 movs r0, #168 ; 0xa8 800ade4: f7fa f8b6 bl 8004f54 if(menupos == Kikdt_3) 800ade8: f002 b8e7 b.w 800cfba if(ipt3 == 1) 800adec: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800adf0: b2db uxtb r3, r3 800adf2: 2b01 cmp r3, #1 800adf4: d147 bne.n 800ae86 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800adf6: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800adfa: b2db uxtb r3, r3 800adfc: 461a mov r2, r3 800adfe: 4b48 ldr r3, [pc, #288] ; (800af20 ) 800ae00: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ae04: 2303 movs r3, #3 800ae06: 2164 movs r1, #100 ; 0x64 800ae08: 208c movs r0, #140 ; 0x8c 800ae0a: f7fa f8a3 bl 8004f54 if(blk) 800ae0e: 4b47 ldr r3, [pc, #284] ; (800af2c ) 800ae10: 681b ldr r3, [r3, #0] 800ae12: 2b00 cmp r3, #0 800ae14: d00b beq.n 800ae2e BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800ae16: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800ae1a: b2db uxtb r3, r3 800ae1c: 461a mov r2, r3 800ae1e: 4b40 ldr r3, [pc, #256] ; (800af20 ) 800ae20: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ae24: 2303 movs r3, #3 800ae26: 2164 movs r1, #100 ; 0x64 800ae28: 2093 movs r0, #147 ; 0x93 800ae2a: f7fa f893 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800ae2e: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800ae32: b2db uxtb r3, r3 800ae34: 461a mov r2, r3 800ae36: 4b3a ldr r3, [pc, #232] ; (800af20 ) 800ae38: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ae3c: 2303 movs r3, #3 800ae3e: 2164 movs r1, #100 ; 0x64 800ae40: 209a movs r0, #154 ; 0x9a 800ae42: f7fa f887 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800ae46: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800ae4a: b2db uxtb r3, r3 800ae4c: 461a mov r2, r3 800ae4e: 4b34 ldr r3, [pc, #208] ; (800af20 ) 800ae50: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ae54: 2303 movs r3, #3 800ae56: 2164 movs r1, #100 ; 0x64 800ae58: 20a1 movs r0, #161 ; 0xa1 800ae5a: f7fa f87b bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE); 800ae5e: 2303 movs r3, #3 800ae60: 4a30 ldr r2, [pc, #192] ; (800af24 ) 800ae62: 2164 movs r1, #100 ; 0x64 800ae64: 20a8 movs r0, #168 ; 0xa8 800ae66: f7fa f875 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800ae6a: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800ae6e: b2db uxtb r3, r3 800ae70: 461a mov r2, r3 800ae72: 4b2b ldr r3, [pc, #172] ; (800af20 ) 800ae74: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ae78: 2303 movs r3, #3 800ae7a: 2164 movs r1, #100 ; 0x64 800ae7c: 20af movs r0, #175 ; 0xaf 800ae7e: f7fa f869 bl 8004f54 if(menupos == Kikdt_3) 800ae82: f002 b89a b.w 800cfba if(ipt3 == 2) 800ae86: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800ae8a: b2db uxtb r3, r3 800ae8c: 2b02 cmp r3, #2 800ae8e: d14f bne.n 800af30 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800ae90: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800ae94: b2db uxtb r3, r3 800ae96: 461a mov r2, r3 800ae98: 4b21 ldr r3, [pc, #132] ; (800af20 ) 800ae9a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ae9e: 2303 movs r3, #3 800aea0: 2164 movs r1, #100 ; 0x64 800aea2: 208c movs r0, #140 ; 0x8c 800aea4: f7fa f856 bl 8004f54 if(blk) 800aea8: 4b20 ldr r3, [pc, #128] ; (800af2c ) 800aeaa: 681b ldr r3, [r3, #0] 800aeac: 2b00 cmp r3, #0 800aeae: d00b beq.n 800aec8 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800aeb0: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800aeb4: b2db uxtb r3, r3 800aeb6: 461a mov r2, r3 800aeb8: 4b19 ldr r3, [pc, #100] ; (800af20 ) 800aeba: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800aebe: 2303 movs r3, #3 800aec0: 2164 movs r1, #100 ; 0x64 800aec2: 2093 movs r0, #147 ; 0x93 800aec4: f7fa f846 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800aec8: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800aecc: b2db uxtb r3, r3 800aece: 461a mov r2, r3 800aed0: 4b13 ldr r3, [pc, #76] ; (800af20 ) 800aed2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800aed6: 2303 movs r3, #3 800aed8: 2164 movs r1, #100 ; 0x64 800aeda: 209a movs r0, #154 ; 0x9a 800aedc: f7fa f83a bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE); 800aee0: 2303 movs r3, #3 800aee2: 4a10 ldr r2, [pc, #64] ; (800af24 ) 800aee4: 2164 movs r1, #100 ; 0x64 800aee6: 20a1 movs r0, #161 ; 0xa1 800aee8: f7fa f834 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800aeec: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800aef0: b2db uxtb r3, r3 800aef2: 461a mov r2, r3 800aef4: 4b0a ldr r3, [pc, #40] ; (800af20 ) 800aef6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800aefa: 2303 movs r3, #3 800aefc: 2164 movs r1, #100 ; 0x64 800aefe: 20a8 movs r0, #168 ; 0xa8 800af00: f7fa f828 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800af04: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800af08: b2db uxtb r3, r3 800af0a: 461a mov r2, r3 800af0c: 4b04 ldr r3, [pc, #16] ; (800af20 ) 800af0e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800af12: 2303 movs r3, #3 800af14: 2164 movs r1, #100 ; 0x64 800af16: 20af movs r0, #175 ; 0xaf 800af18: f7fa f81c bl 8004f54 if(menupos == Kikdt_3) 800af1c: f002 b84d b.w 800cfba 800af20: 2002096c .word 0x2002096c 800af24: 080181c8 .word 0x080181c8 800af28: 20020010 .word 0x20020010 800af2c: 2006ba78 .word 0x2006ba78 if(ipt3 == 3) 800af30: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800af34: b2db uxtb r3, r3 800af36: 2b03 cmp r3, #3 800af38: d147 bne.n 800afca BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800af3a: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800af3e: b2db uxtb r3, r3 800af40: 461a mov r2, r3 800af42: 4bbf ldr r3, [pc, #764] ; (800b240 ) 800af44: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800af48: 2303 movs r3, #3 800af4a: 2164 movs r1, #100 ; 0x64 800af4c: 208c movs r0, #140 ; 0x8c 800af4e: f7fa f801 bl 8004f54 if(blk) 800af52: 4bbc ldr r3, [pc, #752] ; (800b244 ) 800af54: 681b ldr r3, [r3, #0] 800af56: 2b00 cmp r3, #0 800af58: d00b beq.n 800af72 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800af5a: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800af5e: b2db uxtb r3, r3 800af60: 461a mov r2, r3 800af62: 4bb7 ldr r3, [pc, #732] ; (800b240 ) 800af64: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800af68: 2303 movs r3, #3 800af6a: 2164 movs r1, #100 ; 0x64 800af6c: 2093 movs r0, #147 ; 0x93 800af6e: f7f9 fff1 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE); 800af72: 2303 movs r3, #3 800af74: 4ab4 ldr r2, [pc, #720] ; (800b248 ) 800af76: 2164 movs r1, #100 ; 0x64 800af78: 209a movs r0, #154 ; 0x9a 800af7a: f7f9 ffeb bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800af7e: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800af82: b2db uxtb r3, r3 800af84: 461a mov r2, r3 800af86: 4bae ldr r3, [pc, #696] ; (800b240 ) 800af88: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800af8c: 2303 movs r3, #3 800af8e: 2164 movs r1, #100 ; 0x64 800af90: 20a1 movs r0, #161 ; 0xa1 800af92: f7f9 ffdf bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800af96: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800af9a: b2db uxtb r3, r3 800af9c: 461a mov r2, r3 800af9e: 4ba8 ldr r3, [pc, #672] ; (800b240 ) 800afa0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800afa4: 2303 movs r3, #3 800afa6: 2164 movs r1, #100 ; 0x64 800afa8: 20a8 movs r0, #168 ; 0xa8 800afaa: f7f9 ffd3 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800afae: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800afb2: b2db uxtb r3, r3 800afb4: 461a mov r2, r3 800afb6: 4ba2 ldr r3, [pc, #648] ; (800b240 ) 800afb8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800afbc: 2303 movs r3, #3 800afbe: 2164 movs r1, #100 ; 0x64 800afc0: 20af movs r0, #175 ; 0xaf 800afc2: f7f9 ffc7 bl 8004f54 if(menupos == Kikdt_3) 800afc6: f001 bff8 b.w 800cfba if(ipt3 == 4) 800afca: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800afce: b2db uxtb r3, r3 800afd0: 2b04 cmp r3, #4 800afd2: f041 87f2 bne.w 800cfba BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800afd6: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800afda: b2db uxtb r3, r3 800afdc: 461a mov r2, r3 800afde: 4b98 ldr r3, [pc, #608] ; (800b240 ) 800afe0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800afe4: 2303 movs r3, #3 800afe6: 2164 movs r1, #100 ; 0x64 800afe8: 208c movs r0, #140 ; 0x8c 800afea: f7f9 ffb3 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE); 800afee: 2303 movs r3, #3 800aff0: 4a95 ldr r2, [pc, #596] ; (800b248 ) 800aff2: 2164 movs r1, #100 ; 0x64 800aff4: 2093 movs r0, #147 ; 0x93 800aff6: f7f9 ffad bl 8004f54 if(blk) 800affa: 4b92 ldr r3, [pc, #584] ; (800b244 ) 800affc: 681b ldr r3, [r3, #0] 800affe: 2b00 cmp r3, #0 800b000: d00b beq.n 800b01a BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b002: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b006: b2db uxtb r3, r3 800b008: 461a mov r2, r3 800b00a: 4b8d ldr r3, [pc, #564] ; (800b240 ) 800b00c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b010: 2303 movs r3, #3 800b012: 2164 movs r1, #100 ; 0x64 800b014: 209a movs r0, #154 ; 0x9a 800b016: f7f9 ff9d bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b01a: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b01e: b2db uxtb r3, r3 800b020: 461a mov r2, r3 800b022: 4b87 ldr r3, [pc, #540] ; (800b240 ) 800b024: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b028: 2303 movs r3, #3 800b02a: 2164 movs r1, #100 ; 0x64 800b02c: 20a1 movs r0, #161 ; 0xa1 800b02e: f7f9 ff91 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b032: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b036: b2db uxtb r3, r3 800b038: 461a mov r2, r3 800b03a: 4b81 ldr r3, [pc, #516] ; (800b240 ) 800b03c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b040: 2303 movs r3, #3 800b042: 2164 movs r1, #100 ; 0x64 800b044: 20a8 movs r0, #168 ; 0xa8 800b046: f7f9 ff85 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b04a: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b04e: b2db uxtb r3, r3 800b050: 461a mov r2, r3 800b052: 4b7b ldr r3, [pc, #492] ; (800b240 ) 800b054: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b058: 2303 movs r3, #3 800b05a: 2164 movs r1, #100 ; 0x64 800b05c: 20af movs r0, #175 ; 0xaf 800b05e: f7f9 ff79 bl 8004f54 if(menupos == Kikdt_3) 800b062: f001 bfaa b.w 800cfba if(menupos == Kiks_3) 800b066: 4b79 ldr r3, [pc, #484] ; (800b24c ) 800b068: 781b ldrb r3, [r3, #0] 800b06a: b2db uxtb r3, r3 800b06c: 2b14 cmp r3, #20 800b06e: f040 818a bne.w 800b386 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800b072: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b076: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800b07a: f7f9 fea5 bl 8004dc8 if(!ipt3) 800b07e: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b082: b2db uxtb r3, r3 800b084: 2b00 cmp r3, #0 800b086: d141 bne.n 800b10c BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b088: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b08c: b2db uxtb r3, r3 800b08e: 461a mov r2, r3 800b090: 4b6b ldr r3, [pc, #428] ; (800b240 ) 800b092: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b096: 2303 movs r3, #3 800b098: 2164 movs r1, #100 ; 0x64 800b09a: 208c movs r0, #140 ; 0x8c 800b09c: f7f9 ff5a bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b0a0: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b0a4: b2db uxtb r3, r3 800b0a6: 461a mov r2, r3 800b0a8: 4b65 ldr r3, [pc, #404] ; (800b240 ) 800b0aa: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b0ae: 2303 movs r3, #3 800b0b0: 2164 movs r1, #100 ; 0x64 800b0b2: 2093 movs r0, #147 ; 0x93 800b0b4: f7f9 ff4e bl 8004f54 if(blk) 800b0b8: 4b62 ldr r3, [pc, #392] ; (800b244 ) 800b0ba: 681b ldr r3, [r3, #0] 800b0bc: 2b00 cmp r3, #0 800b0be: d00b beq.n 800b0d8 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b0c0: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b0c4: b2db uxtb r3, r3 800b0c6: 461a mov r2, r3 800b0c8: 4b5d ldr r3, [pc, #372] ; (800b240 ) 800b0ca: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b0ce: 2303 movs r3, #3 800b0d0: 2164 movs r1, #100 ; 0x64 800b0d2: 209a movs r0, #154 ; 0x9a 800b0d4: f7f9 ff3e bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b0d8: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b0dc: b2db uxtb r3, r3 800b0de: 461a mov r2, r3 800b0e0: 4b57 ldr r3, [pc, #348] ; (800b240 ) 800b0e2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b0e6: 2303 movs r3, #3 800b0e8: 2164 movs r1, #100 ; 0x64 800b0ea: 20a1 movs r0, #161 ; 0xa1 800b0ec: f7f9 ff32 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b0f0: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b0f4: b2db uxtb r3, r3 800b0f6: 461a mov r2, r3 800b0f8: 4b51 ldr r3, [pc, #324] ; (800b240 ) 800b0fa: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b0fe: 2303 movs r3, #3 800b100: 2164 movs r1, #100 ; 0x64 800b102: 20a8 movs r0, #168 ; 0xa8 800b104: f7f9 ff26 bl 8004f54 if(menupos == Kikdt_3) 800b108: f001 bf57 b.w 800cfba if(ipt3 == 1) 800b10c: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b110: b2db uxtb r3, r3 800b112: 2b01 cmp r3, #1 800b114: d147 bne.n 800b1a6 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b116: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b11a: b2db uxtb r3, r3 800b11c: 461a mov r2, r3 800b11e: 4b48 ldr r3, [pc, #288] ; (800b240 ) 800b120: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b124: 2303 movs r3, #3 800b126: 2164 movs r1, #100 ; 0x64 800b128: 208c movs r0, #140 ; 0x8c 800b12a: f7f9 ff13 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b12e: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b132: b2db uxtb r3, r3 800b134: 461a mov r2, r3 800b136: 4b42 ldr r3, [pc, #264] ; (800b240 ) 800b138: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b13c: 2303 movs r3, #3 800b13e: 2164 movs r1, #100 ; 0x64 800b140: 2093 movs r0, #147 ; 0x93 800b142: f7f9 ff07 bl 8004f54 if(blk) 800b146: 4b3f ldr r3, [pc, #252] ; (800b244 ) 800b148: 681b ldr r3, [r3, #0] 800b14a: 2b00 cmp r3, #0 800b14c: d00b beq.n 800b166 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b14e: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b152: b2db uxtb r3, r3 800b154: 461a mov r2, r3 800b156: 4b3a ldr r3, [pc, #232] ; (800b240 ) 800b158: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b15c: 2303 movs r3, #3 800b15e: 2164 movs r1, #100 ; 0x64 800b160: 209a movs r0, #154 ; 0x9a 800b162: f7f9 fef7 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b166: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b16a: b2db uxtb r3, r3 800b16c: 461a mov r2, r3 800b16e: 4b34 ldr r3, [pc, #208] ; (800b240 ) 800b170: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b174: 2303 movs r3, #3 800b176: 2164 movs r1, #100 ; 0x64 800b178: 20a1 movs r0, #161 ; 0xa1 800b17a: f7f9 feeb bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE); 800b17e: 2303 movs r3, #3 800b180: 4a31 ldr r2, [pc, #196] ; (800b248 ) 800b182: 2164 movs r1, #100 ; 0x64 800b184: 20a8 movs r0, #168 ; 0xa8 800b186: f7f9 fee5 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b18a: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b18e: b2db uxtb r3, r3 800b190: 461a mov r2, r3 800b192: 4b2b ldr r3, [pc, #172] ; (800b240 ) 800b194: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b198: 2303 movs r3, #3 800b19a: 2164 movs r1, #100 ; 0x64 800b19c: 20af movs r0, #175 ; 0xaf 800b19e: f7f9 fed9 bl 8004f54 if(menupos == Kikdt_3) 800b1a2: f001 bf0a b.w 800cfba if(ipt3 == 2) 800b1a6: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b1aa: b2db uxtb r3, r3 800b1ac: 2b02 cmp r3, #2 800b1ae: d14f bne.n 800b250 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b1b0: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b1b4: b2db uxtb r3, r3 800b1b6: 461a mov r2, r3 800b1b8: 4b21 ldr r3, [pc, #132] ; (800b240 ) 800b1ba: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b1be: 2303 movs r3, #3 800b1c0: 2164 movs r1, #100 ; 0x64 800b1c2: 208c movs r0, #140 ; 0x8c 800b1c4: f7f9 fec6 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b1c8: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b1cc: b2db uxtb r3, r3 800b1ce: 461a mov r2, r3 800b1d0: 4b1b ldr r3, [pc, #108] ; (800b240 ) 800b1d2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b1d6: 2303 movs r3, #3 800b1d8: 2164 movs r1, #100 ; 0x64 800b1da: 2093 movs r0, #147 ; 0x93 800b1dc: f7f9 feba bl 8004f54 if(blk) 800b1e0: 4b18 ldr r3, [pc, #96] ; (800b244 ) 800b1e2: 681b ldr r3, [r3, #0] 800b1e4: 2b00 cmp r3, #0 800b1e6: d00b beq.n 800b200 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b1e8: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b1ec: b2db uxtb r3, r3 800b1ee: 461a mov r2, r3 800b1f0: 4b13 ldr r3, [pc, #76] ; (800b240 ) 800b1f2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b1f6: 2303 movs r3, #3 800b1f8: 2164 movs r1, #100 ; 0x64 800b1fa: 209a movs r0, #154 ; 0x9a 800b1fc: f7f9 feaa bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE); 800b200: 2303 movs r3, #3 800b202: 4a11 ldr r2, [pc, #68] ; (800b248 ) 800b204: 2164 movs r1, #100 ; 0x64 800b206: 20a1 movs r0, #161 ; 0xa1 800b208: f7f9 fea4 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b20c: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b210: b2db uxtb r3, r3 800b212: 461a mov r2, r3 800b214: 4b0a ldr r3, [pc, #40] ; (800b240 ) 800b216: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b21a: 2303 movs r3, #3 800b21c: 2164 movs r1, #100 ; 0x64 800b21e: 20a8 movs r0, #168 ; 0xa8 800b220: f7f9 fe98 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b224: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b228: b2db uxtb r3, r3 800b22a: 461a mov r2, r3 800b22c: 4b04 ldr r3, [pc, #16] ; (800b240 ) 800b22e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b232: 2303 movs r3, #3 800b234: 2164 movs r1, #100 ; 0x64 800b236: 20af movs r0, #175 ; 0xaf 800b238: f7f9 fe8c bl 8004f54 if(menupos == Kikdt_3) 800b23c: f001 bebd b.w 800cfba 800b240: 2002096c .word 0x2002096c 800b244: 2006ba78 .word 0x2006ba78 800b248: 080181c8 .word 0x080181c8 800b24c: 20020010 .word 0x20020010 if(ipt3 == 3) 800b250: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b254: b2db uxtb r3, r3 800b256: 2b03 cmp r3, #3 800b258: d147 bne.n 800b2ea BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b25a: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b25e: b2db uxtb r3, r3 800b260: 461a mov r2, r3 800b262: 4bbf ldr r3, [pc, #764] ; (800b560 ) 800b264: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b268: 2303 movs r3, #3 800b26a: 2164 movs r1, #100 ; 0x64 800b26c: 208c movs r0, #140 ; 0x8c 800b26e: f7f9 fe71 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b272: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b276: b2db uxtb r3, r3 800b278: 461a mov r2, r3 800b27a: 4bb9 ldr r3, [pc, #740] ; (800b560 ) 800b27c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b280: 2303 movs r3, #3 800b282: 2164 movs r1, #100 ; 0x64 800b284: 2093 movs r0, #147 ; 0x93 800b286: f7f9 fe65 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE); 800b28a: 2303 movs r3, #3 800b28c: 4ab5 ldr r2, [pc, #724] ; (800b564 ) 800b28e: 2164 movs r1, #100 ; 0x64 800b290: 209a movs r0, #154 ; 0x9a 800b292: f7f9 fe5f bl 8004f54 if(blk) 800b296: 4bb4 ldr r3, [pc, #720] ; (800b568 ) 800b298: 681b ldr r3, [r3, #0] 800b29a: 2b00 cmp r3, #0 800b29c: d00b beq.n 800b2b6 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b29e: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b2a2: b2db uxtb r3, r3 800b2a4: 461a mov r2, r3 800b2a6: 4bae ldr r3, [pc, #696] ; (800b560 ) 800b2a8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b2ac: 2303 movs r3, #3 800b2ae: 2164 movs r1, #100 ; 0x64 800b2b0: 20a1 movs r0, #161 ; 0xa1 800b2b2: f7f9 fe4f bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b2b6: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b2ba: b2db uxtb r3, r3 800b2bc: 461a mov r2, r3 800b2be: 4ba8 ldr r3, [pc, #672] ; (800b560 ) 800b2c0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b2c4: 2303 movs r3, #3 800b2c6: 2164 movs r1, #100 ; 0x64 800b2c8: 20a8 movs r0, #168 ; 0xa8 800b2ca: f7f9 fe43 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b2ce: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b2d2: b2db uxtb r3, r3 800b2d4: 461a mov r2, r3 800b2d6: 4ba2 ldr r3, [pc, #648] ; (800b560 ) 800b2d8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b2dc: 2303 movs r3, #3 800b2de: 2164 movs r1, #100 ; 0x64 800b2e0: 20af movs r0, #175 ; 0xaf 800b2e2: f7f9 fe37 bl 8004f54 if(menupos == Kikdt_3) 800b2e6: f001 be68 b.w 800cfba if(ipt3 == 4) 800b2ea: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b2ee: b2db uxtb r3, r3 800b2f0: 2b04 cmp r3, #4 800b2f2: f041 8662 bne.w 800cfba BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b2f6: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b2fa: b2db uxtb r3, r3 800b2fc: 461a mov r2, r3 800b2fe: 4b98 ldr r3, [pc, #608] ; (800b560 ) 800b300: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b304: 2303 movs r3, #3 800b306: 2164 movs r1, #100 ; 0x64 800b308: 208c movs r0, #140 ; 0x8c 800b30a: f7f9 fe23 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE); 800b30e: 2303 movs r3, #3 800b310: 4a94 ldr r2, [pc, #592] ; (800b564 ) 800b312: 2164 movs r1, #100 ; 0x64 800b314: 2093 movs r0, #147 ; 0x93 800b316: f7f9 fe1d bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b31a: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b31e: b2db uxtb r3, r3 800b320: 461a mov r2, r3 800b322: 4b8f ldr r3, [pc, #572] ; (800b560 ) 800b324: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b328: 2303 movs r3, #3 800b32a: 2164 movs r1, #100 ; 0x64 800b32c: 209a movs r0, #154 ; 0x9a 800b32e: f7f9 fe11 bl 8004f54 if(blk) 800b332: 4b8d ldr r3, [pc, #564] ; (800b568 ) 800b334: 681b ldr r3, [r3, #0] 800b336: 2b00 cmp r3, #0 800b338: d00b beq.n 800b352 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b33a: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b33e: b2db uxtb r3, r3 800b340: 461a mov r2, r3 800b342: 4b87 ldr r3, [pc, #540] ; (800b560 ) 800b344: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b348: 2303 movs r3, #3 800b34a: 2164 movs r1, #100 ; 0x64 800b34c: 20a1 movs r0, #161 ; 0xa1 800b34e: f7f9 fe01 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b352: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b356: b2db uxtb r3, r3 800b358: 461a mov r2, r3 800b35a: 4b81 ldr r3, [pc, #516] ; (800b560 ) 800b35c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b360: 2303 movs r3, #3 800b362: 2164 movs r1, #100 ; 0x64 800b364: 20a8 movs r0, #168 ; 0xa8 800b366: f7f9 fdf5 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b36a: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b36e: b2db uxtb r3, r3 800b370: 461a mov r2, r3 800b372: 4b7b ldr r3, [pc, #492] ; (800b560 ) 800b374: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b378: 2303 movs r3, #3 800b37a: 2164 movs r1, #100 ; 0x64 800b37c: 20af movs r0, #175 ; 0xaf 800b37e: f7f9 fde9 bl 8004f54 if(menupos == Kikdt_3) 800b382: f001 be1a b.w 800cfba if(menupos == Kikd_3) 800b386: 4b79 ldr r3, [pc, #484] ; (800b56c ) 800b388: 781b ldrb r3, [r3, #0] 800b38a: b2db uxtb r3, r3 800b38c: 2b15 cmp r3, #21 800b38e: f040 818a bne.w 800b6a6 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800b392: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b396: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800b39a: f7f9 fd15 bl 8004dc8 if(!ipt3) 800b39e: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b3a2: b2db uxtb r3, r3 800b3a4: 2b00 cmp r3, #0 800b3a6: d141 bne.n 800b42c BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b3a8: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b3ac: b2db uxtb r3, r3 800b3ae: 461a mov r2, r3 800b3b0: 4b6b ldr r3, [pc, #428] ; (800b560 ) 800b3b2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b3b6: 2303 movs r3, #3 800b3b8: 2164 movs r1, #100 ; 0x64 800b3ba: 208c movs r0, #140 ; 0x8c 800b3bc: f7f9 fdca bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b3c0: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b3c4: b2db uxtb r3, r3 800b3c6: 461a mov r2, r3 800b3c8: 4b65 ldr r3, [pc, #404] ; (800b560 ) 800b3ca: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b3ce: 2303 movs r3, #3 800b3d0: 2164 movs r1, #100 ; 0x64 800b3d2: 2093 movs r0, #147 ; 0x93 800b3d4: f7f9 fdbe bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b3d8: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b3dc: b2db uxtb r3, r3 800b3de: 461a mov r2, r3 800b3e0: 4b5f ldr r3, [pc, #380] ; (800b560 ) 800b3e2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b3e6: 2303 movs r3, #3 800b3e8: 2164 movs r1, #100 ; 0x64 800b3ea: 209a movs r0, #154 ; 0x9a 800b3ec: f7f9 fdb2 bl 8004f54 if(blk) 800b3f0: 4b5d ldr r3, [pc, #372] ; (800b568 ) 800b3f2: 681b ldr r3, [r3, #0] 800b3f4: 2b00 cmp r3, #0 800b3f6: d00b beq.n 800b410 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b3f8: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b3fc: b2db uxtb r3, r3 800b3fe: 461a mov r2, r3 800b400: 4b57 ldr r3, [pc, #348] ; (800b560 ) 800b402: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b406: 2303 movs r3, #3 800b408: 2164 movs r1, #100 ; 0x64 800b40a: 20a1 movs r0, #161 ; 0xa1 800b40c: f7f9 fda2 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b410: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b414: b2db uxtb r3, r3 800b416: 461a mov r2, r3 800b418: 4b51 ldr r3, [pc, #324] ; (800b560 ) 800b41a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b41e: 2303 movs r3, #3 800b420: 2164 movs r1, #100 ; 0x64 800b422: 20a8 movs r0, #168 ; 0xa8 800b424: f7f9 fd96 bl 8004f54 if(menupos == Kikdt_3) 800b428: f001 bdc7 b.w 800cfba if(ipt3 == 1) 800b42c: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b430: b2db uxtb r3, r3 800b432: 2b01 cmp r3, #1 800b434: d147 bne.n 800b4c6 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b436: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b43a: b2db uxtb r3, r3 800b43c: 461a mov r2, r3 800b43e: 4b48 ldr r3, [pc, #288] ; (800b560 ) 800b440: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b444: 2303 movs r3, #3 800b446: 2164 movs r1, #100 ; 0x64 800b448: 208c movs r0, #140 ; 0x8c 800b44a: f7f9 fd83 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b44e: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b452: b2db uxtb r3, r3 800b454: 461a mov r2, r3 800b456: 4b42 ldr r3, [pc, #264] ; (800b560 ) 800b458: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b45c: 2303 movs r3, #3 800b45e: 2164 movs r1, #100 ; 0x64 800b460: 2093 movs r0, #147 ; 0x93 800b462: f7f9 fd77 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b466: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b46a: b2db uxtb r3, r3 800b46c: 461a mov r2, r3 800b46e: 4b3c ldr r3, [pc, #240] ; (800b560 ) 800b470: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b474: 2303 movs r3, #3 800b476: 2164 movs r1, #100 ; 0x64 800b478: 209a movs r0, #154 ; 0x9a 800b47a: f7f9 fd6b bl 8004f54 if(blk) 800b47e: 4b3a ldr r3, [pc, #232] ; (800b568 ) 800b480: 681b ldr r3, [r3, #0] 800b482: 2b00 cmp r3, #0 800b484: d00b beq.n 800b49e BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b486: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b48a: b2db uxtb r3, r3 800b48c: 461a mov r2, r3 800b48e: 4b34 ldr r3, [pc, #208] ; (800b560 ) 800b490: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b494: 2303 movs r3, #3 800b496: 2164 movs r1, #100 ; 0x64 800b498: 20a1 movs r0, #161 ; 0xa1 800b49a: f7f9 fd5b bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE); 800b49e: 2303 movs r3, #3 800b4a0: 4a30 ldr r2, [pc, #192] ; (800b564 ) 800b4a2: 2164 movs r1, #100 ; 0x64 800b4a4: 20a8 movs r0, #168 ; 0xa8 800b4a6: f7f9 fd55 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b4aa: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b4ae: b2db uxtb r3, r3 800b4b0: 461a mov r2, r3 800b4b2: 4b2b ldr r3, [pc, #172] ; (800b560 ) 800b4b4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b4b8: 2303 movs r3, #3 800b4ba: 2164 movs r1, #100 ; 0x64 800b4bc: 20af movs r0, #175 ; 0xaf 800b4be: f7f9 fd49 bl 8004f54 if(menupos == Kikdt_3) 800b4c2: f001 bd7a b.w 800cfba if(ipt3 == 2) 800b4c6: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b4ca: b2db uxtb r3, r3 800b4cc: 2b02 cmp r3, #2 800b4ce: d14f bne.n 800b570 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b4d0: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b4d4: b2db uxtb r3, r3 800b4d6: 461a mov r2, r3 800b4d8: 4b21 ldr r3, [pc, #132] ; (800b560 ) 800b4da: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b4de: 2303 movs r3, #3 800b4e0: 2164 movs r1, #100 ; 0x64 800b4e2: 208c movs r0, #140 ; 0x8c 800b4e4: f7f9 fd36 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b4e8: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b4ec: b2db uxtb r3, r3 800b4ee: 461a mov r2, r3 800b4f0: 4b1b ldr r3, [pc, #108] ; (800b560 ) 800b4f2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b4f6: 2303 movs r3, #3 800b4f8: 2164 movs r1, #100 ; 0x64 800b4fa: 2093 movs r0, #147 ; 0x93 800b4fc: f7f9 fd2a bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b500: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b504: b2db uxtb r3, r3 800b506: 461a mov r2, r3 800b508: 4b15 ldr r3, [pc, #84] ; (800b560 ) 800b50a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b50e: 2303 movs r3, #3 800b510: 2164 movs r1, #100 ; 0x64 800b512: 209a movs r0, #154 ; 0x9a 800b514: f7f9 fd1e bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE); 800b518: 2303 movs r3, #3 800b51a: 4a12 ldr r2, [pc, #72] ; (800b564 ) 800b51c: 2164 movs r1, #100 ; 0x64 800b51e: 20a1 movs r0, #161 ; 0xa1 800b520: f7f9 fd18 bl 8004f54 if(blk) 800b524: 4b10 ldr r3, [pc, #64] ; (800b568 ) 800b526: 681b ldr r3, [r3, #0] 800b528: 2b00 cmp r3, #0 800b52a: d00b beq.n 800b544 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b52c: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b530: b2db uxtb r3, r3 800b532: 461a mov r2, r3 800b534: 4b0a ldr r3, [pc, #40] ; (800b560 ) 800b536: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b53a: 2303 movs r3, #3 800b53c: 2164 movs r1, #100 ; 0x64 800b53e: 20a8 movs r0, #168 ; 0xa8 800b540: f7f9 fd08 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b544: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b548: b2db uxtb r3, r3 800b54a: 461a mov r2, r3 800b54c: 4b04 ldr r3, [pc, #16] ; (800b560 ) 800b54e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b552: 2303 movs r3, #3 800b554: 2164 movs r1, #100 ; 0x64 800b556: 20af movs r0, #175 ; 0xaf 800b558: f7f9 fcfc bl 8004f54 if(menupos == Kikdt_3) 800b55c: f001 bd2d b.w 800cfba 800b560: 2002096c .word 0x2002096c 800b564: 080181c8 .word 0x080181c8 800b568: 2006ba78 .word 0x2006ba78 800b56c: 20020010 .word 0x20020010 if(ipt3 == 3) 800b570: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b574: b2db uxtb r3, r3 800b576: 2b03 cmp r3, #3 800b578: d147 bne.n 800b60a BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b57a: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b57e: b2db uxtb r3, r3 800b580: 461a mov r2, r3 800b582: 4bc1 ldr r3, [pc, #772] ; (800b888 ) 800b584: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b588: 2303 movs r3, #3 800b58a: 2164 movs r1, #100 ; 0x64 800b58c: 208c movs r0, #140 ; 0x8c 800b58e: f7f9 fce1 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b592: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b596: b2db uxtb r3, r3 800b598: 461a mov r2, r3 800b59a: 4bbb ldr r3, [pc, #748] ; (800b888 ) 800b59c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b5a0: 2303 movs r3, #3 800b5a2: 2164 movs r1, #100 ; 0x64 800b5a4: 2093 movs r0, #147 ; 0x93 800b5a6: f7f9 fcd5 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE); 800b5aa: 2303 movs r3, #3 800b5ac: 4ab7 ldr r2, [pc, #732] ; (800b88c ) 800b5ae: 2164 movs r1, #100 ; 0x64 800b5b0: 209a movs r0, #154 ; 0x9a 800b5b2: f7f9 fccf bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b5b6: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b5ba: b2db uxtb r3, r3 800b5bc: 461a mov r2, r3 800b5be: 4bb2 ldr r3, [pc, #712] ; (800b888 ) 800b5c0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b5c4: 2303 movs r3, #3 800b5c6: 2164 movs r1, #100 ; 0x64 800b5c8: 20a1 movs r0, #161 ; 0xa1 800b5ca: f7f9 fcc3 bl 8004f54 if(blk) 800b5ce: 4bb0 ldr r3, [pc, #704] ; (800b890 ) 800b5d0: 681b ldr r3, [r3, #0] 800b5d2: 2b00 cmp r3, #0 800b5d4: d00b beq.n 800b5ee BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b5d6: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b5da: b2db uxtb r3, r3 800b5dc: 461a mov r2, r3 800b5de: 4baa ldr r3, [pc, #680] ; (800b888 ) 800b5e0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b5e4: 2303 movs r3, #3 800b5e6: 2164 movs r1, #100 ; 0x64 800b5e8: 20a8 movs r0, #168 ; 0xa8 800b5ea: f7f9 fcb3 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b5ee: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b5f2: b2db uxtb r3, r3 800b5f4: 461a mov r2, r3 800b5f6: 4ba4 ldr r3, [pc, #656] ; (800b888 ) 800b5f8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b5fc: 2303 movs r3, #3 800b5fe: 2164 movs r1, #100 ; 0x64 800b600: 20af movs r0, #175 ; 0xaf 800b602: f7f9 fca7 bl 8004f54 if(menupos == Kikdt_3) 800b606: f001 bcd8 b.w 800cfba if(ipt3 == 4) 800b60a: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b60e: b2db uxtb r3, r3 800b610: 2b04 cmp r3, #4 800b612: f041 84d2 bne.w 800cfba BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b616: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b61a: b2db uxtb r3, r3 800b61c: 461a mov r2, r3 800b61e: 4b9a ldr r3, [pc, #616] ; (800b888 ) 800b620: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b624: 2303 movs r3, #3 800b626: 2164 movs r1, #100 ; 0x64 800b628: 208c movs r0, #140 ; 0x8c 800b62a: f7f9 fc93 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE); 800b62e: 2303 movs r3, #3 800b630: 4a96 ldr r2, [pc, #600] ; (800b88c ) 800b632: 2164 movs r1, #100 ; 0x64 800b634: 2093 movs r0, #147 ; 0x93 800b636: f7f9 fc8d bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b63a: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b63e: b2db uxtb r3, r3 800b640: 461a mov r2, r3 800b642: 4b91 ldr r3, [pc, #580] ; (800b888 ) 800b644: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b648: 2303 movs r3, #3 800b64a: 2164 movs r1, #100 ; 0x64 800b64c: 209a movs r0, #154 ; 0x9a 800b64e: f7f9 fc81 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b652: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b656: b2db uxtb r3, r3 800b658: 461a mov r2, r3 800b65a: 4b8b ldr r3, [pc, #556] ; (800b888 ) 800b65c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b660: 2303 movs r3, #3 800b662: 2164 movs r1, #100 ; 0x64 800b664: 20a1 movs r0, #161 ; 0xa1 800b666: f7f9 fc75 bl 8004f54 if(blk) 800b66a: 4b89 ldr r3, [pc, #548] ; (800b890 ) 800b66c: 681b ldr r3, [r3, #0] 800b66e: 2b00 cmp r3, #0 800b670: d00b beq.n 800b68a BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b672: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b676: b2db uxtb r3, r3 800b678: 461a mov r2, r3 800b67a: 4b83 ldr r3, [pc, #524] ; (800b888 ) 800b67c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b680: 2303 movs r3, #3 800b682: 2164 movs r1, #100 ; 0x64 800b684: 20a8 movs r0, #168 ; 0xa8 800b686: f7f9 fc65 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b68a: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b68e: b2db uxtb r3, r3 800b690: 461a mov r2, r3 800b692: 4b7d ldr r3, [pc, #500] ; (800b888 ) 800b694: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b698: 2303 movs r3, #3 800b69a: 2164 movs r1, #100 ; 0x64 800b69c: 20af movs r0, #175 ; 0xaf 800b69e: f7f9 fc59 bl 8004f54 if(menupos == Kikdt_3) 800b6a2: f001 bc8a b.w 800cfba if(menupos == Kike_3) 800b6a6: 4b7b ldr r3, [pc, #492] ; (800b894 ) 800b6a8: 781b ldrb r3, [r3, #0] 800b6aa: b2db uxtb r3, r3 800b6ac: 2b16 cmp r3, #22 800b6ae: f040 8190 bne.w 800b9d2 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800b6b2: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b6b6: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800b6ba: f7f9 fb85 bl 8004dc8 if(!ipt3) 800b6be: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b6c2: b2db uxtb r3, r3 800b6c4: 2b00 cmp r3, #0 800b6c6: d142 bne.n 800b74e BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b6c8: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b6cc: b2db uxtb r3, r3 800b6ce: 461a mov r2, r3 800b6d0: 4b6d ldr r3, [pc, #436] ; (800b888 ) 800b6d2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b6d6: 2303 movs r3, #3 800b6d8: 2164 movs r1, #100 ; 0x64 800b6da: 208c movs r0, #140 ; 0x8c 800b6dc: f7f9 fc3a bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b6e0: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b6e4: b2db uxtb r3, r3 800b6e6: 461a mov r2, r3 800b6e8: 4b67 ldr r3, [pc, #412] ; (800b888 ) 800b6ea: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b6ee: 2303 movs r3, #3 800b6f0: 2164 movs r1, #100 ; 0x64 800b6f2: 2093 movs r0, #147 ; 0x93 800b6f4: f7f9 fc2e bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b6f8: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b6fc: b2db uxtb r3, r3 800b6fe: 461a mov r2, r3 800b700: 4b61 ldr r3, [pc, #388] ; (800b888 ) 800b702: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b706: 2303 movs r3, #3 800b708: 2164 movs r1, #100 ; 0x64 800b70a: 209a movs r0, #154 ; 0x9a 800b70c: f7f9 fc22 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b710: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b714: b2db uxtb r3, r3 800b716: 461a mov r2, r3 800b718: 4b5b ldr r3, [pc, #364] ; (800b888 ) 800b71a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b71e: 2303 movs r3, #3 800b720: 2164 movs r1, #100 ; 0x64 800b722: 20a1 movs r0, #161 ; 0xa1 800b724: f7f9 fc16 bl 8004f54 if(blk) 800b728: 4b59 ldr r3, [pc, #356] ; (800b890 ) 800b72a: 681b ldr r3, [r3, #0] 800b72c: 2b00 cmp r3, #0 800b72e: f001 8444 beq.w 800cfba BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b732: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b736: b2db uxtb r3, r3 800b738: 461a mov r2, r3 800b73a: 4b53 ldr r3, [pc, #332] ; (800b888 ) 800b73c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b740: 2303 movs r3, #3 800b742: 2164 movs r1, #100 ; 0x64 800b744: 20a8 movs r0, #168 ; 0xa8 800b746: f7f9 fc05 bl 8004f54 if(menupos == Kikdt_3) 800b74a: f001 bc36 b.w 800cfba if(ipt3 == 1) 800b74e: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b752: b2db uxtb r3, r3 800b754: 2b01 cmp r3, #1 800b756: d148 bne.n 800b7ea BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b758: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b75c: b2db uxtb r3, r3 800b75e: 461a mov r2, r3 800b760: 4b49 ldr r3, [pc, #292] ; (800b888 ) 800b762: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b766: 2303 movs r3, #3 800b768: 2164 movs r1, #100 ; 0x64 800b76a: 208c movs r0, #140 ; 0x8c 800b76c: f7f9 fbf2 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b770: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b774: b2db uxtb r3, r3 800b776: 461a mov r2, r3 800b778: 4b43 ldr r3, [pc, #268] ; (800b888 ) 800b77a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b77e: 2303 movs r3, #3 800b780: 2164 movs r1, #100 ; 0x64 800b782: 2093 movs r0, #147 ; 0x93 800b784: f7f9 fbe6 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b788: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b78c: b2db uxtb r3, r3 800b78e: 461a mov r2, r3 800b790: 4b3d ldr r3, [pc, #244] ; (800b888 ) 800b792: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b796: 2303 movs r3, #3 800b798: 2164 movs r1, #100 ; 0x64 800b79a: 209a movs r0, #154 ; 0x9a 800b79c: f7f9 fbda bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b7a0: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b7a4: b2db uxtb r3, r3 800b7a6: 461a mov r2, r3 800b7a8: 4b37 ldr r3, [pc, #220] ; (800b888 ) 800b7aa: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b7ae: 2303 movs r3, #3 800b7b0: 2164 movs r1, #100 ; 0x64 800b7b2: 20a1 movs r0, #161 ; 0xa1 800b7b4: f7f9 fbce bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE); 800b7b8: 2303 movs r3, #3 800b7ba: 4a34 ldr r2, [pc, #208] ; (800b88c ) 800b7bc: 2164 movs r1, #100 ; 0x64 800b7be: 20a8 movs r0, #168 ; 0xa8 800b7c0: f7f9 fbc8 bl 8004f54 if(blk) 800b7c4: 4b32 ldr r3, [pc, #200] ; (800b890 ) 800b7c6: 681b ldr r3, [r3, #0] 800b7c8: 2b00 cmp r3, #0 800b7ca: f001 83f6 beq.w 800cfba BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b7ce: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b7d2: b2db uxtb r3, r3 800b7d4: 461a mov r2, r3 800b7d6: 4b2c ldr r3, [pc, #176] ; (800b888 ) 800b7d8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b7dc: 2303 movs r3, #3 800b7de: 2164 movs r1, #100 ; 0x64 800b7e0: 20af movs r0, #175 ; 0xaf 800b7e2: f7f9 fbb7 bl 8004f54 if(menupos == Kikdt_3) 800b7e6: f001 bbe8 b.w 800cfba if(ipt3 == 2) 800b7ea: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b7ee: b2db uxtb r3, r3 800b7f0: 2b02 cmp r3, #2 800b7f2: d151 bne.n 800b898 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b7f4: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b7f8: b2db uxtb r3, r3 800b7fa: 461a mov r2, r3 800b7fc: 4b22 ldr r3, [pc, #136] ; (800b888 ) 800b7fe: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b802: 2303 movs r3, #3 800b804: 2164 movs r1, #100 ; 0x64 800b806: 208c movs r0, #140 ; 0x8c 800b808: f7f9 fba4 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b80c: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b810: b2db uxtb r3, r3 800b812: 461a mov r2, r3 800b814: 4b1c ldr r3, [pc, #112] ; (800b888 ) 800b816: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b81a: 2303 movs r3, #3 800b81c: 2164 movs r1, #100 ; 0x64 800b81e: 2093 movs r0, #147 ; 0x93 800b820: f7f9 fb98 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b824: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b828: b2db uxtb r3, r3 800b82a: 461a mov r2, r3 800b82c: 4b16 ldr r3, [pc, #88] ; (800b888 ) 800b82e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b832: 2303 movs r3, #3 800b834: 2164 movs r1, #100 ; 0x64 800b836: 209a movs r0, #154 ; 0x9a 800b838: f7f9 fb8c bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE); 800b83c: 2303 movs r3, #3 800b83e: 4a13 ldr r2, [pc, #76] ; (800b88c ) 800b840: 2164 movs r1, #100 ; 0x64 800b842: 20a1 movs r0, #161 ; 0xa1 800b844: f7f9 fb86 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b848: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b84c: b2db uxtb r3, r3 800b84e: 461a mov r2, r3 800b850: 4b0d ldr r3, [pc, #52] ; (800b888 ) 800b852: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b856: 2303 movs r3, #3 800b858: 2164 movs r1, #100 ; 0x64 800b85a: 20a8 movs r0, #168 ; 0xa8 800b85c: f7f9 fb7a bl 8004f54 if(blk) 800b860: 4b0b ldr r3, [pc, #44] ; (800b890 ) 800b862: 681b ldr r3, [r3, #0] 800b864: 2b00 cmp r3, #0 800b866: f001 83a8 beq.w 800cfba BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b86a: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b86e: b2db uxtb r3, r3 800b870: 461a mov r2, r3 800b872: 4b05 ldr r3, [pc, #20] ; (800b888 ) 800b874: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b878: 2303 movs r3, #3 800b87a: 2164 movs r1, #100 ; 0x64 800b87c: 20af movs r0, #175 ; 0xaf 800b87e: f7f9 fb69 bl 8004f54 if(menupos == Kikdt_3) 800b882: f001 bb9a b.w 800cfba 800b886: bf00 nop 800b888: 2002096c .word 0x2002096c 800b88c: 080181c8 .word 0x080181c8 800b890: 2006ba78 .word 0x2006ba78 800b894: 20020010 .word 0x20020010 if(ipt3 == 3) 800b898: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b89c: b2db uxtb r3, r3 800b89e: 2b03 cmp r3, #3 800b8a0: d148 bne.n 800b934 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b8a2: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b8a6: b2db uxtb r3, r3 800b8a8: 461a mov r2, r3 800b8aa: 4bc4 ldr r3, [pc, #784] ; (800bbbc ) 800b8ac: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b8b0: 2303 movs r3, #3 800b8b2: 2164 movs r1, #100 ; 0x64 800b8b4: 208c movs r0, #140 ; 0x8c 800b8b6: f7f9 fb4d bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b8ba: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b8be: b2db uxtb r3, r3 800b8c0: 461a mov r2, r3 800b8c2: 4bbe ldr r3, [pc, #760] ; (800bbbc ) 800b8c4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b8c8: 2303 movs r3, #3 800b8ca: 2164 movs r1, #100 ; 0x64 800b8cc: 2093 movs r0, #147 ; 0x93 800b8ce: f7f9 fb41 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE); 800b8d2: 2303 movs r3, #3 800b8d4: 4aba ldr r2, [pc, #744] ; (800bbc0 ) 800b8d6: 2164 movs r1, #100 ; 0x64 800b8d8: 209a movs r0, #154 ; 0x9a 800b8da: f7f9 fb3b bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b8de: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b8e2: b2db uxtb r3, r3 800b8e4: 461a mov r2, r3 800b8e6: 4bb5 ldr r3, [pc, #724] ; (800bbbc ) 800b8e8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b8ec: 2303 movs r3, #3 800b8ee: 2164 movs r1, #100 ; 0x64 800b8f0: 20a1 movs r0, #161 ; 0xa1 800b8f2: f7f9 fb2f bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b8f6: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b8fa: b2db uxtb r3, r3 800b8fc: 461a mov r2, r3 800b8fe: 4baf ldr r3, [pc, #700] ; (800bbbc ) 800b900: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b904: 2303 movs r3, #3 800b906: 2164 movs r1, #100 ; 0x64 800b908: 20a8 movs r0, #168 ; 0xa8 800b90a: f7f9 fb23 bl 8004f54 if(blk) 800b90e: 4bad ldr r3, [pc, #692] ; (800bbc4 ) 800b910: 681b ldr r3, [r3, #0] 800b912: 2b00 cmp r3, #0 800b914: f001 8351 beq.w 800cfba BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b918: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b91c: b2db uxtb r3, r3 800b91e: 461a mov r2, r3 800b920: 4ba6 ldr r3, [pc, #664] ; (800bbbc ) 800b922: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b926: 2303 movs r3, #3 800b928: 2164 movs r1, #100 ; 0x64 800b92a: 20af movs r0, #175 ; 0xaf 800b92c: f7f9 fb12 bl 8004f54 if(menupos == Kikdt_3) 800b930: f001 bb43 b.w 800cfba if(ipt3 == 4) 800b934: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b938: b2db uxtb r3, r3 800b93a: 2b04 cmp r3, #4 800b93c: f041 833d bne.w 800cfba BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b940: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b944: b2db uxtb r3, r3 800b946: 461a mov r2, r3 800b948: 4b9c ldr r3, [pc, #624] ; (800bbbc ) 800b94a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b94e: 2303 movs r3, #3 800b950: 2164 movs r1, #100 ; 0x64 800b952: 208c movs r0, #140 ; 0x8c 800b954: f7f9 fafe bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE); 800b958: 2303 movs r3, #3 800b95a: 4a99 ldr r2, [pc, #612] ; (800bbc0 ) 800b95c: 2164 movs r1, #100 ; 0x64 800b95e: 2093 movs r0, #147 ; 0x93 800b960: f7f9 faf8 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b964: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b968: b2db uxtb r3, r3 800b96a: 461a mov r2, r3 800b96c: 4b93 ldr r3, [pc, #588] ; (800bbbc ) 800b96e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b972: 2303 movs r3, #3 800b974: 2164 movs r1, #100 ; 0x64 800b976: 209a movs r0, #154 ; 0x9a 800b978: f7f9 faec bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b97c: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b980: b2db uxtb r3, r3 800b982: 461a mov r2, r3 800b984: 4b8d ldr r3, [pc, #564] ; (800bbbc ) 800b986: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b98a: 2303 movs r3, #3 800b98c: 2164 movs r1, #100 ; 0x64 800b98e: 20a1 movs r0, #161 ; 0xa1 800b990: f7f9 fae0 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b994: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b998: b2db uxtb r3, r3 800b99a: 461a mov r2, r3 800b99c: 4b87 ldr r3, [pc, #540] ; (800bbbc ) 800b99e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b9a2: 2303 movs r3, #3 800b9a4: 2164 movs r1, #100 ; 0x64 800b9a6: 20a8 movs r0, #168 ; 0xa8 800b9a8: f7f9 fad4 bl 8004f54 if(blk) 800b9ac: 4b85 ldr r3, [pc, #532] ; (800bbc4 ) 800b9ae: 681b ldr r3, [r3, #0] 800b9b0: 2b00 cmp r3, #0 800b9b2: f001 8302 beq.w 800cfba BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b9b6: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b9ba: b2db uxtb r3, r3 800b9bc: 461a mov r2, r3 800b9be: 4b7f ldr r3, [pc, #508] ; (800bbbc ) 800b9c0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b9c4: 2303 movs r3, #3 800b9c6: 2164 movs r1, #100 ; 0x64 800b9c8: 20af movs r0, #175 ; 0xaf 800b9ca: f7f9 fac3 bl 8004f54 if(menupos == Kikdt_3) 800b9ce: f001 baf4 b.w 800cfba if(menupos == Kpt_3) 800b9d2: 4b7d ldr r3, [pc, #500] ; (800bbc8 ) 800b9d4: 781b ldrb r3, [r3, #0] 800b9d6: b2db uxtb r3, r3 800b9d8: 2b17 cmp r3, #23 800b9da: f041 82ee bne.w 800cfba LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800b9de: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b9e2: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800b9e6: f7f9 f9ef bl 8004dc8 if(!ipt3) 800b9ea: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b9ee: b2db uxtb r3, r3 800b9f0: 2b00 cmp r3, #0 800b9f2: d148 bne.n 800ba86 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b9f4: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b9f8: b2db uxtb r3, r3 800b9fa: 461a mov r2, r3 800b9fc: 4b6f ldr r3, [pc, #444] ; (800bbbc ) 800b9fe: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ba02: 2303 movs r3, #3 800ba04: 2164 movs r1, #100 ; 0x64 800ba06: 208c movs r0, #140 ; 0x8c 800ba08: f7f9 faa4 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800ba0c: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800ba10: b2db uxtb r3, r3 800ba12: 461a mov r2, r3 800ba14: 4b69 ldr r3, [pc, #420] ; (800bbbc ) 800ba16: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ba1a: 2303 movs r3, #3 800ba1c: 2164 movs r1, #100 ; 0x64 800ba1e: 2093 movs r0, #147 ; 0x93 800ba20: f7f9 fa98 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800ba24: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800ba28: b2db uxtb r3, r3 800ba2a: 461a mov r2, r3 800ba2c: 4b63 ldr r3, [pc, #396] ; (800bbbc ) 800ba2e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ba32: 2303 movs r3, #3 800ba34: 2164 movs r1, #100 ; 0x64 800ba36: 209a movs r0, #154 ; 0x9a 800ba38: f7f9 fa8c bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800ba3c: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800ba40: b2db uxtb r3, r3 800ba42: 461a mov r2, r3 800ba44: 4b5d ldr r3, [pc, #372] ; (800bbbc ) 800ba46: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ba4a: 2303 movs r3, #3 800ba4c: 2164 movs r1, #100 ; 0x64 800ba4e: 20a1 movs r0, #161 ; 0xa1 800ba50: f7f9 fa80 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE); 800ba54: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800ba58: b2db uxtb r3, r3 800ba5a: 461a mov r2, r3 800ba5c: 4b57 ldr r3, [pc, #348] ; (800bbbc ) 800ba5e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ba62: 2303 movs r3, #3 800ba64: 2164 movs r1, #100 ; 0x64 800ba66: 20a8 movs r0, #168 ; 0xa8 800ba68: f7f9 fa74 bl 8004f54 if(blk) 800ba6c: 4b55 ldr r3, [pc, #340] ; (800bbc4 ) 800ba6e: 681b ldr r3, [r3, #0] 800ba70: 2b00 cmp r3, #0 800ba72: f001 82a2 beq.w 800cfba BSP_LCD_DisplayStringAt(140+35, 100, ".", LEFT_MODE); 800ba76: 2303 movs r3, #3 800ba78: 4a51 ldr r2, [pc, #324] ; (800bbc0 ) 800ba7a: 2164 movs r1, #100 ; 0x64 800ba7c: 20af movs r0, #175 ; 0xaf 800ba7e: f7f9 fa69 bl 8004f54 if(menupos == Kikdt_3) 800ba82: f001 ba9a b.w 800cfba if(ipt3 == 1) 800ba86: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800ba8a: b2db uxtb r3, r3 800ba8c: 2b01 cmp r3, #1 800ba8e: d147 bne.n 800bb20 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800ba90: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800ba94: b2db uxtb r3, r3 800ba96: 461a mov r2, r3 800ba98: 4b48 ldr r3, [pc, #288] ; (800bbbc ) 800ba9a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ba9e: 2303 movs r3, #3 800baa0: 2164 movs r1, #100 ; 0x64 800baa2: 208c movs r0, #140 ; 0x8c 800baa4: f7f9 fa56 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800baa8: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800baac: b2db uxtb r3, r3 800baae: 461a mov r2, r3 800bab0: 4b42 ldr r3, [pc, #264] ; (800bbbc ) 800bab2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bab6: 2303 movs r3, #3 800bab8: 2164 movs r1, #100 ; 0x64 800baba: 2093 movs r0, #147 ; 0x93 800babc: f7f9 fa4a bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800bac0: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800bac4: b2db uxtb r3, r3 800bac6: 461a mov r2, r3 800bac8: 4b3c ldr r3, [pc, #240] ; (800bbbc ) 800baca: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bace: 2303 movs r3, #3 800bad0: 2164 movs r1, #100 ; 0x64 800bad2: 209a movs r0, #154 ; 0x9a 800bad4: f7f9 fa3e bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800bad8: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800badc: b2db uxtb r3, r3 800bade: 461a mov r2, r3 800bae0: 4b36 ldr r3, [pc, #216] ; (800bbbc ) 800bae2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bae6: 2303 movs r3, #3 800bae8: 2164 movs r1, #100 ; 0x64 800baea: 20a1 movs r0, #161 ; 0xa1 800baec: f7f9 fa32 bl 8004f54 if(blk) 800baf0: 4b34 ldr r3, [pc, #208] ; (800bbc4 ) 800baf2: 681b ldr r3, [r3, #0] 800baf4: 2b00 cmp r3, #0 800baf6: d005 beq.n 800bb04 BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE); 800baf8: 2303 movs r3, #3 800bafa: 4a31 ldr r2, [pc, #196] ; (800bbc0 ) 800bafc: 2164 movs r1, #100 ; 0x64 800bafe: 20a8 movs r0, #168 ; 0xa8 800bb00: f7f9 fa28 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800bb04: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800bb08: b2db uxtb r3, r3 800bb0a: 461a mov r2, r3 800bb0c: 4b2b ldr r3, [pc, #172] ; (800bbbc ) 800bb0e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bb12: 2303 movs r3, #3 800bb14: 2164 movs r1, #100 ; 0x64 800bb16: 20af movs r0, #175 ; 0xaf 800bb18: f7f9 fa1c bl 8004f54 if(menupos == Kikdt_3) 800bb1c: f001 ba4d b.w 800cfba if(ipt3 == 2) 800bb20: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800bb24: b2db uxtb r3, r3 800bb26: 2b02 cmp r3, #2 800bb28: d150 bne.n 800bbcc BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800bb2a: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800bb2e: b2db uxtb r3, r3 800bb30: 461a mov r2, r3 800bb32: 4b22 ldr r3, [pc, #136] ; (800bbbc ) 800bb34: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bb38: 2303 movs r3, #3 800bb3a: 2164 movs r1, #100 ; 0x64 800bb3c: 208c movs r0, #140 ; 0x8c 800bb3e: f7f9 fa09 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800bb42: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800bb46: b2db uxtb r3, r3 800bb48: 461a mov r2, r3 800bb4a: 4b1c ldr r3, [pc, #112] ; (800bbbc ) 800bb4c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bb50: 2303 movs r3, #3 800bb52: 2164 movs r1, #100 ; 0x64 800bb54: 2093 movs r0, #147 ; 0x93 800bb56: f7f9 f9fd bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800bb5a: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800bb5e: b2db uxtb r3, r3 800bb60: 461a mov r2, r3 800bb62: 4b16 ldr r3, [pc, #88] ; (800bbbc ) 800bb64: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bb68: 2303 movs r3, #3 800bb6a: 2164 movs r1, #100 ; 0x64 800bb6c: 209a movs r0, #154 ; 0x9a 800bb6e: f7f9 f9f1 bl 8004f54 if(blk) 800bb72: 4b14 ldr r3, [pc, #80] ; (800bbc4 ) 800bb74: 681b ldr r3, [r3, #0] 800bb76: 2b00 cmp r3, #0 800bb78: d005 beq.n 800bb86 BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE); 800bb7a: 2303 movs r3, #3 800bb7c: 4a10 ldr r2, [pc, #64] ; (800bbc0 ) 800bb7e: 2164 movs r1, #100 ; 0x64 800bb80: 20a1 movs r0, #161 ; 0xa1 800bb82: f7f9 f9e7 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800bb86: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800bb8a: b2db uxtb r3, r3 800bb8c: 461a mov r2, r3 800bb8e: 4b0b ldr r3, [pc, #44] ; (800bbbc ) 800bb90: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bb94: 2303 movs r3, #3 800bb96: 2164 movs r1, #100 ; 0x64 800bb98: 20a8 movs r0, #168 ; 0xa8 800bb9a: f7f9 f9db bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800bb9e: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800bba2: b2db uxtb r3, r3 800bba4: 461a mov r2, r3 800bba6: 4b05 ldr r3, [pc, #20] ; (800bbbc ) 800bba8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bbac: 2303 movs r3, #3 800bbae: 2164 movs r1, #100 ; 0x64 800bbb0: 20af movs r0, #175 ; 0xaf 800bbb2: f7f9 f9cf bl 8004f54 if(menupos == Kikdt_3) 800bbb6: f001 ba00 b.w 800cfba 800bbba: bf00 nop 800bbbc: 2002096c .word 0x2002096c 800bbc0: 080181c8 .word 0x080181c8 800bbc4: 2006ba78 .word 0x2006ba78 800bbc8: 20020010 .word 0x20020010 if(ipt3 == 3) 800bbcc: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800bbd0: b2db uxtb r3, r3 800bbd2: 2b03 cmp r3, #3 800bbd4: d147 bne.n 800bc66 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800bbd6: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800bbda: b2db uxtb r3, r3 800bbdc: 461a mov r2, r3 800bbde: 4bc2 ldr r3, [pc, #776] ; (800bee8 ) 800bbe0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bbe4: 2303 movs r3, #3 800bbe6: 2164 movs r1, #100 ; 0x64 800bbe8: 208c movs r0, #140 ; 0x8c 800bbea: f7f9 f9b3 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800bbee: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800bbf2: b2db uxtb r3, r3 800bbf4: 461a mov r2, r3 800bbf6: 4bbc ldr r3, [pc, #752] ; (800bee8 ) 800bbf8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bbfc: 2303 movs r3, #3 800bbfe: 2164 movs r1, #100 ; 0x64 800bc00: 2093 movs r0, #147 ; 0x93 800bc02: f7f9 f9a7 bl 8004f54 if(blk) 800bc06: 4bb9 ldr r3, [pc, #740] ; (800beec ) 800bc08: 681b ldr r3, [r3, #0] 800bc0a: 2b00 cmp r3, #0 800bc0c: d005 beq.n 800bc1a BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE); 800bc0e: 2303 movs r3, #3 800bc10: 4ab7 ldr r2, [pc, #732] ; (800bef0 ) 800bc12: 2164 movs r1, #100 ; 0x64 800bc14: 209a movs r0, #154 ; 0x9a 800bc16: f7f9 f99d bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800bc1a: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800bc1e: b2db uxtb r3, r3 800bc20: 461a mov r2, r3 800bc22: 4bb1 ldr r3, [pc, #708] ; (800bee8 ) 800bc24: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bc28: 2303 movs r3, #3 800bc2a: 2164 movs r1, #100 ; 0x64 800bc2c: 20a1 movs r0, #161 ; 0xa1 800bc2e: f7f9 f991 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800bc32: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800bc36: b2db uxtb r3, r3 800bc38: 461a mov r2, r3 800bc3a: 4bab ldr r3, [pc, #684] ; (800bee8 ) 800bc3c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bc40: 2303 movs r3, #3 800bc42: 2164 movs r1, #100 ; 0x64 800bc44: 20a8 movs r0, #168 ; 0xa8 800bc46: f7f9 f985 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800bc4a: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800bc4e: b2db uxtb r3, r3 800bc50: 461a mov r2, r3 800bc52: 4ba5 ldr r3, [pc, #660] ; (800bee8 ) 800bc54: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bc58: 2303 movs r3, #3 800bc5a: 2164 movs r1, #100 ; 0x64 800bc5c: 20af movs r0, #175 ; 0xaf 800bc5e: f7f9 f979 bl 8004f54 if(menupos == Kikdt_3) 800bc62: f001 b9aa b.w 800cfba if(ipt3 == 4) 800bc66: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800bc6a: b2db uxtb r3, r3 800bc6c: 2b04 cmp r3, #4 800bc6e: f041 81a4 bne.w 800cfba BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800bc72: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800bc76: b2db uxtb r3, r3 800bc78: 461a mov r2, r3 800bc7a: 4b9b ldr r3, [pc, #620] ; (800bee8 ) 800bc7c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bc80: 2303 movs r3, #3 800bc82: 2164 movs r1, #100 ; 0x64 800bc84: 208c movs r0, #140 ; 0x8c 800bc86: f7f9 f965 bl 8004f54 if(blk) 800bc8a: 4b98 ldr r3, [pc, #608] ; (800beec ) 800bc8c: 681b ldr r3, [r3, #0] 800bc8e: 2b00 cmp r3, #0 800bc90: d005 beq.n 800bc9e BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE); 800bc92: 2303 movs r3, #3 800bc94: 4a96 ldr r2, [pc, #600] ; (800bef0 ) 800bc96: 2164 movs r1, #100 ; 0x64 800bc98: 2093 movs r0, #147 ; 0x93 800bc9a: f7f9 f95b bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE); 800bc9e: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800bca2: b2db uxtb r3, r3 800bca4: 461a mov r2, r3 800bca6: 4b90 ldr r3, [pc, #576] ; (800bee8 ) 800bca8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bcac: 2303 movs r3, #3 800bcae: 2164 movs r1, #100 ; 0x64 800bcb0: 209a movs r0, #154 ; 0x9a 800bcb2: f7f9 f94f bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800bcb6: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800bcba: b2db uxtb r3, r3 800bcbc: 461a mov r2, r3 800bcbe: 4b8a ldr r3, [pc, #552] ; (800bee8 ) 800bcc0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bcc4: 2303 movs r3, #3 800bcc6: 2164 movs r1, #100 ; 0x64 800bcc8: 20a1 movs r0, #161 ; 0xa1 800bcca: f7f9 f943 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800bcce: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800bcd2: b2db uxtb r3, r3 800bcd4: 461a mov r2, r3 800bcd6: 4b84 ldr r3, [pc, #528] ; (800bee8 ) 800bcd8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bcdc: 2303 movs r3, #3 800bcde: 2164 movs r1, #100 ; 0x64 800bce0: 20a8 movs r0, #168 ; 0xa8 800bce2: f7f9 f937 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800bce6: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800bcea: b2db uxtb r3, r3 800bcec: 461a mov r2, r3 800bcee: 4b7e ldr r3, [pc, #504] ; (800bee8 ) 800bcf0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bcf4: 2303 movs r3, #3 800bcf6: 2164 movs r1, #100 ; 0x64 800bcf8: 20af movs r0, #175 ; 0xaf 800bcfa: f7f9 f92b bl 8004f54 if(menupos == Kikdt_3) 800bcfe: f001 b95c b.w 800cfba if(menupos >= Kikdt_4 && menupos <= Kpt_4) 800bd02: 4b7c ldr r3, [pc, #496] ; (800bef4 ) 800bd04: 781b ldrb r3, [r3, #0] 800bd06: b2db uxtb r3, r3 800bd08: 2b19 cmp r3, #25 800bd0a: f241 8663 bls.w 800d9d4 800bd0e: 4b79 ldr r3, [pc, #484] ; (800bef4 ) 800bd10: 781b ldrb r3, [r3, #0] 800bd12: b2db uxtb r3, r3 800bd14: 2b1f cmp r3, #31 800bd16: f201 865d bhi.w 800d9d4 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800bd1a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800bd1e: 4876 ldr r0, [pc, #472] ; (800bef8 ) 800bd20: f7f9 f852 bl 8004dc8 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 800bd24: f507 728e add.w r2, r7, #284 ; 0x11c 800bd28: 2303 movs r3, #3 800bd2a: 213c movs r1, #60 ; 0x3c 800bd2c: 208c movs r0, #140 ; 0x8c 800bd2e: f7f9 f911 bl 8004f54 BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 800bd32: f107 02e0 add.w r2, r7, #224 ; 0xe0 800bd36: 2303 movs r3, #3 800bd38: 2150 movs r1, #80 ; 0x50 800bd3a: 208c movs r0, #140 ; 0x8c 800bd3c: f7f9 f90a bl 8004f54 BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 800bd40: f107 02a4 add.w r2, r7, #164 ; 0xa4 800bd44: 2303 movs r3, #3 800bd46: 2164 movs r1, #100 ; 0x64 800bd48: 208c movs r0, #140 ; 0x8c 800bd4a: f7f9 f903 bl 8004f54 if(menupos == Kikdt_4) 800bd4e: 4b69 ldr r3, [pc, #420] ; (800bef4 ) 800bd50: 781b ldrb r3, [r3, #0] 800bd52: b2db uxtb r3, r3 800bd54: 2b1a cmp r3, #26 800bd56: f040 814c bne.w 800bff2 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800bd5a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800bd5e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800bd62: f7f9 f831 bl 8004dc8 if(blk) 800bd66: 4b61 ldr r3, [pc, #388] ; (800beec ) 800bd68: 681b ldr r3, [r3, #0] 800bd6a: 2b00 cmp r3, #0 800bd6c: d00b beq.n 800bd86 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800bd6e: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800bd72: b2db uxtb r3, r3 800bd74: 461a mov r2, r3 800bd76: 4b5c ldr r3, [pc, #368] ; (800bee8 ) 800bd78: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bd7c: 2303 movs r3, #3 800bd7e: 2178 movs r1, #120 ; 0x78 800bd80: 208c movs r0, #140 ; 0x8c 800bd82: f7f9 f8e7 bl 8004f54 if(!ipt4) 800bd86: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800bd8a: b2db uxtb r3, r3 800bd8c: 2b00 cmp r3, #0 800bd8e: d131 bne.n 800bdf4 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800bd90: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800bd94: b2db uxtb r3, r3 800bd96: 461a mov r2, r3 800bd98: 4b53 ldr r3, [pc, #332] ; (800bee8 ) 800bd9a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bd9e: 2303 movs r3, #3 800bda0: 2178 movs r1, #120 ; 0x78 800bda2: 2093 movs r0, #147 ; 0x93 800bda4: f7f9 f8d6 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800bda8: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800bdac: b2db uxtb r3, r3 800bdae: 461a mov r2, r3 800bdb0: 4b4d ldr r3, [pc, #308] ; (800bee8 ) 800bdb2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bdb6: 2303 movs r3, #3 800bdb8: 2178 movs r1, #120 ; 0x78 800bdba: 209a movs r0, #154 ; 0x9a 800bdbc: f7f9 f8ca bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800bdc0: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800bdc4: b2db uxtb r3, r3 800bdc6: 461a mov r2, r3 800bdc8: 4b47 ldr r3, [pc, #284] ; (800bee8 ) 800bdca: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bdce: 2303 movs r3, #3 800bdd0: 2178 movs r1, #120 ; 0x78 800bdd2: 20a1 movs r0, #161 ; 0xa1 800bdd4: f7f9 f8be bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE); 800bdd8: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800bddc: b2db uxtb r3, r3 800bdde: 461a mov r2, r3 800bde0: 4b41 ldr r3, [pc, #260] ; (800bee8 ) 800bde2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bde6: 2303 movs r3, #3 800bde8: 2178 movs r1, #120 ; 0x78 800bdea: 20a8 movs r0, #168 ; 0xa8 800bdec: f7f9 f8b2 bl 8004f54 break; 800bdf0: f001 bdf0 b.w 800d9d4 if(ipt4 == 1) 800bdf4: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800bdf8: b2db uxtb r3, r3 800bdfa: 2b01 cmp r3, #1 800bdfc: d137 bne.n 800be6e BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800bdfe: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800be02: b2db uxtb r3, r3 800be04: 461a mov r2, r3 800be06: 4b38 ldr r3, [pc, #224] ; (800bee8 ) 800be08: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800be0c: 2303 movs r3, #3 800be0e: 2178 movs r1, #120 ; 0x78 800be10: 2093 movs r0, #147 ; 0x93 800be12: f7f9 f89f bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800be16: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800be1a: b2db uxtb r3, r3 800be1c: 461a mov r2, r3 800be1e: 4b32 ldr r3, [pc, #200] ; (800bee8 ) 800be20: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800be24: 2303 movs r3, #3 800be26: 2178 movs r1, #120 ; 0x78 800be28: 209a movs r0, #154 ; 0x9a 800be2a: f7f9 f893 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800be2e: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800be32: b2db uxtb r3, r3 800be34: 461a mov r2, r3 800be36: 4b2c ldr r3, [pc, #176] ; (800bee8 ) 800be38: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800be3c: 2303 movs r3, #3 800be3e: 2178 movs r1, #120 ; 0x78 800be40: 20a1 movs r0, #161 ; 0xa1 800be42: f7f9 f887 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE); 800be46: 2303 movs r3, #3 800be48: 4a29 ldr r2, [pc, #164] ; (800bef0 ) 800be4a: 2178 movs r1, #120 ; 0x78 800be4c: 20a8 movs r0, #168 ; 0xa8 800be4e: f7f9 f881 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800be52: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800be56: b2db uxtb r3, r3 800be58: 461a mov r2, r3 800be5a: 4b23 ldr r3, [pc, #140] ; (800bee8 ) 800be5c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800be60: 2303 movs r3, #3 800be62: 2178 movs r1, #120 ; 0x78 800be64: 20af movs r0, #175 ; 0xaf 800be66: f7f9 f875 bl 8004f54 break; 800be6a: f001 bdb3 b.w 800d9d4 if(ipt4 == 2) 800be6e: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800be72: b2db uxtb r3, r3 800be74: 2b02 cmp r3, #2 800be76: d141 bne.n 800befc BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800be78: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800be7c: b2db uxtb r3, r3 800be7e: 461a mov r2, r3 800be80: 4b19 ldr r3, [pc, #100] ; (800bee8 ) 800be82: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800be86: 2303 movs r3, #3 800be88: 2178 movs r1, #120 ; 0x78 800be8a: 2093 movs r0, #147 ; 0x93 800be8c: f7f9 f862 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800be90: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800be94: b2db uxtb r3, r3 800be96: 461a mov r2, r3 800be98: 4b13 ldr r3, [pc, #76] ; (800bee8 ) 800be9a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800be9e: 2303 movs r3, #3 800bea0: 2178 movs r1, #120 ; 0x78 800bea2: 209a movs r0, #154 ; 0x9a 800bea4: f7f9 f856 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE); 800bea8: 2303 movs r3, #3 800beaa: 4a11 ldr r2, [pc, #68] ; (800bef0 ) 800beac: 2178 movs r1, #120 ; 0x78 800beae: 20a1 movs r0, #161 ; 0xa1 800beb0: f7f9 f850 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800beb4: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800beb8: b2db uxtb r3, r3 800beba: 461a mov r2, r3 800bebc: 4b0a ldr r3, [pc, #40] ; (800bee8 ) 800bebe: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bec2: 2303 movs r3, #3 800bec4: 2178 movs r1, #120 ; 0x78 800bec6: 20a8 movs r0, #168 ; 0xa8 800bec8: f7f9 f844 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800becc: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800bed0: b2db uxtb r3, r3 800bed2: 461a mov r2, r3 800bed4: 4b04 ldr r3, [pc, #16] ; (800bee8 ) 800bed6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800beda: 2303 movs r3, #3 800bedc: 2178 movs r1, #120 ; 0x78 800bede: 20af movs r0, #175 ; 0xaf 800bee0: f7f9 f838 bl 8004f54 break; 800bee4: f001 bd76 b.w 800d9d4 800bee8: 2002096c .word 0x2002096c 800beec: 2006ba78 .word 0x2006ba78 800bef0: 080181c8 .word 0x080181c8 800bef4: 20020010 .word 0x20020010 800bef8: ffd8aa57 .word 0xffd8aa57 if(ipt4 == 3) 800befc: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800bf00: b2db uxtb r3, r3 800bf02: 2b03 cmp r3, #3 800bf04: d137 bne.n 800bf76 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800bf06: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800bf0a: b2db uxtb r3, r3 800bf0c: 461a mov r2, r3 800bf0e: 4baf ldr r3, [pc, #700] ; (800c1cc ) 800bf10: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bf14: 2303 movs r3, #3 800bf16: 2178 movs r1, #120 ; 0x78 800bf18: 2093 movs r0, #147 ; 0x93 800bf1a: f7f9 f81b bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE); 800bf1e: 2303 movs r3, #3 800bf20: 4aab ldr r2, [pc, #684] ; (800c1d0 ) 800bf22: 2178 movs r1, #120 ; 0x78 800bf24: 209a movs r0, #154 ; 0x9a 800bf26: f7f9 f815 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800bf2a: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800bf2e: b2db uxtb r3, r3 800bf30: 461a mov r2, r3 800bf32: 4ba6 ldr r3, [pc, #664] ; (800c1cc ) 800bf34: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bf38: 2303 movs r3, #3 800bf3a: 2178 movs r1, #120 ; 0x78 800bf3c: 20a1 movs r0, #161 ; 0xa1 800bf3e: f7f9 f809 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800bf42: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800bf46: b2db uxtb r3, r3 800bf48: 461a mov r2, r3 800bf4a: 4ba0 ldr r3, [pc, #640] ; (800c1cc ) 800bf4c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bf50: 2303 movs r3, #3 800bf52: 2178 movs r1, #120 ; 0x78 800bf54: 20a8 movs r0, #168 ; 0xa8 800bf56: f7f8 fffd bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800bf5a: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800bf5e: b2db uxtb r3, r3 800bf60: 461a mov r2, r3 800bf62: 4b9a ldr r3, [pc, #616] ; (800c1cc ) 800bf64: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bf68: 2303 movs r3, #3 800bf6a: 2178 movs r1, #120 ; 0x78 800bf6c: 20af movs r0, #175 ; 0xaf 800bf6e: f7f8 fff1 bl 8004f54 break; 800bf72: f001 bd2f b.w 800d9d4 if(ipt4 == 4) 800bf76: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800bf7a: b2db uxtb r3, r3 800bf7c: 2b04 cmp r3, #4 800bf7e: f041 8529 bne.w 800d9d4 BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE); 800bf82: 2303 movs r3, #3 800bf84: 4a92 ldr r2, [pc, #584] ; (800c1d0 ) 800bf86: 2178 movs r1, #120 ; 0x78 800bf88: 2093 movs r0, #147 ; 0x93 800bf8a: f7f8 ffe3 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE); 800bf8e: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800bf92: b2db uxtb r3, r3 800bf94: 461a mov r2, r3 800bf96: 4b8d ldr r3, [pc, #564] ; (800c1cc ) 800bf98: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bf9c: 2303 movs r3, #3 800bf9e: 2178 movs r1, #120 ; 0x78 800bfa0: 209a movs r0, #154 ; 0x9a 800bfa2: f7f8 ffd7 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800bfa6: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800bfaa: b2db uxtb r3, r3 800bfac: 461a mov r2, r3 800bfae: 4b87 ldr r3, [pc, #540] ; (800c1cc ) 800bfb0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bfb4: 2303 movs r3, #3 800bfb6: 2178 movs r1, #120 ; 0x78 800bfb8: 20a1 movs r0, #161 ; 0xa1 800bfba: f7f8 ffcb bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800bfbe: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800bfc2: b2db uxtb r3, r3 800bfc4: 461a mov r2, r3 800bfc6: 4b81 ldr r3, [pc, #516] ; (800c1cc ) 800bfc8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bfcc: 2303 movs r3, #3 800bfce: 2178 movs r1, #120 ; 0x78 800bfd0: 20a8 movs r0, #168 ; 0xa8 800bfd2: f7f8 ffbf bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800bfd6: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800bfda: b2db uxtb r3, r3 800bfdc: 461a mov r2, r3 800bfde: 4b7b ldr r3, [pc, #492] ; (800c1cc ) 800bfe0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bfe4: 2303 movs r3, #3 800bfe6: 2178 movs r1, #120 ; 0x78 800bfe8: 20af movs r0, #175 ; 0xaf 800bfea: f7f8 ffb3 bl 8004f54 break; 800bfee: f001 bcf1 b.w 800d9d4 if(menupos == Kikt_4) 800bff2: 4b78 ldr r3, [pc, #480] ; (800c1d4 ) 800bff4: 781b ldrb r3, [r3, #0] 800bff6: b2db uxtb r3, r3 800bff8: 2b1b cmp r3, #27 800bffa: f040 818a bne.w 800c312 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800bffe: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800c002: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800c006: f7f8 fedf bl 8004dc8 if(!ipt4) 800c00a: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c00e: b2db uxtb r3, r3 800c010: 2b00 cmp r3, #0 800c012: d141 bne.n 800c098 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c014: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c018: b2db uxtb r3, r3 800c01a: 461a mov r2, r3 800c01c: 4b6b ldr r3, [pc, #428] ; (800c1cc ) 800c01e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c022: 2303 movs r3, #3 800c024: 2178 movs r1, #120 ; 0x78 800c026: 208c movs r0, #140 ; 0x8c 800c028: f7f8 ff94 bl 8004f54 if(blk) 800c02c: 4b6a ldr r3, [pc, #424] ; (800c1d8 ) 800c02e: 681b ldr r3, [r3, #0] 800c030: 2b00 cmp r3, #0 800c032: d00b beq.n 800c04c BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c034: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c038: b2db uxtb r3, r3 800c03a: 461a mov r2, r3 800c03c: 4b63 ldr r3, [pc, #396] ; (800c1cc ) 800c03e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c042: 2303 movs r3, #3 800c044: 2178 movs r1, #120 ; 0x78 800c046: 2093 movs r0, #147 ; 0x93 800c048: f7f8 ff84 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c04c: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c050: b2db uxtb r3, r3 800c052: 461a mov r2, r3 800c054: 4b5d ldr r3, [pc, #372] ; (800c1cc ) 800c056: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c05a: 2303 movs r3, #3 800c05c: 2178 movs r1, #120 ; 0x78 800c05e: 209a movs r0, #154 ; 0x9a 800c060: f7f8 ff78 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c064: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c068: b2db uxtb r3, r3 800c06a: 461a mov r2, r3 800c06c: 4b57 ldr r3, [pc, #348] ; (800c1cc ) 800c06e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c072: 2303 movs r3, #3 800c074: 2178 movs r1, #120 ; 0x78 800c076: 20a1 movs r0, #161 ; 0xa1 800c078: f7f8 ff6c bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c07c: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c080: b2db uxtb r3, r3 800c082: 461a mov r2, r3 800c084: 4b51 ldr r3, [pc, #324] ; (800c1cc ) 800c086: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c08a: 2303 movs r3, #3 800c08c: 2178 movs r1, #120 ; 0x78 800c08e: 20a8 movs r0, #168 ; 0xa8 800c090: f7f8 ff60 bl 8004f54 break; 800c094: f001 bc9e b.w 800d9d4 if(ipt4 == 1) 800c098: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c09c: b2db uxtb r3, r3 800c09e: 2b01 cmp r3, #1 800c0a0: d147 bne.n 800c132 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c0a2: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c0a6: b2db uxtb r3, r3 800c0a8: 461a mov r2, r3 800c0aa: 4b48 ldr r3, [pc, #288] ; (800c1cc ) 800c0ac: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c0b0: 2303 movs r3, #3 800c0b2: 2178 movs r1, #120 ; 0x78 800c0b4: 208c movs r0, #140 ; 0x8c 800c0b6: f7f8 ff4d bl 8004f54 if(blk) 800c0ba: 4b47 ldr r3, [pc, #284] ; (800c1d8 ) 800c0bc: 681b ldr r3, [r3, #0] 800c0be: 2b00 cmp r3, #0 800c0c0: d00b beq.n 800c0da BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c0c2: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c0c6: b2db uxtb r3, r3 800c0c8: 461a mov r2, r3 800c0ca: 4b40 ldr r3, [pc, #256] ; (800c1cc ) 800c0cc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c0d0: 2303 movs r3, #3 800c0d2: 2178 movs r1, #120 ; 0x78 800c0d4: 2093 movs r0, #147 ; 0x93 800c0d6: f7f8 ff3d bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c0da: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c0de: b2db uxtb r3, r3 800c0e0: 461a mov r2, r3 800c0e2: 4b3a ldr r3, [pc, #232] ; (800c1cc ) 800c0e4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c0e8: 2303 movs r3, #3 800c0ea: 2178 movs r1, #120 ; 0x78 800c0ec: 209a movs r0, #154 ; 0x9a 800c0ee: f7f8 ff31 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c0f2: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c0f6: b2db uxtb r3, r3 800c0f8: 461a mov r2, r3 800c0fa: 4b34 ldr r3, [pc, #208] ; (800c1cc ) 800c0fc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c100: 2303 movs r3, #3 800c102: 2178 movs r1, #120 ; 0x78 800c104: 20a1 movs r0, #161 ; 0xa1 800c106: f7f8 ff25 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE); 800c10a: 2303 movs r3, #3 800c10c: 4a30 ldr r2, [pc, #192] ; (800c1d0 ) 800c10e: 2178 movs r1, #120 ; 0x78 800c110: 20a8 movs r0, #168 ; 0xa8 800c112: f7f8 ff1f bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c116: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c11a: b2db uxtb r3, r3 800c11c: 461a mov r2, r3 800c11e: 4b2b ldr r3, [pc, #172] ; (800c1cc ) 800c120: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c124: 2303 movs r3, #3 800c126: 2178 movs r1, #120 ; 0x78 800c128: 20af movs r0, #175 ; 0xaf 800c12a: f7f8 ff13 bl 8004f54 break; 800c12e: f001 bc51 b.w 800d9d4 if(ipt4 == 2) 800c132: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c136: b2db uxtb r3, r3 800c138: 2b02 cmp r3, #2 800c13a: d14f bne.n 800c1dc BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c13c: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c140: b2db uxtb r3, r3 800c142: 461a mov r2, r3 800c144: 4b21 ldr r3, [pc, #132] ; (800c1cc ) 800c146: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c14a: 2303 movs r3, #3 800c14c: 2178 movs r1, #120 ; 0x78 800c14e: 208c movs r0, #140 ; 0x8c 800c150: f7f8 ff00 bl 8004f54 if(blk) 800c154: 4b20 ldr r3, [pc, #128] ; (800c1d8 ) 800c156: 681b ldr r3, [r3, #0] 800c158: 2b00 cmp r3, #0 800c15a: d00b beq.n 800c174 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c15c: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c160: b2db uxtb r3, r3 800c162: 461a mov r2, r3 800c164: 4b19 ldr r3, [pc, #100] ; (800c1cc ) 800c166: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c16a: 2303 movs r3, #3 800c16c: 2178 movs r1, #120 ; 0x78 800c16e: 2093 movs r0, #147 ; 0x93 800c170: f7f8 fef0 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c174: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c178: b2db uxtb r3, r3 800c17a: 461a mov r2, r3 800c17c: 4b13 ldr r3, [pc, #76] ; (800c1cc ) 800c17e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c182: 2303 movs r3, #3 800c184: 2178 movs r1, #120 ; 0x78 800c186: 209a movs r0, #154 ; 0x9a 800c188: f7f8 fee4 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE); 800c18c: 2303 movs r3, #3 800c18e: 4a10 ldr r2, [pc, #64] ; (800c1d0 ) 800c190: 2178 movs r1, #120 ; 0x78 800c192: 20a1 movs r0, #161 ; 0xa1 800c194: f7f8 fede bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c198: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c19c: b2db uxtb r3, r3 800c19e: 461a mov r2, r3 800c1a0: 4b0a ldr r3, [pc, #40] ; (800c1cc ) 800c1a2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c1a6: 2303 movs r3, #3 800c1a8: 2178 movs r1, #120 ; 0x78 800c1aa: 20a8 movs r0, #168 ; 0xa8 800c1ac: f7f8 fed2 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c1b0: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c1b4: b2db uxtb r3, r3 800c1b6: 461a mov r2, r3 800c1b8: 4b04 ldr r3, [pc, #16] ; (800c1cc ) 800c1ba: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c1be: 2303 movs r3, #3 800c1c0: 2178 movs r1, #120 ; 0x78 800c1c2: 20af movs r0, #175 ; 0xaf 800c1c4: f7f8 fec6 bl 8004f54 break; 800c1c8: f001 bc04 b.w 800d9d4 800c1cc: 2002096c .word 0x2002096c 800c1d0: 080181c8 .word 0x080181c8 800c1d4: 20020010 .word 0x20020010 800c1d8: 2006ba78 .word 0x2006ba78 if(ipt4 == 3) 800c1dc: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c1e0: b2db uxtb r3, r3 800c1e2: 2b03 cmp r3, #3 800c1e4: d147 bne.n 800c276 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c1e6: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c1ea: b2db uxtb r3, r3 800c1ec: 461a mov r2, r3 800c1ee: 4bbf ldr r3, [pc, #764] ; (800c4ec ) 800c1f0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c1f4: 2303 movs r3, #3 800c1f6: 2178 movs r1, #120 ; 0x78 800c1f8: 208c movs r0, #140 ; 0x8c 800c1fa: f7f8 feab bl 8004f54 if(blk) 800c1fe: 4bbc ldr r3, [pc, #752] ; (800c4f0 ) 800c200: 681b ldr r3, [r3, #0] 800c202: 2b00 cmp r3, #0 800c204: d00b beq.n 800c21e BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c206: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c20a: b2db uxtb r3, r3 800c20c: 461a mov r2, r3 800c20e: 4bb7 ldr r3, [pc, #732] ; (800c4ec ) 800c210: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c214: 2303 movs r3, #3 800c216: 2178 movs r1, #120 ; 0x78 800c218: 2093 movs r0, #147 ; 0x93 800c21a: f7f8 fe9b bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE); 800c21e: 2303 movs r3, #3 800c220: 4ab4 ldr r2, [pc, #720] ; (800c4f4 ) 800c222: 2178 movs r1, #120 ; 0x78 800c224: 209a movs r0, #154 ; 0x9a 800c226: f7f8 fe95 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c22a: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c22e: b2db uxtb r3, r3 800c230: 461a mov r2, r3 800c232: 4bae ldr r3, [pc, #696] ; (800c4ec ) 800c234: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c238: 2303 movs r3, #3 800c23a: 2178 movs r1, #120 ; 0x78 800c23c: 20a1 movs r0, #161 ; 0xa1 800c23e: f7f8 fe89 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c242: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c246: b2db uxtb r3, r3 800c248: 461a mov r2, r3 800c24a: 4ba8 ldr r3, [pc, #672] ; (800c4ec ) 800c24c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c250: 2303 movs r3, #3 800c252: 2178 movs r1, #120 ; 0x78 800c254: 20a8 movs r0, #168 ; 0xa8 800c256: f7f8 fe7d bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c25a: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c25e: b2db uxtb r3, r3 800c260: 461a mov r2, r3 800c262: 4ba2 ldr r3, [pc, #648] ; (800c4ec ) 800c264: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c268: 2303 movs r3, #3 800c26a: 2178 movs r1, #120 ; 0x78 800c26c: 20af movs r0, #175 ; 0xaf 800c26e: f7f8 fe71 bl 8004f54 break; 800c272: f001 bbaf b.w 800d9d4 if(ipt4 == 4) 800c276: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c27a: b2db uxtb r3, r3 800c27c: 2b04 cmp r3, #4 800c27e: f041 83a9 bne.w 800d9d4 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c282: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c286: b2db uxtb r3, r3 800c288: 461a mov r2, r3 800c28a: 4b98 ldr r3, [pc, #608] ; (800c4ec ) 800c28c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c290: 2303 movs r3, #3 800c292: 2178 movs r1, #120 ; 0x78 800c294: 208c movs r0, #140 ; 0x8c 800c296: f7f8 fe5d bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE); 800c29a: 2303 movs r3, #3 800c29c: 4a95 ldr r2, [pc, #596] ; (800c4f4 ) 800c29e: 2178 movs r1, #120 ; 0x78 800c2a0: 2093 movs r0, #147 ; 0x93 800c2a2: f7f8 fe57 bl 8004f54 if(blk) 800c2a6: 4b92 ldr r3, [pc, #584] ; (800c4f0 ) 800c2a8: 681b ldr r3, [r3, #0] 800c2aa: 2b00 cmp r3, #0 800c2ac: d00b beq.n 800c2c6 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c2ae: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c2b2: b2db uxtb r3, r3 800c2b4: 461a mov r2, r3 800c2b6: 4b8d ldr r3, [pc, #564] ; (800c4ec ) 800c2b8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c2bc: 2303 movs r3, #3 800c2be: 2178 movs r1, #120 ; 0x78 800c2c0: 209a movs r0, #154 ; 0x9a 800c2c2: f7f8 fe47 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c2c6: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c2ca: b2db uxtb r3, r3 800c2cc: 461a mov r2, r3 800c2ce: 4b87 ldr r3, [pc, #540] ; (800c4ec ) 800c2d0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c2d4: 2303 movs r3, #3 800c2d6: 2178 movs r1, #120 ; 0x78 800c2d8: 20a1 movs r0, #161 ; 0xa1 800c2da: f7f8 fe3b bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c2de: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c2e2: b2db uxtb r3, r3 800c2e4: 461a mov r2, r3 800c2e6: 4b81 ldr r3, [pc, #516] ; (800c4ec ) 800c2e8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c2ec: 2303 movs r3, #3 800c2ee: 2178 movs r1, #120 ; 0x78 800c2f0: 20a8 movs r0, #168 ; 0xa8 800c2f2: f7f8 fe2f bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c2f6: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c2fa: b2db uxtb r3, r3 800c2fc: 461a mov r2, r3 800c2fe: 4b7b ldr r3, [pc, #492] ; (800c4ec ) 800c300: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c304: 2303 movs r3, #3 800c306: 2178 movs r1, #120 ; 0x78 800c308: 20af movs r0, #175 ; 0xaf 800c30a: f7f8 fe23 bl 8004f54 break; 800c30e: f001 bb61 b.w 800d9d4 if(menupos == Kiks_4) 800c312: 4b79 ldr r3, [pc, #484] ; (800c4f8 ) 800c314: 781b ldrb r3, [r3, #0] 800c316: b2db uxtb r3, r3 800c318: 2b1c cmp r3, #28 800c31a: f040 818a bne.w 800c632 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800c31e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800c322: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800c326: f7f8 fd4f bl 8004dc8 if(!ipt4) 800c32a: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c32e: b2db uxtb r3, r3 800c330: 2b00 cmp r3, #0 800c332: d141 bne.n 800c3b8 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c334: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c338: b2db uxtb r3, r3 800c33a: 461a mov r2, r3 800c33c: 4b6b ldr r3, [pc, #428] ; (800c4ec ) 800c33e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c342: 2303 movs r3, #3 800c344: 2178 movs r1, #120 ; 0x78 800c346: 208c movs r0, #140 ; 0x8c 800c348: f7f8 fe04 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c34c: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c350: b2db uxtb r3, r3 800c352: 461a mov r2, r3 800c354: 4b65 ldr r3, [pc, #404] ; (800c4ec ) 800c356: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c35a: 2303 movs r3, #3 800c35c: 2178 movs r1, #120 ; 0x78 800c35e: 2093 movs r0, #147 ; 0x93 800c360: f7f8 fdf8 bl 8004f54 if(blk) 800c364: 4b62 ldr r3, [pc, #392] ; (800c4f0 ) 800c366: 681b ldr r3, [r3, #0] 800c368: 2b00 cmp r3, #0 800c36a: d00b beq.n 800c384 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c36c: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c370: b2db uxtb r3, r3 800c372: 461a mov r2, r3 800c374: 4b5d ldr r3, [pc, #372] ; (800c4ec ) 800c376: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c37a: 2303 movs r3, #3 800c37c: 2178 movs r1, #120 ; 0x78 800c37e: 209a movs r0, #154 ; 0x9a 800c380: f7f8 fde8 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c384: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c388: b2db uxtb r3, r3 800c38a: 461a mov r2, r3 800c38c: 4b57 ldr r3, [pc, #348] ; (800c4ec ) 800c38e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c392: 2303 movs r3, #3 800c394: 2178 movs r1, #120 ; 0x78 800c396: 20a1 movs r0, #161 ; 0xa1 800c398: f7f8 fddc bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c39c: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c3a0: b2db uxtb r3, r3 800c3a2: 461a mov r2, r3 800c3a4: 4b51 ldr r3, [pc, #324] ; (800c4ec ) 800c3a6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c3aa: 2303 movs r3, #3 800c3ac: 2178 movs r1, #120 ; 0x78 800c3ae: 20a8 movs r0, #168 ; 0xa8 800c3b0: f7f8 fdd0 bl 8004f54 break; 800c3b4: f001 bb0e b.w 800d9d4 if(ipt4 == 1) 800c3b8: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c3bc: b2db uxtb r3, r3 800c3be: 2b01 cmp r3, #1 800c3c0: d147 bne.n 800c452 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c3c2: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c3c6: b2db uxtb r3, r3 800c3c8: 461a mov r2, r3 800c3ca: 4b48 ldr r3, [pc, #288] ; (800c4ec ) 800c3cc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c3d0: 2303 movs r3, #3 800c3d2: 2178 movs r1, #120 ; 0x78 800c3d4: 208c movs r0, #140 ; 0x8c 800c3d6: f7f8 fdbd bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c3da: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c3de: b2db uxtb r3, r3 800c3e0: 461a mov r2, r3 800c3e2: 4b42 ldr r3, [pc, #264] ; (800c4ec ) 800c3e4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c3e8: 2303 movs r3, #3 800c3ea: 2178 movs r1, #120 ; 0x78 800c3ec: 2093 movs r0, #147 ; 0x93 800c3ee: f7f8 fdb1 bl 8004f54 if(blk) 800c3f2: 4b3f ldr r3, [pc, #252] ; (800c4f0 ) 800c3f4: 681b ldr r3, [r3, #0] 800c3f6: 2b00 cmp r3, #0 800c3f8: d00b beq.n 800c412 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c3fa: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c3fe: b2db uxtb r3, r3 800c400: 461a mov r2, r3 800c402: 4b3a ldr r3, [pc, #232] ; (800c4ec ) 800c404: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c408: 2303 movs r3, #3 800c40a: 2178 movs r1, #120 ; 0x78 800c40c: 209a movs r0, #154 ; 0x9a 800c40e: f7f8 fda1 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c412: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c416: b2db uxtb r3, r3 800c418: 461a mov r2, r3 800c41a: 4b34 ldr r3, [pc, #208] ; (800c4ec ) 800c41c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c420: 2303 movs r3, #3 800c422: 2178 movs r1, #120 ; 0x78 800c424: 20a1 movs r0, #161 ; 0xa1 800c426: f7f8 fd95 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE); 800c42a: 2303 movs r3, #3 800c42c: 4a31 ldr r2, [pc, #196] ; (800c4f4 ) 800c42e: 2178 movs r1, #120 ; 0x78 800c430: 20a8 movs r0, #168 ; 0xa8 800c432: f7f8 fd8f bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c436: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c43a: b2db uxtb r3, r3 800c43c: 461a mov r2, r3 800c43e: 4b2b ldr r3, [pc, #172] ; (800c4ec ) 800c440: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c444: 2303 movs r3, #3 800c446: 2178 movs r1, #120 ; 0x78 800c448: 20af movs r0, #175 ; 0xaf 800c44a: f7f8 fd83 bl 8004f54 break; 800c44e: f001 bac1 b.w 800d9d4 if(ipt4 == 2) 800c452: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c456: b2db uxtb r3, r3 800c458: 2b02 cmp r3, #2 800c45a: d14f bne.n 800c4fc BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c45c: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c460: b2db uxtb r3, r3 800c462: 461a mov r2, r3 800c464: 4b21 ldr r3, [pc, #132] ; (800c4ec ) 800c466: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c46a: 2303 movs r3, #3 800c46c: 2178 movs r1, #120 ; 0x78 800c46e: 208c movs r0, #140 ; 0x8c 800c470: f7f8 fd70 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c474: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c478: b2db uxtb r3, r3 800c47a: 461a mov r2, r3 800c47c: 4b1b ldr r3, [pc, #108] ; (800c4ec ) 800c47e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c482: 2303 movs r3, #3 800c484: 2178 movs r1, #120 ; 0x78 800c486: 2093 movs r0, #147 ; 0x93 800c488: f7f8 fd64 bl 8004f54 if(blk) 800c48c: 4b18 ldr r3, [pc, #96] ; (800c4f0 ) 800c48e: 681b ldr r3, [r3, #0] 800c490: 2b00 cmp r3, #0 800c492: d00b beq.n 800c4ac BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c494: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c498: b2db uxtb r3, r3 800c49a: 461a mov r2, r3 800c49c: 4b13 ldr r3, [pc, #76] ; (800c4ec ) 800c49e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c4a2: 2303 movs r3, #3 800c4a4: 2178 movs r1, #120 ; 0x78 800c4a6: 209a movs r0, #154 ; 0x9a 800c4a8: f7f8 fd54 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE); 800c4ac: 2303 movs r3, #3 800c4ae: 4a11 ldr r2, [pc, #68] ; (800c4f4 ) 800c4b0: 2178 movs r1, #120 ; 0x78 800c4b2: 20a1 movs r0, #161 ; 0xa1 800c4b4: f7f8 fd4e bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c4b8: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c4bc: b2db uxtb r3, r3 800c4be: 461a mov r2, r3 800c4c0: 4b0a ldr r3, [pc, #40] ; (800c4ec ) 800c4c2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c4c6: 2303 movs r3, #3 800c4c8: 2178 movs r1, #120 ; 0x78 800c4ca: 20a8 movs r0, #168 ; 0xa8 800c4cc: f7f8 fd42 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c4d0: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c4d4: b2db uxtb r3, r3 800c4d6: 461a mov r2, r3 800c4d8: 4b04 ldr r3, [pc, #16] ; (800c4ec ) 800c4da: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c4de: 2303 movs r3, #3 800c4e0: 2178 movs r1, #120 ; 0x78 800c4e2: 20af movs r0, #175 ; 0xaf 800c4e4: f7f8 fd36 bl 8004f54 break; 800c4e8: f001 ba74 b.w 800d9d4 800c4ec: 2002096c .word 0x2002096c 800c4f0: 2006ba78 .word 0x2006ba78 800c4f4: 080181c8 .word 0x080181c8 800c4f8: 20020010 .word 0x20020010 if(ipt4 == 3) 800c4fc: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c500: b2db uxtb r3, r3 800c502: 2b03 cmp r3, #3 800c504: d147 bne.n 800c596 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c506: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c50a: b2db uxtb r3, r3 800c50c: 461a mov r2, r3 800c50e: 4bbf ldr r3, [pc, #764] ; (800c80c ) 800c510: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c514: 2303 movs r3, #3 800c516: 2178 movs r1, #120 ; 0x78 800c518: 208c movs r0, #140 ; 0x8c 800c51a: f7f8 fd1b bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c51e: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c522: b2db uxtb r3, r3 800c524: 461a mov r2, r3 800c526: 4bb9 ldr r3, [pc, #740] ; (800c80c ) 800c528: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c52c: 2303 movs r3, #3 800c52e: 2178 movs r1, #120 ; 0x78 800c530: 2093 movs r0, #147 ; 0x93 800c532: f7f8 fd0f bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE); 800c536: 2303 movs r3, #3 800c538: 4ab5 ldr r2, [pc, #724] ; (800c810 ) 800c53a: 2178 movs r1, #120 ; 0x78 800c53c: 209a movs r0, #154 ; 0x9a 800c53e: f7f8 fd09 bl 8004f54 if(blk) 800c542: 4bb4 ldr r3, [pc, #720] ; (800c814 ) 800c544: 681b ldr r3, [r3, #0] 800c546: 2b00 cmp r3, #0 800c548: d00b beq.n 800c562 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c54a: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c54e: b2db uxtb r3, r3 800c550: 461a mov r2, r3 800c552: 4bae ldr r3, [pc, #696] ; (800c80c ) 800c554: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c558: 2303 movs r3, #3 800c55a: 2178 movs r1, #120 ; 0x78 800c55c: 20a1 movs r0, #161 ; 0xa1 800c55e: f7f8 fcf9 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c562: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c566: b2db uxtb r3, r3 800c568: 461a mov r2, r3 800c56a: 4ba8 ldr r3, [pc, #672] ; (800c80c ) 800c56c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c570: 2303 movs r3, #3 800c572: 2178 movs r1, #120 ; 0x78 800c574: 20a8 movs r0, #168 ; 0xa8 800c576: f7f8 fced bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c57a: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c57e: b2db uxtb r3, r3 800c580: 461a mov r2, r3 800c582: 4ba2 ldr r3, [pc, #648] ; (800c80c ) 800c584: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c588: 2303 movs r3, #3 800c58a: 2178 movs r1, #120 ; 0x78 800c58c: 20af movs r0, #175 ; 0xaf 800c58e: f7f8 fce1 bl 8004f54 break; 800c592: f001 ba1f b.w 800d9d4 if(ipt4 == 4) 800c596: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c59a: b2db uxtb r3, r3 800c59c: 2b04 cmp r3, #4 800c59e: f041 8219 bne.w 800d9d4 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c5a2: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c5a6: b2db uxtb r3, r3 800c5a8: 461a mov r2, r3 800c5aa: 4b98 ldr r3, [pc, #608] ; (800c80c ) 800c5ac: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c5b0: 2303 movs r3, #3 800c5b2: 2178 movs r1, #120 ; 0x78 800c5b4: 208c movs r0, #140 ; 0x8c 800c5b6: f7f8 fccd bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE); 800c5ba: 2303 movs r3, #3 800c5bc: 4a94 ldr r2, [pc, #592] ; (800c810 ) 800c5be: 2178 movs r1, #120 ; 0x78 800c5c0: 2093 movs r0, #147 ; 0x93 800c5c2: f7f8 fcc7 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c5c6: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c5ca: b2db uxtb r3, r3 800c5cc: 461a mov r2, r3 800c5ce: 4b8f ldr r3, [pc, #572] ; (800c80c ) 800c5d0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c5d4: 2303 movs r3, #3 800c5d6: 2178 movs r1, #120 ; 0x78 800c5d8: 209a movs r0, #154 ; 0x9a 800c5da: f7f8 fcbb bl 8004f54 if(blk) 800c5de: 4b8d ldr r3, [pc, #564] ; (800c814 ) 800c5e0: 681b ldr r3, [r3, #0] 800c5e2: 2b00 cmp r3, #0 800c5e4: d00b beq.n 800c5fe BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c5e6: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c5ea: b2db uxtb r3, r3 800c5ec: 461a mov r2, r3 800c5ee: 4b87 ldr r3, [pc, #540] ; (800c80c ) 800c5f0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c5f4: 2303 movs r3, #3 800c5f6: 2178 movs r1, #120 ; 0x78 800c5f8: 20a1 movs r0, #161 ; 0xa1 800c5fa: f7f8 fcab bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c5fe: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c602: b2db uxtb r3, r3 800c604: 461a mov r2, r3 800c606: 4b81 ldr r3, [pc, #516] ; (800c80c ) 800c608: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c60c: 2303 movs r3, #3 800c60e: 2178 movs r1, #120 ; 0x78 800c610: 20a8 movs r0, #168 ; 0xa8 800c612: f7f8 fc9f bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c616: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c61a: b2db uxtb r3, r3 800c61c: 461a mov r2, r3 800c61e: 4b7b ldr r3, [pc, #492] ; (800c80c ) 800c620: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c624: 2303 movs r3, #3 800c626: 2178 movs r1, #120 ; 0x78 800c628: 20af movs r0, #175 ; 0xaf 800c62a: f7f8 fc93 bl 8004f54 break; 800c62e: f001 b9d1 b.w 800d9d4 if(menupos == Kikd_4) 800c632: 4b79 ldr r3, [pc, #484] ; (800c818 ) 800c634: 781b ldrb r3, [r3, #0] 800c636: b2db uxtb r3, r3 800c638: 2b1d cmp r3, #29 800c63a: f040 818a bne.w 800c952 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800c63e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800c642: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800c646: f7f8 fbbf bl 8004dc8 if(!ipt4) 800c64a: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c64e: b2db uxtb r3, r3 800c650: 2b00 cmp r3, #0 800c652: d141 bne.n 800c6d8 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c654: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c658: b2db uxtb r3, r3 800c65a: 461a mov r2, r3 800c65c: 4b6b ldr r3, [pc, #428] ; (800c80c ) 800c65e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c662: 2303 movs r3, #3 800c664: 2178 movs r1, #120 ; 0x78 800c666: 208c movs r0, #140 ; 0x8c 800c668: f7f8 fc74 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c66c: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c670: b2db uxtb r3, r3 800c672: 461a mov r2, r3 800c674: 4b65 ldr r3, [pc, #404] ; (800c80c ) 800c676: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c67a: 2303 movs r3, #3 800c67c: 2178 movs r1, #120 ; 0x78 800c67e: 2093 movs r0, #147 ; 0x93 800c680: f7f8 fc68 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c684: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c688: b2db uxtb r3, r3 800c68a: 461a mov r2, r3 800c68c: 4b5f ldr r3, [pc, #380] ; (800c80c ) 800c68e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c692: 2303 movs r3, #3 800c694: 2178 movs r1, #120 ; 0x78 800c696: 209a movs r0, #154 ; 0x9a 800c698: f7f8 fc5c bl 8004f54 if(blk) 800c69c: 4b5d ldr r3, [pc, #372] ; (800c814 ) 800c69e: 681b ldr r3, [r3, #0] 800c6a0: 2b00 cmp r3, #0 800c6a2: d00b beq.n 800c6bc BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c6a4: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c6a8: b2db uxtb r3, r3 800c6aa: 461a mov r2, r3 800c6ac: 4b57 ldr r3, [pc, #348] ; (800c80c ) 800c6ae: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c6b2: 2303 movs r3, #3 800c6b4: 2178 movs r1, #120 ; 0x78 800c6b6: 20a1 movs r0, #161 ; 0xa1 800c6b8: f7f8 fc4c bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c6bc: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c6c0: b2db uxtb r3, r3 800c6c2: 461a mov r2, r3 800c6c4: 4b51 ldr r3, [pc, #324] ; (800c80c ) 800c6c6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c6ca: 2303 movs r3, #3 800c6cc: 2178 movs r1, #120 ; 0x78 800c6ce: 20a8 movs r0, #168 ; 0xa8 800c6d0: f7f8 fc40 bl 8004f54 break; 800c6d4: f001 b97e b.w 800d9d4 if(ipt4 == 1) 800c6d8: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c6dc: b2db uxtb r3, r3 800c6de: 2b01 cmp r3, #1 800c6e0: d147 bne.n 800c772 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c6e2: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c6e6: b2db uxtb r3, r3 800c6e8: 461a mov r2, r3 800c6ea: 4b48 ldr r3, [pc, #288] ; (800c80c ) 800c6ec: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c6f0: 2303 movs r3, #3 800c6f2: 2178 movs r1, #120 ; 0x78 800c6f4: 208c movs r0, #140 ; 0x8c 800c6f6: f7f8 fc2d bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c6fa: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c6fe: b2db uxtb r3, r3 800c700: 461a mov r2, r3 800c702: 4b42 ldr r3, [pc, #264] ; (800c80c ) 800c704: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c708: 2303 movs r3, #3 800c70a: 2178 movs r1, #120 ; 0x78 800c70c: 2093 movs r0, #147 ; 0x93 800c70e: f7f8 fc21 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c712: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c716: b2db uxtb r3, r3 800c718: 461a mov r2, r3 800c71a: 4b3c ldr r3, [pc, #240] ; (800c80c ) 800c71c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c720: 2303 movs r3, #3 800c722: 2178 movs r1, #120 ; 0x78 800c724: 209a movs r0, #154 ; 0x9a 800c726: f7f8 fc15 bl 8004f54 if(blk) 800c72a: 4b3a ldr r3, [pc, #232] ; (800c814 ) 800c72c: 681b ldr r3, [r3, #0] 800c72e: 2b00 cmp r3, #0 800c730: d00b beq.n 800c74a BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c732: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c736: b2db uxtb r3, r3 800c738: 461a mov r2, r3 800c73a: 4b34 ldr r3, [pc, #208] ; (800c80c ) 800c73c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c740: 2303 movs r3, #3 800c742: 2178 movs r1, #120 ; 0x78 800c744: 20a1 movs r0, #161 ; 0xa1 800c746: f7f8 fc05 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE); 800c74a: 2303 movs r3, #3 800c74c: 4a30 ldr r2, [pc, #192] ; (800c810 ) 800c74e: 2178 movs r1, #120 ; 0x78 800c750: 20a8 movs r0, #168 ; 0xa8 800c752: f7f8 fbff bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c756: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c75a: b2db uxtb r3, r3 800c75c: 461a mov r2, r3 800c75e: 4b2b ldr r3, [pc, #172] ; (800c80c ) 800c760: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c764: 2303 movs r3, #3 800c766: 2178 movs r1, #120 ; 0x78 800c768: 20af movs r0, #175 ; 0xaf 800c76a: f7f8 fbf3 bl 8004f54 break; 800c76e: f001 b931 b.w 800d9d4 if(ipt4 == 2) 800c772: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c776: b2db uxtb r3, r3 800c778: 2b02 cmp r3, #2 800c77a: d14f bne.n 800c81c BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c77c: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c780: b2db uxtb r3, r3 800c782: 461a mov r2, r3 800c784: 4b21 ldr r3, [pc, #132] ; (800c80c ) 800c786: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c78a: 2303 movs r3, #3 800c78c: 2178 movs r1, #120 ; 0x78 800c78e: 208c movs r0, #140 ; 0x8c 800c790: f7f8 fbe0 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c794: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c798: b2db uxtb r3, r3 800c79a: 461a mov r2, r3 800c79c: 4b1b ldr r3, [pc, #108] ; (800c80c ) 800c79e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c7a2: 2303 movs r3, #3 800c7a4: 2178 movs r1, #120 ; 0x78 800c7a6: 2093 movs r0, #147 ; 0x93 800c7a8: f7f8 fbd4 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c7ac: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c7b0: b2db uxtb r3, r3 800c7b2: 461a mov r2, r3 800c7b4: 4b15 ldr r3, [pc, #84] ; (800c80c ) 800c7b6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c7ba: 2303 movs r3, #3 800c7bc: 2178 movs r1, #120 ; 0x78 800c7be: 209a movs r0, #154 ; 0x9a 800c7c0: f7f8 fbc8 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE); 800c7c4: 2303 movs r3, #3 800c7c6: 4a12 ldr r2, [pc, #72] ; (800c810 ) 800c7c8: 2178 movs r1, #120 ; 0x78 800c7ca: 20a1 movs r0, #161 ; 0xa1 800c7cc: f7f8 fbc2 bl 8004f54 if(blk) 800c7d0: 4b10 ldr r3, [pc, #64] ; (800c814 ) 800c7d2: 681b ldr r3, [r3, #0] 800c7d4: 2b00 cmp r3, #0 800c7d6: d00b beq.n 800c7f0 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c7d8: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c7dc: b2db uxtb r3, r3 800c7de: 461a mov r2, r3 800c7e0: 4b0a ldr r3, [pc, #40] ; (800c80c ) 800c7e2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c7e6: 2303 movs r3, #3 800c7e8: 2178 movs r1, #120 ; 0x78 800c7ea: 20a8 movs r0, #168 ; 0xa8 800c7ec: f7f8 fbb2 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c7f0: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c7f4: b2db uxtb r3, r3 800c7f6: 461a mov r2, r3 800c7f8: 4b04 ldr r3, [pc, #16] ; (800c80c ) 800c7fa: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c7fe: 2303 movs r3, #3 800c800: 2178 movs r1, #120 ; 0x78 800c802: 20af movs r0, #175 ; 0xaf 800c804: f7f8 fba6 bl 8004f54 break; 800c808: f001 b8e4 b.w 800d9d4 800c80c: 2002096c .word 0x2002096c 800c810: 080181c8 .word 0x080181c8 800c814: 2006ba78 .word 0x2006ba78 800c818: 20020010 .word 0x20020010 if(ipt4 == 3) 800c81c: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c820: b2db uxtb r3, r3 800c822: 2b03 cmp r3, #3 800c824: d147 bne.n 800c8b6 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c826: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c82a: b2db uxtb r3, r3 800c82c: 461a mov r2, r3 800c82e: 4bc1 ldr r3, [pc, #772] ; (800cb34 ) 800c830: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c834: 2303 movs r3, #3 800c836: 2178 movs r1, #120 ; 0x78 800c838: 208c movs r0, #140 ; 0x8c 800c83a: f7f8 fb8b bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c83e: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c842: b2db uxtb r3, r3 800c844: 461a mov r2, r3 800c846: 4bbb ldr r3, [pc, #748] ; (800cb34 ) 800c848: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c84c: 2303 movs r3, #3 800c84e: 2178 movs r1, #120 ; 0x78 800c850: 2093 movs r0, #147 ; 0x93 800c852: f7f8 fb7f bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE); 800c856: 2303 movs r3, #3 800c858: 4ab7 ldr r2, [pc, #732] ; (800cb38 ) 800c85a: 2178 movs r1, #120 ; 0x78 800c85c: 209a movs r0, #154 ; 0x9a 800c85e: f7f8 fb79 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c862: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c866: b2db uxtb r3, r3 800c868: 461a mov r2, r3 800c86a: 4bb2 ldr r3, [pc, #712] ; (800cb34 ) 800c86c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c870: 2303 movs r3, #3 800c872: 2178 movs r1, #120 ; 0x78 800c874: 20a1 movs r0, #161 ; 0xa1 800c876: f7f8 fb6d bl 8004f54 if(blk) 800c87a: 4bb0 ldr r3, [pc, #704] ; (800cb3c ) 800c87c: 681b ldr r3, [r3, #0] 800c87e: 2b00 cmp r3, #0 800c880: d00b beq.n 800c89a BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c882: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c886: b2db uxtb r3, r3 800c888: 461a mov r2, r3 800c88a: 4baa ldr r3, [pc, #680] ; (800cb34 ) 800c88c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c890: 2303 movs r3, #3 800c892: 2178 movs r1, #120 ; 0x78 800c894: 20a8 movs r0, #168 ; 0xa8 800c896: f7f8 fb5d bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c89a: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c89e: b2db uxtb r3, r3 800c8a0: 461a mov r2, r3 800c8a2: 4ba4 ldr r3, [pc, #656] ; (800cb34 ) 800c8a4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c8a8: 2303 movs r3, #3 800c8aa: 2178 movs r1, #120 ; 0x78 800c8ac: 20af movs r0, #175 ; 0xaf 800c8ae: f7f8 fb51 bl 8004f54 break; 800c8b2: f001 b88f b.w 800d9d4 if(ipt4 == 4) 800c8b6: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c8ba: b2db uxtb r3, r3 800c8bc: 2b04 cmp r3, #4 800c8be: f041 8089 bne.w 800d9d4 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c8c2: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c8c6: b2db uxtb r3, r3 800c8c8: 461a mov r2, r3 800c8ca: 4b9a ldr r3, [pc, #616] ; (800cb34 ) 800c8cc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c8d0: 2303 movs r3, #3 800c8d2: 2178 movs r1, #120 ; 0x78 800c8d4: 208c movs r0, #140 ; 0x8c 800c8d6: f7f8 fb3d bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE); 800c8da: 2303 movs r3, #3 800c8dc: 4a96 ldr r2, [pc, #600] ; (800cb38 ) 800c8de: 2178 movs r1, #120 ; 0x78 800c8e0: 2093 movs r0, #147 ; 0x93 800c8e2: f7f8 fb37 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c8e6: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c8ea: b2db uxtb r3, r3 800c8ec: 461a mov r2, r3 800c8ee: 4b91 ldr r3, [pc, #580] ; (800cb34 ) 800c8f0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c8f4: 2303 movs r3, #3 800c8f6: 2178 movs r1, #120 ; 0x78 800c8f8: 209a movs r0, #154 ; 0x9a 800c8fa: f7f8 fb2b bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c8fe: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c902: b2db uxtb r3, r3 800c904: 461a mov r2, r3 800c906: 4b8b ldr r3, [pc, #556] ; (800cb34 ) 800c908: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c90c: 2303 movs r3, #3 800c90e: 2178 movs r1, #120 ; 0x78 800c910: 20a1 movs r0, #161 ; 0xa1 800c912: f7f8 fb1f bl 8004f54 if(blk) 800c916: 4b89 ldr r3, [pc, #548] ; (800cb3c ) 800c918: 681b ldr r3, [r3, #0] 800c91a: 2b00 cmp r3, #0 800c91c: d00b beq.n 800c936 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c91e: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c922: b2db uxtb r3, r3 800c924: 461a mov r2, r3 800c926: 4b83 ldr r3, [pc, #524] ; (800cb34 ) 800c928: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c92c: 2303 movs r3, #3 800c92e: 2178 movs r1, #120 ; 0x78 800c930: 20a8 movs r0, #168 ; 0xa8 800c932: f7f8 fb0f bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c936: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c93a: b2db uxtb r3, r3 800c93c: 461a mov r2, r3 800c93e: 4b7d ldr r3, [pc, #500] ; (800cb34 ) 800c940: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c944: 2303 movs r3, #3 800c946: 2178 movs r1, #120 ; 0x78 800c948: 20af movs r0, #175 ; 0xaf 800c94a: f7f8 fb03 bl 8004f54 break; 800c94e: f001 b841 b.w 800d9d4 if(menupos == Kike_4) 800c952: 4b7b ldr r3, [pc, #492] ; (800cb40 ) 800c954: 781b ldrb r3, [r3, #0] 800c956: b2db uxtb r3, r3 800c958: 2b1e cmp r3, #30 800c95a: f040 8190 bne.w 800cc7e LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800c95e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800c962: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800c966: f7f8 fa2f bl 8004dc8 if(!ipt4) 800c96a: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c96e: b2db uxtb r3, r3 800c970: 2b00 cmp r3, #0 800c972: d142 bne.n 800c9fa BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c974: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c978: b2db uxtb r3, r3 800c97a: 461a mov r2, r3 800c97c: 4b6d ldr r3, [pc, #436] ; (800cb34 ) 800c97e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c982: 2303 movs r3, #3 800c984: 2178 movs r1, #120 ; 0x78 800c986: 208c movs r0, #140 ; 0x8c 800c988: f7f8 fae4 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c98c: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c990: b2db uxtb r3, r3 800c992: 461a mov r2, r3 800c994: 4b67 ldr r3, [pc, #412] ; (800cb34 ) 800c996: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c99a: 2303 movs r3, #3 800c99c: 2178 movs r1, #120 ; 0x78 800c99e: 2093 movs r0, #147 ; 0x93 800c9a0: f7f8 fad8 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c9a4: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c9a8: b2db uxtb r3, r3 800c9aa: 461a mov r2, r3 800c9ac: 4b61 ldr r3, [pc, #388] ; (800cb34 ) 800c9ae: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c9b2: 2303 movs r3, #3 800c9b4: 2178 movs r1, #120 ; 0x78 800c9b6: 209a movs r0, #154 ; 0x9a 800c9b8: f7f8 facc bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c9bc: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c9c0: b2db uxtb r3, r3 800c9c2: 461a mov r2, r3 800c9c4: 4b5b ldr r3, [pc, #364] ; (800cb34 ) 800c9c6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c9ca: 2303 movs r3, #3 800c9cc: 2178 movs r1, #120 ; 0x78 800c9ce: 20a1 movs r0, #161 ; 0xa1 800c9d0: f7f8 fac0 bl 8004f54 if(blk) 800c9d4: 4b59 ldr r3, [pc, #356] ; (800cb3c ) 800c9d6: 681b ldr r3, [r3, #0] 800c9d8: 2b00 cmp r3, #0 800c9da: f000 87fb beq.w 800d9d4 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c9de: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c9e2: b2db uxtb r3, r3 800c9e4: 461a mov r2, r3 800c9e6: 4b53 ldr r3, [pc, #332] ; (800cb34 ) 800c9e8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c9ec: 2303 movs r3, #3 800c9ee: 2178 movs r1, #120 ; 0x78 800c9f0: 20a8 movs r0, #168 ; 0xa8 800c9f2: f7f8 faaf bl 8004f54 break; 800c9f6: f000 bfed b.w 800d9d4 if(ipt4 == 1) 800c9fa: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c9fe: b2db uxtb r3, r3 800ca00: 2b01 cmp r3, #1 800ca02: d148 bne.n 800ca96 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800ca04: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800ca08: b2db uxtb r3, r3 800ca0a: 461a mov r2, r3 800ca0c: 4b49 ldr r3, [pc, #292] ; (800cb34 ) 800ca0e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ca12: 2303 movs r3, #3 800ca14: 2178 movs r1, #120 ; 0x78 800ca16: 208c movs r0, #140 ; 0x8c 800ca18: f7f8 fa9c bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800ca1c: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800ca20: b2db uxtb r3, r3 800ca22: 461a mov r2, r3 800ca24: 4b43 ldr r3, [pc, #268] ; (800cb34 ) 800ca26: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ca2a: 2303 movs r3, #3 800ca2c: 2178 movs r1, #120 ; 0x78 800ca2e: 2093 movs r0, #147 ; 0x93 800ca30: f7f8 fa90 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800ca34: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800ca38: b2db uxtb r3, r3 800ca3a: 461a mov r2, r3 800ca3c: 4b3d ldr r3, [pc, #244] ; (800cb34 ) 800ca3e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ca42: 2303 movs r3, #3 800ca44: 2178 movs r1, #120 ; 0x78 800ca46: 209a movs r0, #154 ; 0x9a 800ca48: f7f8 fa84 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800ca4c: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800ca50: b2db uxtb r3, r3 800ca52: 461a mov r2, r3 800ca54: 4b37 ldr r3, [pc, #220] ; (800cb34 ) 800ca56: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ca5a: 2303 movs r3, #3 800ca5c: 2178 movs r1, #120 ; 0x78 800ca5e: 20a1 movs r0, #161 ; 0xa1 800ca60: f7f8 fa78 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE); 800ca64: 2303 movs r3, #3 800ca66: 4a34 ldr r2, [pc, #208] ; (800cb38 ) 800ca68: 2178 movs r1, #120 ; 0x78 800ca6a: 20a8 movs r0, #168 ; 0xa8 800ca6c: f7f8 fa72 bl 8004f54 if(blk) 800ca70: 4b32 ldr r3, [pc, #200] ; (800cb3c ) 800ca72: 681b ldr r3, [r3, #0] 800ca74: 2b00 cmp r3, #0 800ca76: f000 87ad beq.w 800d9d4 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800ca7a: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800ca7e: b2db uxtb r3, r3 800ca80: 461a mov r2, r3 800ca82: 4b2c ldr r3, [pc, #176] ; (800cb34 ) 800ca84: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ca88: 2303 movs r3, #3 800ca8a: 2178 movs r1, #120 ; 0x78 800ca8c: 20af movs r0, #175 ; 0xaf 800ca8e: f7f8 fa61 bl 8004f54 break; 800ca92: f000 bf9f b.w 800d9d4 if(ipt4 == 2) 800ca96: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800ca9a: b2db uxtb r3, r3 800ca9c: 2b02 cmp r3, #2 800ca9e: d151 bne.n 800cb44 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800caa0: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800caa4: b2db uxtb r3, r3 800caa6: 461a mov r2, r3 800caa8: 4b22 ldr r3, [pc, #136] ; (800cb34 ) 800caaa: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800caae: 2303 movs r3, #3 800cab0: 2178 movs r1, #120 ; 0x78 800cab2: 208c movs r0, #140 ; 0x8c 800cab4: f7f8 fa4e bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800cab8: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800cabc: b2db uxtb r3, r3 800cabe: 461a mov r2, r3 800cac0: 4b1c ldr r3, [pc, #112] ; (800cb34 ) 800cac2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cac6: 2303 movs r3, #3 800cac8: 2178 movs r1, #120 ; 0x78 800caca: 2093 movs r0, #147 ; 0x93 800cacc: f7f8 fa42 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800cad0: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800cad4: b2db uxtb r3, r3 800cad6: 461a mov r2, r3 800cad8: 4b16 ldr r3, [pc, #88] ; (800cb34 ) 800cada: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cade: 2303 movs r3, #3 800cae0: 2178 movs r1, #120 ; 0x78 800cae2: 209a movs r0, #154 ; 0x9a 800cae4: f7f8 fa36 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE); 800cae8: 2303 movs r3, #3 800caea: 4a13 ldr r2, [pc, #76] ; (800cb38 ) 800caec: 2178 movs r1, #120 ; 0x78 800caee: 20a1 movs r0, #161 ; 0xa1 800caf0: f7f8 fa30 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800caf4: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800caf8: b2db uxtb r3, r3 800cafa: 461a mov r2, r3 800cafc: 4b0d ldr r3, [pc, #52] ; (800cb34 ) 800cafe: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cb02: 2303 movs r3, #3 800cb04: 2178 movs r1, #120 ; 0x78 800cb06: 20a8 movs r0, #168 ; 0xa8 800cb08: f7f8 fa24 bl 8004f54 if(blk) 800cb0c: 4b0b ldr r3, [pc, #44] ; (800cb3c ) 800cb0e: 681b ldr r3, [r3, #0] 800cb10: 2b00 cmp r3, #0 800cb12: f000 875f beq.w 800d9d4 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800cb16: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800cb1a: b2db uxtb r3, r3 800cb1c: 461a mov r2, r3 800cb1e: 4b05 ldr r3, [pc, #20] ; (800cb34 ) 800cb20: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cb24: 2303 movs r3, #3 800cb26: 2178 movs r1, #120 ; 0x78 800cb28: 20af movs r0, #175 ; 0xaf 800cb2a: f7f8 fa13 bl 8004f54 break; 800cb2e: f000 bf51 b.w 800d9d4 800cb32: bf00 nop 800cb34: 2002096c .word 0x2002096c 800cb38: 080181c8 .word 0x080181c8 800cb3c: 2006ba78 .word 0x2006ba78 800cb40: 20020010 .word 0x20020010 if(ipt4 == 3) 800cb44: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800cb48: b2db uxtb r3, r3 800cb4a: 2b03 cmp r3, #3 800cb4c: d148 bne.n 800cbe0 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800cb4e: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800cb52: b2db uxtb r3, r3 800cb54: 461a mov r2, r3 800cb56: 4bc4 ldr r3, [pc, #784] ; (800ce68 ) 800cb58: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cb5c: 2303 movs r3, #3 800cb5e: 2178 movs r1, #120 ; 0x78 800cb60: 208c movs r0, #140 ; 0x8c 800cb62: f7f8 f9f7 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800cb66: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800cb6a: b2db uxtb r3, r3 800cb6c: 461a mov r2, r3 800cb6e: 4bbe ldr r3, [pc, #760] ; (800ce68 ) 800cb70: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cb74: 2303 movs r3, #3 800cb76: 2178 movs r1, #120 ; 0x78 800cb78: 2093 movs r0, #147 ; 0x93 800cb7a: f7f8 f9eb bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE); 800cb7e: 2303 movs r3, #3 800cb80: 4aba ldr r2, [pc, #744] ; (800ce6c ) 800cb82: 2178 movs r1, #120 ; 0x78 800cb84: 209a movs r0, #154 ; 0x9a 800cb86: f7f8 f9e5 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800cb8a: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800cb8e: b2db uxtb r3, r3 800cb90: 461a mov r2, r3 800cb92: 4bb5 ldr r3, [pc, #724] ; (800ce68 ) 800cb94: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cb98: 2303 movs r3, #3 800cb9a: 2178 movs r1, #120 ; 0x78 800cb9c: 20a1 movs r0, #161 ; 0xa1 800cb9e: f7f8 f9d9 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800cba2: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800cba6: b2db uxtb r3, r3 800cba8: 461a mov r2, r3 800cbaa: 4baf ldr r3, [pc, #700] ; (800ce68 ) 800cbac: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cbb0: 2303 movs r3, #3 800cbb2: 2178 movs r1, #120 ; 0x78 800cbb4: 20a8 movs r0, #168 ; 0xa8 800cbb6: f7f8 f9cd bl 8004f54 if(blk) 800cbba: 4bad ldr r3, [pc, #692] ; (800ce70 ) 800cbbc: 681b ldr r3, [r3, #0] 800cbbe: 2b00 cmp r3, #0 800cbc0: f000 8708 beq.w 800d9d4 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800cbc4: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800cbc8: b2db uxtb r3, r3 800cbca: 461a mov r2, r3 800cbcc: 4ba6 ldr r3, [pc, #664] ; (800ce68 ) 800cbce: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cbd2: 2303 movs r3, #3 800cbd4: 2178 movs r1, #120 ; 0x78 800cbd6: 20af movs r0, #175 ; 0xaf 800cbd8: f7f8 f9bc bl 8004f54 break; 800cbdc: f000 befa b.w 800d9d4 if(ipt4 == 4) 800cbe0: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800cbe4: b2db uxtb r3, r3 800cbe6: 2b04 cmp r3, #4 800cbe8: f040 86f4 bne.w 800d9d4 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800cbec: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800cbf0: b2db uxtb r3, r3 800cbf2: 461a mov r2, r3 800cbf4: 4b9c ldr r3, [pc, #624] ; (800ce68 ) 800cbf6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cbfa: 2303 movs r3, #3 800cbfc: 2178 movs r1, #120 ; 0x78 800cbfe: 208c movs r0, #140 ; 0x8c 800cc00: f7f8 f9a8 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE); 800cc04: 2303 movs r3, #3 800cc06: 4a99 ldr r2, [pc, #612] ; (800ce6c ) 800cc08: 2178 movs r1, #120 ; 0x78 800cc0a: 2093 movs r0, #147 ; 0x93 800cc0c: f7f8 f9a2 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE); 800cc10: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800cc14: b2db uxtb r3, r3 800cc16: 461a mov r2, r3 800cc18: 4b93 ldr r3, [pc, #588] ; (800ce68 ) 800cc1a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cc1e: 2303 movs r3, #3 800cc20: 2178 movs r1, #120 ; 0x78 800cc22: 209a movs r0, #154 ; 0x9a 800cc24: f7f8 f996 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800cc28: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800cc2c: b2db uxtb r3, r3 800cc2e: 461a mov r2, r3 800cc30: 4b8d ldr r3, [pc, #564] ; (800ce68 ) 800cc32: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cc36: 2303 movs r3, #3 800cc38: 2178 movs r1, #120 ; 0x78 800cc3a: 20a1 movs r0, #161 ; 0xa1 800cc3c: f7f8 f98a bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800cc40: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800cc44: b2db uxtb r3, r3 800cc46: 461a mov r2, r3 800cc48: 4b87 ldr r3, [pc, #540] ; (800ce68 ) 800cc4a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cc4e: 2303 movs r3, #3 800cc50: 2178 movs r1, #120 ; 0x78 800cc52: 20a8 movs r0, #168 ; 0xa8 800cc54: f7f8 f97e bl 8004f54 if(blk) 800cc58: 4b85 ldr r3, [pc, #532] ; (800ce70 ) 800cc5a: 681b ldr r3, [r3, #0] 800cc5c: 2b00 cmp r3, #0 800cc5e: f000 86b9 beq.w 800d9d4 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800cc62: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800cc66: b2db uxtb r3, r3 800cc68: 461a mov r2, r3 800cc6a: 4b7f ldr r3, [pc, #508] ; (800ce68 ) 800cc6c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cc70: 2303 movs r3, #3 800cc72: 2178 movs r1, #120 ; 0x78 800cc74: 20af movs r0, #175 ; 0xaf 800cc76: f7f8 f96d bl 8004f54 break; 800cc7a: f000 beab b.w 800d9d4 if(menupos == Kpt_4) 800cc7e: 4b7d ldr r3, [pc, #500] ; (800ce74 ) 800cc80: 781b ldrb r3, [r3, #0] 800cc82: b2db uxtb r3, r3 800cc84: 2b1f cmp r3, #31 800cc86: f040 86a5 bne.w 800d9d4 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800cc8a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800cc8e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800cc92: f7f8 f899 bl 8004dc8 if(!ipt4) 800cc96: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800cc9a: b2db uxtb r3, r3 800cc9c: 2b00 cmp r3, #0 800cc9e: d148 bne.n 800cd32 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800cca0: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800cca4: b2db uxtb r3, r3 800cca6: 461a mov r2, r3 800cca8: 4b6f ldr r3, [pc, #444] ; (800ce68 ) 800ccaa: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ccae: 2303 movs r3, #3 800ccb0: 2178 movs r1, #120 ; 0x78 800ccb2: 208c movs r0, #140 ; 0x8c 800ccb4: f7f8 f94e bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800ccb8: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800ccbc: b2db uxtb r3, r3 800ccbe: 461a mov r2, r3 800ccc0: 4b69 ldr r3, [pc, #420] ; (800ce68 ) 800ccc2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ccc6: 2303 movs r3, #3 800ccc8: 2178 movs r1, #120 ; 0x78 800ccca: 2093 movs r0, #147 ; 0x93 800cccc: f7f8 f942 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800ccd0: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800ccd4: b2db uxtb r3, r3 800ccd6: 461a mov r2, r3 800ccd8: 4b63 ldr r3, [pc, #396] ; (800ce68 ) 800ccda: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ccde: 2303 movs r3, #3 800cce0: 2178 movs r1, #120 ; 0x78 800cce2: 209a movs r0, #154 ; 0x9a 800cce4: f7f8 f936 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800cce8: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800ccec: b2db uxtb r3, r3 800ccee: 461a mov r2, r3 800ccf0: 4b5d ldr r3, [pc, #372] ; (800ce68 ) 800ccf2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ccf6: 2303 movs r3, #3 800ccf8: 2178 movs r1, #120 ; 0x78 800ccfa: 20a1 movs r0, #161 ; 0xa1 800ccfc: f7f8 f92a bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE); 800cd00: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800cd04: b2db uxtb r3, r3 800cd06: 461a mov r2, r3 800cd08: 4b57 ldr r3, [pc, #348] ; (800ce68 ) 800cd0a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cd0e: 2303 movs r3, #3 800cd10: 2178 movs r1, #120 ; 0x78 800cd12: 20a8 movs r0, #168 ; 0xa8 800cd14: f7f8 f91e bl 8004f54 if(blk) 800cd18: 4b55 ldr r3, [pc, #340] ; (800ce70 ) 800cd1a: 681b ldr r3, [r3, #0] 800cd1c: 2b00 cmp r3, #0 800cd1e: f000 8659 beq.w 800d9d4 BSP_LCD_DisplayStringAt(140+35, 120, ".", LEFT_MODE); 800cd22: 2303 movs r3, #3 800cd24: 4a51 ldr r2, [pc, #324] ; (800ce6c ) 800cd26: 2178 movs r1, #120 ; 0x78 800cd28: 20af movs r0, #175 ; 0xaf 800cd2a: f7f8 f913 bl 8004f54 break; 800cd2e: f000 be51 b.w 800d9d4 if(ipt4 == 1) 800cd32: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800cd36: b2db uxtb r3, r3 800cd38: 2b01 cmp r3, #1 800cd3a: d147 bne.n 800cdcc BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800cd3c: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800cd40: b2db uxtb r3, r3 800cd42: 461a mov r2, r3 800cd44: 4b48 ldr r3, [pc, #288] ; (800ce68 ) 800cd46: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cd4a: 2303 movs r3, #3 800cd4c: 2178 movs r1, #120 ; 0x78 800cd4e: 208c movs r0, #140 ; 0x8c 800cd50: f7f8 f900 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800cd54: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800cd58: b2db uxtb r3, r3 800cd5a: 461a mov r2, r3 800cd5c: 4b42 ldr r3, [pc, #264] ; (800ce68 ) 800cd5e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cd62: 2303 movs r3, #3 800cd64: 2178 movs r1, #120 ; 0x78 800cd66: 2093 movs r0, #147 ; 0x93 800cd68: f7f8 f8f4 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800cd6c: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800cd70: b2db uxtb r3, r3 800cd72: 461a mov r2, r3 800cd74: 4b3c ldr r3, [pc, #240] ; (800ce68 ) 800cd76: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cd7a: 2303 movs r3, #3 800cd7c: 2178 movs r1, #120 ; 0x78 800cd7e: 209a movs r0, #154 ; 0x9a 800cd80: f7f8 f8e8 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800cd84: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800cd88: b2db uxtb r3, r3 800cd8a: 461a mov r2, r3 800cd8c: 4b36 ldr r3, [pc, #216] ; (800ce68 ) 800cd8e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cd92: 2303 movs r3, #3 800cd94: 2178 movs r1, #120 ; 0x78 800cd96: 20a1 movs r0, #161 ; 0xa1 800cd98: f7f8 f8dc bl 8004f54 if(blk) 800cd9c: 4b34 ldr r3, [pc, #208] ; (800ce70 ) 800cd9e: 681b ldr r3, [r3, #0] 800cda0: 2b00 cmp r3, #0 800cda2: d005 beq.n 800cdb0 BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE); 800cda4: 2303 movs r3, #3 800cda6: 4a31 ldr r2, [pc, #196] ; (800ce6c ) 800cda8: 2178 movs r1, #120 ; 0x78 800cdaa: 20a8 movs r0, #168 ; 0xa8 800cdac: f7f8 f8d2 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800cdb0: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800cdb4: b2db uxtb r3, r3 800cdb6: 461a mov r2, r3 800cdb8: 4b2b ldr r3, [pc, #172] ; (800ce68 ) 800cdba: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cdbe: 2303 movs r3, #3 800cdc0: 2178 movs r1, #120 ; 0x78 800cdc2: 20af movs r0, #175 ; 0xaf 800cdc4: f7f8 f8c6 bl 8004f54 break; 800cdc8: f000 be04 b.w 800d9d4 if(ipt4 == 2) 800cdcc: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800cdd0: b2db uxtb r3, r3 800cdd2: 2b02 cmp r3, #2 800cdd4: d150 bne.n 800ce78 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800cdd6: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800cdda: b2db uxtb r3, r3 800cddc: 461a mov r2, r3 800cdde: 4b22 ldr r3, [pc, #136] ; (800ce68 ) 800cde0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cde4: 2303 movs r3, #3 800cde6: 2178 movs r1, #120 ; 0x78 800cde8: 208c movs r0, #140 ; 0x8c 800cdea: f7f8 f8b3 bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800cdee: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800cdf2: b2db uxtb r3, r3 800cdf4: 461a mov r2, r3 800cdf6: 4b1c ldr r3, [pc, #112] ; (800ce68 ) 800cdf8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cdfc: 2303 movs r3, #3 800cdfe: 2178 movs r1, #120 ; 0x78 800ce00: 2093 movs r0, #147 ; 0x93 800ce02: f7f8 f8a7 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800ce06: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800ce0a: b2db uxtb r3, r3 800ce0c: 461a mov r2, r3 800ce0e: 4b16 ldr r3, [pc, #88] ; (800ce68 ) 800ce10: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ce14: 2303 movs r3, #3 800ce16: 2178 movs r1, #120 ; 0x78 800ce18: 209a movs r0, #154 ; 0x9a 800ce1a: f7f8 f89b bl 8004f54 if(blk) 800ce1e: 4b14 ldr r3, [pc, #80] ; (800ce70 ) 800ce20: 681b ldr r3, [r3, #0] 800ce22: 2b00 cmp r3, #0 800ce24: d005 beq.n 800ce32 BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE); 800ce26: 2303 movs r3, #3 800ce28: 4a10 ldr r2, [pc, #64] ; (800ce6c ) 800ce2a: 2178 movs r1, #120 ; 0x78 800ce2c: 20a1 movs r0, #161 ; 0xa1 800ce2e: f7f8 f891 bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800ce32: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800ce36: b2db uxtb r3, r3 800ce38: 461a mov r2, r3 800ce3a: 4b0b ldr r3, [pc, #44] ; (800ce68 ) 800ce3c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ce40: 2303 movs r3, #3 800ce42: 2178 movs r1, #120 ; 0x78 800ce44: 20a8 movs r0, #168 ; 0xa8 800ce46: f7f8 f885 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800ce4a: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800ce4e: b2db uxtb r3, r3 800ce50: 461a mov r2, r3 800ce52: 4b05 ldr r3, [pc, #20] ; (800ce68 ) 800ce54: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ce58: 2303 movs r3, #3 800ce5a: 2178 movs r1, #120 ; 0x78 800ce5c: 20af movs r0, #175 ; 0xaf 800ce5e: f7f8 f879 bl 8004f54 break; 800ce62: f000 bdb7 b.w 800d9d4 800ce66: bf00 nop 800ce68: 2002096c .word 0x2002096c 800ce6c: 080181c8 .word 0x080181c8 800ce70: 2006ba78 .word 0x2006ba78 800ce74: 20020010 .word 0x20020010 if(ipt4 == 3) 800ce78: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800ce7c: b2db uxtb r3, r3 800ce7e: 2b03 cmp r3, #3 800ce80: d147 bne.n 800cf12 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800ce82: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800ce86: b2db uxtb r3, r3 800ce88: 461a mov r2, r3 800ce8a: 4bc9 ldr r3, [pc, #804] ; (800d1b0 ) 800ce8c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ce90: 2303 movs r3, #3 800ce92: 2178 movs r1, #120 ; 0x78 800ce94: 208c movs r0, #140 ; 0x8c 800ce96: f7f8 f85d bl 8004f54 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800ce9a: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800ce9e: b2db uxtb r3, r3 800cea0: 461a mov r2, r3 800cea2: 4bc3 ldr r3, [pc, #780] ; (800d1b0 ) 800cea4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cea8: 2303 movs r3, #3 800ceaa: 2178 movs r1, #120 ; 0x78 800ceac: 2093 movs r0, #147 ; 0x93 800ceae: f7f8 f851 bl 8004f54 if(blk) 800ceb2: 4bc0 ldr r3, [pc, #768] ; (800d1b4 ) 800ceb4: 681b ldr r3, [r3, #0] 800ceb6: 2b00 cmp r3, #0 800ceb8: d005 beq.n 800cec6 BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE); 800ceba: 2303 movs r3, #3 800cebc: 4abe ldr r2, [pc, #760] ; (800d1b8 ) 800cebe: 2178 movs r1, #120 ; 0x78 800cec0: 209a movs r0, #154 ; 0x9a 800cec2: f7f8 f847 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800cec6: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800ceca: b2db uxtb r3, r3 800cecc: 461a mov r2, r3 800cece: 4bb8 ldr r3, [pc, #736] ; (800d1b0 ) 800ced0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ced4: 2303 movs r3, #3 800ced6: 2178 movs r1, #120 ; 0x78 800ced8: 20a1 movs r0, #161 ; 0xa1 800ceda: f7f8 f83b bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800cede: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800cee2: b2db uxtb r3, r3 800cee4: 461a mov r2, r3 800cee6: 4bb2 ldr r3, [pc, #712] ; (800d1b0 ) 800cee8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ceec: 2303 movs r3, #3 800ceee: 2178 movs r1, #120 ; 0x78 800cef0: 20a8 movs r0, #168 ; 0xa8 800cef2: f7f8 f82f bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800cef6: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800cefa: b2db uxtb r3, r3 800cefc: 461a mov r2, r3 800cefe: 4bac ldr r3, [pc, #688] ; (800d1b0 ) 800cf00: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cf04: 2303 movs r3, #3 800cf06: 2178 movs r1, #120 ; 0x78 800cf08: 20af movs r0, #175 ; 0xaf 800cf0a: f7f8 f823 bl 8004f54 break; 800cf0e: f000 bd61 b.w 800d9d4 if(ipt4 == 4) 800cf12: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800cf16: b2db uxtb r3, r3 800cf18: 2b04 cmp r3, #4 800cf1a: f040 855b bne.w 800d9d4 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800cf1e: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800cf22: b2db uxtb r3, r3 800cf24: 461a mov r2, r3 800cf26: 4ba2 ldr r3, [pc, #648] ; (800d1b0 ) 800cf28: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cf2c: 2303 movs r3, #3 800cf2e: 2178 movs r1, #120 ; 0x78 800cf30: 208c movs r0, #140 ; 0x8c 800cf32: f7f8 f80f bl 8004f54 if(blk) 800cf36: 4b9f ldr r3, [pc, #636] ; (800d1b4 ) 800cf38: 681b ldr r3, [r3, #0] 800cf3a: 2b00 cmp r3, #0 800cf3c: d005 beq.n 800cf4a BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE); 800cf3e: 2303 movs r3, #3 800cf40: 4a9d ldr r2, [pc, #628] ; (800d1b8 ) 800cf42: 2178 movs r1, #120 ; 0x78 800cf44: 2093 movs r0, #147 ; 0x93 800cf46: f7f8 f805 bl 8004f54 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE); 800cf4a: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800cf4e: b2db uxtb r3, r3 800cf50: 461a mov r2, r3 800cf52: 4b97 ldr r3, [pc, #604] ; (800d1b0 ) 800cf54: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cf58: 2303 movs r3, #3 800cf5a: 2178 movs r1, #120 ; 0x78 800cf5c: 209a movs r0, #154 ; 0x9a 800cf5e: f7f7 fff9 bl 8004f54 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800cf62: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800cf66: b2db uxtb r3, r3 800cf68: 461a mov r2, r3 800cf6a: 4b91 ldr r3, [pc, #580] ; (800d1b0 ) 800cf6c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cf70: 2303 movs r3, #3 800cf72: 2178 movs r1, #120 ; 0x78 800cf74: 20a1 movs r0, #161 ; 0xa1 800cf76: f7f7 ffed bl 8004f54 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800cf7a: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800cf7e: b2db uxtb r3, r3 800cf80: 461a mov r2, r3 800cf82: 4b8b ldr r3, [pc, #556] ; (800d1b0 ) 800cf84: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cf88: 2303 movs r3, #3 800cf8a: 2178 movs r1, #120 ; 0x78 800cf8c: 20a8 movs r0, #168 ; 0xa8 800cf8e: f7f7 ffe1 bl 8004f54 BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800cf92: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800cf96: b2db uxtb r3, r3 800cf98: 461a mov r2, r3 800cf9a: 4b85 ldr r3, [pc, #532] ; (800d1b0 ) 800cf9c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cfa0: 2303 movs r3, #3 800cfa2: 2178 movs r1, #120 ; 0x78 800cfa4: 20af movs r0, #175 ; 0xaf 800cfa6: f7f7 ffd5 bl 8004f54 break; 800cfaa: f000 bd13 b.w 800d9d4 if(menupos == Kikdt_1) 800cfae: bf00 nop 800cfb0: f000 bd10 b.w 800d9d4 if(menupos == Kikdt_2) 800cfb4: bf00 nop 800cfb6: f000 bd0d b.w 800d9d4 if(menupos == Kikdt_3) 800cfba: bf00 nop break; 800cfbc: f000 bd0a b.w 800d9d4 case MAIN: BSP_LCD_SetFont(&Font12); 800cfc0: 487e ldr r0, [pc, #504] ; (800d1bc ) 800cfc2: f7f7 ff3d bl 8004e40 if(CNT_CHANNELS < 5) 800cfc6: 4b7e ldr r3, [pc, #504] ; (800d1c0 ) 800cfc8: 681b ldr r3, [r3, #0] 800cfca: 2b04 cmp r3, #4 800cfcc: f200 8504 bhi.w 800d9d8 { LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800cfd0: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800cfd4: f04f 30ff mov.w r0, #4294967295 800cfd8: f7f7 fef6 bl 8004dc8 BSP_LCD_FillRect(0, 0, 158, 24); 800cfdc: 2318 movs r3, #24 800cfde: 229e movs r2, #158 ; 0x9e 800cfe0: 2100 movs r1, #0 800cfe2: 2000 movs r0, #0 800cfe4: f7f8 fab2 bl 800554c BSP_LCD_FillRect(0, 120, 158, 24); 800cfe8: 2318 movs r3, #24 800cfea: 229e movs r2, #158 ; 0x9e 800cfec: 2178 movs r1, #120 ; 0x78 800cfee: 2000 movs r0, #0 800cff0: f7f8 faac bl 800554c BSP_LCD_FillRect(161, 0, 158, 24); 800cff4: 2318 movs r3, #24 800cff6: 229e movs r2, #158 ; 0x9e 800cff8: 2100 movs r1, #0 800cffa: 20a1 movs r0, #161 ; 0xa1 800cffc: f7f8 faa6 bl 800554c BSP_LCD_FillRect(161, 120, 158, 24); 800d000: 2318 movs r3, #24 800d002: 229e movs r2, #158 ; 0x9e 800d004: 2178 movs r1, #120 ; 0x78 800d006: 20a1 movs r0, #161 ; 0xa1 800d008: f7f8 faa0 bl 800554c BSP_LCD_DrawRect(0, 0, 318, 238); 800d00c: 23ee movs r3, #238 ; 0xee 800d00e: f44f 729f mov.w r2, #318 ; 0x13e 800d012: 2100 movs r1, #0 800d014: 2000 movs r0, #0 800d016: f7f8 f911 bl 800523c BSP_LCD_DrawVLine(159, 0, 239); 800d01a: 22ef movs r2, #239 ; 0xef 800d01c: 2100 movs r1, #0 800d01e: 209f movs r0, #159 ; 0x9f 800d020: f7f8 f8aa bl 8005178 // 1-2 // if(pardata.LANG == RUS) 800d024: 4b67 ldr r3, [pc, #412] ; (800d1c4 ) 800d026: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800d02a: b29b uxth r3, r3 800d02c: 2b00 cmp r3, #0 800d02e: f040 80bb bne.w 800d1a8 { for(i = 0; i < 2; i++) 800d032: 2300 movs r3, #0 800d034: f8c7 3330 str.w r3, [r7, #816] ; 0x330 800d038: e045 b.n 800d0c6 { LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800d03a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d03e: 4862 ldr r0, [pc, #392] ; (800d1c8 ) 800d040: f7f7 fec2 bl 8004dc8 BSP_LCD_DisplayStringAt(4, 27 + 120*i, "ВХОД:", LEFT_MODE); 800d044: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d048: b29b uxth r3, r3 800d04a: 461a mov r2, r3 800d04c: 0112 lsls r2, r2, #4 800d04e: 1ad3 subs r3, r2, r3 800d050: 00db lsls r3, r3, #3 800d052: b29b uxth r3, r3 800d054: 331b adds r3, #27 800d056: b299 uxth r1, r3 800d058: 2303 movs r3, #3 800d05a: 4a5c ldr r2, [pc, #368] ; (800d1cc ) 800d05c: 2004 movs r0, #4 800d05e: f7f7 ff79 bl 8004f54 BSP_LCD_DisplayStringAt(3, 46+6 + 120*i, "ФВЧ:", LEFT_MODE); 800d062: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d066: b29b uxth r3, r3 800d068: 461a mov r2, r3 800d06a: 0112 lsls r2, r2, #4 800d06c: 1ad3 subs r3, r2, r3 800d06e: 00db lsls r3, r3, #3 800d070: b29b uxth r3, r3 800d072: 3334 adds r3, #52 ; 0x34 800d074: b299 uxth r1, r3 800d076: 2303 movs r3, #3 800d078: 4a55 ldr r2, [pc, #340] ; (800d1d0 ) 800d07a: 2003 movs r0, #3 800d07c: f7f7 ff6a bl 8004f54 BSP_LCD_DisplayStringAt(3, 65+6 + 120*i, "ФНЧ:", LEFT_MODE); 800d080: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d084: b29b uxth r3, r3 800d086: 461a mov r2, r3 800d088: 0112 lsls r2, r2, #4 800d08a: 1ad3 subs r3, r2, r3 800d08c: 00db lsls r3, r3, #3 800d08e: b29b uxth r3, r3 800d090: 3347 adds r3, #71 ; 0x47 800d092: b299 uxth r1, r3 800d094: 2303 movs r3, #3 800d096: 4a4f ldr r2, [pc, #316] ; (800d1d4 ) 800d098: 2003 movs r0, #3 800d09a: f7f7 ff5b bl 8004f54 BSP_LCD_DisplayStringAt(4, 84+6 + 120*i, "ВЫХОД:", LEFT_MODE); 800d09e: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d0a2: b29b uxth r3, r3 800d0a4: 461a mov r2, r3 800d0a6: 0112 lsls r2, r2, #4 800d0a8: 1ad3 subs r3, r2, r3 800d0aa: 00db lsls r3, r3, #3 800d0ac: b29b uxth r3, r3 800d0ae: 335a adds r3, #90 ; 0x5a 800d0b0: b299 uxth r1, r3 800d0b2: 2303 movs r3, #3 800d0b4: 4a48 ldr r2, [pc, #288] ; (800d1d8 ) 800d0b6: 2004 movs r0, #4 800d0b8: f7f7 ff4c bl 8004f54 for(i = 0; i < 2; i++) 800d0bc: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d0c0: 3301 adds r3, #1 800d0c2: f8c7 3330 str.w r3, [r7, #816] ; 0x330 800d0c6: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d0ca: 2b01 cmp r3, #1 800d0cc: d9b5 bls.n 800d03a } // 3-4 // for(i = 0; i < 2; i++) 800d0ce: 2300 movs r3, #0 800d0d0: f8c7 3330 str.w r3, [r7, #816] ; 0x330 800d0d4: e045 b.n 800d162 { LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800d0d6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d0da: 483b ldr r0, [pc, #236] ; (800d1c8 ) 800d0dc: f7f7 fe74 bl 8004dc8 BSP_LCD_DisplayStringAt(164, 27 + 120*i, "ВХОД:", LEFT_MODE); 800d0e0: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d0e4: b29b uxth r3, r3 800d0e6: 461a mov r2, r3 800d0e8: 0112 lsls r2, r2, #4 800d0ea: 1ad3 subs r3, r2, r3 800d0ec: 00db lsls r3, r3, #3 800d0ee: b29b uxth r3, r3 800d0f0: 331b adds r3, #27 800d0f2: b299 uxth r1, r3 800d0f4: 2303 movs r3, #3 800d0f6: 4a35 ldr r2, [pc, #212] ; (800d1cc ) 800d0f8: 20a4 movs r0, #164 ; 0xa4 800d0fa: f7f7 ff2b bl 8004f54 BSP_LCD_DisplayStringAt(163, 46+6 + 120*i, "ФВЧ:", LEFT_MODE); 800d0fe: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d102: b29b uxth r3, r3 800d104: 461a mov r2, r3 800d106: 0112 lsls r2, r2, #4 800d108: 1ad3 subs r3, r2, r3 800d10a: 00db lsls r3, r3, #3 800d10c: b29b uxth r3, r3 800d10e: 3334 adds r3, #52 ; 0x34 800d110: b299 uxth r1, r3 800d112: 2303 movs r3, #3 800d114: 4a2e ldr r2, [pc, #184] ; (800d1d0 ) 800d116: 20a3 movs r0, #163 ; 0xa3 800d118: f7f7 ff1c bl 8004f54 BSP_LCD_DisplayStringAt(163, 65+6 + 120*i, "ФНЧ:", LEFT_MODE); 800d11c: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d120: b29b uxth r3, r3 800d122: 461a mov r2, r3 800d124: 0112 lsls r2, r2, #4 800d126: 1ad3 subs r3, r2, r3 800d128: 00db lsls r3, r3, #3 800d12a: b29b uxth r3, r3 800d12c: 3347 adds r3, #71 ; 0x47 800d12e: b299 uxth r1, r3 800d130: 2303 movs r3, #3 800d132: 4a28 ldr r2, [pc, #160] ; (800d1d4 ) 800d134: 20a3 movs r0, #163 ; 0xa3 800d136: f7f7 ff0d bl 8004f54 BSP_LCD_DisplayStringAt(164, 84+6 + 120*i, "ВЫХОД:", LEFT_MODE); 800d13a: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d13e: b29b uxth r3, r3 800d140: 461a mov r2, r3 800d142: 0112 lsls r2, r2, #4 800d144: 1ad3 subs r3, r2, r3 800d146: 00db lsls r3, r3, #3 800d148: b29b uxth r3, r3 800d14a: 335a adds r3, #90 ; 0x5a 800d14c: b299 uxth r1, r3 800d14e: 2303 movs r3, #3 800d150: 4a21 ldr r2, [pc, #132] ; (800d1d8 ) 800d152: 20a4 movs r0, #164 ; 0xa4 800d154: f7f7 fefe bl 8004f54 for(i = 0; i < 2; i++) 800d158: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d15c: 3301 adds r3, #1 800d15e: f8c7 3330 str.w r3, [r7, #816] ; 0x330 800d162: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d166: 2b01 cmp r3, #1 800d168: d9b5 bls.n 800d0d6 } LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800d16a: f04f 31ff mov.w r1, #4294967295 800d16e: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800d172: f7f7 fe29 bl 8004dc8 BSP_LCD_DisplayStringAt(79, 8, "КАНАЛ 1", CENTER_MODE); 800d176: 2301 movs r3, #1 800d178: 4a18 ldr r2, [pc, #96] ; (800d1dc ) 800d17a: 2108 movs r1, #8 800d17c: 204f movs r0, #79 ; 0x4f 800d17e: f7f7 fee9 bl 8004f54 BSP_LCD_DisplayStringAt(79, 128, "КАНАЛ 2", CENTER_MODE); 800d182: 2301 movs r3, #1 800d184: 4a16 ldr r2, [pc, #88] ; (800d1e0 ) 800d186: 2180 movs r1, #128 ; 0x80 800d188: 204f movs r0, #79 ; 0x4f 800d18a: f7f7 fee3 bl 8004f54 BSP_LCD_DisplayStringAt(239, 8, "КАНАЛ 3", CENTER_MODE); 800d18e: 2301 movs r3, #1 800d190: 4a14 ldr r2, [pc, #80] ; (800d1e4 ) 800d192: 2108 movs r1, #8 800d194: 20ef movs r0, #239 ; 0xef 800d196: f7f7 fedd bl 8004f54 BSP_LCD_DisplayStringAt(239, 128, "КАНАЛ 4", CENTER_MODE); 800d19a: 2301 movs r3, #1 800d19c: 4a12 ldr r2, [pc, #72] ; (800d1e8 ) 800d19e: 2180 movs r1, #128 ; 0x80 800d1a0: 20ef movs r0, #239 ; 0xef 800d1a2: f7f7 fed7 bl 8004f54 800d1a6: e0d7 b.n 800d358 } else { for(i = 0; i < 2; i++) 800d1a8: 2300 movs r3, #0 800d1aa: f8c7 3330 str.w r3, [r7, #816] ; 0x330 800d1ae: e063 b.n 800d278 800d1b0: 2002096c .word 0x2002096c 800d1b4: 2006ba78 .word 0x2006ba78 800d1b8: 080181c8 .word 0x080181c8 800d1bc: 20020000 .word 0x20020000 800d1c0: 2006ba6c .word 0x2006ba6c 800d1c4: 2006bca8 .word 0x2006bca8 800d1c8: ffd3d3d3 .word 0xffd3d3d3 800d1cc: 080181cc .word 0x080181cc 800d1d0: 080181d4 .word 0x080181d4 800d1d4: 080181dc .word 0x080181dc 800d1d8: 080181e4 .word 0x080181e4 800d1dc: 080181ec .word 0x080181ec 800d1e0: 080181f4 .word 0x080181f4 800d1e4: 080181fc .word 0x080181fc 800d1e8: 08018204 .word 0x08018204 { LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800d1ec: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d1f0: 48c6 ldr r0, [pc, #792] ; (800d50c ) 800d1f2: f7f7 fde9 bl 8004dc8 BSP_LCD_DisplayStringAt(4, 27 + 120*i, "INPUT:", LEFT_MODE); 800d1f6: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d1fa: b29b uxth r3, r3 800d1fc: 461a mov r2, r3 800d1fe: 0112 lsls r2, r2, #4 800d200: 1ad3 subs r3, r2, r3 800d202: 00db lsls r3, r3, #3 800d204: b29b uxth r3, r3 800d206: 331b adds r3, #27 800d208: b299 uxth r1, r3 800d20a: 2303 movs r3, #3 800d20c: 4ac0 ldr r2, [pc, #768] ; (800d510 ) 800d20e: 2004 movs r0, #4 800d210: f7f7 fea0 bl 8004f54 BSP_LCD_DisplayStringAt(3, 46+6 + 120*i, "HPF:", LEFT_MODE); 800d214: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d218: b29b uxth r3, r3 800d21a: 461a mov r2, r3 800d21c: 0112 lsls r2, r2, #4 800d21e: 1ad3 subs r3, r2, r3 800d220: 00db lsls r3, r3, #3 800d222: b29b uxth r3, r3 800d224: 3334 adds r3, #52 ; 0x34 800d226: b299 uxth r1, r3 800d228: 2303 movs r3, #3 800d22a: 4aba ldr r2, [pc, #744] ; (800d514 ) 800d22c: 2003 movs r0, #3 800d22e: f7f7 fe91 bl 8004f54 BSP_LCD_DisplayStringAt(3, 65+6 + 120*i, "LPF:", LEFT_MODE); 800d232: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d236: b29b uxth r3, r3 800d238: 461a mov r2, r3 800d23a: 0112 lsls r2, r2, #4 800d23c: 1ad3 subs r3, r2, r3 800d23e: 00db lsls r3, r3, #3 800d240: b29b uxth r3, r3 800d242: 3347 adds r3, #71 ; 0x47 800d244: b299 uxth r1, r3 800d246: 2303 movs r3, #3 800d248: 4ab3 ldr r2, [pc, #716] ; (800d518 ) 800d24a: 2003 movs r0, #3 800d24c: f7f7 fe82 bl 8004f54 BSP_LCD_DisplayStringAt(4, 84+6 + 120*i, "OUT:", LEFT_MODE); 800d250: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d254: b29b uxth r3, r3 800d256: 461a mov r2, r3 800d258: 0112 lsls r2, r2, #4 800d25a: 1ad3 subs r3, r2, r3 800d25c: 00db lsls r3, r3, #3 800d25e: b29b uxth r3, r3 800d260: 335a adds r3, #90 ; 0x5a 800d262: b299 uxth r1, r3 800d264: 2303 movs r3, #3 800d266: 4aad ldr r2, [pc, #692] ; (800d51c ) 800d268: 2004 movs r0, #4 800d26a: f7f7 fe73 bl 8004f54 for(i = 0; i < 2; i++) 800d26e: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d272: 3301 adds r3, #1 800d274: f8c7 3330 str.w r3, [r7, #816] ; 0x330 800d278: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d27c: 2b01 cmp r3, #1 800d27e: d9b5 bls.n 800d1ec } // 3-4 // for(i = 0; i < 2; i++) 800d280: 2300 movs r3, #0 800d282: f8c7 3330 str.w r3, [r7, #816] ; 0x330 800d286: e045 b.n 800d314 { LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800d288: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d28c: 489f ldr r0, [pc, #636] ; (800d50c ) 800d28e: f7f7 fd9b bl 8004dc8 BSP_LCD_DisplayStringAt(164, 27 + 120*i, "INPUT:", LEFT_MODE); 800d292: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d296: b29b uxth r3, r3 800d298: 461a mov r2, r3 800d29a: 0112 lsls r2, r2, #4 800d29c: 1ad3 subs r3, r2, r3 800d29e: 00db lsls r3, r3, #3 800d2a0: b29b uxth r3, r3 800d2a2: 331b adds r3, #27 800d2a4: b299 uxth r1, r3 800d2a6: 2303 movs r3, #3 800d2a8: 4a99 ldr r2, [pc, #612] ; (800d510 ) 800d2aa: 20a4 movs r0, #164 ; 0xa4 800d2ac: f7f7 fe52 bl 8004f54 BSP_LCD_DisplayStringAt(163, 46+6 + 120*i, "HPF:", LEFT_MODE); 800d2b0: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d2b4: b29b uxth r3, r3 800d2b6: 461a mov r2, r3 800d2b8: 0112 lsls r2, r2, #4 800d2ba: 1ad3 subs r3, r2, r3 800d2bc: 00db lsls r3, r3, #3 800d2be: b29b uxth r3, r3 800d2c0: 3334 adds r3, #52 ; 0x34 800d2c2: b299 uxth r1, r3 800d2c4: 2303 movs r3, #3 800d2c6: 4a93 ldr r2, [pc, #588] ; (800d514 ) 800d2c8: 20a3 movs r0, #163 ; 0xa3 800d2ca: f7f7 fe43 bl 8004f54 BSP_LCD_DisplayStringAt(163, 65+6 + 120*i, "LPF:", LEFT_MODE); 800d2ce: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d2d2: b29b uxth r3, r3 800d2d4: 461a mov r2, r3 800d2d6: 0112 lsls r2, r2, #4 800d2d8: 1ad3 subs r3, r2, r3 800d2da: 00db lsls r3, r3, #3 800d2dc: b29b uxth r3, r3 800d2de: 3347 adds r3, #71 ; 0x47 800d2e0: b299 uxth r1, r3 800d2e2: 2303 movs r3, #3 800d2e4: 4a8c ldr r2, [pc, #560] ; (800d518 ) 800d2e6: 20a3 movs r0, #163 ; 0xa3 800d2e8: f7f7 fe34 bl 8004f54 BSP_LCD_DisplayStringAt(164, 84+6 + 120*i, "OUT::", LEFT_MODE); 800d2ec: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d2f0: b29b uxth r3, r3 800d2f2: 461a mov r2, r3 800d2f4: 0112 lsls r2, r2, #4 800d2f6: 1ad3 subs r3, r2, r3 800d2f8: 00db lsls r3, r3, #3 800d2fa: b29b uxth r3, r3 800d2fc: 335a adds r3, #90 ; 0x5a 800d2fe: b299 uxth r1, r3 800d300: 2303 movs r3, #3 800d302: 4a87 ldr r2, [pc, #540] ; (800d520 ) 800d304: 20a4 movs r0, #164 ; 0xa4 800d306: f7f7 fe25 bl 8004f54 for(i = 0; i < 2; i++) 800d30a: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d30e: 3301 adds r3, #1 800d310: f8c7 3330 str.w r3, [r7, #816] ; 0x330 800d314: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d318: 2b01 cmp r3, #1 800d31a: d9b5 bls.n 800d288 } LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800d31c: f04f 31ff mov.w r1, #4294967295 800d320: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800d324: f7f7 fd50 bl 8004dc8 BSP_LCD_DisplayStringAt(79, 8, "CHANNEL 1", CENTER_MODE); 800d328: 2301 movs r3, #1 800d32a: 4a7e ldr r2, [pc, #504] ; (800d524 ) 800d32c: 2108 movs r1, #8 800d32e: 204f movs r0, #79 ; 0x4f 800d330: f7f7 fe10 bl 8004f54 BSP_LCD_DisplayStringAt(79, 128, "CHANNEL 2", CENTER_MODE); 800d334: 2301 movs r3, #1 800d336: 4a7c ldr r2, [pc, #496] ; (800d528 ) 800d338: 2180 movs r1, #128 ; 0x80 800d33a: 204f movs r0, #79 ; 0x4f 800d33c: f7f7 fe0a bl 8004f54 BSP_LCD_DisplayStringAt(239, 8, "CHANNEL 3", CENTER_MODE); 800d340: 2301 movs r3, #1 800d342: 4a7a ldr r2, [pc, #488] ; (800d52c ) 800d344: 2108 movs r1, #8 800d346: 20ef movs r0, #239 ; 0xef 800d348: f7f7 fe04 bl 8004f54 BSP_LCD_DisplayStringAt(239, 128, "CHANNEL 4", CENTER_MODE); 800d34c: 2301 movs r3, #1 800d34e: 4a78 ldr r2, [pc, #480] ; (800d530 ) 800d350: 2180 movs r1, #128 ; 0x80 800d352: 20ef movs r0, #239 ; 0xef 800d354: f7f7 fdfe bl 8004f54 } for(i = 0; i < 4; i++) 800d358: 2300 movs r3, #0 800d35a: f8c7 3330 str.w r3, [r7, #816] ; 0x330 800d35e: e018 b.n 800d392 { if(MASK_CHANNELS & (1 << i)) { 800d360: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d364: 2201 movs r2, #1 800d366: fa02 f303 lsl.w r3, r2, r3 800d36a: 461a mov r2, r3 800d36c: 4b71 ldr r3, [pc, #452] ; (800d534 ) 800d36e: 681b ldr r3, [r3, #0] 800d370: 4013 ands r3, r2 800d372: 2b00 cmp r3, #0 800d374: d008 beq.n 800d388 DrawChannel_4(i, blk); 800d376: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d37a: b2da uxtb r2, r3 800d37c: 4b6e ldr r3, [pc, #440] ; (800d538 ) 800d37e: 681b ldr r3, [r3, #0] 800d380: 4619 mov r1, r3 800d382: 4610 mov r0, r2 800d384: f000 fea4 bl 800e0d0 for(i = 0; i < 4; i++) 800d388: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d38c: 3301 adds r3, #1 800d38e: f8c7 3330 str.w r3, [r7, #816] ; 0x330 800d392: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d396: 2b03 cmp r3, #3 800d398: d9e2 bls.n 800d360 } else { } break; 800d39a: e31d b.n 800d9d8 case CALIBR_00: BSP_LCD_SetFont(&Font12); 800d39c: 4867 ldr r0, [pc, #412] ; (800d53c ) 800d39e: f7f7 fd4f bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d3a2: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d3a6: f06f 00ff mvn.w r0, #255 ; 0xff 800d3aa: f7f7 fd0d bl 8004dc8 BSP_LCD_DisplayStringAt(160, 24, "Выберите канал для калибровки:", CENTER_MODE); 800d3ae: 2301 movs r3, #1 800d3b0: 4a63 ldr r2, [pc, #396] ; (800d540 ) 800d3b2: 2118 movs r1, #24 800d3b4: 20a0 movs r0, #160 ; 0xa0 800d3b6: f7f7 fdcd bl 8004f54 if(menupos != Ch1) 800d3ba: 4b62 ldr r3, [pc, #392] ; (800d544 ) 800d3bc: 781b ldrb r3, [r3, #0] 800d3be: b2db uxtb r3, r3 800d3c0: 2b00 cmp r3, #0 800d3c2: d006 beq.n 800d3d2 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800d3c4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d3c8: f04f 30ff mov.w r0, #4294967295 800d3cc: f7f7 fcfc bl 8004dc8 800d3d0: e005 b.n 800d3de else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800d3d2: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d3d6: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800d3da: f7f7 fcf5 bl 8004dc8 BSP_LCD_DisplayStringAt(160, 48+64, "КАНАЛ 1", CENTER_MODE); 800d3de: 2301 movs r3, #1 800d3e0: 4a59 ldr r2, [pc, #356] ; (800d548 ) 800d3e2: 2170 movs r1, #112 ; 0x70 800d3e4: 20a0 movs r0, #160 ; 0xa0 800d3e6: f7f7 fdb5 bl 8004f54 if(menupos != Ch2) 800d3ea: 4b56 ldr r3, [pc, #344] ; (800d544 ) 800d3ec: 781b ldrb r3, [r3, #0] 800d3ee: b2db uxtb r3, r3 800d3f0: 2b01 cmp r3, #1 800d3f2: d006 beq.n 800d402 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800d3f4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d3f8: f04f 30ff mov.w r0, #4294967295 800d3fc: f7f7 fce4 bl 8004dc8 800d400: e005 b.n 800d40e else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800d402: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d406: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800d40a: f7f7 fcdd bl 8004dc8 BSP_LCD_DisplayStringAt(160, 72+64, "КАНАЛ 2", CENTER_MODE); 800d40e: 2301 movs r3, #1 800d410: 4a4e ldr r2, [pc, #312] ; (800d54c ) 800d412: 2188 movs r1, #136 ; 0x88 800d414: 20a0 movs r0, #160 ; 0xa0 800d416: f7f7 fd9d bl 8004f54 if(menupos != Ch3) 800d41a: 4b4a ldr r3, [pc, #296] ; (800d544 ) 800d41c: 781b ldrb r3, [r3, #0] 800d41e: b2db uxtb r3, r3 800d420: 2b02 cmp r3, #2 800d422: d006 beq.n 800d432 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800d424: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d428: f04f 30ff mov.w r0, #4294967295 800d42c: f7f7 fccc bl 8004dc8 800d430: e005 b.n 800d43e else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800d432: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d436: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800d43a: f7f7 fcc5 bl 8004dc8 BSP_LCD_DisplayStringAt(160, 96+64, "КАНАЛ 3", CENTER_MODE); 800d43e: 2301 movs r3, #1 800d440: 4a43 ldr r2, [pc, #268] ; (800d550 ) 800d442: 21a0 movs r1, #160 ; 0xa0 800d444: 20a0 movs r0, #160 ; 0xa0 800d446: f7f7 fd85 bl 8004f54 if(menupos != Ch4) 800d44a: 4b3e ldr r3, [pc, #248] ; (800d544 ) 800d44c: 781b ldrb r3, [r3, #0] 800d44e: b2db uxtb r3, r3 800d450: 2b03 cmp r3, #3 800d452: d006 beq.n 800d462 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800d454: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d458: f04f 30ff mov.w r0, #4294967295 800d45c: f7f7 fcb4 bl 8004dc8 800d460: e005 b.n 800d46e else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800d462: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d466: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800d46a: f7f7 fcad bl 8004dc8 BSP_LCD_DisplayStringAt(160, 120+64, "КАНАЛ 4", CENTER_MODE); 800d46e: 2301 movs r3, #1 800d470: 4a38 ldr r2, [pc, #224] ; (800d554 ) 800d472: 21b8 movs r1, #184 ; 0xb8 800d474: 20a0 movs r0, #160 ; 0xa0 800d476: f7f7 fd6d bl 8004f54 if(menupos != Ch5) 800d47a: 4b32 ldr r3, [pc, #200] ; (800d544 ) 800d47c: 781b ldrb r3, [r3, #0] 800d47e: b2db uxtb r3, r3 800d480: 2b04 cmp r3, #4 800d482: d006 beq.n 800d492 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800d484: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d488: f04f 30ff mov.w r0, #4294967295 800d48c: f7f7 fc9c bl 8004dc8 800d490: e005 b.n 800d49e else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800d492: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d496: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800d49a: f7f7 fc95 bl 8004dc8 BSP_LCD_DisplayStringAt(160, 144+64, "ВЫХОД", CENTER_MODE); 800d49e: 2301 movs r3, #1 800d4a0: 4a2d ldr r2, [pc, #180] ; (800d558 ) 800d4a2: 21d0 movs r1, #208 ; 0xd0 800d4a4: 20a0 movs r0, #160 ; 0xa0 800d4a6: f7f7 fd55 bl 8004f54 break; 800d4aa: e296 b.n 800d9da case CALIBR_0: // [CHARGE x1] + KU_1 BSP_LCD_SetFont(&Font12); 800d4ac: 4823 ldr r0, [pc, #140] ; (800d53c ) 800d4ae: f7f7 fcc7 bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d4b2: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d4b6: f06f 00ff mvn.w r0, #255 ; 0xff 800d4ba: f7f7 fc85 bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx0.1]:", CENTER_MODE); 800d4be: 2301 movs r3, #1 800d4c0: 4a26 ldr r2, [pc, #152] ; (800d55c ) 800d4c2: 210a movs r1, #10 800d4c4: 20a0 movs r0, #160 ; 0xa0 800d4c6: f7f7 fd45 bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 5000мВ", CENTER_MODE); 800d4ca: 2301 movs r3, #1 800d4cc: 4a24 ldr r2, [pc, #144] ; (800d560 ) 800d4ce: 2118 movs r1, #24 800d4d0: 20a0 movs r0, #160 ; 0xa0 800d4d2: f7f7 fd3f bl 8004f54 DrawButtons(); 800d4d6: f001 fe8b bl 800f1f0 break; 800d4da: e27e b.n 800d9da case CALIBR_1: // CHARGE x1 + [KU_2] BSP_LCD_SetFont(&Font12); 800d4dc: 4817 ldr r0, [pc, #92] ; (800d53c ) 800d4de: f7f7 fcaf bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d4e2: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d4e6: f06f 00ff mvn.w r0, #255 ; 0xff 800d4ea: f7f7 fc6d bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx0.2]:", CENTER_MODE); 800d4ee: 2301 movs r3, #1 800d4f0: 4a1c ldr r2, [pc, #112] ; (800d564 ) 800d4f2: 210a movs r1, #10 800d4f4: 20a0 movs r0, #160 ; 0xa0 800d4f6: f7f7 fd2d bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 5000мВ", CENTER_MODE); 800d4fa: 2301 movs r3, #1 800d4fc: 4a18 ldr r2, [pc, #96] ; (800d560 ) 800d4fe: 2118 movs r1, #24 800d500: 20a0 movs r0, #160 ; 0xa0 800d502: f7f7 fd27 bl 8004f54 DrawButtons(); 800d506: f001 fe73 bl 800f1f0 break; 800d50a: e266 b.n 800d9da 800d50c: ffd3d3d3 .word 0xffd3d3d3 800d510: 0801820c .word 0x0801820c 800d514: 08018214 .word 0x08018214 800d518: 0801821c .word 0x0801821c 800d51c: 08018224 .word 0x08018224 800d520: 0801822c .word 0x0801822c 800d524: 08018234 .word 0x08018234 800d528: 08018240 .word 0x08018240 800d52c: 0801824c .word 0x0801824c 800d530: 08018258 .word 0x08018258 800d534: 2002002c .word 0x2002002c 800d538: 2006ba78 .word 0x2006ba78 800d53c: 20020000 .word 0x20020000 800d540: 08018264 .word 0x08018264 800d544: 20020010 .word 0x20020010 800d548: 080181ec .word 0x080181ec 800d54c: 080181f4 .word 0x080181f4 800d550: 080181fc .word 0x080181fc 800d554: 08018204 .word 0x08018204 800d558: 08018284 .word 0x08018284 800d55c: 0801828c .word 0x0801828c 800d560: 080182a4 .word 0x080182a4 800d564: 080182bc .word 0x080182bc case CALIBR_2: // CHARGE x1 + [KU_5] BSP_LCD_SetFont(&Font12); 800d568: 48d7 ldr r0, [pc, #860] ; (800d8c8 ) 800d56a: f7f7 fc69 bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d56e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d572: f06f 00ff mvn.w r0, #255 ; 0xff 800d576: f7f7 fc27 bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx0.5]:", CENTER_MODE); 800d57a: 2301 movs r3, #1 800d57c: 4ad3 ldr r2, [pc, #844] ; (800d8cc ) 800d57e: 210a movs r1, #10 800d580: 20a0 movs r0, #160 ; 0xa0 800d582: f7f7 fce7 bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 5000мВ", CENTER_MODE); 800d586: 2301 movs r3, #1 800d588: 4ad1 ldr r2, [pc, #836] ; (800d8d0 ) 800d58a: 2118 movs r1, #24 800d58c: 20a0 movs r0, #160 ; 0xa0 800d58e: f7f7 fce1 bl 8004f54 DrawButtons(); 800d592: f001 fe2d bl 800f1f0 break; 800d596: e220 b.n 800d9da case CALIBR_3: // CHARGE x1 + [KU_10] BSP_LCD_SetFont(&Font12); 800d598: 48cb ldr r0, [pc, #812] ; (800d8c8 ) 800d59a: f7f7 fc51 bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d59e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d5a2: f06f 00ff mvn.w r0, #255 ; 0xff 800d5a6: f7f7 fc0f bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx1]:", CENTER_MODE); 800d5aa: 2301 movs r3, #1 800d5ac: 4ac9 ldr r2, [pc, #804] ; (800d8d4 ) 800d5ae: 210a movs r1, #10 800d5b0: 20a0 movs r0, #160 ; 0xa0 800d5b2: f7f7 fccf bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 5000мВ", CENTER_MODE); 800d5b6: 2301 movs r3, #1 800d5b8: 4ac5 ldr r2, [pc, #788] ; (800d8d0 ) 800d5ba: 2118 movs r1, #24 800d5bc: 20a0 movs r0, #160 ; 0xa0 800d5be: f7f7 fcc9 bl 8004f54 DrawButtons(); 800d5c2: f001 fe15 bl 800f1f0 break; 800d5c6: e208 b.n 800d9da case CALIBR_4: // CHARGE x1 + [KU_x10] BSP_LCD_SetFont(&Font12); 800d5c8: 48bf ldr r0, [pc, #764] ; (800d8c8 ) 800d5ca: f7f7 fc39 bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d5ce: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d5d2: f06f 00ff mvn.w r0, #255 ; 0xff 800d5d6: f7f7 fbf7 bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx2]:", CENTER_MODE); 800d5da: 2301 movs r3, #1 800d5dc: 4abe ldr r2, [pc, #760] ; (800d8d8 ) 800d5de: 210a movs r1, #10 800d5e0: 20a0 movs r0, #160 ; 0xa0 800d5e2: f7f7 fcb7 bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 2500мВ", CENTER_MODE); 800d5e6: 2301 movs r3, #1 800d5e8: 4abc ldr r2, [pc, #752] ; (800d8dc ) 800d5ea: 2118 movs r1, #24 800d5ec: 20a0 movs r0, #160 ; 0xa0 800d5ee: f7f7 fcb1 bl 8004f54 DrawButtons(); 800d5f2: f001 fdfd bl 800f1f0 break; 800d5f6: e1f0 b.n 800d9da case CALIBR_5: // [CHARGE x10] + KU_1 BSP_LCD_SetFont(&Font12); 800d5f8: 48b3 ldr r0, [pc, #716] ; (800d8c8 ) 800d5fa: f7f7 fc21 bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d5fe: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d602: f06f 00ff mvn.w r0, #255 ; 0xff 800d606: f7f7 fbdf bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx5]:", CENTER_MODE); 800d60a: 2301 movs r3, #1 800d60c: 4ab4 ldr r2, [pc, #720] ; (800d8e0 ) 800d60e: 210a movs r1, #10 800d610: 20a0 movs r0, #160 ; 0xa0 800d612: f7f7 fc9f bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 1000мВ", CENTER_MODE); 800d616: 2301 movs r3, #1 800d618: 4ab2 ldr r2, [pc, #712] ; (800d8e4 ) 800d61a: 2118 movs r1, #24 800d61c: 20a0 movs r0, #160 ; 0xa0 800d61e: f7f7 fc99 bl 8004f54 DrawButtons(); 800d622: f001 fde5 bl 800f1f0 break; 800d626: e1d8 b.n 800d9da case CALIBR_6: // [CHARGE x0.1] + KU_1 BSP_LCD_SetFont(&Font12); 800d628: 48a7 ldr r0, [pc, #668] ; (800d8c8 ) 800d62a: f7f7 fc09 bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d62e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d632: f06f 00ff mvn.w r0, #255 ; 0xff 800d636: f7f7 fbc7 bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx10]:", CENTER_MODE); 800d63a: 2301 movs r3, #1 800d63c: 4aaa ldr r2, [pc, #680] ; (800d8e8 ) 800d63e: 210a movs r1, #10 800d640: 20a0 movs r0, #160 ; 0xa0 800d642: f7f7 fc87 bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 500мВ", CENTER_MODE); 800d646: 2301 movs r3, #1 800d648: 4aa8 ldr r2, [pc, #672] ; (800d8ec ) 800d64a: 2118 movs r1, #24 800d64c: 20a0 movs r0, #160 ; 0xa0 800d64e: f7f7 fc81 bl 8004f54 DrawButtons(); 800d652: f001 fdcd bl 800f1f0 break; 800d656: e1c0 b.n 800d9da case CALIBR_7: // [ICP x1] + KU_1 BSP_LCD_SetFont(&Font12); 800d658: 489b ldr r0, [pc, #620] ; (800d8c8 ) 800d65a: f7f7 fbf1 bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d65e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d662: f06f 00ff mvn.w r0, #255 ; 0xff 800d666: f7f7 fbaf bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx20]:", CENTER_MODE); 800d66a: 2301 movs r3, #1 800d66c: 4aa0 ldr r2, [pc, #640] ; (800d8f0 ) 800d66e: 210a movs r1, #10 800d670: 20a0 movs r0, #160 ; 0xa0 800d672: f7f7 fc6f bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 250мВ", CENTER_MODE); 800d676: 2301 movs r3, #1 800d678: 4a9e ldr r2, [pc, #632] ; (800d8f4 ) 800d67a: 2118 movs r1, #24 800d67c: 20a0 movs r0, #160 ; 0xa0 800d67e: f7f7 fc69 bl 8004f54 DrawButtons(); 800d682: f001 fdb5 bl 800f1f0 break; 800d686: e1a8 b.n 800d9da case CALIBR_8: // [ICP x10] + KU_1 BSP_LCD_SetFont(&Font12); 800d688: 488f ldr r0, [pc, #572] ; (800d8c8 ) 800d68a: f7f7 fbd9 bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d68e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d692: f06f 00ff mvn.w r0, #255 ; 0xff 800d696: f7f7 fb97 bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx50]:", CENTER_MODE); 800d69a: 2301 movs r3, #1 800d69c: 4a96 ldr r2, [pc, #600] ; (800d8f8 ) 800d69e: 210a movs r1, #10 800d6a0: 20a0 movs r0, #160 ; 0xa0 800d6a2: f7f7 fc57 bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 100мВ", CENTER_MODE); 800d6a6: 2301 movs r3, #1 800d6a8: 4a94 ldr r2, [pc, #592] ; (800d8fc ) 800d6aa: 2118 movs r1, #24 800d6ac: 20a0 movs r0, #160 ; 0xa0 800d6ae: f7f7 fc51 bl 8004f54 DrawButtons(); 800d6b2: f001 fd9d bl 800f1f0 break; 800d6b6: e190 b.n 800d9da case CALIBR_9: // [CHARGE x10 + KU_2 + KU_x10] BSP_LCD_SetFont(&Font12); 800d6b8: 4883 ldr r0, [pc, #524] ; (800d8c8 ) 800d6ba: f7f7 fbc1 bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d6be: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d6c2: f06f 00ff mvn.w r0, #255 ; 0xff 800d6c6: f7f7 fb7f bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx100]:", CENTER_MODE); 800d6ca: 2301 movs r3, #1 800d6cc: 4a8c ldr r2, [pc, #560] ; (800d900 ) 800d6ce: 210a movs r1, #10 800d6d0: 20a0 movs r0, #160 ; 0xa0 800d6d2: f7f7 fc3f bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 50мВ", CENTER_MODE); 800d6d6: 2301 movs r3, #1 800d6d8: 4a8a ldr r2, [pc, #552] ; (800d904 ) 800d6da: 2118 movs r1, #24 800d6dc: 20a0 movs r0, #160 ; 0xa0 800d6de: f7f7 fc39 bl 8004f54 DrawButtons(); 800d6e2: f001 fd85 bl 800f1f0 break; 800d6e6: e178 b.n 800d9da case CALIBR_10: // [CHARGE x10 + KU_5 + KU_x10] BSP_LCD_SetFont(&Font12); 800d6e8: 4877 ldr r0, [pc, #476] ; (800d8c8 ) 800d6ea: f7f7 fba9 bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d6ee: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d6f2: f06f 00ff mvn.w r0, #255 ; 0xff 800d6f6: f7f7 fb67 bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx200]:", CENTER_MODE); 800d6fa: 2301 movs r3, #1 800d6fc: 4a82 ldr r2, [pc, #520] ; (800d908 ) 800d6fe: 210a movs r1, #10 800d700: 20a0 movs r0, #160 ; 0xa0 800d702: f7f7 fc27 bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 25мВ", CENTER_MODE); 800d706: 2301 movs r3, #1 800d708: 4a80 ldr r2, [pc, #512] ; (800d90c ) 800d70a: 2118 movs r1, #24 800d70c: 20a0 movs r0, #160 ; 0xa0 800d70e: f7f7 fc21 bl 8004f54 DrawButtons(); 800d712: f001 fd6d bl 800f1f0 break; 800d716: e160 b.n 800d9da case CALIBR_11: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d718: 486b ldr r0, [pc, #428] ; (800d8c8 ) 800d71a: f7f7 fb91 bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d71e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d722: f06f 00ff mvn.w r0, #255 ; 0xff 800d726: f7f7 fb4f bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx500]:", CENTER_MODE); 800d72a: 2301 movs r3, #1 800d72c: 4a78 ldr r2, [pc, #480] ; (800d910 ) 800d72e: 210a movs r1, #10 800d730: 20a0 movs r0, #160 ; 0xa0 800d732: f7f7 fc0f bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 10мВ", CENTER_MODE); 800d736: 2301 movs r3, #1 800d738: 4a76 ldr r2, [pc, #472] ; (800d914 ) 800d73a: 2118 movs r1, #24 800d73c: 20a0 movs r0, #160 ; 0xa0 800d73e: f7f7 fc09 bl 8004f54 DrawButtons(); 800d742: f001 fd55 bl 800f1f0 break; 800d746: e148 b.n 800d9da case CALIBR_12: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d748: 485f ldr r0, [pc, #380] ; (800d8c8 ) 800d74a: f7f7 fb79 bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d74e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d752: f06f 00ff mvn.w r0, #255 ; 0xff 800d756: f7f7 fb37 bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx1000]:", CENTER_MODE); 800d75a: 2301 movs r3, #1 800d75c: 4a6e ldr r2, [pc, #440] ; (800d918 ) 800d75e: 210a movs r1, #10 800d760: 20a0 movs r0, #160 ; 0xa0 800d762: f7f7 fbf7 bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 5мВ", CENTER_MODE); 800d766: 2301 movs r3, #1 800d768: 4a6c ldr r2, [pc, #432] ; (800d91c ) 800d76a: 2118 movs r1, #24 800d76c: 20a0 movs r0, #160 ; 0xa0 800d76e: f7f7 fbf1 bl 8004f54 DrawButtons(); 800d772: f001 fd3d bl 800f1f0 break; 800d776: e130 b.n 800d9da case CALIBR_13: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d778: 4853 ldr r0, [pc, #332] ; (800d8c8 ) 800d77a: f7f7 fb61 bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d77e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d782: f06f 00ff mvn.w r0, #255 ; 0xff 800d786: f7f7 fb1f bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx1]:", CENTER_MODE); 800d78a: 2301 movs r3, #1 800d78c: 4a64 ldr r2, [pc, #400] ; (800d920 ) 800d78e: 210a movs r1, #10 800d790: 20a0 movs r0, #160 ; 0xa0 800d792: f7f7 fbdf bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 5000мВ", CENTER_MODE); 800d796: 2301 movs r3, #1 800d798: 4a4d ldr r2, [pc, #308] ; (800d8d0 ) 800d79a: 2118 movs r1, #24 800d79c: 20a0 movs r0, #160 ; 0xa0 800d79e: f7f7 fbd9 bl 8004f54 DrawButtons(); 800d7a2: f001 fd25 bl 800f1f0 break; 800d7a6: e118 b.n 800d9da case CALIBR_14: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d7a8: 4847 ldr r0, [pc, #284] ; (800d8c8 ) 800d7aa: f7f7 fb49 bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d7ae: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d7b2: f06f 00ff mvn.w r0, #255 ; 0xff 800d7b6: f7f7 fb07 bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx2]:", CENTER_MODE); 800d7ba: 2301 movs r3, #1 800d7bc: 4a59 ldr r2, [pc, #356] ; (800d924 ) 800d7be: 210a movs r1, #10 800d7c0: 20a0 movs r0, #160 ; 0xa0 800d7c2: f7f7 fbc7 bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 2500мВ", CENTER_MODE); 800d7c6: 2301 movs r3, #1 800d7c8: 4a44 ldr r2, [pc, #272] ; (800d8dc ) 800d7ca: 2118 movs r1, #24 800d7cc: 20a0 movs r0, #160 ; 0xa0 800d7ce: f7f7 fbc1 bl 8004f54 DrawButtons(); 800d7d2: f001 fd0d bl 800f1f0 break; 800d7d6: e100 b.n 800d9da case CALIBR_15: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d7d8: 483b ldr r0, [pc, #236] ; (800d8c8 ) 800d7da: f7f7 fb31 bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d7de: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d7e2: f06f 00ff mvn.w r0, #255 ; 0xff 800d7e6: f7f7 faef bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx5]:", CENTER_MODE); 800d7ea: 2301 movs r3, #1 800d7ec: 4a4e ldr r2, [pc, #312] ; (800d928 ) 800d7ee: 210a movs r1, #10 800d7f0: 20a0 movs r0, #160 ; 0xa0 800d7f2: f7f7 fbaf bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 1000мВ", CENTER_MODE); 800d7f6: 2301 movs r3, #1 800d7f8: 4a3a ldr r2, [pc, #232] ; (800d8e4 ) 800d7fa: 2118 movs r1, #24 800d7fc: 20a0 movs r0, #160 ; 0xa0 800d7fe: f7f7 fba9 bl 8004f54 DrawButtons(); 800d802: f001 fcf5 bl 800f1f0 break; 800d806: e0e8 b.n 800d9da case CALIBR_16: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d808: 482f ldr r0, [pc, #188] ; (800d8c8 ) 800d80a: f7f7 fb19 bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d80e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d812: f06f 00ff mvn.w r0, #255 ; 0xff 800d816: f7f7 fad7 bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx10]:", CENTER_MODE); 800d81a: 2301 movs r3, #1 800d81c: 4a43 ldr r2, [pc, #268] ; (800d92c ) 800d81e: 210a movs r1, #10 800d820: 20a0 movs r0, #160 ; 0xa0 800d822: f7f7 fb97 bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 500мВ", CENTER_MODE); 800d826: 2301 movs r3, #1 800d828: 4a30 ldr r2, [pc, #192] ; (800d8ec ) 800d82a: 2118 movs r1, #24 800d82c: 20a0 movs r0, #160 ; 0xa0 800d82e: f7f7 fb91 bl 8004f54 DrawButtons(); 800d832: f001 fcdd bl 800f1f0 break; 800d836: e0d0 b.n 800d9da case CALIBR_17: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d838: 4823 ldr r0, [pc, #140] ; (800d8c8 ) 800d83a: f7f7 fb01 bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d83e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d842: f06f 00ff mvn.w r0, #255 ; 0xff 800d846: f7f7 fabf bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx20]:", CENTER_MODE); 800d84a: 2301 movs r3, #1 800d84c: 4a38 ldr r2, [pc, #224] ; (800d930 ) 800d84e: 210a movs r1, #10 800d850: 20a0 movs r0, #160 ; 0xa0 800d852: f7f7 fb7f bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 250мВ", CENTER_MODE); 800d856: 2301 movs r3, #1 800d858: 4a26 ldr r2, [pc, #152] ; (800d8f4 ) 800d85a: 2118 movs r1, #24 800d85c: 20a0 movs r0, #160 ; 0xa0 800d85e: f7f7 fb79 bl 8004f54 DrawButtons(); 800d862: f001 fcc5 bl 800f1f0 break; 800d866: e0b8 b.n 800d9da case CALIBR_18: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d868: 4817 ldr r0, [pc, #92] ; (800d8c8 ) 800d86a: f7f7 fae9 bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d86e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d872: f06f 00ff mvn.w r0, #255 ; 0xff 800d876: f7f7 faa7 bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx50]:", CENTER_MODE); 800d87a: 2301 movs r3, #1 800d87c: 4a2d ldr r2, [pc, #180] ; (800d934 ) 800d87e: 210a movs r1, #10 800d880: 20a0 movs r0, #160 ; 0xa0 800d882: f7f7 fb67 bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 100мВ", CENTER_MODE); 800d886: 2301 movs r3, #1 800d888: 4a1c ldr r2, [pc, #112] ; (800d8fc ) 800d88a: 2118 movs r1, #24 800d88c: 20a0 movs r0, #160 ; 0xa0 800d88e: f7f7 fb61 bl 8004f54 DrawButtons(); 800d892: f001 fcad bl 800f1f0 break; 800d896: e0a0 b.n 800d9da case CALIBR_19: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d898: 480b ldr r0, [pc, #44] ; (800d8c8 ) 800d89a: f7f7 fad1 bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d89e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d8a2: f06f 00ff mvn.w r0, #255 ; 0xff 800d8a6: f7f7 fa8f bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx100]:", CENTER_MODE); 800d8aa: 2301 movs r3, #1 800d8ac: 4a22 ldr r2, [pc, #136] ; (800d938 ) 800d8ae: 210a movs r1, #10 800d8b0: 20a0 movs r0, #160 ; 0xa0 800d8b2: f7f7 fb4f bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 50мВ", CENTER_MODE); 800d8b6: 2301 movs r3, #1 800d8b8: 4a12 ldr r2, [pc, #72] ; (800d904 ) 800d8ba: 2118 movs r1, #24 800d8bc: 20a0 movs r0, #160 ; 0xa0 800d8be: f7f7 fb49 bl 8004f54 DrawButtons(); 800d8c2: f001 fc95 bl 800f1f0 break; 800d8c6: e088 b.n 800d9da 800d8c8: 20020000 .word 0x20020000 800d8cc: 080182d4 .word 0x080182d4 800d8d0: 080182a4 .word 0x080182a4 800d8d4: 080182ec .word 0x080182ec 800d8d8: 08018304 .word 0x08018304 800d8dc: 0801831c .word 0x0801831c 800d8e0: 08018334 .word 0x08018334 800d8e4: 0801834c .word 0x0801834c 800d8e8: 08018364 .word 0x08018364 800d8ec: 0801837c .word 0x0801837c 800d8f0: 08018394 .word 0x08018394 800d8f4: 080183ac .word 0x080183ac 800d8f8: 080183c4 .word 0x080183c4 800d8fc: 080183dc .word 0x080183dc 800d900: 080183f4 .word 0x080183f4 800d904: 0801840c .word 0x0801840c 800d908: 08018424 .word 0x08018424 800d90c: 0801843c .word 0x0801843c 800d910: 08018454 .word 0x08018454 800d914: 0801846c .word 0x0801846c 800d918: 08018484 .word 0x08018484 800d91c: 0801849c .word 0x0801849c 800d920: 080184b4 .word 0x080184b4 800d924: 080184c8 .word 0x080184c8 800d928: 080184dc .word 0x080184dc 800d92c: 080184f0 .word 0x080184f0 800d930: 08018508 .word 0x08018508 800d934: 08018520 .word 0x08018520 800d938: 08018538 .word 0x08018538 case CALIBR_20: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d93c: 482e ldr r0, [pc, #184] ; (800d9f8 ) 800d93e: f7f7 fa7f bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d942: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d946: f06f 00ff mvn.w r0, #255 ; 0xff 800d94a: f7f7 fa3d bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx200]:", CENTER_MODE); 800d94e: 2301 movs r3, #1 800d950: 4a2a ldr r2, [pc, #168] ; (800d9fc ) 800d952: 210a movs r1, #10 800d954: 20a0 movs r0, #160 ; 0xa0 800d956: f7f7 fafd bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 25мВ", CENTER_MODE); 800d95a: 2301 movs r3, #1 800d95c: 4a28 ldr r2, [pc, #160] ; (800da00 ) 800d95e: 2118 movs r1, #24 800d960: 20a0 movs r0, #160 ; 0xa0 800d962: f7f7 faf7 bl 8004f54 DrawButtons(); 800d966: f001 fc43 bl 800f1f0 break; 800d96a: e036 b.n 800d9da case CALIBR_21: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d96c: 4822 ldr r0, [pc, #136] ; (800d9f8 ) 800d96e: f7f7 fa67 bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d972: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d976: f06f 00ff mvn.w r0, #255 ; 0xff 800d97a: f7f7 fa25 bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx500]:", CENTER_MODE); 800d97e: 2301 movs r3, #1 800d980: 4a20 ldr r2, [pc, #128] ; (800da04 ) 800d982: 210a movs r1, #10 800d984: 20a0 movs r0, #160 ; 0xa0 800d986: f7f7 fae5 bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 10мВ", CENTER_MODE); 800d98a: 2301 movs r3, #1 800d98c: 4a1e ldr r2, [pc, #120] ; (800da08 ) 800d98e: 2118 movs r1, #24 800d990: 20a0 movs r0, #160 ; 0xa0 800d992: f7f7 fadf bl 8004f54 DrawButtons(); 800d996: f001 fc2b bl 800f1f0 break; 800d99a: e01e b.n 800d9da case CALIBR_22: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d99c: 4816 ldr r0, [pc, #88] ; (800d9f8 ) 800d99e: f7f7 fa4f bl 8004e40 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d9a2: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d9a6: f06f 00ff mvn.w r0, #255 ; 0xff 800d9aa: f7f7 fa0d bl 8004dc8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx1000]:", CENTER_MODE); 800d9ae: 2301 movs r3, #1 800d9b0: 4a16 ldr r2, [pc, #88] ; (800da0c ) 800d9b2: 210a movs r1, #10 800d9b4: 20a0 movs r0, #160 ; 0xa0 800d9b6: f7f7 facd bl 8004f54 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 5мВ", CENTER_MODE); 800d9ba: 2301 movs r3, #1 800d9bc: 4a14 ldr r2, [pc, #80] ; (800da10 ) 800d9be: 2118 movs r1, #24 800d9c0: 20a0 movs r0, #160 ; 0xa0 800d9c2: f7f7 fac7 bl 8004f54 DrawButtons(); 800d9c6: f001 fc13 bl 800f1f0 break; 800d9ca: e006 b.n 800d9da break; 800d9cc: bf00 nop 800d9ce: e004 b.n 800d9da break; 800d9d0: bf00 nop 800d9d2: e002 b.n 800d9da break; 800d9d4: bf00 nop 800d9d6: e000 b.n 800d9da break; 800d9d8: bf00 nop Redrawing = false; 800d9da: 4b0e ldr r3, [pc, #56] ; (800da14 ) 800d9dc: 2200 movs r2, #0 800d9de: 701a strb r2, [r3, #0] RefreshScreen = true; 800d9e0: 4b0d ldr r3, [pc, #52] ; (800da18 ) 800d9e2: 2201 movs r2, #1 800d9e4: 701a strb r2, [r3, #0] HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0); 800d9e6: 2100 movs r1, #0 800d9e8: 480c ldr r0, [pc, #48] ; (800da1c ) 800d9ea: f005 fb27 bl 801303c //************************************************************************************************************** //************************************************************************************************************** } 800d9ee: bf00 nop 800d9f0: f507 7752 add.w r7, r7, #840 ; 0x348 800d9f4: 46bd mov sp, r7 800d9f6: bd80 pop {r7, pc} 800d9f8: 20020000 .word 0x20020000 800d9fc: 08018550 .word 0x08018550 800da00: 0801843c .word 0x0801843c 800da04: 08018568 .word 0x08018568 800da08: 0801846c .word 0x0801846c 800da0c: 08018580 .word 0x08018580 800da10: 0801849c .word 0x0801849c 800da14: 2006ba74 .word 0x2006ba74 800da18: 2006ba60 .word 0x2006ba60 800da1c: 2006c174 .word 0x2006c174 0800da20 : void DrawMySpinner(uint16_t x, uint16_t y) // { 800da20: b580 push {r7, lr} 800da22: b082 sub sp, #8 800da24: af00 add r7, sp, #0 800da26: 4603 mov r3, r0 800da28: 460a mov r2, r1 800da2a: 80fb strh r3, [r7, #6] 800da2c: 4613 mov r3, r2 800da2e: 80bb strh r3, [r7, #4] static uint32_t rotate = 0; switch(rotate) 800da30: 4b98 ldr r3, [pc, #608] ; (800dc94 ) 800da32: 681b ldr r3, [r3, #0] 800da34: 2b07 cmp r3, #7 800da36: f200 8311 bhi.w 800e05c 800da3a: a201 add r2, pc, #4 ; (adr r2, 800da40 ) 800da3c: f852 f023 ldr.w pc, [r2, r3, lsl #2] 800da40: 0800da61 .word 0x0800da61 800da44: 0800db1d .word 0x0800db1d 800da48: 0800dbd9 .word 0x0800dbd9 800da4c: 0800dca5 .word 0x0800dca5 800da50: 0800dd61 .word 0x0800dd61 800da54: 0800de1d .word 0x0800de1d 800da58: 0800ded9 .word 0x0800ded9 800da5c: 0800dfa1 .word 0x0800dfa1 { case 0: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800da60: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800da64: f04f 30ff mov.w r0, #4294967295 800da68: f7f7 f9ae bl 8004dc8 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 800da6c: 88bb ldrh r3, [r7, #4] 800da6e: 330a adds r3, #10 800da70: b299 uxth r1, r3 800da72: 88fb ldrh r3, [r7, #6] 800da74: 2203 movs r2, #3 800da76: 4618 mov r0, r3 800da78: f7f7 fde2 bl 8005640 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800da7c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800da80: 4885 ldr r0, [pc, #532] ; (800dc98 ) 800da82: f7f7 f9a1 bl 8004dc8 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 800da86: 88fb ldrh r3, [r7, #6] 800da88: 3307 adds r3, #7 800da8a: b298 uxth r0, r3 800da8c: 88bb ldrh r3, [r7, #4] 800da8e: 3307 adds r3, #7 800da90: b29b uxth r3, r3 800da92: 2203 movs r2, #3 800da94: 4619 mov r1, r3 800da96: f7f7 fdd3 bl 8005640 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800da9a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800da9e: 487f ldr r0, [pc, #508] ; (800dc9c ) 800daa0: f7f7 f992 bl 8004dc8 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 800daa4: 88fb ldrh r3, [r7, #6] 800daa6: 330a adds r3, #10 800daa8: b29b uxth r3, r3 800daaa: 88b9 ldrh r1, [r7, #4] 800daac: 2203 movs r2, #3 800daae: 4618 mov r0, r3 800dab0: f7f7 fdc6 bl 8005640 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 800dab4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dab8: 4879 ldr r0, [pc, #484] ; (800dca0 ) 800daba: f7f7 f985 bl 8004dc8 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 800dabe: 88fb ldrh r3, [r7, #6] 800dac0: 3b07 subs r3, #7 800dac2: b298 uxth r0, r3 800dac4: 88bb ldrh r3, [r7, #4] 800dac6: 3307 adds r3, #7 800dac8: b29b uxth r3, r3 800daca: 2203 movs r2, #3 800dacc: 4619 mov r1, r3 800dace: f7f7 fdb7 bl 8005640 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 800dad2: 88fb ldrh r3, [r7, #6] 800dad4: 3b0a subs r3, #10 800dad6: b29b uxth r3, r3 800dad8: 88b9 ldrh r1, [r7, #4] 800dada: 2203 movs r2, #3 800dadc: 4618 mov r0, r3 800dade: f7f7 fdaf bl 8005640 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 800dae2: 88fb ldrh r3, [r7, #6] 800dae4: 3b07 subs r3, #7 800dae6: b298 uxth r0, r3 800dae8: 88bb ldrh r3, [r7, #4] 800daea: 3b07 subs r3, #7 800daec: b29b uxth r3, r3 800daee: 2203 movs r2, #3 800daf0: 4619 mov r1, r3 800daf2: f7f7 fda5 bl 8005640 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 800daf6: 88bb ldrh r3, [r7, #4] 800daf8: 3b0a subs r3, #10 800dafa: b299 uxth r1, r3 800dafc: 88fb ldrh r3, [r7, #6] 800dafe: 2203 movs r2, #3 800db00: 4618 mov r0, r3 800db02: f7f7 fd9d bl 8005640 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 800db06: 88fb ldrh r3, [r7, #6] 800db08: 3307 adds r3, #7 800db0a: b298 uxth r0, r3 800db0c: 88bb ldrh r3, [r7, #4] 800db0e: 3b07 subs r3, #7 800db10: b29b uxth r3, r3 800db12: 2203 movs r2, #3 800db14: 4619 mov r1, r3 800db16: f7f7 fd93 bl 8005640 break; 800db1a: e29f b.n 800e05c case 1: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800db1c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800db20: f04f 30ff mov.w r0, #4294967295 800db24: f7f7 f950 bl 8004dc8 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 800db28: 88fb ldrh r3, [r7, #6] 800db2a: 3b07 subs r3, #7 800db2c: b298 uxth r0, r3 800db2e: 88bb ldrh r3, [r7, #4] 800db30: 3307 adds r3, #7 800db32: b29b uxth r3, r3 800db34: 2203 movs r2, #3 800db36: 4619 mov r1, r3 800db38: f7f7 fd82 bl 8005640 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800db3c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800db40: 4855 ldr r0, [pc, #340] ; (800dc98 ) 800db42: f7f7 f941 bl 8004dc8 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 800db46: 88bb ldrh r3, [r7, #4] 800db48: 330a adds r3, #10 800db4a: b299 uxth r1, r3 800db4c: 88fb ldrh r3, [r7, #6] 800db4e: 2203 movs r2, #3 800db50: 4618 mov r0, r3 800db52: f7f7 fd75 bl 8005640 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800db56: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800db5a: 4850 ldr r0, [pc, #320] ; (800dc9c ) 800db5c: f7f7 f934 bl 8004dc8 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 800db60: 88fb ldrh r3, [r7, #6] 800db62: 3307 adds r3, #7 800db64: b298 uxth r0, r3 800db66: 88bb ldrh r3, [r7, #4] 800db68: 3307 adds r3, #7 800db6a: b29b uxth r3, r3 800db6c: 2203 movs r2, #3 800db6e: 4619 mov r1, r3 800db70: f7f7 fd66 bl 8005640 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 800db74: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800db78: 4849 ldr r0, [pc, #292] ; (800dca0 ) 800db7a: f7f7 f925 bl 8004dc8 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 800db7e: 88fb ldrh r3, [r7, #6] 800db80: 3b0a subs r3, #10 800db82: b29b uxth r3, r3 800db84: 88b9 ldrh r1, [r7, #4] 800db86: 2203 movs r2, #3 800db88: 4618 mov r0, r3 800db8a: f7f7 fd59 bl 8005640 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 800db8e: 88fb ldrh r3, [r7, #6] 800db90: 3b07 subs r3, #7 800db92: b298 uxth r0, r3 800db94: 88bb ldrh r3, [r7, #4] 800db96: 3b07 subs r3, #7 800db98: b29b uxth r3, r3 800db9a: 2203 movs r2, #3 800db9c: 4619 mov r1, r3 800db9e: f7f7 fd4f bl 8005640 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 800dba2: 88bb ldrh r3, [r7, #4] 800dba4: 3b0a subs r3, #10 800dba6: b299 uxth r1, r3 800dba8: 88fb ldrh r3, [r7, #6] 800dbaa: 2203 movs r2, #3 800dbac: 4618 mov r0, r3 800dbae: f7f7 fd47 bl 8005640 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 800dbb2: 88fb ldrh r3, [r7, #6] 800dbb4: 3307 adds r3, #7 800dbb6: b298 uxth r0, r3 800dbb8: 88bb ldrh r3, [r7, #4] 800dbba: 3b07 subs r3, #7 800dbbc: b29b uxth r3, r3 800dbbe: 2203 movs r2, #3 800dbc0: 4619 mov r1, r3 800dbc2: f7f7 fd3d bl 8005640 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 800dbc6: 88fb ldrh r3, [r7, #6] 800dbc8: 330a adds r3, #10 800dbca: b29b uxth r3, r3 800dbcc: 88b9 ldrh r1, [r7, #4] 800dbce: 2203 movs r2, #3 800dbd0: 4618 mov r0, r3 800dbd2: f7f7 fd35 bl 8005640 break; 800dbd6: e241 b.n 800e05c case 2: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800dbd8: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dbdc: f04f 30ff mov.w r0, #4294967295 800dbe0: f7f7 f8f2 bl 8004dc8 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 800dbe4: 88fb ldrh r3, [r7, #6] 800dbe6: 3b0a subs r3, #10 800dbe8: b29b uxth r3, r3 800dbea: 88b9 ldrh r1, [r7, #4] 800dbec: 2203 movs r2, #3 800dbee: 4618 mov r0, r3 800dbf0: f7f7 fd26 bl 8005640 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800dbf4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dbf8: 4827 ldr r0, [pc, #156] ; (800dc98 ) 800dbfa: f7f7 f8e5 bl 8004dc8 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 800dbfe: 88fb ldrh r3, [r7, #6] 800dc00: 3b07 subs r3, #7 800dc02: b298 uxth r0, r3 800dc04: 88bb ldrh r3, [r7, #4] 800dc06: 3307 adds r3, #7 800dc08: b29b uxth r3, r3 800dc0a: 2203 movs r2, #3 800dc0c: 4619 mov r1, r3 800dc0e: f7f7 fd17 bl 8005640 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800dc12: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dc16: 4821 ldr r0, [pc, #132] ; (800dc9c ) 800dc18: f7f7 f8d6 bl 8004dc8 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 800dc1c: 88bb ldrh r3, [r7, #4] 800dc1e: 330a adds r3, #10 800dc20: b299 uxth r1, r3 800dc22: 88fb ldrh r3, [r7, #6] 800dc24: 2203 movs r2, #3 800dc26: 4618 mov r0, r3 800dc28: f7f7 fd0a bl 8005640 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 800dc2c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dc30: 481b ldr r0, [pc, #108] ; (800dca0 ) 800dc32: f7f7 f8c9 bl 8004dc8 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 800dc36: 88fb ldrh r3, [r7, #6] 800dc38: 3b07 subs r3, #7 800dc3a: b298 uxth r0, r3 800dc3c: 88bb ldrh r3, [r7, #4] 800dc3e: 3b07 subs r3, #7 800dc40: b29b uxth r3, r3 800dc42: 2203 movs r2, #3 800dc44: 4619 mov r1, r3 800dc46: f7f7 fcfb bl 8005640 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 800dc4a: 88bb ldrh r3, [r7, #4] 800dc4c: 3b0a subs r3, #10 800dc4e: b299 uxth r1, r3 800dc50: 88fb ldrh r3, [r7, #6] 800dc52: 2203 movs r2, #3 800dc54: 4618 mov r0, r3 800dc56: f7f7 fcf3 bl 8005640 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 800dc5a: 88fb ldrh r3, [r7, #6] 800dc5c: 3307 adds r3, #7 800dc5e: b298 uxth r0, r3 800dc60: 88bb ldrh r3, [r7, #4] 800dc62: 3b07 subs r3, #7 800dc64: b29b uxth r3, r3 800dc66: 2203 movs r2, #3 800dc68: 4619 mov r1, r3 800dc6a: f7f7 fce9 bl 8005640 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 800dc6e: 88fb ldrh r3, [r7, #6] 800dc70: 330a adds r3, #10 800dc72: b29b uxth r3, r3 800dc74: 88b9 ldrh r1, [r7, #4] 800dc76: 2203 movs r2, #3 800dc78: 4618 mov r0, r3 800dc7a: f7f7 fce1 bl 8005640 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 800dc7e: 88fb ldrh r3, [r7, #6] 800dc80: 3307 adds r3, #7 800dc82: b298 uxth r0, r3 800dc84: 88bb ldrh r3, [r7, #4] 800dc86: 3307 adds r3, #7 800dc88: b29b uxth r3, r3 800dc8a: 2203 movs r2, #3 800dc8c: 4619 mov r1, r3 800dc8e: f7f7 fcd7 bl 8005640 break; 800dc92: e1e3 b.n 800e05c 800dc94: 2006ba80 .word 0x2006ba80 800dc98: ffd3d3d3 .word 0xffd3d3d3 800dc9c: ff808080 .word 0xff808080 800dca0: ff404040 .word 0xff404040 case 3: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800dca4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dca8: f04f 30ff mov.w r0, #4294967295 800dcac: f7f7 f88c bl 8004dc8 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 800dcb0: 88fb ldrh r3, [r7, #6] 800dcb2: 3b07 subs r3, #7 800dcb4: b298 uxth r0, r3 800dcb6: 88bb ldrh r3, [r7, #4] 800dcb8: 3b07 subs r3, #7 800dcba: b29b uxth r3, r3 800dcbc: 2203 movs r2, #3 800dcbe: 4619 mov r1, r3 800dcc0: f7f7 fcbe bl 8005640 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800dcc4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dcc8: 48b2 ldr r0, [pc, #712] ; (800df94 ) 800dcca: f7f7 f87d bl 8004dc8 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 800dcce: 88fb ldrh r3, [r7, #6] 800dcd0: 3b0a subs r3, #10 800dcd2: b29b uxth r3, r3 800dcd4: 88b9 ldrh r1, [r7, #4] 800dcd6: 2203 movs r2, #3 800dcd8: 4618 mov r0, r3 800dcda: f7f7 fcb1 bl 8005640 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800dcde: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dce2: 48ad ldr r0, [pc, #692] ; (800df98 ) 800dce4: f7f7 f870 bl 8004dc8 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 800dce8: 88fb ldrh r3, [r7, #6] 800dcea: 3b07 subs r3, #7 800dcec: b298 uxth r0, r3 800dcee: 88bb ldrh r3, [r7, #4] 800dcf0: 3307 adds r3, #7 800dcf2: b29b uxth r3, r3 800dcf4: 2203 movs r2, #3 800dcf6: 4619 mov r1, r3 800dcf8: f7f7 fca2 bl 8005640 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 800dcfc: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dd00: 48a6 ldr r0, [pc, #664] ; (800df9c ) 800dd02: f7f7 f861 bl 8004dc8 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 800dd06: 88bb ldrh r3, [r7, #4] 800dd08: 3b0a subs r3, #10 800dd0a: b299 uxth r1, r3 800dd0c: 88fb ldrh r3, [r7, #6] 800dd0e: 2203 movs r2, #3 800dd10: 4618 mov r0, r3 800dd12: f7f7 fc95 bl 8005640 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 800dd16: 88fb ldrh r3, [r7, #6] 800dd18: 3307 adds r3, #7 800dd1a: b298 uxth r0, r3 800dd1c: 88bb ldrh r3, [r7, #4] 800dd1e: 3b07 subs r3, #7 800dd20: b29b uxth r3, r3 800dd22: 2203 movs r2, #3 800dd24: 4619 mov r1, r3 800dd26: f7f7 fc8b bl 8005640 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 800dd2a: 88fb ldrh r3, [r7, #6] 800dd2c: 330a adds r3, #10 800dd2e: b29b uxth r3, r3 800dd30: 88b9 ldrh r1, [r7, #4] 800dd32: 2203 movs r2, #3 800dd34: 4618 mov r0, r3 800dd36: f7f7 fc83 bl 8005640 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 800dd3a: 88fb ldrh r3, [r7, #6] 800dd3c: 3307 adds r3, #7 800dd3e: b298 uxth r0, r3 800dd40: 88bb ldrh r3, [r7, #4] 800dd42: 3307 adds r3, #7 800dd44: b29b uxth r3, r3 800dd46: 2203 movs r2, #3 800dd48: 4619 mov r1, r3 800dd4a: f7f7 fc79 bl 8005640 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 800dd4e: 88bb ldrh r3, [r7, #4] 800dd50: 330a adds r3, #10 800dd52: b299 uxth r1, r3 800dd54: 88fb ldrh r3, [r7, #6] 800dd56: 2203 movs r2, #3 800dd58: 4618 mov r0, r3 800dd5a: f7f7 fc71 bl 8005640 break; 800dd5e: e17d b.n 800e05c case 4: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800dd60: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dd64: f04f 30ff mov.w r0, #4294967295 800dd68: f7f7 f82e bl 8004dc8 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 800dd6c: 88bb ldrh r3, [r7, #4] 800dd6e: 3b0a subs r3, #10 800dd70: b299 uxth r1, r3 800dd72: 88fb ldrh r3, [r7, #6] 800dd74: 2203 movs r2, #3 800dd76: 4618 mov r0, r3 800dd78: f7f7 fc62 bl 8005640 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800dd7c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dd80: 4884 ldr r0, [pc, #528] ; (800df94 ) 800dd82: f7f7 f821 bl 8004dc8 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 800dd86: 88fb ldrh r3, [r7, #6] 800dd88: 3b07 subs r3, #7 800dd8a: b298 uxth r0, r3 800dd8c: 88bb ldrh r3, [r7, #4] 800dd8e: 3b07 subs r3, #7 800dd90: b29b uxth r3, r3 800dd92: 2203 movs r2, #3 800dd94: 4619 mov r1, r3 800dd96: f7f7 fc53 bl 8005640 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800dd9a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dd9e: 487e ldr r0, [pc, #504] ; (800df98 ) 800dda0: f7f7 f812 bl 8004dc8 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 800dda4: 88fb ldrh r3, [r7, #6] 800dda6: 3b0a subs r3, #10 800dda8: b29b uxth r3, r3 800ddaa: 88b9 ldrh r1, [r7, #4] 800ddac: 2203 movs r2, #3 800ddae: 4618 mov r0, r3 800ddb0: f7f7 fc46 bl 8005640 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 800ddb4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800ddb8: 4878 ldr r0, [pc, #480] ; (800df9c ) 800ddba: f7f7 f805 bl 8004dc8 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 800ddbe: 88fb ldrh r3, [r7, #6] 800ddc0: 3307 adds r3, #7 800ddc2: b298 uxth r0, r3 800ddc4: 88bb ldrh r3, [r7, #4] 800ddc6: 3b07 subs r3, #7 800ddc8: b29b uxth r3, r3 800ddca: 2203 movs r2, #3 800ddcc: 4619 mov r1, r3 800ddce: f7f7 fc37 bl 8005640 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 800ddd2: 88fb ldrh r3, [r7, #6] 800ddd4: 330a adds r3, #10 800ddd6: b29b uxth r3, r3 800ddd8: 88b9 ldrh r1, [r7, #4] 800ddda: 2203 movs r2, #3 800dddc: 4618 mov r0, r3 800ddde: f7f7 fc2f bl 8005640 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 800dde2: 88fb ldrh r3, [r7, #6] 800dde4: 3307 adds r3, #7 800dde6: b298 uxth r0, r3 800dde8: 88bb ldrh r3, [r7, #4] 800ddea: 3307 adds r3, #7 800ddec: b29b uxth r3, r3 800ddee: 2203 movs r2, #3 800ddf0: 4619 mov r1, r3 800ddf2: f7f7 fc25 bl 8005640 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 800ddf6: 88bb ldrh r3, [r7, #4] 800ddf8: 330a adds r3, #10 800ddfa: b299 uxth r1, r3 800ddfc: 88fb ldrh r3, [r7, #6] 800ddfe: 2203 movs r2, #3 800de00: 4618 mov r0, r3 800de02: f7f7 fc1d bl 8005640 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 800de06: 88fb ldrh r3, [r7, #6] 800de08: 3b07 subs r3, #7 800de0a: b298 uxth r0, r3 800de0c: 88bb ldrh r3, [r7, #4] 800de0e: 3307 adds r3, #7 800de10: b29b uxth r3, r3 800de12: 2203 movs r2, #3 800de14: 4619 mov r1, r3 800de16: f7f7 fc13 bl 8005640 break; 800de1a: e11f b.n 800e05c case 5: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800de1c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800de20: f04f 30ff mov.w r0, #4294967295 800de24: f7f6 ffd0 bl 8004dc8 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 800de28: 88fb ldrh r3, [r7, #6] 800de2a: 3307 adds r3, #7 800de2c: b298 uxth r0, r3 800de2e: 88bb ldrh r3, [r7, #4] 800de30: 3b07 subs r3, #7 800de32: b29b uxth r3, r3 800de34: 2203 movs r2, #3 800de36: 4619 mov r1, r3 800de38: f7f7 fc02 bl 8005640 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800de3c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800de40: 4854 ldr r0, [pc, #336] ; (800df94 ) 800de42: f7f6 ffc1 bl 8004dc8 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 800de46: 88bb ldrh r3, [r7, #4] 800de48: 3b0a subs r3, #10 800de4a: b299 uxth r1, r3 800de4c: 88fb ldrh r3, [r7, #6] 800de4e: 2203 movs r2, #3 800de50: 4618 mov r0, r3 800de52: f7f7 fbf5 bl 8005640 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800de56: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800de5a: 484f ldr r0, [pc, #316] ; (800df98 ) 800de5c: f7f6 ffb4 bl 8004dc8 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 800de60: 88fb ldrh r3, [r7, #6] 800de62: 3b07 subs r3, #7 800de64: b298 uxth r0, r3 800de66: 88bb ldrh r3, [r7, #4] 800de68: 3b07 subs r3, #7 800de6a: b29b uxth r3, r3 800de6c: 2203 movs r2, #3 800de6e: 4619 mov r1, r3 800de70: f7f7 fbe6 bl 8005640 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 800de74: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800de78: 4848 ldr r0, [pc, #288] ; (800df9c ) 800de7a: f7f6 ffa5 bl 8004dc8 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 800de7e: 88fb ldrh r3, [r7, #6] 800de80: 330a adds r3, #10 800de82: b29b uxth r3, r3 800de84: 88b9 ldrh r1, [r7, #4] 800de86: 2203 movs r2, #3 800de88: 4618 mov r0, r3 800de8a: f7f7 fbd9 bl 8005640 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 800de8e: 88fb ldrh r3, [r7, #6] 800de90: 3307 adds r3, #7 800de92: b298 uxth r0, r3 800de94: 88bb ldrh r3, [r7, #4] 800de96: 3307 adds r3, #7 800de98: b29b uxth r3, r3 800de9a: 2203 movs r2, #3 800de9c: 4619 mov r1, r3 800de9e: f7f7 fbcf bl 8005640 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 800dea2: 88bb ldrh r3, [r7, #4] 800dea4: 330a adds r3, #10 800dea6: b299 uxth r1, r3 800dea8: 88fb ldrh r3, [r7, #6] 800deaa: 2203 movs r2, #3 800deac: 4618 mov r0, r3 800deae: f7f7 fbc7 bl 8005640 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 800deb2: 88fb ldrh r3, [r7, #6] 800deb4: 3b07 subs r3, #7 800deb6: b298 uxth r0, r3 800deb8: 88bb ldrh r3, [r7, #4] 800deba: 3307 adds r3, #7 800debc: b29b uxth r3, r3 800debe: 2203 movs r2, #3 800dec0: 4619 mov r1, r3 800dec2: f7f7 fbbd bl 8005640 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 800dec6: 88fb ldrh r3, [r7, #6] 800dec8: 3b0a subs r3, #10 800deca: b29b uxth r3, r3 800decc: 88b9 ldrh r1, [r7, #4] 800dece: 2203 movs r2, #3 800ded0: 4618 mov r0, r3 800ded2: f7f7 fbb5 bl 8005640 break; 800ded6: e0c1 b.n 800e05c case 6: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800ded8: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dedc: f04f 30ff mov.w r0, #4294967295 800dee0: f7f6 ff72 bl 8004dc8 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 800dee4: 88fb ldrh r3, [r7, #6] 800dee6: 330a adds r3, #10 800dee8: b29b uxth r3, r3 800deea: 88b9 ldrh r1, [r7, #4] 800deec: 2203 movs r2, #3 800deee: 4618 mov r0, r3 800def0: f7f7 fba6 bl 8005640 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800def4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800def8: 4826 ldr r0, [pc, #152] ; (800df94 ) 800defa: f7f6 ff65 bl 8004dc8 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 800defe: 88fb ldrh r3, [r7, #6] 800df00: 3307 adds r3, #7 800df02: b298 uxth r0, r3 800df04: 88bb ldrh r3, [r7, #4] 800df06: 3b07 subs r3, #7 800df08: b29b uxth r3, r3 800df0a: 2203 movs r2, #3 800df0c: 4619 mov r1, r3 800df0e: f7f7 fb97 bl 8005640 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800df12: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800df16: 4820 ldr r0, [pc, #128] ; (800df98 ) 800df18: f7f6 ff56 bl 8004dc8 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 800df1c: 88bb ldrh r3, [r7, #4] 800df1e: 3b0a subs r3, #10 800df20: b299 uxth r1, r3 800df22: 88fb ldrh r3, [r7, #6] 800df24: 2203 movs r2, #3 800df26: 4618 mov r0, r3 800df28: f7f7 fb8a bl 8005640 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 800df2c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800df30: 481a ldr r0, [pc, #104] ; (800df9c ) 800df32: f7f6 ff49 bl 8004dc8 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 800df36: 88fb ldrh r3, [r7, #6] 800df38: 3307 adds r3, #7 800df3a: b298 uxth r0, r3 800df3c: 88bb ldrh r3, [r7, #4] 800df3e: 3307 adds r3, #7 800df40: b29b uxth r3, r3 800df42: 2203 movs r2, #3 800df44: 4619 mov r1, r3 800df46: f7f7 fb7b bl 8005640 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 800df4a: 88bb ldrh r3, [r7, #4] 800df4c: 330a adds r3, #10 800df4e: b299 uxth r1, r3 800df50: 88fb ldrh r3, [r7, #6] 800df52: 2203 movs r2, #3 800df54: 4618 mov r0, r3 800df56: f7f7 fb73 bl 8005640 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 800df5a: 88fb ldrh r3, [r7, #6] 800df5c: 3b07 subs r3, #7 800df5e: b298 uxth r0, r3 800df60: 88bb ldrh r3, [r7, #4] 800df62: 3307 adds r3, #7 800df64: b29b uxth r3, r3 800df66: 2203 movs r2, #3 800df68: 4619 mov r1, r3 800df6a: f7f7 fb69 bl 8005640 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 800df6e: 88fb ldrh r3, [r7, #6] 800df70: 3b0a subs r3, #10 800df72: b29b uxth r3, r3 800df74: 88b9 ldrh r1, [r7, #4] 800df76: 2203 movs r2, #3 800df78: 4618 mov r0, r3 800df7a: f7f7 fb61 bl 8005640 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 800df7e: 88fb ldrh r3, [r7, #6] 800df80: 3b07 subs r3, #7 800df82: b298 uxth r0, r3 800df84: 88bb ldrh r3, [r7, #4] 800df86: 3b07 subs r3, #7 800df88: b29b uxth r3, r3 800df8a: 2203 movs r2, #3 800df8c: 4619 mov r1, r3 800df8e: f7f7 fb57 bl 8005640 break; 800df92: e063 b.n 800e05c 800df94: ffd3d3d3 .word 0xffd3d3d3 800df98: ff808080 .word 0xff808080 800df9c: ff404040 .word 0xff404040 case 7: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800dfa0: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dfa4: f04f 30ff mov.w r0, #4294967295 800dfa8: f7f6 ff0e bl 8004dc8 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 800dfac: 88fb ldrh r3, [r7, #6] 800dfae: 3307 adds r3, #7 800dfb0: b298 uxth r0, r3 800dfb2: 88bb ldrh r3, [r7, #4] 800dfb4: 3307 adds r3, #7 800dfb6: b29b uxth r3, r3 800dfb8: 2203 movs r2, #3 800dfba: 4619 mov r1, r3 800dfbc: f7f7 fb40 bl 8005640 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800dfc0: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dfc4: 482d ldr r0, [pc, #180] ; (800e07c ) 800dfc6: f7f6 feff bl 8004dc8 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 800dfca: 88fb ldrh r3, [r7, #6] 800dfcc: 330a adds r3, #10 800dfce: b29b uxth r3, r3 800dfd0: 88b9 ldrh r1, [r7, #4] 800dfd2: 2203 movs r2, #3 800dfd4: 4618 mov r0, r3 800dfd6: f7f7 fb33 bl 8005640 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800dfda: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dfde: 4828 ldr r0, [pc, #160] ; (800e080 ) 800dfe0: f7f6 fef2 bl 8004dc8 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 800dfe4: 88fb ldrh r3, [r7, #6] 800dfe6: 3307 adds r3, #7 800dfe8: b298 uxth r0, r3 800dfea: 88bb ldrh r3, [r7, #4] 800dfec: 3b07 subs r3, #7 800dfee: b29b uxth r3, r3 800dff0: 2203 movs r2, #3 800dff2: 4619 mov r1, r3 800dff4: f7f7 fb24 bl 8005640 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 800dff8: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dffc: 4821 ldr r0, [pc, #132] ; (800e084 ) 800dffe: f7f6 fee3 bl 8004dc8 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 800e002: 88bb ldrh r3, [r7, #4] 800e004: 330a adds r3, #10 800e006: b299 uxth r1, r3 800e008: 88fb ldrh r3, [r7, #6] 800e00a: 2203 movs r2, #3 800e00c: 4618 mov r0, r3 800e00e: f7f7 fb17 bl 8005640 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 800e012: 88fb ldrh r3, [r7, #6] 800e014: 3b07 subs r3, #7 800e016: b298 uxth r0, r3 800e018: 88bb ldrh r3, [r7, #4] 800e01a: 3307 adds r3, #7 800e01c: b29b uxth r3, r3 800e01e: 2203 movs r2, #3 800e020: 4619 mov r1, r3 800e022: f7f7 fb0d bl 8005640 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 800e026: 88fb ldrh r3, [r7, #6] 800e028: 3b0a subs r3, #10 800e02a: b29b uxth r3, r3 800e02c: 88b9 ldrh r1, [r7, #4] 800e02e: 2203 movs r2, #3 800e030: 4618 mov r0, r3 800e032: f7f7 fb05 bl 8005640 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 800e036: 88fb ldrh r3, [r7, #6] 800e038: 3b07 subs r3, #7 800e03a: b298 uxth r0, r3 800e03c: 88bb ldrh r3, [r7, #4] 800e03e: 3b07 subs r3, #7 800e040: b29b uxth r3, r3 800e042: 2203 movs r2, #3 800e044: 4619 mov r1, r3 800e046: f7f7 fafb bl 8005640 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 800e04a: 88bb ldrh r3, [r7, #4] 800e04c: 3b0a subs r3, #10 800e04e: b299 uxth r1, r3 800e050: 88fb ldrh r3, [r7, #6] 800e052: 2203 movs r2, #3 800e054: 4618 mov r0, r3 800e056: f7f7 faf3 bl 8005640 break; 800e05a: bf00 nop } rotate++; 800e05c: 4b0a ldr r3, [pc, #40] ; (800e088 ) 800e05e: 681b ldr r3, [r3, #0] 800e060: 3301 adds r3, #1 800e062: 4a09 ldr r2, [pc, #36] ; (800e088 ) 800e064: 6013 str r3, [r2, #0] if(rotate >= 8) 800e066: 4b08 ldr r3, [pc, #32] ; (800e088 ) 800e068: 681b ldr r3, [r3, #0] 800e06a: 2b07 cmp r3, #7 800e06c: d902 bls.n 800e074 rotate = 0; 800e06e: 4b06 ldr r3, [pc, #24] ; (800e088 ) 800e070: 2200 movs r2, #0 800e072: 601a str r2, [r3, #0] } 800e074: bf00 nop 800e076: 3708 adds r7, #8 800e078: 46bd mov sp, r7 800e07a: bd80 pop {r7, pc} 800e07c: ffd3d3d3 .word 0xffd3d3d3 800e080: ff808080 .word 0xff808080 800e084: ff404040 .word 0xff404040 800e088: 2006ba80 .word 0x2006ba80 0800e08c : void DrawSpinner(uint16_t x, uint16_t y) { 800e08c: b580 push {r7, lr} 800e08e: b082 sub sp, #8 800e090: af00 add r7, sp, #0 800e092: 4603 mov r3, r0 800e094: 460a mov r2, r1 800e096: 80fb strh r3, [r7, #6] 800e098: 4613 mov r3, r2 800e09a: 80bb strh r3, [r7, #4] //if(!clbr) //{ spinner++; 800e09c: 4b0b ldr r3, [pc, #44] ; (800e0cc ) 800e09e: 781b ldrb r3, [r3, #0] 800e0a0: 3301 adds r3, #1 800e0a2: b2da uxtb r2, r3 800e0a4: 4b09 ldr r3, [pc, #36] ; (800e0cc ) 800e0a6: 701a strb r2, [r3, #0] if(spinner >= 10) 800e0a8: 4b08 ldr r3, [pc, #32] ; (800e0cc ) 800e0aa: 781b ldrb r3, [r3, #0] 800e0ac: 2b09 cmp r3, #9 800e0ae: d902 bls.n 800e0b6 spinner = 0; 800e0b0: 4b06 ldr r3, [pc, #24] ; (800e0cc ) 800e0b2: 2200 movs r2, #0 800e0b4: 701a strb r2, [r3, #0] DrawMySpinner(x, y); 800e0b6: 88ba ldrh r2, [r7, #4] 800e0b8: 88fb ldrh r3, [r7, #6] 800e0ba: 4611 mov r1, r2 800e0bc: 4618 mov r0, r3 800e0be: f7ff fcaf bl 800da20 //} } 800e0c2: bf00 nop 800e0c4: 3708 adds r7, #8 800e0c6: 46bd mov sp, r7 800e0c8: bd80 pop {r7, pc} 800e0ca: bf00 nop 800e0cc: 2006ba75 .word 0x2006ba75 0800e0d0 : } void DrawChannel_4(uint8_t ch, uint32_t blk) { 800e0d0: b5b0 push {r4, r5, r7, lr} 800e0d2: b08e sub sp, #56 ; 0x38 800e0d4: af00 add r7, sp, #0 800e0d6: 4603 mov r3, r0 800e0d8: 6039 str r1, [r7, #0] 800e0da: 71fb strb r3, [r7, #7] char *p8; if(pardata.amplif[ch].SENS <= 0.0f) { 800e0dc: 79fb ldrb r3, [r7, #7] 800e0de: 4ac1 ldr r2, [pc, #772] ; (800e3e4 ) 800e0e0: 015b lsls r3, r3, #5 800e0e2: 4413 add r3, r2 800e0e4: 3318 adds r3, #24 800e0e6: edd3 7a00 vldr s15, [r3] 800e0ea: eef5 7ac0 vcmpe.f32 s15, #0.0 800e0ee: eef1 fa10 vmrs APSR_nzcv, fpscr 800e0f2: d80a bhi.n 800e10a pardata.amplif[ch].SENS = 1.0f; 800e0f4: 79fb ldrb r3, [r7, #7] 800e0f6: 4abb ldr r2, [pc, #748] ; (800e3e4 ) 800e0f8: 015b lsls r3, r3, #5 800e0fa: 4413 add r3, r2 800e0fc: 3318 adds r3, #24 800e0fe: f04f 527e mov.w r2, #1065353216 ; 0x3f800000 800e102: 601a str r2, [r3, #0] s = 10000; 800e104: f242 7310 movw r3, #10000 ; 0x2710 800e108: 637b str r3, [r7, #52] ; 0x34 } if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10.0f) { 800e10a: 4bb7 ldr r3, [pc, #732] ; (800e3e8 ) 800e10c: 681b ldr r3, [r3, #0] 800e10e: 4ab5 ldr r2, [pc, #724] ; (800e3e4 ) 800e110: 015b lsls r3, r3, #5 800e112: 4413 add r3, r2 800e114: 3318 adds r3, #24 800e116: edd3 7a00 vldr s15, [r3] 800e11a: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 800e11e: eef4 7ac7 vcmpe.f32 s15, s14 800e122: eef1 fa10 vmrs APSR_nzcv, fpscr 800e126: d517 bpl.n 800e158 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10000.0f) + 0.5f); 800e128: 4baf ldr r3, [pc, #700] ; (800e3e8 ) 800e12a: 681b ldr r3, [r3, #0] 800e12c: 4aad ldr r2, [pc, #692] ; (800e3e4 ) 800e12e: 015b lsls r3, r3, #5 800e130: 4413 add r3, r2 800e132: 3318 adds r3, #24 800e134: edd3 7a00 vldr s15, [r3] 800e138: ed9f 7aac vldr s14, [pc, #688] ; 800e3ec 800e13c: ee67 7a87 vmul.f32 s15, s15, s14 800e140: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 800e144: ee77 7a87 vadd.f32 s15, s15, s14 800e148: eefc 7ae7 vcvt.u32.f32 s15, s15 800e14c: ee17 3a90 vmov r3, s15 800e150: 637b str r3, [r7, #52] ; 0x34 ipt = 4; 800e152: 2304 movs r3, #4 800e154: 62bb str r3, [r7, #40] ; 0x28 800e156: e0b2 b.n 800e2be } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100.0f) { 800e158: 4ba3 ldr r3, [pc, #652] ; (800e3e8 ) 800e15a: 681b ldr r3, [r3, #0] 800e15c: 4aa1 ldr r2, [pc, #644] ; (800e3e4 ) 800e15e: 015b lsls r3, r3, #5 800e160: 4413 add r3, r2 800e162: 3318 adds r3, #24 800e164: edd3 7a00 vldr s15, [r3] 800e168: ed9f 7aa1 vldr s14, [pc, #644] ; 800e3f0 800e16c: eef4 7ac7 vcmpe.f32 s15, s14 800e170: eef1 fa10 vmrs APSR_nzcv, fpscr 800e174: d517 bpl.n 800e1a6 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 1000.0f) + 0.5f); 800e176: 4b9c ldr r3, [pc, #624] ; (800e3e8 ) 800e178: 681b ldr r3, [r3, #0] 800e17a: 4a9a ldr r2, [pc, #616] ; (800e3e4 ) 800e17c: 015b lsls r3, r3, #5 800e17e: 4413 add r3, r2 800e180: 3318 adds r3, #24 800e182: edd3 7a00 vldr s15, [r3] 800e186: ed9f 7a9b vldr s14, [pc, #620] ; 800e3f4 800e18a: ee67 7a87 vmul.f32 s15, s15, s14 800e18e: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 800e192: ee77 7a87 vadd.f32 s15, s15, s14 800e196: eefc 7ae7 vcvt.u32.f32 s15, s15 800e19a: ee17 3a90 vmov r3, s15 800e19e: 637b str r3, [r7, #52] ; 0x34 ipt = 3; 800e1a0: 2303 movs r3, #3 800e1a2: 62bb str r3, [r7, #40] ; 0x28 800e1a4: e08b b.n 800e2be } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 1000.0f) { 800e1a6: 4b90 ldr r3, [pc, #576] ; (800e3e8 ) 800e1a8: 681b ldr r3, [r3, #0] 800e1aa: 4a8e ldr r2, [pc, #568] ; (800e3e4 ) 800e1ac: 015b lsls r3, r3, #5 800e1ae: 4413 add r3, r2 800e1b0: 3318 adds r3, #24 800e1b2: edd3 7a00 vldr s15, [r3] 800e1b6: ed9f 7a8f vldr s14, [pc, #572] ; 800e3f4 800e1ba: eef4 7ac7 vcmpe.f32 s15, s14 800e1be: eef1 fa10 vmrs APSR_nzcv, fpscr 800e1c2: d517 bpl.n 800e1f4 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 100.0f) + 0.5f); 800e1c4: 4b88 ldr r3, [pc, #544] ; (800e3e8 ) 800e1c6: 681b ldr r3, [r3, #0] 800e1c8: 4a86 ldr r2, [pc, #536] ; (800e3e4 ) 800e1ca: 015b lsls r3, r3, #5 800e1cc: 4413 add r3, r2 800e1ce: 3318 adds r3, #24 800e1d0: edd3 7a00 vldr s15, [r3] 800e1d4: ed9f 7a86 vldr s14, [pc, #536] ; 800e3f0 800e1d8: ee67 7a87 vmul.f32 s15, s15, s14 800e1dc: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 800e1e0: ee77 7a87 vadd.f32 s15, s15, s14 800e1e4: eefc 7ae7 vcvt.u32.f32 s15, s15 800e1e8: ee17 3a90 vmov r3, s15 800e1ec: 637b str r3, [r7, #52] ; 0x34 ipt = 2; 800e1ee: 2302 movs r3, #2 800e1f0: 62bb str r3, [r7, #40] ; 0x28 800e1f2: e064 b.n 800e2be } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10000.0f) { 800e1f4: 4b7c ldr r3, [pc, #496] ; (800e3e8 ) 800e1f6: 681b ldr r3, [r3, #0] 800e1f8: 4a7a ldr r2, [pc, #488] ; (800e3e4 ) 800e1fa: 015b lsls r3, r3, #5 800e1fc: 4413 add r3, r2 800e1fe: 3318 adds r3, #24 800e200: edd3 7a00 vldr s15, [r3] 800e204: ed9f 7a79 vldr s14, [pc, #484] ; 800e3ec 800e208: eef4 7ac7 vcmpe.f32 s15, s14 800e20c: eef1 fa10 vmrs APSR_nzcv, fpscr 800e210: d517 bpl.n 800e242 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10.0f) + 0.5f); 800e212: 4b75 ldr r3, [pc, #468] ; (800e3e8 ) 800e214: 681b ldr r3, [r3, #0] 800e216: 4a73 ldr r2, [pc, #460] ; (800e3e4 ) 800e218: 015b lsls r3, r3, #5 800e21a: 4413 add r3, r2 800e21c: 3318 adds r3, #24 800e21e: edd3 7a00 vldr s15, [r3] 800e222: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 800e226: ee67 7a87 vmul.f32 s15, s15, s14 800e22a: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 800e22e: ee77 7a87 vadd.f32 s15, s15, s14 800e232: eefc 7ae7 vcvt.u32.f32 s15, s15 800e236: ee17 3a90 vmov r3, s15 800e23a: 637b str r3, [r7, #52] ; 0x34 ipt = 1; 800e23c: 2301 movs r3, #1 800e23e: 62bb str r3, [r7, #40] ; 0x28 800e240: e03d b.n 800e2be } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) { 800e242: 4b69 ldr r3, [pc, #420] ; (800e3e8 ) 800e244: 681b ldr r3, [r3, #0] 800e246: 4a67 ldr r2, [pc, #412] ; (800e3e4 ) 800e248: 015b lsls r3, r3, #5 800e24a: 4413 add r3, r2 800e24c: 3318 adds r3, #24 800e24e: edd3 7a00 vldr s15, [r3] 800e252: ed9f 7a69 vldr s14, [pc, #420] ; 800e3f8 800e256: eef4 7ac7 vcmpe.f32 s15, s14 800e25a: eef1 fa10 vmrs APSR_nzcv, fpscr 800e25e: d513 bpl.n 800e288 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS) + 0.5f); 800e260: 4b61 ldr r3, [pc, #388] ; (800e3e8 ) 800e262: 681b ldr r3, [r3, #0] 800e264: 4a5f ldr r2, [pc, #380] ; (800e3e4 ) 800e266: 015b lsls r3, r3, #5 800e268: 4413 add r3, r2 800e26a: 3318 adds r3, #24 800e26c: edd3 7a00 vldr s15, [r3] 800e270: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 800e274: ee77 7a87 vadd.f32 s15, s15, s14 800e278: eefc 7ae7 vcvt.u32.f32 s15, s15 800e27c: ee17 3a90 vmov r3, s15 800e280: 637b str r3, [r7, #52] ; 0x34 ipt = 0; 800e282: 2300 movs r3, #0 800e284: 62bb str r3, [r7, #40] ; 0x28 800e286: e01a b.n 800e2be } else if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 800e288: 4b57 ldr r3, [pc, #348] ; (800e3e8 ) 800e28a: 681b ldr r3, [r3, #0] 800e28c: 4a55 ldr r2, [pc, #340] ; (800e3e4 ) 800e28e: 015b lsls r3, r3, #5 800e290: 4413 add r3, r2 800e292: 3318 adds r3, #24 800e294: edd3 7a00 vldr s15, [r3] 800e298: ed9f 7a57 vldr s14, [pc, #348] ; 800e3f8 800e29c: eef4 7ac7 vcmpe.f32 s15, s14 800e2a0: eef1 fa10 vmrs APSR_nzcv, fpscr 800e2a4: db0b blt.n 800e2be pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 800e2a6: 4b50 ldr r3, [pc, #320] ; (800e3e8 ) 800e2a8: 681b ldr r3, [r3, #0] 800e2aa: 4a4e ldr r2, [pc, #312] ; (800e3e4 ) 800e2ac: 015b lsls r3, r3, #5 800e2ae: 4413 add r3, r2 800e2b0: 3318 adds r3, #24 800e2b2: 4a52 ldr r2, [pc, #328] ; (800e3fc ) 800e2b4: 601a str r2, [r3, #0] s = 99999; 800e2b6: 4b52 ldr r3, [pc, #328] ; (800e400 ) 800e2b8: 637b str r3, [r7, #52] ; 0x34 ipt = 0; 800e2ba: 2300 movs r3, #0 800e2bc: 62bb str r3, [r7, #40] ; 0x28 } ikdt = (s / 10000); 800e2be: 6b7b ldr r3, [r7, #52] ; 0x34 800e2c0: 4a50 ldr r2, [pc, #320] ; (800e404 ) 800e2c2: fba2 2303 umull r2, r3, r2, r3 800e2c6: 0b5b lsrs r3, r3, #13 800e2c8: 627b str r3, [r7, #36] ; 0x24 ikt = (s % 10000 / 1000); 800e2ca: 6b7a ldr r2, [r7, #52] ; 0x34 800e2cc: 4b4d ldr r3, [pc, #308] ; (800e404 ) 800e2ce: fba3 1302 umull r1, r3, r3, r2 800e2d2: 0b5b lsrs r3, r3, #13 800e2d4: f242 7110 movw r1, #10000 ; 0x2710 800e2d8: fb01 f303 mul.w r3, r1, r3 800e2dc: 1ad3 subs r3, r2, r3 800e2de: 4a4a ldr r2, [pc, #296] ; (800e408 ) 800e2e0: fba2 2303 umull r2, r3, r2, r3 800e2e4: 099b lsrs r3, r3, #6 800e2e6: 623b str r3, [r7, #32] iks = (s % 10000 % 1000 / 100); 800e2e8: 6b7a ldr r2, [r7, #52] ; 0x34 800e2ea: 4b46 ldr r3, [pc, #280] ; (800e404 ) 800e2ec: fba3 1302 umull r1, r3, r3, r2 800e2f0: 0b5b lsrs r3, r3, #13 800e2f2: f242 7110 movw r1, #10000 ; 0x2710 800e2f6: fb01 f303 mul.w r3, r1, r3 800e2fa: 1ad3 subs r3, r2, r3 800e2fc: 4a42 ldr r2, [pc, #264] ; (800e408 ) 800e2fe: fba2 1203 umull r1, r2, r2, r3 800e302: 0992 lsrs r2, r2, #6 800e304: f44f 717a mov.w r1, #1000 ; 0x3e8 800e308: fb01 f202 mul.w r2, r1, r2 800e30c: 1a9a subs r2, r3, r2 800e30e: 4b3f ldr r3, [pc, #252] ; (800e40c ) 800e310: fba3 2302 umull r2, r3, r3, r2 800e314: 095b lsrs r3, r3, #5 800e316: 61fb str r3, [r7, #28] ikd = (s % 10000 % 1000 % 100 / 10); 800e318: 6b7b ldr r3, [r7, #52] ; 0x34 800e31a: 4a3a ldr r2, [pc, #232] ; (800e404 ) 800e31c: fba2 1203 umull r1, r2, r2, r3 800e320: 0b52 lsrs r2, r2, #13 800e322: f242 7110 movw r1, #10000 ; 0x2710 800e326: fb01 f202 mul.w r2, r1, r2 800e32a: 1a9a subs r2, r3, r2 800e32c: 4b36 ldr r3, [pc, #216] ; (800e408 ) 800e32e: fba3 1302 umull r1, r3, r3, r2 800e332: 099b lsrs r3, r3, #6 800e334: f44f 717a mov.w r1, #1000 ; 0x3e8 800e338: fb01 f303 mul.w r3, r1, r3 800e33c: 1ad3 subs r3, r2, r3 800e33e: 4a33 ldr r2, [pc, #204] ; (800e40c ) 800e340: fba2 1203 umull r1, r2, r2, r3 800e344: 0952 lsrs r2, r2, #5 800e346: 2164 movs r1, #100 ; 0x64 800e348: fb01 f202 mul.w r2, r1, r2 800e34c: 1a9a subs r2, r3, r2 800e34e: 4b30 ldr r3, [pc, #192] ; (800e410 ) 800e350: fba3 2302 umull r2, r3, r3, r2 800e354: 08db lsrs r3, r3, #3 800e356: 61bb str r3, [r7, #24] ike = (s % 10000 % 1000 % 100 % 10); 800e358: 6b7b ldr r3, [r7, #52] ; 0x34 800e35a: 4a2a ldr r2, [pc, #168] ; (800e404 ) 800e35c: fba2 1203 umull r1, r2, r2, r3 800e360: 0b52 lsrs r2, r2, #13 800e362: f242 7110 movw r1, #10000 ; 0x2710 800e366: fb01 f202 mul.w r2, r1, r2 800e36a: 1a9a subs r2, r3, r2 800e36c: 4b26 ldr r3, [pc, #152] ; (800e408 ) 800e36e: fba3 1302 umull r1, r3, r3, r2 800e372: 099b lsrs r3, r3, #6 800e374: f44f 717a mov.w r1, #1000 ; 0x3e8 800e378: fb01 f303 mul.w r3, r1, r3 800e37c: 1ad3 subs r3, r2, r3 800e37e: 4a23 ldr r2, [pc, #140] ; (800e40c ) 800e380: fba2 1203 umull r1, r2, r2, r3 800e384: 0952 lsrs r2, r2, #5 800e386: 2164 movs r1, #100 ; 0x64 800e388: fb01 f202 mul.w r2, r1, r2 800e38c: 1a9a subs r2, r3, r2 800e38e: 4b20 ldr r3, [pc, #128] ; (800e410 ) 800e390: fba3 1302 umull r1, r3, r3, r2 800e394: 08d9 lsrs r1, r3, #3 800e396: 460b mov r3, r1 800e398: 009b lsls r3, r3, #2 800e39a: 440b add r3, r1 800e39c: 005b lsls r3, r3, #1 800e39e: 1ad3 subs r3, r2, r3 800e3a0: 617b str r3, [r7, #20] p8 = str; 800e3a2: f107 0308 add.w r3, r7, #8 800e3a6: 62fb str r3, [r7, #44] ; 0x2c if(pardata.amplif[ch].SENS < 10.0f) { 800e3a8: 79fb ldrb r3, [r7, #7] 800e3aa: 4a0e ldr r2, [pc, #56] ; (800e3e4 ) 800e3ac: 015b lsls r3, r3, #5 800e3ae: 4413 add r3, r2 800e3b0: 3318 adds r3, #24 800e3b2: edd3 7a00 vldr s15, [r3] 800e3b6: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 800e3ba: eef4 7ac7 vcmpe.f32 s15, s14 800e3be: eef1 fa10 vmrs APSR_nzcv, fpscr 800e3c2: d527 bpl.n 800e414 p8 = FloatToASCII(pardata.amplif[ch].SENS, -4); 800e3c4: 79fb ldrb r3, [r7, #7] 800e3c6: 4a07 ldr r2, [pc, #28] ; (800e3e4 ) 800e3c8: 015b lsls r3, r3, #5 800e3ca: 4413 add r3, r2 800e3cc: 3318 adds r3, #24 800e3ce: edd3 7a00 vldr s15, [r3] 800e3d2: f06f 0003 mvn.w r0, #3 800e3d6: eeb0 0a67 vmov.f32 s0, s15 800e3da: f001 f861 bl 800f4a0 800e3de: 62f8 str r0, [r7, #44] ; 0x2c 800e3e0: e08a b.n 800e4f8 800e3e2: bf00 nop 800e3e4: 2006bca8 .word 0x2006bca8 800e3e8: 2006ba68 .word 0x2006ba68 800e3ec: 461c4000 .word 0x461c4000 800e3f0: 42c80000 .word 0x42c80000 800e3f4: 447a0000 .word 0x447a0000 800e3f8: 47c35000 .word 0x47c35000 800e3fc: 47c34f80 .word 0x47c34f80 800e400: 0001869f .word 0x0001869f 800e404: d1b71759 .word 0xd1b71759 800e408: 10624dd3 .word 0x10624dd3 800e40c: 51eb851f .word 0x51eb851f 800e410: cccccccd .word 0xcccccccd } else if(pardata.amplif[ch].SENS < 100.0f) { 800e414: 79fb ldrb r3, [r7, #7] 800e416: 4abf ldr r2, [pc, #764] ; (800e714 ) 800e418: 015b lsls r3, r3, #5 800e41a: 4413 add r3, r2 800e41c: 3318 adds r3, #24 800e41e: edd3 7a00 vldr s15, [r3] 800e422: ed9f 7abd vldr s14, [pc, #756] ; 800e718 800e426: eef4 7ac7 vcmpe.f32 s15, s14 800e42a: eef1 fa10 vmrs APSR_nzcv, fpscr 800e42e: d50e bpl.n 800e44e p8 = FloatToASCII(pardata.amplif[ch].SENS, -3); 800e430: 79fb ldrb r3, [r7, #7] 800e432: 4ab8 ldr r2, [pc, #736] ; (800e714 ) 800e434: 015b lsls r3, r3, #5 800e436: 4413 add r3, r2 800e438: 3318 adds r3, #24 800e43a: edd3 7a00 vldr s15, [r3] 800e43e: f06f 0002 mvn.w r0, #2 800e442: eeb0 0a67 vmov.f32 s0, s15 800e446: f001 f82b bl 800f4a0 800e44a: 62f8 str r0, [r7, #44] ; 0x2c 800e44c: e054 b.n 800e4f8 } else if(pardata.amplif[ch].SENS < 1000.0f) { 800e44e: 79fb ldrb r3, [r7, #7] 800e450: 4ab0 ldr r2, [pc, #704] ; (800e714 ) 800e452: 015b lsls r3, r3, #5 800e454: 4413 add r3, r2 800e456: 3318 adds r3, #24 800e458: edd3 7a00 vldr s15, [r3] 800e45c: ed9f 7aaf vldr s14, [pc, #700] ; 800e71c 800e460: eef4 7ac7 vcmpe.f32 s15, s14 800e464: eef1 fa10 vmrs APSR_nzcv, fpscr 800e468: d50e bpl.n 800e488 p8 = FloatToASCII(pardata.amplif[ch].SENS, -2); 800e46a: 79fb ldrb r3, [r7, #7] 800e46c: 4aa9 ldr r2, [pc, #676] ; (800e714 ) 800e46e: 015b lsls r3, r3, #5 800e470: 4413 add r3, r2 800e472: 3318 adds r3, #24 800e474: edd3 7a00 vldr s15, [r3] 800e478: f06f 0001 mvn.w r0, #1 800e47c: eeb0 0a67 vmov.f32 s0, s15 800e480: f001 f80e bl 800f4a0 800e484: 62f8 str r0, [r7, #44] ; 0x2c 800e486: e037 b.n 800e4f8 } else if(pardata.amplif[ch].SENS < 10000.0f) { 800e488: 79fb ldrb r3, [r7, #7] 800e48a: 4aa2 ldr r2, [pc, #648] ; (800e714 ) 800e48c: 015b lsls r3, r3, #5 800e48e: 4413 add r3, r2 800e490: 3318 adds r3, #24 800e492: edd3 7a00 vldr s15, [r3] 800e496: ed9f 7aa2 vldr s14, [pc, #648] ; 800e720 800e49a: eef4 7ac7 vcmpe.f32 s15, s14 800e49e: eef1 fa10 vmrs APSR_nzcv, fpscr 800e4a2: d50e bpl.n 800e4c2 p8 = FloatToASCII(pardata.amplif[ch].SENS, -1); 800e4a4: 79fb ldrb r3, [r7, #7] 800e4a6: 4a9b ldr r2, [pc, #620] ; (800e714 ) 800e4a8: 015b lsls r3, r3, #5 800e4aa: 4413 add r3, r2 800e4ac: 3318 adds r3, #24 800e4ae: edd3 7a00 vldr s15, [r3] 800e4b2: f04f 30ff mov.w r0, #4294967295 800e4b6: eeb0 0a67 vmov.f32 s0, s15 800e4ba: f000 fff1 bl 800f4a0 800e4be: 62f8 str r0, [r7, #44] ; 0x2c 800e4c0: e01a b.n 800e4f8 } else if(pardata.amplif[ch].SENS < 100000.0f) { 800e4c2: 79fb ldrb r3, [r7, #7] 800e4c4: 4a93 ldr r2, [pc, #588] ; (800e714 ) 800e4c6: 015b lsls r3, r3, #5 800e4c8: 4413 add r3, r2 800e4ca: 3318 adds r3, #24 800e4cc: edd3 7a00 vldr s15, [r3] 800e4d0: ed9f 7a94 vldr s14, [pc, #592] ; 800e724 800e4d4: eef4 7ac7 vcmpe.f32 s15, s14 800e4d8: eef1 fa10 vmrs APSR_nzcv, fpscr 800e4dc: d50c bpl.n 800e4f8 p8 = FloatToASCII(pardata.amplif[ch].SENS, 0); 800e4de: 79fb ldrb r3, [r7, #7] 800e4e0: 4a8c ldr r2, [pc, #560] ; (800e714 ) 800e4e2: 015b lsls r3, r3, #5 800e4e4: 4413 add r3, r2 800e4e6: 3318 adds r3, #24 800e4e8: edd3 7a00 vldr s15, [r3] 800e4ec: 2000 movs r0, #0 800e4ee: eeb0 0a67 vmov.f32 s0, s15 800e4f2: f000 ffd5 bl 800f4a0 800e4f6: 62f8 str r0, [r7, #44] ; 0x2c } strcpy((void *) str, (void *) p8); 800e4f8: f107 0308 add.w r3, r7, #8 800e4fc: 6af9 ldr r1, [r7, #44] ; 0x2c 800e4fe: 4618 mov r0, r3 800e500: f007 fff3 bl 80164ea ////////////////////////////////////////////////////////////////////////////////////// if((pardata.amplif[ch].SENS >= 0.0010f)&&(pardata.amplif[ch].SENS < 0.001f)) //0.001 800e504: 79fb ldrb r3, [r7, #7] 800e506: 4a83 ldr r2, [pc, #524] ; (800e714 ) 800e508: 015b lsls r3, r3, #5 800e50a: 4413 add r3, r2 800e50c: 3318 adds r3, #24 800e50e: edd3 7a00 vldr s15, [r3] 800e512: ed9f 7a85 vldr s14, [pc, #532] ; 800e728 800e516: eef4 7ac7 vcmpe.f32 s15, s14 800e51a: eef1 fa10 vmrs APSR_nzcv, fpscr 800e51e: db16 blt.n 800e54e 800e520: 79fb ldrb r3, [r7, #7] 800e522: 4a7c ldr r2, [pc, #496] ; (800e714 ) 800e524: 015b lsls r3, r3, #5 800e526: 4413 add r3, r2 800e528: 3318 adds r3, #24 800e52a: edd3 7a00 vldr s15, [r3] 800e52e: ed9f 7a7e vldr s14, [pc, #504] ; 800e728 800e532: eef4 7ac7 vcmpe.f32 s15, s14 800e536: eef1 fa10 vmrs APSR_nzcv, fpscr 800e53a: d508 bpl.n 800e54e { out = pardata.amplif[ch].IKU; 800e53c: 79fb ldrb r3, [r7, #7] 800e53e: 4a75 ldr r2, [pc, #468] ; (800e714 ) 800e540: 015b lsls r3, r3, #5 800e542: 4413 add r3, r2 800e544: 3306 adds r3, #6 800e546: 881b ldrh r3, [r3, #0] 800e548: b29b uxth r3, r3 800e54a: 633b str r3, [r7, #48] ; 0x30 800e54c: e13d b.n 800e7ca } else if((pardata.amplif[ch].SENS >= 0.0010f)&&(pardata.amplif[ch].SENS < 0.010f)) //0.001 800e54e: 79fb ldrb r3, [r7, #7] 800e550: 4a70 ldr r2, [pc, #448] ; (800e714 ) 800e552: 015b lsls r3, r3, #5 800e554: 4413 add r3, r2 800e556: 3318 adds r3, #24 800e558: edd3 7a00 vldr s15, [r3] 800e55c: ed9f 7a72 vldr s14, [pc, #456] ; 800e728 800e560: eef4 7ac7 vcmpe.f32 s15, s14 800e564: eef1 fa10 vmrs APSR_nzcv, fpscr 800e568: db16 blt.n 800e598 800e56a: 79fb ldrb r3, [r7, #7] 800e56c: 4a69 ldr r2, [pc, #420] ; (800e714 ) 800e56e: 015b lsls r3, r3, #5 800e570: 4413 add r3, r2 800e572: 3318 adds r3, #24 800e574: edd3 7a00 vldr s15, [r3] 800e578: ed9f 7a6c vldr s14, [pc, #432] ; 800e72c 800e57c: eef4 7ac7 vcmpe.f32 s15, s14 800e580: eef1 fa10 vmrs APSR_nzcv, fpscr 800e584: d508 bpl.n 800e598 { out = pardata.amplif[ch].IKU; 800e586: 79fb ldrb r3, [r7, #7] 800e588: 4a62 ldr r2, [pc, #392] ; (800e714 ) 800e58a: 015b lsls r3, r3, #5 800e58c: 4413 add r3, r2 800e58e: 3306 adds r3, #6 800e590: 881b ldrh r3, [r3, #0] 800e592: b29b uxth r3, r3 800e594: 633b str r3, [r7, #48] ; 0x30 800e596: e118 b.n 800e7ca } else if((pardata.amplif[ch].SENS>=0.01f)&&(pardata.amplif[ch].SENS<0.1f)) //0.002 800e598: 79fb ldrb r3, [r7, #7] 800e59a: 4a5e ldr r2, [pc, #376] ; (800e714 ) 800e59c: 015b lsls r3, r3, #5 800e59e: 4413 add r3, r2 800e5a0: 3318 adds r3, #24 800e5a2: edd3 7a00 vldr s15, [r3] 800e5a6: ed9f 7a61 vldr s14, [pc, #388] ; 800e72c 800e5aa: eef4 7ac7 vcmpe.f32 s15, s14 800e5ae: eef1 fa10 vmrs APSR_nzcv, fpscr 800e5b2: db17 blt.n 800e5e4 800e5b4: 79fb ldrb r3, [r7, #7] 800e5b6: 4a57 ldr r2, [pc, #348] ; (800e714 ) 800e5b8: 015b lsls r3, r3, #5 800e5ba: 4413 add r3, r2 800e5bc: 3318 adds r3, #24 800e5be: edd3 7a00 vldr s15, [r3] 800e5c2: ed9f 7a5b vldr s14, [pc, #364] ; 800e730 800e5c6: eef4 7ac7 vcmpe.f32 s15, s14 800e5ca: eef1 fa10 vmrs APSR_nzcv, fpscr 800e5ce: d509 bpl.n 800e5e4 { out = pardata.amplif[ch].IKU +3; 800e5d0: 79fb ldrb r3, [r7, #7] 800e5d2: 4a50 ldr r2, [pc, #320] ; (800e714 ) 800e5d4: 015b lsls r3, r3, #5 800e5d6: 4413 add r3, r2 800e5d8: 3306 adds r3, #6 800e5da: 881b ldrh r3, [r3, #0] 800e5dc: b29b uxth r3, r3 800e5de: 3303 adds r3, #3 800e5e0: 633b str r3, [r7, #48] ; 0x30 800e5e2: e0f2 b.n 800e7ca } else if((pardata.amplif[ch].SENS>=0.1f)&&(pardata.amplif[ch].SENS<1.0f)) //0.005 800e5e4: 79fb ldrb r3, [r7, #7] 800e5e6: 4a4b ldr r2, [pc, #300] ; (800e714 ) 800e5e8: 015b lsls r3, r3, #5 800e5ea: 4413 add r3, r2 800e5ec: 3318 adds r3, #24 800e5ee: edd3 7a00 vldr s15, [r3] 800e5f2: ed9f 7a4f vldr s14, [pc, #316] ; 800e730 800e5f6: eef4 7ac7 vcmpe.f32 s15, s14 800e5fa: eef1 fa10 vmrs APSR_nzcv, fpscr 800e5fe: db17 blt.n 800e630 800e600: 79fb ldrb r3, [r7, #7] 800e602: 4a44 ldr r2, [pc, #272] ; (800e714 ) 800e604: 015b lsls r3, r3, #5 800e606: 4413 add r3, r2 800e608: 3318 adds r3, #24 800e60a: edd3 7a00 vldr s15, [r3] 800e60e: eeb7 7a00 vmov.f32 s14, #112 ; 0x3f800000 1.0 800e612: eef4 7ac7 vcmpe.f32 s15, s14 800e616: eef1 fa10 vmrs APSR_nzcv, fpscr 800e61a: d509 bpl.n 800e630 { out = pardata.amplif[ch].IKU + 6; 800e61c: 79fb ldrb r3, [r7, #7] 800e61e: 4a3d ldr r2, [pc, #244] ; (800e714 ) 800e620: 015b lsls r3, r3, #5 800e622: 4413 add r3, r2 800e624: 3306 adds r3, #6 800e626: 881b ldrh r3, [r3, #0] 800e628: b29b uxth r3, r3 800e62a: 3306 adds r3, #6 800e62c: 633b str r3, [r7, #48] ; 0x30 800e62e: e0cc b.n 800e7ca } else if((pardata.amplif[ch].SENS>=1.0f)&&(pardata.amplif[ch].SENS<10.0f)) //0.01 800e630: 79fb ldrb r3, [r7, #7] 800e632: 4a38 ldr r2, [pc, #224] ; (800e714 ) 800e634: 015b lsls r3, r3, #5 800e636: 4413 add r3, r2 800e638: 3318 adds r3, #24 800e63a: edd3 7a00 vldr s15, [r3] 800e63e: eeb7 7a00 vmov.f32 s14, #112 ; 0x3f800000 1.0 800e642: eef4 7ac7 vcmpe.f32 s15, s14 800e646: eef1 fa10 vmrs APSR_nzcv, fpscr 800e64a: db17 blt.n 800e67c 800e64c: 79fb ldrb r3, [r7, #7] 800e64e: 4a31 ldr r2, [pc, #196] ; (800e714 ) 800e650: 015b lsls r3, r3, #5 800e652: 4413 add r3, r2 800e654: 3318 adds r3, #24 800e656: edd3 7a00 vldr s15, [r3] 800e65a: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 800e65e: eef4 7ac7 vcmpe.f32 s15, s14 800e662: eef1 fa10 vmrs APSR_nzcv, fpscr 800e666: d509 bpl.n 800e67c { out = pardata.amplif[ch].IKU + 9; 800e668: 79fb ldrb r3, [r7, #7] 800e66a: 4a2a ldr r2, [pc, #168] ; (800e714 ) 800e66c: 015b lsls r3, r3, #5 800e66e: 4413 add r3, r2 800e670: 3306 adds r3, #6 800e672: 881b ldrh r3, [r3, #0] 800e674: b29b uxth r3, r3 800e676: 3309 adds r3, #9 800e678: 633b str r3, [r7, #48] ; 0x30 800e67a: e0a6 b.n 800e7ca } else if((pardata.amplif[ch].SENS>=10.0f)&&(pardata.amplif[ch].SENS<100.0f)) //0.02 800e67c: 79fb ldrb r3, [r7, #7] 800e67e: 4a25 ldr r2, [pc, #148] ; (800e714 ) 800e680: 015b lsls r3, r3, #5 800e682: 4413 add r3, r2 800e684: 3318 adds r3, #24 800e686: edd3 7a00 vldr s15, [r3] 800e68a: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 800e68e: eef4 7ac7 vcmpe.f32 s15, s14 800e692: eef1 fa10 vmrs APSR_nzcv, fpscr 800e696: db17 blt.n 800e6c8 800e698: 79fb ldrb r3, [r7, #7] 800e69a: 4a1e ldr r2, [pc, #120] ; (800e714 ) 800e69c: 015b lsls r3, r3, #5 800e69e: 4413 add r3, r2 800e6a0: 3318 adds r3, #24 800e6a2: edd3 7a00 vldr s15, [r3] 800e6a6: ed9f 7a1c vldr s14, [pc, #112] ; 800e718 800e6aa: eef4 7ac7 vcmpe.f32 s15, s14 800e6ae: eef1 fa10 vmrs APSR_nzcv, fpscr 800e6b2: d509 bpl.n 800e6c8 { out = pardata.amplif[ch].IKU + 12; 800e6b4: 79fb ldrb r3, [r7, #7] 800e6b6: 4a17 ldr r2, [pc, #92] ; (800e714 ) 800e6b8: 015b lsls r3, r3, #5 800e6ba: 4413 add r3, r2 800e6bc: 3306 adds r3, #6 800e6be: 881b ldrh r3, [r3, #0] 800e6c0: b29b uxth r3, r3 800e6c2: 330c adds r3, #12 800e6c4: 633b str r3, [r7, #48] ; 0x30 800e6c6: e080 b.n 800e7ca } else if((pardata.amplif[ch].SENS>=100.0f)&&(pardata.amplif[ch].SENS<1000.0f)) //0.05 800e6c8: 79fb ldrb r3, [r7, #7] 800e6ca: 4a12 ldr r2, [pc, #72] ; (800e714 ) 800e6cc: 015b lsls r3, r3, #5 800e6ce: 4413 add r3, r2 800e6d0: 3318 adds r3, #24 800e6d2: edd3 7a00 vldr s15, [r3] 800e6d6: ed9f 7a10 vldr s14, [pc, #64] ; 800e718 800e6da: eef4 7ac7 vcmpe.f32 s15, s14 800e6de: eef1 fa10 vmrs APSR_nzcv, fpscr 800e6e2: db27 blt.n 800e734 800e6e4: 79fb ldrb r3, [r7, #7] 800e6e6: 4a0b ldr r2, [pc, #44] ; (800e714 ) 800e6e8: 015b lsls r3, r3, #5 800e6ea: 4413 add r3, r2 800e6ec: 3318 adds r3, #24 800e6ee: edd3 7a00 vldr s15, [r3] 800e6f2: ed9f 7a0a vldr s14, [pc, #40] ; 800e71c 800e6f6: eef4 7ac7 vcmpe.f32 s15, s14 800e6fa: eef1 fa10 vmrs APSR_nzcv, fpscr 800e6fe: d519 bpl.n 800e734 { out = pardata.amplif[ch].IKU + 15; 800e700: 79fb ldrb r3, [r7, #7] 800e702: 4a04 ldr r2, [pc, #16] ; (800e714 ) 800e704: 015b lsls r3, r3, #5 800e706: 4413 add r3, r2 800e708: 3306 adds r3, #6 800e70a: 881b ldrh r3, [r3, #0] 800e70c: b29b uxth r3, r3 800e70e: 330f adds r3, #15 800e710: 633b str r3, [r7, #48] ; 0x30 800e712: e05a b.n 800e7ca 800e714: 2006bca8 .word 0x2006bca8 800e718: 42c80000 .word 0x42c80000 800e71c: 447a0000 .word 0x447a0000 800e720: 461c4000 .word 0x461c4000 800e724: 47c35000 .word 0x47c35000 800e728: 3a83126f .word 0x3a83126f 800e72c: 3c23d70a .word 0x3c23d70a 800e730: 3dcccccd .word 0x3dcccccd } else if((pardata.amplif[ch].SENS >= 1000.0f)&&(pardata.amplif[ch].SENS<10000.0f)) //0.1 800e734: 79fb ldrb r3, [r7, #7] 800e736: 4ab8 ldr r2, [pc, #736] ; (800ea18 ) 800e738: 015b lsls r3, r3, #5 800e73a: 4413 add r3, r2 800e73c: 3318 adds r3, #24 800e73e: edd3 7a00 vldr s15, [r3] 800e742: ed9f 7ab6 vldr s14, [pc, #728] ; 800ea1c 800e746: eef4 7ac7 vcmpe.f32 s15, s14 800e74a: eef1 fa10 vmrs APSR_nzcv, fpscr 800e74e: db17 blt.n 800e780 800e750: 79fb ldrb r3, [r7, #7] 800e752: 4ab1 ldr r2, [pc, #708] ; (800ea18 ) 800e754: 015b lsls r3, r3, #5 800e756: 4413 add r3, r2 800e758: 3318 adds r3, #24 800e75a: edd3 7a00 vldr s15, [r3] 800e75e: ed9f 7ab0 vldr s14, [pc, #704] ; 800ea20 800e762: eef4 7ac7 vcmpe.f32 s15, s14 800e766: eef1 fa10 vmrs APSR_nzcv, fpscr 800e76a: d509 bpl.n 800e780 { out = pardata.amplif[ch].IKU + 18; 800e76c: 79fb ldrb r3, [r7, #7] 800e76e: 4aaa ldr r2, [pc, #680] ; (800ea18 ) 800e770: 015b lsls r3, r3, #5 800e772: 4413 add r3, r2 800e774: 3306 adds r3, #6 800e776: 881b ldrh r3, [r3, #0] 800e778: b29b uxth r3, r3 800e77a: 3312 adds r3, #18 800e77c: 633b str r3, [r7, #48] ; 0x30 800e77e: e024 b.n 800e7ca } else if((pardata.amplif[ch].SENS >= 10000.0f)&&(pardata.amplif[ch].SENS < 100000.0f)) //0.2 800e780: 79fb ldrb r3, [r7, #7] 800e782: 4aa5 ldr r2, [pc, #660] ; (800ea18 ) 800e784: 015b lsls r3, r3, #5 800e786: 4413 add r3, r2 800e788: 3318 adds r3, #24 800e78a: edd3 7a00 vldr s15, [r3] 800e78e: ed9f 7aa4 vldr s14, [pc, #656] ; 800ea20 800e792: eef4 7ac7 vcmpe.f32 s15, s14 800e796: eef1 fa10 vmrs APSR_nzcv, fpscr 800e79a: db16 blt.n 800e7ca 800e79c: 79fb ldrb r3, [r7, #7] 800e79e: 4a9e ldr r2, [pc, #632] ; (800ea18 ) 800e7a0: 015b lsls r3, r3, #5 800e7a2: 4413 add r3, r2 800e7a4: 3318 adds r3, #24 800e7a6: edd3 7a00 vldr s15, [r3] 800e7aa: ed9f 7a9e vldr s14, [pc, #632] ; 800ea24 800e7ae: eef4 7ac7 vcmpe.f32 s15, s14 800e7b2: eef1 fa10 vmrs APSR_nzcv, fpscr 800e7b6: d508 bpl.n 800e7ca { out = pardata.amplif[ch].IKU + 21; 800e7b8: 79fb ldrb r3, [r7, #7] 800e7ba: 4a97 ldr r2, [pc, #604] ; (800ea18 ) 800e7bc: 015b lsls r3, r3, #5 800e7be: 4413 add r3, r2 800e7c0: 3306 adds r3, #6 800e7c2: 881b ldrh r3, [r3, #0] 800e7c4: b29b uxth r3, r3 800e7c6: 3315 adds r3, #21 800e7c8: 633b str r3, [r7, #48] ; 0x30 } LCD_SetColors(LCD_COLOR_ORANGE, LCD_COLOR_BLACK); 800e7ca: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800e7ce: 4896 ldr r0, [pc, #600] ; (800ea28 ) 800e7d0: f7f6 fafa bl 8004dc8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_INPUT_4[ch], str, LEFT_MODE); 800e7d4: 79fb ldrb r3, [r7, #7] 800e7d6: 4a95 ldr r2, [pc, #596] ; (800ea2c ) 800e7d8: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800e7dc: 3305 adds r3, #5 800e7de: b298 uxth r0, r3 800e7e0: 79fb ldrb r3, [r7, #7] 800e7e2: 4a93 ldr r2, [pc, #588] ; (800ea30 ) 800e7e4: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800e7e8: f107 0208 add.w r2, r7, #8 800e7ec: 2303 movs r3, #3 800e7ee: f7f6 fbb1 bl 8004f54 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 50, YPOS_INPUT_4[ch], (char *) pVAL[pardata.LANG][pardata.amplif[ch].VAL * 2 + pardata.amplif[ch].IIN], LEFT_MODE); 800e7f2: 79fb ldrb r3, [r7, #7] 800e7f4: 4a8d ldr r2, [pc, #564] ; (800ea2c ) 800e7f6: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800e7fa: 3332 adds r3, #50 ; 0x32 800e7fc: b298 uxth r0, r3 800e7fe: 79fb ldrb r3, [r7, #7] 800e800: 4a8b ldr r2, [pc, #556] ; (800ea30 ) 800e802: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800e806: 4b84 ldr r3, [pc, #528] ; (800ea18 ) 800e808: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800e80c: b29b uxth r3, r3 800e80e: 461d mov r5, r3 800e810: 79fb ldrb r3, [r7, #7] 800e812: 4a81 ldr r2, [pc, #516] ; (800ea18 ) 800e814: 015b lsls r3, r3, #5 800e816: 4413 add r3, r2 800e818: 3312 adds r3, #18 800e81a: 881b ldrh r3, [r3, #0] 800e81c: b29b uxth r3, r3 800e81e: 005b lsls r3, r3, #1 800e820: 79fa ldrb r2, [r7, #7] 800e822: 497d ldr r1, [pc, #500] ; (800ea18 ) 800e824: 0152 lsls r2, r2, #5 800e826: 440a add r2, r1 800e828: 8812 ldrh r2, [r2, #0] 800e82a: b292 uxth r2, r2 800e82c: 4413 add r3, r2 800e82e: 4981 ldr r1, [pc, #516] ; (800ea34 ) 800e830: 012a lsls r2, r5, #4 800e832: 4413 add r3, r2 800e834: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800e838: 2303 movs r3, #3 800e83a: 4621 mov r1, r4 800e83c: f7f6 fb8a bl 8004f54 ////////////////////////////////////////////////////////////////////////////////////////////// LCD_SetColors(LCD_COLOR_DARKCYAN, LCD_COLOR_BLACK); 800e840: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800e844: 487c ldr r0, [pc, #496] ; (800ea38 ) 800e846: f7f6 fabf bl 8004dc8 if(ch < Ch3) 800e84a: 79fb ldrb r3, [r7, #7] 800e84c: 2b01 cmp r3, #1 800e84e: d81f bhi.n 800e890 { if(pardata.amplif[ch].IIN == CHARGE) 800e850: 79fb ldrb r3, [r7, #7] 800e852: 4a71 ldr r2, [pc, #452] ; (800ea18 ) 800e854: 015b lsls r3, r3, #5 800e856: 4413 add r3, r2 800e858: 881b ldrh r3, [r3, #0] 800e85a: b29b uxth r3, r3 800e85c: 2b00 cmp r3, #0 800e85e: d10b bne.n 800e878 BSP_LCD_DisplayStringAt(155, YPOS_KN_4[ch] + 3, "PE", RIGHT_MODE); 800e860: 79fb ldrb r3, [r7, #7] 800e862: 4a76 ldr r2, [pc, #472] ; (800ea3c ) 800e864: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800e868: 3303 adds r3, #3 800e86a: b299 uxth r1, r3 800e86c: 2302 movs r3, #2 800e86e: 4a74 ldr r2, [pc, #464] ; (800ea40 ) 800e870: 209b movs r0, #155 ; 0x9b 800e872: f7f6 fb6f bl 8004f54 800e876: e02c b.n 800e8d2 else BSP_LCD_DisplayStringAt(155, YPOS_KN_4[ch] + 3, "IEPE", RIGHT_MODE); 800e878: 79fb ldrb r3, [r7, #7] 800e87a: 4a70 ldr r2, [pc, #448] ; (800ea3c ) 800e87c: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800e880: 3303 adds r3, #3 800e882: b299 uxth r1, r3 800e884: 2302 movs r3, #2 800e886: 4a6f ldr r2, [pc, #444] ; (800ea44 ) 800e888: 209b movs r0, #155 ; 0x9b 800e88a: f7f6 fb63 bl 8004f54 800e88e: e020 b.n 800e8d2 } else { if(pardata.amplif[ch].IIN == CHARGE) 800e890: 79fb ldrb r3, [r7, #7] 800e892: 4a61 ldr r2, [pc, #388] ; (800ea18 ) 800e894: 015b lsls r3, r3, #5 800e896: 4413 add r3, r2 800e898: 881b ldrh r3, [r3, #0] 800e89a: b29b uxth r3, r3 800e89c: 2b00 cmp r3, #0 800e89e: d10c bne.n 800e8ba BSP_LCD_DisplayStringAt(155 + 160, YPOS_KN_4[ch] + 3, "PE", RIGHT_MODE); 800e8a0: 79fb ldrb r3, [r7, #7] 800e8a2: 4a66 ldr r2, [pc, #408] ; (800ea3c ) 800e8a4: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800e8a8: 3303 adds r3, #3 800e8aa: b299 uxth r1, r3 800e8ac: 2302 movs r3, #2 800e8ae: 4a64 ldr r2, [pc, #400] ; (800ea40 ) 800e8b0: f240 103b movw r0, #315 ; 0x13b 800e8b4: f7f6 fb4e bl 8004f54 800e8b8: e00b b.n 800e8d2 else BSP_LCD_DisplayStringAt(155 + 160, YPOS_KN_4[ch] + 3, "IEPE", RIGHT_MODE); 800e8ba: 79fb ldrb r3, [r7, #7] 800e8bc: 4a5f ldr r2, [pc, #380] ; (800ea3c ) 800e8be: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800e8c2: 3303 adds r3, #3 800e8c4: b299 uxth r1, r3 800e8c6: 2302 movs r3, #2 800e8c8: 4a5e ldr r2, [pc, #376] ; (800ea44 ) 800e8ca: f240 103b movw r0, #315 ; 0x13b 800e8ce: f7f6 fb41 bl 8004f54 } if(menupos == Hp) 800e8d2: 4b5d ldr r3, [pc, #372] ; (800ea48 ) 800e8d4: 781b ldrb r3, [r3, #0] 800e8d6: b2db uxtb r3, r3 800e8d8: 2b00 cmp r3, #0 800e8da: f040 8176 bne.w 800ebca { if(ACTIVE_CHANNEL == ch) 800e8de: 79fa ldrb r2, [r7, #7] 800e8e0: 4b5a ldr r3, [pc, #360] ; (800ea4c ) 800e8e2: 681b ldr r3, [r3, #0] 800e8e4: 429a cmp r2, r3 800e8e6: f040 80e8 bne.w 800eaba { LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800e8ea: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800e8ee: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800e8f2: f7f6 fa69 bl 8004dc8 if(focused) 800e8f6: 4b56 ldr r3, [pc, #344] ; (800ea50 ) 800e8f8: 781b ldrb r3, [r3, #0] 800e8fa: b2db uxtb r3, r3 800e8fc: 2b00 cmp r3, #0 800e8fe: d023 beq.n 800e948 { if(blk) 800e900: 683b ldr r3, [r7, #0] 800e902: 2b00 cmp r3, #0 800e904: d040 beq.n 800e988 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800e906: 79fb ldrb r3, [r7, #7] 800e908: 4a52 ldr r2, [pc, #328] ; (800ea54 ) 800e90a: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800e90e: 79fb ldrb r3, [r7, #7] 800e910: 4a51 ldr r2, [pc, #324] ; (800ea58 ) 800e912: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800e916: 4b40 ldr r3, [pc, #256] ; (800ea18 ) 800e918: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800e91c: b29b uxth r3, r3 800e91e: 4619 mov r1, r3 800e920: 79fb ldrb r3, [r7, #7] 800e922: 4a3d ldr r2, [pc, #244] ; (800ea18 ) 800e924: 015b lsls r3, r3, #5 800e926: 4413 add r3, r2 800e928: 3302 adds r3, #2 800e92a: 881b ldrh r3, [r3, #0] 800e92c: b29b uxth r3, r3 800e92e: 461d mov r5, r3 800e930: 4a4a ldr r2, [pc, #296] ; (800ea5c ) 800e932: 460b mov r3, r1 800e934: 009b lsls r3, r3, #2 800e936: 440b add r3, r1 800e938: 442b add r3, r5 800e93a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800e93e: 2303 movs r3, #3 800e940: 4621 mov r1, r4 800e942: f7f6 fb07 bl 8004f54 800e946: e01f b.n 800e988 } else BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800e948: 79fb ldrb r3, [r7, #7] 800e94a: 4a42 ldr r2, [pc, #264] ; (800ea54 ) 800e94c: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800e950: 79fb ldrb r3, [r7, #7] 800e952: 4a41 ldr r2, [pc, #260] ; (800ea58 ) 800e954: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800e958: 4b2f ldr r3, [pc, #188] ; (800ea18 ) 800e95a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800e95e: b29b uxth r3, r3 800e960: 4619 mov r1, r3 800e962: 79fb ldrb r3, [r7, #7] 800e964: 4a2c ldr r2, [pc, #176] ; (800ea18 ) 800e966: 015b lsls r3, r3, #5 800e968: 4413 add r3, r2 800e96a: 3302 adds r3, #2 800e96c: 881b ldrh r3, [r3, #0] 800e96e: b29b uxth r3, r3 800e970: 461d mov r5, r3 800e972: 4a3a ldr r2, [pc, #232] ; (800ea5c ) 800e974: 460b mov r3, r1 800e976: 009b lsls r3, r3, #2 800e978: 440b add r3, r1 800e97a: 442b add r3, r5 800e97c: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800e980: 2303 movs r3, #3 800e982: 4621 mov r1, r4 800e984: f7f6 fae6 bl 8004f54 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800e988: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800e98c: 4834 ldr r0, [pc, #208] ; (800ea60 ) 800e98e: f7f6 fa1b bl 8004dc8 //BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800e992: 79fb ldrb r3, [r7, #7] 800e994: 4a33 ldr r2, [pc, #204] ; (800ea64 ) 800e996: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800e99a: 79fb ldrb r3, [r7, #7] 800e99c: 4a32 ldr r2, [pc, #200] ; (800ea68 ) 800e99e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800e9a2: 4b1d ldr r3, [pc, #116] ; (800ea18 ) 800e9a4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800e9a8: b29b uxth r3, r3 800e9aa: 461d mov r5, r3 800e9ac: 79fb ldrb r3, [r7, #7] 800e9ae: 4a1a ldr r2, [pc, #104] ; (800ea18 ) 800e9b0: 015b lsls r3, r3, #5 800e9b2: 4413 add r3, r2 800e9b4: 3304 adds r3, #4 800e9b6: 881b ldrh r3, [r3, #0] 800e9b8: b29b uxth r3, r3 800e9ba: 461c mov r4, r3 800e9bc: 4a2b ldr r2, [pc, #172] ; (800ea6c ) 800e9be: 00eb lsls r3, r5, #3 800e9c0: 4423 add r3, r4 800e9c2: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800e9c6: 2303 movs r3, #3 800e9c8: f7f6 fac4 bl 8004f54 if(pardata.LANG == RUS) 800e9cc: 4b12 ldr r3, [pc, #72] ; (800ea18 ) 800e9ce: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800e9d2: b29b uxth r3, r3 800e9d4: 2b00 cmp r3, #0 800e9d6: d14f bne.n 800ea78 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800e9d8: 79fb ldrb r3, [r7, #7] 800e9da: 4a14 ldr r2, [pc, #80] ; (800ea2c ) 800e9dc: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800e9e0: 3305 adds r3, #5 800e9e2: b298 uxth r0, r3 800e9e4: 79fb ldrb r3, [r7, #7] 800e9e6: 4a22 ldr r2, [pc, #136] ; (800ea70 ) 800e9e8: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800e9ec: 79fb ldrb r3, [r7, #7] 800e9ee: 4a0a ldr r2, [pc, #40] ; (800ea18 ) 800e9f0: 015b lsls r3, r3, #5 800e9f2: 4413 add r3, r2 800e9f4: 3312 adds r3, #18 800e9f6: 881b ldrh r3, [r3, #0] 800e9f8: b29b uxth r3, r3 800e9fa: 461a mov r2, r3 800e9fc: 491d ldr r1, [pc, #116] ; (800ea74 ) 800e9fe: 4613 mov r3, r2 800ea00: 015b lsls r3, r3, #5 800ea02: 4413 add r3, r2 800ea04: 6b3a ldr r2, [r7, #48] ; 0x30 800ea06: 4413 add r3, r2 800ea08: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800ea0c: 2303 movs r3, #3 800ea0e: 4621 mov r1, r4 800ea10: f7f6 faa0 bl 8004f54 if(pardata.LANG == RUS) BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE); } } } 800ea14: e3cf b.n 800f1b6 800ea16: bf00 nop 800ea18: 2006bca8 .word 0x2006bca8 800ea1c: 447a0000 .word 0x447a0000 800ea20: 461c4000 .word 0x461c4000 800ea24: 47c35000 .word 0x47c35000 800ea28: ffffa500 .word 0xffffa500 800ea2c: 0801ae10 .word 0x0801ae10 800ea30: 0801ae18 .word 0x0801ae18 800ea34: 200200bc .word 0x200200bc 800ea38: ff008080 .word 0xff008080 800ea3c: 0801ae48 .word 0x0801ae48 800ea40: 0801815c .word 0x0801815c 800ea44: 08018160 .word 0x08018160 800ea48: 20020010 .word 0x20020010 800ea4c: 2006ba68 .word 0x2006ba68 800ea50: 200209e4 .word 0x200209e4 800ea54: 0801ae20 .word 0x0801ae20 800ea58: 0801ae28 .word 0x0801ae28 800ea5c: 20020054 .word 0x20020054 800ea60: ffd8aa57 .word 0xffd8aa57 800ea64: 0801ae30 .word 0x0801ae30 800ea68: 0801ae38 .word 0x0801ae38 800ea6c: 2002007c .word 0x2002007c 800ea70: 0801ae40 .word 0x0801ae40 800ea74: 2002013c .word 0x2002013c else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE); 800ea78: 79fb ldrb r3, [r7, #7] 800ea7a: 4ab4 ldr r2, [pc, #720] ; (800ed4c ) 800ea7c: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800ea80: 3b09 subs r3, #9 800ea82: b298 uxth r0, r3 800ea84: 79fb ldrb r3, [r7, #7] 800ea86: 4ab2 ldr r2, [pc, #712] ; (800ed50 ) 800ea88: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800ea8c: 79fb ldrb r3, [r7, #7] 800ea8e: 4ab1 ldr r2, [pc, #708] ; (800ed54 ) 800ea90: 015b lsls r3, r3, #5 800ea92: 4413 add r3, r2 800ea94: 3312 adds r3, #18 800ea96: 881b ldrh r3, [r3, #0] 800ea98: b29b uxth r3, r3 800ea9a: 461a mov r2, r3 800ea9c: 49ae ldr r1, [pc, #696] ; (800ed58 ) 800ea9e: 4613 mov r3, r2 800eaa0: 009b lsls r3, r3, #2 800eaa2: 4413 add r3, r2 800eaa4: 009a lsls r2, r3, #2 800eaa6: 4413 add r3, r2 800eaa8: 6b3a ldr r2, [r7, #48] ; 0x30 800eaaa: 4413 add r3, r2 800eaac: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800eab0: 2303 movs r3, #3 800eab2: 4621 mov r1, r4 800eab4: f7f6 fa4e bl 8004f54 } 800eab8: e37d b.n 800f1b6 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800eaba: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800eabe: 48a7 ldr r0, [pc, #668] ; (800ed5c ) 800eac0: f7f6 f982 bl 8004dc8 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800eac4: 79fb ldrb r3, [r7, #7] 800eac6: 4aa6 ldr r2, [pc, #664] ; (800ed60 ) 800eac8: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800eacc: 79fb ldrb r3, [r7, #7] 800eace: 4aa5 ldr r2, [pc, #660] ; (800ed64 ) 800ead0: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800ead4: 4b9f ldr r3, [pc, #636] ; (800ed54 ) 800ead6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800eada: b29b uxth r3, r3 800eadc: 4619 mov r1, r3 800eade: 79fb ldrb r3, [r7, #7] 800eae0: 4a9c ldr r2, [pc, #624] ; (800ed54 ) 800eae2: 015b lsls r3, r3, #5 800eae4: 4413 add r3, r2 800eae6: 3302 adds r3, #2 800eae8: 881b ldrh r3, [r3, #0] 800eaea: b29b uxth r3, r3 800eaec: 461d mov r5, r3 800eaee: 4a9e ldr r2, [pc, #632] ; (800ed68 ) 800eaf0: 460b mov r3, r1 800eaf2: 009b lsls r3, r3, #2 800eaf4: 440b add r3, r1 800eaf6: 442b add r3, r5 800eaf8: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800eafc: 2303 movs r3, #3 800eafe: 4621 mov r1, r4 800eb00: f7f6 fa28 bl 8004f54 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800eb04: 79fb ldrb r3, [r7, #7] 800eb06: 4a99 ldr r2, [pc, #612] ; (800ed6c ) 800eb08: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800eb0c: 79fb ldrb r3, [r7, #7] 800eb0e: 4a98 ldr r2, [pc, #608] ; (800ed70 ) 800eb10: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800eb14: 4b8f ldr r3, [pc, #572] ; (800ed54 ) 800eb16: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800eb1a: b29b uxth r3, r3 800eb1c: 461d mov r5, r3 800eb1e: 79fb ldrb r3, [r7, #7] 800eb20: 4a8c ldr r2, [pc, #560] ; (800ed54 ) 800eb22: 015b lsls r3, r3, #5 800eb24: 4413 add r3, r2 800eb26: 3304 adds r3, #4 800eb28: 881b ldrh r3, [r3, #0] 800eb2a: b29b uxth r3, r3 800eb2c: 461c mov r4, r3 800eb2e: 4a91 ldr r2, [pc, #580] ; (800ed74 ) 800eb30: 00eb lsls r3, r5, #3 800eb32: 4423 add r3, r4 800eb34: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800eb38: 2303 movs r3, #3 800eb3a: f7f6 fa0b bl 8004f54 if(pardata.LANG == RUS) 800eb3e: 4b85 ldr r3, [pc, #532] ; (800ed54 ) 800eb40: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800eb44: b29b uxth r3, r3 800eb46: 2b00 cmp r3, #0 800eb48: d11e bne.n 800eb88 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800eb4a: 79fb ldrb r3, [r7, #7] 800eb4c: 4a7f ldr r2, [pc, #508] ; (800ed4c ) 800eb4e: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800eb52: 3305 adds r3, #5 800eb54: b298 uxth r0, r3 800eb56: 79fb ldrb r3, [r7, #7] 800eb58: 4a7d ldr r2, [pc, #500] ; (800ed50 ) 800eb5a: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800eb5e: 79fb ldrb r3, [r7, #7] 800eb60: 4a7c ldr r2, [pc, #496] ; (800ed54 ) 800eb62: 015b lsls r3, r3, #5 800eb64: 4413 add r3, r2 800eb66: 3312 adds r3, #18 800eb68: 881b ldrh r3, [r3, #0] 800eb6a: b29b uxth r3, r3 800eb6c: 461a mov r2, r3 800eb6e: 4982 ldr r1, [pc, #520] ; (800ed78 ) 800eb70: 4613 mov r3, r2 800eb72: 015b lsls r3, r3, #5 800eb74: 4413 add r3, r2 800eb76: 6b3a ldr r2, [r7, #48] ; 0x30 800eb78: 4413 add r3, r2 800eb7a: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800eb7e: 2303 movs r3, #3 800eb80: 4621 mov r1, r4 800eb82: f7f6 f9e7 bl 8004f54 } 800eb86: e316 b.n 800f1b6 else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE); 800eb88: 79fb ldrb r3, [r7, #7] 800eb8a: 4a70 ldr r2, [pc, #448] ; (800ed4c ) 800eb8c: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800eb90: 3b09 subs r3, #9 800eb92: b298 uxth r0, r3 800eb94: 79fb ldrb r3, [r7, #7] 800eb96: 4a6e ldr r2, [pc, #440] ; (800ed50 ) 800eb98: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800eb9c: 79fb ldrb r3, [r7, #7] 800eb9e: 4a6d ldr r2, [pc, #436] ; (800ed54 ) 800eba0: 015b lsls r3, r3, #5 800eba2: 4413 add r3, r2 800eba4: 3312 adds r3, #18 800eba6: 881b ldrh r3, [r3, #0] 800eba8: b29b uxth r3, r3 800ebaa: 461a mov r2, r3 800ebac: 496a ldr r1, [pc, #424] ; (800ed58 ) 800ebae: 4613 mov r3, r2 800ebb0: 009b lsls r3, r3, #2 800ebb2: 4413 add r3, r2 800ebb4: 009a lsls r2, r3, #2 800ebb6: 4413 add r3, r2 800ebb8: 6b3a ldr r2, [r7, #48] ; 0x30 800ebba: 4413 add r3, r2 800ebbc: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800ebc0: 2303 movs r3, #3 800ebc2: 4621 mov r1, r4 800ebc4: f7f6 f9c6 bl 8004f54 } 800ebc8: e2f5 b.n 800f1b6 if(menupos == Lp) 800ebca: 4b6c ldr r3, [pc, #432] ; (800ed7c ) 800ebcc: 781b ldrb r3, [r3, #0] 800ebce: b2db uxtb r3, r3 800ebd0: 2b01 cmp r3, #1 800ebd2: f040 8161 bne.w 800ee98 if(ACTIVE_CHANNEL == ch) 800ebd6: 79fa ldrb r2, [r7, #7] 800ebd8: 4b69 ldr r3, [pc, #420] ; (800ed80 ) 800ebda: 681b ldr r3, [r3, #0] 800ebdc: 429a cmp r2, r3 800ebde: f040 80d3 bne.w 800ed88 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800ebe2: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800ebe6: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800ebea: f7f6 f8ed bl 8004dc8 if(focused) 800ebee: 4b65 ldr r3, [pc, #404] ; (800ed84 ) 800ebf0: 781b ldrb r3, [r3, #0] 800ebf2: b2db uxtb r3, r3 800ebf4: 2b00 cmp r3, #0 800ebf6: d020 beq.n 800ec3a if(blk) 800ebf8: 683b ldr r3, [r7, #0] 800ebfa: 2b00 cmp r3, #0 800ebfc: d03a beq.n 800ec74 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800ebfe: 79fb ldrb r3, [r7, #7] 800ec00: 4a5a ldr r2, [pc, #360] ; (800ed6c ) 800ec02: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800ec06: 79fb ldrb r3, [r7, #7] 800ec08: 4a59 ldr r2, [pc, #356] ; (800ed70 ) 800ec0a: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800ec0e: 4b51 ldr r3, [pc, #324] ; (800ed54 ) 800ec10: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800ec14: b29b uxth r3, r3 800ec16: 461d mov r5, r3 800ec18: 79fb ldrb r3, [r7, #7] 800ec1a: 4a4e ldr r2, [pc, #312] ; (800ed54 ) 800ec1c: 015b lsls r3, r3, #5 800ec1e: 4413 add r3, r2 800ec20: 3304 adds r3, #4 800ec22: 881b ldrh r3, [r3, #0] 800ec24: b29b uxth r3, r3 800ec26: 461c mov r4, r3 800ec28: 4a52 ldr r2, [pc, #328] ; (800ed74 ) 800ec2a: 00eb lsls r3, r5, #3 800ec2c: 4423 add r3, r4 800ec2e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800ec32: 2303 movs r3, #3 800ec34: f7f6 f98e bl 8004f54 800ec38: e01c b.n 800ec74 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800ec3a: 79fb ldrb r3, [r7, #7] 800ec3c: 4a4b ldr r2, [pc, #300] ; (800ed6c ) 800ec3e: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800ec42: 79fb ldrb r3, [r7, #7] 800ec44: 4a4a ldr r2, [pc, #296] ; (800ed70 ) 800ec46: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800ec4a: 4b42 ldr r3, [pc, #264] ; (800ed54 ) 800ec4c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800ec50: b29b uxth r3, r3 800ec52: 461d mov r5, r3 800ec54: 79fb ldrb r3, [r7, #7] 800ec56: 4a3f ldr r2, [pc, #252] ; (800ed54 ) 800ec58: 015b lsls r3, r3, #5 800ec5a: 4413 add r3, r2 800ec5c: 3304 adds r3, #4 800ec5e: 881b ldrh r3, [r3, #0] 800ec60: b29b uxth r3, r3 800ec62: 461c mov r4, r3 800ec64: 4a43 ldr r2, [pc, #268] ; (800ed74 ) 800ec66: 00eb lsls r3, r5, #3 800ec68: 4423 add r3, r4 800ec6a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800ec6e: 2303 movs r3, #3 800ec70: f7f6 f970 bl 8004f54 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800ec74: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800ec78: 4838 ldr r0, [pc, #224] ; (800ed5c ) 800ec7a: f7f6 f8a5 bl 8004dc8 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800ec7e: 79fb ldrb r3, [r7, #7] 800ec80: 4a37 ldr r2, [pc, #220] ; (800ed60 ) 800ec82: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800ec86: 79fb ldrb r3, [r7, #7] 800ec88: 4a36 ldr r2, [pc, #216] ; (800ed64 ) 800ec8a: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800ec8e: 4b31 ldr r3, [pc, #196] ; (800ed54 ) 800ec90: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800ec94: b29b uxth r3, r3 800ec96: 4619 mov r1, r3 800ec98: 79fb ldrb r3, [r7, #7] 800ec9a: 4a2e ldr r2, [pc, #184] ; (800ed54 ) 800ec9c: 015b lsls r3, r3, #5 800ec9e: 4413 add r3, r2 800eca0: 3302 adds r3, #2 800eca2: 881b ldrh r3, [r3, #0] 800eca4: b29b uxth r3, r3 800eca6: 461d mov r5, r3 800eca8: 4a2f ldr r2, [pc, #188] ; (800ed68 ) 800ecaa: 460b mov r3, r1 800ecac: 009b lsls r3, r3, #2 800ecae: 440b add r3, r1 800ecb0: 442b add r3, r5 800ecb2: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800ecb6: 2303 movs r3, #3 800ecb8: 4621 mov r1, r4 800ecba: f7f6 f94b bl 8004f54 if(pardata.LANG == RUS) 800ecbe: 4b25 ldr r3, [pc, #148] ; (800ed54 ) 800ecc0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800ecc4: b29b uxth r3, r3 800ecc6: 2b00 cmp r3, #0 800ecc8: d11e bne.n 800ed08 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800ecca: 79fb ldrb r3, [r7, #7] 800eccc: 4a1f ldr r2, [pc, #124] ; (800ed4c ) 800ecce: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800ecd2: 3305 adds r3, #5 800ecd4: b298 uxth r0, r3 800ecd6: 79fb ldrb r3, [r7, #7] 800ecd8: 4a1d ldr r2, [pc, #116] ; (800ed50 ) 800ecda: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800ecde: 79fb ldrb r3, [r7, #7] 800ece0: 4a1c ldr r2, [pc, #112] ; (800ed54 ) 800ece2: 015b lsls r3, r3, #5 800ece4: 4413 add r3, r2 800ece6: 3312 adds r3, #18 800ece8: 881b ldrh r3, [r3, #0] 800ecea: b29b uxth r3, r3 800ecec: 461a mov r2, r3 800ecee: 4922 ldr r1, [pc, #136] ; (800ed78 ) 800ecf0: 4613 mov r3, r2 800ecf2: 015b lsls r3, r3, #5 800ecf4: 4413 add r3, r2 800ecf6: 6b3a ldr r2, [r7, #48] ; 0x30 800ecf8: 4413 add r3, r2 800ecfa: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800ecfe: 2303 movs r3, #3 800ed00: 4621 mov r1, r4 800ed02: f7f6 f927 bl 8004f54 } 800ed06: e256 b.n 800f1b6 else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE); 800ed08: 79fb ldrb r3, [r7, #7] 800ed0a: 4a10 ldr r2, [pc, #64] ; (800ed4c ) 800ed0c: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800ed10: 3b09 subs r3, #9 800ed12: b298 uxth r0, r3 800ed14: 79fb ldrb r3, [r7, #7] 800ed16: 4a0e ldr r2, [pc, #56] ; (800ed50 ) 800ed18: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800ed1c: 79fb ldrb r3, [r7, #7] 800ed1e: 4a0d ldr r2, [pc, #52] ; (800ed54 ) 800ed20: 015b lsls r3, r3, #5 800ed22: 4413 add r3, r2 800ed24: 3312 adds r3, #18 800ed26: 881b ldrh r3, [r3, #0] 800ed28: b29b uxth r3, r3 800ed2a: 461a mov r2, r3 800ed2c: 490a ldr r1, [pc, #40] ; (800ed58 ) 800ed2e: 4613 mov r3, r2 800ed30: 009b lsls r3, r3, #2 800ed32: 4413 add r3, r2 800ed34: 009a lsls r2, r3, #2 800ed36: 4413 add r3, r2 800ed38: 6b3a ldr r2, [r7, #48] ; 0x30 800ed3a: 4413 add r3, r2 800ed3c: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800ed40: 2303 movs r3, #3 800ed42: 4621 mov r1, r4 800ed44: f7f6 f906 bl 8004f54 } 800ed48: e235 b.n 800f1b6 800ed4a: bf00 nop 800ed4c: 0801ae10 .word 0x0801ae10 800ed50: 0801ae40 .word 0x0801ae40 800ed54: 2006bca8 .word 0x2006bca8 800ed58: 200205e0 .word 0x200205e0 800ed5c: ffd8aa57 .word 0xffd8aa57 800ed60: 0801ae20 .word 0x0801ae20 800ed64: 0801ae28 .word 0x0801ae28 800ed68: 20020054 .word 0x20020054 800ed6c: 0801ae30 .word 0x0801ae30 800ed70: 0801ae38 .word 0x0801ae38 800ed74: 2002007c .word 0x2002007c 800ed78: 2002013c .word 0x2002013c 800ed7c: 20020010 .word 0x20020010 800ed80: 2006ba68 .word 0x2006ba68 800ed84: 200209e4 .word 0x200209e4 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800ed88: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800ed8c: 48b7 ldr r0, [pc, #732] ; (800f06c ) 800ed8e: f7f6 f81b bl 8004dc8 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800ed92: 79fb ldrb r3, [r7, #7] 800ed94: 4ab6 ldr r2, [pc, #728] ; (800f070 ) 800ed96: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800ed9a: 79fb ldrb r3, [r7, #7] 800ed9c: 4ab5 ldr r2, [pc, #724] ; (800f074 ) 800ed9e: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800eda2: 4bb5 ldr r3, [pc, #724] ; (800f078 ) 800eda4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800eda8: b29b uxth r3, r3 800edaa: 4619 mov r1, r3 800edac: 79fb ldrb r3, [r7, #7] 800edae: 4ab2 ldr r2, [pc, #712] ; (800f078 ) 800edb0: 015b lsls r3, r3, #5 800edb2: 4413 add r3, r2 800edb4: 3302 adds r3, #2 800edb6: 881b ldrh r3, [r3, #0] 800edb8: b29b uxth r3, r3 800edba: 461d mov r5, r3 800edbc: 4aaf ldr r2, [pc, #700] ; (800f07c ) 800edbe: 460b mov r3, r1 800edc0: 009b lsls r3, r3, #2 800edc2: 440b add r3, r1 800edc4: 442b add r3, r5 800edc6: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800edca: 2303 movs r3, #3 800edcc: 4621 mov r1, r4 800edce: f7f6 f8c1 bl 8004f54 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800edd2: 79fb ldrb r3, [r7, #7] 800edd4: 4aaa ldr r2, [pc, #680] ; (800f080 ) 800edd6: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800edda: 79fb ldrb r3, [r7, #7] 800eddc: 4aa9 ldr r2, [pc, #676] ; (800f084 ) 800edde: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800ede2: 4ba5 ldr r3, [pc, #660] ; (800f078 ) 800ede4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800ede8: b29b uxth r3, r3 800edea: 461d mov r5, r3 800edec: 79fb ldrb r3, [r7, #7] 800edee: 4aa2 ldr r2, [pc, #648] ; (800f078 ) 800edf0: 015b lsls r3, r3, #5 800edf2: 4413 add r3, r2 800edf4: 3304 adds r3, #4 800edf6: 881b ldrh r3, [r3, #0] 800edf8: b29b uxth r3, r3 800edfa: 461c mov r4, r3 800edfc: 4aa2 ldr r2, [pc, #648] ; (800f088 ) 800edfe: 00eb lsls r3, r5, #3 800ee00: 4423 add r3, r4 800ee02: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800ee06: 2303 movs r3, #3 800ee08: f7f6 f8a4 bl 8004f54 if(pardata.LANG == RUS) 800ee0c: 4b9a ldr r3, [pc, #616] ; (800f078 ) 800ee0e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800ee12: b29b uxth r3, r3 800ee14: 2b00 cmp r3, #0 800ee16: d11e bne.n 800ee56 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800ee18: 79fb ldrb r3, [r7, #7] 800ee1a: 4a9c ldr r2, [pc, #624] ; (800f08c ) 800ee1c: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800ee20: 3305 adds r3, #5 800ee22: b298 uxth r0, r3 800ee24: 79fb ldrb r3, [r7, #7] 800ee26: 4a9a ldr r2, [pc, #616] ; (800f090 ) 800ee28: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800ee2c: 79fb ldrb r3, [r7, #7] 800ee2e: 4a92 ldr r2, [pc, #584] ; (800f078 ) 800ee30: 015b lsls r3, r3, #5 800ee32: 4413 add r3, r2 800ee34: 3312 adds r3, #18 800ee36: 881b ldrh r3, [r3, #0] 800ee38: b29b uxth r3, r3 800ee3a: 461a mov r2, r3 800ee3c: 4995 ldr r1, [pc, #596] ; (800f094 ) 800ee3e: 4613 mov r3, r2 800ee40: 015b lsls r3, r3, #5 800ee42: 4413 add r3, r2 800ee44: 6b3a ldr r2, [r7, #48] ; 0x30 800ee46: 4413 add r3, r2 800ee48: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800ee4c: 2303 movs r3, #3 800ee4e: 4621 mov r1, r4 800ee50: f7f6 f880 bl 8004f54 } 800ee54: e1af b.n 800f1b6 else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE); 800ee56: 79fb ldrb r3, [r7, #7] 800ee58: 4a8c ldr r2, [pc, #560] ; (800f08c ) 800ee5a: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800ee5e: 3b09 subs r3, #9 800ee60: b298 uxth r0, r3 800ee62: 79fb ldrb r3, [r7, #7] 800ee64: 4a8a ldr r2, [pc, #552] ; (800f090 ) 800ee66: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800ee6a: 79fb ldrb r3, [r7, #7] 800ee6c: 4a82 ldr r2, [pc, #520] ; (800f078 ) 800ee6e: 015b lsls r3, r3, #5 800ee70: 4413 add r3, r2 800ee72: 3312 adds r3, #18 800ee74: 881b ldrh r3, [r3, #0] 800ee76: b29b uxth r3, r3 800ee78: 461a mov r2, r3 800ee7a: 4987 ldr r1, [pc, #540] ; (800f098 ) 800ee7c: 4613 mov r3, r2 800ee7e: 009b lsls r3, r3, #2 800ee80: 4413 add r3, r2 800ee82: 009a lsls r2, r3, #2 800ee84: 4413 add r3, r2 800ee86: 6b3a ldr r2, [r7, #48] ; 0x30 800ee88: 4413 add r3, r2 800ee8a: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800ee8e: 2303 movs r3, #3 800ee90: 4621 mov r1, r4 800ee92: f7f6 f85f bl 8004f54 } 800ee96: e18e b.n 800f1b6 if(menupos == Out) 800ee98: 4b80 ldr r3, [pc, #512] ; (800f09c ) 800ee9a: 781b ldrb r3, [r3, #0] 800ee9c: b2db uxtb r3, r3 800ee9e: 2b02 cmp r3, #2 800eea0: f040 8189 bne.w 800f1b6 if(ACTIVE_CHANNEL == ch) 800eea4: 79fa ldrb r2, [r7, #7] 800eea6: 4b7e ldr r3, [pc, #504] ; (800f0a0 ) 800eea8: 681b ldr r3, [r3, #0] 800eeaa: 429a cmp r2, r3 800eeac: f040 80fc bne.w 800f0a8 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800eeb0: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800eeb4: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800eeb8: f7f5 ff86 bl 8004dc8 if(focused) 800eebc: 4b79 ldr r3, [pc, #484] ; (800f0a4 ) 800eebe: 781b ldrb r3, [r3, #0] 800eec0: b2db uxtb r3, r3 800eec2: 2b00 cmp r3, #0 800eec4: d049 beq.n 800ef5a if(blk) 800eec6: 683b ldr r3, [r7, #0] 800eec8: 2b00 cmp r3, #0 800eeca: f000 808b beq.w 800efe4 if(pardata.LANG == RUS) 800eece: 4b6a ldr r3, [pc, #424] ; (800f078 ) 800eed0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800eed4: b29b uxth r3, r3 800eed6: 2b00 cmp r3, #0 800eed8: d11e bne.n 800ef18 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800eeda: 79fb ldrb r3, [r7, #7] 800eedc: 4a6b ldr r2, [pc, #428] ; (800f08c ) 800eede: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800eee2: 3305 adds r3, #5 800eee4: b298 uxth r0, r3 800eee6: 79fb ldrb r3, [r7, #7] 800eee8: 4a69 ldr r2, [pc, #420] ; (800f090 ) 800eeea: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800eeee: 79fb ldrb r3, [r7, #7] 800eef0: 4a61 ldr r2, [pc, #388] ; (800f078 ) 800eef2: 015b lsls r3, r3, #5 800eef4: 4413 add r3, r2 800eef6: 3312 adds r3, #18 800eef8: 881b ldrh r3, [r3, #0] 800eefa: b29b uxth r3, r3 800eefc: 461a mov r2, r3 800eefe: 4965 ldr r1, [pc, #404] ; (800f094 ) 800ef00: 4613 mov r3, r2 800ef02: 015b lsls r3, r3, #5 800ef04: 4413 add r3, r2 800ef06: 6b3a ldr r2, [r7, #48] ; 0x30 800ef08: 4413 add r3, r2 800ef0a: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800ef0e: 2303 movs r3, #3 800ef10: 4621 mov r1, r4 800ef12: f7f6 f81f bl 8004f54 800ef16: e065 b.n 800efe4 else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE); 800ef18: 79fb ldrb r3, [r7, #7] 800ef1a: 4a5c ldr r2, [pc, #368] ; (800f08c ) 800ef1c: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800ef20: 3b09 subs r3, #9 800ef22: b298 uxth r0, r3 800ef24: 79fb ldrb r3, [r7, #7] 800ef26: 4a5a ldr r2, [pc, #360] ; (800f090 ) 800ef28: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800ef2c: 79fb ldrb r3, [r7, #7] 800ef2e: 4a52 ldr r2, [pc, #328] ; (800f078 ) 800ef30: 015b lsls r3, r3, #5 800ef32: 4413 add r3, r2 800ef34: 3312 adds r3, #18 800ef36: 881b ldrh r3, [r3, #0] 800ef38: b29b uxth r3, r3 800ef3a: 461a mov r2, r3 800ef3c: 4956 ldr r1, [pc, #344] ; (800f098 ) 800ef3e: 4613 mov r3, r2 800ef40: 009b lsls r3, r3, #2 800ef42: 4413 add r3, r2 800ef44: 009a lsls r2, r3, #2 800ef46: 4413 add r3, r2 800ef48: 6b3a ldr r2, [r7, #48] ; 0x30 800ef4a: 4413 add r3, r2 800ef4c: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800ef50: 2303 movs r3, #3 800ef52: 4621 mov r1, r4 800ef54: f7f5 fffe bl 8004f54 800ef58: e044 b.n 800efe4 if(pardata.LANG == RUS) 800ef5a: 4b47 ldr r3, [pc, #284] ; (800f078 ) 800ef5c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800ef60: b29b uxth r3, r3 800ef62: 2b00 cmp r3, #0 800ef64: d11e bne.n 800efa4 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800ef66: 79fb ldrb r3, [r7, #7] 800ef68: 4a48 ldr r2, [pc, #288] ; (800f08c ) 800ef6a: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800ef6e: 3305 adds r3, #5 800ef70: b298 uxth r0, r3 800ef72: 79fb ldrb r3, [r7, #7] 800ef74: 4a46 ldr r2, [pc, #280] ; (800f090 ) 800ef76: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800ef7a: 79fb ldrb r3, [r7, #7] 800ef7c: 4a3e ldr r2, [pc, #248] ; (800f078 ) 800ef7e: 015b lsls r3, r3, #5 800ef80: 4413 add r3, r2 800ef82: 3312 adds r3, #18 800ef84: 881b ldrh r3, [r3, #0] 800ef86: b29b uxth r3, r3 800ef88: 461a mov r2, r3 800ef8a: 4942 ldr r1, [pc, #264] ; (800f094 ) 800ef8c: 4613 mov r3, r2 800ef8e: 015b lsls r3, r3, #5 800ef90: 4413 add r3, r2 800ef92: 6b3a ldr r2, [r7, #48] ; 0x30 800ef94: 4413 add r3, r2 800ef96: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800ef9a: 2303 movs r3, #3 800ef9c: 4621 mov r1, r4 800ef9e: f7f5 ffd9 bl 8004f54 800efa2: e01f b.n 800efe4 else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE); 800efa4: 79fb ldrb r3, [r7, #7] 800efa6: 4a39 ldr r2, [pc, #228] ; (800f08c ) 800efa8: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800efac: 3b09 subs r3, #9 800efae: b298 uxth r0, r3 800efb0: 79fb ldrb r3, [r7, #7] 800efb2: 4a37 ldr r2, [pc, #220] ; (800f090 ) 800efb4: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800efb8: 79fb ldrb r3, [r7, #7] 800efba: 4a2f ldr r2, [pc, #188] ; (800f078 ) 800efbc: 015b lsls r3, r3, #5 800efbe: 4413 add r3, r2 800efc0: 3312 adds r3, #18 800efc2: 881b ldrh r3, [r3, #0] 800efc4: b29b uxth r3, r3 800efc6: 461a mov r2, r3 800efc8: 4933 ldr r1, [pc, #204] ; (800f098 ) 800efca: 4613 mov r3, r2 800efcc: 009b lsls r3, r3, #2 800efce: 4413 add r3, r2 800efd0: 009a lsls r2, r3, #2 800efd2: 4413 add r3, r2 800efd4: 6b3a ldr r2, [r7, #48] ; 0x30 800efd6: 4413 add r3, r2 800efd8: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800efdc: 2303 movs r3, #3 800efde: 4621 mov r1, r4 800efe0: f7f5 ffb8 bl 8004f54 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800efe4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800efe8: 4820 ldr r0, [pc, #128] ; (800f06c ) 800efea: f7f5 feed bl 8004dc8 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800efee: 79fb ldrb r3, [r7, #7] 800eff0: 4a1f ldr r2, [pc, #124] ; (800f070 ) 800eff2: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800eff6: 79fb ldrb r3, [r7, #7] 800eff8: 4a1e ldr r2, [pc, #120] ; (800f074 ) 800effa: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800effe: 4b1e ldr r3, [pc, #120] ; (800f078 ) 800f000: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800f004: b29b uxth r3, r3 800f006: 4619 mov r1, r3 800f008: 79fb ldrb r3, [r7, #7] 800f00a: 4a1b ldr r2, [pc, #108] ; (800f078 ) 800f00c: 015b lsls r3, r3, #5 800f00e: 4413 add r3, r2 800f010: 3302 adds r3, #2 800f012: 881b ldrh r3, [r3, #0] 800f014: b29b uxth r3, r3 800f016: 461d mov r5, r3 800f018: 4a18 ldr r2, [pc, #96] ; (800f07c ) 800f01a: 460b mov r3, r1 800f01c: 009b lsls r3, r3, #2 800f01e: 440b add r3, r1 800f020: 442b add r3, r5 800f022: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800f026: 2303 movs r3, #3 800f028: 4621 mov r1, r4 800f02a: f7f5 ff93 bl 8004f54 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800f02e: 79fb ldrb r3, [r7, #7] 800f030: 4a13 ldr r2, [pc, #76] ; (800f080 ) 800f032: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800f036: 79fb ldrb r3, [r7, #7] 800f038: 4a12 ldr r2, [pc, #72] ; (800f084 ) 800f03a: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800f03e: 4b0e ldr r3, [pc, #56] ; (800f078 ) 800f040: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800f044: b29b uxth r3, r3 800f046: 461d mov r5, r3 800f048: 79fb ldrb r3, [r7, #7] 800f04a: 4a0b ldr r2, [pc, #44] ; (800f078 ) 800f04c: 015b lsls r3, r3, #5 800f04e: 4413 add r3, r2 800f050: 3304 adds r3, #4 800f052: 881b ldrh r3, [r3, #0] 800f054: b29b uxth r3, r3 800f056: 461c mov r4, r3 800f058: 4a0b ldr r2, [pc, #44] ; (800f088 ) 800f05a: 00eb lsls r3, r5, #3 800f05c: 4423 add r3, r4 800f05e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800f062: 2303 movs r3, #3 800f064: f7f5 ff76 bl 8004f54 } 800f068: e0a5 b.n 800f1b6 800f06a: bf00 nop 800f06c: ffd8aa57 .word 0xffd8aa57 800f070: 0801ae20 .word 0x0801ae20 800f074: 0801ae28 .word 0x0801ae28 800f078: 2006bca8 .word 0x2006bca8 800f07c: 20020054 .word 0x20020054 800f080: 0801ae30 .word 0x0801ae30 800f084: 0801ae38 .word 0x0801ae38 800f088: 2002007c .word 0x2002007c 800f08c: 0801ae10 .word 0x0801ae10 800f090: 0801ae40 .word 0x0801ae40 800f094: 2002013c .word 0x2002013c 800f098: 200205e0 .word 0x200205e0 800f09c: 20020010 .word 0x20020010 800f0a0: 2006ba68 .word 0x2006ba68 800f0a4: 200209e4 .word 0x200209e4 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800f0a8: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f0ac: 4844 ldr r0, [pc, #272] ; (800f1c0 ) 800f0ae: f7f5 fe8b bl 8004dc8 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800f0b2: 79fb ldrb r3, [r7, #7] 800f0b4: 4a43 ldr r2, [pc, #268] ; (800f1c4 ) 800f0b6: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800f0ba: 79fb ldrb r3, [r7, #7] 800f0bc: 4a42 ldr r2, [pc, #264] ; (800f1c8 ) 800f0be: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800f0c2: 4b42 ldr r3, [pc, #264] ; (800f1cc ) 800f0c4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800f0c8: b29b uxth r3, r3 800f0ca: 4619 mov r1, r3 800f0cc: 79fb ldrb r3, [r7, #7] 800f0ce: 4a3f ldr r2, [pc, #252] ; (800f1cc ) 800f0d0: 015b lsls r3, r3, #5 800f0d2: 4413 add r3, r2 800f0d4: 3302 adds r3, #2 800f0d6: 881b ldrh r3, [r3, #0] 800f0d8: b29b uxth r3, r3 800f0da: 461d mov r5, r3 800f0dc: 4a3c ldr r2, [pc, #240] ; (800f1d0 ) 800f0de: 460b mov r3, r1 800f0e0: 009b lsls r3, r3, #2 800f0e2: 440b add r3, r1 800f0e4: 442b add r3, r5 800f0e6: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800f0ea: 2303 movs r3, #3 800f0ec: 4621 mov r1, r4 800f0ee: f7f5 ff31 bl 8004f54 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800f0f2: 79fb ldrb r3, [r7, #7] 800f0f4: 4a37 ldr r2, [pc, #220] ; (800f1d4 ) 800f0f6: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800f0fa: 79fb ldrb r3, [r7, #7] 800f0fc: 4a36 ldr r2, [pc, #216] ; (800f1d8 ) 800f0fe: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800f102: 4b32 ldr r3, [pc, #200] ; (800f1cc ) 800f104: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800f108: b29b uxth r3, r3 800f10a: 461d mov r5, r3 800f10c: 79fb ldrb r3, [r7, #7] 800f10e: 4a2f ldr r2, [pc, #188] ; (800f1cc ) 800f110: 015b lsls r3, r3, #5 800f112: 4413 add r3, r2 800f114: 3304 adds r3, #4 800f116: 881b ldrh r3, [r3, #0] 800f118: b29b uxth r3, r3 800f11a: 461c mov r4, r3 800f11c: 4a2f ldr r2, [pc, #188] ; (800f1dc ) 800f11e: 00eb lsls r3, r5, #3 800f120: 4423 add r3, r4 800f122: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800f126: 2303 movs r3, #3 800f128: f7f5 ff14 bl 8004f54 if(pardata.LANG == RUS) 800f12c: 4b27 ldr r3, [pc, #156] ; (800f1cc ) 800f12e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800f132: b29b uxth r3, r3 800f134: 2b00 cmp r3, #0 800f136: d11e bne.n 800f176 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800f138: 79fb ldrb r3, [r7, #7] 800f13a: 4a29 ldr r2, [pc, #164] ; (800f1e0 ) 800f13c: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800f140: 3305 adds r3, #5 800f142: b298 uxth r0, r3 800f144: 79fb ldrb r3, [r7, #7] 800f146: 4a27 ldr r2, [pc, #156] ; (800f1e4 ) 800f148: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800f14c: 79fb ldrb r3, [r7, #7] 800f14e: 4a1f ldr r2, [pc, #124] ; (800f1cc ) 800f150: 015b lsls r3, r3, #5 800f152: 4413 add r3, r2 800f154: 3312 adds r3, #18 800f156: 881b ldrh r3, [r3, #0] 800f158: b29b uxth r3, r3 800f15a: 461a mov r2, r3 800f15c: 4922 ldr r1, [pc, #136] ; (800f1e8 ) 800f15e: 4613 mov r3, r2 800f160: 015b lsls r3, r3, #5 800f162: 4413 add r3, r2 800f164: 6b3a ldr r2, [r7, #48] ; 0x30 800f166: 4413 add r3, r2 800f168: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800f16c: 2303 movs r3, #3 800f16e: 4621 mov r1, r4 800f170: f7f5 fef0 bl 8004f54 } 800f174: e01f b.n 800f1b6 else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE); 800f176: 79fb ldrb r3, [r7, #7] 800f178: 4a19 ldr r2, [pc, #100] ; (800f1e0 ) 800f17a: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800f17e: 3b09 subs r3, #9 800f180: b298 uxth r0, r3 800f182: 79fb ldrb r3, [r7, #7] 800f184: 4a17 ldr r2, [pc, #92] ; (800f1e4 ) 800f186: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800f18a: 79fb ldrb r3, [r7, #7] 800f18c: 4a0f ldr r2, [pc, #60] ; (800f1cc ) 800f18e: 015b lsls r3, r3, #5 800f190: 4413 add r3, r2 800f192: 3312 adds r3, #18 800f194: 881b ldrh r3, [r3, #0] 800f196: b29b uxth r3, r3 800f198: 461a mov r2, r3 800f19a: 4914 ldr r1, [pc, #80] ; (800f1ec ) 800f19c: 4613 mov r3, r2 800f19e: 009b lsls r3, r3, #2 800f1a0: 4413 add r3, r2 800f1a2: 009a lsls r2, r3, #2 800f1a4: 4413 add r3, r2 800f1a6: 6b3a ldr r2, [r7, #48] ; 0x30 800f1a8: 4413 add r3, r2 800f1aa: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800f1ae: 2303 movs r3, #3 800f1b0: 4621 mov r1, r4 800f1b2: f7f5 fecf bl 8004f54 } 800f1b6: bf00 nop 800f1b8: 3738 adds r7, #56 ; 0x38 800f1ba: 46bd mov sp, r7 800f1bc: bdb0 pop {r4, r5, r7, pc} 800f1be: bf00 nop 800f1c0: ffd8aa57 .word 0xffd8aa57 800f1c4: 0801ae20 .word 0x0801ae20 800f1c8: 0801ae28 .word 0x0801ae28 800f1cc: 2006bca8 .word 0x2006bca8 800f1d0: 20020054 .word 0x20020054 800f1d4: 0801ae30 .word 0x0801ae30 800f1d8: 0801ae38 .word 0x0801ae38 800f1dc: 2002007c .word 0x2002007c 800f1e0: 0801ae10 .word 0x0801ae10 800f1e4: 0801ae40 .word 0x0801ae40 800f1e8: 2002013c .word 0x2002013c 800f1ec: 200205e0 .word 0x200205e0 0800f1f0 : void DrawButtons(void) { 800f1f0: b580 push {r7, lr} 800f1f2: af00 add r7, sp, #0 if(menupos == Set100) 800f1f4: 4ba1 ldr r3, [pc, #644] ; (800f47c ) 800f1f6: 781b ldrb r3, [r3, #0] 800f1f8: b2db uxtb r3, r3 800f1fa: 2b00 cmp r3, #0 800f1fc: d106 bne.n 800f20c LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800f1fe: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f202: f04f 30ff mov.w r0, #4294967295 800f206: f7f5 fddf bl 8004dc8 800f20a: e004 b.n 800f216 else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800f20c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f210: 489b ldr r0, [pc, #620] ; (800f480 ) 800f212: f7f5 fdd9 bl 8004dc8 BSP_LCD_FillRect(120, 40, 80, 20); //+100 800f216: 2314 movs r3, #20 800f218: 2250 movs r2, #80 ; 0x50 800f21a: 2128 movs r1, #40 ; 0x28 800f21c: 2078 movs r0, #120 ; 0x78 800f21e: f7f6 f995 bl 800554c if(menupos == Set_100) 800f222: 4b96 ldr r3, [pc, #600] ; (800f47c ) 800f224: 781b ldrb r3, [r3, #0] 800f226: b2db uxtb r3, r3 800f228: 2b01 cmp r3, #1 800f22a: d106 bne.n 800f23a LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800f22c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f230: f04f 30ff mov.w r0, #4294967295 800f234: f7f5 fdc8 bl 8004dc8 800f238: e004 b.n 800f244 else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800f23a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f23e: 4890 ldr r0, [pc, #576] ; (800f480 ) 800f240: f7f5 fdc2 bl 8004dc8 BSP_LCD_FillRect(120, 65, 80, 20); //-100 800f244: 2314 movs r3, #20 800f246: 2250 movs r2, #80 ; 0x50 800f248: 2141 movs r1, #65 ; 0x41 800f24a: 2078 movs r0, #120 ; 0x78 800f24c: f7f6 f97e bl 800554c if(menupos == Set10) 800f250: 4b8a ldr r3, [pc, #552] ; (800f47c ) 800f252: 781b ldrb r3, [r3, #0] 800f254: b2db uxtb r3, r3 800f256: 2b02 cmp r3, #2 800f258: d106 bne.n 800f268 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800f25a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f25e: f04f 30ff mov.w r0, #4294967295 800f262: f7f5 fdb1 bl 8004dc8 800f266: e004 b.n 800f272 else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800f268: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f26c: 4884 ldr r0, [pc, #528] ; (800f480 ) 800f26e: f7f5 fdab bl 8004dc8 BSP_LCD_FillRect(120, 90, 80, 20); //+10 800f272: 2314 movs r3, #20 800f274: 2250 movs r2, #80 ; 0x50 800f276: 215a movs r1, #90 ; 0x5a 800f278: 2078 movs r0, #120 ; 0x78 800f27a: f7f6 f967 bl 800554c if(menupos == Set_10) 800f27e: 4b7f ldr r3, [pc, #508] ; (800f47c ) 800f280: 781b ldrb r3, [r3, #0] 800f282: b2db uxtb r3, r3 800f284: 2b03 cmp r3, #3 800f286: d106 bne.n 800f296 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800f288: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f28c: f04f 30ff mov.w r0, #4294967295 800f290: f7f5 fd9a bl 8004dc8 800f294: e004 b.n 800f2a0 else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800f296: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f29a: 4879 ldr r0, [pc, #484] ; (800f480 ) 800f29c: f7f5 fd94 bl 8004dc8 BSP_LCD_FillRect(120, 115, 80, 20); //-10 800f2a0: 2314 movs r3, #20 800f2a2: 2250 movs r2, #80 ; 0x50 800f2a4: 2173 movs r1, #115 ; 0x73 800f2a6: 2078 movs r0, #120 ; 0x78 800f2a8: f7f6 f950 bl 800554c if(menupos == Set1) 800f2ac: 4b73 ldr r3, [pc, #460] ; (800f47c ) 800f2ae: 781b ldrb r3, [r3, #0] 800f2b0: b2db uxtb r3, r3 800f2b2: 2b04 cmp r3, #4 800f2b4: d106 bne.n 800f2c4 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800f2b6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f2ba: f04f 30ff mov.w r0, #4294967295 800f2be: f7f5 fd83 bl 8004dc8 800f2c2: e004 b.n 800f2ce else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800f2c4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f2c8: 486d ldr r0, [pc, #436] ; (800f480 ) 800f2ca: f7f5 fd7d bl 8004dc8 BSP_LCD_FillRect(120, 140, 80, 20); //+1 800f2ce: 2314 movs r3, #20 800f2d0: 2250 movs r2, #80 ; 0x50 800f2d2: 218c movs r1, #140 ; 0x8c 800f2d4: 2078 movs r0, #120 ; 0x78 800f2d6: f7f6 f939 bl 800554c if(menupos == Set_1) 800f2da: 4b68 ldr r3, [pc, #416] ; (800f47c ) 800f2dc: 781b ldrb r3, [r3, #0] 800f2de: b2db uxtb r3, r3 800f2e0: 2b05 cmp r3, #5 800f2e2: d106 bne.n 800f2f2 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800f2e4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f2e8: f04f 30ff mov.w r0, #4294967295 800f2ec: f7f5 fd6c bl 8004dc8 800f2f0: e004 b.n 800f2fc else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800f2f2: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f2f6: 4862 ldr r0, [pc, #392] ; (800f480 ) 800f2f8: f7f5 fd66 bl 8004dc8 BSP_LCD_FillRect(120, 165, 80, 20); //-1 800f2fc: 2314 movs r3, #20 800f2fe: 2250 movs r2, #80 ; 0x50 800f300: 21a5 movs r1, #165 ; 0xa5 800f302: 2078 movs r0, #120 ; 0x78 800f304: f7f6 f922 bl 800554c if(menupos == Next) 800f308: 4b5c ldr r3, [pc, #368] ; (800f47c ) 800f30a: 781b ldrb r3, [r3, #0] 800f30c: b2db uxtb r3, r3 800f30e: 2b06 cmp r3, #6 800f310: d106 bne.n 800f320 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800f312: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f316: f04f 30ff mov.w r0, #4294967295 800f31a: f7f5 fd55 bl 8004dc8 800f31e: e004 b.n 800f32a else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800f320: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f324: 4856 ldr r0, [pc, #344] ; (800f480 ) 800f326: f7f5 fd4f bl 8004dc8 BSP_LCD_FillRect(120, 190, 80, 20); //Next 800f32a: 2314 movs r3, #20 800f32c: 2250 movs r2, #80 ; 0x50 800f32e: 21be movs r1, #190 ; 0xbe 800f330: 2078 movs r0, #120 ; 0x78 800f332: f7f6 f90b bl 800554c //////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// if(menupos == Set100) 800f336: 4b51 ldr r3, [pc, #324] ; (800f47c ) 800f338: 781b ldrb r3, [r3, #0] 800f33a: b2db uxtb r3, r3 800f33c: 2b00 cmp r3, #0 800f33e: d106 bne.n 800f34e LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800f340: f04f 31ff mov.w r1, #4294967295 800f344: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f348: f7f5 fd3e bl 8004dc8 800f34c: e004 b.n 800f358 else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY); 800f34e: 494c ldr r1, [pc, #304] ; (800f480 ) 800f350: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f354: f7f5 fd38 bl 8004dc8 BSP_LCD_DisplayStringAt(160, 40+5, "+100", CENTER_MODE); 800f358: 2301 movs r3, #1 800f35a: 4a4a ldr r2, [pc, #296] ; (800f484 ) 800f35c: 212d movs r1, #45 ; 0x2d 800f35e: 20a0 movs r0, #160 ; 0xa0 800f360: f7f5 fdf8 bl 8004f54 if(menupos == Set_100) 800f364: 4b45 ldr r3, [pc, #276] ; (800f47c ) 800f366: 781b ldrb r3, [r3, #0] 800f368: b2db uxtb r3, r3 800f36a: 2b01 cmp r3, #1 800f36c: d106 bne.n 800f37c LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800f36e: f04f 31ff mov.w r1, #4294967295 800f372: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f376: f7f5 fd27 bl 8004dc8 800f37a: e004 b.n 800f386 else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY); 800f37c: 4940 ldr r1, [pc, #256] ; (800f480 ) 800f37e: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f382: f7f5 fd21 bl 8004dc8 BSP_LCD_DisplayStringAt(160, 65+5, "-100", CENTER_MODE); 800f386: 2301 movs r3, #1 800f388: 4a3f ldr r2, [pc, #252] ; (800f488 ) 800f38a: 2146 movs r1, #70 ; 0x46 800f38c: 20a0 movs r0, #160 ; 0xa0 800f38e: f7f5 fde1 bl 8004f54 if(menupos == Set10) 800f392: 4b3a ldr r3, [pc, #232] ; (800f47c ) 800f394: 781b ldrb r3, [r3, #0] 800f396: b2db uxtb r3, r3 800f398: 2b02 cmp r3, #2 800f39a: d106 bne.n 800f3aa LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800f39c: f04f 31ff mov.w r1, #4294967295 800f3a0: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f3a4: f7f5 fd10 bl 8004dc8 800f3a8: e004 b.n 800f3b4 else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY); 800f3aa: 4935 ldr r1, [pc, #212] ; (800f480 ) 800f3ac: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f3b0: f7f5 fd0a bl 8004dc8 BSP_LCD_DisplayStringAt(160, 90+5, "+10", CENTER_MODE); 800f3b4: 2301 movs r3, #1 800f3b6: 4a35 ldr r2, [pc, #212] ; (800f48c ) 800f3b8: 215f movs r1, #95 ; 0x5f 800f3ba: 20a0 movs r0, #160 ; 0xa0 800f3bc: f7f5 fdca bl 8004f54 if(menupos == Set_10) 800f3c0: 4b2e ldr r3, [pc, #184] ; (800f47c ) 800f3c2: 781b ldrb r3, [r3, #0] 800f3c4: b2db uxtb r3, r3 800f3c6: 2b03 cmp r3, #3 800f3c8: d106 bne.n 800f3d8 LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800f3ca: f04f 31ff mov.w r1, #4294967295 800f3ce: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f3d2: f7f5 fcf9 bl 8004dc8 800f3d6: e004 b.n 800f3e2 else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY); 800f3d8: 4929 ldr r1, [pc, #164] ; (800f480 ) 800f3da: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f3de: f7f5 fcf3 bl 8004dc8 BSP_LCD_DisplayStringAt(160, 115+5, "-10", CENTER_MODE); 800f3e2: 2301 movs r3, #1 800f3e4: 4a2a ldr r2, [pc, #168] ; (800f490 ) 800f3e6: 2178 movs r1, #120 ; 0x78 800f3e8: 20a0 movs r0, #160 ; 0xa0 800f3ea: f7f5 fdb3 bl 8004f54 if(menupos == Set1) 800f3ee: 4b23 ldr r3, [pc, #140] ; (800f47c ) 800f3f0: 781b ldrb r3, [r3, #0] 800f3f2: b2db uxtb r3, r3 800f3f4: 2b04 cmp r3, #4 800f3f6: d106 bne.n 800f406 LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800f3f8: f04f 31ff mov.w r1, #4294967295 800f3fc: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f400: f7f5 fce2 bl 8004dc8 800f404: e004 b.n 800f410 else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY); 800f406: 491e ldr r1, [pc, #120] ; (800f480 ) 800f408: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f40c: f7f5 fcdc bl 8004dc8 BSP_LCD_DisplayStringAt(160, 140+5, "+1", CENTER_MODE); 800f410: 2301 movs r3, #1 800f412: 4a20 ldr r2, [pc, #128] ; (800f494 ) 800f414: 2191 movs r1, #145 ; 0x91 800f416: 20a0 movs r0, #160 ; 0xa0 800f418: f7f5 fd9c bl 8004f54 if(menupos == Set_1) 800f41c: 4b17 ldr r3, [pc, #92] ; (800f47c ) 800f41e: 781b ldrb r3, [r3, #0] 800f420: b2db uxtb r3, r3 800f422: 2b05 cmp r3, #5 800f424: d106 bne.n 800f434 LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800f426: f04f 31ff mov.w r1, #4294967295 800f42a: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f42e: f7f5 fccb bl 8004dc8 800f432: e004 b.n 800f43e else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY); 800f434: 4912 ldr r1, [pc, #72] ; (800f480 ) 800f436: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f43a: f7f5 fcc5 bl 8004dc8 BSP_LCD_DisplayStringAt(160, 165+5, "-1", CENTER_MODE); 800f43e: 2301 movs r3, #1 800f440: 4a15 ldr r2, [pc, #84] ; (800f498 ) 800f442: 21aa movs r1, #170 ; 0xaa 800f444: 20a0 movs r0, #160 ; 0xa0 800f446: f7f5 fd85 bl 8004f54 if(menupos == Next) 800f44a: 4b0c ldr r3, [pc, #48] ; (800f47c ) 800f44c: 781b ldrb r3, [r3, #0] 800f44e: b2db uxtb r3, r3 800f450: 2b06 cmp r3, #6 800f452: d106 bne.n 800f462 LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800f454: f04f 31ff mov.w r1, #4294967295 800f458: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f45c: f7f5 fcb4 bl 8004dc8 800f460: e004 b.n 800f46c else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY); 800f462: 4907 ldr r1, [pc, #28] ; (800f480 ) 800f464: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f468: f7f5 fcae bl 8004dc8 BSP_LCD_DisplayStringAt(160, 190+5, "Далее", CENTER_MODE); 800f46c: 2301 movs r3, #1 800f46e: 4a0b ldr r2, [pc, #44] ; (800f49c ) 800f470: 21c3 movs r1, #195 ; 0xc3 800f472: 20a0 movs r0, #160 ; 0xa0 800f474: f7f5 fd6e bl 8004f54 } 800f478: bf00 nop 800f47a: bd80 pop {r7, pc} 800f47c: 20020010 .word 0x20020010 800f480: ff808080 .word 0xff808080 800f484: 08018598 .word 0x08018598 800f488: 080185a0 .word 0x080185a0 800f48c: 080185a8 .word 0x080185a8 800f490: 080185ac .word 0x080185ac 800f494: 080185b0 .word 0x080185b0 800f498: 080185b4 .word 0x080185b4 800f49c: 080185b8 .word 0x080185b8 0800f4a0 : char * FloatToASCII(float32_t Val, int32_t RoundTo) { 800f4a0: b580 push {r7, lr} 800f4a2: b098 sub sp, #96 ; 0x60 800f4a4: af00 add r7, sp, #0 800f4a6: ed87 0a01 vstr s0, [r7, #4] 800f4aa: 6038 str r0, [r7, #0] uint8_t idx = 0; 800f4ac: 2300 movs r3, #0 800f4ae: f887 305f strb.w r3, [r7, #95] ; 0x5f int32_t i; float32_t value, F, I; uint32_t rnd = 0; 800f4b2: 2300 movs r3, #0 800f4b4: 653b str r3, [r7, #80] ; 0x50 uint32_t Tmp32 = 0; 800f4b6: 2300 movs r3, #0 800f4b8: 63fb str r3, [r7, #60] ; 0x3c uint32_t Int32 = 0; 800f4ba: 2300 movs r3, #0 800f4bc: 64fb str r3, [r7, #76] ; 0x4c uint32_t Frac32 = 0; 800f4be: 2300 movs r3, #0 800f4c0: 64bb str r3, [r7, #72] ; 0x48 uint32_t _I32 = 0; 800f4c2: 2300 movs r3, #0 800f4c4: 63bb str r3, [r7, #56] ; 0x38 uint32_t _F32 = 0; 800f4c6: 2300 movs r3, #0 800f4c8: 637b str r3, [r7, #52] ; 0x34 uint32_t d = 0, dd = 0; 800f4ca: 2300 movs r3, #0 800f4cc: 647b str r3, [r7, #68] ; 0x44 800f4ce: 2300 movs r3, #0 800f4d0: 643b str r3, [r7, #64] ; 0x40 char tmparray[32]; volatile bool minus = false; 800f4d2: 2300 movs r3, #0 800f4d4: 72fb strb r3, [r7, #11] memset(tmparray, 0, 32); 800f4d6: f107 030c add.w r3, r7, #12 800f4da: 2220 movs r2, #32 800f4dc: 2100 movs r1, #0 800f4de: 4618 mov r0, r3 800f4e0: f006 fffb bl 80164da memset(pString, 0, 16); 800f4e4: 2210 movs r2, #16 800f4e6: 2100 movs r1, #0 800f4e8: 48b7 ldr r0, [pc, #732] ; (800f7c8 ) 800f4ea: f006 fff6 bl 80164da value = Val; 800f4ee: 687b ldr r3, [r7, #4] 800f4f0: 633b str r3, [r7, #48] ; 0x30 if(value < 0) 800f4f2: edd7 7a0c vldr s15, [r7, #48] ; 0x30 800f4f6: eef5 7ac0 vcmpe.f32 s15, #0.0 800f4fa: eef1 fa10 vmrs APSR_nzcv, fpscr 800f4fe: d501 bpl.n 800f504 minus = true; 800f500: 2301 movs r3, #1 800f502: 72fb strb r3, [r7, #11] if(Val > 99999.0) 800f504: edd7 7a01 vldr s15, [r7, #4] 800f508: ed9f 7ab0 vldr s14, [pc, #704] ; 800f7cc 800f50c: eef4 7ac7 vcmpe.f32 s15, s14 800f510: eef1 fa10 vmrs APSR_nzcv, fpscr 800f514: dd30 ble.n 800f578 { if(Val < 0) 800f516: edd7 7a01 vldr s15, [r7, #4] 800f51a: eef5 7ac0 vcmpe.f32 s15, #0.0 800f51e: eef1 fa10 vmrs APSR_nzcv, fpscr 800f522: d515 bpl.n 800f550 { pString[0] = '1'; 800f524: 4ba8 ldr r3, [pc, #672] ; (800f7c8 ) 800f526: 2231 movs r2, #49 ; 0x31 800f528: 701a strb r2, [r3, #0] pString[1] = '.'; 800f52a: 4ba7 ldr r3, [pc, #668] ; (800f7c8 ) 800f52c: 222e movs r2, #46 ; 0x2e 800f52e: 705a strb r2, [r3, #1] pString[2] = '0'; 800f530: 4ba5 ldr r3, [pc, #660] ; (800f7c8 ) 800f532: 2230 movs r2, #48 ; 0x30 800f534: 709a strb r2, [r3, #2] pString[3] = '0'; 800f536: 4ba4 ldr r3, [pc, #656] ; (800f7c8 ) 800f538: 2230 movs r2, #48 ; 0x30 800f53a: 70da strb r2, [r3, #3] pString[4] = '0'; 800f53c: 4ba2 ldr r3, [pc, #648] ; (800f7c8 ) 800f53e: 2230 movs r2, #48 ; 0x30 800f540: 711a strb r2, [r3, #4] pString[5] = '0'; 800f542: 4ba1 ldr r3, [pc, #644] ; (800f7c8 ) 800f544: 2230 movs r2, #48 ; 0x30 800f546: 715a strb r2, [r3, #5] pString[6] = '\0'; 800f548: 4b9f ldr r3, [pc, #636] ; (800f7c8 ) 800f54a: 2200 movs r2, #0 800f54c: 719a strb r2, [r3, #6] 800f54e: e011 b.n 800f574 } else { pString[0] = '9'; 800f550: 4b9d ldr r3, [pc, #628] ; (800f7c8 ) 800f552: 2239 movs r2, #57 ; 0x39 800f554: 701a strb r2, [r3, #0] pString[1] = '9'; 800f556: 4b9c ldr r3, [pc, #624] ; (800f7c8 ) 800f558: 2239 movs r2, #57 ; 0x39 800f55a: 705a strb r2, [r3, #1] pString[2] = '9'; 800f55c: 4b9a ldr r3, [pc, #616] ; (800f7c8 ) 800f55e: 2239 movs r2, #57 ; 0x39 800f560: 709a strb r2, [r3, #2] pString[3] = '9'; 800f562: 4b99 ldr r3, [pc, #612] ; (800f7c8 ) 800f564: 2239 movs r2, #57 ; 0x39 800f566: 70da strb r2, [r3, #3] pString[4] = '9'; 800f568: 4b97 ldr r3, [pc, #604] ; (800f7c8 ) 800f56a: 2239 movs r2, #57 ; 0x39 800f56c: 711a strb r2, [r3, #4] pString[5] = '\0'; 800f56e: 4b96 ldr r3, [pc, #600] ; (800f7c8 ) 800f570: 2200 movs r2, #0 800f572: 715a strb r2, [r3, #5] } return pString; 800f574: 4b94 ldr r3, [pc, #592] ; (800f7c8 ) 800f576: e168 b.n 800f84a } value = ABS(Val); 800f578: edd7 7a01 vldr s15, [r7, #4] 800f57c: eef5 7ac0 vcmpe.f32 s15, #0.0 800f580: eef1 fa10 vmrs APSR_nzcv, fpscr 800f584: dd02 ble.n 800f58c 800f586: edd7 7a01 vldr s15, [r7, #4] 800f58a: e003 b.n 800f594 800f58c: edd7 7a01 vldr s15, [r7, #4] 800f590: eef1 7a67 vneg.f32 s15, s15 800f594: edc7 7a0c vstr s15, [r7, #48] ; 0x30 rnd = ABS(RoundTo); 800f598: 683b ldr r3, [r7, #0] 800f59a: 2b00 cmp r3, #0 800f59c: bfb8 it lt 800f59e: 425b neglt r3, r3 800f5a0: 653b str r3, [r7, #80] ; 0x50 if(RoundTo < 0) 800f5a2: 683b ldr r3, [r7, #0] 800f5a4: 2b00 cmp r3, #0 800f5a6: da47 bge.n 800f638 { F = modff(value, &I); 800f5a8: f107 032c add.w r3, r7, #44 ; 0x2c 800f5ac: 4618 mov r0, r3 800f5ae: ed97 0a0c vldr s0, [r7, #48] ; 0x30 800f5b2: f006 ff15 bl 80163e0 800f5b6: ed87 0a15 vstr s0, [r7, #84] ; 0x54 while(rnd) 800f5ba: e00d b.n 800f5d8 { F *= 10.0f; 800f5bc: edd7 7a15 vldr s15, [r7, #84] ; 0x54 800f5c0: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 800f5c4: ee67 7a87 vmul.f32 s15, s15, s14 800f5c8: edc7 7a15 vstr s15, [r7, #84] ; 0x54 rnd--; 800f5cc: 6d3b ldr r3, [r7, #80] ; 0x50 800f5ce: 3b01 subs r3, #1 800f5d0: 653b str r3, [r7, #80] ; 0x50 d++; 800f5d2: 6c7b ldr r3, [r7, #68] ; 0x44 800f5d4: 3301 adds r3, #1 800f5d6: 647b str r3, [r7, #68] ; 0x44 while(rnd) 800f5d8: 6d3b ldr r3, [r7, #80] ; 0x50 800f5da: 2b00 cmp r3, #0 800f5dc: d1ee bne.n 800f5bc } F = roundf(F); 800f5de: ed97 0a15 vldr s0, [r7, #84] ; 0x54 800f5e2: f006 ff25 bl 8016430 800f5e6: ed87 0a15 vstr s0, [r7, #84] ; 0x54 dd = 1; 800f5ea: 2301 movs r3, #1 800f5ec: 643b str r3, [r7, #64] ; 0x40 for(i = 0; i < d; i++) 800f5ee: 2300 movs r3, #0 800f5f0: 65bb str r3, [r7, #88] ; 0x58 800f5f2: e008 b.n 800f606 dd *= 10; 800f5f4: 6c3a ldr r2, [r7, #64] ; 0x40 800f5f6: 4613 mov r3, r2 800f5f8: 009b lsls r3, r3, #2 800f5fa: 4413 add r3, r2 800f5fc: 005b lsls r3, r3, #1 800f5fe: 643b str r3, [r7, #64] ; 0x40 for(i = 0; i < d; i++) 800f600: 6dbb ldr r3, [r7, #88] ; 0x58 800f602: 3301 adds r3, #1 800f604: 65bb str r3, [r7, #88] ; 0x58 800f606: 6dba ldr r2, [r7, #88] ; 0x58 800f608: 6c7b ldr r3, [r7, #68] ; 0x44 800f60a: 429a cmp r2, r3 800f60c: d3f2 bcc.n 800f5f4 if((uint32_t) F == dd) 800f60e: edd7 7a15 vldr s15, [r7, #84] ; 0x54 800f612: eefc 7ae7 vcvt.u32.f32 s15, s15 800f616: ee17 2a90 vmov r2, s15 800f61a: 6c3b ldr r3, [r7, #64] ; 0x40 800f61c: 429a cmp r2, r3 800f61e: d116 bne.n 800f64e { F = 0; 800f620: f04f 0300 mov.w r3, #0 800f624: 657b str r3, [r7, #84] ; 0x54 I += 1; 800f626: edd7 7a0b vldr s15, [r7, #44] ; 0x2c 800f62a: eeb7 7a00 vmov.f32 s14, #112 ; 0x3f800000 1.0 800f62e: ee77 7a87 vadd.f32 s15, s15, s14 800f632: edc7 7a0b vstr s15, [r7, #44] ; 0x2c 800f636: e00a b.n 800f64e } } else { I = roundf(value); 800f638: ed97 0a0c vldr s0, [r7, #48] ; 0x30 800f63c: f006 fef8 bl 8016430 800f640: eef0 7a40 vmov.f32 s15, s0 800f644: edc7 7a0b vstr s15, [r7, #44] ; 0x2c F = 0.0f; 800f648: f04f 0300 mov.w r3, #0 800f64c: 657b str r3, [r7, #84] ; 0x54 } Int32 = (uint32_t) I; 800f64e: edd7 7a0b vldr s15, [r7, #44] ; 0x2c 800f652: eefc 7ae7 vcvt.u32.f32 s15, s15 800f656: ee17 3a90 vmov r3, s15 800f65a: 64fb str r3, [r7, #76] ; 0x4c Frac32 = (uint32_t) F; 800f65c: edd7 7a15 vldr s15, [r7, #84] ; 0x54 800f660: eefc 7ae7 vcvt.u32.f32 s15, s15 800f664: ee17 3a90 vmov r3, s15 800f668: 64bb str r3, [r7, #72] ; 0x48 _I32 = Int32; 800f66a: 6cfb ldr r3, [r7, #76] ; 0x4c 800f66c: 63bb str r3, [r7, #56] ; 0x38 _F32 = Frac32; 800f66e: 6cbb ldr r3, [r7, #72] ; 0x48 800f670: 637b str r3, [r7, #52] ; 0x34 idx = 0; 800f672: 2300 movs r3, #0 800f674: f887 305f strb.w r3, [r7, #95] ; 0x5f tmparray[idx++] = '\0'; 800f678: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800f67c: 1c5a adds r2, r3, #1 800f67e: f887 205f strb.w r2, [r7, #95] ; 0x5f 800f682: f107 0260 add.w r2, r7, #96 ; 0x60 800f686: 4413 add r3, r2 800f688: 2200 movs r2, #0 800f68a: f803 2c54 strb.w r2, [r3, #-84] if((Int32 == 0) && (Frac32 == 0)) 800f68e: 6cfb ldr r3, [r7, #76] ; 0x4c 800f690: 2b00 cmp r3, #0 800f692: d135 bne.n 800f700 800f694: 6cbb ldr r3, [r7, #72] ; 0x48 800f696: 2b00 cmp r3, #0 800f698: d132 bne.n 800f700 { if(RoundTo < 0) 800f69a: 683b ldr r3, [r7, #0] 800f69c: 2b00 cmp r3, #0 800f69e: da23 bge.n 800f6e8 { for(i = 0; i < ABS(RoundTo); i++) 800f6a0: 2300 movs r3, #0 800f6a2: 65bb str r3, [r7, #88] ; 0x58 800f6a4: e00d b.n 800f6c2 tmparray[idx++] = '0'; 800f6a6: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800f6aa: 1c5a adds r2, r3, #1 800f6ac: f887 205f strb.w r2, [r7, #95] ; 0x5f 800f6b0: f107 0260 add.w r2, r7, #96 ; 0x60 800f6b4: 4413 add r3, r2 800f6b6: 2230 movs r2, #48 ; 0x30 800f6b8: f803 2c54 strb.w r2, [r3, #-84] for(i = 0; i < ABS(RoundTo); i++) 800f6bc: 6dbb ldr r3, [r7, #88] ; 0x58 800f6be: 3301 adds r3, #1 800f6c0: 65bb str r3, [r7, #88] ; 0x58 800f6c2: 683b ldr r3, [r7, #0] 800f6c4: ea83 72e3 eor.w r2, r3, r3, asr #31 800f6c8: eba2 72e3 sub.w r2, r2, r3, asr #31 800f6cc: 6dbb ldr r3, [r7, #88] ; 0x58 800f6ce: 429a cmp r2, r3 800f6d0: dce9 bgt.n 800f6a6 tmparray[idx++] = '.'; 800f6d2: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800f6d6: 1c5a adds r2, r3, #1 800f6d8: f887 205f strb.w r2, [r7, #95] ; 0x5f 800f6dc: f107 0260 add.w r2, r7, #96 ; 0x60 800f6e0: 4413 add r3, r2 800f6e2: 222e movs r2, #46 ; 0x2e 800f6e4: f803 2c54 strb.w r2, [r3, #-84] } tmparray[idx++] = '0'; 800f6e8: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800f6ec: 1c5a adds r2, r3, #1 800f6ee: f887 205f strb.w r2, [r7, #95] ; 0x5f 800f6f2: f107 0260 add.w r2, r7, #96 ; 0x60 800f6f6: 4413 add r3, r2 800f6f8: 2230 movs r2, #48 ; 0x30 800f6fa: f803 2c54 strb.w r2, [r3, #-84] 800f6fe: e089 b.n 800f814 } else { if(RoundTo < 0) 800f700: 683b ldr r3, [r7, #0] 800f702: 2b00 cmp r3, #0 800f704: da38 bge.n 800f778 { for(i = 0; i < ABS(RoundTo); i++) 800f706: 2300 movs r3, #0 800f708: 65bb str r3, [r7, #88] ; 0x58 800f70a: e022 b.n 800f752 { Tmp32 = Frac32; 800f70c: 6cbb ldr r3, [r7, #72] ; 0x48 800f70e: 63fb str r3, [r7, #60] ; 0x3c Frac32 /= 10; 800f710: 6cbb ldr r3, [r7, #72] ; 0x48 800f712: 4a2f ldr r2, [pc, #188] ; (800f7d0 ) 800f714: fba2 2303 umull r2, r3, r2, r3 800f718: 08db lsrs r3, r3, #3 800f71a: 64bb str r3, [r7, #72] ; 0x48 Tmp32 = Tmp32 - Frac32 * 10; 800f71c: 6cba ldr r2, [r7, #72] ; 0x48 800f71e: 4613 mov r3, r2 800f720: 009b lsls r3, r3, #2 800f722: 4413 add r3, r2 800f724: 005b lsls r3, r3, #1 800f726: 461a mov r2, r3 800f728: 6bfb ldr r3, [r7, #60] ; 0x3c 800f72a: 1a9b subs r3, r3, r2 800f72c: 63fb str r3, [r7, #60] ; 0x3c tmparray[idx++] = '0' + Tmp32; 800f72e: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800f732: 1c5a adds r2, r3, #1 800f734: f887 205f strb.w r2, [r7, #95] ; 0x5f 800f738: 4619 mov r1, r3 800f73a: 6bfb ldr r3, [r7, #60] ; 0x3c 800f73c: b2db uxtb r3, r3 800f73e: 3330 adds r3, #48 ; 0x30 800f740: b2da uxtb r2, r3 800f742: f107 0360 add.w r3, r7, #96 ; 0x60 800f746: 440b add r3, r1 800f748: f803 2c54 strb.w r2, [r3, #-84] for(i = 0; i < ABS(RoundTo); i++) 800f74c: 6dbb ldr r3, [r7, #88] ; 0x58 800f74e: 3301 adds r3, #1 800f750: 65bb str r3, [r7, #88] ; 0x58 800f752: 683b ldr r3, [r7, #0] 800f754: ea83 72e3 eor.w r2, r3, r3, asr #31 800f758: eba2 72e3 sub.w r2, r2, r3, asr #31 800f75c: 6dbb ldr r3, [r7, #88] ; 0x58 800f75e: 429a cmp r2, r3 800f760: dcd4 bgt.n 800f70c } tmparray[idx++] = '.'; 800f762: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800f766: 1c5a adds r2, r3, #1 800f768: f887 205f strb.w r2, [r7, #95] ; 0x5f 800f76c: f107 0260 add.w r2, r7, #96 ; 0x60 800f770: 4413 add r3, r2 800f772: 222e movs r2, #46 ; 0x2e 800f774: f803 2c54 strb.w r2, [r3, #-84] } if(Int32 != 0) 800f778: 6cfb ldr r3, [r7, #76] ; 0x4c 800f77a: 2b00 cmp r3, #0 800f77c: d02a beq.n 800f7d4 { while(Int32) 800f77e: e01f b.n 800f7c0 { Tmp32 = Int32; 800f780: 6cfb ldr r3, [r7, #76] ; 0x4c 800f782: 63fb str r3, [r7, #60] ; 0x3c Int32 /= 10; 800f784: 6cfb ldr r3, [r7, #76] ; 0x4c 800f786: 4a12 ldr r2, [pc, #72] ; (800f7d0 ) 800f788: fba2 2303 umull r2, r3, r2, r3 800f78c: 08db lsrs r3, r3, #3 800f78e: 64fb str r3, [r7, #76] ; 0x4c Tmp32 = Tmp32 - Int32 * 10; 800f790: 6cfa ldr r2, [r7, #76] ; 0x4c 800f792: 4613 mov r3, r2 800f794: 009b lsls r3, r3, #2 800f796: 4413 add r3, r2 800f798: 005b lsls r3, r3, #1 800f79a: 461a mov r2, r3 800f79c: 6bfb ldr r3, [r7, #60] ; 0x3c 800f79e: 1a9b subs r3, r3, r2 800f7a0: 63fb str r3, [r7, #60] ; 0x3c tmparray[idx++] = '0' + Tmp32; 800f7a2: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800f7a6: 1c5a adds r2, r3, #1 800f7a8: f887 205f strb.w r2, [r7, #95] ; 0x5f 800f7ac: 4619 mov r1, r3 800f7ae: 6bfb ldr r3, [r7, #60] ; 0x3c 800f7b0: b2db uxtb r3, r3 800f7b2: 3330 adds r3, #48 ; 0x30 800f7b4: b2da uxtb r2, r3 800f7b6: f107 0360 add.w r3, r7, #96 ; 0x60 800f7ba: 440b add r3, r1 800f7bc: f803 2c54 strb.w r2, [r3, #-84] while(Int32) 800f7c0: 6cfb ldr r3, [r7, #76] ; 0x4c 800f7c2: 2b00 cmp r3, #0 800f7c4: d1dc bne.n 800f780 800f7c6: e010 b.n 800f7ea 800f7c8: 2006c24c .word 0x2006c24c 800f7cc: 47c34f80 .word 0x47c34f80 800f7d0: cccccccd .word 0xcccccccd } } else tmparray[idx++] = '0'; 800f7d4: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800f7d8: 1c5a adds r2, r3, #1 800f7da: f887 205f strb.w r2, [r7, #95] ; 0x5f 800f7de: f107 0260 add.w r2, r7, #96 ; 0x60 800f7e2: 4413 add r3, r2 800f7e4: 2230 movs r2, #48 ; 0x30 800f7e6: f803 2c54 strb.w r2, [r3, #-84] if(minus) 800f7ea: 7afb ldrb r3, [r7, #11] 800f7ec: b2db uxtb r3, r3 800f7ee: 2b00 cmp r3, #0 800f7f0: d010 beq.n 800f814 { if((_I32 != 0) || (_F32 != 0)) 800f7f2: 6bbb ldr r3, [r7, #56] ; 0x38 800f7f4: 2b00 cmp r3, #0 800f7f6: d102 bne.n 800f7fe 800f7f8: 6b7b ldr r3, [r7, #52] ; 0x34 800f7fa: 2b00 cmp r3, #0 800f7fc: d00a beq.n 800f814 tmparray[idx++] = '-'; 800f7fe: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800f802: 1c5a adds r2, r3, #1 800f804: f887 205f strb.w r2, [r7, #95] ; 0x5f 800f808: f107 0260 add.w r2, r7, #96 ; 0x60 800f80c: 4413 add r3, r2 800f80e: 222d movs r2, #45 ; 0x2d 800f810: f803 2c54 strb.w r2, [r3, #-84] } } for(i = 0; i < idx; i++) 800f814: 2300 movs r3, #0 800f816: 65bb str r3, [r7, #88] ; 0x58 800f818: e011 b.n 800f83e pString[i] = tmparray[idx - i - 1]; 800f81a: f897 205f ldrb.w r2, [r7, #95] ; 0x5f 800f81e: 6dbb ldr r3, [r7, #88] ; 0x58 800f820: 1ad3 subs r3, r2, r3 800f822: 3b01 subs r3, #1 800f824: f107 0260 add.w r2, r7, #96 ; 0x60 800f828: 4413 add r3, r2 800f82a: f813 1c54 ldrb.w r1, [r3, #-84] 800f82e: 4a09 ldr r2, [pc, #36] ; (800f854 ) 800f830: 6dbb ldr r3, [r7, #88] ; 0x58 800f832: 4413 add r3, r2 800f834: 460a mov r2, r1 800f836: 701a strb r2, [r3, #0] for(i = 0; i < idx; i++) 800f838: 6dbb ldr r3, [r7, #88] ; 0x58 800f83a: 3301 adds r3, #1 800f83c: 65bb str r3, [r7, #88] ; 0x58 800f83e: f897 205f ldrb.w r2, [r7, #95] ; 0x5f 800f842: 6dbb ldr r3, [r7, #88] ; 0x58 800f844: 429a cmp r2, r3 800f846: dce8 bgt.n 800f81a return pString; 800f848: 4b02 ldr r3, [pc, #8] ; (800f854 ) } 800f84a: 4618 mov r0, r3 800f84c: 3760 adds r7, #96 ; 0x60 800f84e: 46bd mov sp, r7 800f850: bd80 pop {r7, pc} 800f852: bf00 nop 800f854: 2006c24c .word 0x2006c24c 0800f858 : /* USER CODE END 0 */ /** * Initializes the Global MSP. */ void HAL_MspInit(void) { 800f858: b480 push {r7} 800f85a: b083 sub sp, #12 800f85c: af00 add r7, sp, #0 /* USER CODE BEGIN MspInit 0 */ /* USER CODE END MspInit 0 */ __HAL_RCC_PWR_CLK_ENABLE(); 800f85e: 4a0f ldr r2, [pc, #60] ; (800f89c ) 800f860: 4b0e ldr r3, [pc, #56] ; (800f89c ) 800f862: 6c1b ldr r3, [r3, #64] ; 0x40 800f864: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 800f868: 6413 str r3, [r2, #64] ; 0x40 800f86a: 4b0c ldr r3, [pc, #48] ; (800f89c ) 800f86c: 6c1b ldr r3, [r3, #64] ; 0x40 800f86e: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 800f872: 607b str r3, [r7, #4] 800f874: 687b ldr r3, [r7, #4] __HAL_RCC_SYSCFG_CLK_ENABLE(); 800f876: 4a09 ldr r2, [pc, #36] ; (800f89c ) 800f878: 4b08 ldr r3, [pc, #32] ; (800f89c ) 800f87a: 6c5b ldr r3, [r3, #68] ; 0x44 800f87c: f443 4380 orr.w r3, r3, #16384 ; 0x4000 800f880: 6453 str r3, [r2, #68] ; 0x44 800f882: 4b06 ldr r3, [pc, #24] ; (800f89c ) 800f884: 6c5b ldr r3, [r3, #68] ; 0x44 800f886: f403 4380 and.w r3, r3, #16384 ; 0x4000 800f88a: 603b str r3, [r7, #0] 800f88c: 683b ldr r3, [r7, #0] /* System interrupt init*/ /* USER CODE BEGIN MspInit 1 */ /* USER CODE END MspInit 1 */ } 800f88e: bf00 nop 800f890: 370c adds r7, #12 800f892: 46bd mov sp, r7 800f894: f85d 7b04 ldr.w r7, [sp], #4 800f898: 4770 bx lr 800f89a: bf00 nop 800f89c: 40023800 .word 0x40023800 0800f8a0 : /******************************************************************************/ /** * @brief This function handles Non maskable interrupt. */ void NMI_Handler(void) { 800f8a0: b480 push {r7} 800f8a2: af00 add r7, sp, #0 /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ /* USER CODE END NonMaskableInt_IRQn 0 */ /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ while (1) 800f8a4: e7fe b.n 800f8a4 0800f8a6 : /** * @brief This function handles Hard fault interrupt. */ void HardFault_Handler(void) { 800f8a6: b480 push {r7} 800f8a8: af00 add r7, sp, #0 /* USER CODE BEGIN HardFault_IRQn 0 */ /* USER CODE END HardFault_IRQn 0 */ while (1) 800f8aa: e7fe b.n 800f8aa 0800f8ac : /** * @brief This function handles Memory management fault. */ void MemManage_Handler(void) { 800f8ac: b480 push {r7} 800f8ae: af00 add r7, sp, #0 /* USER CODE BEGIN MemoryManagement_IRQn 0 */ /* USER CODE END MemoryManagement_IRQn 0 */ while (1) 800f8b0: e7fe b.n 800f8b0 0800f8b2 : /** * @brief This function handles Pre-fetch fault, memory access fault. */ void BusFault_Handler(void) { 800f8b2: b480 push {r7} 800f8b4: af00 add r7, sp, #0 /* USER CODE BEGIN BusFault_IRQn 0 */ /* USER CODE END BusFault_IRQn 0 */ while (1) 800f8b6: e7fe b.n 800f8b6 0800f8b8 : /** * @brief This function handles Undefined instruction or illegal state. */ void UsageFault_Handler(void) { 800f8b8: b480 push {r7} 800f8ba: af00 add r7, sp, #0 /* USER CODE BEGIN UsageFault_IRQn 0 */ /* USER CODE END UsageFault_IRQn 0 */ while (1) 800f8bc: e7fe b.n 800f8bc 0800f8be : /** * @brief This function handles System service call via SWI instruction. */ void SVC_Handler(void) { 800f8be: b480 push {r7} 800f8c0: af00 add r7, sp, #0 /* USER CODE END SVCall_IRQn 0 */ /* USER CODE BEGIN SVCall_IRQn 1 */ /* USER CODE END SVCall_IRQn 1 */ } 800f8c2: bf00 nop 800f8c4: 46bd mov sp, r7 800f8c6: f85d 7b04 ldr.w r7, [sp], #4 800f8ca: 4770 bx lr 0800f8cc : /** * @brief This function handles Debug monitor. */ void DebugMon_Handler(void) { 800f8cc: b480 push {r7} 800f8ce: af00 add r7, sp, #0 /* USER CODE END DebugMonitor_IRQn 0 */ /* USER CODE BEGIN DebugMonitor_IRQn 1 */ /* USER CODE END DebugMonitor_IRQn 1 */ } 800f8d0: bf00 nop 800f8d2: 46bd mov sp, r7 800f8d4: f85d 7b04 ldr.w r7, [sp], #4 800f8d8: 4770 bx lr 0800f8da : /** * @brief This function handles Pendable request for system service. */ void PendSV_Handler(void) { 800f8da: b480 push {r7} 800f8dc: af00 add r7, sp, #0 /* USER CODE END PendSV_IRQn 0 */ /* USER CODE BEGIN PendSV_IRQn 1 */ /* USER CODE END PendSV_IRQn 1 */ } 800f8de: bf00 nop 800f8e0: 46bd mov sp, r7 800f8e2: f85d 7b04 ldr.w r7, [sp], #4 800f8e6: 4770 bx lr 0800f8e8 : /** * @brief This function handles System tick timer. */ void SysTick_Handler(void) { 800f8e8: b580 push {r7, lr} 800f8ea: af00 add r7, sp, #0 /* USER CODE BEGIN SysTick_IRQn 0 */ /* USER CODE END SysTick_IRQn 0 */ HAL_IncTick(); 800f8ec: f001 fe62 bl 80115b4 /* USER CODE BEGIN SysTick_IRQn 1 */ /* USER CODE END SysTick_IRQn 1 */ } 800f8f0: bf00 nop 800f8f2: bd80 pop {r7, pc} 0800f8f4 : /** * @brief This function handles EXTI line2 interrupt. */ void EXTI2_IRQHandler(void) { 800f8f4: b580 push {r7, lr} 800f8f6: af00 add r7, sp, #0 /* USER CODE BEGIN EXTI2_IRQn 0 */ /* USER CODE END EXTI2_IRQn 0 */ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2); 800f8f8: 2004 movs r0, #4 800f8fa: f003 f9c1 bl 8012c80 /* USER CODE BEGIN EXTI2_IRQn 1 */ /* USER CODE END EXTI2_IRQn 1 */ } 800f8fe: bf00 nop 800f900: bd80 pop {r7, pc} 0800f902 : /** * @brief This function handles EXTI line3 interrupt. */ void EXTI3_IRQHandler(void) { 800f902: b580 push {r7, lr} 800f904: af00 add r7, sp, #0 /* USER CODE BEGIN EXTI3_IRQn 0 */ /* USER CODE END EXTI3_IRQn 0 */ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_3); 800f906: 2008 movs r0, #8 800f908: f003 f9ba bl 8012c80 /* USER CODE BEGIN EXTI3_IRQn 1 */ /* USER CODE END EXTI3_IRQn 1 */ } 800f90c: bf00 nop 800f90e: bd80 pop {r7, pc} 0800f910 : /** * @brief This function handles TIM7 global interrupt. */ void TIM7_IRQHandler(void) { 800f910: b580 push {r7, lr} 800f912: af00 add r7, sp, #0 /* USER CODE BEGIN TIM7_IRQn 0 */ /* USER CODE END TIM7_IRQn 0 */ HAL_TIM_IRQHandler(&htim7); 800f914: 4802 ldr r0, [pc, #8] ; (800f920 ) 800f916: f004 ff15 bl 8014744 /* USER CODE BEGIN TIM7_IRQn 1 */ /* USER CODE END TIM7_IRQn 1 */ } 800f91a: bf00 nop 800f91c: bd80 pop {r7, pc} 800f91e: bf00 nop 800f920: 2006c3e8 .word 0x2006c3e8 0800f924 : * @brief This function handles DMA2 stream3 global interrupt. */ void DMA2_Stream1_IRQHandler(void) { 800f924: b580 push {r7, lr} 800f926: af00 add r7, sp, #0 /* USER CODE BEGIN DMA2_Stream3_IRQn 0 */ /* USER CODE END DMA2_Stream3_IRQn 0 */ HAL_DMA_IRQHandler(&hdma_adc3); 800f928: 4802 ldr r0, [pc, #8] ; (800f934 ) 800f92a: f002 f857 bl 80119dc /* USER CODE BEGIN DMA2_Stream3_IRQn 1 */ /* USER CODE END DMA2_Stream3_IRQn 1 */ } 800f92e: bf00 nop 800f930: bd80 pop {r7, pc} 800f932: bf00 nop 800f934: 2006bae0 .word 0x2006bae0 0800f938 : /** * @brief This function handles DMA2 stream4 global interrupt. */ void DMA2_Stream4_IRQHandler(void) { 800f938: b580 push {r7, lr} 800f93a: af00 add r7, sp, #0 /* USER CODE BEGIN DMA2_Stream4_IRQn 0 */ /* USER CODE END DMA2_Stream4_IRQn 0 */ HAL_DMA_IRQHandler(&hdma_adc1); 800f93c: 4802 ldr r0, [pc, #8] ; (800f948 ) 800f93e: f002 f84d bl 80119dc /* USER CODE BEGIN DMA2_Stream4_IRQn 1 */ /* USER CODE END DMA2_Stream4_IRQn 1 */ } 800f942: bf00 nop 800f944: bd80 pop {r7, pc} 800f946: bf00 nop 800f948: 2006bbd0 .word 0x2006bbd0 0800f94c : /** * @brief This function handles LTDC global interrupt. */ void LTDC_IRQHandler(void) { 800f94c: b580 push {r7, lr} 800f94e: af00 add r7, sp, #0 /* USER CODE BEGIN LTDC_IRQn 0 */ /* USER CODE END LTDC_IRQn 0 */ HAL_LTDC_IRQHandler(&hLtdcHandler); 800f950: 4802 ldr r0, [pc, #8] ; (800f95c ) 800f952: f003 fa7d bl 8012e50 /* USER CODE BEGIN LTDC_IRQn 1 */ /* USER CODE END LTDC_IRQn 1 */ } 800f956: bf00 nop 800f958: bd80 pop {r7, pc} 800f95a: bf00 nop 800f95c: 2006c174 .word 0x2006c174 0800f960 : /** * @brief This function handles LTDC global error interrupt. */ void LTDC_ER_IRQHandler(void) { 800f960: b580 push {r7, lr} 800f962: af00 add r7, sp, #0 /* USER CODE BEGIN LTDC_ER_IRQn 0 */ /* USER CODE END LTDC_ER_IRQn 0 */ HAL_LTDC_IRQHandler(&hLtdcHandler); 800f964: 4802 ldr r0, [pc, #8] ; (800f970 ) 800f966: f003 fa73 bl 8012e50 /* USER CODE BEGIN LTDC_ER_IRQn 1 */ /* USER CODE END LTDC_ER_IRQn 1 */ } 800f96a: bf00 nop 800f96c: bd80 pop {r7, pc} 800f96e: bf00 nop 800f970: 2006c174 .word 0x2006c174 0800f974 : * SystemFrequency variable. * @param None * @retval None */ void SystemInit(void) { 800f974: b480 push {r7} 800f976: af00 add r7, sp, #0 /* FPU settings ------------------------------------------------------------*/ #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ 800f978: 4a06 ldr r2, [pc, #24] ; (800f994 ) 800f97a: 4b06 ldr r3, [pc, #24] ; (800f994 ) 800f97c: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 800f980: f443 0370 orr.w r3, r3, #15728640 ; 0xf00000 800f984: f8c2 3088 str.w r3, [r2, #136] ; 0x88 /* Configure the Vector Table location -------------------------------------*/ #if defined(USER_VECT_TAB_ADDRESS) SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ #endif /* USER_VECT_TAB_ADDRESS */ } 800f988: bf00 nop 800f98a: 46bd mov sp, r7 800f98c: f85d 7b04 ldr.w r7, [sp], #4 800f990: 4770 bx lr 800f992: bf00 nop 800f994: e000ed00 .word 0xe000ed00 0800f998 : } /* TIM7 init function */ void MX_TIM7_Init(void) { 800f998: b580 push {r7, lr} 800f99a: b084 sub sp, #16 800f99c: af00 add r7, sp, #0 TIM_MasterConfigTypeDef sMasterConfig; htim7.Instance = TIM7; 800f99e: 4b16 ldr r3, [pc, #88] ; (800f9f8 ) 800f9a0: 4a16 ldr r2, [pc, #88] ; (800f9fc ) 800f9a2: 601a str r2, [r3, #0] htim7.Init.Prescaler = (10 - 1); 800f9a4: 4b14 ldr r3, [pc, #80] ; (800f9f8 ) 800f9a6: 2209 movs r2, #9 800f9a8: 605a str r2, [r3, #4] htim7.Init.CounterMode = TIM_COUNTERMODE_UP; 800f9aa: 4b13 ldr r3, [pc, #76] ; (800f9f8 ) 800f9ac: 2200 movs r2, #0 800f9ae: 609a str r2, [r3, #8] htim7.Init.Period = (54000 - 1); 800f9b0: 4b11 ldr r3, [pc, #68] ; (800f9f8 ) 800f9b2: f24d 22ef movw r2, #53999 ; 0xd2ef 800f9b6: 60da str r2, [r3, #12] htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; 800f9b8: 4b0f ldr r3, [pc, #60] ; (800f9f8 ) 800f9ba: 2200 movs r2, #0 800f9bc: 619a str r2, [r3, #24] if(HAL_TIM_Base_Init(&htim7) != HAL_OK) { 800f9be: 480e ldr r0, [pc, #56] ; (800f9f8 ) 800f9c0: f004 fdf0 bl 80145a4 800f9c4: 4603 mov r3, r0 800f9c6: 2b00 cmp r3, #0 800f9c8: d001 beq.n 800f9ce Error_Handler(); 800f9ca: f7f6 fa4b bl 8005e64 } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; 800f9ce: 2300 movs r3, #0 800f9d0: 607b str r3, [r7, #4] sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; 800f9d2: 2300 movs r3, #0 800f9d4: 60fb str r3, [r7, #12] if (HAL_TIMEx_MasterConfigSynchronization(&htim7, &sMasterConfig) != HAL_OK) { 800f9d6: 1d3b adds r3, r7, #4 800f9d8: 4619 mov r1, r3 800f9da: 4807 ldr r0, [pc, #28] ; (800f9f8 ) 800f9dc: f005 f89a bl 8014b14 800f9e0: 4603 mov r3, r0 800f9e2: 2b00 cmp r3, #0 800f9e4: d001 beq.n 800f9ea Error_Handler(); 800f9e6: f7f6 fa3d bl 8005e64 } HAL_TIM_Base_Start_IT(&htim7); 800f9ea: 4803 ldr r0, [pc, #12] ; (800f9f8 ) 800f9ec: f004 fe32 bl 8014654 } 800f9f0: bf00 nop 800f9f2: 3710 adds r7, #16 800f9f4: 46bd mov sp, r7 800f9f6: bd80 pop {r7, pc} 800f9f8: 2006c3e8 .word 0x2006c3e8 800f9fc: 40001400 .word 0x40001400 0800fa00 : void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) { 800fa00: b580 push {r7, lr} 800fa02: b086 sub sp, #24 800fa04: af00 add r7, sp, #0 800fa06: 6078 str r0, [r7, #4] if(tim_baseHandle->Instance == TIM1) 800fa08: 687b ldr r3, [r7, #4] 800fa0a: 681b ldr r3, [r3, #0] 800fa0c: 4a1f ldr r2, [pc, #124] ; (800fa8c ) 800fa0e: 4293 cmp r3, r2 800fa10: d10c bne.n 800fa2c { __HAL_RCC_TIM1_CLK_ENABLE(); 800fa12: 4a1f ldr r2, [pc, #124] ; (800fa90 ) 800fa14: 4b1e ldr r3, [pc, #120] ; (800fa90 ) 800fa16: 6c5b ldr r3, [r3, #68] ; 0x44 800fa18: f043 0301 orr.w r3, r3, #1 800fa1c: 6453 str r3, [r2, #68] ; 0x44 800fa1e: 4b1c ldr r3, [pc, #112] ; (800fa90 ) 800fa20: 6c5b ldr r3, [r3, #68] ; 0x44 800fa22: f003 0301 and.w r3, r3, #1 800fa26: 617b str r3, [r7, #20] 800fa28: 697b ldr r3, [r7, #20] { __HAL_RCC_TIM7_CLK_ENABLE(); HAL_NVIC_SetPriority(TIM7_IRQn, 3, 0); HAL_NVIC_EnableIRQ(TIM7_IRQn); } } 800fa2a: e02a b.n 800fa82 if(tim_baseHandle->Instance == TIM5) 800fa2c: 687b ldr r3, [r7, #4] 800fa2e: 681b ldr r3, [r3, #0] 800fa30: 4a18 ldr r2, [pc, #96] ; (800fa94 ) 800fa32: 4293 cmp r3, r2 800fa34: d10c bne.n 800fa50 __HAL_RCC_TIM5_CLK_ENABLE(); 800fa36: 4a16 ldr r2, [pc, #88] ; (800fa90 ) 800fa38: 4b15 ldr r3, [pc, #84] ; (800fa90 ) 800fa3a: 6c1b ldr r3, [r3, #64] ; 0x40 800fa3c: f043 0308 orr.w r3, r3, #8 800fa40: 6413 str r3, [r2, #64] ; 0x40 800fa42: 4b13 ldr r3, [pc, #76] ; (800fa90 ) 800fa44: 6c1b ldr r3, [r3, #64] ; 0x40 800fa46: f003 0308 and.w r3, r3, #8 800fa4a: 613b str r3, [r7, #16] 800fa4c: 693b ldr r3, [r7, #16] } 800fa4e: e018 b.n 800fa82 if(tim_baseHandle->Instance == TIM7) 800fa50: 687b ldr r3, [r7, #4] 800fa52: 681b ldr r3, [r3, #0] 800fa54: 4a10 ldr r2, [pc, #64] ; (800fa98 ) 800fa56: 4293 cmp r3, r2 800fa58: d113 bne.n 800fa82 __HAL_RCC_TIM7_CLK_ENABLE(); 800fa5a: 4a0d ldr r2, [pc, #52] ; (800fa90 ) 800fa5c: 4b0c ldr r3, [pc, #48] ; (800fa90 ) 800fa5e: 6c1b ldr r3, [r3, #64] ; 0x40 800fa60: f043 0320 orr.w r3, r3, #32 800fa64: 6413 str r3, [r2, #64] ; 0x40 800fa66: 4b0a ldr r3, [pc, #40] ; (800fa90 ) 800fa68: 6c1b ldr r3, [r3, #64] ; 0x40 800fa6a: f003 0320 and.w r3, r3, #32 800fa6e: 60fb str r3, [r7, #12] 800fa70: 68fb ldr r3, [r7, #12] HAL_NVIC_SetPriority(TIM7_IRQn, 3, 0); 800fa72: 2200 movs r2, #0 800fa74: 2103 movs r1, #3 800fa76: 2037 movs r0, #55 ; 0x37 800fa78: f001 fed9 bl 801182e HAL_NVIC_EnableIRQ(TIM7_IRQn); 800fa7c: 2037 movs r0, #55 ; 0x37 800fa7e: f001 fef2 bl 8011866 } 800fa82: bf00 nop 800fa84: 3718 adds r7, #24 800fa86: 46bd mov sp, r7 800fa88: bd80 pop {r7, pc} 800fa8a: bf00 nop 800fa8c: 40010000 .word 0x40010000 800fa90: 40023800 .word 0x40023800 800fa94: 40000c00 .word 0x40000c00 800fa98: 40001400 .word 0x40001400 0800fa9c : __IO uint32_t maxtime = 0; /* USER CODE BEGIN 1 */ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { 800fa9c: b580 push {r7, lr} 800fa9e: b084 sub sp, #16 800faa0: af00 add r7, sp, #0 800faa2: 6078 str r0, [r7, #4] __IO uint16_t Data32, i; switch((uint32_t) htim->Instance) 800faa4: 687b ldr r3, [r7, #4] 800faa6: 681b ldr r3, [r3, #0] 800faa8: 461a mov r2, r3 800faaa: 4b3c ldr r3, [pc, #240] ; (800fb9c ) 800faac: 429a cmp r2, r3 800faae: d000 beq.n 800fab2 if(repeat) repeat--; break; } } 800fab0: e070 b.n 800fb94 __HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE); 800fab2: 687b ldr r3, [r7, #4] 800fab4: 681b ldr r3, [r3, #0] 800fab6: f06f 0201 mvn.w r2, #1 800faba: 611a str r2, [r3, #16] if((--timerAsk) == 0) 800fabc: 4b38 ldr r3, [pc, #224] ; (800fba0 ) 800fabe: 881b ldrh r3, [r3, #0] 800fac0: b29b uxth r3, r3 800fac2: 3b01 subs r3, #1 800fac4: b29b uxth r3, r3 800fac6: 4a36 ldr r2, [pc, #216] ; (800fba0 ) 800fac8: 4619 mov r1, r3 800faca: 8011 strh r1, [r2, #0] 800facc: 2b00 cmp r3, #0 800face: d105 bne.n 800fadc timerAsk = msec1900; 800fad0: 4b33 ldr r3, [pc, #204] ; (800fba0 ) 800fad2: 22be movs r2, #190 ; 0xbe 800fad4: 801a strh r2, [r3, #0] FlagAsk = true; 800fad6: 4b33 ldr r3, [pc, #204] ; (800fba4 ) 800fad8: 2201 movs r2, #1 800fada: 701a strb r2, [r3, #0] if(timerKeys) 800fadc: 4b32 ldr r3, [pc, #200] ; (800fba8 ) 800fade: 881b ldrh r3, [r3, #0] 800fae0: b29b uxth r3, r3 800fae2: 2b00 cmp r3, #0 800fae4: d007 beq.n 800faf6 timerKeys--; 800fae6: 4b30 ldr r3, [pc, #192] ; (800fba8 ) 800fae8: 881b ldrh r3, [r3, #0] 800faea: b29b uxth r3, r3 800faec: 3b01 subs r3, #1 800faee: b29a uxth r2, r3 800faf0: 4b2d ldr r3, [pc, #180] ; (800fba8 ) 800faf2: 801a strh r2, [r3, #0] 800faf4: e00b b.n 800fb0e timerKeys = 2; 800faf6: 4b2c ldr r3, [pc, #176] ; (800fba8 ) 800faf8: 2202 movs r2, #2 800fafa: 801a strh r2, [r3, #0] if(!KEY_STATE) 800fafc: 4b2b ldr r3, [pc, #172] ; (800fbac ) 800fafe: 681b ldr r3, [r3, #0] 800fb00: 2b00 cmp r3, #0 800fb02: d104 bne.n 800fb0e KEY_STATE = kbhit(); 800fb04: f7f0 ffca bl 8000a9c 800fb08: 4602 mov r2, r0 800fb0a: 4b28 ldr r3, [pc, #160] ; (800fbac ) 800fb0c: 601a str r2, [r3, #0] if(timerRefreshScreen) 800fb0e: 4b28 ldr r3, [pc, #160] ; (800fbb0 ) 800fb10: 881b ldrh r3, [r3, #0] 800fb12: b29b uxth r3, r3 800fb14: 2b00 cmp r3, #0 800fb16: d007 beq.n 800fb28 timerRefreshScreen--; 800fb18: 4b25 ldr r3, [pc, #148] ; (800fbb0 ) 800fb1a: 881b ldrh r3, [r3, #0] 800fb1c: b29b uxth r3, r3 800fb1e: 3b01 subs r3, #1 800fb20: b29a uxth r2, r3 800fb22: 4b23 ldr r3, [pc, #140] ; (800fbb0 ) 800fb24: 801a strh r2, [r3, #0] 800fb26: e028 b.n 800fb7a timerRefreshScreen = MSEC_REFRESH[0]; 800fb28: 220a movs r2, #10 800fb2a: 4b21 ldr r3, [pc, #132] ; (800fbb0 ) 800fb2c: 801a strh r2, [r3, #0] Cursorblink ^= 1; 800fb2e: 4b21 ldr r3, [pc, #132] ; (800fbb4 ) 800fb30: 781b ldrb r3, [r3, #0] 800fb32: b2db uxtb r3, r3 800fb34: f083 0301 eor.w r3, r3, #1 800fb38: b2da uxtb r2, r3 800fb3a: 4b1e ldr r3, [pc, #120] ; (800fbb4 ) 800fb3c: 701a strb r2, [r3, #0] if(cntblink) 800fb3e: 4b1e ldr r3, [pc, #120] ; (800fbb8 ) 800fb40: 881b ldrh r3, [r3, #0] 800fb42: b29b uxth r3, r3 800fb44: 2b00 cmp r3, #0 800fb46: d007 beq.n 800fb58 cntblink--; 800fb48: 4b1b ldr r3, [pc, #108] ; (800fbb8 ) 800fb4a: 881b ldrh r3, [r3, #0] 800fb4c: b29b uxth r3, r3 800fb4e: 3b01 subs r3, #1 800fb50: b29a uxth r2, r3 800fb52: 4b19 ldr r3, [pc, #100] ; (800fbb8 ) 800fb54: 801a strh r2, [r3, #0] 800fb56: e00d b.n 800fb74 cntblink = 2; 800fb58: 4b17 ldr r3, [pc, #92] ; (800fbb8 ) 800fb5a: 2202 movs r2, #2 800fb5c: 801a strh r2, [r3, #0] blink ^= 1; 800fb5e: 4b17 ldr r3, [pc, #92] ; (800fbbc ) 800fb60: 781b ldrb r3, [r3, #0] 800fb62: b2db uxtb r3, r3 800fb64: f083 0301 eor.w r3, r3, #1 800fb68: b2da uxtb r2, r3 800fb6a: 4b14 ldr r3, [pc, #80] ; (800fbbc ) 800fb6c: 701a strb r2, [r3, #0] cntBat = 1; 800fb6e: 4b14 ldr r3, [pc, #80] ; (800fbc0 ) 800fb70: 2201 movs r2, #1 800fb72: 701a strb r2, [r3, #0] screen = true; 800fb74: 4b13 ldr r3, [pc, #76] ; (800fbc4 ) 800fb76: 2201 movs r2, #1 800fb78: 701a strb r2, [r3, #0] if(repeat) 800fb7a: 4b13 ldr r3, [pc, #76] ; (800fbc8 ) 800fb7c: 881b ldrh r3, [r3, #0] 800fb7e: b29b uxth r3, r3 800fb80: 2b00 cmp r3, #0 800fb82: d006 beq.n 800fb92 repeat--; 800fb84: 4b10 ldr r3, [pc, #64] ; (800fbc8 ) 800fb86: 881b ldrh r3, [r3, #0] 800fb88: b29b uxth r3, r3 800fb8a: 3b01 subs r3, #1 800fb8c: b29a uxth r2, r3 800fb8e: 4b0e ldr r3, [pc, #56] ; (800fbc8 ) 800fb90: 801a strh r2, [r3, #0] break; 800fb92: bf00 nop } 800fb94: bf00 nop 800fb96: 3710 adds r7, #16 800fb98: 46bd mov sp, r7 800fb9a: bd80 pop {r7, pc} 800fb9c: 40001400 .word 0x40001400 800fba0: 2002099e .word 0x2002099e 800fba4: 2006ba87 .word 0x2006ba87 800fba8: 2002099a .word 0x2002099a 800fbac: 200209e0 .word 0x200209e0 800fbb0: 2002099c .word 0x2002099c 800fbb4: 2006ba85 .word 0x2006ba85 800fbb8: 20020998 .word 0x20020998 800fbbc: 2006ba84 .word 0x2006ba84 800fbc0: 2006ba86 .word 0x2006ba86 800fbc4: 20020030 .word 0x20020030 800fbc8: 200209da .word 0x200209da 0800fbcc : void MX_UART7_Init(void) { 800fbcc: b580 push {r7, lr} 800fbce: af00 add r7, sp, #0 huart7.Instance = UART7; 800fbd0: 4b47 ldr r3, [pc, #284] ; (800fcf0 ) 800fbd2: 4a48 ldr r2, [pc, #288] ; (800fcf4 ) 800fbd4: 601a str r2, [r3, #0] huart7.Init.BaudRate = BAUDRATE[pardata.BAUD]; 800fbd6: 4b48 ldr r3, [pc, #288] ; (800fcf8 ) 800fbd8: f8b3 3202 ldrh.w r3, [r3, #514] ; 0x202 800fbdc: b29b uxth r3, r3 800fbde: 461a mov r2, r3 800fbe0: 4b46 ldr r3, [pc, #280] ; (800fcfc ) 800fbe2: f853 3022 ldr.w r3, [r3, r2, lsl #2] 800fbe6: 4a42 ldr r2, [pc, #264] ; (800fcf0 ) 800fbe8: 6053 str r3, [r2, #4] switch(pardata.INFB) 800fbea: 4b43 ldr r3, [pc, #268] ; (800fcf8 ) 800fbec: f8b3 3204 ldrh.w r3, [r3, #516] ; 0x204 800fbf0: b29b uxth r3, r3 800fbf2: 2b01 cmp r3, #1 800fbf4: d00a beq.n 800fc0c 800fbf6: 2b02 cmp r3, #2 800fbf8: d011 beq.n 800fc1e 800fbfa: 2b00 cmp r3, #0 800fbfc: d118 bne.n 800fc30 { case 0: //NONE huart7.Init.WordLength = UART_WORDLENGTH_8B; 800fbfe: 4b3c ldr r3, [pc, #240] ; (800fcf0 ) 800fc00: 2200 movs r2, #0 800fc02: 609a str r2, [r3, #8] huart7.Init.Parity = UART_PARITY_NONE; 800fc04: 4b3a ldr r3, [pc, #232] ; (800fcf0 ) 800fc06: 2200 movs r2, #0 800fc08: 611a str r2, [r3, #16] break; 800fc0a: e011 b.n 800fc30 case 1: //ODD huart7.Init.WordLength = UART_WORDLENGTH_9B; 800fc0c: 4b38 ldr r3, [pc, #224] ; (800fcf0 ) 800fc0e: f44f 5280 mov.w r2, #4096 ; 0x1000 800fc12: 609a str r2, [r3, #8] huart7.Init.Parity = UART_PARITY_ODD; 800fc14: 4b36 ldr r3, [pc, #216] ; (800fcf0 ) 800fc16: f44f 62c0 mov.w r2, #1536 ; 0x600 800fc1a: 611a str r2, [r3, #16] break; 800fc1c: e008 b.n 800fc30 case 2: //EVEN huart7.Init.WordLength = UART_WORDLENGTH_9B; 800fc1e: 4b34 ldr r3, [pc, #208] ; (800fcf0 ) 800fc20: f44f 5280 mov.w r2, #4096 ; 0x1000 800fc24: 609a str r2, [r3, #8] huart7.Init.Parity = UART_PARITY_EVEN; 800fc26: 4b32 ldr r3, [pc, #200] ; (800fcf0 ) 800fc28: f44f 6280 mov.w r2, #1024 ; 0x400 800fc2c: 611a str r2, [r3, #16] break; 800fc2e: bf00 nop } huart7.Init.StopBits = UART_STOPBITS_1; 800fc30: 4b2f ldr r3, [pc, #188] ; (800fcf0 ) 800fc32: 2200 movs r2, #0 800fc34: 60da str r2, [r3, #12] huart7.Init.Mode = UART_MODE_TX_RX; 800fc36: 4b2e ldr r3, [pc, #184] ; (800fcf0 ) 800fc38: 220c movs r2, #12 800fc3a: 615a str r2, [r3, #20] huart7.Init.HwFlowCtl = UART_HWCONTROL_NONE; 800fc3c: 4b2c ldr r3, [pc, #176] ; (800fcf0 ) 800fc3e: 2200 movs r2, #0 800fc40: 619a str r2, [r3, #24] if(pardata.BAUD < 9) 800fc42: 4b2d ldr r3, [pc, #180] ; (800fcf8 ) 800fc44: f8b3 3202 ldrh.w r3, [r3, #514] ; 0x202 800fc48: b29b uxth r3, r3 800fc4a: 2b08 cmp r3, #8 800fc4c: d803 bhi.n 800fc56 huart7.Init.OverSampling = UART_OVERSAMPLING_16; 800fc4e: 4b28 ldr r3, [pc, #160] ; (800fcf0 ) 800fc50: 2200 movs r2, #0 800fc52: 61da str r2, [r3, #28] 800fc54: e003 b.n 800fc5e else huart7.Init.OverSampling = UART_OVERSAMPLING_8; 800fc56: 4b26 ldr r3, [pc, #152] ; (800fcf0 ) 800fc58: f44f 4200 mov.w r2, #32768 ; 0x8000 800fc5c: 61da str r2, [r3, #28] huart7.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; 800fc5e: 4b24 ldr r3, [pc, #144] ; (800fcf0 ) 800fc60: 2200 movs r2, #0 800fc62: 621a str r2, [r3, #32] huart7.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_SWAP_INIT; 800fc64: 4b22 ldr r3, [pc, #136] ; (800fcf0 ) 800fc66: 2208 movs r2, #8 800fc68: 625a str r2, [r3, #36] ; 0x24 huart7.AdvancedInit.Swap = UART_ADVFEATURE_SWAP_ENABLE; 800fc6a: 4b21 ldr r3, [pc, #132] ; (800fcf0 ) 800fc6c: f44f 4200 mov.w r2, #32768 ; 0x8000 800fc70: 635a str r2, [r3, #52] ; 0x34 if(HAL_UART_Init(&huart7) != HAL_OK) { 800fc72: 481f ldr r0, [pc, #124] ; (800fcf0 ) 800fc74: f004 fffa bl 8014c6c 800fc78: 4603 mov r3, r0 800fc7a: 2b00 cmp r3, #0 800fc7c: d001 beq.n 800fc82 Error_Handler(); 800fc7e: f7f6 f8f1 bl 8005e64 } if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 800fc82: 4b1b ldr r3, [pc, #108] ; (800fcf0 ) 800fc84: 681b ldr r3, [r3, #0] 800fc86: 69db ldr r3, [r3, #28] 800fc88: f003 0308 and.w r3, r3, #8 800fc8c: 2b08 cmp r3, #8 800fc8e: d103 bne.n 800fc98 __HAL_UART_CLEAR_OREFLAG(&huart7); 800fc90: 4b17 ldr r3, [pc, #92] ; (800fcf0 ) 800fc92: 681b ldr r3, [r3, #0] 800fc94: 2208 movs r2, #8 800fc96: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 800fc98: 4b15 ldr r3, [pc, #84] ; (800fcf0 ) 800fc9a: 681b ldr r3, [r3, #0] 800fc9c: 69db ldr r3, [r3, #28] 800fc9e: f003 0301 and.w r3, r3, #1 800fca2: 2b01 cmp r3, #1 800fca4: d103 bne.n 800fcae __HAL_UART_CLEAR_PEFLAG(&huart7); 800fca6: 4b12 ldr r3, [pc, #72] ; (800fcf0 ) 800fca8: 681b ldr r3, [r3, #0] 800fcaa: 2201 movs r2, #1 800fcac: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 800fcae: 4b10 ldr r3, [pc, #64] ; (800fcf0 ) 800fcb0: 681b ldr r3, [r3, #0] 800fcb2: 69db ldr r3, [r3, #28] 800fcb4: f003 0302 and.w r3, r3, #2 800fcb8: 2b02 cmp r3, #2 800fcba: d103 bne.n 800fcc4 __HAL_UART_CLEAR_FEFLAG(&huart7); 800fcbc: 4b0c ldr r3, [pc, #48] ; (800fcf0 ) 800fcbe: 681b ldr r3, [r3, #0] 800fcc0: 2202 movs r2, #2 800fcc2: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 800fcc4: 4b0a ldr r3, [pc, #40] ; (800fcf0 ) 800fcc6: 681b ldr r3, [r3, #0] 800fcc8: 69db ldr r3, [r3, #28] 800fcca: f003 0304 and.w r3, r3, #4 800fcce: 2b04 cmp r3, #4 800fcd0: d103 bne.n 800fcda __HAL_UART_CLEAR_NEFLAG(&huart7); 800fcd2: 4b07 ldr r3, [pc, #28] ; (800fcf0 ) 800fcd4: 681b ldr r3, [r3, #0] 800fcd6: 2204 movs r2, #4 800fcd8: 621a str r2, [r3, #32] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800fcda: 2200 movs r2, #0 800fcdc: f44f 7100 mov.w r1, #512 ; 0x200 800fce0: 4807 ldr r0, [pc, #28] ; (800fd00 ) 800fce2: f002 ffb3 bl 8012c4c HAL_Delay(1); 800fce6: 2001 movs r0, #1 800fce8: f001 fc84 bl 80115f4 //SET_BIT(huart7.Instance->CR1, /*USART_CR1_RXNEIE |*/ USART_CR1_PEIE); } 800fcec: bf00 nop 800fcee: bd80 pop {r7, pc} 800fcf0: 2006c434 .word 0x2006c434 800fcf4: 40007800 .word 0x40007800 800fcf8: 2006bca8 .word 0x2006bca8 800fcfc: 0801b068 .word 0x0801b068 800fd00: 40021400 .word 0x40021400 0800fd04 : HAL_NVIC_DisableIRQ(UART7_IRQn); } void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) { 800fd04: b580 push {r7, lr} 800fd06: b08a sub sp, #40 ; 0x28 800fd08: af00 add r7, sp, #0 800fd0a: 6078 str r0, [r7, #4] GPIO_InitTypeDef GPIO_InitStruct = {0}; 800fd0c: f107 0314 add.w r3, r7, #20 800fd10: 2200 movs r2, #0 800fd12: 601a str r2, [r3, #0] 800fd14: 605a str r2, [r3, #4] 800fd16: 609a str r2, [r3, #8] 800fd18: 60da str r2, [r3, #12] 800fd1a: 611a str r2, [r3, #16] if(uartHandle->Instance==UART7) 800fd1c: 687b ldr r3, [r7, #4] 800fd1e: 681b ldr r3, [r3, #0] 800fd20: 4a1b ldr r2, [pc, #108] ; (800fd90 ) 800fd22: 4293 cmp r3, r2 800fd24: d12f bne.n 800fd86 { __HAL_RCC_UART7_CLK_ENABLE(); 800fd26: 4a1b ldr r2, [pc, #108] ; (800fd94 ) 800fd28: 4b1a ldr r3, [pc, #104] ; (800fd94 ) 800fd2a: 6c1b ldr r3, [r3, #64] ; 0x40 800fd2c: f043 4380 orr.w r3, r3, #1073741824 ; 0x40000000 800fd30: 6413 str r3, [r2, #64] ; 0x40 800fd32: 4b18 ldr r3, [pc, #96] ; (800fd94 ) 800fd34: 6c1b ldr r3, [r3, #64] ; 0x40 800fd36: f003 4380 and.w r3, r3, #1073741824 ; 0x40000000 800fd3a: 613b str r3, [r7, #16] 800fd3c: 693b ldr r3, [r7, #16] __HAL_RCC_GPIOF_CLK_ENABLE(); 800fd3e: 4a15 ldr r2, [pc, #84] ; (800fd94 ) 800fd40: 4b14 ldr r3, [pc, #80] ; (800fd94 ) 800fd42: 6b1b ldr r3, [r3, #48] ; 0x30 800fd44: f043 0320 orr.w r3, r3, #32 800fd48: 6313 str r3, [r2, #48] ; 0x30 800fd4a: 4b12 ldr r3, [pc, #72] ; (800fd94 ) 800fd4c: 6b1b ldr r3, [r3, #48] ; 0x30 800fd4e: f003 0320 and.w r3, r3, #32 800fd52: 60fb str r3, [r7, #12] 800fd54: 68fb ldr r3, [r7, #12] /**UART7 GPIO Configuration PF6 ------> UART7_RX PF7 ------> UART7_TX */ GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7; 800fd56: 23c0 movs r3, #192 ; 0xc0 800fd58: 617b str r3, [r7, #20] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 800fd5a: 2302 movs r3, #2 800fd5c: 61bb str r3, [r7, #24] GPIO_InitStruct.Pull = GPIO_NOPULL; 800fd5e: 2300 movs r3, #0 800fd60: 61fb str r3, [r7, #28] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 800fd62: 2303 movs r3, #3 800fd64: 623b str r3, [r7, #32] GPIO_InitStruct.Alternate = GPIO_AF8_UART7; 800fd66: 2308 movs r3, #8 800fd68: 627b str r3, [r7, #36] ; 0x24 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); 800fd6a: f107 0314 add.w r3, r7, #20 800fd6e: 4619 mov r1, r3 800fd70: 4809 ldr r0, [pc, #36] ; (800fd98 ) 800fd72: f002 fda9 bl 80128c8 /* UART7 interrupt Init */ HAL_NVIC_SetPriority(UART7_IRQn, 10, 0); 800fd76: 2200 movs r2, #0 800fd78: 210a movs r1, #10 800fd7a: 2052 movs r0, #82 ; 0x52 800fd7c: f001 fd57 bl 801182e HAL_NVIC_EnableIRQ(UART7_IRQn); 800fd80: 2052 movs r0, #82 ; 0x52 800fd82: f001 fd70 bl 8011866 } } 800fd86: bf00 nop 800fd88: 3728 adds r7, #40 ; 0x28 800fd8a: 46bd mov sp, r7 800fd8c: bd80 pop {r7, pc} 800fd8e: bf00 nop 800fd90: 40007800 .word 0x40007800 800fd94: 40023800 .word 0x40023800 800fd98: 40021400 .word 0x40021400 0800fd9c : } } void UART7_IRQHandler(void) { 800fd9c: b580 push {r7, lr} 800fd9e: af00 add r7, sp, #0 if((__HAL_UART_GET_IT_SOURCE(&huart7, UART_IT_RXNE)) && (__HAL_UART_GET_FLAG(&huart7, UART_FLAG_RXNE))) 800fda0: 4b26 ldr r3, [pc, #152] ; (800fe3c ) 800fda2: 681b ldr r3, [r3, #0] 800fda4: 681b ldr r3, [r3, #0] 800fda6: f003 0320 and.w r3, r3, #32 800fdaa: 2b00 cmp r3, #0 800fdac: d00a beq.n 800fdc4 800fdae: 4b23 ldr r3, [pc, #140] ; (800fe3c ) 800fdb0: 681b ldr r3, [r3, #0] 800fdb2: 69db ldr r3, [r3, #28] 800fdb4: f003 0320 and.w r3, r3, #32 800fdb8: 2b20 cmp r3, #32 800fdba: d103 bne.n 800fdc4 { HAL_UART_RxCpltCallback(&huart7); 800fdbc: 481f ldr r0, [pc, #124] ; (800fe3c ) 800fdbe: f000 f8ad bl 800ff1c 800fdc2: e002 b.n 800fdca } else { HAL_UART_IRQHandler(&huart7); 800fdc4: 481d ldr r0, [pc, #116] ; (800fe3c ) 800fdc6: f005 fa03 bl 80151d0 } if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 800fdca: 4b1c ldr r3, [pc, #112] ; (800fe3c ) 800fdcc: 681b ldr r3, [r3, #0] 800fdce: 69db ldr r3, [r3, #28] 800fdd0: f003 0308 and.w r3, r3, #8 800fdd4: 2b08 cmp r3, #8 800fdd6: d103 bne.n 800fde0 __HAL_UART_CLEAR_OREFLAG(&huart7); 800fdd8: 4b18 ldr r3, [pc, #96] ; (800fe3c ) 800fdda: 681b ldr r3, [r3, #0] 800fddc: 2208 movs r2, #8 800fdde: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 800fde0: 4b16 ldr r3, [pc, #88] ; (800fe3c ) 800fde2: 681b ldr r3, [r3, #0] 800fde4: 69db ldr r3, [r3, #28] 800fde6: f003 0301 and.w r3, r3, #1 800fdea: 2b01 cmp r3, #1 800fdec: d103 bne.n 800fdf6 __HAL_UART_CLEAR_PEFLAG(&huart7); 800fdee: 4b13 ldr r3, [pc, #76] ; (800fe3c ) 800fdf0: 681b ldr r3, [r3, #0] 800fdf2: 2201 movs r2, #1 800fdf4: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 800fdf6: 4b11 ldr r3, [pc, #68] ; (800fe3c ) 800fdf8: 681b ldr r3, [r3, #0] 800fdfa: 69db ldr r3, [r3, #28] 800fdfc: f003 0302 and.w r3, r3, #2 800fe00: 2b02 cmp r3, #2 800fe02: d103 bne.n 800fe0c __HAL_UART_CLEAR_FEFLAG(&huart7); 800fe04: 4b0d ldr r3, [pc, #52] ; (800fe3c ) 800fe06: 681b ldr r3, [r3, #0] 800fe08: 2202 movs r2, #2 800fe0a: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 800fe0c: 4b0b ldr r3, [pc, #44] ; (800fe3c ) 800fe0e: 681b ldr r3, [r3, #0] 800fe10: 69db ldr r3, [r3, #28] 800fe12: f003 0304 and.w r3, r3, #4 800fe16: 2b04 cmp r3, #4 800fe18: d103 bne.n 800fe22 __HAL_UART_CLEAR_NEFLAG(&huart7); 800fe1a: 4b08 ldr r3, [pc, #32] ; (800fe3c ) 800fe1c: 681b ldr r3, [r3, #0] 800fe1e: 2204 movs r2, #4 800fe20: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_IDLE)) 800fe22: 4b06 ldr r3, [pc, #24] ; (800fe3c ) 800fe24: 681b ldr r3, [r3, #0] 800fe26: 69db ldr r3, [r3, #28] 800fe28: f003 0310 and.w r3, r3, #16 800fe2c: 2b10 cmp r3, #16 800fe2e: d103 bne.n 800fe38 __HAL_UART_CLEAR_IDLEFLAG(&huart7); 800fe30: 4b02 ldr r3, [pc, #8] ; (800fe3c ) 800fe32: 681b ldr r3, [r3, #0] 800fe34: 2210 movs r2, #16 800fe36: 621a str r2, [r3, #32] } 800fe38: bf00 nop 800fe3a: bd80 pop {r7, pc} 800fe3c: 2006c434 .word 0x2006c434 0800fe40 : uint16_t Crc16(uint16_t len) { 800fe40: b480 push {r7} 800fe42: b085 sub sp, #20 800fe44: af00 add r7, sp, #0 800fe46: 4603 mov r3, r0 800fe48: 80fb strh r3, [r7, #6] uint16_t i; uint16_t crc = 0xFFFF; 800fe4a: f64f 73ff movw r3, #65535 ; 0xffff 800fe4e: 81bb strh r3, [r7, #12] for(i = 0; i < len; i++) { 800fe50: 2300 movs r3, #0 800fe52: 81fb strh r3, [r7, #14] 800fe54: e010 b.n 800fe78 crc = (crc >> 8) ^ Crc16Table[(crc & 0xFF) ^ iobuf[i]]; 800fe56: 89bb ldrh r3, [r7, #12] 800fe58: 0a1b lsrs r3, r3, #8 800fe5a: b29a uxth r2, r3 800fe5c: 89bb ldrh r3, [r7, #12] 800fe5e: b2db uxtb r3, r3 800fe60: 89f9 ldrh r1, [r7, #14] 800fe62: 480b ldr r0, [pc, #44] ; (800fe90 ) 800fe64: 5c41 ldrb r1, [r0, r1] 800fe66: 404b eors r3, r1 800fe68: 490a ldr r1, [pc, #40] ; (800fe94 ) 800fe6a: f831 3013 ldrh.w r3, [r1, r3, lsl #1] 800fe6e: 4053 eors r3, r2 800fe70: 81bb strh r3, [r7, #12] for(i = 0; i < len; i++) { 800fe72: 89fb ldrh r3, [r7, #14] 800fe74: 3301 adds r3, #1 800fe76: 81fb strh r3, [r7, #14] 800fe78: 89fa ldrh r2, [r7, #14] 800fe7a: 88fb ldrh r3, [r7, #6] 800fe7c: 429a cmp r2, r3 800fe7e: d3ea bcc.n 800fe56 } return crc; 800fe80: 89bb ldrh r3, [r7, #12] } 800fe82: 4618 mov r0, r3 800fe84: 3714 adds r7, #20 800fe86: 46bd mov sp, r7 800fe88: f85d 7b04 ldr.w r7, [sp], #4 800fe8c: 4770 bx lr 800fe8e: bf00 nop 800fe90: 2006c5c4 .word 0x2006c5c4 800fe94: 0801ae68 .word 0x0801ae68 0800fe98 : uint16_t Crc16_RX(uint16_t len) { 800fe98: b480 push {r7} 800fe9a: b085 sub sp, #20 800fe9c: af00 add r7, sp, #0 800fe9e: 4603 mov r3, r0 800fea0: 80fb strh r3, [r7, #6] uint16_t i; uint16_t crc = 0xFFFF; 800fea2: f64f 73ff movw r3, #65535 ; 0xffff 800fea6: 81bb strh r3, [r7, #12] for(i = 0; i < len; i++) { 800fea8: 2300 movs r3, #0 800feaa: 81fb strh r3, [r7, #14] 800feac: e010 b.n 800fed0 crc = (crc >> 8) ^ Crc16Table[(crc & 0xFF) ^ rx[i]]; 800feae: 89bb ldrh r3, [r7, #12] 800feb0: 0a1b lsrs r3, r3, #8 800feb2: b29a uxth r2, r3 800feb4: 89bb ldrh r3, [r7, #12] 800feb6: b2db uxtb r3, r3 800feb8: 89f9 ldrh r1, [r7, #14] 800feba: 480b ldr r0, [pc, #44] ; (800fee8 ) 800febc: 5c41 ldrb r1, [r0, r1] 800febe: 404b eors r3, r1 800fec0: 490a ldr r1, [pc, #40] ; (800feec ) 800fec2: f831 3013 ldrh.w r3, [r1, r3, lsl #1] 800fec6: 4053 eors r3, r2 800fec8: 81bb strh r3, [r7, #12] for(i = 0; i < len; i++) { 800feca: 89fb ldrh r3, [r7, #14] 800fecc: 3301 adds r3, #1 800fece: 81fb strh r3, [r7, #14] 800fed0: 89fa ldrh r2, [r7, #14] 800fed2: 88fb ldrh r3, [r7, #6] 800fed4: 429a cmp r2, r3 800fed6: d3ea bcc.n 800feae } return crc; 800fed8: 89bb ldrh r3, [r7, #12] } 800feda: 4618 mov r0, r3 800fedc: 3714 adds r7, #20 800fede: 46bd mov sp, r7 800fee0: f85d 7b04 ldr.w r7, [sp], #4 800fee4: 4770 bx lr 800fee6: bf00 nop 800fee8: 2006c4bc .word 0x2006c4bc 800feec: 0801ae68 .word 0x0801ae68 0800fef0 : void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) { 800fef0: b580 push {r7, lr} 800fef2: b082 sub sp, #8 800fef4: af00 add r7, sp, #0 800fef6: 6078 str r0, [r7, #4] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800fef8: 2200 movs r2, #0 800fefa: f44f 7100 mov.w r1, #512 ; 0x200 800fefe: 4805 ldr r0, [pc, #20] ; (800ff14 ) 800ff00: f002 fea4 bl 8012c4c TX_OK = true; 800ff04: 4b04 ldr r3, [pc, #16] ; (800ff18 ) 800ff06: 2201 movs r2, #1 800ff08: 701a strb r2, [r3, #0] } 800ff0a: bf00 nop 800ff0c: 3708 adds r7, #8 800ff0e: 46bd mov sp, r7 800ff10: bd80 pop {r7, pc} 800ff12: bf00 nop 800ff14: 40021400 .word 0x40021400 800ff18: 2006ba92 .word 0x2006ba92 0800ff1c : void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { 800ff1c: b480 push {r7} 800ff1e: b083 sub sp, #12 800ff20: af00 add r7, sp, #0 800ff22: 6078 str r0, [r7, #4] RX_OK = true; 800ff24: 4b04 ldr r3, [pc, #16] ; (800ff38 ) 800ff26: 2201 movs r2, #1 800ff28: 701a strb r2, [r3, #0] } 800ff2a: bf00 nop 800ff2c: 370c adds r7, #12 800ff2e: 46bd mov sp, r7 800ff30: f85d 7b04 ldr.w r7, [sp], #4 800ff34: 4770 bx lr 800ff36: bf00 nop 800ff38: 2006ba93 .word 0x2006ba93 0800ff3c : void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) { 800ff3c: b580 push {r7, lr} 800ff3e: b082 sub sp, #8 800ff40: af00 add r7, sp, #0 800ff42: 6078 str r0, [r7, #4] RX_OK = TX_OK = false; 800ff44: 2100 movs r1, #0 800ff46: 4b0b ldr r3, [pc, #44] ; (800ff74 ) 800ff48: 460a mov r2, r1 800ff4a: 701a strb r2, [r3, #0] 800ff4c: 4b0a ldr r3, [pc, #40] ; (800ff78 ) 800ff4e: 460a mov r2, r1 800ff50: 701a strb r2, [r3, #0] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800ff52: 2200 movs r2, #0 800ff54: f44f 7100 mov.w r1, #512 ; 0x200 800ff58: 4808 ldr r0, [pc, #32] ; (800ff7c ) 800ff5a: f002 fe77 bl 8012c4c HAL_UART_Abort_IT(&huart7); 800ff5e: 4808 ldr r0, [pc, #32] ; (800ff80 ) 800ff60: f005 f810 bl 8014f84 UART_ERROR = true; 800ff64: 4b07 ldr r3, [pc, #28] ; (800ff84 ) 800ff66: 2201 movs r2, #1 800ff68: 701a strb r2, [r3, #0] } 800ff6a: bf00 nop 800ff6c: 3708 adds r7, #8 800ff6e: 46bd mov sp, r7 800ff70: bd80 pop {r7, pc} 800ff72: bf00 nop 800ff74: 2006ba92 .word 0x2006ba92 800ff78: 2006ba93 .word 0x2006ba93 800ff7c: 40021400 .word 0x40021400 800ff80: 2006c434 .word 0x2006c434 800ff84: 2006ba91 .word 0x2006ba91 0800ff88 : //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// int8_t ReadIP(void) { 800ff88: b580 push {r7, lr} 800ff8a: b084 sub sp, #16 800ff8c: af00 add r7, sp, #0 int8_t res = -1; 800ff8e: 23ff movs r3, #255 ; 0xff 800ff90: 73fb strb r3, [r7, #15] uint16_t i, len = 0, cnt = 0; 800ff92: 2300 movs r3, #0 800ff94: 81bb strh r3, [r7, #12] 800ff96: 2300 movs r3, #0 800ff98: 817b strh r3, [r7, #10] uint16_t crc; __IO uint32_t timeout; if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 800ff9a: 4b82 ldr r3, [pc, #520] ; (80101a4 ) 800ff9c: 681b ldr r3, [r3, #0] 800ff9e: 69db ldr r3, [r3, #28] 800ffa0: f003 0308 and.w r3, r3, #8 800ffa4: 2b08 cmp r3, #8 800ffa6: d103 bne.n 800ffb0 __HAL_UART_CLEAR_OREFLAG(&huart7); 800ffa8: 4b7e ldr r3, [pc, #504] ; (80101a4 ) 800ffaa: 681b ldr r3, [r3, #0] 800ffac: 2208 movs r2, #8 800ffae: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 800ffb0: 4b7c ldr r3, [pc, #496] ; (80101a4 ) 800ffb2: 681b ldr r3, [r3, #0] 800ffb4: 69db ldr r3, [r3, #28] 800ffb6: f003 0301 and.w r3, r3, #1 800ffba: 2b01 cmp r3, #1 800ffbc: d103 bne.n 800ffc6 __HAL_UART_CLEAR_PEFLAG(&huart7); 800ffbe: 4b79 ldr r3, [pc, #484] ; (80101a4 ) 800ffc0: 681b ldr r3, [r3, #0] 800ffc2: 2201 movs r2, #1 800ffc4: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 800ffc6: 4b77 ldr r3, [pc, #476] ; (80101a4 ) 800ffc8: 681b ldr r3, [r3, #0] 800ffca: 69db ldr r3, [r3, #28] 800ffcc: f003 0302 and.w r3, r3, #2 800ffd0: 2b02 cmp r3, #2 800ffd2: d103 bne.n 800ffdc __HAL_UART_CLEAR_FEFLAG(&huart7); 800ffd4: 4b73 ldr r3, [pc, #460] ; (80101a4 ) 800ffd6: 681b ldr r3, [r3, #0] 800ffd8: 2202 movs r2, #2 800ffda: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 800ffdc: 4b71 ldr r3, [pc, #452] ; (80101a4 ) 800ffde: 681b ldr r3, [r3, #0] 800ffe0: 69db ldr r3, [r3, #28] 800ffe2: f003 0304 and.w r3, r3, #4 800ffe6: 2b04 cmp r3, #4 800ffe8: d103 bne.n 800fff2 __HAL_UART_CLEAR_NEFLAG(&huart7); 800ffea: 4b6e ldr r3, [pc, #440] ; (80101a4 ) 800ffec: 681b ldr r3, [r3, #0] 800ffee: 2204 movs r2, #4 800fff0: 621a str r2, [r3, #32] HAL_Delay(20); 800fff2: 2014 movs r0, #20 800fff4: f001 fafe bl 80115f4 TX_OK = RX_OK = UART_ERROR = false; 800fff8: 2200 movs r2, #0 800fffa: 4b6b ldr r3, [pc, #428] ; (80101a8 ) 800fffc: 4611 mov r1, r2 800fffe: 7019 strb r1, [r3, #0] 8010000: 4b6a ldr r3, [pc, #424] ; (80101ac ) 8010002: 4611 mov r1, r2 8010004: 7019 strb r1, [r3, #0] 8010006: 4b6a ldr r3, [pc, #424] ; (80101b0 ) 8010008: 701a strb r2, [r3, #0] len = 0; 801000a: 2300 movs r3, #0 801000c: 81bb strh r3, [r7, #12] memset((void *) &rx, 0, sizeof(rx)); 801000e: f44f 7280 mov.w r2, #256 ; 0x100 8010012: 2100 movs r1, #0 8010014: 4867 ldr r0, [pc, #412] ; (80101b4 ) 8010016: f006 fa60 bl 80164da iobuf[len++] = 17; 801001a: 89bb ldrh r3, [r7, #12] 801001c: 1c5a adds r2, r3, #1 801001e: 81ba strh r2, [r7, #12] 8010020: 461a mov r2, r3 8010022: 4b65 ldr r3, [pc, #404] ; (80101b8 ) 8010024: 2111 movs r1, #17 8010026: 5499 strb r1, [r3, r2] iobuf[len++] = 0x03; 8010028: 89bb ldrh r3, [r7, #12] 801002a: 1c5a adds r2, r3, #1 801002c: 81ba strh r2, [r7, #12] 801002e: 461a mov r2, r3 8010030: 4b61 ldr r3, [pc, #388] ; (80101b8 ) 8010032: 2103 movs r1, #3 8010034: 5499 strb r1, [r3, r2] iobuf[len++] = HI(4001); 8010036: 89bb ldrh r3, [r7, #12] 8010038: 1c5a adds r2, r3, #1 801003a: 81ba strh r2, [r7, #12] 801003c: 461a mov r2, r3 801003e: 4b5e ldr r3, [pc, #376] ; (80101b8 ) 8010040: 210f movs r1, #15 8010042: 5499 strb r1, [r3, r2] iobuf[len++] = LO(4001); 8010044: 89bb ldrh r3, [r7, #12] 8010046: 1c5a adds r2, r3, #1 8010048: 81ba strh r2, [r7, #12] 801004a: 461a mov r2, r3 801004c: 4b5a ldr r3, [pc, #360] ; (80101b8 ) 801004e: 21a1 movs r1, #161 ; 0xa1 8010050: 5499 strb r1, [r3, r2] iobuf[len++] = 0; // 8010052: 89bb ldrh r3, [r7, #12] 8010054: 1c5a adds r2, r3, #1 8010056: 81ba strh r2, [r7, #12] 8010058: 461a mov r2, r3 801005a: 4b57 ldr r3, [pc, #348] ; (80101b8 ) 801005c: 2100 movs r1, #0 801005e: 5499 strb r1, [r3, r2] iobuf[len++] = 2; // 8010060: 89bb ldrh r3, [r7, #12] 8010062: 1c5a adds r2, r3, #1 8010064: 81ba strh r2, [r7, #12] 8010066: 461a mov r2, r3 8010068: 4b53 ldr r3, [pc, #332] ; (80101b8 ) 801006a: 2102 movs r1, #2 801006c: 5499 strb r1, [r3, r2] crc = Crc16(len); 801006e: 89bb ldrh r3, [r7, #12] 8010070: 4618 mov r0, r3 8010072: f7ff fee5 bl 800fe40 8010076: 4603 mov r3, r0 8010078: 813b strh r3, [r7, #8] iobuf[len++] = LO(crc); 801007a: 89bb ldrh r3, [r7, #12] 801007c: 1c5a adds r2, r3, #1 801007e: 81ba strh r2, [r7, #12] 8010080: 461a mov r2, r3 8010082: 893b ldrh r3, [r7, #8] 8010084: b2d9 uxtb r1, r3 8010086: 4b4c ldr r3, [pc, #304] ; (80101b8 ) 8010088: 5499 strb r1, [r3, r2] iobuf[len++] = HI(crc); 801008a: 89bb ldrh r3, [r7, #12] 801008c: 1c5a adds r2, r3, #1 801008e: 81ba strh r2, [r7, #12] 8010090: 461a mov r2, r3 8010092: 893b ldrh r3, [r7, #8] 8010094: 0a1b lsrs r3, r3, #8 8010096: b29b uxth r3, r3 8010098: b2d9 uxtb r1, r3 801009a: 4b47 ldr r3, [pc, #284] ; (80101b8 ) 801009c: 5499 strb r1, [r3, r2] timeout = HAL_GetTick(); 801009e: f001 fa9d bl 80115dc 80100a2: 4603 mov r3, r0 80100a4: 607b str r3, [r7, #4] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET); 80100a6: 2201 movs r2, #1 80100a8: f44f 7100 mov.w r1, #512 ; 0x200 80100ac: 4843 ldr r0, [pc, #268] ; (80101bc ) 80100ae: f002 fdcd bl 8012c4c if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK) 80100b2: 89bb ldrh r3, [r7, #12] 80100b4: 461a mov r2, r3 80100b6: 4940 ldr r1, [pc, #256] ; (80101b8 ) 80100b8: 483a ldr r0, [pc, #232] ; (80101a4 ) 80100ba: f004 fef5 bl 8014ea8 80100be: 4603 mov r3, r0 80100c0: 2b00 cmp r3, #0 80100c2: d168 bne.n 8010196 { while((!TX_OK) && (HAL_GetTick() - timeout < 50)); 80100c4: bf00 nop 80100c6: 4b3a ldr r3, [pc, #232] ; (80101b0 ) 80100c8: 781b ldrb r3, [r3, #0] 80100ca: b2db uxtb r3, r3 80100cc: f083 0301 eor.w r3, r3, #1 80100d0: b2db uxtb r3, r3 80100d2: 2b00 cmp r3, #0 80100d4: d006 beq.n 80100e4 80100d6: f001 fa81 bl 80115dc 80100da: 4602 mov r2, r0 80100dc: 687b ldr r3, [r7, #4] 80100de: 1ad3 subs r3, r2, r3 80100e0: 2b31 cmp r3, #49 ; 0x31 80100e2: d9f0 bls.n 80100c6 if(!TX_OK) 80100e4: 4b32 ldr r3, [pc, #200] ; (80101b0 ) 80100e6: 781b ldrb r3, [r3, #0] 80100e8: b2db uxtb r3, r3 80100ea: f083 0301 eor.w r3, r3, #1 80100ee: b2db uxtb r3, r3 80100f0: 2b00 cmp r3, #0 80100f2: d00b beq.n 801010c { HAL_UART_Abort_IT(&huart7); 80100f4: 482b ldr r0, [pc, #172] ; (80101a4 ) 80100f6: f004 ff45 bl 8014f84 HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 80100fa: 2200 movs r2, #0 80100fc: f44f 7100 mov.w r1, #512 ; 0x200 8010100: 482e ldr r0, [pc, #184] ; (80101bc ) 8010102: f002 fda3 bl 8012c4c return (-1); 8010106: f04f 33ff mov.w r3, #4294967295 801010a: e046 b.n 801019a } HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 801010c: 2200 movs r2, #0 801010e: f44f 7100 mov.w r1, #512 ; 0x200 8010112: 482a ldr r0, [pc, #168] ; (80101bc ) 8010114: f002 fd9a bl 8012c4c HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт 8010118: 2364 movs r3, #100 ; 0x64 801011a: 2201 movs r2, #1 801011c: 4925 ldr r1, [pc, #148] ; (80101b4 ) 801011e: 4821 ldr r0, [pc, #132] ; (80101a4 ) 8010120: f004 fdf2 bl 8014d08 if(HAL_UART_Receive(&huart7, rx, 9, 100) == HAL_OK) 8010124: 2364 movs r3, #100 ; 0x64 8010126: 2209 movs r2, #9 8010128: 4922 ldr r1, [pc, #136] ; (80101b4 ) 801012a: 481e ldr r0, [pc, #120] ; (80101a4 ) 801012c: f004 fdec bl 8014d08 8010130: 4603 mov r3, r0 8010132: 2b00 cmp r3, #0 8010134: d126 bne.n 8010184 { crc = (uint16_t) ((rx[8]) << 8 | rx[7]); 8010136: 4b1f ldr r3, [pc, #124] ; (80101b4 ) 8010138: 7a1b ldrb r3, [r3, #8] 801013a: 021b lsls r3, r3, #8 801013c: b21a sxth r2, r3 801013e: 4b1d ldr r3, [pc, #116] ; (80101b4 ) 8010140: 79db ldrb r3, [r3, #7] 8010142: b21b sxth r3, r3 8010144: 4313 orrs r3, r2 8010146: b21b sxth r3, r3 8010148: 813b strh r3, [r7, #8] if(crc == Crc16_RX(7)) 801014a: 2007 movs r0, #7 801014c: f7ff fea4 bl 800fe98 8010150: 4603 mov r3, r0 8010152: 461a mov r2, r3 8010154: 893b ldrh r3, [r7, #8] 8010156: 4293 cmp r3, r2 8010158: d111 bne.n 801017e { ip[0] = rx[3]; 801015a: 4b16 ldr r3, [pc, #88] ; (80101b4 ) 801015c: 78da ldrb r2, [r3, #3] 801015e: 4b18 ldr r3, [pc, #96] ; (80101c0 ) 8010160: 701a strb r2, [r3, #0] ip[1] = rx[4]; 8010162: 4b14 ldr r3, [pc, #80] ; (80101b4 ) 8010164: 791a ldrb r2, [r3, #4] 8010166: 4b16 ldr r3, [pc, #88] ; (80101c0 ) 8010168: 705a strb r2, [r3, #1] ip[2] = rx[5]; 801016a: 4b12 ldr r3, [pc, #72] ; (80101b4 ) 801016c: 795a ldrb r2, [r3, #5] 801016e: 4b14 ldr r3, [pc, #80] ; (80101c0 ) 8010170: 709a strb r2, [r3, #2] ip[3] = rx[6]; 8010172: 4b10 ldr r3, [pc, #64] ; (80101b4 ) 8010174: 799a ldrb r2, [r3, #6] 8010176: 4b12 ldr r3, [pc, #72] ; (80101c0 ) 8010178: 70da strb r2, [r3, #3] return 0; 801017a: 2300 movs r3, #0 801017c: e00d b.n 801019a } else { return (-1); 801017e: f04f 33ff mov.w r3, #4294967295 8010182: e00a b.n 801019a } } else { HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010184: 2200 movs r2, #0 8010186: f44f 7100 mov.w r1, #512 ; 0x200 801018a: 480c ldr r0, [pc, #48] ; (80101bc ) 801018c: f002 fd5e bl 8012c4c return (-1); 8010190: f04f 33ff mov.w r3, #4294967295 8010194: e001 b.n 801019a } } return res; 8010196: f997 300f ldrsb.w r3, [r7, #15] } 801019a: 4618 mov r0, r3 801019c: 3710 adds r7, #16 801019e: 46bd mov sp, r7 80101a0: bd80 pop {r7, pc} 80101a2: bf00 nop 80101a4: 2006c434 .word 0x2006c434 80101a8: 2006ba91 .word 0x2006ba91 80101ac: 2006ba93 .word 0x2006ba93 80101b0: 2006ba92 .word 0x2006ba92 80101b4: 2006c4bc .word 0x2006c4bc 80101b8: 2006c5c4 .word 0x2006c5c4 80101bc: 40021400 .word 0x40021400 80101c0: 2006ba8c .word 0x2006ba8c 080101c4 : int8_t ReadChannel(uint8_t ch) { 80101c4: b580 push {r7, lr} 80101c6: b086 sub sp, #24 80101c8: af00 add r7, sp, #0 80101ca: 4603 mov r3, r0 80101cc: 71fb strb r3, [r7, #7] int8_t res = -1; 80101ce: 23ff movs r3, #255 ; 0xff 80101d0: 75fb strb r3, [r7, #23] uint16_t i, len = 0, cnt = 0; 80101d2: 2300 movs r3, #0 80101d4: 82bb strh r3, [r7, #20] 80101d6: 2300 movs r3, #0 80101d8: 827b strh r3, [r7, #18] uint16_t crc; __IO uint32_t timeout; if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 80101da: 4b5e ldr r3, [pc, #376] ; (8010354 ) 80101dc: 681b ldr r3, [r3, #0] 80101de: 69db ldr r3, [r3, #28] 80101e0: f003 0308 and.w r3, r3, #8 80101e4: 2b08 cmp r3, #8 80101e6: d103 bne.n 80101f0 __HAL_UART_CLEAR_OREFLAG(&huart7); 80101e8: 4b5a ldr r3, [pc, #360] ; (8010354 ) 80101ea: 681b ldr r3, [r3, #0] 80101ec: 2208 movs r2, #8 80101ee: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 80101f0: 4b58 ldr r3, [pc, #352] ; (8010354 ) 80101f2: 681b ldr r3, [r3, #0] 80101f4: 69db ldr r3, [r3, #28] 80101f6: f003 0301 and.w r3, r3, #1 80101fa: 2b01 cmp r3, #1 80101fc: d103 bne.n 8010206 __HAL_UART_CLEAR_PEFLAG(&huart7); 80101fe: 4b55 ldr r3, [pc, #340] ; (8010354 ) 8010200: 681b ldr r3, [r3, #0] 8010202: 2201 movs r2, #1 8010204: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 8010206: 4b53 ldr r3, [pc, #332] ; (8010354 ) 8010208: 681b ldr r3, [r3, #0] 801020a: 69db ldr r3, [r3, #28] 801020c: f003 0302 and.w r3, r3, #2 8010210: 2b02 cmp r3, #2 8010212: d103 bne.n 801021c __HAL_UART_CLEAR_FEFLAG(&huart7); 8010214: 4b4f ldr r3, [pc, #316] ; (8010354 ) 8010216: 681b ldr r3, [r3, #0] 8010218: 2202 movs r2, #2 801021a: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 801021c: 4b4d ldr r3, [pc, #308] ; (8010354 ) 801021e: 681b ldr r3, [r3, #0] 8010220: 69db ldr r3, [r3, #28] 8010222: f003 0304 and.w r3, r3, #4 8010226: 2b04 cmp r3, #4 8010228: d103 bne.n 8010232 __HAL_UART_CLEAR_NEFLAG(&huart7); 801022a: 4b4a ldr r3, [pc, #296] ; (8010354 ) 801022c: 681b ldr r3, [r3, #0] 801022e: 2204 movs r2, #4 8010230: 621a str r2, [r3, #32] HAL_Delay(20); 8010232: 2014 movs r0, #20 8010234: f001 f9de bl 80115f4 TX_OK = RX_OK = UART_ERROR = false; 8010238: 2200 movs r2, #0 801023a: 4b47 ldr r3, [pc, #284] ; (8010358 ) 801023c: 4611 mov r1, r2 801023e: 7019 strb r1, [r3, #0] 8010240: 4b46 ldr r3, [pc, #280] ; (801035c ) 8010242: 4611 mov r1, r2 8010244: 7019 strb r1, [r3, #0] 8010246: 4b46 ldr r3, [pc, #280] ; (8010360 ) 8010248: 701a strb r2, [r3, #0] len = 0; 801024a: 2300 movs r3, #0 801024c: 82bb strh r3, [r7, #20] memset((void *) &rx, 0, sizeof(rx)); 801024e: f44f 7280 mov.w r2, #256 ; 0x100 8010252: 2100 movs r1, #0 8010254: 4843 ldr r0, [pc, #268] ; (8010364 ) 8010256: f006 f940 bl 80164da iobuf[len++] = ch + 1; 801025a: 8abb ldrh r3, [r7, #20] 801025c: 1c5a adds r2, r3, #1 801025e: 82ba strh r2, [r7, #20] 8010260: 461a mov r2, r3 8010262: 79fb ldrb r3, [r7, #7] 8010264: 3301 adds r3, #1 8010266: b2d9 uxtb r1, r3 8010268: 4b3f ldr r3, [pc, #252] ; (8010368 ) 801026a: 5499 strb r1, [r3, r2] iobuf[len++] = 0x03; 801026c: 8abb ldrh r3, [r7, #20] 801026e: 1c5a adds r2, r3, #1 8010270: 82ba strh r2, [r7, #20] 8010272: 461a mov r2, r3 8010274: 4b3c ldr r3, [pc, #240] ; (8010368 ) 8010276: 2103 movs r1, #3 8010278: 5499 strb r1, [r3, r2] iobuf[len++] = HI(5001); 801027a: 8abb ldrh r3, [r7, #20] 801027c: 1c5a adds r2, r3, #1 801027e: 82ba strh r2, [r7, #20] 8010280: 461a mov r2, r3 8010282: 4b39 ldr r3, [pc, #228] ; (8010368 ) 8010284: 2113 movs r1, #19 8010286: 5499 strb r1, [r3, r2] iobuf[len++] = LO(5001); 8010288: 8abb ldrh r3, [r7, #20] 801028a: 1c5a adds r2, r3, #1 801028c: 82ba strh r2, [r7, #20] 801028e: 461a mov r2, r3 8010290: 4b35 ldr r3, [pc, #212] ; (8010368 ) 8010292: 2189 movs r1, #137 ; 0x89 8010294: 5499 strb r1, [r3, r2] iobuf[len++] = 0; // 8010296: 8abb ldrh r3, [r7, #20] 8010298: 1c5a adds r2, r3, #1 801029a: 82ba strh r2, [r7, #20] 801029c: 461a mov r2, r3 801029e: 4b32 ldr r3, [pc, #200] ; (8010368 ) 80102a0: 2100 movs r1, #0 80102a2: 5499 strb r1, [r3, r2] iobuf[len++] = 10; // IIN,IFV,IFN,IKU,IKE,IKD,IKS 80102a4: 8abb ldrh r3, [r7, #20] 80102a6: 1c5a adds r2, r3, #1 80102a8: 82ba strh r2, [r7, #20] 80102aa: 461a mov r2, r3 80102ac: 4b2e ldr r3, [pc, #184] ; (8010368 ) 80102ae: 210a movs r1, #10 80102b0: 5499 strb r1, [r3, r2] crc = Crc16(len); 80102b2: 8abb ldrh r3, [r7, #20] 80102b4: 4618 mov r0, r3 80102b6: f7ff fdc3 bl 800fe40 80102ba: 4603 mov r3, r0 80102bc: 823b strh r3, [r7, #16] iobuf[len++] = LO(crc); 80102be: 8abb ldrh r3, [r7, #20] 80102c0: 1c5a adds r2, r3, #1 80102c2: 82ba strh r2, [r7, #20] 80102c4: 461a mov r2, r3 80102c6: 8a3b ldrh r3, [r7, #16] 80102c8: b2d9 uxtb r1, r3 80102ca: 4b27 ldr r3, [pc, #156] ; (8010368 ) 80102cc: 5499 strb r1, [r3, r2] iobuf[len++] = HI(crc); 80102ce: 8abb ldrh r3, [r7, #20] 80102d0: 1c5a adds r2, r3, #1 80102d2: 82ba strh r2, [r7, #20] 80102d4: 461a mov r2, r3 80102d6: 8a3b ldrh r3, [r7, #16] 80102d8: 0a1b lsrs r3, r3, #8 80102da: b29b uxth r3, r3 80102dc: b2d9 uxtb r1, r3 80102de: 4b22 ldr r3, [pc, #136] ; (8010368 ) 80102e0: 5499 strb r1, [r3, r2] timeout = HAL_GetTick(); 80102e2: f001 f97b bl 80115dc 80102e6: 4603 mov r3, r0 80102e8: 60fb str r3, [r7, #12] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET); 80102ea: 2201 movs r2, #1 80102ec: f44f 7100 mov.w r1, #512 ; 0x200 80102f0: 481e ldr r0, [pc, #120] ; (801036c ) 80102f2: f002 fcab bl 8012c4c if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK) 80102f6: 8abb ldrh r3, [r7, #20] 80102f8: 461a mov r2, r3 80102fa: 491b ldr r1, [pc, #108] ; (8010368 ) 80102fc: 4815 ldr r0, [pc, #84] ; (8010354 ) 80102fe: f004 fdd3 bl 8014ea8 8010302: 4603 mov r3, r0 8010304: 2b00 cmp r3, #0 8010306: f040 8113 bne.w 8010530 { while((!TX_OK) && (HAL_GetTick() - timeout < 50)); 801030a: bf00 nop 801030c: 4b14 ldr r3, [pc, #80] ; (8010360 ) 801030e: 781b ldrb r3, [r3, #0] 8010310: b2db uxtb r3, r3 8010312: f083 0301 eor.w r3, r3, #1 8010316: b2db uxtb r3, r3 8010318: 2b00 cmp r3, #0 801031a: d006 beq.n 801032a 801031c: f001 f95e bl 80115dc 8010320: 4602 mov r2, r0 8010322: 68fb ldr r3, [r7, #12] 8010324: 1ad3 subs r3, r2, r3 8010326: 2b31 cmp r3, #49 ; 0x31 8010328: d9f0 bls.n 801030c if(!TX_OK) 801032a: 4b0d ldr r3, [pc, #52] ; (8010360 ) 801032c: 781b ldrb r3, [r3, #0] 801032e: b2db uxtb r3, r3 8010330: f083 0301 eor.w r3, r3, #1 8010334: b2db uxtb r3, r3 8010336: 2b00 cmp r3, #0 8010338: d01a beq.n 8010370 { HAL_UART_Abort_IT(&huart7); 801033a: 4806 ldr r0, [pc, #24] ; (8010354 ) 801033c: f004 fe22 bl 8014f84 HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010340: 2200 movs r2, #0 8010342: f44f 7100 mov.w r1, #512 ; 0x200 8010346: 4809 ldr r0, [pc, #36] ; (801036c ) 8010348: f002 fc80 bl 8012c4c return (-1); 801034c: f04f 33ff mov.w r3, #4294967295 8010350: e0f0 b.n 8010534 8010352: bf00 nop 8010354: 2006c434 .word 0x2006c434 8010358: 2006ba91 .word 0x2006ba91 801035c: 2006ba93 .word 0x2006ba93 8010360: 2006ba92 .word 0x2006ba92 8010364: 2006c4bc .word 0x2006c4bc 8010368: 2006c5c4 .word 0x2006c5c4 801036c: 40021400 .word 0x40021400 } HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010370: 2200 movs r2, #0 8010372: f44f 7100 mov.w r1, #512 ; 0x200 8010376: 4871 ldr r0, [pc, #452] ; (801053c ) 8010378: f002 fc68 bl 8012c4c HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт 801037c: 2364 movs r3, #100 ; 0x64 801037e: 2201 movs r2, #1 8010380: 496f ldr r1, [pc, #444] ; (8010540 ) 8010382: 4870 ldr r0, [pc, #448] ; (8010544 ) 8010384: f004 fcc0 bl 8014d08 if(HAL_UART_Receive(&huart7, rx, 25, 100) == HAL_OK) 8010388: 2364 movs r3, #100 ; 0x64 801038a: 2219 movs r2, #25 801038c: 496c ldr r1, [pc, #432] ; (8010540 ) 801038e: 486d ldr r0, [pc, #436] ; (8010544 ) 8010390: f004 fcba bl 8014d08 8010394: 4603 mov r3, r0 8010396: 2b00 cmp r3, #0 8010398: f040 80c1 bne.w 801051e { crc = (uint16_t) ((rx[24]) << 8 | rx[23]); 801039c: 4b68 ldr r3, [pc, #416] ; (8010540 ) 801039e: 7e1b ldrb r3, [r3, #24] 80103a0: 021b lsls r3, r3, #8 80103a2: b21a sxth r2, r3 80103a4: 4b66 ldr r3, [pc, #408] ; (8010540 ) 80103a6: 7ddb ldrb r3, [r3, #23] 80103a8: b21b sxth r3, r3 80103aa: 4313 orrs r3, r2 80103ac: b21b sxth r3, r3 80103ae: 823b strh r3, [r7, #16] if(crc == Crc16_RX(23)) 80103b0: 2017 movs r0, #23 80103b2: f7ff fd71 bl 800fe98 80103b6: 4603 mov r3, r0 80103b8: 461a mov r2, r3 80103ba: 8a3b ldrh r3, [r7, #16] 80103bc: 4293 cmp r3, r2 80103be: f040 80ab bne.w 8010518 { pardata.amplif[ch].IIN = (uint16_t) ((rx[3]) << 8 | rx[4]); 80103c2: 79fb ldrb r3, [r7, #7] 80103c4: 4a5e ldr r2, [pc, #376] ; (8010540 ) 80103c6: 78d2 ldrb r2, [r2, #3] 80103c8: 0212 lsls r2, r2, #8 80103ca: b211 sxth r1, r2 80103cc: 4a5c ldr r2, [pc, #368] ; (8010540 ) 80103ce: 7912 ldrb r2, [r2, #4] 80103d0: b212 sxth r2, r2 80103d2: 430a orrs r2, r1 80103d4: b212 sxth r2, r2 80103d6: b291 uxth r1, r2 80103d8: 4a5b ldr r2, [pc, #364] ; (8010548 ) 80103da: 015b lsls r3, r3, #5 80103dc: 4413 add r3, r2 80103de: 460a mov r2, r1 80103e0: 801a strh r2, [r3, #0] pardata.amplif[ch].IFV = (uint16_t) ((rx[5]) << 8 | rx[6]); 80103e2: 79fb ldrb r3, [r7, #7] 80103e4: 4a56 ldr r2, [pc, #344] ; (8010540 ) 80103e6: 7952 ldrb r2, [r2, #5] 80103e8: 0212 lsls r2, r2, #8 80103ea: b211 sxth r1, r2 80103ec: 4a54 ldr r2, [pc, #336] ; (8010540 ) 80103ee: 7992 ldrb r2, [r2, #6] 80103f0: b212 sxth r2, r2 80103f2: 430a orrs r2, r1 80103f4: b212 sxth r2, r2 80103f6: b291 uxth r1, r2 80103f8: 4a53 ldr r2, [pc, #332] ; (8010548 ) 80103fa: 015b lsls r3, r3, #5 80103fc: 4413 add r3, r2 80103fe: 3302 adds r3, #2 8010400: 460a mov r2, r1 8010402: 801a strh r2, [r3, #0] pardata.amplif[ch].IFN = (uint16_t) ((rx[7]) << 8 | rx[8]); 8010404: 79fb ldrb r3, [r7, #7] 8010406: 4a4e ldr r2, [pc, #312] ; (8010540 ) 8010408: 79d2 ldrb r2, [r2, #7] 801040a: 0212 lsls r2, r2, #8 801040c: b211 sxth r1, r2 801040e: 4a4c ldr r2, [pc, #304] ; (8010540 ) 8010410: 7a12 ldrb r2, [r2, #8] 8010412: b212 sxth r2, r2 8010414: 430a orrs r2, r1 8010416: b212 sxth r2, r2 8010418: b291 uxth r1, r2 801041a: 4a4b ldr r2, [pc, #300] ; (8010548 ) 801041c: 015b lsls r3, r3, #5 801041e: 4413 add r3, r2 8010420: 3304 adds r3, #4 8010422: 460a mov r2, r1 8010424: 801a strh r2, [r3, #0] pardata.amplif[ch].IKU = (uint16_t) ((rx[9]) << 8 | rx[10]); 8010426: 79fb ldrb r3, [r7, #7] 8010428: 4a45 ldr r2, [pc, #276] ; (8010540 ) 801042a: 7a52 ldrb r2, [r2, #9] 801042c: 0212 lsls r2, r2, #8 801042e: b211 sxth r1, r2 8010430: 4a43 ldr r2, [pc, #268] ; (8010540 ) 8010432: 7a92 ldrb r2, [r2, #10] 8010434: b212 sxth r2, r2 8010436: 430a orrs r2, r1 8010438: b212 sxth r2, r2 801043a: b291 uxth r1, r2 801043c: 4a42 ldr r2, [pc, #264] ; (8010548 ) 801043e: 015b lsls r3, r3, #5 8010440: 4413 add r3, r2 8010442: 3306 adds r3, #6 8010444: 460a mov r2, r1 8010446: 801a strh r2, [r3, #0] pardata.amplif[ch].IKE = (uint16_t) ((rx[11]) << 8 | rx[12]); 8010448: 79fb ldrb r3, [r7, #7] 801044a: 4a3d ldr r2, [pc, #244] ; (8010540 ) 801044c: 7ad2 ldrb r2, [r2, #11] 801044e: 0212 lsls r2, r2, #8 8010450: b211 sxth r1, r2 8010452: 4a3b ldr r2, [pc, #236] ; (8010540 ) 8010454: 7b12 ldrb r2, [r2, #12] 8010456: b212 sxth r2, r2 8010458: 430a orrs r2, r1 801045a: b212 sxth r2, r2 801045c: b291 uxth r1, r2 801045e: 4a3a ldr r2, [pc, #232] ; (8010548 ) 8010460: 015b lsls r3, r3, #5 8010462: 4413 add r3, r2 8010464: 3308 adds r3, #8 8010466: 460a mov r2, r1 8010468: 801a strh r2, [r3, #0] pardata.amplif[ch].IKD = (uint16_t) ((rx[13]) << 8 | rx[14]); 801046a: 79fb ldrb r3, [r7, #7] 801046c: 4a34 ldr r2, [pc, #208] ; (8010540 ) 801046e: 7b52 ldrb r2, [r2, #13] 8010470: 0212 lsls r2, r2, #8 8010472: b211 sxth r1, r2 8010474: 4a32 ldr r2, [pc, #200] ; (8010540 ) 8010476: 7b92 ldrb r2, [r2, #14] 8010478: b212 sxth r2, r2 801047a: 430a orrs r2, r1 801047c: b212 sxth r2, r2 801047e: b291 uxth r1, r2 8010480: 4a31 ldr r2, [pc, #196] ; (8010548 ) 8010482: 015b lsls r3, r3, #5 8010484: 4413 add r3, r2 8010486: 330a adds r3, #10 8010488: 460a mov r2, r1 801048a: 801a strh r2, [r3, #0] pardata.amplif[ch].IKS = (uint16_t) ((rx[15]) << 8 | rx[16]); 801048c: 79fb ldrb r3, [r7, #7] 801048e: 4a2c ldr r2, [pc, #176] ; (8010540 ) 8010490: 7bd2 ldrb r2, [r2, #15] 8010492: 0212 lsls r2, r2, #8 8010494: b211 sxth r1, r2 8010496: 4a2a ldr r2, [pc, #168] ; (8010540 ) 8010498: 7c12 ldrb r2, [r2, #16] 801049a: b212 sxth r2, r2 801049c: 430a orrs r2, r1 801049e: b212 sxth r2, r2 80104a0: b291 uxth r1, r2 80104a2: 4a29 ldr r2, [pc, #164] ; (8010548 ) 80104a4: 015b lsls r3, r3, #5 80104a6: 4413 add r3, r2 80104a8: 330c adds r3, #12 80104aa: 460a mov r2, r1 80104ac: 801a strh r2, [r3, #0] pardata.amplif[ch].IPZ = (uint16_t) ((rx[17]) << 8 | rx[18]); 80104ae: 79fb ldrb r3, [r7, #7] 80104b0: 4a23 ldr r2, [pc, #140] ; (8010540 ) 80104b2: 7c52 ldrb r2, [r2, #17] 80104b4: 0212 lsls r2, r2, #8 80104b6: b211 sxth r1, r2 80104b8: 4a21 ldr r2, [pc, #132] ; (8010540 ) 80104ba: 7c92 ldrb r2, [r2, #18] 80104bc: b212 sxth r2, r2 80104be: 430a orrs r2, r1 80104c0: b212 sxth r2, r2 80104c2: b291 uxth r1, r2 80104c4: 4a20 ldr r2, [pc, #128] ; (8010548 ) 80104c6: 015b lsls r3, r3, #5 80104c8: 4413 add r3, r2 80104ca: 330e adds r3, #14 80104cc: 460a mov r2, r1 80104ce: 801a strh r2, [r3, #0] pardata.amplif[ch].OPZ = (uint16_t) ((rx[19]) << 8 | rx[20]); 80104d0: 79fb ldrb r3, [r7, #7] 80104d2: 4a1b ldr r2, [pc, #108] ; (8010540 ) 80104d4: 7cd2 ldrb r2, [r2, #19] 80104d6: 0212 lsls r2, r2, #8 80104d8: b211 sxth r1, r2 80104da: 4a19 ldr r2, [pc, #100] ; (8010540 ) 80104dc: 7d12 ldrb r2, [r2, #20] 80104de: b212 sxth r2, r2 80104e0: 430a orrs r2, r1 80104e2: b212 sxth r2, r2 80104e4: b291 uxth r1, r2 80104e6: 4a18 ldr r2, [pc, #96] ; (8010548 ) 80104e8: 015b lsls r3, r3, #5 80104ea: 4413 add r3, r2 80104ec: 3310 adds r3, #16 80104ee: 460a mov r2, r1 80104f0: 801a strh r2, [r3, #0] pardata.amplif[ch].VAL = (uint16_t) ((rx[21]) << 8 | rx[22]); 80104f2: 79fb ldrb r3, [r7, #7] 80104f4: 4a12 ldr r2, [pc, #72] ; (8010540 ) 80104f6: 7d52 ldrb r2, [r2, #21] 80104f8: 0212 lsls r2, r2, #8 80104fa: b211 sxth r1, r2 80104fc: 4a10 ldr r2, [pc, #64] ; (8010540 ) 80104fe: 7d92 ldrb r2, [r2, #22] 8010500: b212 sxth r2, r2 8010502: 430a orrs r2, r1 8010504: b212 sxth r2, r2 8010506: b291 uxth r1, r2 8010508: 4a0f ldr r2, [pc, #60] ; (8010548 ) 801050a: 015b lsls r3, r3, #5 801050c: 4413 add r3, r2 801050e: 3312 adds r3, #18 8010510: 460a mov r2, r1 8010512: 801a strh r2, [r3, #0] return 0; 8010514: 2300 movs r3, #0 8010516: e00d b.n 8010534 } else { return (-1); 8010518: f04f 33ff mov.w r3, #4294967295 801051c: e00a b.n 8010534 } } else { HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 801051e: 2200 movs r2, #0 8010520: f44f 7100 mov.w r1, #512 ; 0x200 8010524: 4805 ldr r0, [pc, #20] ; (801053c ) 8010526: f002 fb91 bl 8012c4c return (-1); 801052a: f04f 33ff mov.w r3, #4294967295 801052e: e001 b.n 8010534 } } return res; 8010530: f997 3017 ldrsb.w r3, [r7, #23] } 8010534: 4618 mov r0, r3 8010536: 3718 adds r7, #24 8010538: 46bd mov sp, r7 801053a: bd80 pop {r7, pc} 801053c: 40021400 .word 0x40021400 8010540: 2006c4bc .word 0x2006c4bc 8010544: 2006c434 .word 0x2006c434 8010548: 2006bca8 .word 0x2006bca8 0801054c : int8_t WriteChannel(uint8_t ch) { 801054c: b580 push {r7, lr} 801054e: b086 sub sp, #24 8010550: af00 add r7, sp, #0 8010552: 4603 mov r3, r0 8010554: 71fb strb r3, [r7, #7] int8_t res = -1; 8010556: 23ff movs r3, #255 ; 0xff 8010558: 75fb strb r3, [r7, #23] uint16_t i, len = 0; 801055a: 2300 movs r3, #0 801055c: 82bb strh r3, [r7, #20] uint16_t crc; __IO uint32_t timeout; if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 801055e: 4ba8 ldr r3, [pc, #672] ; (8010800 ) 8010560: 681b ldr r3, [r3, #0] 8010562: 69db ldr r3, [r3, #28] 8010564: f003 0308 and.w r3, r3, #8 8010568: 2b08 cmp r3, #8 801056a: d103 bne.n 8010574 __HAL_UART_CLEAR_OREFLAG(&huart7); 801056c: 4ba4 ldr r3, [pc, #656] ; (8010800 ) 801056e: 681b ldr r3, [r3, #0] 8010570: 2208 movs r2, #8 8010572: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 8010574: 4ba2 ldr r3, [pc, #648] ; (8010800 ) 8010576: 681b ldr r3, [r3, #0] 8010578: 69db ldr r3, [r3, #28] 801057a: f003 0301 and.w r3, r3, #1 801057e: 2b01 cmp r3, #1 8010580: d103 bne.n 801058a __HAL_UART_CLEAR_PEFLAG(&huart7); 8010582: 4b9f ldr r3, [pc, #636] ; (8010800 ) 8010584: 681b ldr r3, [r3, #0] 8010586: 2201 movs r2, #1 8010588: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 801058a: 4b9d ldr r3, [pc, #628] ; (8010800 ) 801058c: 681b ldr r3, [r3, #0] 801058e: 69db ldr r3, [r3, #28] 8010590: f003 0302 and.w r3, r3, #2 8010594: 2b02 cmp r3, #2 8010596: d103 bne.n 80105a0 __HAL_UART_CLEAR_FEFLAG(&huart7); 8010598: 4b99 ldr r3, [pc, #612] ; (8010800 ) 801059a: 681b ldr r3, [r3, #0] 801059c: 2202 movs r2, #2 801059e: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 80105a0: 4b97 ldr r3, [pc, #604] ; (8010800 ) 80105a2: 681b ldr r3, [r3, #0] 80105a4: 69db ldr r3, [r3, #28] 80105a6: f003 0304 and.w r3, r3, #4 80105aa: 2b04 cmp r3, #4 80105ac: d103 bne.n 80105b6 __HAL_UART_CLEAR_NEFLAG(&huart7); 80105ae: 4b94 ldr r3, [pc, #592] ; (8010800 ) 80105b0: 681b ldr r3, [r3, #0] 80105b2: 2204 movs r2, #4 80105b4: 621a str r2, [r3, #32] HAL_Delay(20); 80105b6: 2014 movs r0, #20 80105b8: f001 f81c bl 80115f4 TX_OK = RX_OK = UART_ERROR = false; 80105bc: 2200 movs r2, #0 80105be: 4b91 ldr r3, [pc, #580] ; (8010804 ) 80105c0: 4611 mov r1, r2 80105c2: 7019 strb r1, [r3, #0] 80105c4: 4b90 ldr r3, [pc, #576] ; (8010808 ) 80105c6: 4611 mov r1, r2 80105c8: 7019 strb r1, [r3, #0] 80105ca: 4b90 ldr r3, [pc, #576] ; (801080c ) 80105cc: 701a strb r2, [r3, #0] len = 0; 80105ce: 2300 movs r3, #0 80105d0: 82bb strh r3, [r7, #20] memset((void *) &rx, 0, sizeof(rx)); 80105d2: f44f 7280 mov.w r2, #256 ; 0x100 80105d6: 2100 movs r1, #0 80105d8: 488d ldr r0, [pc, #564] ; (8010810 ) 80105da: f005 ff7e bl 80164da iobuf[len++] = ch + 1; 80105de: 8abb ldrh r3, [r7, #20] 80105e0: 1c5a adds r2, r3, #1 80105e2: 82ba strh r2, [r7, #20] 80105e4: 461a mov r2, r3 80105e6: 79fb ldrb r3, [r7, #7] 80105e8: 3301 adds r3, #1 80105ea: b2d9 uxtb r1, r3 80105ec: 4b89 ldr r3, [pc, #548] ; (8010814 ) 80105ee: 5499 strb r1, [r3, r2] iobuf[len++] = 0x10; 80105f0: 8abb ldrh r3, [r7, #20] 80105f2: 1c5a adds r2, r3, #1 80105f4: 82ba strh r2, [r7, #20] 80105f6: 461a mov r2, r3 80105f8: 4b86 ldr r3, [pc, #536] ; (8010814 ) 80105fa: 2110 movs r1, #16 80105fc: 5499 strb r1, [r3, r2] iobuf[len++] = HI(5001); 80105fe: 8abb ldrh r3, [r7, #20] 8010600: 1c5a adds r2, r3, #1 8010602: 82ba strh r2, [r7, #20] 8010604: 461a mov r2, r3 8010606: 4b83 ldr r3, [pc, #524] ; (8010814 ) 8010608: 2113 movs r1, #19 801060a: 5499 strb r1, [r3, r2] iobuf[len++] = LO(5001); 801060c: 8abb ldrh r3, [r7, #20] 801060e: 1c5a adds r2, r3, #1 8010610: 82ba strh r2, [r7, #20] 8010612: 461a mov r2, r3 8010614: 4b7f ldr r3, [pc, #508] ; (8010814 ) 8010616: 2189 movs r1, #137 ; 0x89 8010618: 5499 strb r1, [r3, r2] iobuf[len++] = 0; 801061a: 8abb ldrh r3, [r7, #20] 801061c: 1c5a adds r2, r3, #1 801061e: 82ba strh r2, [r7, #20] 8010620: 461a mov r2, r3 8010622: 4b7c ldr r3, [pc, #496] ; (8010814 ) 8010624: 2100 movs r1, #0 8010626: 5499 strb r1, [r3, r2] iobuf[len++] = 10; 8010628: 8abb ldrh r3, [r7, #20] 801062a: 1c5a adds r2, r3, #1 801062c: 82ba strh r2, [r7, #20] 801062e: 461a mov r2, r3 8010630: 4b78 ldr r3, [pc, #480] ; (8010814 ) 8010632: 210a movs r1, #10 8010634: 5499 strb r1, [r3, r2] iobuf[len++] = 20; 8010636: 8abb ldrh r3, [r7, #20] 8010638: 1c5a adds r2, r3, #1 801063a: 82ba strh r2, [r7, #20] 801063c: 461a mov r2, r3 801063e: 4b75 ldr r3, [pc, #468] ; (8010814 ) 8010640: 2114 movs r1, #20 8010642: 5499 strb r1, [r3, r2] iobuf[len++] = 0; 8010644: 8abb ldrh r3, [r7, #20] 8010646: 1c5a adds r2, r3, #1 8010648: 82ba strh r2, [r7, #20] 801064a: 461a mov r2, r3 801064c: 4b71 ldr r3, [pc, #452] ; (8010814 ) 801064e: 2100 movs r1, #0 8010650: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IIN; 8010652: 8abb ldrh r3, [r7, #20] 8010654: 1c5a adds r2, r3, #1 8010656: 82ba strh r2, [r7, #20] 8010658: 4619 mov r1, r3 801065a: 79fb ldrb r3, [r7, #7] 801065c: 4a6e ldr r2, [pc, #440] ; (8010818 ) 801065e: 015b lsls r3, r3, #5 8010660: 4413 add r3, r2 8010662: 881b ldrh r3, [r3, #0] 8010664: b29b uxth r3, r3 8010666: b2da uxtb r2, r3 8010668: 4b6a ldr r3, [pc, #424] ; (8010814 ) 801066a: 545a strb r2, [r3, r1] iobuf[len++] = 0; 801066c: 8abb ldrh r3, [r7, #20] 801066e: 1c5a adds r2, r3, #1 8010670: 82ba strh r2, [r7, #20] 8010672: 461a mov r2, r3 8010674: 4b67 ldr r3, [pc, #412] ; (8010814 ) 8010676: 2100 movs r1, #0 8010678: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IFV; 801067a: 8abb ldrh r3, [r7, #20] 801067c: 1c5a adds r2, r3, #1 801067e: 82ba strh r2, [r7, #20] 8010680: 4619 mov r1, r3 8010682: 79fb ldrb r3, [r7, #7] 8010684: 4a64 ldr r2, [pc, #400] ; (8010818 ) 8010686: 015b lsls r3, r3, #5 8010688: 4413 add r3, r2 801068a: 3302 adds r3, #2 801068c: 881b ldrh r3, [r3, #0] 801068e: b29b uxth r3, r3 8010690: b2da uxtb r2, r3 8010692: 4b60 ldr r3, [pc, #384] ; (8010814 ) 8010694: 545a strb r2, [r3, r1] iobuf[len++] = 0; 8010696: 8abb ldrh r3, [r7, #20] 8010698: 1c5a adds r2, r3, #1 801069a: 82ba strh r2, [r7, #20] 801069c: 461a mov r2, r3 801069e: 4b5d ldr r3, [pc, #372] ; (8010814 ) 80106a0: 2100 movs r1, #0 80106a2: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IFN; 80106a4: 8abb ldrh r3, [r7, #20] 80106a6: 1c5a adds r2, r3, #1 80106a8: 82ba strh r2, [r7, #20] 80106aa: 4619 mov r1, r3 80106ac: 79fb ldrb r3, [r7, #7] 80106ae: 4a5a ldr r2, [pc, #360] ; (8010818 ) 80106b0: 015b lsls r3, r3, #5 80106b2: 4413 add r3, r2 80106b4: 3304 adds r3, #4 80106b6: 881b ldrh r3, [r3, #0] 80106b8: b29b uxth r3, r3 80106ba: b2da uxtb r2, r3 80106bc: 4b55 ldr r3, [pc, #340] ; (8010814 ) 80106be: 545a strb r2, [r3, r1] iobuf[len++] = 0; 80106c0: 8abb ldrh r3, [r7, #20] 80106c2: 1c5a adds r2, r3, #1 80106c4: 82ba strh r2, [r7, #20] 80106c6: 461a mov r2, r3 80106c8: 4b52 ldr r3, [pc, #328] ; (8010814 ) 80106ca: 2100 movs r1, #0 80106cc: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IKU; 80106ce: 8abb ldrh r3, [r7, #20] 80106d0: 1c5a adds r2, r3, #1 80106d2: 82ba strh r2, [r7, #20] 80106d4: 4619 mov r1, r3 80106d6: 79fb ldrb r3, [r7, #7] 80106d8: 4a4f ldr r2, [pc, #316] ; (8010818 ) 80106da: 015b lsls r3, r3, #5 80106dc: 4413 add r3, r2 80106de: 3306 adds r3, #6 80106e0: 881b ldrh r3, [r3, #0] 80106e2: b29b uxth r3, r3 80106e4: b2da uxtb r2, r3 80106e6: 4b4b ldr r3, [pc, #300] ; (8010814 ) 80106e8: 545a strb r2, [r3, r1] iobuf[len++] = 0; 80106ea: 8abb ldrh r3, [r7, #20] 80106ec: 1c5a adds r2, r3, #1 80106ee: 82ba strh r2, [r7, #20] 80106f0: 461a mov r2, r3 80106f2: 4b48 ldr r3, [pc, #288] ; (8010814 ) 80106f4: 2100 movs r1, #0 80106f6: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IKE; 80106f8: 8abb ldrh r3, [r7, #20] 80106fa: 1c5a adds r2, r3, #1 80106fc: 82ba strh r2, [r7, #20] 80106fe: 4619 mov r1, r3 8010700: 79fb ldrb r3, [r7, #7] 8010702: 4a45 ldr r2, [pc, #276] ; (8010818 ) 8010704: 015b lsls r3, r3, #5 8010706: 4413 add r3, r2 8010708: 3308 adds r3, #8 801070a: 881b ldrh r3, [r3, #0] 801070c: b29b uxth r3, r3 801070e: b2da uxtb r2, r3 8010710: 4b40 ldr r3, [pc, #256] ; (8010814 ) 8010712: 545a strb r2, [r3, r1] iobuf[len++] = 0; 8010714: 8abb ldrh r3, [r7, #20] 8010716: 1c5a adds r2, r3, #1 8010718: 82ba strh r2, [r7, #20] 801071a: 461a mov r2, r3 801071c: 4b3d ldr r3, [pc, #244] ; (8010814 ) 801071e: 2100 movs r1, #0 8010720: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IKD; 8010722: 8abb ldrh r3, [r7, #20] 8010724: 1c5a adds r2, r3, #1 8010726: 82ba strh r2, [r7, #20] 8010728: 4619 mov r1, r3 801072a: 79fb ldrb r3, [r7, #7] 801072c: 4a3a ldr r2, [pc, #232] ; (8010818 ) 801072e: 015b lsls r3, r3, #5 8010730: 4413 add r3, r2 8010732: 330a adds r3, #10 8010734: 881b ldrh r3, [r3, #0] 8010736: b29b uxth r3, r3 8010738: b2da uxtb r2, r3 801073a: 4b36 ldr r3, [pc, #216] ; (8010814 ) 801073c: 545a strb r2, [r3, r1] iobuf[len++] = 0; 801073e: 8abb ldrh r3, [r7, #20] 8010740: 1c5a adds r2, r3, #1 8010742: 82ba strh r2, [r7, #20] 8010744: 461a mov r2, r3 8010746: 4b33 ldr r3, [pc, #204] ; (8010814 ) 8010748: 2100 movs r1, #0 801074a: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IKS; 801074c: 8abb ldrh r3, [r7, #20] 801074e: 1c5a adds r2, r3, #1 8010750: 82ba strh r2, [r7, #20] 8010752: 4619 mov r1, r3 8010754: 79fb ldrb r3, [r7, #7] 8010756: 4a30 ldr r2, [pc, #192] ; (8010818 ) 8010758: 015b lsls r3, r3, #5 801075a: 4413 add r3, r2 801075c: 330c adds r3, #12 801075e: 881b ldrh r3, [r3, #0] 8010760: b29b uxth r3, r3 8010762: b2da uxtb r2, r3 8010764: 4b2b ldr r3, [pc, #172] ; (8010814 ) 8010766: 545a strb r2, [r3, r1] iobuf[len++] = 0; 8010768: 8abb ldrh r3, [r7, #20] 801076a: 1c5a adds r2, r3, #1 801076c: 82ba strh r2, [r7, #20] 801076e: 461a mov r2, r3 8010770: 4b28 ldr r3, [pc, #160] ; (8010814 ) 8010772: 2100 movs r1, #0 8010774: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IPZ; 8010776: 8abb ldrh r3, [r7, #20] 8010778: 1c5a adds r2, r3, #1 801077a: 82ba strh r2, [r7, #20] 801077c: 4619 mov r1, r3 801077e: 79fb ldrb r3, [r7, #7] 8010780: 4a25 ldr r2, [pc, #148] ; (8010818 ) 8010782: 015b lsls r3, r3, #5 8010784: 4413 add r3, r2 8010786: 330e adds r3, #14 8010788: 881b ldrh r3, [r3, #0] 801078a: b29b uxth r3, r3 801078c: b2da uxtb r2, r3 801078e: 4b21 ldr r3, [pc, #132] ; (8010814 ) 8010790: 545a strb r2, [r3, r1] iobuf[len++] = 0; 8010792: 8abb ldrh r3, [r7, #20] 8010794: 1c5a adds r2, r3, #1 8010796: 82ba strh r2, [r7, #20] 8010798: 461a mov r2, r3 801079a: 4b1e ldr r3, [pc, #120] ; (8010814 ) 801079c: 2100 movs r1, #0 801079e: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].OPZ; 80107a0: 8abb ldrh r3, [r7, #20] 80107a2: 1c5a adds r2, r3, #1 80107a4: 82ba strh r2, [r7, #20] 80107a6: 4619 mov r1, r3 80107a8: 79fb ldrb r3, [r7, #7] 80107aa: 4a1b ldr r2, [pc, #108] ; (8010818 ) 80107ac: 015b lsls r3, r3, #5 80107ae: 4413 add r3, r2 80107b0: 3310 adds r3, #16 80107b2: 881b ldrh r3, [r3, #0] 80107b4: b29b uxth r3, r3 80107b6: b2da uxtb r2, r3 80107b8: 4b16 ldr r3, [pc, #88] ; (8010814 ) 80107ba: 545a strb r2, [r3, r1] iobuf[len++] = 0; 80107bc: 8abb ldrh r3, [r7, #20] 80107be: 1c5a adds r2, r3, #1 80107c0: 82ba strh r2, [r7, #20] 80107c2: 461a mov r2, r3 80107c4: 4b13 ldr r3, [pc, #76] ; (8010814 ) 80107c6: 2100 movs r1, #0 80107c8: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].VAL; 80107ca: 8abb ldrh r3, [r7, #20] 80107cc: 1c5a adds r2, r3, #1 80107ce: 82ba strh r2, [r7, #20] 80107d0: 4619 mov r1, r3 80107d2: 79fb ldrb r3, [r7, #7] 80107d4: 4a10 ldr r2, [pc, #64] ; (8010818 ) 80107d6: 015b lsls r3, r3, #5 80107d8: 4413 add r3, r2 80107da: 3312 adds r3, #18 80107dc: 881b ldrh r3, [r3, #0] 80107de: b29b uxth r3, r3 80107e0: b2da uxtb r2, r3 80107e2: 4b0c ldr r3, [pc, #48] ; (8010814 ) 80107e4: 545a strb r2, [r3, r1] crc = Crc16(len); 80107e6: 8abb ldrh r3, [r7, #20] 80107e8: 4618 mov r0, r3 80107ea: f7ff fb29 bl 800fe40 80107ee: 4603 mov r3, r0 80107f0: 827b strh r3, [r7, #18] iobuf[len++] = LO(crc); 80107f2: 8abb ldrh r3, [r7, #20] 80107f4: 1c5a adds r2, r3, #1 80107f6: 82ba strh r2, [r7, #20] 80107f8: 461a mov r2, r3 80107fa: 8a7b ldrh r3, [r7, #18] 80107fc: b2d9 uxtb r1, r3 80107fe: e00d b.n 801081c 8010800: 2006c434 .word 0x2006c434 8010804: 2006ba91 .word 0x2006ba91 8010808: 2006ba93 .word 0x2006ba93 801080c: 2006ba92 .word 0x2006ba92 8010810: 2006c4bc .word 0x2006c4bc 8010814: 2006c5c4 .word 0x2006c5c4 8010818: 2006bca8 .word 0x2006bca8 801081c: 4b44 ldr r3, [pc, #272] ; (8010930 ) 801081e: 5499 strb r1, [r3, r2] iobuf[len++] = HI(crc); 8010820: 8abb ldrh r3, [r7, #20] 8010822: 1c5a adds r2, r3, #1 8010824: 82ba strh r2, [r7, #20] 8010826: 461a mov r2, r3 8010828: 8a7b ldrh r3, [r7, #18] 801082a: 0a1b lsrs r3, r3, #8 801082c: b29b uxth r3, r3 801082e: b2d9 uxtb r1, r3 8010830: 4b3f ldr r3, [pc, #252] ; (8010930 ) 8010832: 5499 strb r1, [r3, r2] timeout = HAL_GetTick(); 8010834: f000 fed2 bl 80115dc 8010838: 4603 mov r3, r0 801083a: 60fb str r3, [r7, #12] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET); 801083c: 2201 movs r2, #1 801083e: f44f 7100 mov.w r1, #512 ; 0x200 8010842: 483c ldr r0, [pc, #240] ; (8010934 ) 8010844: f002 fa02 bl 8012c4c if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK) 8010848: 8abb ldrh r3, [r7, #20] 801084a: 461a mov r2, r3 801084c: 4938 ldr r1, [pc, #224] ; (8010930 ) 801084e: 483a ldr r0, [pc, #232] ; (8010938 ) 8010850: f004 fb2a bl 8014ea8 8010854: 4603 mov r3, r0 8010856: 2b00 cmp r3, #0 8010858: d163 bne.n 8010922 { while((!TX_OK) && (HAL_GetTick() - timeout < 200)); 801085a: bf00 nop 801085c: 4b37 ldr r3, [pc, #220] ; (801093c ) 801085e: 781b ldrb r3, [r3, #0] 8010860: b2db uxtb r3, r3 8010862: f083 0301 eor.w r3, r3, #1 8010866: b2db uxtb r3, r3 8010868: 2b00 cmp r3, #0 801086a: d006 beq.n 801087a 801086c: f000 feb6 bl 80115dc 8010870: 4602 mov r2, r0 8010872: 68fb ldr r3, [r7, #12] 8010874: 1ad3 subs r3, r2, r3 8010876: 2bc7 cmp r3, #199 ; 0xc7 8010878: d9f0 bls.n 801085c if(!TX_OK) 801087a: 4b30 ldr r3, [pc, #192] ; (801093c ) 801087c: 781b ldrb r3, [r3, #0] 801087e: b2db uxtb r3, r3 8010880: f083 0301 eor.w r3, r3, #1 8010884: b2db uxtb r3, r3 8010886: 2b00 cmp r3, #0 8010888: d00b beq.n 80108a2 { HAL_UART_Abort_IT(&huart7); 801088a: 482b ldr r0, [pc, #172] ; (8010938 ) 801088c: f004 fb7a bl 8014f84 HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010890: 2200 movs r2, #0 8010892: f44f 7100 mov.w r1, #512 ; 0x200 8010896: 4827 ldr r0, [pc, #156] ; (8010934 ) 8010898: f002 f9d8 bl 8012c4c return (-1); 801089c: f04f 33ff mov.w r3, #4294967295 80108a0: e041 b.n 8010926 } HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 80108a2: 2200 movs r2, #0 80108a4: f44f 7100 mov.w r1, #512 ; 0x200 80108a8: 4822 ldr r0, [pc, #136] ; (8010934 ) 80108aa: f002 f9cf bl 8012c4c HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт 80108ae: 2364 movs r3, #100 ; 0x64 80108b0: 2201 movs r2, #1 80108b2: 4923 ldr r1, [pc, #140] ; (8010940 ) 80108b4: 4820 ldr r0, [pc, #128] ; (8010938 ) 80108b6: f004 fa27 bl 8014d08 if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK) 80108ba: f44f 73fa mov.w r3, #500 ; 0x1f4 80108be: 2208 movs r2, #8 80108c0: 491f ldr r1, [pc, #124] ; (8010940 ) 80108c2: 481d ldr r0, [pc, #116] ; (8010938 ) 80108c4: f004 fa20 bl 8014d08 80108c8: 4603 mov r3, r0 80108ca: 2b00 cmp r3, #0 80108cc: d120 bne.n 8010910 { crc = (uint16_t) ((rx[7]) << 8 | rx[6]); 80108ce: 4b1c ldr r3, [pc, #112] ; (8010940 ) 80108d0: 79db ldrb r3, [r3, #7] 80108d2: 021b lsls r3, r3, #8 80108d4: b21a sxth r2, r3 80108d6: 4b1a ldr r3, [pc, #104] ; (8010940 ) 80108d8: 799b ldrb r3, [r3, #6] 80108da: b21b sxth r3, r3 80108dc: 4313 orrs r3, r2 80108de: b21b sxth r3, r3 80108e0: 827b strh r3, [r7, #18] if(crc == Crc16_RX(6)) 80108e2: 2006 movs r0, #6 80108e4: f7ff fad8 bl 800fe98 80108e8: 4603 mov r3, r0 80108ea: 461a mov r2, r3 80108ec: 8a7b ldrh r3, [r7, #18] 80108ee: 4293 cmp r3, r2 80108f0: d10b bne.n 801090a { if(rx[0] == (ch + 1)) 80108f2: 4b13 ldr r3, [pc, #76] ; (8010940 ) 80108f4: 781b ldrb r3, [r3, #0] 80108f6: 461a mov r2, r3 80108f8: 79fb ldrb r3, [r7, #7] 80108fa: 3301 adds r3, #1 80108fc: 429a cmp r2, r3 80108fe: d101 bne.n 8010904 return 0; 8010900: 2300 movs r3, #0 8010902: e010 b.n 8010926 else return (-1); 8010904: f04f 33ff mov.w r3, #4294967295 8010908: e00d b.n 8010926 } else { return (-1); 801090a: f04f 33ff mov.w r3, #4294967295 801090e: e00a b.n 8010926 } } else { HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010910: 2200 movs r2, #0 8010912: f44f 7100 mov.w r1, #512 ; 0x200 8010916: 4807 ldr r0, [pc, #28] ; (8010934 ) 8010918: f002 f998 bl 8012c4c return (-1); 801091c: f04f 33ff mov.w r3, #4294967295 8010920: e001 b.n 8010926 } } return res; 8010922: f997 3017 ldrsb.w r3, [r7, #23] } 8010926: 4618 mov r0, r3 8010928: 3718 adds r7, #24 801092a: 46bd mov sp, r7 801092c: bd80 pop {r7, pc} 801092e: bf00 nop 8010930: 2006c5c4 .word 0x2006c5c4 8010934: 40021400 .word 0x40021400 8010938: 2006c434 .word 0x2006c434 801093c: 2006ba92 .word 0x2006ba92 8010940: 2006c4bc .word 0x2006c4bc 08010944 : int8_t ReadChannelSens(uint8_t ch) { 8010944: b580 push {r7, lr} 8010946: b086 sub sp, #24 8010948: af00 add r7, sp, #0 801094a: 4603 mov r3, r0 801094c: 71fb strb r3, [r7, #7] int8_t res = -1; 801094e: 23ff movs r3, #255 ; 0xff 8010950: 75fb strb r3, [r7, #23] uint16_t i, len = 0, cnt = 0; 8010952: 2300 movs r3, #0 8010954: 82bb strh r3, [r7, #20] 8010956: 2300 movs r3, #0 8010958: 827b strh r3, [r7, #18] uint16_t crc; __IO uint32_t timeout; sfloat f; if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 801095a: 4b8a ldr r3, [pc, #552] ; (8010b84 ) 801095c: 681b ldr r3, [r3, #0] 801095e: 69db ldr r3, [r3, #28] 8010960: f003 0308 and.w r3, r3, #8 8010964: 2b08 cmp r3, #8 8010966: d103 bne.n 8010970 __HAL_UART_CLEAR_OREFLAG(&huart7); 8010968: 4b86 ldr r3, [pc, #536] ; (8010b84 ) 801096a: 681b ldr r3, [r3, #0] 801096c: 2208 movs r2, #8 801096e: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 8010970: 4b84 ldr r3, [pc, #528] ; (8010b84 ) 8010972: 681b ldr r3, [r3, #0] 8010974: 69db ldr r3, [r3, #28] 8010976: f003 0301 and.w r3, r3, #1 801097a: 2b01 cmp r3, #1 801097c: d103 bne.n 8010986 __HAL_UART_CLEAR_PEFLAG(&huart7); 801097e: 4b81 ldr r3, [pc, #516] ; (8010b84 ) 8010980: 681b ldr r3, [r3, #0] 8010982: 2201 movs r2, #1 8010984: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 8010986: 4b7f ldr r3, [pc, #508] ; (8010b84 ) 8010988: 681b ldr r3, [r3, #0] 801098a: 69db ldr r3, [r3, #28] 801098c: f003 0302 and.w r3, r3, #2 8010990: 2b02 cmp r3, #2 8010992: d103 bne.n 801099c __HAL_UART_CLEAR_FEFLAG(&huart7); 8010994: 4b7b ldr r3, [pc, #492] ; (8010b84 ) 8010996: 681b ldr r3, [r3, #0] 8010998: 2202 movs r2, #2 801099a: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 801099c: 4b79 ldr r3, [pc, #484] ; (8010b84 ) 801099e: 681b ldr r3, [r3, #0] 80109a0: 69db ldr r3, [r3, #28] 80109a2: f003 0304 and.w r3, r3, #4 80109a6: 2b04 cmp r3, #4 80109a8: d103 bne.n 80109b2 __HAL_UART_CLEAR_NEFLAG(&huart7); 80109aa: 4b76 ldr r3, [pc, #472] ; (8010b84 ) 80109ac: 681b ldr r3, [r3, #0] 80109ae: 2204 movs r2, #4 80109b0: 621a str r2, [r3, #32] HAL_Delay(20); 80109b2: 2014 movs r0, #20 80109b4: f000 fe1e bl 80115f4 TX_OK = RX_OK = UART_ERROR = false; 80109b8: 2200 movs r2, #0 80109ba: 4b73 ldr r3, [pc, #460] ; (8010b88 ) 80109bc: 4611 mov r1, r2 80109be: 7019 strb r1, [r3, #0] 80109c0: 4b72 ldr r3, [pc, #456] ; (8010b8c ) 80109c2: 4611 mov r1, r2 80109c4: 7019 strb r1, [r3, #0] 80109c6: 4b72 ldr r3, [pc, #456] ; (8010b90 ) 80109c8: 701a strb r2, [r3, #0] len = 0; 80109ca: 2300 movs r3, #0 80109cc: 82bb strh r3, [r7, #20] memset((void *) &rx, 0, sizeof(rx)); 80109ce: f44f 7280 mov.w r2, #256 ; 0x100 80109d2: 2100 movs r1, #0 80109d4: 486f ldr r0, [pc, #444] ; (8010b94 ) 80109d6: f005 fd80 bl 80164da iobuf[len++] = ch + 1; 80109da: 8abb ldrh r3, [r7, #20] 80109dc: 1c5a adds r2, r3, #1 80109de: 82ba strh r2, [r7, #20] 80109e0: 461a mov r2, r3 80109e2: 79fb ldrb r3, [r7, #7] 80109e4: 3301 adds r3, #1 80109e6: b2d9 uxtb r1, r3 80109e8: 4b6b ldr r3, [pc, #428] ; (8010b98 ) 80109ea: 5499 strb r1, [r3, r2] iobuf[len++] = 0x03; 80109ec: 8abb ldrh r3, [r7, #20] 80109ee: 1c5a adds r2, r3, #1 80109f0: 82ba strh r2, [r7, #20] 80109f2: 461a mov r2, r3 80109f4: 4b68 ldr r3, [pc, #416] ; (8010b98 ) 80109f6: 2103 movs r1, #3 80109f8: 5499 strb r1, [r3, r2] iobuf[len++] = HI(7502); 80109fa: 8abb ldrh r3, [r7, #20] 80109fc: 1c5a adds r2, r3, #1 80109fe: 82ba strh r2, [r7, #20] 8010a00: 461a mov r2, r3 8010a02: 4b65 ldr r3, [pc, #404] ; (8010b98 ) 8010a04: 211d movs r1, #29 8010a06: 5499 strb r1, [r3, r2] iobuf[len++] = LO(7502); 8010a08: 8abb ldrh r3, [r7, #20] 8010a0a: 1c5a adds r2, r3, #1 8010a0c: 82ba strh r2, [r7, #20] 8010a0e: 461a mov r2, r3 8010a10: 4b61 ldr r3, [pc, #388] ; (8010b98 ) 8010a12: 214e movs r1, #78 ; 0x4e 8010a14: 5499 strb r1, [r3, r2] iobuf[len++] = 0; // 8010a16: 8abb ldrh r3, [r7, #20] 8010a18: 1c5a adds r2, r3, #1 8010a1a: 82ba strh r2, [r7, #20] 8010a1c: 461a mov r2, r3 8010a1e: 4b5e ldr r3, [pc, #376] ; (8010b98 ) 8010a20: 2100 movs r1, #0 8010a22: 5499 strb r1, [r3, r2] iobuf[len++] = 1; // SENS 8010a24: 8abb ldrh r3, [r7, #20] 8010a26: 1c5a adds r2, r3, #1 8010a28: 82ba strh r2, [r7, #20] 8010a2a: 461a mov r2, r3 8010a2c: 4b5a ldr r3, [pc, #360] ; (8010b98 ) 8010a2e: 2101 movs r1, #1 8010a30: 5499 strb r1, [r3, r2] crc = Crc16(len); 8010a32: 8abb ldrh r3, [r7, #20] 8010a34: 4618 mov r0, r3 8010a36: f7ff fa03 bl 800fe40 8010a3a: 4603 mov r3, r0 8010a3c: 823b strh r3, [r7, #16] iobuf[len++] = LO(crc); 8010a3e: 8abb ldrh r3, [r7, #20] 8010a40: 1c5a adds r2, r3, #1 8010a42: 82ba strh r2, [r7, #20] 8010a44: 461a mov r2, r3 8010a46: 8a3b ldrh r3, [r7, #16] 8010a48: b2d9 uxtb r1, r3 8010a4a: 4b53 ldr r3, [pc, #332] ; (8010b98 ) 8010a4c: 5499 strb r1, [r3, r2] iobuf[len++] = HI(crc); 8010a4e: 8abb ldrh r3, [r7, #20] 8010a50: 1c5a adds r2, r3, #1 8010a52: 82ba strh r2, [r7, #20] 8010a54: 461a mov r2, r3 8010a56: 8a3b ldrh r3, [r7, #16] 8010a58: 0a1b lsrs r3, r3, #8 8010a5a: b29b uxth r3, r3 8010a5c: b2d9 uxtb r1, r3 8010a5e: 4b4e ldr r3, [pc, #312] ; (8010b98 ) 8010a60: 5499 strb r1, [r3, r2] timeout = HAL_GetTick(); 8010a62: f000 fdbb bl 80115dc 8010a66: 4603 mov r3, r0 8010a68: 60fb str r3, [r7, #12] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET); 8010a6a: 2201 movs r2, #1 8010a6c: f44f 7100 mov.w r1, #512 ; 0x200 8010a70: 484a ldr r0, [pc, #296] ; (8010b9c ) 8010a72: f002 f8eb bl 8012c4c if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK) 8010a76: 8abb ldrh r3, [r7, #20] 8010a78: 461a mov r2, r3 8010a7a: 4947 ldr r1, [pc, #284] ; (8010b98 ) 8010a7c: 4841 ldr r0, [pc, #260] ; (8010b84 ) 8010a7e: f004 fa13 bl 8014ea8 8010a82: 4603 mov r3, r0 8010a84: 2b00 cmp r3, #0 8010a86: d177 bne.n 8010b78 { while((!TX_OK) && (HAL_GetTick() - timeout < 50)); 8010a88: bf00 nop 8010a8a: 4b41 ldr r3, [pc, #260] ; (8010b90 ) 8010a8c: 781b ldrb r3, [r3, #0] 8010a8e: b2db uxtb r3, r3 8010a90: f083 0301 eor.w r3, r3, #1 8010a94: b2db uxtb r3, r3 8010a96: 2b00 cmp r3, #0 8010a98: d006 beq.n 8010aa8 8010a9a: f000 fd9f bl 80115dc 8010a9e: 4602 mov r2, r0 8010aa0: 68fb ldr r3, [r7, #12] 8010aa2: 1ad3 subs r3, r2, r3 8010aa4: 2b31 cmp r3, #49 ; 0x31 8010aa6: d9f0 bls.n 8010a8a if(!TX_OK) 8010aa8: 4b39 ldr r3, [pc, #228] ; (8010b90 ) 8010aaa: 781b ldrb r3, [r3, #0] 8010aac: b2db uxtb r3, r3 8010aae: f083 0301 eor.w r3, r3, #1 8010ab2: b2db uxtb r3, r3 8010ab4: 2b00 cmp r3, #0 8010ab6: d00b beq.n 8010ad0 { HAL_UART_Abort_IT(&huart7); 8010ab8: 4832 ldr r0, [pc, #200] ; (8010b84 ) 8010aba: f004 fa63 bl 8014f84 HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010abe: 2200 movs r2, #0 8010ac0: f44f 7100 mov.w r1, #512 ; 0x200 8010ac4: 4835 ldr r0, [pc, #212] ; (8010b9c ) 8010ac6: f002 f8c1 bl 8012c4c return (-1); 8010aca: f04f 33ff mov.w r3, #4294967295 8010ace: e055 b.n 8010b7c } HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010ad0: 2200 movs r2, #0 8010ad2: f44f 7100 mov.w r1, #512 ; 0x200 8010ad6: 4831 ldr r0, [pc, #196] ; (8010b9c ) 8010ad8: f002 f8b8 bl 8012c4c HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт 8010adc: 2364 movs r3, #100 ; 0x64 8010ade: 2201 movs r2, #1 8010ae0: 492c ldr r1, [pc, #176] ; (8010b94 ) 8010ae2: 4828 ldr r0, [pc, #160] ; (8010b84 ) 8010ae4: f004 f910 bl 8014d08 if(HAL_UART_Receive(&huart7, rx, 9, 100) == HAL_OK) 8010ae8: 2364 movs r3, #100 ; 0x64 8010aea: 2209 movs r2, #9 8010aec: 4929 ldr r1, [pc, #164] ; (8010b94 ) 8010aee: 4825 ldr r0, [pc, #148] ; (8010b84 ) 8010af0: f004 f90a bl 8014d08 8010af4: 4603 mov r3, r0 8010af6: 2b00 cmp r3, #0 8010af8: d135 bne.n 8010b66 { crc = (uint16_t) ((rx[8]) << 8 | rx[7]); 8010afa: 4b26 ldr r3, [pc, #152] ; (8010b94 ) 8010afc: 7a1b ldrb r3, [r3, #8] 8010afe: 021b lsls r3, r3, #8 8010b00: b21a sxth r2, r3 8010b02: 4b24 ldr r3, [pc, #144] ; (8010b94 ) 8010b04: 79db ldrb r3, [r3, #7] 8010b06: b21b sxth r3, r3 8010b08: 4313 orrs r3, r2 8010b0a: b21b sxth r3, r3 8010b0c: 823b strh r3, [r7, #16] if(crc == Crc16_RX(7)) 8010b0e: 2007 movs r0, #7 8010b10: f7ff f9c2 bl 800fe98 8010b14: 4603 mov r3, r0 8010b16: 461a mov r2, r3 8010b18: 8a3b ldrh r3, [r7, #16] 8010b1a: 4293 cmp r3, r2 8010b1c: d120 bne.n 8010b60 { f.ch[3] = rx[3]; 8010b1e: 4b1d ldr r3, [pc, #116] ; (8010b94 ) 8010b20: 78db ldrb r3, [r3, #3] 8010b22: 72fb strb r3, [r7, #11] f.ch[2] = rx[4]; 8010b24: 4b1b ldr r3, [pc, #108] ; (8010b94 ) 8010b26: 791b ldrb r3, [r3, #4] 8010b28: 72bb strb r3, [r7, #10] f.ch[1] = rx[5]; 8010b2a: 4b1a ldr r3, [pc, #104] ; (8010b94 ) 8010b2c: 795b ldrb r3, [r3, #5] 8010b2e: 727b strb r3, [r7, #9] f.ch[0] = rx[6]; 8010b30: 4b18 ldr r3, [pc, #96] ; (8010b94 ) 8010b32: 799b ldrb r3, [r3, #6] 8010b34: 723b strb r3, [r7, #8] if(f.fl < 0.0001f) { 8010b36: edd7 7a02 vldr s15, [r7, #8] 8010b3a: ed9f 7a19 vldr s14, [pc, #100] ; 8010ba0 8010b3e: eef4 7ac7 vcmpe.f32 s15, s14 8010b42: eef1 fa10 vmrs APSR_nzcv, fpscr 8010b46: d502 bpl.n 8010b4e return (-1); 8010b48: f04f 33ff mov.w r3, #4294967295 8010b4c: e016 b.n 8010b7c } else { pardata.amplif[ch].SENS = f.fl; 8010b4e: 79fb ldrb r3, [r7, #7] 8010b50: 68ba ldr r2, [r7, #8] 8010b52: 4914 ldr r1, [pc, #80] ; (8010ba4 ) 8010b54: 015b lsls r3, r3, #5 8010b56: 440b add r3, r1 8010b58: 3318 adds r3, #24 8010b5a: 601a str r2, [r3, #0] } return 0; 8010b5c: 2300 movs r3, #0 8010b5e: e00d b.n 8010b7c } else { return (-1); 8010b60: f04f 33ff mov.w r3, #4294967295 8010b64: e00a b.n 8010b7c } } else { HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010b66: 2200 movs r2, #0 8010b68: f44f 7100 mov.w r1, #512 ; 0x200 8010b6c: 480b ldr r0, [pc, #44] ; (8010b9c ) 8010b6e: f002 f86d bl 8012c4c return (-1); 8010b72: f04f 33ff mov.w r3, #4294967295 8010b76: e001 b.n 8010b7c } } return res; 8010b78: f997 3017 ldrsb.w r3, [r7, #23] } 8010b7c: 4618 mov r0, r3 8010b7e: 3718 adds r7, #24 8010b80: 46bd mov sp, r7 8010b82: bd80 pop {r7, pc} 8010b84: 2006c434 .word 0x2006c434 8010b88: 2006ba91 .word 0x2006ba91 8010b8c: 2006ba93 .word 0x2006ba93 8010b90: 2006ba92 .word 0x2006ba92 8010b94: 2006c4bc .word 0x2006c4bc 8010b98: 2006c5c4 .word 0x2006c5c4 8010b9c: 40021400 .word 0x40021400 8010ba0: 38d1b717 .word 0x38d1b717 8010ba4: 2006bca8 .word 0x2006bca8 08010ba8 : int8_t WriteChannelSens(uint8_t ch) { 8010ba8: b580 push {r7, lr} 8010baa: b086 sub sp, #24 8010bac: af00 add r7, sp, #0 8010bae: 4603 mov r3, r0 8010bb0: 71fb strb r3, [r7, #7] int8_t res = -1; 8010bb2: 23ff movs r3, #255 ; 0xff 8010bb4: 75fb strb r3, [r7, #23] uint16_t i, len = 0; 8010bb6: 2300 movs r3, #0 8010bb8: 82bb strh r3, [r7, #20] uint16_t crc; __IO uint32_t timeout; sfloat f; if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 8010bba: 4b95 ldr r3, [pc, #596] ; (8010e10 ) 8010bbc: 681b ldr r3, [r3, #0] 8010bbe: 69db ldr r3, [r3, #28] 8010bc0: f003 0308 and.w r3, r3, #8 8010bc4: 2b08 cmp r3, #8 8010bc6: d103 bne.n 8010bd0 __HAL_UART_CLEAR_OREFLAG(&huart7); 8010bc8: 4b91 ldr r3, [pc, #580] ; (8010e10 ) 8010bca: 681b ldr r3, [r3, #0] 8010bcc: 2208 movs r2, #8 8010bce: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 8010bd0: 4b8f ldr r3, [pc, #572] ; (8010e10 ) 8010bd2: 681b ldr r3, [r3, #0] 8010bd4: 69db ldr r3, [r3, #28] 8010bd6: f003 0301 and.w r3, r3, #1 8010bda: 2b01 cmp r3, #1 8010bdc: d103 bne.n 8010be6 __HAL_UART_CLEAR_PEFLAG(&huart7); 8010bde: 4b8c ldr r3, [pc, #560] ; (8010e10 ) 8010be0: 681b ldr r3, [r3, #0] 8010be2: 2201 movs r2, #1 8010be4: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 8010be6: 4b8a ldr r3, [pc, #552] ; (8010e10 ) 8010be8: 681b ldr r3, [r3, #0] 8010bea: 69db ldr r3, [r3, #28] 8010bec: f003 0302 and.w r3, r3, #2 8010bf0: 2b02 cmp r3, #2 8010bf2: d103 bne.n 8010bfc __HAL_UART_CLEAR_FEFLAG(&huart7); 8010bf4: 4b86 ldr r3, [pc, #536] ; (8010e10 ) 8010bf6: 681b ldr r3, [r3, #0] 8010bf8: 2202 movs r2, #2 8010bfa: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 8010bfc: 4b84 ldr r3, [pc, #528] ; (8010e10 ) 8010bfe: 681b ldr r3, [r3, #0] 8010c00: 69db ldr r3, [r3, #28] 8010c02: f003 0304 and.w r3, r3, #4 8010c06: 2b04 cmp r3, #4 8010c08: d103 bne.n 8010c12 __HAL_UART_CLEAR_NEFLAG(&huart7); 8010c0a: 4b81 ldr r3, [pc, #516] ; (8010e10 ) 8010c0c: 681b ldr r3, [r3, #0] 8010c0e: 2204 movs r2, #4 8010c10: 621a str r2, [r3, #32] HAL_Delay(20); 8010c12: 2014 movs r0, #20 8010c14: f000 fcee bl 80115f4 TX_OK = RX_OK = UART_ERROR = false; 8010c18: 2200 movs r2, #0 8010c1a: 4b7e ldr r3, [pc, #504] ; (8010e14 ) 8010c1c: 4611 mov r1, r2 8010c1e: 7019 strb r1, [r3, #0] 8010c20: 4b7d ldr r3, [pc, #500] ; (8010e18 ) 8010c22: 4611 mov r1, r2 8010c24: 7019 strb r1, [r3, #0] 8010c26: 4b7d ldr r3, [pc, #500] ; (8010e1c ) 8010c28: 701a strb r2, [r3, #0] len = 0; 8010c2a: 2300 movs r3, #0 8010c2c: 82bb strh r3, [r7, #20] memset((void *) &rx, 0, sizeof(rx)); 8010c2e: f44f 7280 mov.w r2, #256 ; 0x100 8010c32: 2100 movs r1, #0 8010c34: 487a ldr r0, [pc, #488] ; (8010e20 ) 8010c36: f005 fc50 bl 80164da iobuf[len++] = ch + 1; 8010c3a: 8abb ldrh r3, [r7, #20] 8010c3c: 1c5a adds r2, r3, #1 8010c3e: 82ba strh r2, [r7, #20] 8010c40: 461a mov r2, r3 8010c42: 79fb ldrb r3, [r7, #7] 8010c44: 3301 adds r3, #1 8010c46: b2d9 uxtb r1, r3 8010c48: 4b76 ldr r3, [pc, #472] ; (8010e24 ) 8010c4a: 5499 strb r1, [r3, r2] iobuf[len++] = 0x10; 8010c4c: 8abb ldrh r3, [r7, #20] 8010c4e: 1c5a adds r2, r3, #1 8010c50: 82ba strh r2, [r7, #20] 8010c52: 461a mov r2, r3 8010c54: 4b73 ldr r3, [pc, #460] ; (8010e24 ) 8010c56: 2110 movs r1, #16 8010c58: 5499 strb r1, [r3, r2] iobuf[len++] = HI(7502); 8010c5a: 8abb ldrh r3, [r7, #20] 8010c5c: 1c5a adds r2, r3, #1 8010c5e: 82ba strh r2, [r7, #20] 8010c60: 461a mov r2, r3 8010c62: 4b70 ldr r3, [pc, #448] ; (8010e24 ) 8010c64: 211d movs r1, #29 8010c66: 5499 strb r1, [r3, r2] iobuf[len++] = LO(7502); 8010c68: 8abb ldrh r3, [r7, #20] 8010c6a: 1c5a adds r2, r3, #1 8010c6c: 82ba strh r2, [r7, #20] 8010c6e: 461a mov r2, r3 8010c70: 4b6c ldr r3, [pc, #432] ; (8010e24 ) 8010c72: 214e movs r1, #78 ; 0x4e 8010c74: 5499 strb r1, [r3, r2] iobuf[len++] = 0; 8010c76: 8abb ldrh r3, [r7, #20] 8010c78: 1c5a adds r2, r3, #1 8010c7a: 82ba strh r2, [r7, #20] 8010c7c: 461a mov r2, r3 8010c7e: 4b69 ldr r3, [pc, #420] ; (8010e24 ) 8010c80: 2100 movs r1, #0 8010c82: 5499 strb r1, [r3, r2] iobuf[len++] = 1; 8010c84: 8abb ldrh r3, [r7, #20] 8010c86: 1c5a adds r2, r3, #1 8010c88: 82ba strh r2, [r7, #20] 8010c8a: 461a mov r2, r3 8010c8c: 4b65 ldr r3, [pc, #404] ; (8010e24 ) 8010c8e: 2101 movs r1, #1 8010c90: 5499 strb r1, [r3, r2] iobuf[len++] = 4; 8010c92: 8abb ldrh r3, [r7, #20] 8010c94: 1c5a adds r2, r3, #1 8010c96: 82ba strh r2, [r7, #20] 8010c98: 461a mov r2, r3 8010c9a: 4b62 ldr r3, [pc, #392] ; (8010e24 ) 8010c9c: 2104 movs r1, #4 8010c9e: 5499 strb r1, [r3, r2] f.fl = pardata.amplif[ch].SENS; 8010ca0: 79fb ldrb r3, [r7, #7] 8010ca2: 4a61 ldr r2, [pc, #388] ; (8010e28 ) 8010ca4: 015b lsls r3, r3, #5 8010ca6: 4413 add r3, r2 8010ca8: 3318 adds r3, #24 8010caa: 681b ldr r3, [r3, #0] 8010cac: 60bb str r3, [r7, #8] iobuf[len++] = f.ch[3]; 8010cae: 8abb ldrh r3, [r7, #20] 8010cb0: 1c5a adds r2, r3, #1 8010cb2: 82ba strh r2, [r7, #20] 8010cb4: 461a mov r2, r3 8010cb6: 7af9 ldrb r1, [r7, #11] 8010cb8: 4b5a ldr r3, [pc, #360] ; (8010e24 ) 8010cba: 5499 strb r1, [r3, r2] iobuf[len++] = f.ch[2]; 8010cbc: 8abb ldrh r3, [r7, #20] 8010cbe: 1c5a adds r2, r3, #1 8010cc0: 82ba strh r2, [r7, #20] 8010cc2: 461a mov r2, r3 8010cc4: 7ab9 ldrb r1, [r7, #10] 8010cc6: 4b57 ldr r3, [pc, #348] ; (8010e24 ) 8010cc8: 5499 strb r1, [r3, r2] iobuf[len++] = f.ch[1]; 8010cca: 8abb ldrh r3, [r7, #20] 8010ccc: 1c5a adds r2, r3, #1 8010cce: 82ba strh r2, [r7, #20] 8010cd0: 461a mov r2, r3 8010cd2: 7a79 ldrb r1, [r7, #9] 8010cd4: 4b53 ldr r3, [pc, #332] ; (8010e24 ) 8010cd6: 5499 strb r1, [r3, r2] iobuf[len++] = f.ch[0]; 8010cd8: 8abb ldrh r3, [r7, #20] 8010cda: 1c5a adds r2, r3, #1 8010cdc: 82ba strh r2, [r7, #20] 8010cde: 461a mov r2, r3 8010ce0: 7a39 ldrb r1, [r7, #8] 8010ce2: 4b50 ldr r3, [pc, #320] ; (8010e24 ) 8010ce4: 5499 strb r1, [r3, r2] crc = Crc16(len); 8010ce6: 8abb ldrh r3, [r7, #20] 8010ce8: 4618 mov r0, r3 8010cea: f7ff f8a9 bl 800fe40 8010cee: 4603 mov r3, r0 8010cf0: 827b strh r3, [r7, #18] iobuf[len++] = LO(crc); 8010cf2: 8abb ldrh r3, [r7, #20] 8010cf4: 1c5a adds r2, r3, #1 8010cf6: 82ba strh r2, [r7, #20] 8010cf8: 461a mov r2, r3 8010cfa: 8a7b ldrh r3, [r7, #18] 8010cfc: b2d9 uxtb r1, r3 8010cfe: 4b49 ldr r3, [pc, #292] ; (8010e24 ) 8010d00: 5499 strb r1, [r3, r2] iobuf[len++] = HI(crc); 8010d02: 8abb ldrh r3, [r7, #20] 8010d04: 1c5a adds r2, r3, #1 8010d06: 82ba strh r2, [r7, #20] 8010d08: 461a mov r2, r3 8010d0a: 8a7b ldrh r3, [r7, #18] 8010d0c: 0a1b lsrs r3, r3, #8 8010d0e: b29b uxth r3, r3 8010d10: b2d9 uxtb r1, r3 8010d12: 4b44 ldr r3, [pc, #272] ; (8010e24 ) 8010d14: 5499 strb r1, [r3, r2] timeout = HAL_GetTick(); 8010d16: f000 fc61 bl 80115dc 8010d1a: 4603 mov r3, r0 8010d1c: 60fb str r3, [r7, #12] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET); 8010d1e: 2201 movs r2, #1 8010d20: f44f 7100 mov.w r1, #512 ; 0x200 8010d24: 4841 ldr r0, [pc, #260] ; (8010e2c ) 8010d26: f001 ff91 bl 8012c4c if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK) 8010d2a: 8abb ldrh r3, [r7, #20] 8010d2c: 461a mov r2, r3 8010d2e: 493d ldr r1, [pc, #244] ; (8010e24 ) 8010d30: 4837 ldr r0, [pc, #220] ; (8010e10 ) 8010d32: f004 f8b9 bl 8014ea8 8010d36: 4603 mov r3, r0 8010d38: 2b00 cmp r3, #0 8010d3a: d163 bne.n 8010e04 { while((!TX_OK) && (HAL_GetTick() - timeout < 200)); 8010d3c: bf00 nop 8010d3e: 4b37 ldr r3, [pc, #220] ; (8010e1c ) 8010d40: 781b ldrb r3, [r3, #0] 8010d42: b2db uxtb r3, r3 8010d44: f083 0301 eor.w r3, r3, #1 8010d48: b2db uxtb r3, r3 8010d4a: 2b00 cmp r3, #0 8010d4c: d006 beq.n 8010d5c 8010d4e: f000 fc45 bl 80115dc 8010d52: 4602 mov r2, r0 8010d54: 68fb ldr r3, [r7, #12] 8010d56: 1ad3 subs r3, r2, r3 8010d58: 2bc7 cmp r3, #199 ; 0xc7 8010d5a: d9f0 bls.n 8010d3e if(!TX_OK) 8010d5c: 4b2f ldr r3, [pc, #188] ; (8010e1c ) 8010d5e: 781b ldrb r3, [r3, #0] 8010d60: b2db uxtb r3, r3 8010d62: f083 0301 eor.w r3, r3, #1 8010d66: b2db uxtb r3, r3 8010d68: 2b00 cmp r3, #0 8010d6a: d00b beq.n 8010d84 { HAL_UART_Abort_IT(&huart7); 8010d6c: 4828 ldr r0, [pc, #160] ; (8010e10 ) 8010d6e: f004 f909 bl 8014f84 HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010d72: 2200 movs r2, #0 8010d74: f44f 7100 mov.w r1, #512 ; 0x200 8010d78: 482c ldr r0, [pc, #176] ; (8010e2c ) 8010d7a: f001 ff67 bl 8012c4c return (-1); 8010d7e: f04f 33ff mov.w r3, #4294967295 8010d82: e041 b.n 8010e08 } HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010d84: 2200 movs r2, #0 8010d86: f44f 7100 mov.w r1, #512 ; 0x200 8010d8a: 4828 ldr r0, [pc, #160] ; (8010e2c ) 8010d8c: f001 ff5e bl 8012c4c HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт 8010d90: 2364 movs r3, #100 ; 0x64 8010d92: 2201 movs r2, #1 8010d94: 4922 ldr r1, [pc, #136] ; (8010e20 ) 8010d96: 481e ldr r0, [pc, #120] ; (8010e10 ) 8010d98: f003 ffb6 bl 8014d08 if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK) 8010d9c: f44f 73fa mov.w r3, #500 ; 0x1f4 8010da0: 2208 movs r2, #8 8010da2: 491f ldr r1, [pc, #124] ; (8010e20 ) 8010da4: 481a ldr r0, [pc, #104] ; (8010e10 ) 8010da6: f003 ffaf bl 8014d08 8010daa: 4603 mov r3, r0 8010dac: 2b00 cmp r3, #0 8010dae: d120 bne.n 8010df2 { crc = (uint16_t) ((rx[7]) << 8 | rx[6]); 8010db0: 4b1b ldr r3, [pc, #108] ; (8010e20 ) 8010db2: 79db ldrb r3, [r3, #7] 8010db4: 021b lsls r3, r3, #8 8010db6: b21a sxth r2, r3 8010db8: 4b19 ldr r3, [pc, #100] ; (8010e20 ) 8010dba: 799b ldrb r3, [r3, #6] 8010dbc: b21b sxth r3, r3 8010dbe: 4313 orrs r3, r2 8010dc0: b21b sxth r3, r3 8010dc2: 827b strh r3, [r7, #18] if(crc == Crc16_RX(6)) 8010dc4: 2006 movs r0, #6 8010dc6: f7ff f867 bl 800fe98 8010dca: 4603 mov r3, r0 8010dcc: 461a mov r2, r3 8010dce: 8a7b ldrh r3, [r7, #18] 8010dd0: 4293 cmp r3, r2 8010dd2: d10b bne.n 8010dec { if(rx[0] == (ch + 1)) 8010dd4: 4b12 ldr r3, [pc, #72] ; (8010e20 ) 8010dd6: 781b ldrb r3, [r3, #0] 8010dd8: 461a mov r2, r3 8010dda: 79fb ldrb r3, [r7, #7] 8010ddc: 3301 adds r3, #1 8010dde: 429a cmp r2, r3 8010de0: d101 bne.n 8010de6 return 0; 8010de2: 2300 movs r3, #0 8010de4: e010 b.n 8010e08 else return (-1); 8010de6: f04f 33ff mov.w r3, #4294967295 8010dea: e00d b.n 8010e08 } else { return (-1); 8010dec: f04f 33ff mov.w r3, #4294967295 8010df0: e00a b.n 8010e08 } } else { HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010df2: 2200 movs r2, #0 8010df4: f44f 7100 mov.w r1, #512 ; 0x200 8010df8: 480c ldr r0, [pc, #48] ; (8010e2c ) 8010dfa: f001 ff27 bl 8012c4c return (-1); 8010dfe: f04f 33ff mov.w r3, #4294967295 8010e02: e001 b.n 8010e08 } } return res; 8010e04: f997 3017 ldrsb.w r3, [r7, #23] } 8010e08: 4618 mov r0, r3 8010e0a: 3718 adds r7, #24 8010e0c: 46bd mov sp, r7 8010e0e: bd80 pop {r7, pc} 8010e10: 2006c434 .word 0x2006c434 8010e14: 2006ba91 .word 0x2006ba91 8010e18: 2006ba93 .word 0x2006ba93 8010e1c: 2006ba92 .word 0x2006ba92 8010e20: 2006c4bc .word 0x2006c4bc 8010e24: 2006c5c4 .word 0x2006c5c4 8010e28: 2006bca8 .word 0x2006bca8 8010e2c: 40021400 .word 0x40021400 08010e30 : int8_t Calibr(uint8_t ch, uint8_t on) { 8010e30: b580 push {r7, lr} 8010e32: b086 sub sp, #24 8010e34: af00 add r7, sp, #0 8010e36: 4603 mov r3, r0 8010e38: 460a mov r2, r1 8010e3a: 71fb strb r3, [r7, #7] 8010e3c: 4613 mov r3, r2 8010e3e: 71bb strb r3, [r7, #6] int8_t res = -1; 8010e40: 23ff movs r3, #255 ; 0xff 8010e42: 757b strb r3, [r7, #21] uint16_t i, len = 0; 8010e44: 2300 movs r3, #0 8010e46: 82fb strh r3, [r7, #22] uint16_t crc; uint16_t reg; __IO uint32_t timeout; if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 8010e48: 4b92 ldr r3, [pc, #584] ; (8011094 ) 8010e4a: 681b ldr r3, [r3, #0] 8010e4c: 69db ldr r3, [r3, #28] 8010e4e: f003 0308 and.w r3, r3, #8 8010e52: 2b08 cmp r3, #8 8010e54: d103 bne.n 8010e5e __HAL_UART_CLEAR_OREFLAG(&huart7); 8010e56: 4b8f ldr r3, [pc, #572] ; (8011094 ) 8010e58: 681b ldr r3, [r3, #0] 8010e5a: 2208 movs r2, #8 8010e5c: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 8010e5e: 4b8d ldr r3, [pc, #564] ; (8011094 ) 8010e60: 681b ldr r3, [r3, #0] 8010e62: 69db ldr r3, [r3, #28] 8010e64: f003 0301 and.w r3, r3, #1 8010e68: 2b01 cmp r3, #1 8010e6a: d103 bne.n 8010e74 __HAL_UART_CLEAR_PEFLAG(&huart7); 8010e6c: 4b89 ldr r3, [pc, #548] ; (8011094 ) 8010e6e: 681b ldr r3, [r3, #0] 8010e70: 2201 movs r2, #1 8010e72: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 8010e74: 4b87 ldr r3, [pc, #540] ; (8011094 ) 8010e76: 681b ldr r3, [r3, #0] 8010e78: 69db ldr r3, [r3, #28] 8010e7a: f003 0302 and.w r3, r3, #2 8010e7e: 2b02 cmp r3, #2 8010e80: d103 bne.n 8010e8a __HAL_UART_CLEAR_FEFLAG(&huart7); 8010e82: 4b84 ldr r3, [pc, #528] ; (8011094 ) 8010e84: 681b ldr r3, [r3, #0] 8010e86: 2202 movs r2, #2 8010e88: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 8010e8a: 4b82 ldr r3, [pc, #520] ; (8011094 ) 8010e8c: 681b ldr r3, [r3, #0] 8010e8e: 69db ldr r3, [r3, #28] 8010e90: f003 0304 and.w r3, r3, #4 8010e94: 2b04 cmp r3, #4 8010e96: d103 bne.n 8010ea0 __HAL_UART_CLEAR_NEFLAG(&huart7); 8010e98: 4b7e ldr r3, [pc, #504] ; (8011094 ) 8010e9a: 681b ldr r3, [r3, #0] 8010e9c: 2204 movs r2, #4 8010e9e: 621a str r2, [r3, #32] HAL_Delay(20); 8010ea0: 2014 movs r0, #20 8010ea2: f000 fba7 bl 80115f4 TX_OK = RX_OK = UART_ERROR = false; 8010ea6: 2200 movs r2, #0 8010ea8: 4b7b ldr r3, [pc, #492] ; (8011098 ) 8010eaa: 4611 mov r1, r2 8010eac: 7019 strb r1, [r3, #0] 8010eae: 4b7b ldr r3, [pc, #492] ; (801109c ) 8010eb0: 4611 mov r1, r2 8010eb2: 7019 strb r1, [r3, #0] 8010eb4: 4b7a ldr r3, [pc, #488] ; (80110a0 ) 8010eb6: 701a strb r2, [r3, #0] len = 0; 8010eb8: 2300 movs r3, #0 8010eba: 82fb strh r3, [r7, #22] memset((void *) &rx, 0, sizeof(rx)); 8010ebc: f44f 7280 mov.w r2, #256 ; 0x100 8010ec0: 2100 movs r1, #0 8010ec2: 4878 ldr r0, [pc, #480] ; (80110a4 ) 8010ec4: f005 fb09 bl 80164da iobuf[len++] = ch + 1; 8010ec8: 8afb ldrh r3, [r7, #22] 8010eca: 1c5a adds r2, r3, #1 8010ecc: 82fa strh r2, [r7, #22] 8010ece: 461a mov r2, r3 8010ed0: 79fb ldrb r3, [r7, #7] 8010ed2: 3301 adds r3, #1 8010ed4: b2d9 uxtb r1, r3 8010ed6: 4b74 ldr r3, [pc, #464] ; (80110a8 ) 8010ed8: 5499 strb r1, [r3, r2] iobuf[len++] = 0x10; 8010eda: 8afb ldrh r3, [r7, #22] 8010edc: 1c5a adds r2, r3, #1 8010ede: 82fa strh r2, [r7, #22] 8010ee0: 461a mov r2, r3 8010ee2: 4b71 ldr r3, [pc, #452] ; (80110a8 ) 8010ee4: 2110 movs r1, #16 8010ee6: 5499 strb r1, [r3, r2] iobuf[len++] = HI(3000); 8010ee8: 8afb ldrh r3, [r7, #22] 8010eea: 1c5a adds r2, r3, #1 8010eec: 82fa strh r2, [r7, #22] 8010eee: 461a mov r2, r3 8010ef0: 4b6d ldr r3, [pc, #436] ; (80110a8 ) 8010ef2: 210b movs r1, #11 8010ef4: 5499 strb r1, [r3, r2] iobuf[len++] = LO(3000); 8010ef6: 8afb ldrh r3, [r7, #22] 8010ef8: 1c5a adds r2, r3, #1 8010efa: 82fa strh r2, [r7, #22] 8010efc: 461a mov r2, r3 8010efe: 4b6a ldr r3, [pc, #424] ; (80110a8 ) 8010f00: 21b8 movs r1, #184 ; 0xb8 8010f02: 5499 strb r1, [r3, r2] iobuf[len++] = 0; 8010f04: 8afb ldrh r3, [r7, #22] 8010f06: 1c5a adds r2, r3, #1 8010f08: 82fa strh r2, [r7, #22] 8010f0a: 461a mov r2, r3 8010f0c: 4b66 ldr r3, [pc, #408] ; (80110a8 ) 8010f0e: 2100 movs r1, #0 8010f10: 5499 strb r1, [r3, r2] iobuf[len++] = 1; 8010f12: 8afb ldrh r3, [r7, #22] 8010f14: 1c5a adds r2, r3, #1 8010f16: 82fa strh r2, [r7, #22] 8010f18: 461a mov r2, r3 8010f1a: 4b63 ldr r3, [pc, #396] ; (80110a8 ) 8010f1c: 2101 movs r1, #1 8010f1e: 5499 strb r1, [r3, r2] iobuf[len++] = 2; 8010f20: 8afb ldrh r3, [r7, #22] 8010f22: 1c5a adds r2, r3, #1 8010f24: 82fa strh r2, [r7, #22] 8010f26: 461a mov r2, r3 8010f28: 4b5f ldr r3, [pc, #380] ; (80110a8 ) 8010f2a: 2102 movs r1, #2 8010f2c: 5499 strb r1, [r3, r2] iobuf[len++] = 0; 8010f2e: 8afb ldrh r3, [r7, #22] 8010f30: 1c5a adds r2, r3, #1 8010f32: 82fa strh r2, [r7, #22] 8010f34: 461a mov r2, r3 8010f36: 4b5c ldr r3, [pc, #368] ; (80110a8 ) 8010f38: 2100 movs r1, #0 8010f3a: 5499 strb r1, [r3, r2] if(on) 8010f3c: 79bb ldrb r3, [r7, #6] 8010f3e: 2b00 cmp r3, #0 8010f40: d00b beq.n 8010f5a iobuf[len++] = menu - 1; 8010f42: 8afb ldrh r3, [r7, #22] 8010f44: 1c5a adds r2, r3, #1 8010f46: 82fa strh r2, [r7, #22] 8010f48: 461a mov r2, r3 8010f4a: 4b58 ldr r3, [pc, #352] ; (80110ac ) 8010f4c: 781b ldrb r3, [r3, #0] 8010f4e: b2db uxtb r3, r3 8010f50: 3b01 subs r3, #1 8010f52: b2d9 uxtb r1, r3 8010f54: 4b54 ldr r3, [pc, #336] ; (80110a8 ) 8010f56: 5499 strb r1, [r3, r2] 8010f58: e006 b.n 8010f68 else iobuf[len++] = 0; 8010f5a: 8afb ldrh r3, [r7, #22] 8010f5c: 1c5a adds r2, r3, #1 8010f5e: 82fa strh r2, [r7, #22] 8010f60: 461a mov r2, r3 8010f62: 4b51 ldr r3, [pc, #324] ; (80110a8 ) 8010f64: 2100 movs r1, #0 8010f66: 5499 strb r1, [r3, r2] crc = Crc16(len); 8010f68: 8afb ldrh r3, [r7, #22] 8010f6a: 4618 mov r0, r3 8010f6c: f7fe ff68 bl 800fe40 8010f70: 4603 mov r3, r0 8010f72: 827b strh r3, [r7, #18] iobuf[len++] = LO(crc); 8010f74: 8afb ldrh r3, [r7, #22] 8010f76: 1c5a adds r2, r3, #1 8010f78: 82fa strh r2, [r7, #22] 8010f7a: 461a mov r2, r3 8010f7c: 8a7b ldrh r3, [r7, #18] 8010f7e: b2d9 uxtb r1, r3 8010f80: 4b49 ldr r3, [pc, #292] ; (80110a8 ) 8010f82: 5499 strb r1, [r3, r2] iobuf[len++] = HI(crc); 8010f84: 8afb ldrh r3, [r7, #22] 8010f86: 1c5a adds r2, r3, #1 8010f88: 82fa strh r2, [r7, #22] 8010f8a: 461a mov r2, r3 8010f8c: 8a7b ldrh r3, [r7, #18] 8010f8e: 0a1b lsrs r3, r3, #8 8010f90: b29b uxth r3, r3 8010f92: b2d9 uxtb r1, r3 8010f94: 4b44 ldr r3, [pc, #272] ; (80110a8 ) 8010f96: 5499 strb r1, [r3, r2] timeout = HAL_GetTick(); 8010f98: f000 fb20 bl 80115dc 8010f9c: 4603 mov r3, r0 8010f9e: 60fb str r3, [r7, #12] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET); 8010fa0: 2201 movs r2, #1 8010fa2: f44f 7100 mov.w r1, #512 ; 0x200 8010fa6: 4842 ldr r0, [pc, #264] ; (80110b0 ) 8010fa8: f001 fe50 bl 8012c4c if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK) 8010fac: 8afb ldrh r3, [r7, #22] 8010fae: 461a mov r2, r3 8010fb0: 493d ldr r1, [pc, #244] ; (80110a8 ) 8010fb2: 4838 ldr r0, [pc, #224] ; (8011094 ) 8010fb4: f003 ff78 bl 8014ea8 8010fb8: 4603 mov r3, r0 8010fba: 2b00 cmp r3, #0 8010fbc: d163 bne.n 8011086 { while((!TX_OK) && (HAL_GetTick() - timeout < 200)); 8010fbe: bf00 nop 8010fc0: 4b37 ldr r3, [pc, #220] ; (80110a0 ) 8010fc2: 781b ldrb r3, [r3, #0] 8010fc4: b2db uxtb r3, r3 8010fc6: f083 0301 eor.w r3, r3, #1 8010fca: b2db uxtb r3, r3 8010fcc: 2b00 cmp r3, #0 8010fce: d006 beq.n 8010fde 8010fd0: f000 fb04 bl 80115dc 8010fd4: 4602 mov r2, r0 8010fd6: 68fb ldr r3, [r7, #12] 8010fd8: 1ad3 subs r3, r2, r3 8010fda: 2bc7 cmp r3, #199 ; 0xc7 8010fdc: d9f0 bls.n 8010fc0 if(!TX_OK) 8010fde: 4b30 ldr r3, [pc, #192] ; (80110a0 ) 8010fe0: 781b ldrb r3, [r3, #0] 8010fe2: b2db uxtb r3, r3 8010fe4: f083 0301 eor.w r3, r3, #1 8010fe8: b2db uxtb r3, r3 8010fea: 2b00 cmp r3, #0 8010fec: d00b beq.n 8011006 { HAL_UART_Abort_IT(&huart7); 8010fee: 4829 ldr r0, [pc, #164] ; (8011094 ) 8010ff0: f003 ffc8 bl 8014f84 HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010ff4: 2200 movs r2, #0 8010ff6: f44f 7100 mov.w r1, #512 ; 0x200 8010ffa: 482d ldr r0, [pc, #180] ; (80110b0 ) 8010ffc: f001 fe26 bl 8012c4c return (-1); 8011000: f04f 33ff mov.w r3, #4294967295 8011004: e041 b.n 801108a } HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8011006: 2200 movs r2, #0 8011008: f44f 7100 mov.w r1, #512 ; 0x200 801100c: 4828 ldr r0, [pc, #160] ; (80110b0 ) 801100e: f001 fe1d bl 8012c4c HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт 8011012: 2364 movs r3, #100 ; 0x64 8011014: 2201 movs r2, #1 8011016: 4923 ldr r1, [pc, #140] ; (80110a4 ) 8011018: 481e ldr r0, [pc, #120] ; (8011094 ) 801101a: f003 fe75 bl 8014d08 if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK) 801101e: f44f 73fa mov.w r3, #500 ; 0x1f4 8011022: 2208 movs r2, #8 8011024: 491f ldr r1, [pc, #124] ; (80110a4 ) 8011026: 481b ldr r0, [pc, #108] ; (8011094 ) 8011028: f003 fe6e bl 8014d08 801102c: 4603 mov r3, r0 801102e: 2b00 cmp r3, #0 8011030: d120 bne.n 8011074 { crc = (uint16_t) ((rx[7]) << 8 | rx[6]); 8011032: 4b1c ldr r3, [pc, #112] ; (80110a4 ) 8011034: 79db ldrb r3, [r3, #7] 8011036: 021b lsls r3, r3, #8 8011038: b21a sxth r2, r3 801103a: 4b1a ldr r3, [pc, #104] ; (80110a4 ) 801103c: 799b ldrb r3, [r3, #6] 801103e: b21b sxth r3, r3 8011040: 4313 orrs r3, r2 8011042: b21b sxth r3, r3 8011044: 827b strh r3, [r7, #18] if(crc == Crc16_RX(6)) 8011046: 2006 movs r0, #6 8011048: f7fe ff26 bl 800fe98 801104c: 4603 mov r3, r0 801104e: 461a mov r2, r3 8011050: 8a7b ldrh r3, [r7, #18] 8011052: 4293 cmp r3, r2 8011054: d10b bne.n 801106e { if(rx[0] == (ch + 1)) 8011056: 4b13 ldr r3, [pc, #76] ; (80110a4 ) 8011058: 781b ldrb r3, [r3, #0] 801105a: 461a mov r2, r3 801105c: 79fb ldrb r3, [r7, #7] 801105e: 3301 adds r3, #1 8011060: 429a cmp r2, r3 8011062: d101 bne.n 8011068 return 0; 8011064: 2300 movs r3, #0 8011066: e010 b.n 801108a else return (-1); 8011068: f04f 33ff mov.w r3, #4294967295 801106c: e00d b.n 801108a } else { return (-1); 801106e: f04f 33ff mov.w r3, #4294967295 8011072: e00a b.n 801108a } } else { HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8011074: 2200 movs r2, #0 8011076: f44f 7100 mov.w r1, #512 ; 0x200 801107a: 480d ldr r0, [pc, #52] ; (80110b0 ) 801107c: f001 fde6 bl 8012c4c return (-1); 8011080: f04f 33ff mov.w r3, #4294967295 8011084: e001 b.n 801108a } } return res; 8011086: f997 3015 ldrsb.w r3, [r7, #21] } 801108a: 4618 mov r0, r3 801108c: 3718 adds r7, #24 801108e: 46bd mov sp, r7 8011090: bd80 pop {r7, pc} 8011092: bf00 nop 8011094: 2006c434 .word 0x2006c434 8011098: 2006ba91 .word 0x2006ba91 801109c: 2006ba93 .word 0x2006ba93 80110a0: 2006ba92 .word 0x2006ba92 80110a4: 2006c4bc .word 0x2006c4bc 80110a8: 2006c5c4 .word 0x2006c5c4 80110ac: 200209d9 .word 0x200209d9 80110b0: 40021400 .word 0x40021400 080110b4 : int8_t WriteCorr(uint8_t ch, uint8_t fasecor, uint8_t up) { 80110b4: b580 push {r7, lr} 80110b6: b086 sub sp, #24 80110b8: af00 add r7, sp, #0 80110ba: 4603 mov r3, r0 80110bc: 71fb strb r3, [r7, #7] 80110be: 460b mov r3, r1 80110c0: 71bb strb r3, [r7, #6] 80110c2: 4613 mov r3, r2 80110c4: 717b strb r3, [r7, #5] int8_t res = -1; 80110c6: 23ff movs r3, #255 ; 0xff 80110c8: 75fb strb r3, [r7, #23] uint16_t i, len = 0; 80110ca: 2300 movs r3, #0 80110cc: 82bb strh r3, [r7, #20] uint16_t crc; uint16_t reg; __IO uint32_t timeout; if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 80110ce: 4b8e ldr r3, [pc, #568] ; (8011308 ) 80110d0: 681b ldr r3, [r3, #0] 80110d2: 69db ldr r3, [r3, #28] 80110d4: f003 0308 and.w r3, r3, #8 80110d8: 2b08 cmp r3, #8 80110da: d103 bne.n 80110e4 __HAL_UART_CLEAR_OREFLAG(&huart7); 80110dc: 4b8a ldr r3, [pc, #552] ; (8011308 ) 80110de: 681b ldr r3, [r3, #0] 80110e0: 2208 movs r2, #8 80110e2: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 80110e4: 4b88 ldr r3, [pc, #544] ; (8011308 ) 80110e6: 681b ldr r3, [r3, #0] 80110e8: 69db ldr r3, [r3, #28] 80110ea: f003 0301 and.w r3, r3, #1 80110ee: 2b01 cmp r3, #1 80110f0: d103 bne.n 80110fa __HAL_UART_CLEAR_PEFLAG(&huart7); 80110f2: 4b85 ldr r3, [pc, #532] ; (8011308 ) 80110f4: 681b ldr r3, [r3, #0] 80110f6: 2201 movs r2, #1 80110f8: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 80110fa: 4b83 ldr r3, [pc, #524] ; (8011308 ) 80110fc: 681b ldr r3, [r3, #0] 80110fe: 69db ldr r3, [r3, #28] 8011100: f003 0302 and.w r3, r3, #2 8011104: 2b02 cmp r3, #2 8011106: d103 bne.n 8011110 __HAL_UART_CLEAR_FEFLAG(&huart7); 8011108: 4b7f ldr r3, [pc, #508] ; (8011308 ) 801110a: 681b ldr r3, [r3, #0] 801110c: 2202 movs r2, #2 801110e: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 8011110: 4b7d ldr r3, [pc, #500] ; (8011308 ) 8011112: 681b ldr r3, [r3, #0] 8011114: 69db ldr r3, [r3, #28] 8011116: f003 0304 and.w r3, r3, #4 801111a: 2b04 cmp r3, #4 801111c: d103 bne.n 8011126 __HAL_UART_CLEAR_NEFLAG(&huart7); 801111e: 4b7a ldr r3, [pc, #488] ; (8011308 ) 8011120: 681b ldr r3, [r3, #0] 8011122: 2204 movs r2, #4 8011124: 621a str r2, [r3, #32] HAL_Delay(20); 8011126: 2014 movs r0, #20 8011128: f000 fa64 bl 80115f4 TX_OK = RX_OK = UART_ERROR = false; 801112c: 2200 movs r2, #0 801112e: 4b77 ldr r3, [pc, #476] ; (801130c ) 8011130: 4611 mov r1, r2 8011132: 7019 strb r1, [r3, #0] 8011134: 4b76 ldr r3, [pc, #472] ; (8011310 ) 8011136: 4611 mov r1, r2 8011138: 7019 strb r1, [r3, #0] 801113a: 4b76 ldr r3, [pc, #472] ; (8011314 ) 801113c: 701a strb r2, [r3, #0] len = 0; 801113e: 2300 movs r3, #0 8011140: 82bb strh r3, [r7, #20] memset((void *) &rx, 0, sizeof(rx)); 8011142: f44f 7280 mov.w r2, #256 ; 0x100 8011146: 2100 movs r1, #0 8011148: 4873 ldr r0, [pc, #460] ; (8011318 ) 801114a: f005 f9c6 bl 80164da /*if(fasecor == CALIBR_00) { return (-1); }*/ iobuf[len++] = ch + 1; 801114e: 8abb ldrh r3, [r7, #20] 8011150: 1c5a adds r2, r3, #1 8011152: 82ba strh r2, [r7, #20] 8011154: 461a mov r2, r3 8011156: 79fb ldrb r3, [r7, #7] 8011158: 3301 adds r3, #1 801115a: b2d9 uxtb r1, r3 801115c: 4b6f ldr r3, [pc, #444] ; (801131c ) 801115e: 5499 strb r1, [r3, r2] iobuf[len++] = 0x10; 8011160: 8abb ldrh r3, [r7, #20] 8011162: 1c5a adds r2, r3, #1 8011164: 82ba strh r2, [r7, #20] 8011166: 461a mov r2, r3 8011168: 4b6c ldr r3, [pc, #432] ; (801131c ) 801116a: 2110 movs r1, #16 801116c: 5499 strb r1, [r3, r2] iobuf[len++] = HI(fasecor + 3001); 801116e: 8abb ldrh r3, [r7, #20] 8011170: 1c5a adds r2, r3, #1 8011172: 82ba strh r2, [r7, #20] 8011174: 461a mov r2, r3 8011176: 79bb ldrb r3, [r7, #6] 8011178: f603 33b9 addw r3, r3, #3001 ; 0xbb9 801117c: 121b asrs r3, r3, #8 801117e: b2d9 uxtb r1, r3 8011180: 4b66 ldr r3, [pc, #408] ; (801131c ) 8011182: 5499 strb r1, [r3, r2] iobuf[len++] = LO(fasecor + 3001); 8011184: 8abb ldrh r3, [r7, #20] 8011186: 1c5a adds r2, r3, #1 8011188: 82ba strh r2, [r7, #20] 801118a: 461a mov r2, r3 801118c: 79bb ldrb r3, [r7, #6] 801118e: 3b47 subs r3, #71 ; 0x47 8011190: b2d9 uxtb r1, r3 8011192: 4b62 ldr r3, [pc, #392] ; (801131c ) 8011194: 5499 strb r1, [r3, r2] iobuf[len++] = 0; 8011196: 8abb ldrh r3, [r7, #20] 8011198: 1c5a adds r2, r3, #1 801119a: 82ba strh r2, [r7, #20] 801119c: 461a mov r2, r3 801119e: 4b5f ldr r3, [pc, #380] ; (801131c ) 80111a0: 2100 movs r1, #0 80111a2: 5499 strb r1, [r3, r2] iobuf[len++] = 1; 80111a4: 8abb ldrh r3, [r7, #20] 80111a6: 1c5a adds r2, r3, #1 80111a8: 82ba strh r2, [r7, #20] 80111aa: 461a mov r2, r3 80111ac: 4b5b ldr r3, [pc, #364] ; (801131c ) 80111ae: 2101 movs r1, #1 80111b0: 5499 strb r1, [r3, r2] iobuf[len++] = 2; 80111b2: 8abb ldrh r3, [r7, #20] 80111b4: 1c5a adds r2, r3, #1 80111b6: 82ba strh r2, [r7, #20] 80111b8: 461a mov r2, r3 80111ba: 4b58 ldr r3, [pc, #352] ; (801131c ) 80111bc: 2102 movs r1, #2 80111be: 5499 strb r1, [r3, r2] iobuf[len++] = 0; 80111c0: 8abb ldrh r3, [r7, #20] 80111c2: 1c5a adds r2, r3, #1 80111c4: 82ba strh r2, [r7, #20] 80111c6: 461a mov r2, r3 80111c8: 4b54 ldr r3, [pc, #336] ; (801131c ) 80111ca: 2100 movs r1, #0 80111cc: 5499 strb r1, [r3, r2] iobuf[len++] = up; 80111ce: 8abb ldrh r3, [r7, #20] 80111d0: 1c5a adds r2, r3, #1 80111d2: 82ba strh r2, [r7, #20] 80111d4: 4619 mov r1, r3 80111d6: 4a51 ldr r2, [pc, #324] ; (801131c ) 80111d8: 797b ldrb r3, [r7, #5] 80111da: 5453 strb r3, [r2, r1] crc = Crc16(len); 80111dc: 8abb ldrh r3, [r7, #20] 80111de: 4618 mov r0, r3 80111e0: f7fe fe2e bl 800fe40 80111e4: 4603 mov r3, r0 80111e6: 827b strh r3, [r7, #18] iobuf[len++] = LO(crc); 80111e8: 8abb ldrh r3, [r7, #20] 80111ea: 1c5a adds r2, r3, #1 80111ec: 82ba strh r2, [r7, #20] 80111ee: 461a mov r2, r3 80111f0: 8a7b ldrh r3, [r7, #18] 80111f2: b2d9 uxtb r1, r3 80111f4: 4b49 ldr r3, [pc, #292] ; (801131c ) 80111f6: 5499 strb r1, [r3, r2] iobuf[len++] = HI(crc); 80111f8: 8abb ldrh r3, [r7, #20] 80111fa: 1c5a adds r2, r3, #1 80111fc: 82ba strh r2, [r7, #20] 80111fe: 461a mov r2, r3 8011200: 8a7b ldrh r3, [r7, #18] 8011202: 0a1b lsrs r3, r3, #8 8011204: b29b uxth r3, r3 8011206: b2d9 uxtb r1, r3 8011208: 4b44 ldr r3, [pc, #272] ; (801131c ) 801120a: 5499 strb r1, [r3, r2] timeout = HAL_GetTick(); 801120c: f000 f9e6 bl 80115dc 8011210: 4603 mov r3, r0 8011212: 60fb str r3, [r7, #12] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET); 8011214: 2201 movs r2, #1 8011216: f44f 7100 mov.w r1, #512 ; 0x200 801121a: 4841 ldr r0, [pc, #260] ; (8011320 ) 801121c: f001 fd16 bl 8012c4c if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK) 8011220: 8abb ldrh r3, [r7, #20] 8011222: 461a mov r2, r3 8011224: 493d ldr r1, [pc, #244] ; (801131c ) 8011226: 4838 ldr r0, [pc, #224] ; (8011308 ) 8011228: f003 fe3e bl 8014ea8 801122c: 4603 mov r3, r0 801122e: 2b00 cmp r3, #0 8011230: d163 bne.n 80112fa { while((!TX_OK) && (HAL_GetTick() - timeout < 200)); 8011232: bf00 nop 8011234: 4b37 ldr r3, [pc, #220] ; (8011314 ) 8011236: 781b ldrb r3, [r3, #0] 8011238: b2db uxtb r3, r3 801123a: f083 0301 eor.w r3, r3, #1 801123e: b2db uxtb r3, r3 8011240: 2b00 cmp r3, #0 8011242: d006 beq.n 8011252 8011244: f000 f9ca bl 80115dc 8011248: 4602 mov r2, r0 801124a: 68fb ldr r3, [r7, #12] 801124c: 1ad3 subs r3, r2, r3 801124e: 2bc7 cmp r3, #199 ; 0xc7 8011250: d9f0 bls.n 8011234 if(!TX_OK) 8011252: 4b30 ldr r3, [pc, #192] ; (8011314 ) 8011254: 781b ldrb r3, [r3, #0] 8011256: b2db uxtb r3, r3 8011258: f083 0301 eor.w r3, r3, #1 801125c: b2db uxtb r3, r3 801125e: 2b00 cmp r3, #0 8011260: d00b beq.n 801127a { HAL_UART_Abort_IT(&huart7); 8011262: 4829 ldr r0, [pc, #164] ; (8011308 ) 8011264: f003 fe8e bl 8014f84 HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8011268: 2200 movs r2, #0 801126a: f44f 7100 mov.w r1, #512 ; 0x200 801126e: 482c ldr r0, [pc, #176] ; (8011320 ) 8011270: f001 fcec bl 8012c4c return (-1); 8011274: f04f 33ff mov.w r3, #4294967295 8011278: e041 b.n 80112fe } HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 801127a: 2200 movs r2, #0 801127c: f44f 7100 mov.w r1, #512 ; 0x200 8011280: 4827 ldr r0, [pc, #156] ; (8011320 ) 8011282: f001 fce3 bl 8012c4c HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт 8011286: 2364 movs r3, #100 ; 0x64 8011288: 2201 movs r2, #1 801128a: 4923 ldr r1, [pc, #140] ; (8011318 ) 801128c: 481e ldr r0, [pc, #120] ; (8011308 ) 801128e: f003 fd3b bl 8014d08 if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK) 8011292: f44f 73fa mov.w r3, #500 ; 0x1f4 8011296: 2208 movs r2, #8 8011298: 491f ldr r1, [pc, #124] ; (8011318 ) 801129a: 481b ldr r0, [pc, #108] ; (8011308 ) 801129c: f003 fd34 bl 8014d08 80112a0: 4603 mov r3, r0 80112a2: 2b00 cmp r3, #0 80112a4: d120 bne.n 80112e8 { crc = (uint16_t) ((rx[7]) << 8 | rx[6]); 80112a6: 4b1c ldr r3, [pc, #112] ; (8011318 ) 80112a8: 79db ldrb r3, [r3, #7] 80112aa: 021b lsls r3, r3, #8 80112ac: b21a sxth r2, r3 80112ae: 4b1a ldr r3, [pc, #104] ; (8011318 ) 80112b0: 799b ldrb r3, [r3, #6] 80112b2: b21b sxth r3, r3 80112b4: 4313 orrs r3, r2 80112b6: b21b sxth r3, r3 80112b8: 827b strh r3, [r7, #18] if(crc == Crc16_RX(6)) 80112ba: 2006 movs r0, #6 80112bc: f7fe fdec bl 800fe98 80112c0: 4603 mov r3, r0 80112c2: 461a mov r2, r3 80112c4: 8a7b ldrh r3, [r7, #18] 80112c6: 4293 cmp r3, r2 80112c8: d10b bne.n 80112e2 { if(rx[0] == (ch + 1)) 80112ca: 4b13 ldr r3, [pc, #76] ; (8011318 ) 80112cc: 781b ldrb r3, [r3, #0] 80112ce: 461a mov r2, r3 80112d0: 79fb ldrb r3, [r7, #7] 80112d2: 3301 adds r3, #1 80112d4: 429a cmp r2, r3 80112d6: d101 bne.n 80112dc return 0; 80112d8: 2300 movs r3, #0 80112da: e010 b.n 80112fe else return (-1); 80112dc: f04f 33ff mov.w r3, #4294967295 80112e0: e00d b.n 80112fe } else { return (-1); 80112e2: f04f 33ff mov.w r3, #4294967295 80112e6: e00a b.n 80112fe } } else { HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 80112e8: 2200 movs r2, #0 80112ea: f44f 7100 mov.w r1, #512 ; 0x200 80112ee: 480c ldr r0, [pc, #48] ; (8011320 ) 80112f0: f001 fcac bl 8012c4c return (-1); 80112f4: f04f 33ff mov.w r3, #4294967295 80112f8: e001 b.n 80112fe } } return res; 80112fa: f997 3017 ldrsb.w r3, [r7, #23] } 80112fe: 4618 mov r0, r3 8011300: 3718 adds r7, #24 8011302: 46bd mov sp, r7 8011304: bd80 pop {r7, pc} 8011306: bf00 nop 8011308: 2006c434 .word 0x2006c434 801130c: 2006ba91 .word 0x2006ba91 8011310: 2006ba93 .word 0x2006ba93 8011314: 2006ba92 .word 0x2006ba92 8011318: 2006c4bc .word 0x2006c4bc 801131c: 2006c5c4 .word 0x2006c5c4 8011320: 40021400 .word 0x40021400 08011324 : } } void CalibrOFF(void) { 8011324: b580 push {r7, lr} 8011326: b084 sub sp, #16 8011328: af00 add r7, sp, #0 uint8_t i, ch; uint32_t MASK_CHANNELS = 0; 801132a: 2300 movs r3, #0 801132c: 60bb str r3, [r7, #8] uint32_t CNT_CHANNELS = 0; 801132e: 2300 movs r3, #0 8011330: 607b str r3, [r7, #4] for(ch = 0; ch < 4; ch++) 8011332: 2300 movs r3, #0 8011334: 73bb strb r3, [r7, #14] 8011336: e01f b.n 8011378 { for(i = 0; i < 3; i++) 8011338: 2300 movs r3, #0 801133a: 73fb strb r3, [r7, #15] 801133c: e016 b.n 801136c { if(Calibr(ch, 0) == 0) 801133e: 7bbb ldrb r3, [r7, #14] 8011340: 2100 movs r1, #0 8011342: 4618 mov r0, r3 8011344: f7ff fd74 bl 8010e30 8011348: 4603 mov r3, r0 801134a: 2b00 cmp r3, #0 801134c: d10b bne.n 8011366 { MASK_CHANNELS |= (1 << ch); 801134e: 7bbb ldrb r3, [r7, #14] 8011350: 2201 movs r2, #1 8011352: fa02 f303 lsl.w r3, r2, r3 8011356: 461a mov r2, r3 8011358: 68bb ldr r3, [r7, #8] 801135a: 4313 orrs r3, r2 801135c: 60bb str r3, [r7, #8] CNT_CHANNELS++; 801135e: 687b ldr r3, [r7, #4] 8011360: 3301 adds r3, #1 8011362: 607b str r3, [r7, #4] break; 8011364: e005 b.n 8011372 for(i = 0; i < 3; i++) 8011366: 7bfb ldrb r3, [r7, #15] 8011368: 3301 adds r3, #1 801136a: 73fb strb r3, [r7, #15] 801136c: 7bfb ldrb r3, [r7, #15] 801136e: 2b02 cmp r3, #2 8011370: d9e5 bls.n 801133e for(ch = 0; ch < 4; ch++) 8011372: 7bbb ldrb r3, [r7, #14] 8011374: 3301 adds r3, #1 8011376: 73bb strb r3, [r7, #14] 8011378: 7bbb ldrb r3, [r7, #14] 801137a: 2b03 cmp r3, #3 801137c: d9dc bls.n 8011338 } } } } 801137e: bf00 nop 8011380: 3710 adds r7, #16 8011382: 46bd mov sp, r7 8011384: bd80 pop {r7, pc} ... 08011388 : void AskChannels(void) { 8011388: b580 push {r7, lr} 801138a: b082 sub sp, #8 801138c: af00 add r7, sp, #0 uint8_t i, ch; ASK_COMPLETE = false; 801138e: 4b46 ldr r3, [pc, #280] ; (80114a8 ) 8011390: 2200 movs r2, #0 8011392: 701a strb r2, [r3, #0] for(i = 0; i < 100; i++) 8011394: 2300 movs r3, #0 8011396: 71fb strb r3, [r7, #7] 8011398: e007 b.n 80113aa { RedrawScreen(); 801139a: f7f4 fdbb bl 8005f14 HAL_Delay(10); 801139e: 200a movs r0, #10 80113a0: f000 f928 bl 80115f4 for(i = 0; i < 100; i++) 80113a4: 79fb ldrb r3, [r7, #7] 80113a6: 3301 adds r3, #1 80113a8: 71fb strb r3, [r7, #7] 80113aa: 79fb ldrb r3, [r7, #7] 80113ac: 2b63 cmp r3, #99 ; 0x63 80113ae: d9f4 bls.n 801139a } ip_assigned = false; 80113b0: 4b3e ldr r3, [pc, #248] ; (80114ac ) 80113b2: 2200 movs r2, #0 80113b4: 701a strb r2, [r3, #0] for(i = 0; i < 2; i++) 80113b6: 2300 movs r3, #0 80113b8: 71fb strb r3, [r7, #7] 80113ba: e00e b.n 80113da { if(ReadIP() == 0) { 80113bc: f7fe fde4 bl 800ff88 80113c0: 4603 mov r3, r0 80113c2: 2b00 cmp r3, #0 80113c4: d103 bne.n 80113ce ip_assigned = true; 80113c6: 4b39 ldr r3, [pc, #228] ; (80114ac ) 80113c8: 2201 movs r2, #1 80113ca: 701a strb r2, [r3, #0] break; 80113cc: e008 b.n 80113e0 } HAL_Delay(50); 80113ce: 2032 movs r0, #50 ; 0x32 80113d0: f000 f910 bl 80115f4 for(i = 0; i < 2; i++) 80113d4: 79fb ldrb r3, [r7, #7] 80113d6: 3301 adds r3, #1 80113d8: 71fb strb r3, [r7, #7] 80113da: 79fb ldrb r3, [r7, #7] 80113dc: 2b01 cmp r3, #1 80113de: d9ed bls.n 80113bc } memset((void *) &pardata.amplif[0], 0, sizeof(AmplifData_TypeDef) * 16u); 80113e0: f44f 7200 mov.w r2, #512 ; 0x200 80113e4: 2100 movs r1, #0 80113e6: 4832 ldr r0, [pc, #200] ; (80114b0 ) 80113e8: f005 f877 bl 80164da MASK_CHANNELS = CNT_CHANNELS = ACTIVE_CHANNEL = 0; 80113ec: 2300 movs r3, #0 80113ee: 4a31 ldr r2, [pc, #196] ; (80114b4 ) 80113f0: 6013 str r3, [r2, #0] 80113f2: 4a31 ldr r2, [pc, #196] ; (80114b8 ) 80113f4: 6013 str r3, [r2, #0] 80113f6: 4a31 ldr r2, [pc, #196] ; (80114bc ) 80113f8: 6013 str r3, [r2, #0] for(ch = 0; ch < 8; ch++) 80113fa: 2300 movs r3, #0 80113fc: 71bb strb r3, [r7, #6] 80113fe: e02a b.n 8011456 { for(i = 0; i < 2; i++) 8011400: 2300 movs r3, #0 8011402: 71fb strb r3, [r7, #7] 8011404: e021 b.n 801144a { if(ReadChannel(ch) == 0) 8011406: 79bb ldrb r3, [r7, #6] 8011408: 4618 mov r0, r3 801140a: f7fe fedb bl 80101c4 801140e: 4603 mov r3, r0 8011410: 2b00 cmp r3, #0 8011412: d115 bne.n 8011440 { RedrawScreen(); 8011414: f7f4 fd7e bl 8005f14 MASK_CHANNELS |= (1 << ch); 8011418: 79bb ldrb r3, [r7, #6] 801141a: 2201 movs r2, #1 801141c: fa02 f303 lsl.w r3, r2, r3 8011420: 461a mov r2, r3 8011422: 4b26 ldr r3, [pc, #152] ; (80114bc ) 8011424: 681b ldr r3, [r3, #0] 8011426: 4313 orrs r3, r2 8011428: 4a24 ldr r2, [pc, #144] ; (80114bc ) 801142a: 6013 str r3, [r2, #0] CNT_CHANNELS++; 801142c: 4b22 ldr r3, [pc, #136] ; (80114b8 ) 801142e: 681b ldr r3, [r3, #0] 8011430: 3301 adds r3, #1 8011432: 4a21 ldr r2, [pc, #132] ; (80114b8 ) 8011434: 6013 str r3, [r2, #0] ReadChannelSens(ch); 8011436: 79bb ldrb r3, [r7, #6] 8011438: 4618 mov r0, r3 801143a: f7ff fa83 bl 8010944 break; 801143e: e007 b.n 8011450 } else RedrawScreen(); 8011440: f7f4 fd68 bl 8005f14 for(i = 0; i < 2; i++) 8011444: 79fb ldrb r3, [r7, #7] 8011446: 3301 adds r3, #1 8011448: 71fb strb r3, [r7, #7] 801144a: 79fb ldrb r3, [r7, #7] 801144c: 2b01 cmp r3, #1 801144e: d9da bls.n 8011406 for(ch = 0; ch < 8; ch++) 8011450: 79bb ldrb r3, [r7, #6] 8011452: 3301 adds r3, #1 8011454: 71bb strb r3, [r7, #6] 8011456: 79bb ldrb r3, [r7, #6] 8011458: 2b07 cmp r3, #7 801145a: d9d1 bls.n 8011400 } } if(CNT_CHANNELS != 0) 801145c: 4b16 ldr r3, [pc, #88] ; (80114b8 ) 801145e: 681b ldr r3, [r3, #0] 8011460: 2b00 cmp r3, #0 8011462: d019 beq.n 8011498 { for(i = 0; i < 8; i++) 8011464: 2300 movs r3, #0 8011466: 71fb strb r3, [r7, #7] 8011468: e010 b.n 801148c { if(MASK_CHANNELS & (1 << i)) 801146a: 79fb ldrb r3, [r7, #7] 801146c: 2201 movs r2, #1 801146e: fa02 f303 lsl.w r3, r2, r3 8011472: 461a mov r2, r3 8011474: 4b11 ldr r3, [pc, #68] ; (80114bc ) 8011476: 681b ldr r3, [r3, #0] 8011478: 4013 ands r3, r2 801147a: 2b00 cmp r3, #0 801147c: d003 beq.n 8011486 { ACTIVE_CHANNEL = i; 801147e: 79fb ldrb r3, [r7, #7] 8011480: 4a0c ldr r2, [pc, #48] ; (80114b4 ) 8011482: 6013 str r3, [r2, #0] break; 8011484: e005 b.n 8011492 for(i = 0; i < 8; i++) 8011486: 79fb ldrb r3, [r7, #7] 8011488: 3301 adds r3, #1 801148a: 71fb strb r3, [r7, #7] 801148c: 79fb ldrb r3, [r7, #7] 801148e: 2b07 cmp r3, #7 8011490: d9eb bls.n 801146a } } ASK_COMPLETE = true; 8011492: 4b05 ldr r3, [pc, #20] ; (80114a8 ) 8011494: 2201 movs r2, #1 8011496: 701a strb r2, [r3, #0] { //Off(); } HAL_Delay(2000); 8011498: f44f 60fa mov.w r0, #2000 ; 0x7d0 801149c: f000 f8aa bl 80115f4 //MASK_CHANNELS = 0xf; //TODO Удалить //CNT_CHANNELS = 4; //TODO Удалить } 80114a0: bf00 nop 80114a2: 3708 adds r7, #8 80114a4: 46bd mov sp, r7 80114a6: bd80 pop {r7, pc} 80114a8: 2006ba90 .word 0x2006ba90 80114ac: 2006ba94 .word 0x2006ba94 80114b0: 2006bca8 .word 0x2006bca8 80114b4: 2006ba68 .word 0x2006ba68 80114b8: 2006ba6c .word 0x2006ba6c 80114bc: 2002002c .word 0x2002002c 080114c0 : void AskPeriodic(void) { 80114c0: b580 push {r7, lr} 80114c2: b082 sub sp, #8 80114c4: af00 add r7, sp, #0 uint8_t ch; for(ch = 0; ch < 8; ch++) 80114c6: 2300 movs r3, #0 80114c8: 71fb strb r3, [r7, #7] 80114ca: e01c b.n 8011506 { if(MASK_CHANNELS & (1 << ch)) 80114cc: 79fb ldrb r3, [r7, #7] 80114ce: 2201 movs r2, #1 80114d0: fa02 f303 lsl.w r3, r2, r3 80114d4: 461a mov r2, r3 80114d6: 4b0f ldr r3, [pc, #60] ; (8011514 ) 80114d8: 681b ldr r3, [r3, #0] 80114da: 4013 ands r3, r2 80114dc: 2b00 cmp r3, #0 80114de: d00f beq.n 8011500 { if(!focused) 80114e0: 4b0d ldr r3, [pc, #52] ; (8011518 ) 80114e2: 781b ldrb r3, [r3, #0] 80114e4: b2db uxtb r3, r3 80114e6: f083 0301 eor.w r3, r3, #1 80114ea: b2db uxtb r3, r3 80114ec: 2b00 cmp r3, #0 80114ee: d007 beq.n 8011500 { ReadChannel(ch); 80114f0: 79fb ldrb r3, [r7, #7] 80114f2: 4618 mov r0, r3 80114f4: f7fe fe66 bl 80101c4 ReadChannelSens(ch); 80114f8: 79fb ldrb r3, [r7, #7] 80114fa: 4618 mov r0, r3 80114fc: f7ff fa22 bl 8010944 for(ch = 0; ch < 8; ch++) 8011500: 79fb ldrb r3, [r7, #7] 8011502: 3301 adds r3, #1 8011504: 71fb strb r3, [r7, #7] 8011506: 79fb ldrb r3, [r7, #7] 8011508: 2b07 cmp r3, #7 801150a: d9df bls.n 80114cc } } } } 801150c: bf00 nop 801150e: 3708 adds r7, #8 8011510: 46bd mov sp, r7 8011512: bd80 pop {r7, pc} 8011514: 2002002c .word 0x2002002c 8011518: 200209e4 .word 0x200209e4 0801151c : * need to ensure that the SysTick time base is always set to 1 millisecond * to have correct HAL operation. * @retval HAL status */ HAL_StatusTypeDef HAL_Init(void) { 801151c: b580 push {r7, lr} 801151e: af00 add r7, sp, #0 /* Configure Instruction cache through ART accelerator */ #if (ART_ACCLERATOR_ENABLE != 0) __HAL_FLASH_ART_ENABLE(); 8011520: 4a0b ldr r2, [pc, #44] ; (8011550 ) 8011522: 4b0b ldr r3, [pc, #44] ; (8011550 ) 8011524: 681b ldr r3, [r3, #0] 8011526: f443 7300 orr.w r3, r3, #512 ; 0x200 801152a: 6013 str r3, [r2, #0] #endif /* ART_ACCLERATOR_ENABLE */ /* Configure Flash prefetch */ #if (PREFETCH_ENABLE != 0U) __HAL_FLASH_PREFETCH_BUFFER_ENABLE(); 801152c: 4a08 ldr r2, [pc, #32] ; (8011550 ) 801152e: 4b08 ldr r3, [pc, #32] ; (8011550 ) 8011530: 681b ldr r3, [r3, #0] 8011532: f443 7380 orr.w r3, r3, #256 ; 0x100 8011536: 6013 str r3, [r2, #0] #endif /* PREFETCH_ENABLE */ /* Set Interrupt Group Priority */ HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); 8011538: 2003 movs r0, #3 801153a: f000 f96d bl 8011818 /* Use systick as time base source and configure 1ms tick (default clock after Reset is HSI) */ HAL_InitTick(TICK_INT_PRIORITY); 801153e: 2000 movs r0, #0 8011540: f000 f808 bl 8011554 /* Init the low level hardware */ HAL_MspInit(); 8011544: f7fe f988 bl 800f858 /* Return function status */ return HAL_OK; 8011548: 2300 movs r3, #0 } 801154a: 4618 mov r0, r3 801154c: bd80 pop {r7, pc} 801154e: bf00 nop 8011550: 40023c00 .word 0x40023c00 08011554 : * implementation in user file. * @param TickPriority Tick interrupt priority. * @retval HAL status */ __weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) { 8011554: b580 push {r7, lr} 8011556: b082 sub sp, #8 8011558: af00 add r7, sp, #0 801155a: 6078 str r0, [r7, #4] /* Configure the SysTick to have interrupt in 1ms time basis*/ if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U) 801155c: 4b12 ldr r3, [pc, #72] ; (80115a8 ) 801155e: 681a ldr r2, [r3, #0] 8011560: 4b12 ldr r3, [pc, #72] ; (80115ac ) 8011562: 781b ldrb r3, [r3, #0] 8011564: 4619 mov r1, r3 8011566: f44f 737a mov.w r3, #1000 ; 0x3e8 801156a: fbb3 f3f1 udiv r3, r3, r1 801156e: fbb2 f3f3 udiv r3, r2, r3 8011572: 4618 mov r0, r3 8011574: f000 f993 bl 801189e 8011578: 4603 mov r3, r0 801157a: 2b00 cmp r3, #0 801157c: d001 beq.n 8011582 { return HAL_ERROR; 801157e: 2301 movs r3, #1 8011580: e00e b.n 80115a0 } /* Configure the SysTick IRQ priority */ if (TickPriority < (1UL << __NVIC_PRIO_BITS)) 8011582: 687b ldr r3, [r7, #4] 8011584: 2b0f cmp r3, #15 8011586: d80a bhi.n 801159e { HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U); 8011588: 2200 movs r2, #0 801158a: 6879 ldr r1, [r7, #4] 801158c: f04f 30ff mov.w r0, #4294967295 8011590: f000 f94d bl 801182e uwTickPrio = TickPriority; 8011594: 4a06 ldr r2, [pc, #24] ; (80115b0 ) 8011596: 687b ldr r3, [r7, #4] 8011598: 6013 str r3, [r2, #0] { return HAL_ERROR; } /* Return function status */ return HAL_OK; 801159a: 2300 movs r3, #0 801159c: e000 b.n 80115a0 return HAL_ERROR; 801159e: 2301 movs r3, #1 } 80115a0: 4618 mov r0, r3 80115a2: 3708 adds r7, #8 80115a4: 46bd mov sp, r7 80115a6: bd80 pop {r7, pc} 80115a8: 20020994 .word 0x20020994 80115ac: 200209a4 .word 0x200209a4 80115b0: 200209a0 .word 0x200209a0 080115b4 : * @note This function is declared as __weak to be overwritten in case of other * implementations in user file. * @retval None */ __weak void HAL_IncTick(void) { 80115b4: b480 push {r7} 80115b6: af00 add r7, sp, #0 uwTick += uwTickFreq; 80115b8: 4b06 ldr r3, [pc, #24] ; (80115d4 ) 80115ba: 781b ldrb r3, [r3, #0] 80115bc: 461a mov r2, r3 80115be: 4b06 ldr r3, [pc, #24] ; (80115d8 ) 80115c0: 681b ldr r3, [r3, #0] 80115c2: 4413 add r3, r2 80115c4: 4a04 ldr r2, [pc, #16] ; (80115d8 ) 80115c6: 6013 str r3, [r2, #0] } 80115c8: bf00 nop 80115ca: 46bd mov sp, r7 80115cc: f85d 7b04 ldr.w r7, [sp], #4 80115d0: 4770 bx lr 80115d2: bf00 nop 80115d4: 200209a4 .word 0x200209a4 80115d8: 2006c6c4 .word 0x2006c6c4 080115dc : * @note This function is declared as __weak to be overwritten in case of other * implementations in user file. * @retval tick value */ __weak uint32_t HAL_GetTick(void) { 80115dc: b480 push {r7} 80115de: af00 add r7, sp, #0 return uwTick; 80115e0: 4b03 ldr r3, [pc, #12] ; (80115f0 ) 80115e2: 681b ldr r3, [r3, #0] } 80115e4: 4618 mov r0, r3 80115e6: 46bd mov sp, r7 80115e8: f85d 7b04 ldr.w r7, [sp], #4 80115ec: 4770 bx lr 80115ee: bf00 nop 80115f0: 2006c6c4 .word 0x2006c6c4 080115f4 : * implementations in user file. * @param Delay specifies the delay time length, in milliseconds. * @retval None */ __weak void HAL_Delay(uint32_t Delay) { 80115f4: b580 push {r7, lr} 80115f6: b084 sub sp, #16 80115f8: af00 add r7, sp, #0 80115fa: 6078 str r0, [r7, #4] uint32_t tickstart = HAL_GetTick(); 80115fc: f7ff ffee bl 80115dc 8011600: 60b8 str r0, [r7, #8] uint32_t wait = Delay; 8011602: 687b ldr r3, [r7, #4] 8011604: 60fb str r3, [r7, #12] /* Add a freq to guarantee minimum wait */ if (wait < HAL_MAX_DELAY) 8011606: 68fb ldr r3, [r7, #12] 8011608: f1b3 3fff cmp.w r3, #4294967295 801160c: d005 beq.n 801161a { wait += (uint32_t)(uwTickFreq); 801160e: 4b09 ldr r3, [pc, #36] ; (8011634 ) 8011610: 781b ldrb r3, [r3, #0] 8011612: 461a mov r2, r3 8011614: 68fb ldr r3, [r7, #12] 8011616: 4413 add r3, r2 8011618: 60fb str r3, [r7, #12] } while ((HAL_GetTick() - tickstart) < wait) 801161a: bf00 nop 801161c: f7ff ffde bl 80115dc 8011620: 4602 mov r2, r0 8011622: 68bb ldr r3, [r7, #8] 8011624: 1ad2 subs r2, r2, r3 8011626: 68fb ldr r3, [r7, #12] 8011628: 429a cmp r2, r3 801162a: d3f7 bcc.n 801161c { } } 801162c: bf00 nop 801162e: 3710 adds r7, #16 8011630: 46bd mov sp, r7 8011632: bd80 pop {r7, pc} 8011634: 200209a4 .word 0x200209a4 08011638 <__NVIC_SetPriorityGrouping>: In case of a conflict between priority grouping and available priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. \param [in] PriorityGroup Priority grouping field. */ __STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) { 8011638: b480 push {r7} 801163a: b085 sub sp, #20 801163c: af00 add r7, sp, #0 801163e: 6078 str r0, [r7, #4] uint32_t reg_value; uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ 8011640: 687b ldr r3, [r7, #4] 8011642: f003 0307 and.w r3, r3, #7 8011646: 60fb str r3, [r7, #12] reg_value = SCB->AIRCR; /* read old register configuration */ 8011648: 4b0b ldr r3, [pc, #44] ; (8011678 <__NVIC_SetPriorityGrouping+0x40>) 801164a: 68db ldr r3, [r3, #12] 801164c: 60bb str r3, [r7, #8] reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ 801164e: 68ba ldr r2, [r7, #8] 8011650: f64f 03ff movw r3, #63743 ; 0xf8ff 8011654: 4013 ands r3, r2 8011656: 60bb str r3, [r7, #8] reg_value = (reg_value | ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ 8011658: 68fb ldr r3, [r7, #12] 801165a: 021a lsls r2, r3, #8 ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | 801165c: 68bb ldr r3, [r7, #8] 801165e: 431a orrs r2, r3 reg_value = (reg_value | 8011660: 4b06 ldr r3, [pc, #24] ; (801167c <__NVIC_SetPriorityGrouping+0x44>) 8011662: 4313 orrs r3, r2 8011664: 60bb str r3, [r7, #8] SCB->AIRCR = reg_value; 8011666: 4a04 ldr r2, [pc, #16] ; (8011678 <__NVIC_SetPriorityGrouping+0x40>) 8011668: 68bb ldr r3, [r7, #8] 801166a: 60d3 str r3, [r2, #12] } 801166c: bf00 nop 801166e: 3714 adds r7, #20 8011670: 46bd mov sp, r7 8011672: f85d 7b04 ldr.w r7, [sp], #4 8011676: 4770 bx lr 8011678: e000ed00 .word 0xe000ed00 801167c: 05fa0000 .word 0x05fa0000 08011680 <__NVIC_GetPriorityGrouping>: \brief Get Priority Grouping \details Reads the priority grouping field from the NVIC Interrupt Controller. \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). */ __STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) { 8011680: b480 push {r7} 8011682: af00 add r7, sp, #0 return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); 8011684: 4b04 ldr r3, [pc, #16] ; (8011698 <__NVIC_GetPriorityGrouping+0x18>) 8011686: 68db ldr r3, [r3, #12] 8011688: 0a1b lsrs r3, r3, #8 801168a: f003 0307 and.w r3, r3, #7 } 801168e: 4618 mov r0, r3 8011690: 46bd mov sp, r7 8011692: f85d 7b04 ldr.w r7, [sp], #4 8011696: 4770 bx lr 8011698: e000ed00 .word 0xe000ed00 0801169c <__NVIC_EnableIRQ>: \details Enables a device specific interrupt in the NVIC interrupt controller. \param [in] IRQn Device specific interrupt number. \note IRQn must not be negative. */ __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) { 801169c: b480 push {r7} 801169e: b083 sub sp, #12 80116a0: af00 add r7, sp, #0 80116a2: 4603 mov r3, r0 80116a4: 71fb strb r3, [r7, #7] if ((int32_t)(IRQn) >= 0) 80116a6: f997 3007 ldrsb.w r3, [r7, #7] 80116aa: 2b00 cmp r3, #0 80116ac: db0b blt.n 80116c6 <__NVIC_EnableIRQ+0x2a> { NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); 80116ae: 4909 ldr r1, [pc, #36] ; (80116d4 <__NVIC_EnableIRQ+0x38>) 80116b0: f997 3007 ldrsb.w r3, [r7, #7] 80116b4: 095b lsrs r3, r3, #5 80116b6: 79fa ldrb r2, [r7, #7] 80116b8: f002 021f and.w r2, r2, #31 80116bc: 2001 movs r0, #1 80116be: fa00 f202 lsl.w r2, r0, r2 80116c2: f841 2023 str.w r2, [r1, r3, lsl #2] } } 80116c6: bf00 nop 80116c8: 370c adds r7, #12 80116ca: 46bd mov sp, r7 80116cc: f85d 7b04 ldr.w r7, [sp], #4 80116d0: 4770 bx lr 80116d2: bf00 nop 80116d4: e000e100 .word 0xe000e100 080116d8 <__NVIC_DisableIRQ>: \details Disables a device specific interrupt in the NVIC interrupt controller. \param [in] IRQn Device specific interrupt number. \note IRQn must not be negative. */ __STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) { 80116d8: b480 push {r7} 80116da: b083 sub sp, #12 80116dc: af00 add r7, sp, #0 80116de: 4603 mov r3, r0 80116e0: 71fb strb r3, [r7, #7] if ((int32_t)(IRQn) >= 0) 80116e2: f997 3007 ldrsb.w r3, [r7, #7] 80116e6: 2b00 cmp r3, #0 80116e8: db10 blt.n 801170c <__NVIC_DisableIRQ+0x34> { NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); 80116ea: 490b ldr r1, [pc, #44] ; (8011718 <__NVIC_DisableIRQ+0x40>) 80116ec: f997 3007 ldrsb.w r3, [r7, #7] 80116f0: 095b lsrs r3, r3, #5 80116f2: 79fa ldrb r2, [r7, #7] 80116f4: f002 021f and.w r2, r2, #31 80116f8: 2001 movs r0, #1 80116fa: fa00 f202 lsl.w r2, r0, r2 80116fe: 3320 adds r3, #32 8011700: f841 2023 str.w r2, [r1, r3, lsl #2] \details Acts as a special kind of Data Memory Barrier. It completes when all explicit memory accesses before this instruction complete. */ __STATIC_FORCEINLINE void __DSB(void) { __ASM volatile ("dsb 0xF":::"memory"); 8011704: f3bf 8f4f dsb sy __ASM volatile ("isb 0xF":::"memory"); 8011708: f3bf 8f6f isb sy __DSB(); __ISB(); } } 801170c: bf00 nop 801170e: 370c adds r7, #12 8011710: 46bd mov sp, r7 8011712: f85d 7b04 ldr.w r7, [sp], #4 8011716: 4770 bx lr 8011718: e000e100 .word 0xe000e100 0801171c <__NVIC_SetPriority>: \param [in] IRQn Interrupt number. \param [in] priority Priority to set. \note The priority cannot be set for every processor exception. */ __STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) { 801171c: b480 push {r7} 801171e: b083 sub sp, #12 8011720: af00 add r7, sp, #0 8011722: 4603 mov r3, r0 8011724: 6039 str r1, [r7, #0] 8011726: 71fb strb r3, [r7, #7] if ((int32_t)(IRQn) >= 0) 8011728: f997 3007 ldrsb.w r3, [r7, #7] 801172c: 2b00 cmp r3, #0 801172e: db0a blt.n 8011746 <__NVIC_SetPriority+0x2a> { NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); 8011730: 490d ldr r1, [pc, #52] ; (8011768 <__NVIC_SetPriority+0x4c>) 8011732: f997 3007 ldrsb.w r3, [r7, #7] 8011736: 683a ldr r2, [r7, #0] 8011738: b2d2 uxtb r2, r2 801173a: 0112 lsls r2, r2, #4 801173c: b2d2 uxtb r2, r2 801173e: 440b add r3, r1 8011740: f883 2300 strb.w r2, [r3, #768] ; 0x300 } else { SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); } } 8011744: e00a b.n 801175c <__NVIC_SetPriority+0x40> SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); 8011746: 4909 ldr r1, [pc, #36] ; (801176c <__NVIC_SetPriority+0x50>) 8011748: 79fb ldrb r3, [r7, #7] 801174a: f003 030f and.w r3, r3, #15 801174e: 3b04 subs r3, #4 8011750: 683a ldr r2, [r7, #0] 8011752: b2d2 uxtb r2, r2 8011754: 0112 lsls r2, r2, #4 8011756: b2d2 uxtb r2, r2 8011758: 440b add r3, r1 801175a: 761a strb r2, [r3, #24] } 801175c: bf00 nop 801175e: 370c adds r7, #12 8011760: 46bd mov sp, r7 8011762: f85d 7b04 ldr.w r7, [sp], #4 8011766: 4770 bx lr 8011768: e000e100 .word 0xe000e100 801176c: e000ed00 .word 0xe000ed00 08011770 : \param [in] PreemptPriority Preemptive priority value (starting from 0). \param [in] SubPriority Subpriority value (starting from 0). \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). */ __STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) { 8011770: b480 push {r7} 8011772: b089 sub sp, #36 ; 0x24 8011774: af00 add r7, sp, #0 8011776: 60f8 str r0, [r7, #12] 8011778: 60b9 str r1, [r7, #8] 801177a: 607a str r2, [r7, #4] uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ 801177c: 68fb ldr r3, [r7, #12] 801177e: f003 0307 and.w r3, r3, #7 8011782: 61fb str r3, [r7, #28] uint32_t PreemptPriorityBits; uint32_t SubPriorityBits; PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); 8011784: 69fb ldr r3, [r7, #28] 8011786: f1c3 0307 rsb r3, r3, #7 801178a: 2b04 cmp r3, #4 801178c: bf28 it cs 801178e: 2304 movcs r3, #4 8011790: 61bb str r3, [r7, #24] SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); 8011792: 69fb ldr r3, [r7, #28] 8011794: 3304 adds r3, #4 8011796: 2b06 cmp r3, #6 8011798: d902 bls.n 80117a0 801179a: 69fb ldr r3, [r7, #28] 801179c: 3b03 subs r3, #3 801179e: e000 b.n 80117a2 80117a0: 2300 movs r3, #0 80117a2: 617b str r3, [r7, #20] return ( ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | 80117a4: 2201 movs r2, #1 80117a6: 69bb ldr r3, [r7, #24] 80117a8: fa02 f303 lsl.w r3, r2, r3 80117ac: 1e5a subs r2, r3, #1 80117ae: 68bb ldr r3, [r7, #8] 80117b0: 401a ands r2, r3 80117b2: 697b ldr r3, [r7, #20] 80117b4: 409a lsls r2, r3 ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) 80117b6: 2101 movs r1, #1 80117b8: 697b ldr r3, [r7, #20] 80117ba: fa01 f303 lsl.w r3, r1, r3 80117be: 1e59 subs r1, r3, #1 80117c0: 687b ldr r3, [r7, #4] 80117c2: 400b ands r3, r1 ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | 80117c4: 4313 orrs r3, r2 ); } 80117c6: 4618 mov r0, r3 80117c8: 3724 adds r7, #36 ; 0x24 80117ca: 46bd mov sp, r7 80117cc: f85d 7b04 ldr.w r7, [sp], #4 80117d0: 4770 bx lr ... 080117d4 : \note When the variable __Vendor_SysTickConfig is set to 1, then the function SysTick_Config is not included. In this case, the file device.h must contain a vendor-specific implementation of this function. */ __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) { 80117d4: b580 push {r7, lr} 80117d6: b082 sub sp, #8 80117d8: af00 add r7, sp, #0 80117da: 6078 str r0, [r7, #4] if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) 80117dc: 687b ldr r3, [r7, #4] 80117de: 3b01 subs r3, #1 80117e0: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 80117e4: d301 bcc.n 80117ea { return (1UL); /* Reload value impossible */ 80117e6: 2301 movs r3, #1 80117e8: e00f b.n 801180a } SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ 80117ea: 4a0a ldr r2, [pc, #40] ; (8011814 ) 80117ec: 687b ldr r3, [r7, #4] 80117ee: 3b01 subs r3, #1 80117f0: 6053 str r3, [r2, #4] NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ 80117f2: 210f movs r1, #15 80117f4: f04f 30ff mov.w r0, #4294967295 80117f8: f7ff ff90 bl 801171c <__NVIC_SetPriority> SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ 80117fc: 4b05 ldr r3, [pc, #20] ; (8011814 ) 80117fe: 2200 movs r2, #0 8011800: 609a str r2, [r3, #8] SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | 8011802: 4b04 ldr r3, [pc, #16] ; (8011814 ) 8011804: 2207 movs r2, #7 8011806: 601a str r2, [r3, #0] SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ return (0UL); /* Function successful */ 8011808: 2300 movs r3, #0 } 801180a: 4618 mov r0, r3 801180c: 3708 adds r7, #8 801180e: 46bd mov sp, r7 8011810: bd80 pop {r7, pc} 8011812: bf00 nop 8011814: e000e010 .word 0xe000e010 08011818 : * @note When the NVIC_PriorityGroup_0 is selected, IRQ preemption is no more possible. * The pending IRQ priority will be managed only by the subpriority. * @retval None */ void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) { 8011818: b580 push {r7, lr} 801181a: b082 sub sp, #8 801181c: af00 add r7, sp, #0 801181e: 6078 str r0, [r7, #4] /* Check the parameters */ assert_param(IS_NVIC_PRIORITY_GROUP(PriorityGroup)); /* Set the PRIGROUP[10:8] bits according to the PriorityGroup parameter value */ NVIC_SetPriorityGrouping(PriorityGroup); 8011820: 6878 ldr r0, [r7, #4] 8011822: f7ff ff09 bl 8011638 <__NVIC_SetPriorityGrouping> } 8011826: bf00 nop 8011828: 3708 adds r7, #8 801182a: 46bd mov sp, r7 801182c: bd80 pop {r7, pc} 0801182e : * This parameter can be a value between 0 and 15 * A lower priority value indicates a higher priority. * @retval None */ void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority) { 801182e: b580 push {r7, lr} 8011830: b086 sub sp, #24 8011832: af00 add r7, sp, #0 8011834: 4603 mov r3, r0 8011836: 60b9 str r1, [r7, #8] 8011838: 607a str r2, [r7, #4] 801183a: 73fb strb r3, [r7, #15] uint32_t prioritygroup = 0x00; 801183c: 2300 movs r3, #0 801183e: 617b str r3, [r7, #20] /* Check the parameters */ assert_param(IS_NVIC_SUB_PRIORITY(SubPriority)); assert_param(IS_NVIC_PREEMPTION_PRIORITY(PreemptPriority)); prioritygroup = NVIC_GetPriorityGrouping(); 8011840: f7ff ff1e bl 8011680 <__NVIC_GetPriorityGrouping> 8011844: 6178 str r0, [r7, #20] NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority)); 8011846: 687a ldr r2, [r7, #4] 8011848: 68b9 ldr r1, [r7, #8] 801184a: 6978 ldr r0, [r7, #20] 801184c: f7ff ff90 bl 8011770 8011850: 4602 mov r2, r0 8011852: f997 300f ldrsb.w r3, [r7, #15] 8011856: 4611 mov r1, r2 8011858: 4618 mov r0, r3 801185a: f7ff ff5f bl 801171c <__NVIC_SetPriority> } 801185e: bf00 nop 8011860: 3718 adds r7, #24 8011862: 46bd mov sp, r7 8011864: bd80 pop {r7, pc} 08011866 : * This parameter can be an enumerator of IRQn_Type enumeration * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32f7xxxx.h)) * @retval None */ void HAL_NVIC_EnableIRQ(IRQn_Type IRQn) { 8011866: b580 push {r7, lr} 8011868: b082 sub sp, #8 801186a: af00 add r7, sp, #0 801186c: 4603 mov r3, r0 801186e: 71fb strb r3, [r7, #7] /* Check the parameters */ assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); /* Enable interrupt */ NVIC_EnableIRQ(IRQn); 8011870: f997 3007 ldrsb.w r3, [r7, #7] 8011874: 4618 mov r0, r3 8011876: f7ff ff11 bl 801169c <__NVIC_EnableIRQ> } 801187a: bf00 nop 801187c: 3708 adds r7, #8 801187e: 46bd mov sp, r7 8011880: bd80 pop {r7, pc} 08011882 : * This parameter can be an enumerator of IRQn_Type enumeration * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32f7xxxx.h)) * @retval None */ void HAL_NVIC_DisableIRQ(IRQn_Type IRQn) { 8011882: b580 push {r7, lr} 8011884: b082 sub sp, #8 8011886: af00 add r7, sp, #0 8011888: 4603 mov r3, r0 801188a: 71fb strb r3, [r7, #7] /* Check the parameters */ assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); /* Disable interrupt */ NVIC_DisableIRQ(IRQn); 801188c: f997 3007 ldrsb.w r3, [r7, #7] 8011890: 4618 mov r0, r3 8011892: f7ff ff21 bl 80116d8 <__NVIC_DisableIRQ> } 8011896: bf00 nop 8011898: 3708 adds r7, #8 801189a: 46bd mov sp, r7 801189c: bd80 pop {r7, pc} 0801189e : * @param TicksNumb Specifies the ticks Number of ticks between two interrupts. * @retval status: - 0 Function succeeded. * - 1 Function failed. */ uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb) { 801189e: b580 push {r7, lr} 80118a0: b082 sub sp, #8 80118a2: af00 add r7, sp, #0 80118a4: 6078 str r0, [r7, #4] return SysTick_Config(TicksNumb); 80118a6: 6878 ldr r0, [r7, #4] 80118a8: f7ff ff94 bl 80117d4 80118ac: 4603 mov r3, r0 } 80118ae: 4618 mov r0, r3 80118b0: 3708 adds r7, #8 80118b2: 46bd mov sp, r7 80118b4: bd80 pop {r7, pc} 080118b6 : * and the Stream will be effectively disabled only after the transfer of * this single data is finished. * @retval HAL status */ HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma) { 80118b6: b580 push {r7, lr} 80118b8: b084 sub sp, #16 80118ba: af00 add r7, sp, #0 80118bc: 6078 str r0, [r7, #4] /* calculate DMA base and stream number */ DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress; 80118be: 687b ldr r3, [r7, #4] 80118c0: 6d9b ldr r3, [r3, #88] ; 0x58 80118c2: 60fb str r3, [r7, #12] uint32_t tickstart = HAL_GetTick(); 80118c4: f7ff fe8a bl 80115dc 80118c8: 60b8 str r0, [r7, #8] if(hdma->State != HAL_DMA_STATE_BUSY) 80118ca: 687b ldr r3, [r7, #4] 80118cc: f893 3035 ldrb.w r3, [r3, #53] ; 0x35 80118d0: b2db uxtb r3, r3 80118d2: 2b02 cmp r3, #2 80118d4: d008 beq.n 80118e8 { hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; 80118d6: 687b ldr r3, [r7, #4] 80118d8: 2280 movs r2, #128 ; 0x80 80118da: 655a str r2, [r3, #84] ; 0x54 /* Process Unlocked */ __HAL_UNLOCK(hdma); 80118dc: 687b ldr r3, [r7, #4] 80118de: 2200 movs r2, #0 80118e0: f883 2034 strb.w r2, [r3, #52] ; 0x34 return HAL_ERROR; 80118e4: 2301 movs r3, #1 80118e6: e052 b.n 801198e } else { /* Disable all the transfer interrupts */ hdma->Instance->CR &= ~(DMA_IT_TC | DMA_IT_TE | DMA_IT_DME); 80118e8: 687b ldr r3, [r7, #4] 80118ea: 681b ldr r3, [r3, #0] 80118ec: 687a ldr r2, [r7, #4] 80118ee: 6812 ldr r2, [r2, #0] 80118f0: 6812 ldr r2, [r2, #0] 80118f2: f022 0216 bic.w r2, r2, #22 80118f6: 601a str r2, [r3, #0] hdma->Instance->FCR &= ~(DMA_IT_FE); 80118f8: 687b ldr r3, [r7, #4] 80118fa: 681b ldr r3, [r3, #0] 80118fc: 687a ldr r2, [r7, #4] 80118fe: 6812 ldr r2, [r2, #0] 8011900: 6952 ldr r2, [r2, #20] 8011902: f022 0280 bic.w r2, r2, #128 ; 0x80 8011906: 615a str r2, [r3, #20] if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL)) 8011908: 687b ldr r3, [r7, #4] 801190a: 6c1b ldr r3, [r3, #64] ; 0x40 801190c: 2b00 cmp r3, #0 801190e: d103 bne.n 8011918 8011910: 687b ldr r3, [r7, #4] 8011912: 6c9b ldr r3, [r3, #72] ; 0x48 8011914: 2b00 cmp r3, #0 8011916: d007 beq.n 8011928 { hdma->Instance->CR &= ~(DMA_IT_HT); 8011918: 687b ldr r3, [r7, #4] 801191a: 681b ldr r3, [r3, #0] 801191c: 687a ldr r2, [r7, #4] 801191e: 6812 ldr r2, [r2, #0] 8011920: 6812 ldr r2, [r2, #0] 8011922: f022 0208 bic.w r2, r2, #8 8011926: 601a str r2, [r3, #0] } /* Disable the stream */ __HAL_DMA_DISABLE(hdma); 8011928: 687b ldr r3, [r7, #4] 801192a: 681b ldr r3, [r3, #0] 801192c: 687a ldr r2, [r7, #4] 801192e: 6812 ldr r2, [r2, #0] 8011930: 6812 ldr r2, [r2, #0] 8011932: f022 0201 bic.w r2, r2, #1 8011936: 601a str r2, [r3, #0] /* Check if the DMA Stream is effectively disabled */ while((hdma->Instance->CR & DMA_SxCR_EN) != RESET) 8011938: e013 b.n 8011962 { /* Check for the Timeout */ if((HAL_GetTick() - tickstart ) > HAL_TIMEOUT_DMA_ABORT) 801193a: f7ff fe4f bl 80115dc 801193e: 4602 mov r2, r0 8011940: 68bb ldr r3, [r7, #8] 8011942: 1ad3 subs r3, r2, r3 8011944: 2b05 cmp r3, #5 8011946: d90c bls.n 8011962 { /* Update error code */ hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT; 8011948: 687b ldr r3, [r7, #4] 801194a: 2220 movs r2, #32 801194c: 655a str r2, [r3, #84] ; 0x54 /* Change the DMA state */ hdma->State = HAL_DMA_STATE_TIMEOUT; 801194e: 687b ldr r3, [r7, #4] 8011950: 2203 movs r2, #3 8011952: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Process Unlocked */ __HAL_UNLOCK(hdma); 8011956: 687b ldr r3, [r7, #4] 8011958: 2200 movs r2, #0 801195a: f883 2034 strb.w r2, [r3, #52] ; 0x34 return HAL_TIMEOUT; 801195e: 2303 movs r3, #3 8011960: e015 b.n 801198e while((hdma->Instance->CR & DMA_SxCR_EN) != RESET) 8011962: 687b ldr r3, [r7, #4] 8011964: 681b ldr r3, [r3, #0] 8011966: 681b ldr r3, [r3, #0] 8011968: f003 0301 and.w r3, r3, #1 801196c: 2b00 cmp r3, #0 801196e: d1e4 bne.n 801193a } } /* Clear all interrupt flags at correct offset within the register */ regs->IFCR = 0x3FU << hdma->StreamIndex; 8011970: 687b ldr r3, [r7, #4] 8011972: 6ddb ldr r3, [r3, #92] ; 0x5c 8011974: 223f movs r2, #63 ; 0x3f 8011976: 409a lsls r2, r3 8011978: 68fb ldr r3, [r7, #12] 801197a: 609a str r2, [r3, #8] /* Change the DMA state*/ hdma->State = HAL_DMA_STATE_READY; 801197c: 687b ldr r3, [r7, #4] 801197e: 2201 movs r2, #1 8011980: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Process Unlocked */ __HAL_UNLOCK(hdma); 8011984: 687b ldr r3, [r7, #4] 8011986: 2200 movs r2, #0 8011988: f883 2034 strb.w r2, [r3, #52] ; 0x34 } return HAL_OK; 801198c: 2300 movs r3, #0 } 801198e: 4618 mov r0, r3 8011990: 3710 adds r7, #16 8011992: 46bd mov sp, r7 8011994: bd80 pop {r7, pc} 08011996 : * @param hdma pointer to a DMA_HandleTypeDef structure that contains * the configuration information for the specified DMA Stream. * @retval HAL status */ HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma) { 8011996: b480 push {r7} 8011998: b083 sub sp, #12 801199a: af00 add r7, sp, #0 801199c: 6078 str r0, [r7, #4] if(hdma->State != HAL_DMA_STATE_BUSY) 801199e: 687b ldr r3, [r7, #4] 80119a0: f893 3035 ldrb.w r3, [r3, #53] ; 0x35 80119a4: b2db uxtb r3, r3 80119a6: 2b02 cmp r3, #2 80119a8: d004 beq.n 80119b4 { hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; 80119aa: 687b ldr r3, [r7, #4] 80119ac: 2280 movs r2, #128 ; 0x80 80119ae: 655a str r2, [r3, #84] ; 0x54 return HAL_ERROR; 80119b0: 2301 movs r3, #1 80119b2: e00c b.n 80119ce } else { /* Set Abort State */ hdma->State = HAL_DMA_STATE_ABORT; 80119b4: 687b ldr r3, [r7, #4] 80119b6: 2205 movs r2, #5 80119b8: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Disable the stream */ __HAL_DMA_DISABLE(hdma); 80119bc: 687b ldr r3, [r7, #4] 80119be: 681b ldr r3, [r3, #0] 80119c0: 687a ldr r2, [r7, #4] 80119c2: 6812 ldr r2, [r2, #0] 80119c4: 6812 ldr r2, [r2, #0] 80119c6: f022 0201 bic.w r2, r2, #1 80119ca: 601a str r2, [r3, #0] } return HAL_OK; 80119cc: 2300 movs r3, #0 } 80119ce: 4618 mov r0, r3 80119d0: 370c adds r7, #12 80119d2: 46bd mov sp, r7 80119d4: f85d 7b04 ldr.w r7, [sp], #4 80119d8: 4770 bx lr ... 080119dc : * @param hdma pointer to a DMA_HandleTypeDef structure that contains * the configuration information for the specified DMA Stream. * @retval None */ void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma) { 80119dc: b580 push {r7, lr} 80119de: b086 sub sp, #24 80119e0: af00 add r7, sp, #0 80119e2: 6078 str r0, [r7, #4] uint32_t tmpisr; __IO uint32_t count = 0; 80119e4: 2300 movs r3, #0 80119e6: 60bb str r3, [r7, #8] uint32_t timeout = SystemCoreClock / 9600; 80119e8: 4b92 ldr r3, [pc, #584] ; (8011c34 ) 80119ea: 681b ldr r3, [r3, #0] 80119ec: 4a92 ldr r2, [pc, #584] ; (8011c38 ) 80119ee: fba2 2303 umull r2, r3, r2, r3 80119f2: 0a9b lsrs r3, r3, #10 80119f4: 617b str r3, [r7, #20] /* calculate DMA base and stream number */ DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress; 80119f6: 687b ldr r3, [r7, #4] 80119f8: 6d9b ldr r3, [r3, #88] ; 0x58 80119fa: 613b str r3, [r7, #16] tmpisr = regs->ISR; 80119fc: 693b ldr r3, [r7, #16] 80119fe: 681b ldr r3, [r3, #0] 8011a00: 60fb str r3, [r7, #12] /* Transfer Error Interrupt management ***************************************/ if ((tmpisr & (DMA_FLAG_TEIF0_4 << hdma->StreamIndex)) != RESET) 8011a02: 687b ldr r3, [r7, #4] 8011a04: 6ddb ldr r3, [r3, #92] ; 0x5c 8011a06: 2208 movs r2, #8 8011a08: 409a lsls r2, r3 8011a0a: 68fb ldr r3, [r7, #12] 8011a0c: 4013 ands r3, r2 8011a0e: 2b00 cmp r3, #0 8011a10: d01a beq.n 8011a48 { if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TE) != RESET) 8011a12: 687b ldr r3, [r7, #4] 8011a14: 681b ldr r3, [r3, #0] 8011a16: 681b ldr r3, [r3, #0] 8011a18: f003 0304 and.w r3, r3, #4 8011a1c: 2b00 cmp r3, #0 8011a1e: d013 beq.n 8011a48 { /* Disable the transfer error interrupt */ hdma->Instance->CR &= ~(DMA_IT_TE); 8011a20: 687b ldr r3, [r7, #4] 8011a22: 681b ldr r3, [r3, #0] 8011a24: 687a ldr r2, [r7, #4] 8011a26: 6812 ldr r2, [r2, #0] 8011a28: 6812 ldr r2, [r2, #0] 8011a2a: f022 0204 bic.w r2, r2, #4 8011a2e: 601a str r2, [r3, #0] /* Clear the transfer error flag */ regs->IFCR = DMA_FLAG_TEIF0_4 << hdma->StreamIndex; 8011a30: 687b ldr r3, [r7, #4] 8011a32: 6ddb ldr r3, [r3, #92] ; 0x5c 8011a34: 2208 movs r2, #8 8011a36: 409a lsls r2, r3 8011a38: 693b ldr r3, [r7, #16] 8011a3a: 609a str r2, [r3, #8] /* Update error code */ hdma->ErrorCode |= HAL_DMA_ERROR_TE; 8011a3c: 687b ldr r3, [r7, #4] 8011a3e: 6d5b ldr r3, [r3, #84] ; 0x54 8011a40: f043 0201 orr.w r2, r3, #1 8011a44: 687b ldr r3, [r7, #4] 8011a46: 655a str r2, [r3, #84] ; 0x54 } } /* FIFO Error Interrupt management ******************************************/ if ((tmpisr & (DMA_FLAG_FEIF0_4 << hdma->StreamIndex)) != RESET) 8011a48: 687b ldr r3, [r7, #4] 8011a4a: 6ddb ldr r3, [r3, #92] ; 0x5c 8011a4c: 2201 movs r2, #1 8011a4e: 409a lsls r2, r3 8011a50: 68fb ldr r3, [r7, #12] 8011a52: 4013 ands r3, r2 8011a54: 2b00 cmp r3, #0 8011a56: d012 beq.n 8011a7e { if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_FE) != RESET) 8011a58: 687b ldr r3, [r7, #4] 8011a5a: 681b ldr r3, [r3, #0] 8011a5c: 695b ldr r3, [r3, #20] 8011a5e: f003 0380 and.w r3, r3, #128 ; 0x80 8011a62: 2b00 cmp r3, #0 8011a64: d00b beq.n 8011a7e { /* Clear the FIFO error flag */ regs->IFCR = DMA_FLAG_FEIF0_4 << hdma->StreamIndex; 8011a66: 687b ldr r3, [r7, #4] 8011a68: 6ddb ldr r3, [r3, #92] ; 0x5c 8011a6a: 2201 movs r2, #1 8011a6c: 409a lsls r2, r3 8011a6e: 693b ldr r3, [r7, #16] 8011a70: 609a str r2, [r3, #8] /* Update error code */ hdma->ErrorCode |= HAL_DMA_ERROR_FE; 8011a72: 687b ldr r3, [r7, #4] 8011a74: 6d5b ldr r3, [r3, #84] ; 0x54 8011a76: f043 0202 orr.w r2, r3, #2 8011a7a: 687b ldr r3, [r7, #4] 8011a7c: 655a str r2, [r3, #84] ; 0x54 } } /* Direct Mode Error Interrupt management ***********************************/ if ((tmpisr & (DMA_FLAG_DMEIF0_4 << hdma->StreamIndex)) != RESET) 8011a7e: 687b ldr r3, [r7, #4] 8011a80: 6ddb ldr r3, [r3, #92] ; 0x5c 8011a82: 2204 movs r2, #4 8011a84: 409a lsls r2, r3 8011a86: 68fb ldr r3, [r7, #12] 8011a88: 4013 ands r3, r2 8011a8a: 2b00 cmp r3, #0 8011a8c: d012 beq.n 8011ab4 { if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_DME) != RESET) 8011a8e: 687b ldr r3, [r7, #4] 8011a90: 681b ldr r3, [r3, #0] 8011a92: 681b ldr r3, [r3, #0] 8011a94: f003 0302 and.w r3, r3, #2 8011a98: 2b00 cmp r3, #0 8011a9a: d00b beq.n 8011ab4 { /* Clear the direct mode error flag */ regs->IFCR = DMA_FLAG_DMEIF0_4 << hdma->StreamIndex; 8011a9c: 687b ldr r3, [r7, #4] 8011a9e: 6ddb ldr r3, [r3, #92] ; 0x5c 8011aa0: 2204 movs r2, #4 8011aa2: 409a lsls r2, r3 8011aa4: 693b ldr r3, [r7, #16] 8011aa6: 609a str r2, [r3, #8] /* Update error code */ hdma->ErrorCode |= HAL_DMA_ERROR_DME; 8011aa8: 687b ldr r3, [r7, #4] 8011aaa: 6d5b ldr r3, [r3, #84] ; 0x54 8011aac: f043 0204 orr.w r2, r3, #4 8011ab0: 687b ldr r3, [r7, #4] 8011ab2: 655a str r2, [r3, #84] ; 0x54 } } /* Half Transfer Complete Interrupt management ******************************/ if ((tmpisr & (DMA_FLAG_HTIF0_4 << hdma->StreamIndex)) != RESET) 8011ab4: 687b ldr r3, [r7, #4] 8011ab6: 6ddb ldr r3, [r3, #92] ; 0x5c 8011ab8: 2210 movs r2, #16 8011aba: 409a lsls r2, r3 8011abc: 68fb ldr r3, [r7, #12] 8011abe: 4013 ands r3, r2 8011ac0: 2b00 cmp r3, #0 8011ac2: d043 beq.n 8011b4c { if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_HT) != RESET) 8011ac4: 687b ldr r3, [r7, #4] 8011ac6: 681b ldr r3, [r3, #0] 8011ac8: 681b ldr r3, [r3, #0] 8011aca: f003 0308 and.w r3, r3, #8 8011ace: 2b00 cmp r3, #0 8011ad0: d03c beq.n 8011b4c { /* Clear the half transfer complete flag */ regs->IFCR = DMA_FLAG_HTIF0_4 << hdma->StreamIndex; 8011ad2: 687b ldr r3, [r7, #4] 8011ad4: 6ddb ldr r3, [r3, #92] ; 0x5c 8011ad6: 2210 movs r2, #16 8011ad8: 409a lsls r2, r3 8011ada: 693b ldr r3, [r7, #16] 8011adc: 609a str r2, [r3, #8] /* Multi_Buffering mode enabled */ if(((hdma->Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET) 8011ade: 687b ldr r3, [r7, #4] 8011ae0: 681b ldr r3, [r3, #0] 8011ae2: 681b ldr r3, [r3, #0] 8011ae4: f403 2380 and.w r3, r3, #262144 ; 0x40000 8011ae8: 2b00 cmp r3, #0 8011aea: d018 beq.n 8011b1e { /* Current memory buffer used is Memory 0 */ if((hdma->Instance->CR & DMA_SxCR_CT) == RESET) 8011aec: 687b ldr r3, [r7, #4] 8011aee: 681b ldr r3, [r3, #0] 8011af0: 681b ldr r3, [r3, #0] 8011af2: f403 2300 and.w r3, r3, #524288 ; 0x80000 8011af6: 2b00 cmp r3, #0 8011af8: d108 bne.n 8011b0c { if(hdma->XferHalfCpltCallback != NULL) 8011afa: 687b ldr r3, [r7, #4] 8011afc: 6c1b ldr r3, [r3, #64] ; 0x40 8011afe: 2b00 cmp r3, #0 8011b00: d024 beq.n 8011b4c { /* Half transfer callback */ hdma->XferHalfCpltCallback(hdma); 8011b02: 687b ldr r3, [r7, #4] 8011b04: 6c1b ldr r3, [r3, #64] ; 0x40 8011b06: 6878 ldr r0, [r7, #4] 8011b08: 4798 blx r3 8011b0a: e01f b.n 8011b4c } } /* Current memory buffer used is Memory 1 */ else { if(hdma->XferM1HalfCpltCallback != NULL) 8011b0c: 687b ldr r3, [r7, #4] 8011b0e: 6c9b ldr r3, [r3, #72] ; 0x48 8011b10: 2b00 cmp r3, #0 8011b12: d01b beq.n 8011b4c { /* Half transfer callback */ hdma->XferM1HalfCpltCallback(hdma); 8011b14: 687b ldr r3, [r7, #4] 8011b16: 6c9b ldr r3, [r3, #72] ; 0x48 8011b18: 6878 ldr r0, [r7, #4] 8011b1a: 4798 blx r3 8011b1c: e016 b.n 8011b4c } } else { /* Disable the half transfer interrupt if the DMA mode is not CIRCULAR */ if((hdma->Instance->CR & DMA_SxCR_CIRC) == RESET) 8011b1e: 687b ldr r3, [r7, #4] 8011b20: 681b ldr r3, [r3, #0] 8011b22: 681b ldr r3, [r3, #0] 8011b24: f403 7380 and.w r3, r3, #256 ; 0x100 8011b28: 2b00 cmp r3, #0 8011b2a: d107 bne.n 8011b3c { /* Disable the half transfer interrupt */ hdma->Instance->CR &= ~(DMA_IT_HT); 8011b2c: 687b ldr r3, [r7, #4] 8011b2e: 681b ldr r3, [r3, #0] 8011b30: 687a ldr r2, [r7, #4] 8011b32: 6812 ldr r2, [r2, #0] 8011b34: 6812 ldr r2, [r2, #0] 8011b36: f022 0208 bic.w r2, r2, #8 8011b3a: 601a str r2, [r3, #0] } if(hdma->XferHalfCpltCallback != NULL) 8011b3c: 687b ldr r3, [r7, #4] 8011b3e: 6c1b ldr r3, [r3, #64] ; 0x40 8011b40: 2b00 cmp r3, #0 8011b42: d003 beq.n 8011b4c { /* Half transfer callback */ hdma->XferHalfCpltCallback(hdma); 8011b44: 687b ldr r3, [r7, #4] 8011b46: 6c1b ldr r3, [r3, #64] ; 0x40 8011b48: 6878 ldr r0, [r7, #4] 8011b4a: 4798 blx r3 } } } } /* Transfer Complete Interrupt management ***********************************/ if ((tmpisr & (DMA_FLAG_TCIF0_4 << hdma->StreamIndex)) != RESET) 8011b4c: 687b ldr r3, [r7, #4] 8011b4e: 6ddb ldr r3, [r3, #92] ; 0x5c 8011b50: 2220 movs r2, #32 8011b52: 409a lsls r2, r3 8011b54: 68fb ldr r3, [r7, #12] 8011b56: 4013 ands r3, r2 8011b58: 2b00 cmp r3, #0 8011b5a: f000 808e beq.w 8011c7a { if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TC) != RESET) 8011b5e: 687b ldr r3, [r7, #4] 8011b60: 681b ldr r3, [r3, #0] 8011b62: 681b ldr r3, [r3, #0] 8011b64: f003 0310 and.w r3, r3, #16 8011b68: 2b00 cmp r3, #0 8011b6a: f000 8086 beq.w 8011c7a { /* Clear the transfer complete flag */ regs->IFCR = DMA_FLAG_TCIF0_4 << hdma->StreamIndex; 8011b6e: 687b ldr r3, [r7, #4] 8011b70: 6ddb ldr r3, [r3, #92] ; 0x5c 8011b72: 2220 movs r2, #32 8011b74: 409a lsls r2, r3 8011b76: 693b ldr r3, [r7, #16] 8011b78: 609a str r2, [r3, #8] if(HAL_DMA_STATE_ABORT == hdma->State) 8011b7a: 687b ldr r3, [r7, #4] 8011b7c: f893 3035 ldrb.w r3, [r3, #53] ; 0x35 8011b80: b2db uxtb r3, r3 8011b82: 2b05 cmp r3, #5 8011b84: d136 bne.n 8011bf4 { /* Disable all the transfer interrupts */ hdma->Instance->CR &= ~(DMA_IT_TC | DMA_IT_TE | DMA_IT_DME); 8011b86: 687b ldr r3, [r7, #4] 8011b88: 681b ldr r3, [r3, #0] 8011b8a: 687a ldr r2, [r7, #4] 8011b8c: 6812 ldr r2, [r2, #0] 8011b8e: 6812 ldr r2, [r2, #0] 8011b90: f022 0216 bic.w r2, r2, #22 8011b94: 601a str r2, [r3, #0] hdma->Instance->FCR &= ~(DMA_IT_FE); 8011b96: 687b ldr r3, [r7, #4] 8011b98: 681b ldr r3, [r3, #0] 8011b9a: 687a ldr r2, [r7, #4] 8011b9c: 6812 ldr r2, [r2, #0] 8011b9e: 6952 ldr r2, [r2, #20] 8011ba0: f022 0280 bic.w r2, r2, #128 ; 0x80 8011ba4: 615a str r2, [r3, #20] if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL)) 8011ba6: 687b ldr r3, [r7, #4] 8011ba8: 6c1b ldr r3, [r3, #64] ; 0x40 8011baa: 2b00 cmp r3, #0 8011bac: d103 bne.n 8011bb6 8011bae: 687b ldr r3, [r7, #4] 8011bb0: 6c9b ldr r3, [r3, #72] ; 0x48 8011bb2: 2b00 cmp r3, #0 8011bb4: d007 beq.n 8011bc6 { hdma->Instance->CR &= ~(DMA_IT_HT); 8011bb6: 687b ldr r3, [r7, #4] 8011bb8: 681b ldr r3, [r3, #0] 8011bba: 687a ldr r2, [r7, #4] 8011bbc: 6812 ldr r2, [r2, #0] 8011bbe: 6812 ldr r2, [r2, #0] 8011bc0: f022 0208 bic.w r2, r2, #8 8011bc4: 601a str r2, [r3, #0] } /* Clear all interrupt flags at correct offset within the register */ regs->IFCR = 0x3FU << hdma->StreamIndex; 8011bc6: 687b ldr r3, [r7, #4] 8011bc8: 6ddb ldr r3, [r3, #92] ; 0x5c 8011bca: 223f movs r2, #63 ; 0x3f 8011bcc: 409a lsls r2, r3 8011bce: 693b ldr r3, [r7, #16] 8011bd0: 609a str r2, [r3, #8] /* Change the DMA state */ hdma->State = HAL_DMA_STATE_READY; 8011bd2: 687b ldr r3, [r7, #4] 8011bd4: 2201 movs r2, #1 8011bd6: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Process Unlocked */ __HAL_UNLOCK(hdma); 8011bda: 687b ldr r3, [r7, #4] 8011bdc: 2200 movs r2, #0 8011bde: f883 2034 strb.w r2, [r3, #52] ; 0x34 if(hdma->XferAbortCallback != NULL) 8011be2: 687b ldr r3, [r7, #4] 8011be4: 6d1b ldr r3, [r3, #80] ; 0x50 8011be6: 2b00 cmp r3, #0 8011be8: d07d beq.n 8011ce6 { hdma->XferAbortCallback(hdma); 8011bea: 687b ldr r3, [r7, #4] 8011bec: 6d1b ldr r3, [r3, #80] ; 0x50 8011bee: 6878 ldr r0, [r7, #4] 8011bf0: 4798 blx r3 } return; 8011bf2: e078 b.n 8011ce6 } if(((hdma->Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET) 8011bf4: 687b ldr r3, [r7, #4] 8011bf6: 681b ldr r3, [r3, #0] 8011bf8: 681b ldr r3, [r3, #0] 8011bfa: f403 2380 and.w r3, r3, #262144 ; 0x40000 8011bfe: 2b00 cmp r3, #0 8011c00: d01c beq.n 8011c3c { /* Current memory buffer used is Memory 0 */ if((hdma->Instance->CR & DMA_SxCR_CT) == RESET) 8011c02: 687b ldr r3, [r7, #4] 8011c04: 681b ldr r3, [r3, #0] 8011c06: 681b ldr r3, [r3, #0] 8011c08: f403 2300 and.w r3, r3, #524288 ; 0x80000 8011c0c: 2b00 cmp r3, #0 8011c0e: d108 bne.n 8011c22 { if(hdma->XferM1CpltCallback != NULL) 8011c10: 687b ldr r3, [r7, #4] 8011c12: 6c5b ldr r3, [r3, #68] ; 0x44 8011c14: 2b00 cmp r3, #0 8011c16: d030 beq.n 8011c7a { /* Transfer complete Callback for memory1 */ hdma->XferM1CpltCallback(hdma); 8011c18: 687b ldr r3, [r7, #4] 8011c1a: 6c5b ldr r3, [r3, #68] ; 0x44 8011c1c: 6878 ldr r0, [r7, #4] 8011c1e: 4798 blx r3 8011c20: e02b b.n 8011c7a } } /* Current memory buffer used is Memory 1 */ else { if(hdma->XferCpltCallback != NULL) 8011c22: 687b ldr r3, [r7, #4] 8011c24: 6bdb ldr r3, [r3, #60] ; 0x3c 8011c26: 2b00 cmp r3, #0 8011c28: d027 beq.n 8011c7a { /* Transfer complete Callback for memory0 */ hdma->XferCpltCallback(hdma); 8011c2a: 687b ldr r3, [r7, #4] 8011c2c: 6bdb ldr r3, [r3, #60] ; 0x3c 8011c2e: 6878 ldr r0, [r7, #4] 8011c30: 4798 blx r3 8011c32: e022 b.n 8011c7a 8011c34: 20020994 .word 0x20020994 8011c38: 1b4e81b5 .word 0x1b4e81b5 } } /* Disable the transfer complete interrupt if the DMA mode is not CIRCULAR */ else { if((hdma->Instance->CR & DMA_SxCR_CIRC) == RESET) 8011c3c: 687b ldr r3, [r7, #4] 8011c3e: 681b ldr r3, [r3, #0] 8011c40: 681b ldr r3, [r3, #0] 8011c42: f403 7380 and.w r3, r3, #256 ; 0x100 8011c46: 2b00 cmp r3, #0 8011c48: d10f bne.n 8011c6a { /* Disable the transfer complete interrupt */ hdma->Instance->CR &= ~(DMA_IT_TC); 8011c4a: 687b ldr r3, [r7, #4] 8011c4c: 681b ldr r3, [r3, #0] 8011c4e: 687a ldr r2, [r7, #4] 8011c50: 6812 ldr r2, [r2, #0] 8011c52: 6812 ldr r2, [r2, #0] 8011c54: f022 0210 bic.w r2, r2, #16 8011c58: 601a str r2, [r3, #0] /* Change the DMA state */ hdma->State = HAL_DMA_STATE_READY; 8011c5a: 687b ldr r3, [r7, #4] 8011c5c: 2201 movs r2, #1 8011c5e: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Process Unlocked */ __HAL_UNLOCK(hdma); 8011c62: 687b ldr r3, [r7, #4] 8011c64: 2200 movs r2, #0 8011c66: f883 2034 strb.w r2, [r3, #52] ; 0x34 } if(hdma->XferCpltCallback != NULL) 8011c6a: 687b ldr r3, [r7, #4] 8011c6c: 6bdb ldr r3, [r3, #60] ; 0x3c 8011c6e: 2b00 cmp r3, #0 8011c70: d003 beq.n 8011c7a { /* Transfer complete callback */ hdma->XferCpltCallback(hdma); 8011c72: 687b ldr r3, [r7, #4] 8011c74: 6bdb ldr r3, [r3, #60] ; 0x3c 8011c76: 6878 ldr r0, [r7, #4] 8011c78: 4798 blx r3 } } } /* manage error case */ if(hdma->ErrorCode != HAL_DMA_ERROR_NONE) 8011c7a: 687b ldr r3, [r7, #4] 8011c7c: 6d5b ldr r3, [r3, #84] ; 0x54 8011c7e: 2b00 cmp r3, #0 8011c80: d032 beq.n 8011ce8 { if((hdma->ErrorCode & HAL_DMA_ERROR_TE) != RESET) 8011c82: 687b ldr r3, [r7, #4] 8011c84: 6d5b ldr r3, [r3, #84] ; 0x54 8011c86: f003 0301 and.w r3, r3, #1 8011c8a: 2b00 cmp r3, #0 8011c8c: d022 beq.n 8011cd4 { hdma->State = HAL_DMA_STATE_ABORT; 8011c8e: 687b ldr r3, [r7, #4] 8011c90: 2205 movs r2, #5 8011c92: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Disable the stream */ __HAL_DMA_DISABLE(hdma); 8011c96: 687b ldr r3, [r7, #4] 8011c98: 681b ldr r3, [r3, #0] 8011c9a: 687a ldr r2, [r7, #4] 8011c9c: 6812 ldr r2, [r2, #0] 8011c9e: 6812 ldr r2, [r2, #0] 8011ca0: f022 0201 bic.w r2, r2, #1 8011ca4: 601a str r2, [r3, #0] do { if (++count > timeout) 8011ca6: 68bb ldr r3, [r7, #8] 8011ca8: 3301 adds r3, #1 8011caa: 60bb str r3, [r7, #8] 8011cac: 697a ldr r2, [r7, #20] 8011cae: 4293 cmp r3, r2 8011cb0: d807 bhi.n 8011cc2 { break; } } while((hdma->Instance->CR & DMA_SxCR_EN) != RESET); 8011cb2: 687b ldr r3, [r7, #4] 8011cb4: 681b ldr r3, [r3, #0] 8011cb6: 681b ldr r3, [r3, #0] 8011cb8: f003 0301 and.w r3, r3, #1 8011cbc: 2b00 cmp r3, #0 8011cbe: d1f2 bne.n 8011ca6 8011cc0: e000 b.n 8011cc4 break; 8011cc2: bf00 nop /* Change the DMA state */ hdma->State = HAL_DMA_STATE_READY; 8011cc4: 687b ldr r3, [r7, #4] 8011cc6: 2201 movs r2, #1 8011cc8: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Process Unlocked */ __HAL_UNLOCK(hdma); 8011ccc: 687b ldr r3, [r7, #4] 8011cce: 2200 movs r2, #0 8011cd0: f883 2034 strb.w r2, [r3, #52] ; 0x34 } if(hdma->XferErrorCallback != NULL) 8011cd4: 687b ldr r3, [r7, #4] 8011cd6: 6cdb ldr r3, [r3, #76] ; 0x4c 8011cd8: 2b00 cmp r3, #0 8011cda: d005 beq.n 8011ce8 { /* Transfer error callback */ hdma->XferErrorCallback(hdma); 8011cdc: 687b ldr r3, [r7, #4] 8011cde: 6cdb ldr r3, [r3, #76] ; 0x4c 8011ce0: 6878 ldr r0, [r7, #4] 8011ce2: 4798 blx r3 8011ce4: e000 b.n 8011ce8 return; 8011ce6: bf00 nop } } } 8011ce8: 3718 adds r7, #24 8011cea: 46bd mov sp, r7 8011cec: bd80 pop {r7, pc} 8011cee: bf00 nop 08011cf0 : * @param hdma2d pointer to a DMA2D_HandleTypeDef structure that contains * the configuration information for the DMA2D. * @retval HAL status */ HAL_StatusTypeDef HAL_DMA2D_Init(DMA2D_HandleTypeDef *hdma2d) { 8011cf0: b580 push {r7, lr} 8011cf2: b082 sub sp, #8 8011cf4: af00 add r7, sp, #0 8011cf6: 6078 str r0, [r7, #4] /* Check the DMA2D peripheral state */ if (hdma2d == NULL) 8011cf8: 687b ldr r3, [r7, #4] 8011cfa: 2b00 cmp r3, #0 8011cfc: d101 bne.n 8011d02 { return HAL_ERROR; 8011cfe: 2301 movs r3, #1 8011d00: e049 b.n 8011d96 /* Init the low level hardware */ hdma2d->MspInitCallback(hdma2d); } #else if (hdma2d->State == HAL_DMA2D_STATE_RESET) 8011d02: 687b ldr r3, [r7, #4] 8011d04: f893 3051 ldrb.w r3, [r3, #81] ; 0x51 8011d08: b2db uxtb r3, r3 8011d0a: 2b00 cmp r3, #0 8011d0c: d106 bne.n 8011d1c { /* Allocate lock resource and initialize it */ hdma2d->Lock = HAL_UNLOCKED; 8011d0e: 687b ldr r3, [r7, #4] 8011d10: 2200 movs r2, #0 8011d12: f883 2050 strb.w r2, [r3, #80] ; 0x50 /* Init the low level hardware */ HAL_DMA2D_MspInit(hdma2d); 8011d16: 6878 ldr r0, [r7, #4] 8011d18: f7ee fc84 bl 8000624 } #endif /* (USE_HAL_DMA2D_REGISTER_CALLBACKS) */ /* Change DMA2D peripheral state */ hdma2d->State = HAL_DMA2D_STATE_BUSY; 8011d1c: 687b ldr r3, [r7, #4] 8011d1e: 2202 movs r2, #2 8011d20: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* DMA2D CR register configuration -------------------------------------------*/ MODIFY_REG(hdma2d->Instance->CR, DMA2D_CR_MODE, hdma2d->Init.Mode); 8011d24: 687b ldr r3, [r7, #4] 8011d26: 681b ldr r3, [r3, #0] 8011d28: 687a ldr r2, [r7, #4] 8011d2a: 6812 ldr r2, [r2, #0] 8011d2c: 6812 ldr r2, [r2, #0] 8011d2e: f422 3140 bic.w r1, r2, #196608 ; 0x30000 8011d32: 687a ldr r2, [r7, #4] 8011d34: 6852 ldr r2, [r2, #4] 8011d36: 430a orrs r2, r1 8011d38: 601a str r2, [r3, #0] /* DMA2D OPFCCR register configuration ---------------------------------------*/ MODIFY_REG(hdma2d->Instance->OPFCCR, DMA2D_OPFCCR_CM, hdma2d->Init.ColorMode); 8011d3a: 687b ldr r3, [r7, #4] 8011d3c: 681b ldr r3, [r3, #0] 8011d3e: 687a ldr r2, [r7, #4] 8011d40: 6812 ldr r2, [r2, #0] 8011d42: 6b52 ldr r2, [r2, #52] ; 0x34 8011d44: f022 0107 bic.w r1, r2, #7 8011d48: 687a ldr r2, [r7, #4] 8011d4a: 6892 ldr r2, [r2, #8] 8011d4c: 430a orrs r2, r1 8011d4e: 635a str r2, [r3, #52] ; 0x34 /* DMA2D OOR register configuration ------------------------------------------*/ MODIFY_REG(hdma2d->Instance->OOR, DMA2D_OOR_LO, hdma2d->Init.OutputOffset); 8011d50: 687b ldr r3, [r7, #4] 8011d52: 681a ldr r2, [r3, #0] 8011d54: 687b ldr r3, [r7, #4] 8011d56: 681b ldr r3, [r3, #0] 8011d58: 6c19 ldr r1, [r3, #64] ; 0x40 8011d5a: 4b11 ldr r3, [pc, #68] ; (8011da0 ) 8011d5c: 400b ands r3, r1 8011d5e: 6879 ldr r1, [r7, #4] 8011d60: 68c9 ldr r1, [r1, #12] 8011d62: 430b orrs r3, r1 8011d64: 6413 str r3, [r2, #64] ; 0x40 #if defined (DMA2D_ALPHA_INV_RB_SWAP_SUPPORT) /* DMA2D OPFCCR AI and RBS fields setting (Output Alpha Inversion)*/ MODIFY_REG(hdma2d->Instance->OPFCCR, (DMA2D_OPFCCR_AI | DMA2D_OPFCCR_RBS), 8011d66: 687b ldr r3, [r7, #4] 8011d68: 681b ldr r3, [r3, #0] 8011d6a: 687a ldr r2, [r7, #4] 8011d6c: 6812 ldr r2, [r2, #0] 8011d6e: 6b52 ldr r2, [r2, #52] ; 0x34 8011d70: f422 1140 bic.w r1, r2, #3145728 ; 0x300000 8011d74: 687a ldr r2, [r7, #4] 8011d76: 6912 ldr r2, [r2, #16] 8011d78: 0510 lsls r0, r2, #20 8011d7a: 687a ldr r2, [r7, #4] 8011d7c: 6952 ldr r2, [r2, #20] 8011d7e: 0552 lsls r2, r2, #21 8011d80: 4302 orrs r2, r0 8011d82: 430a orrs r2, r1 8011d84: 635a str r2, [r3, #52] ; 0x34 (hdma2d->Init.RedBlueSwap << DMA2D_OPFCCR_RBS_Pos))); #endif /* DMA2D_ALPHA_INV_RB_SWAP_SUPPORT */ /* Update error code */ hdma2d->ErrorCode = HAL_DMA2D_ERROR_NONE; 8011d86: 687b ldr r3, [r7, #4] 8011d88: 2200 movs r2, #0 8011d8a: 655a str r2, [r3, #84] ; 0x54 /* Initialize the DMA2D state*/ hdma2d->State = HAL_DMA2D_STATE_READY; 8011d8c: 687b ldr r3, [r7, #4] 8011d8e: 2201 movs r2, #1 8011d90: f883 2051 strb.w r2, [r3, #81] ; 0x51 return HAL_OK; 8011d94: 2300 movs r3, #0 } 8011d96: 4618 mov r0, r3 8011d98: 3708 adds r7, #8 8011d9a: 46bd mov sp, r7 8011d9c: bd80 pop {r7, pc} 8011d9e: bf00 nop 8011da0: ffffc000 .word 0xffffc000 08011da4 : * @param Height The height of data to be transferred from source to destination (expressed in number of lines). * @retval HAL status */ HAL_StatusTypeDef HAL_DMA2D_Start(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height) { 8011da4: b580 push {r7, lr} 8011da6: b086 sub sp, #24 8011da8: af02 add r7, sp, #8 8011daa: 60f8 str r0, [r7, #12] 8011dac: 60b9 str r1, [r7, #8] 8011dae: 607a str r2, [r7, #4] 8011db0: 603b str r3, [r7, #0] /* Check the parameters */ assert_param(IS_DMA2D_LINE(Height)); assert_param(IS_DMA2D_PIXEL(Width)); /* Process locked */ __HAL_LOCK(hdma2d); 8011db2: 68fb ldr r3, [r7, #12] 8011db4: f893 3050 ldrb.w r3, [r3, #80] ; 0x50 8011db8: 2b01 cmp r3, #1 8011dba: d101 bne.n 8011dc0 8011dbc: 2302 movs r3, #2 8011dbe: e018 b.n 8011df2 8011dc0: 68fb ldr r3, [r7, #12] 8011dc2: 2201 movs r2, #1 8011dc4: f883 2050 strb.w r2, [r3, #80] ; 0x50 /* Change DMA2D peripheral state */ hdma2d->State = HAL_DMA2D_STATE_BUSY; 8011dc8: 68fb ldr r3, [r7, #12] 8011dca: 2202 movs r2, #2 8011dcc: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Configure the source, destination address and the data size */ DMA2D_SetConfig(hdma2d, pdata, DstAddress, Width, Height); 8011dd0: 69bb ldr r3, [r7, #24] 8011dd2: 9300 str r3, [sp, #0] 8011dd4: 683b ldr r3, [r7, #0] 8011dd6: 687a ldr r2, [r7, #4] 8011dd8: 68b9 ldr r1, [r7, #8] 8011dda: 68f8 ldr r0, [r7, #12] 8011ddc: f000 f992 bl 8012104 /* Enable the Peripheral */ __HAL_DMA2D_ENABLE(hdma2d); 8011de0: 68fb ldr r3, [r7, #12] 8011de2: 681b ldr r3, [r3, #0] 8011de4: 68fa ldr r2, [r7, #12] 8011de6: 6812 ldr r2, [r2, #0] 8011de8: 6812 ldr r2, [r2, #0] 8011dea: f042 0201 orr.w r2, r2, #1 8011dee: 601a str r2, [r3, #0] return HAL_OK; 8011df0: 2300 movs r3, #0 } 8011df2: 4618 mov r0, r3 8011df4: 3710 adds r7, #16 8011df6: 46bd mov sp, r7 8011df8: bd80 pop {r7, pc} 08011dfa : * the configuration information for the DMA2D. * @param Timeout Timeout duration * @retval HAL status */ HAL_StatusTypeDef HAL_DMA2D_PollForTransfer(DMA2D_HandleTypeDef *hdma2d, uint32_t Timeout) { 8011dfa: b580 push {r7, lr} 8011dfc: b086 sub sp, #24 8011dfe: af00 add r7, sp, #0 8011e00: 6078 str r0, [r7, #4] 8011e02: 6039 str r1, [r7, #0] uint32_t tickstart; uint32_t layer_start; __IO uint32_t isrflags = 0x0U; 8011e04: 2300 movs r3, #0 8011e06: 60fb str r3, [r7, #12] /* Polling for DMA2D transfer */ if ((hdma2d->Instance->CR & DMA2D_CR_START) != 0U) 8011e08: 687b ldr r3, [r7, #4] 8011e0a: 681b ldr r3, [r3, #0] 8011e0c: 681b ldr r3, [r3, #0] 8011e0e: f003 0301 and.w r3, r3, #1 8011e12: 2b00 cmp r3, #0 8011e14: d056 beq.n 8011ec4 { /* Get tick */ tickstart = HAL_GetTick(); 8011e16: f7ff fbe1 bl 80115dc 8011e1a: 6178 str r0, [r7, #20] while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_TC) == 0U) 8011e1c: e04b b.n 8011eb6 { isrflags = READ_REG(hdma2d->Instance->ISR); 8011e1e: 687b ldr r3, [r7, #4] 8011e20: 681b ldr r3, [r3, #0] 8011e22: 685b ldr r3, [r3, #4] 8011e24: 60fb str r3, [r7, #12] if ((isrflags & (DMA2D_FLAG_CE | DMA2D_FLAG_TE)) != 0U) 8011e26: 68fb ldr r3, [r7, #12] 8011e28: f003 0321 and.w r3, r3, #33 ; 0x21 8011e2c: 2b00 cmp r3, #0 8011e2e: d023 beq.n 8011e78 { if ((isrflags & DMA2D_FLAG_CE) != 0U) 8011e30: 68fb ldr r3, [r7, #12] 8011e32: f003 0320 and.w r3, r3, #32 8011e36: 2b00 cmp r3, #0 8011e38: d005 beq.n 8011e46 { hdma2d->ErrorCode |= HAL_DMA2D_ERROR_CE; 8011e3a: 687b ldr r3, [r7, #4] 8011e3c: 6d5b ldr r3, [r3, #84] ; 0x54 8011e3e: f043 0202 orr.w r2, r3, #2 8011e42: 687b ldr r3, [r7, #4] 8011e44: 655a str r2, [r3, #84] ; 0x54 } if ((isrflags & DMA2D_FLAG_TE) != 0U) 8011e46: 68fb ldr r3, [r7, #12] 8011e48: f003 0301 and.w r3, r3, #1 8011e4c: 2b00 cmp r3, #0 8011e4e: d005 beq.n 8011e5c { hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TE; 8011e50: 687b ldr r3, [r7, #4] 8011e52: 6d5b ldr r3, [r3, #84] ; 0x54 8011e54: f043 0201 orr.w r2, r3, #1 8011e58: 687b ldr r3, [r7, #4] 8011e5a: 655a str r2, [r3, #84] ; 0x54 } /* Clear the transfer and configuration error flags */ __HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_CE | DMA2D_FLAG_TE); 8011e5c: 687b ldr r3, [r7, #4] 8011e5e: 681b ldr r3, [r3, #0] 8011e60: 2221 movs r2, #33 ; 0x21 8011e62: 609a str r2, [r3, #8] /* Change DMA2D state */ hdma2d->State = HAL_DMA2D_STATE_ERROR; 8011e64: 687b ldr r3, [r7, #4] 8011e66: 2204 movs r2, #4 8011e68: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Process unlocked */ __HAL_UNLOCK(hdma2d); 8011e6c: 687b ldr r3, [r7, #4] 8011e6e: 2200 movs r2, #0 8011e70: f883 2050 strb.w r2, [r3, #80] ; 0x50 return HAL_ERROR; 8011e74: 2301 movs r3, #1 8011e76: e0a5 b.n 8011fc4 } /* Check for the Timeout */ if (Timeout != HAL_MAX_DELAY) 8011e78: 683b ldr r3, [r7, #0] 8011e7a: f1b3 3fff cmp.w r3, #4294967295 8011e7e: d01a beq.n 8011eb6 { if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 8011e80: f7ff fbac bl 80115dc 8011e84: 4602 mov r2, r0 8011e86: 697b ldr r3, [r7, #20] 8011e88: 1ad2 subs r2, r2, r3 8011e8a: 683b ldr r3, [r7, #0] 8011e8c: 429a cmp r2, r3 8011e8e: d802 bhi.n 8011e96 8011e90: 683b ldr r3, [r7, #0] 8011e92: 2b00 cmp r3, #0 8011e94: d10f bne.n 8011eb6 { /* Update error code */ hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TIMEOUT; 8011e96: 687b ldr r3, [r7, #4] 8011e98: 6d5b ldr r3, [r3, #84] ; 0x54 8011e9a: f043 0220 orr.w r2, r3, #32 8011e9e: 687b ldr r3, [r7, #4] 8011ea0: 655a str r2, [r3, #84] ; 0x54 /* Change the DMA2D state */ hdma2d->State = HAL_DMA2D_STATE_TIMEOUT; 8011ea2: 687b ldr r3, [r7, #4] 8011ea4: 2203 movs r2, #3 8011ea6: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Process unlocked */ __HAL_UNLOCK(hdma2d); 8011eaa: 687b ldr r3, [r7, #4] 8011eac: 2200 movs r2, #0 8011eae: f883 2050 strb.w r2, [r3, #80] ; 0x50 return HAL_TIMEOUT; 8011eb2: 2303 movs r3, #3 8011eb4: e086 b.n 8011fc4 while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_TC) == 0U) 8011eb6: 687b ldr r3, [r7, #4] 8011eb8: 681b ldr r3, [r3, #0] 8011eba: 685b ldr r3, [r3, #4] 8011ebc: f003 0302 and.w r3, r3, #2 8011ec0: 2b00 cmp r3, #0 8011ec2: d0ac beq.n 8011e1e } } } } /* Polling for CLUT loading (foreground or background) */ layer_start = hdma2d->Instance->FGPFCCR & DMA2D_FGPFCCR_START; 8011ec4: 687b ldr r3, [r7, #4] 8011ec6: 681b ldr r3, [r3, #0] 8011ec8: 69db ldr r3, [r3, #28] 8011eca: f003 0320 and.w r3, r3, #32 8011ece: 613b str r3, [r7, #16] layer_start |= hdma2d->Instance->BGPFCCR & DMA2D_BGPFCCR_START; 8011ed0: 687b ldr r3, [r7, #4] 8011ed2: 681b ldr r3, [r3, #0] 8011ed4: 6a5b ldr r3, [r3, #36] ; 0x24 8011ed6: f003 0320 and.w r3, r3, #32 8011eda: 693a ldr r2, [r7, #16] 8011edc: 4313 orrs r3, r2 8011ede: 613b str r3, [r7, #16] if (layer_start != 0U) 8011ee0: 693b ldr r3, [r7, #16] 8011ee2: 2b00 cmp r3, #0 8011ee4: d061 beq.n 8011faa { /* Get tick */ tickstart = HAL_GetTick(); 8011ee6: f7ff fb79 bl 80115dc 8011eea: 6178 str r0, [r7, #20] while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_CTC) == 0U) 8011eec: e056 b.n 8011f9c { isrflags = READ_REG(hdma2d->Instance->ISR); 8011eee: 687b ldr r3, [r7, #4] 8011ef0: 681b ldr r3, [r3, #0] 8011ef2: 685b ldr r3, [r3, #4] 8011ef4: 60fb str r3, [r7, #12] if ((isrflags & (DMA2D_FLAG_CAE | DMA2D_FLAG_CE | DMA2D_FLAG_TE)) != 0U) 8011ef6: 68fb ldr r3, [r7, #12] 8011ef8: f003 0329 and.w r3, r3, #41 ; 0x29 8011efc: 2b00 cmp r3, #0 8011efe: d02e beq.n 8011f5e { if ((isrflags & DMA2D_FLAG_CAE) != 0U) 8011f00: 68fb ldr r3, [r7, #12] 8011f02: f003 0308 and.w r3, r3, #8 8011f06: 2b00 cmp r3, #0 8011f08: d005 beq.n 8011f16 { hdma2d->ErrorCode |= HAL_DMA2D_ERROR_CAE; 8011f0a: 687b ldr r3, [r7, #4] 8011f0c: 6d5b ldr r3, [r3, #84] ; 0x54 8011f0e: f043 0204 orr.w r2, r3, #4 8011f12: 687b ldr r3, [r7, #4] 8011f14: 655a str r2, [r3, #84] ; 0x54 } if ((isrflags & DMA2D_FLAG_CE) != 0U) 8011f16: 68fb ldr r3, [r7, #12] 8011f18: f003 0320 and.w r3, r3, #32 8011f1c: 2b00 cmp r3, #0 8011f1e: d005 beq.n 8011f2c { hdma2d->ErrorCode |= HAL_DMA2D_ERROR_CE; 8011f20: 687b ldr r3, [r7, #4] 8011f22: 6d5b ldr r3, [r3, #84] ; 0x54 8011f24: f043 0202 orr.w r2, r3, #2 8011f28: 687b ldr r3, [r7, #4] 8011f2a: 655a str r2, [r3, #84] ; 0x54 } if ((isrflags & DMA2D_FLAG_TE) != 0U) 8011f2c: 68fb ldr r3, [r7, #12] 8011f2e: f003 0301 and.w r3, r3, #1 8011f32: 2b00 cmp r3, #0 8011f34: d005 beq.n 8011f42 { hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TE; 8011f36: 687b ldr r3, [r7, #4] 8011f38: 6d5b ldr r3, [r3, #84] ; 0x54 8011f3a: f043 0201 orr.w r2, r3, #1 8011f3e: 687b ldr r3, [r7, #4] 8011f40: 655a str r2, [r3, #84] ; 0x54 } /* Clear the CLUT Access Error, Configuration Error and Transfer Error flags */ __HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_CAE | DMA2D_FLAG_CE | DMA2D_FLAG_TE); 8011f42: 687b ldr r3, [r7, #4] 8011f44: 681b ldr r3, [r3, #0] 8011f46: 2229 movs r2, #41 ; 0x29 8011f48: 609a str r2, [r3, #8] /* Change DMA2D state */ hdma2d->State = HAL_DMA2D_STATE_ERROR; 8011f4a: 687b ldr r3, [r7, #4] 8011f4c: 2204 movs r2, #4 8011f4e: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Process unlocked */ __HAL_UNLOCK(hdma2d); 8011f52: 687b ldr r3, [r7, #4] 8011f54: 2200 movs r2, #0 8011f56: f883 2050 strb.w r2, [r3, #80] ; 0x50 return HAL_ERROR; 8011f5a: 2301 movs r3, #1 8011f5c: e032 b.n 8011fc4 } /* Check for the Timeout */ if (Timeout != HAL_MAX_DELAY) 8011f5e: 683b ldr r3, [r7, #0] 8011f60: f1b3 3fff cmp.w r3, #4294967295 8011f64: d01a beq.n 8011f9c { if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 8011f66: f7ff fb39 bl 80115dc 8011f6a: 4602 mov r2, r0 8011f6c: 697b ldr r3, [r7, #20] 8011f6e: 1ad2 subs r2, r2, r3 8011f70: 683b ldr r3, [r7, #0] 8011f72: 429a cmp r2, r3 8011f74: d802 bhi.n 8011f7c 8011f76: 683b ldr r3, [r7, #0] 8011f78: 2b00 cmp r3, #0 8011f7a: d10f bne.n 8011f9c { /* Update error code */ hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TIMEOUT; 8011f7c: 687b ldr r3, [r7, #4] 8011f7e: 6d5b ldr r3, [r3, #84] ; 0x54 8011f80: f043 0220 orr.w r2, r3, #32 8011f84: 687b ldr r3, [r7, #4] 8011f86: 655a str r2, [r3, #84] ; 0x54 /* Change the DMA2D state */ hdma2d->State = HAL_DMA2D_STATE_TIMEOUT; 8011f88: 687b ldr r3, [r7, #4] 8011f8a: 2203 movs r2, #3 8011f8c: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Process unlocked */ __HAL_UNLOCK(hdma2d); 8011f90: 687b ldr r3, [r7, #4] 8011f92: 2200 movs r2, #0 8011f94: f883 2050 strb.w r2, [r3, #80] ; 0x50 return HAL_TIMEOUT; 8011f98: 2303 movs r3, #3 8011f9a: e013 b.n 8011fc4 while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_CTC) == 0U) 8011f9c: 687b ldr r3, [r7, #4] 8011f9e: 681b ldr r3, [r3, #0] 8011fa0: 685b ldr r3, [r3, #4] 8011fa2: f003 0310 and.w r3, r3, #16 8011fa6: 2b00 cmp r3, #0 8011fa8: d0a1 beq.n 8011eee } } } /* Clear the transfer complete and CLUT loading flags */ __HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_TC | DMA2D_FLAG_CTC); 8011faa: 687b ldr r3, [r7, #4] 8011fac: 681b ldr r3, [r3, #0] 8011fae: 2212 movs r2, #18 8011fb0: 609a str r2, [r3, #8] /* Change DMA2D state */ hdma2d->State = HAL_DMA2D_STATE_READY; 8011fb2: 687b ldr r3, [r7, #4] 8011fb4: 2201 movs r2, #1 8011fb6: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Process unlocked */ __HAL_UNLOCK(hdma2d); 8011fba: 687b ldr r3, [r7, #4] 8011fbc: 2200 movs r2, #0 8011fbe: f883 2050 strb.w r2, [r3, #80] ; 0x50 return HAL_OK; 8011fc2: 2300 movs r3, #0 } 8011fc4: 4618 mov r0, r3 8011fc6: 3718 adds r7, #24 8011fc8: 46bd mov sp, r7 8011fca: bd80 pop {r7, pc} 08011fcc : * This parameter can be one of the following values: * DMA2D_BACKGROUND_LAYER(0) / DMA2D_FOREGROUND_LAYER(1) * @retval HAL status */ HAL_StatusTypeDef HAL_DMA2D_ConfigLayer(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx) { 8011fcc: b480 push {r7} 8011fce: b087 sub sp, #28 8011fd0: af00 add r7, sp, #0 8011fd2: 6078 str r0, [r7, #4] 8011fd4: 6039 str r1, [r7, #0] uint32_t regValue; /* Check the parameters */ assert_param(IS_DMA2D_LAYER(LayerIdx)); assert_param(IS_DMA2D_OFFSET(hdma2d->LayerCfg[LayerIdx].InputOffset)); if (hdma2d->Init.Mode != DMA2D_R2M) 8011fd6: 687b ldr r3, [r7, #4] 8011fd8: 685b ldr r3, [r3, #4] 8011fda: f5b3 3f40 cmp.w r3, #196608 ; 0x30000 assert_param(IS_DMA2D_ALPHA_INVERTED(hdma2d->LayerCfg[LayerIdx].AlphaInverted)); assert_param(IS_DMA2D_RB_SWAP(hdma2d->LayerCfg[LayerIdx].RedBlueSwap)); #endif /* DMA2D_ALPHA_INV_RB_SWAP_SUPPORT */ /* Process locked */ __HAL_LOCK(hdma2d); 8011fde: 687b ldr r3, [r7, #4] 8011fe0: f893 3050 ldrb.w r3, [r3, #80] ; 0x50 8011fe4: 2b01 cmp r3, #1 8011fe6: d101 bne.n 8011fec 8011fe8: 2302 movs r3, #2 8011fea: e082 b.n 80120f2 8011fec: 687b ldr r3, [r7, #4] 8011fee: 2201 movs r2, #1 8011ff0: f883 2050 strb.w r2, [r3, #80] ; 0x50 /* Change DMA2D peripheral state */ hdma2d->State = HAL_DMA2D_STATE_BUSY; 8011ff4: 687b ldr r3, [r7, #4] 8011ff6: 2202 movs r2, #2 8011ff8: f883 2051 strb.w r2, [r3, #81] ; 0x51 pLayerCfg = &hdma2d->LayerCfg[LayerIdx]; 8011ffc: 683a ldr r2, [r7, #0] 8011ffe: 4613 mov r3, r2 8012000: 005b lsls r3, r3, #1 8012002: 4413 add r3, r2 8012004: 00db lsls r3, r3, #3 8012006: 3320 adds r3, #32 8012008: 687a ldr r2, [r7, #4] 801200a: 4413 add r3, r2 801200c: 613b str r3, [r7, #16] /* Prepare the value to be written to the BGPFCCR or FGPFCCR register */ #if defined (DMA2D_ALPHA_INV_RB_SWAP_SUPPORT) regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos) | \ 801200e: 693b ldr r3, [r7, #16] 8012010: 685a ldr r2, [r3, #4] 8012012: 693b ldr r3, [r7, #16] 8012014: 689b ldr r3, [r3, #8] 8012016: 041b lsls r3, r3, #16 8012018: 431a orrs r2, r3 (pLayerCfg->AlphaInverted << DMA2D_BGPFCCR_AI_Pos) | (pLayerCfg->RedBlueSwap << DMA2D_BGPFCCR_RBS_Pos); 801201a: 693b ldr r3, [r7, #16] 801201c: 691b ldr r3, [r3, #16] 801201e: 051b lsls r3, r3, #20 regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos) | \ 8012020: 431a orrs r2, r3 (pLayerCfg->AlphaInverted << DMA2D_BGPFCCR_AI_Pos) | (pLayerCfg->RedBlueSwap << DMA2D_BGPFCCR_RBS_Pos); 8012022: 693b ldr r3, [r7, #16] 8012024: 695b ldr r3, [r3, #20] 8012026: 055b lsls r3, r3, #21 regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos) | \ 8012028: 4313 orrs r3, r2 801202a: 617b str r3, [r7, #20] regMask = (DMA2D_BGPFCCR_CM | DMA2D_BGPFCCR_AM | DMA2D_BGPFCCR_ALPHA | DMA2D_BGPFCCR_AI | DMA2D_BGPFCCR_RBS); 801202c: 4b34 ldr r3, [pc, #208] ; (8012100 ) 801202e: 60fb str r3, [r7, #12] regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos); regMask = DMA2D_BGPFCCR_CM | DMA2D_BGPFCCR_AM | DMA2D_BGPFCCR_ALPHA; #endif /* DMA2D_ALPHA_INV_RB_SWAP_SUPPORT */ if ((pLayerCfg->InputColorMode == DMA2D_INPUT_A4) || (pLayerCfg->InputColorMode == DMA2D_INPUT_A8)) 8012030: 693b ldr r3, [r7, #16] 8012032: 685b ldr r3, [r3, #4] 8012034: 2b0a cmp r3, #10 8012036: d003 beq.n 8012040 8012038: 693b ldr r3, [r7, #16] 801203a: 685b ldr r3, [r3, #4] 801203c: 2b09 cmp r3, #9 801203e: d107 bne.n 8012050 { regValue |= (pLayerCfg->InputAlpha & DMA2D_BGPFCCR_ALPHA); 8012040: 693b ldr r3, [r7, #16] 8012042: 68db ldr r3, [r3, #12] 8012044: f003 437f and.w r3, r3, #4278190080 ; 0xff000000 8012048: 697a ldr r2, [r7, #20] 801204a: 4313 orrs r3, r2 801204c: 617b str r3, [r7, #20] 801204e: e005 b.n 801205c } else { regValue |= (pLayerCfg->InputAlpha << DMA2D_BGPFCCR_ALPHA_Pos); 8012050: 693b ldr r3, [r7, #16] 8012052: 68db ldr r3, [r3, #12] 8012054: 061b lsls r3, r3, #24 8012056: 697a ldr r2, [r7, #20] 8012058: 4313 orrs r3, r2 801205a: 617b str r3, [r7, #20] } /* Configure the background DMA2D layer */ if (LayerIdx == DMA2D_BACKGROUND_LAYER) 801205c: 683b ldr r3, [r7, #0] 801205e: 2b00 cmp r3, #0 8012060: d11f bne.n 80120a2 { /* Write DMA2D BGPFCCR register */ MODIFY_REG(hdma2d->Instance->BGPFCCR, regMask, regValue); 8012062: 687b ldr r3, [r7, #4] 8012064: 681b ldr r3, [r3, #0] 8012066: 687a ldr r2, [r7, #4] 8012068: 6812 ldr r2, [r2, #0] 801206a: 6a51 ldr r1, [r2, #36] ; 0x24 801206c: 68fa ldr r2, [r7, #12] 801206e: 43d2 mvns r2, r2 8012070: 4011 ands r1, r2 8012072: 697a ldr r2, [r7, #20] 8012074: 430a orrs r2, r1 8012076: 625a str r2, [r3, #36] ; 0x24 /* DMA2D BGOR register configuration -------------------------------------*/ WRITE_REG(hdma2d->Instance->BGOR, pLayerCfg->InputOffset); 8012078: 687b ldr r3, [r7, #4] 801207a: 681b ldr r3, [r3, #0] 801207c: 693a ldr r2, [r7, #16] 801207e: 6812 ldr r2, [r2, #0] 8012080: 619a str r2, [r3, #24] /* DMA2D BGCOLR register configuration -------------------------------------*/ if ((pLayerCfg->InputColorMode == DMA2D_INPUT_A4) || (pLayerCfg->InputColorMode == DMA2D_INPUT_A8)) 8012082: 693b ldr r3, [r7, #16] 8012084: 685b ldr r3, [r3, #4] 8012086: 2b0a cmp r3, #10 8012088: d003 beq.n 8012092 801208a: 693b ldr r3, [r7, #16] 801208c: 685b ldr r3, [r3, #4] 801208e: 2b09 cmp r3, #9 8012090: d126 bne.n 80120e0 { WRITE_REG(hdma2d->Instance->BGCOLR, pLayerCfg->InputAlpha & (DMA2D_BGCOLR_BLUE | DMA2D_BGCOLR_GREEN | \ 8012092: 687b ldr r3, [r7, #4] 8012094: 681b ldr r3, [r3, #0] 8012096: 693a ldr r2, [r7, #16] 8012098: 68d2 ldr r2, [r2, #12] 801209a: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000 801209e: 629a str r2, [r3, #40] ; 0x28 80120a0: e01e b.n 80120e0 else { /* Write DMA2D FGPFCCR register */ MODIFY_REG(hdma2d->Instance->FGPFCCR, regMask, regValue); 80120a2: 687b ldr r3, [r7, #4] 80120a4: 681b ldr r3, [r3, #0] 80120a6: 687a ldr r2, [r7, #4] 80120a8: 6812 ldr r2, [r2, #0] 80120aa: 69d1 ldr r1, [r2, #28] 80120ac: 68fa ldr r2, [r7, #12] 80120ae: 43d2 mvns r2, r2 80120b0: 4011 ands r1, r2 80120b2: 697a ldr r2, [r7, #20] 80120b4: 430a orrs r2, r1 80120b6: 61da str r2, [r3, #28] /* DMA2D FGOR register configuration -------------------------------------*/ WRITE_REG(hdma2d->Instance->FGOR, pLayerCfg->InputOffset); 80120b8: 687b ldr r3, [r7, #4] 80120ba: 681b ldr r3, [r3, #0] 80120bc: 693a ldr r2, [r7, #16] 80120be: 6812 ldr r2, [r2, #0] 80120c0: 611a str r2, [r3, #16] /* DMA2D FGCOLR register configuration -------------------------------------*/ if ((pLayerCfg->InputColorMode == DMA2D_INPUT_A4) || (pLayerCfg->InputColorMode == DMA2D_INPUT_A8)) 80120c2: 693b ldr r3, [r7, #16] 80120c4: 685b ldr r3, [r3, #4] 80120c6: 2b0a cmp r3, #10 80120c8: d003 beq.n 80120d2 80120ca: 693b ldr r3, [r7, #16] 80120cc: 685b ldr r3, [r3, #4] 80120ce: 2b09 cmp r3, #9 80120d0: d106 bne.n 80120e0 { WRITE_REG(hdma2d->Instance->FGCOLR, pLayerCfg->InputAlpha & (DMA2D_FGCOLR_BLUE | DMA2D_FGCOLR_GREEN | \ 80120d2: 687b ldr r3, [r7, #4] 80120d4: 681b ldr r3, [r3, #0] 80120d6: 693a ldr r2, [r7, #16] 80120d8: 68d2 ldr r2, [r2, #12] 80120da: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000 80120de: 621a str r2, [r3, #32] DMA2D_FGCOLR_RED)); } } /* Initialize the DMA2D state*/ hdma2d->State = HAL_DMA2D_STATE_READY; 80120e0: 687b ldr r3, [r7, #4] 80120e2: 2201 movs r2, #1 80120e4: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Process unlocked */ __HAL_UNLOCK(hdma2d); 80120e8: 687b ldr r3, [r7, #4] 80120ea: 2200 movs r2, #0 80120ec: f883 2050 strb.w r2, [r3, #80] ; 0x50 return HAL_OK; 80120f0: 2300 movs r3, #0 } 80120f2: 4618 mov r0, r3 80120f4: 371c adds r7, #28 80120f6: 46bd mov sp, r7 80120f8: f85d 7b04 ldr.w r7, [sp], #4 80120fc: 4770 bx lr 80120fe: bf00 nop 8012100: ff33000f .word 0xff33000f 08012104 : * @param Height The height of data to be transferred from source to destination. * @retval HAL status */ static void DMA2D_SetConfig(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height) { 8012104: b480 push {r7} 8012106: b08b sub sp, #44 ; 0x2c 8012108: af00 add r7, sp, #0 801210a: 60f8 str r0, [r7, #12] 801210c: 60b9 str r1, [r7, #8] 801210e: 607a str r2, [r7, #4] 8012110: 603b str r3, [r7, #0] uint32_t tmp2; uint32_t tmp3; uint32_t tmp4; /* Configure DMA2D data size */ MODIFY_REG(hdma2d->Instance->NLR, (DMA2D_NLR_NL | DMA2D_NLR_PL), (Height | (Width << DMA2D_NLR_PL_Pos))); 8012112: 68fb ldr r3, [r7, #12] 8012114: 681b ldr r3, [r3, #0] 8012116: 68fa ldr r2, [r7, #12] 8012118: 6812 ldr r2, [r2, #0] 801211a: 6c52 ldr r2, [r2, #68] ; 0x44 801211c: f002 4140 and.w r1, r2, #3221225472 ; 0xc0000000 8012120: 683a ldr r2, [r7, #0] 8012122: 0410 lsls r0, r2, #16 8012124: 6b3a ldr r2, [r7, #48] ; 0x30 8012126: 4302 orrs r2, r0 8012128: 430a orrs r2, r1 801212a: 645a str r2, [r3, #68] ; 0x44 /* Configure DMA2D destination address */ WRITE_REG(hdma2d->Instance->OMAR, DstAddress); 801212c: 68fb ldr r3, [r7, #12] 801212e: 681b ldr r3, [r3, #0] 8012130: 687a ldr r2, [r7, #4] 8012132: 63da str r2, [r3, #60] ; 0x3c /* Register to memory DMA2D mode selected */ if (hdma2d->Init.Mode == DMA2D_R2M) 8012134: 68fb ldr r3, [r7, #12] 8012136: 685b ldr r3, [r3, #4] 8012138: f5b3 3f40 cmp.w r3, #196608 ; 0x30000 801213c: d174 bne.n 8012228 { tmp1 = pdata & DMA2D_OCOLR_ALPHA_1; 801213e: 68bb ldr r3, [r7, #8] 8012140: f003 437f and.w r3, r3, #4278190080 ; 0xff000000 8012144: 623b str r3, [r7, #32] tmp2 = pdata & DMA2D_OCOLR_RED_1; 8012146: 68bb ldr r3, [r7, #8] 8012148: f403 037f and.w r3, r3, #16711680 ; 0xff0000 801214c: 61fb str r3, [r7, #28] tmp3 = pdata & DMA2D_OCOLR_GREEN_1; 801214e: 68bb ldr r3, [r7, #8] 8012150: f403 437f and.w r3, r3, #65280 ; 0xff00 8012154: 61bb str r3, [r7, #24] tmp4 = pdata & DMA2D_OCOLR_BLUE_1; 8012156: 68bb ldr r3, [r7, #8] 8012158: b2db uxtb r3, r3 801215a: 617b str r3, [r7, #20] /* Prepare the value to be written to the OCOLR register according to the color mode */ if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_ARGB8888) 801215c: 68fb ldr r3, [r7, #12] 801215e: 689b ldr r3, [r3, #8] 8012160: 2b00 cmp r3, #0 8012162: d108 bne.n 8012176 { tmp = (tmp3 | tmp2 | tmp1 | tmp4); 8012164: 69ba ldr r2, [r7, #24] 8012166: 69fb ldr r3, [r7, #28] 8012168: 431a orrs r2, r3 801216a: 6a3b ldr r3, [r7, #32] 801216c: 431a orrs r2, r3 801216e: 697b ldr r3, [r7, #20] 8012170: 4313 orrs r3, r2 8012172: 627b str r3, [r7, #36] ; 0x24 8012174: e053 b.n 801221e } else if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_RGB888) 8012176: 68fb ldr r3, [r7, #12] 8012178: 689b ldr r3, [r3, #8] 801217a: 2b01 cmp r3, #1 801217c: d106 bne.n 801218c { tmp = (tmp3 | tmp2 | tmp4); 801217e: 69ba ldr r2, [r7, #24] 8012180: 69fb ldr r3, [r7, #28] 8012182: 431a orrs r2, r3 8012184: 697b ldr r3, [r7, #20] 8012186: 4313 orrs r3, r2 8012188: 627b str r3, [r7, #36] ; 0x24 801218a: e048 b.n 801221e } else if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_RGB565) 801218c: 68fb ldr r3, [r7, #12] 801218e: 689b ldr r3, [r3, #8] 8012190: 2b02 cmp r3, #2 8012192: d111 bne.n 80121b8 { tmp2 = (tmp2 >> 19U); 8012194: 69fb ldr r3, [r7, #28] 8012196: 0cdb lsrs r3, r3, #19 8012198: 61fb str r3, [r7, #28] tmp3 = (tmp3 >> 10U); 801219a: 69bb ldr r3, [r7, #24] 801219c: 0a9b lsrs r3, r3, #10 801219e: 61bb str r3, [r7, #24] tmp4 = (tmp4 >> 3U); 80121a0: 697b ldr r3, [r7, #20] 80121a2: 08db lsrs r3, r3, #3 80121a4: 617b str r3, [r7, #20] tmp = ((tmp3 << 5U) | (tmp2 << 11U) | tmp4); 80121a6: 69bb ldr r3, [r7, #24] 80121a8: 015a lsls r2, r3, #5 80121aa: 69fb ldr r3, [r7, #28] 80121ac: 02db lsls r3, r3, #11 80121ae: 431a orrs r2, r3 80121b0: 697b ldr r3, [r7, #20] 80121b2: 4313 orrs r3, r2 80121b4: 627b str r3, [r7, #36] ; 0x24 80121b6: e032 b.n 801221e } else if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_ARGB1555) 80121b8: 68fb ldr r3, [r7, #12] 80121ba: 689b ldr r3, [r3, #8] 80121bc: 2b03 cmp r3, #3 80121be: d117 bne.n 80121f0 { tmp1 = (tmp1 >> 31U); 80121c0: 6a3b ldr r3, [r7, #32] 80121c2: 0fdb lsrs r3, r3, #31 80121c4: 623b str r3, [r7, #32] tmp2 = (tmp2 >> 19U); 80121c6: 69fb ldr r3, [r7, #28] 80121c8: 0cdb lsrs r3, r3, #19 80121ca: 61fb str r3, [r7, #28] tmp3 = (tmp3 >> 11U); 80121cc: 69bb ldr r3, [r7, #24] 80121ce: 0adb lsrs r3, r3, #11 80121d0: 61bb str r3, [r7, #24] tmp4 = (tmp4 >> 3U); 80121d2: 697b ldr r3, [r7, #20] 80121d4: 08db lsrs r3, r3, #3 80121d6: 617b str r3, [r7, #20] tmp = ((tmp3 << 5U) | (tmp2 << 10U) | (tmp1 << 15U) | tmp4); 80121d8: 69bb ldr r3, [r7, #24] 80121da: 015a lsls r2, r3, #5 80121dc: 69fb ldr r3, [r7, #28] 80121de: 029b lsls r3, r3, #10 80121e0: 431a orrs r2, r3 80121e2: 6a3b ldr r3, [r7, #32] 80121e4: 03db lsls r3, r3, #15 80121e6: 431a orrs r2, r3 80121e8: 697b ldr r3, [r7, #20] 80121ea: 4313 orrs r3, r2 80121ec: 627b str r3, [r7, #36] ; 0x24 80121ee: e016 b.n 801221e } else /* Dhdma2d->Init.ColorMode = DMA2D_OUTPUT_ARGB4444 */ { tmp1 = (tmp1 >> 28U); 80121f0: 6a3b ldr r3, [r7, #32] 80121f2: 0f1b lsrs r3, r3, #28 80121f4: 623b str r3, [r7, #32] tmp2 = (tmp2 >> 20U); 80121f6: 69fb ldr r3, [r7, #28] 80121f8: 0d1b lsrs r3, r3, #20 80121fa: 61fb str r3, [r7, #28] tmp3 = (tmp3 >> 12U); 80121fc: 69bb ldr r3, [r7, #24] 80121fe: 0b1b lsrs r3, r3, #12 8012200: 61bb str r3, [r7, #24] tmp4 = (tmp4 >> 4U); 8012202: 697b ldr r3, [r7, #20] 8012204: 091b lsrs r3, r3, #4 8012206: 617b str r3, [r7, #20] tmp = ((tmp3 << 4U) | (tmp2 << 8U) | (tmp1 << 12U) | tmp4); 8012208: 69bb ldr r3, [r7, #24] 801220a: 011a lsls r2, r3, #4 801220c: 69fb ldr r3, [r7, #28] 801220e: 021b lsls r3, r3, #8 8012210: 431a orrs r2, r3 8012212: 6a3b ldr r3, [r7, #32] 8012214: 031b lsls r3, r3, #12 8012216: 431a orrs r2, r3 8012218: 697b ldr r3, [r7, #20] 801221a: 4313 orrs r3, r2 801221c: 627b str r3, [r7, #36] ; 0x24 } /* Write to DMA2D OCOLR register */ WRITE_REG(hdma2d->Instance->OCOLR, tmp); 801221e: 68fb ldr r3, [r7, #12] 8012220: 681b ldr r3, [r3, #0] 8012222: 6a7a ldr r2, [r7, #36] ; 0x24 8012224: 639a str r2, [r3, #56] ; 0x38 else /* M2M, M2M_PFC or M2M_Blending DMA2D Mode */ { /* Configure DMA2D source address */ WRITE_REG(hdma2d->Instance->FGMAR, pdata); } } 8012226: e003 b.n 8012230 WRITE_REG(hdma2d->Instance->FGMAR, pdata); 8012228: 68fb ldr r3, [r7, #12] 801222a: 681b ldr r3, [r3, #0] 801222c: 68ba ldr r2, [r7, #8] 801222e: 60da str r2, [r3, #12] } 8012230: bf00 nop 8012232: 372c adds r7, #44 ; 0x2c 8012234: 46bd mov sp, r7 8012236: f85d 7b04 ldr.w r7, [sp], #4 801223a: 4770 bx lr 0801223c : * @param Data specifies the data to be programmed * * @retval HAL_StatusTypeDef HAL Status */ HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data) { 801223c: b580 push {r7, lr} 801223e: b086 sub sp, #24 8012240: af00 add r7, sp, #0 8012242: 60f8 str r0, [r7, #12] 8012244: 60b9 str r1, [r7, #8] 8012246: e9c7 2300 strd r2, r3, [r7] HAL_StatusTypeDef status = HAL_ERROR; 801224a: 2301 movs r3, #1 801224c: 75fb strb r3, [r7, #23] /* Process Locked */ __HAL_LOCK(&pFlash); 801224e: 4b27 ldr r3, [pc, #156] ; (80122ec ) 8012250: 7d1b ldrb r3, [r3, #20] 8012252: 2b01 cmp r3, #1 8012254: d101 bne.n 801225a 8012256: 2302 movs r3, #2 8012258: e043 b.n 80122e2 801225a: 4b24 ldr r3, [pc, #144] ; (80122ec ) 801225c: 2201 movs r2, #1 801225e: 751a strb r2, [r3, #20] /* Check the parameters */ assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram)); /* Wait for last operation to be completed */ status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 8012260: f24c 3050 movw r0, #50000 ; 0xc350 8012264: f000 f878 bl 8012358 8012268: 4603 mov r3, r0 801226a: 75fb strb r3, [r7, #23] if(status == HAL_OK) 801226c: 7dfb ldrb r3, [r7, #23] 801226e: 2b00 cmp r3, #0 8012270: d133 bne.n 80122da { switch(TypeProgram) 8012272: 68fb ldr r3, [r7, #12] 8012274: 2b03 cmp r3, #3 8012276: d823 bhi.n 80122c0 8012278: a201 add r2, pc, #4 ; (adr r2, 8012280 ) 801227a: f852 f023 ldr.w pc, [r2, r3, lsl #2] 801227e: bf00 nop 8012280: 08012291 .word 0x08012291 8012284: 0801229d .word 0x0801229d 8012288: 080122a9 .word 0x080122a9 801228c: 080122b5 .word 0x080122b5 { case FLASH_TYPEPROGRAM_BYTE : { /*Program byte (8-bit) at a specified address.*/ FLASH_Program_Byte(Address, (uint8_t) Data); 8012290: 783b ldrb r3, [r7, #0] 8012292: 4619 mov r1, r3 8012294: 68b8 ldr r0, [r7, #8] 8012296: f000 f919 bl 80124cc break; 801229a: e012 b.n 80122c2 } case FLASH_TYPEPROGRAM_HALFWORD : { /*Program halfword (16-bit) at a specified address.*/ FLASH_Program_HalfWord(Address, (uint16_t) Data); 801229c: 883b ldrh r3, [r7, #0] 801229e: 4619 mov r1, r3 80122a0: 68b8 ldr r0, [r7, #8] 80122a2: f000 f8ed bl 8012480 break; 80122a6: e00c b.n 80122c2 } case FLASH_TYPEPROGRAM_WORD : { /*Program word (32-bit) at a specified address.*/ FLASH_Program_Word(Address, (uint32_t) Data); 80122a8: 683b ldr r3, [r7, #0] 80122aa: 4619 mov r1, r3 80122ac: 68b8 ldr r0, [r7, #8] 80122ae: f000 f8c3 bl 8012438 break; 80122b2: e006 b.n 80122c2 } case FLASH_TYPEPROGRAM_DOUBLEWORD : { /*Program double word (64-bit) at a specified address.*/ FLASH_Program_DoubleWord(Address, Data); 80122b4: e9d7 2300 ldrd r2, r3, [r7] 80122b8: 68b8 ldr r0, [r7, #8] 80122ba: f000 f88d bl 80123d8 break; 80122be: e000 b.n 80122c2 } default : break; 80122c0: bf00 nop } /* Wait for last operation to be completed */ status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 80122c2: f24c 3050 movw r0, #50000 ; 0xc350 80122c6: f000 f847 bl 8012358 80122ca: 4603 mov r3, r0 80122cc: 75fb strb r3, [r7, #23] /* If the program operation is completed, disable the PG Bit */ FLASH->CR &= (~FLASH_CR_PG); 80122ce: 4a08 ldr r2, [pc, #32] ; (80122f0 ) 80122d0: 4b07 ldr r3, [pc, #28] ; (80122f0 ) 80122d2: 691b ldr r3, [r3, #16] 80122d4: f023 0301 bic.w r3, r3, #1 80122d8: 6113 str r3, [r2, #16] } /* Process Unlocked */ __HAL_UNLOCK(&pFlash); 80122da: 4b04 ldr r3, [pc, #16] ; (80122ec ) 80122dc: 2200 movs r2, #0 80122de: 751a strb r2, [r3, #20] return status; 80122e0: 7dfb ldrb r3, [r7, #23] } 80122e2: 4618 mov r0, r3 80122e4: 3718 adds r7, #24 80122e6: 46bd mov sp, r7 80122e8: bd80 pop {r7, pc} 80122ea: bf00 nop 80122ec: 2006c6c8 .word 0x2006c6c8 80122f0: 40023c00 .word 0x40023c00 080122f4 : /** * @brief Unlock the FLASH control register access * @retval HAL Status */ HAL_StatusTypeDef HAL_FLASH_Unlock(void) { 80122f4: b480 push {r7} 80122f6: b083 sub sp, #12 80122f8: af00 add r7, sp, #0 HAL_StatusTypeDef status = HAL_OK; 80122fa: 2300 movs r3, #0 80122fc: 71fb strb r3, [r7, #7] if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET) 80122fe: 4b0b ldr r3, [pc, #44] ; (801232c ) 8012300: 691b ldr r3, [r3, #16] 8012302: 2b00 cmp r3, #0 8012304: da0b bge.n 801231e { /* Authorize the FLASH Registers access */ WRITE_REG(FLASH->KEYR, FLASH_KEY1); 8012306: 4b09 ldr r3, [pc, #36] ; (801232c ) 8012308: 4a09 ldr r2, [pc, #36] ; (8012330 ) 801230a: 605a str r2, [r3, #4] WRITE_REG(FLASH->KEYR, FLASH_KEY2); 801230c: 4b07 ldr r3, [pc, #28] ; (801232c ) 801230e: 4a09 ldr r2, [pc, #36] ; (8012334 ) 8012310: 605a str r2, [r3, #4] /* Verify Flash is unlocked */ if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET) 8012312: 4b06 ldr r3, [pc, #24] ; (801232c ) 8012314: 691b ldr r3, [r3, #16] 8012316: 2b00 cmp r3, #0 8012318: da01 bge.n 801231e { status = HAL_ERROR; 801231a: 2301 movs r3, #1 801231c: 71fb strb r3, [r7, #7] } } return status; 801231e: 79fb ldrb r3, [r7, #7] } 8012320: 4618 mov r0, r3 8012322: 370c adds r7, #12 8012324: 46bd mov sp, r7 8012326: f85d 7b04 ldr.w r7, [sp], #4 801232a: 4770 bx lr 801232c: 40023c00 .word 0x40023c00 8012330: 45670123 .word 0x45670123 8012334: cdef89ab .word 0xcdef89ab 08012338 : /** * @brief Locks the FLASH control register access * @retval HAL Status */ HAL_StatusTypeDef HAL_FLASH_Lock(void) { 8012338: b480 push {r7} 801233a: af00 add r7, sp, #0 /* Set the LOCK Bit to lock the FLASH Registers access */ FLASH->CR |= FLASH_CR_LOCK; 801233c: 4a05 ldr r2, [pc, #20] ; (8012354 ) 801233e: 4b05 ldr r3, [pc, #20] ; (8012354 ) 8012340: 691b ldr r3, [r3, #16] 8012342: f043 4300 orr.w r3, r3, #2147483648 ; 0x80000000 8012346: 6113 str r3, [r2, #16] return HAL_OK; 8012348: 2300 movs r3, #0 } 801234a: 4618 mov r0, r3 801234c: 46bd mov sp, r7 801234e: f85d 7b04 ldr.w r7, [sp], #4 8012352: 4770 bx lr 8012354: 40023c00 .word 0x40023c00 08012358 : * @brief Wait for a FLASH operation to complete. * @param Timeout maximum flash operationtimeout * @retval HAL Status */ HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout) { 8012358: b580 push {r7, lr} 801235a: b084 sub sp, #16 801235c: af00 add r7, sp, #0 801235e: 6078 str r0, [r7, #4] uint32_t tickstart = 0; 8012360: 2300 movs r3, #0 8012362: 60fb str r3, [r7, #12] /* Clear Error Code */ pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; 8012364: 4b1a ldr r3, [pc, #104] ; (80123d0 ) 8012366: 2200 movs r2, #0 8012368: 619a str r2, [r3, #24] /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset. Even if the FLASH operation fails, the BUSY flag will be reset and an error flag will be set */ /* Get tick */ tickstart = HAL_GetTick(); 801236a: f7ff f937 bl 80115dc 801236e: 60f8 str r0, [r7, #12] while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY) != RESET) 8012370: e010 b.n 8012394 { if(Timeout != HAL_MAX_DELAY) 8012372: 687b ldr r3, [r7, #4] 8012374: f1b3 3fff cmp.w r3, #4294967295 8012378: d00c beq.n 8012394 { if((Timeout == 0)||((HAL_GetTick() - tickstart ) > Timeout)) 801237a: 687b ldr r3, [r7, #4] 801237c: 2b00 cmp r3, #0 801237e: d007 beq.n 8012390 8012380: f7ff f92c bl 80115dc 8012384: 4602 mov r2, r0 8012386: 68fb ldr r3, [r7, #12] 8012388: 1ad2 subs r2, r2, r3 801238a: 687b ldr r3, [r7, #4] 801238c: 429a cmp r2, r3 801238e: d901 bls.n 8012394 { return HAL_TIMEOUT; 8012390: 2303 movs r3, #3 8012392: e019 b.n 80123c8 while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY) != RESET) 8012394: 4b0f ldr r3, [pc, #60] ; (80123d4 ) 8012396: 68db ldr r3, [r3, #12] 8012398: f403 3380 and.w r3, r3, #65536 ; 0x10000 801239c: 2b00 cmp r3, #0 801239e: d1e8 bne.n 8012372 } } } if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_ALL_ERRORS) != RESET) 80123a0: 4b0c ldr r3, [pc, #48] ; (80123d4 ) 80123a2: 68db ldr r3, [r3, #12] 80123a4: f003 03f2 and.w r3, r3, #242 ; 0xf2 80123a8: 2b00 cmp r3, #0 80123aa: d003 beq.n 80123b4 { /*Save the error code*/ FLASH_SetErrorCode(); 80123ac: f000 f8b2 bl 8012514 return HAL_ERROR; 80123b0: 2301 movs r3, #1 80123b2: e009 b.n 80123c8 } /* Check FLASH End of Operation flag */ if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP) != RESET) 80123b4: 4b07 ldr r3, [pc, #28] ; (80123d4 ) 80123b6: 68db ldr r3, [r3, #12] 80123b8: f003 0301 and.w r3, r3, #1 80123bc: 2b00 cmp r3, #0 80123be: d002 beq.n 80123c6 { /* Clear FLASH End of Operation pending bit */ __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP); 80123c0: 4b04 ldr r3, [pc, #16] ; (80123d4 ) 80123c2: 2201 movs r2, #1 80123c4: 60da str r2, [r3, #12] } /* If there is an error flag set */ return HAL_OK; 80123c6: 2300 movs r3, #0 } 80123c8: 4618 mov r0, r3 80123ca: 3710 adds r7, #16 80123cc: 46bd mov sp, r7 80123ce: bd80 pop {r7, pc} 80123d0: 2006c6c8 .word 0x2006c6c8 80123d4: 40023c00 .word 0x40023c00 080123d8 : * @param Address specifies the address to be programmed. * @param Data specifies the data to be programmed. * @retval None */ static void FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data) { 80123d8: b4f0 push {r4, r5, r6, r7} 80123da: b084 sub sp, #16 80123dc: af00 add r7, sp, #0 80123de: 60f8 str r0, [r7, #12] 80123e0: e9c7 2300 strd r2, r3, [r7] /* Check the parameters */ assert_param(IS_FLASH_ADDRESS(Address)); /* If the previous operation is completed, proceed to program the new data */ FLASH->CR &= CR_PSIZE_MASK; 80123e4: 4a13 ldr r2, [pc, #76] ; (8012434 ) 80123e6: 4b13 ldr r3, [pc, #76] ; (8012434 ) 80123e8: 691b ldr r3, [r3, #16] 80123ea: f423 7340 bic.w r3, r3, #768 ; 0x300 80123ee: 6113 str r3, [r2, #16] FLASH->CR |= FLASH_PSIZE_DOUBLE_WORD; 80123f0: 4a10 ldr r2, [pc, #64] ; (8012434 ) 80123f2: 4b10 ldr r3, [pc, #64] ; (8012434 ) 80123f4: 691b ldr r3, [r3, #16] 80123f6: f443 7340 orr.w r3, r3, #768 ; 0x300 80123fa: 6113 str r3, [r2, #16] FLASH->CR |= FLASH_CR_PG; 80123fc: 4a0d ldr r2, [pc, #52] ; (8012434 ) 80123fe: 4b0d ldr r3, [pc, #52] ; (8012434 ) 8012400: 691b ldr r3, [r3, #16] 8012402: f043 0301 orr.w r3, r3, #1 8012406: 6113 str r3, [r2, #16] /* Program first word */ *(__IO uint32_t*)Address = (uint32_t)Data; 8012408: 68fb ldr r3, [r7, #12] 801240a: 683a ldr r2, [r7, #0] 801240c: 601a str r2, [r3, #0] 801240e: f3bf 8f6f isb sy /* Barrier to ensure programming is performed in 2 steps, in right order (independently of compiler optimization behavior) */ __ISB(); /* Program second word */ *(__IO uint32_t*)(Address+4) = (uint32_t)(Data >> 32); 8012412: 68fb ldr r3, [r7, #12] 8012414: 3304 adds r3, #4 8012416: 461a mov r2, r3 8012418: e897 0018 ldmia.w r7, {r3, r4} 801241c: 0025 movs r5, r4 801241e: 2600 movs r6, #0 8012420: 462b mov r3, r5 8012422: 6013 str r3, [r2, #0] __ASM volatile ("dsb 0xF":::"memory"); 8012424: f3bf 8f4f dsb sy /* Data synchronous Barrier (DSB) Just after the write operation This will force the CPU to respect the sequence of instruction (no optimization).*/ __DSB(); } 8012428: bf00 nop 801242a: 3710 adds r7, #16 801242c: 46bd mov sp, r7 801242e: bcf0 pop {r4, r5, r6, r7} 8012430: 4770 bx lr 8012432: bf00 nop 8012434: 40023c00 .word 0x40023c00 08012438 : * @param Address specifies the address to be programmed. * @param Data specifies the data to be programmed. * @retval None */ static void FLASH_Program_Word(uint32_t Address, uint32_t Data) { 8012438: b480 push {r7} 801243a: b083 sub sp, #12 801243c: af00 add r7, sp, #0 801243e: 6078 str r0, [r7, #4] 8012440: 6039 str r1, [r7, #0] /* Check the parameters */ assert_param(IS_FLASH_ADDRESS(Address)); /* If the previous operation is completed, proceed to program the new data */ FLASH->CR &= CR_PSIZE_MASK; 8012442: 4a0e ldr r2, [pc, #56] ; (801247c ) 8012444: 4b0d ldr r3, [pc, #52] ; (801247c ) 8012446: 691b ldr r3, [r3, #16] 8012448: f423 7340 bic.w r3, r3, #768 ; 0x300 801244c: 6113 str r3, [r2, #16] FLASH->CR |= FLASH_PSIZE_WORD; 801244e: 4a0b ldr r2, [pc, #44] ; (801247c ) 8012450: 4b0a ldr r3, [pc, #40] ; (801247c ) 8012452: 691b ldr r3, [r3, #16] 8012454: f443 7300 orr.w r3, r3, #512 ; 0x200 8012458: 6113 str r3, [r2, #16] FLASH->CR |= FLASH_CR_PG; 801245a: 4a08 ldr r2, [pc, #32] ; (801247c ) 801245c: 4b07 ldr r3, [pc, #28] ; (801247c ) 801245e: 691b ldr r3, [r3, #16] 8012460: f043 0301 orr.w r3, r3, #1 8012464: 6113 str r3, [r2, #16] *(__IO uint32_t*)Address = Data; 8012466: 687b ldr r3, [r7, #4] 8012468: 683a ldr r2, [r7, #0] 801246a: 601a str r2, [r3, #0] 801246c: f3bf 8f4f dsb sy /* Data synchronous Barrier (DSB) Just after the write operation This will force the CPU to respect the sequence of instruction (no optimization).*/ __DSB(); } 8012470: bf00 nop 8012472: 370c adds r7, #12 8012474: 46bd mov sp, r7 8012476: f85d 7b04 ldr.w r7, [sp], #4 801247a: 4770 bx lr 801247c: 40023c00 .word 0x40023c00 08012480 : * @param Address specifies the address to be programmed. * @param Data specifies the data to be programmed. * @retval None */ static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data) { 8012480: b480 push {r7} 8012482: b083 sub sp, #12 8012484: af00 add r7, sp, #0 8012486: 6078 str r0, [r7, #4] 8012488: 460b mov r3, r1 801248a: 807b strh r3, [r7, #2] /* Check the parameters */ assert_param(IS_FLASH_ADDRESS(Address)); /* If the previous operation is completed, proceed to program the new data */ FLASH->CR &= CR_PSIZE_MASK; 801248c: 4a0e ldr r2, [pc, #56] ; (80124c8 ) 801248e: 4b0e ldr r3, [pc, #56] ; (80124c8 ) 8012490: 691b ldr r3, [r3, #16] 8012492: f423 7340 bic.w r3, r3, #768 ; 0x300 8012496: 6113 str r3, [r2, #16] FLASH->CR |= FLASH_PSIZE_HALF_WORD; 8012498: 4a0b ldr r2, [pc, #44] ; (80124c8 ) 801249a: 4b0b ldr r3, [pc, #44] ; (80124c8 ) 801249c: 691b ldr r3, [r3, #16] 801249e: f443 7380 orr.w r3, r3, #256 ; 0x100 80124a2: 6113 str r3, [r2, #16] FLASH->CR |= FLASH_CR_PG; 80124a4: 4a08 ldr r2, [pc, #32] ; (80124c8 ) 80124a6: 4b08 ldr r3, [pc, #32] ; (80124c8 ) 80124a8: 691b ldr r3, [r3, #16] 80124aa: f043 0301 orr.w r3, r3, #1 80124ae: 6113 str r3, [r2, #16] *(__IO uint16_t*)Address = Data; 80124b0: 687b ldr r3, [r7, #4] 80124b2: 887a ldrh r2, [r7, #2] 80124b4: 801a strh r2, [r3, #0] 80124b6: f3bf 8f4f dsb sy /* Data synchronous Barrier (DSB) Just after the write operation This will force the CPU to respect the sequence of instruction (no optimization).*/ __DSB(); } 80124ba: bf00 nop 80124bc: 370c adds r7, #12 80124be: 46bd mov sp, r7 80124c0: f85d 7b04 ldr.w r7, [sp], #4 80124c4: 4770 bx lr 80124c6: bf00 nop 80124c8: 40023c00 .word 0x40023c00 080124cc : * @param Address specifies the address to be programmed. * @param Data specifies the data to be programmed. * @retval None */ static void FLASH_Program_Byte(uint32_t Address, uint8_t Data) { 80124cc: b480 push {r7} 80124ce: b083 sub sp, #12 80124d0: af00 add r7, sp, #0 80124d2: 6078 str r0, [r7, #4] 80124d4: 460b mov r3, r1 80124d6: 70fb strb r3, [r7, #3] /* Check the parameters */ assert_param(IS_FLASH_ADDRESS(Address)); /* If the previous operation is completed, proceed to program the new data */ FLASH->CR &= CR_PSIZE_MASK; 80124d8: 4a0d ldr r2, [pc, #52] ; (8012510 ) 80124da: 4b0d ldr r3, [pc, #52] ; (8012510 ) 80124dc: 691b ldr r3, [r3, #16] 80124de: f423 7340 bic.w r3, r3, #768 ; 0x300 80124e2: 6113 str r3, [r2, #16] FLASH->CR |= FLASH_PSIZE_BYTE; 80124e4: 4a0a ldr r2, [pc, #40] ; (8012510 ) 80124e6: 4b0a ldr r3, [pc, #40] ; (8012510 ) 80124e8: 691b ldr r3, [r3, #16] 80124ea: 6113 str r3, [r2, #16] FLASH->CR |= FLASH_CR_PG; 80124ec: 4a08 ldr r2, [pc, #32] ; (8012510 ) 80124ee: 4b08 ldr r3, [pc, #32] ; (8012510 ) 80124f0: 691b ldr r3, [r3, #16] 80124f2: f043 0301 orr.w r3, r3, #1 80124f6: 6113 str r3, [r2, #16] *(__IO uint8_t*)Address = Data; 80124f8: 687b ldr r3, [r7, #4] 80124fa: 78fa ldrb r2, [r7, #3] 80124fc: 701a strb r2, [r3, #0] 80124fe: f3bf 8f4f dsb sy /* Data synchronous Barrier (DSB) Just after the write operation This will force the CPU to respect the sequence of instruction (no optimization).*/ __DSB(); } 8012502: bf00 nop 8012504: 370c adds r7, #12 8012506: 46bd mov sp, r7 8012508: f85d 7b04 ldr.w r7, [sp], #4 801250c: 4770 bx lr 801250e: bf00 nop 8012510: 40023c00 .word 0x40023c00 08012514 : /** * @brief Set the specific FLASH error flag. * @retval None */ static void FLASH_SetErrorCode(void) { 8012514: b480 push {r7} 8012516: af00 add r7, sp, #0 if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_OPERR) != RESET) 8012518: 4b21 ldr r3, [pc, #132] ; (80125a0 ) 801251a: 68db ldr r3, [r3, #12] 801251c: f003 0302 and.w r3, r3, #2 8012520: 2b00 cmp r3, #0 8012522: d005 beq.n 8012530 { pFlash.ErrorCode |= HAL_FLASH_ERROR_OPERATION; 8012524: 4b1f ldr r3, [pc, #124] ; (80125a4 ) 8012526: 699b ldr r3, [r3, #24] 8012528: f043 0320 orr.w r3, r3, #32 801252c: 4a1d ldr r2, [pc, #116] ; (80125a4 ) 801252e: 6193 str r3, [r2, #24] } if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) != RESET) 8012530: 4b1b ldr r3, [pc, #108] ; (80125a0 ) 8012532: 68db ldr r3, [r3, #12] 8012534: f003 0310 and.w r3, r3, #16 8012538: 2b00 cmp r3, #0 801253a: d005 beq.n 8012548 { pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP; 801253c: 4b19 ldr r3, [pc, #100] ; (80125a4 ) 801253e: 699b ldr r3, [r3, #24] 8012540: f043 0310 orr.w r3, r3, #16 8012544: 4a17 ldr r2, [pc, #92] ; (80125a4 ) 8012546: 6193 str r3, [r2, #24] } if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGAERR) != RESET) 8012548: 4b15 ldr r3, [pc, #84] ; (80125a0 ) 801254a: 68db ldr r3, [r3, #12] 801254c: f003 0320 and.w r3, r3, #32 8012550: 2b00 cmp r3, #0 8012552: d005 beq.n 8012560 { pFlash.ErrorCode |= HAL_FLASH_ERROR_PGA; 8012554: 4b13 ldr r3, [pc, #76] ; (80125a4 ) 8012556: 699b ldr r3, [r3, #24] 8012558: f043 0308 orr.w r3, r3, #8 801255c: 4a11 ldr r2, [pc, #68] ; (80125a4 ) 801255e: 6193 str r3, [r2, #24] } if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGPERR) != RESET) 8012560: 4b0f ldr r3, [pc, #60] ; (80125a0 ) 8012562: 68db ldr r3, [r3, #12] 8012564: f003 0340 and.w r3, r3, #64 ; 0x40 8012568: 2b00 cmp r3, #0 801256a: d005 beq.n 8012578 { pFlash.ErrorCode |= HAL_FLASH_ERROR_PGP; 801256c: 4b0d ldr r3, [pc, #52] ; (80125a4 ) 801256e: 699b ldr r3, [r3, #24] 8012570: f043 0304 orr.w r3, r3, #4 8012574: 4a0b ldr r2, [pc, #44] ; (80125a4 ) 8012576: 6193 str r3, [r2, #24] } if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_ERSERR) != RESET) 8012578: 4b09 ldr r3, [pc, #36] ; (80125a0 ) 801257a: 68db ldr r3, [r3, #12] 801257c: f003 0380 and.w r3, r3, #128 ; 0x80 8012580: 2b00 cmp r3, #0 8012582: d005 beq.n 8012590 { pFlash.ErrorCode |= HAL_FLASH_ERROR_ERS; 8012584: 4b07 ldr r3, [pc, #28] ; (80125a4 ) 8012586: 699b ldr r3, [r3, #24] 8012588: f043 0302 orr.w r3, r3, #2 801258c: 4a05 ldr r2, [pc, #20] ; (80125a4 ) 801258e: 6193 str r3, [r2, #24] pFlash.ErrorCode |= HAL_FLASH_ERROR_RD; } #endif /* FLASH_OPTCR2_PCROP */ /* Clear error programming flags */ __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_ALL_ERRORS); 8012590: 4b03 ldr r3, [pc, #12] ; (80125a0 ) 8012592: 22f2 movs r2, #242 ; 0xf2 8012594: 60da str r2, [r3, #12] } 8012596: bf00 nop 8012598: 46bd mov sp, r7 801259a: f85d 7b04 ldr.w r7, [sp], #4 801259e: 4770 bx lr 80125a0: 40023c00 .word 0x40023c00 80125a4: 2006c6c8 .word 0x2006c6c8 080125a8 : * (0xFFFFFFFF means that all the sectors have been correctly erased) * * @retval HAL Status */ HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *SectorError) { 80125a8: b580 push {r7, lr} 80125aa: b084 sub sp, #16 80125ac: af00 add r7, sp, #0 80125ae: 6078 str r0, [r7, #4] 80125b0: 6039 str r1, [r7, #0] HAL_StatusTypeDef status = HAL_ERROR; 80125b2: 2301 movs r3, #1 80125b4: 73fb strb r3, [r7, #15] uint32_t index = 0; 80125b6: 2300 movs r3, #0 80125b8: 60bb str r3, [r7, #8] /* Process Locked */ __HAL_LOCK(&pFlash); 80125ba: 4b30 ldr r3, [pc, #192] ; (801267c ) 80125bc: 7d1b ldrb r3, [r3, #20] 80125be: 2b01 cmp r3, #1 80125c0: d101 bne.n 80125c6 80125c2: 2302 movs r3, #2 80125c4: e056 b.n 8012674 80125c6: 4b2d ldr r3, [pc, #180] ; (801267c ) 80125c8: 2201 movs r2, #1 80125ca: 751a strb r2, [r3, #20] /* Check the parameters */ assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase)); /* Wait for last operation to be completed */ status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 80125cc: f24c 3050 movw r0, #50000 ; 0xc350 80125d0: f7ff fec2 bl 8012358 80125d4: 4603 mov r3, r0 80125d6: 73fb strb r3, [r7, #15] if(status == HAL_OK) 80125d8: 7bfb ldrb r3, [r7, #15] 80125da: 2b00 cmp r3, #0 80125dc: d146 bne.n 801266c { /*Initialization of SectorError variable*/ *SectorError = 0xFFFFFFFFU; 80125de: 683b ldr r3, [r7, #0] 80125e0: f04f 32ff mov.w r2, #4294967295 80125e4: 601a str r2, [r3, #0] if(pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE) 80125e6: 687b ldr r3, [r7, #4] 80125e8: 681b ldr r3, [r3, #0] 80125ea: 2b01 cmp r3, #1 80125ec: d115 bne.n 801261a { /*Mass erase to be done*/ #if defined (FLASH_OPTCR_nDBANK) FLASH_MassErase((uint8_t) pEraseInit->VoltageRange, pEraseInit->Banks); 80125ee: 687b ldr r3, [r7, #4] 80125f0: 691b ldr r3, [r3, #16] 80125f2: b2da uxtb r2, r3 80125f4: 687b ldr r3, [r7, #4] 80125f6: 685b ldr r3, [r3, #4] 80125f8: 4619 mov r1, r3 80125fa: 4610 mov r0, r2 80125fc: f000 f870 bl 80126e0 #else FLASH_MassErase((uint8_t) pEraseInit->VoltageRange); #endif /* FLASH_OPTCR_nDBANK */ /* Wait for last operation to be completed */ status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 8012600: f24c 3050 movw r0, #50000 ; 0xc350 8012604: f7ff fea8 bl 8012358 8012608: 4603 mov r3, r0 801260a: 73fb strb r3, [r7, #15] /* if the erase operation is completed, disable the MER Bit */ FLASH->CR &= (~FLASH_MER_BIT); 801260c: 491c ldr r1, [pc, #112] ; (8012680 ) 801260e: 4b1c ldr r3, [pc, #112] ; (8012680 ) 8012610: 691a ldr r2, [r3, #16] 8012612: 4b1c ldr r3, [pc, #112] ; (8012684 ) 8012614: 4013 ands r3, r2 8012616: 610b str r3, [r1, #16] 8012618: e028 b.n 801266c { /* Check the parameters */ assert_param(IS_FLASH_NBSECTORS(pEraseInit->NbSectors + pEraseInit->Sector)); /* Erase by sector by sector to be done*/ for(index = pEraseInit->Sector; index < (pEraseInit->NbSectors + pEraseInit->Sector); index++) 801261a: 687b ldr r3, [r7, #4] 801261c: 689b ldr r3, [r3, #8] 801261e: 60bb str r3, [r7, #8] 8012620: e01c b.n 801265c { FLASH_Erase_Sector(index, (uint8_t) pEraseInit->VoltageRange); 8012622: 687b ldr r3, [r7, #4] 8012624: 691b ldr r3, [r3, #16] 8012626: b2db uxtb r3, r3 8012628: 4619 mov r1, r3 801262a: 68b8 ldr r0, [r7, #8] 801262c: f000 f892 bl 8012754 /* Wait for last operation to be completed */ status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 8012630: f24c 3050 movw r0, #50000 ; 0xc350 8012634: f7ff fe90 bl 8012358 8012638: 4603 mov r3, r0 801263a: 73fb strb r3, [r7, #15] /* If the erase operation is completed, disable the SER Bit and SNB Bits */ CLEAR_BIT(FLASH->CR, (FLASH_CR_SER | FLASH_CR_SNB)); 801263c: 4a10 ldr r2, [pc, #64] ; (8012680 ) 801263e: 4b10 ldr r3, [pc, #64] ; (8012680 ) 8012640: 691b ldr r3, [r3, #16] 8012642: f023 03fa bic.w r3, r3, #250 ; 0xfa 8012646: 6113 str r3, [r2, #16] if(status != HAL_OK) 8012648: 7bfb ldrb r3, [r7, #15] 801264a: 2b00 cmp r3, #0 801264c: d003 beq.n 8012656 { /* In case of error, stop erase procedure and return the faulty sector*/ *SectorError = index; 801264e: 683b ldr r3, [r7, #0] 8012650: 68ba ldr r2, [r7, #8] 8012652: 601a str r2, [r3, #0] break; 8012654: e00a b.n 801266c for(index = pEraseInit->Sector; index < (pEraseInit->NbSectors + pEraseInit->Sector); index++) 8012656: 68bb ldr r3, [r7, #8] 8012658: 3301 adds r3, #1 801265a: 60bb str r3, [r7, #8] 801265c: 687b ldr r3, [r7, #4] 801265e: 68da ldr r2, [r3, #12] 8012660: 687b ldr r3, [r7, #4] 8012662: 689b ldr r3, [r3, #8] 8012664: 441a add r2, r3 8012666: 68bb ldr r3, [r7, #8] 8012668: 429a cmp r2, r3 801266a: d8da bhi.n 8012622 } } } /* Process Unlocked */ __HAL_UNLOCK(&pFlash); 801266c: 4b03 ldr r3, [pc, #12] ; (801267c ) 801266e: 2200 movs r2, #0 8012670: 751a strb r2, [r3, #20] return status; 8012672: 7bfb ldrb r3, [r7, #15] } 8012674: 4618 mov r0, r3 8012676: 3710 adds r7, #16 8012678: 46bd mov sp, r7 801267a: bd80 pop {r7, pc} 801267c: 2006c6c8 .word 0x2006c6c8 8012680: 40023c00 .word 0x40023c00 8012684: ffff7ffb .word 0xffff7ffb 08012688 : * contains the configuration information for the programming. * * @retval None */ void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit) { 8012688: b580 push {r7, lr} 801268a: b082 sub sp, #8 801268c: af00 add r7, sp, #0 801268e: 6078 str r0, [r7, #4] pOBInit->OptionType = OPTIONBYTE_WRP | OPTIONBYTE_RDP | OPTIONBYTE_USER |\ 8012690: 687b ldr r3, [r7, #4] 8012692: 223f movs r2, #63 ; 0x3f 8012694: 601a str r2, [r3, #0] OPTIONBYTE_BOR | OPTIONBYTE_BOOTADDR_0 | OPTIONBYTE_BOOTADDR_1; /*Get WRP*/ pOBInit->WRPSector = FLASH_OB_GetWRP(); 8012696: f000 f8ad bl 80127f4 801269a: 4602 mov r2, r0 801269c: 687b ldr r3, [r7, #4] 801269e: 609a str r2, [r3, #8] /*Get RDP Level*/ pOBInit->RDPLevel = FLASH_OB_GetRDP(); 80126a0: f000 f8c8 bl 8012834 80126a4: 4603 mov r3, r0 80126a6: 461a mov r2, r3 80126a8: 687b ldr r3, [r7, #4] 80126aa: 60da str r2, [r3, #12] /*Get USER*/ pOBInit->USERConfig = FLASH_OB_GetUser(); 80126ac: f000 f8b2 bl 8012814 80126b0: 4602 mov r2, r0 80126b2: 687b ldr r3, [r7, #4] 80126b4: 615a str r2, [r3, #20] /*Get BOR Level*/ pOBInit->BORLevel = FLASH_OB_GetBOR(); 80126b6: f000 f8dd bl 8012874 80126ba: 4602 mov r2, r0 80126bc: 687b ldr r3, [r7, #4] 80126be: 611a str r2, [r3, #16] /*Get Boot Address when Boot pin = 0 */ pOBInit->BootAddr0 = FLASH_OB_GetBootAddress(OPTIONBYTE_BOOTADDR_0); 80126c0: 2010 movs r0, #16 80126c2: f000 f8e5 bl 8012890 80126c6: 4602 mov r2, r0 80126c8: 687b ldr r3, [r7, #4] 80126ca: 619a str r2, [r3, #24] /*Get Boot Address when Boot pin = 1 */ pOBInit->BootAddr1 = FLASH_OB_GetBootAddress(OPTIONBYTE_BOOTADDR_1); 80126cc: 2020 movs r0, #32 80126ce: f000 f8df bl 8012890 80126d2: 4602 mov r2, r0 80126d4: 687b ldr r3, [r7, #4] 80126d6: 61da str r2, [r3, #28] pOBInit->PCROPSector = FLASH_OB_GetPCROP(); /*Get PCROP_RDP Value */ pOBInit->PCROPRdp = FLASH_OB_GetPCROPRDP(); #endif /* FLASH_OPTCR2_PCROP */ } 80126d8: bf00 nop 80126da: 3708 adds r7, #8 80126dc: 46bd mov sp, r7 80126de: bd80 pop {r7, pc} 080126e0 : * @arg FLASH_BANK_BOTH: Bank1 and Bank2 to be erased * * @retval HAL Status */ static void FLASH_MassErase(uint8_t VoltageRange, uint32_t Banks) { 80126e0: b480 push {r7} 80126e2: b083 sub sp, #12 80126e4: af00 add r7, sp, #0 80126e6: 4603 mov r3, r0 80126e8: 6039 str r1, [r7, #0] 80126ea: 71fb strb r3, [r7, #7] /* Check the parameters */ assert_param(IS_VOLTAGERANGE(VoltageRange)); assert_param(IS_FLASH_BANK(Banks)); /* if the previous operation is completed, proceed to erase all sectors */ FLASH->CR &= CR_PSIZE_MASK; 80126ec: 4a18 ldr r2, [pc, #96] ; (8012750 ) 80126ee: 4b18 ldr r3, [pc, #96] ; (8012750 ) 80126f0: 691b ldr r3, [r3, #16] 80126f2: f423 7340 bic.w r3, r3, #768 ; 0x300 80126f6: 6113 str r3, [r2, #16] if(Banks == FLASH_BANK_BOTH) 80126f8: 683b ldr r3, [r7, #0] 80126fa: 2b03 cmp r3, #3 80126fc: d107 bne.n 801270e { /* bank1 & bank2 will be erased*/ FLASH->CR |= FLASH_MER_BIT; 80126fe: 4914 ldr r1, [pc, #80] ; (8012750 ) 8012700: 4b13 ldr r3, [pc, #76] ; (8012750 ) 8012702: 691a ldr r2, [r3, #16] 8012704: f248 0304 movw r3, #32772 ; 0x8004 8012708: 4313 orrs r3, r2 801270a: 610b str r3, [r1, #16] 801270c: e00f b.n 801272e } else if(Banks == FLASH_BANK_2) 801270e: 683b ldr r3, [r7, #0] 8012710: 2b02 cmp r3, #2 8012712: d106 bne.n 8012722 { /*Only bank2 will be erased*/ FLASH->CR |= FLASH_CR_MER2; 8012714: 4a0e ldr r2, [pc, #56] ; (8012750 ) 8012716: 4b0e ldr r3, [pc, #56] ; (8012750 ) 8012718: 691b ldr r3, [r3, #16] 801271a: f443 4300 orr.w r3, r3, #32768 ; 0x8000 801271e: 6113 str r3, [r2, #16] 8012720: e005 b.n 801272e } else { /*Only bank1 will be erased*/ FLASH->CR |= FLASH_CR_MER1; 8012722: 4a0b ldr r2, [pc, #44] ; (8012750 ) 8012724: 4b0a ldr r3, [pc, #40] ; (8012750 ) 8012726: 691b ldr r3, [r3, #16] 8012728: f043 0304 orr.w r3, r3, #4 801272c: 6113 str r3, [r2, #16] } FLASH->CR |= FLASH_CR_STRT | ((uint32_t)VoltageRange <<8); 801272e: 4908 ldr r1, [pc, #32] ; (8012750 ) 8012730: 4b07 ldr r3, [pc, #28] ; (8012750 ) 8012732: 691a ldr r2, [r3, #16] 8012734: 79fb ldrb r3, [r7, #7] 8012736: 021b lsls r3, r3, #8 8012738: 4313 orrs r3, r2 801273a: f443 3380 orr.w r3, r3, #65536 ; 0x10000 801273e: 610b str r3, [r1, #16] 8012740: f3bf 8f4f dsb sy /* Data synchronous Barrier (DSB) Just after the write operation This will force the CPU to respect the sequence of instruction (no optimization).*/ __DSB(); } 8012744: bf00 nop 8012746: 370c adds r7, #12 8012748: 46bd mov sp, r7 801274a: f85d 7b04 ldr.w r7, [sp], #4 801274e: 4770 bx lr 8012750: 40023c00 .word 0x40023c00 08012754 : * the operation will be done by double word (64-bit) * * @retval None */ void FLASH_Erase_Sector(uint32_t Sector, uint8_t VoltageRange) { 8012754: b480 push {r7} 8012756: b085 sub sp, #20 8012758: af00 add r7, sp, #0 801275a: 6078 str r0, [r7, #4] 801275c: 460b mov r3, r1 801275e: 70fb strb r3, [r7, #3] uint32_t tmp_psize = 0; 8012760: 2300 movs r3, #0 8012762: 60fb str r3, [r7, #12] /* Check the parameters */ assert_param(IS_FLASH_SECTOR(Sector)); assert_param(IS_VOLTAGERANGE(VoltageRange)); if(VoltageRange == FLASH_VOLTAGE_RANGE_1) 8012764: 78fb ldrb r3, [r7, #3] 8012766: 2b00 cmp r3, #0 8012768: d102 bne.n 8012770 { tmp_psize = FLASH_PSIZE_BYTE; 801276a: 2300 movs r3, #0 801276c: 60fb str r3, [r7, #12] 801276e: e010 b.n 8012792 } else if(VoltageRange == FLASH_VOLTAGE_RANGE_2) 8012770: 78fb ldrb r3, [r7, #3] 8012772: 2b01 cmp r3, #1 8012774: d103 bne.n 801277e { tmp_psize = FLASH_PSIZE_HALF_WORD; 8012776: f44f 7380 mov.w r3, #256 ; 0x100 801277a: 60fb str r3, [r7, #12] 801277c: e009 b.n 8012792 } else if(VoltageRange == FLASH_VOLTAGE_RANGE_3) 801277e: 78fb ldrb r3, [r7, #3] 8012780: 2b02 cmp r3, #2 8012782: d103 bne.n 801278c { tmp_psize = FLASH_PSIZE_WORD; 8012784: f44f 7300 mov.w r3, #512 ; 0x200 8012788: 60fb str r3, [r7, #12] 801278a: e002 b.n 8012792 } else { tmp_psize = FLASH_PSIZE_DOUBLE_WORD; 801278c: f44f 7340 mov.w r3, #768 ; 0x300 8012790: 60fb str r3, [r7, #12] } /* Need to add offset of 4 when sector higher than FLASH_SECTOR_11 */ if(Sector > FLASH_SECTOR_11) 8012792: 687b ldr r3, [r7, #4] 8012794: 2b0b cmp r3, #11 8012796: d902 bls.n 801279e { Sector += 4; 8012798: 687b ldr r3, [r7, #4] 801279a: 3304 adds r3, #4 801279c: 607b str r3, [r7, #4] } /* If the previous operation is completed, proceed to erase the sector */ FLASH->CR &= CR_PSIZE_MASK; 801279e: 4a14 ldr r2, [pc, #80] ; (80127f0 ) 80127a0: 4b13 ldr r3, [pc, #76] ; (80127f0 ) 80127a2: 691b ldr r3, [r3, #16] 80127a4: f423 7340 bic.w r3, r3, #768 ; 0x300 80127a8: 6113 str r3, [r2, #16] FLASH->CR |= tmp_psize; 80127aa: 4911 ldr r1, [pc, #68] ; (80127f0 ) 80127ac: 4b10 ldr r3, [pc, #64] ; (80127f0 ) 80127ae: 691a ldr r2, [r3, #16] 80127b0: 68fb ldr r3, [r7, #12] 80127b2: 4313 orrs r3, r2 80127b4: 610b str r3, [r1, #16] CLEAR_BIT(FLASH->CR, FLASH_CR_SNB); 80127b6: 4a0e ldr r2, [pc, #56] ; (80127f0 ) 80127b8: 4b0d ldr r3, [pc, #52] ; (80127f0 ) 80127ba: 691b ldr r3, [r3, #16] 80127bc: f023 03f8 bic.w r3, r3, #248 ; 0xf8 80127c0: 6113 str r3, [r2, #16] FLASH->CR |= FLASH_CR_SER | (Sector << FLASH_CR_SNB_Pos); 80127c2: 490b ldr r1, [pc, #44] ; (80127f0 ) 80127c4: 4b0a ldr r3, [pc, #40] ; (80127f0 ) 80127c6: 691a ldr r2, [r3, #16] 80127c8: 687b ldr r3, [r7, #4] 80127ca: 00db lsls r3, r3, #3 80127cc: 4313 orrs r3, r2 80127ce: f043 0302 orr.w r3, r3, #2 80127d2: 610b str r3, [r1, #16] FLASH->CR |= FLASH_CR_STRT; 80127d4: 4a06 ldr r2, [pc, #24] ; (80127f0 ) 80127d6: 4b06 ldr r3, [pc, #24] ; (80127f0 ) 80127d8: 691b ldr r3, [r3, #16] 80127da: f443 3380 orr.w r3, r3, #65536 ; 0x10000 80127de: 6113 str r3, [r2, #16] 80127e0: f3bf 8f4f dsb sy /* Data synchronous Barrier (DSB) Just after the write operation This will force the CPU to respect the sequence of instruction (no optimization).*/ __DSB(); } 80127e4: bf00 nop 80127e6: 3714 adds r7, #20 80127e8: 46bd mov sp, r7 80127ea: f85d 7b04 ldr.w r7, [sp], #4 80127ee: 4770 bx lr 80127f0: 40023c00 .word 0x40023c00 080127f4 : /** * @brief Return the FLASH Write Protection Option Bytes value. * @retval uint32_t FLASH Write Protection Option Bytes value */ static uint32_t FLASH_OB_GetWRP(void) { 80127f4: b480 push {r7} 80127f6: af00 add r7, sp, #0 /* Return the FLASH write protection Register value */ return ((uint32_t)(FLASH->OPTCR & 0x0FFF0000)); 80127f8: 4b04 ldr r3, [pc, #16] ; (801280c ) 80127fa: 695a ldr r2, [r3, #20] 80127fc: 4b04 ldr r3, [pc, #16] ; (8012810 ) 80127fe: 4013 ands r3, r2 } 8012800: 4618 mov r0, r3 8012802: 46bd mov sp, r7 8012804: f85d 7b04 ldr.w r7, [sp], #4 8012808: 4770 bx lr 801280a: bf00 nop 801280c: 40023c00 .word 0x40023c00 8012810: 0fff0000 .word 0x0fff0000 08012814 : * @brief Return the FLASH User Option Byte value. * @retval uint32_t FLASH User Option Bytes values: WWDG_SW(Bit4), IWDG_SW(Bit5), nRST_STOP(Bit6), * nRST_STDBY(Bit7), nDBOOT(Bit28), nDBANK(Bit29), IWDG_STDBY(Bit30) and IWDG_STOP(Bit31). */ static uint32_t FLASH_OB_GetUser(void) { 8012814: b480 push {r7} 8012816: af00 add r7, sp, #0 /* Return the User Option Byte */ return ((uint32_t)(FLASH->OPTCR & 0xF00000F0U)); 8012818: 4b04 ldr r3, [pc, #16] ; (801282c ) 801281a: 695a ldr r2, [r3, #20] 801281c: 4b04 ldr r3, [pc, #16] ; (8012830 ) 801281e: 4013 ands r3, r2 } 8012820: 4618 mov r0, r3 8012822: 46bd mov sp, r7 8012824: f85d 7b04 ldr.w r7, [sp], #4 8012828: 4770 bx lr 801282a: bf00 nop 801282c: 40023c00 .word 0x40023c00 8012830: f00000f0 .word 0xf00000f0 08012834 : * @arg OB_RDP_LEVEL_0: No protection * @arg OB_RDP_LEVEL_1: Read protection of the memory * @arg OB_RDP_LEVEL_2: Full chip protection */ static uint8_t FLASH_OB_GetRDP(void) { 8012834: b480 push {r7} 8012836: b083 sub sp, #12 8012838: af00 add r7, sp, #0 uint8_t readstatus = OB_RDP_LEVEL_0; 801283a: 23aa movs r3, #170 ; 0xaa 801283c: 71fb strb r3, [r7, #7] if ((*(__IO uint8_t*)(OPTCR_BYTE1_ADDRESS)) == OB_RDP_LEVEL_0) 801283e: 4b0c ldr r3, [pc, #48] ; (8012870 ) 8012840: 781b ldrb r3, [r3, #0] 8012842: b2db uxtb r3, r3 8012844: 2baa cmp r3, #170 ; 0xaa 8012846: d102 bne.n 801284e { readstatus = OB_RDP_LEVEL_0; 8012848: 23aa movs r3, #170 ; 0xaa 801284a: 71fb strb r3, [r7, #7] 801284c: e009 b.n 8012862 } else if ((*(__IO uint8_t*)(OPTCR_BYTE1_ADDRESS)) == OB_RDP_LEVEL_2) 801284e: 4b08 ldr r3, [pc, #32] ; (8012870 ) 8012850: 781b ldrb r3, [r3, #0] 8012852: b2db uxtb r3, r3 8012854: 2bcc cmp r3, #204 ; 0xcc 8012856: d102 bne.n 801285e { readstatus = OB_RDP_LEVEL_2; 8012858: 23cc movs r3, #204 ; 0xcc 801285a: 71fb strb r3, [r7, #7] 801285c: e001 b.n 8012862 } else { readstatus = OB_RDP_LEVEL_1; 801285e: 2355 movs r3, #85 ; 0x55 8012860: 71fb strb r3, [r7, #7] } return readstatus; 8012862: 79fb ldrb r3, [r7, #7] } 8012864: 4618 mov r0, r3 8012866: 370c adds r7, #12 8012868: 46bd mov sp, r7 801286a: f85d 7b04 ldr.w r7, [sp], #4 801286e: 4770 bx lr 8012870: 40023c15 .word 0x40023c15 08012874 : * - OB_BOR_LEVEL2: Supply voltage ranges from 2.4 to 2.7 V * - OB_BOR_LEVEL1: Supply voltage ranges from 2.1 to 2.4 V * - OB_BOR_OFF : Supply voltage ranges from 1.62 to 2.1 V */ static uint32_t FLASH_OB_GetBOR(void) { 8012874: b480 push {r7} 8012876: af00 add r7, sp, #0 /* Return the FLASH BOR level */ return ((uint32_t)(FLASH->OPTCR & 0x0C)); 8012878: 4b04 ldr r3, [pc, #16] ; (801288c ) 801287a: 695b ldr r3, [r3, #20] 801287c: f003 030c and.w r3, r3, #12 } 8012880: 4618 mov r0, r3 8012882: 46bd mov sp, r7 8012884: f85d 7b04 ldr.w r7, [sp], #4 8012888: 4770 bx lr 801288a: bf00 nop 801288c: 40023c00 .word 0x40023c00 08012890 : * - OB_BOOTADDR_DTCM_RAM : Boot from DTCM RAM (0x20000000) * - OB_BOOTADDR_SRAM1 : Boot from SRAM1 (0x20010000) * - OB_BOOTADDR_SRAM2 : Boot from SRAM2 (0x2004C000) */ static uint32_t FLASH_OB_GetBootAddress(uint32_t BootOption) { 8012890: b480 push {r7} 8012892: b085 sub sp, #20 8012894: af00 add r7, sp, #0 8012896: 6078 str r0, [r7, #4] uint32_t Address = 0; 8012898: 2300 movs r3, #0 801289a: 60fb str r3, [r7, #12] /* Return the Boot base Address */ if(BootOption == OPTIONBYTE_BOOTADDR_0) 801289c: 687b ldr r3, [r7, #4] 801289e: 2b10 cmp r3, #16 80128a0: d104 bne.n 80128ac { Address = FLASH->OPTCR1 & FLASH_OPTCR1_BOOT_ADD0; 80128a2: 4b08 ldr r3, [pc, #32] ; (80128c4 ) 80128a4: 699b ldr r3, [r3, #24] 80128a6: b29b uxth r3, r3 80128a8: 60fb str r3, [r7, #12] 80128aa: e004 b.n 80128b6 } else { Address = ((FLASH->OPTCR1 & FLASH_OPTCR1_BOOT_ADD1) >> 16); 80128ac: 4b05 ldr r3, [pc, #20] ; (80128c4 ) 80128ae: 699b ldr r3, [r3, #24] 80128b0: 0c1b lsrs r3, r3, #16 80128b2: b29b uxth r3, r3 80128b4: 60fb str r3, [r7, #12] } return Address; 80128b6: 68fb ldr r3, [r7, #12] } 80128b8: 4618 mov r0, r3 80128ba: 3714 adds r7, #20 80128bc: 46bd mov sp, r7 80128be: f85d 7b04 ldr.w r7, [sp], #4 80128c2: 4770 bx lr 80128c4: 40023c00 .word 0x40023c00 080128c8 : * @param GPIO_Init pointer to a GPIO_InitTypeDef structure that contains * the configuration information for the specified GPIO peripheral. * @retval None */ void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init) { 80128c8: b480 push {r7} 80128ca: b089 sub sp, #36 ; 0x24 80128cc: af00 add r7, sp, #0 80128ce: 6078 str r0, [r7, #4] 80128d0: 6039 str r1, [r7, #0] uint32_t position = 0x00; 80128d2: 2300 movs r3, #0 80128d4: 61fb str r3, [r7, #28] uint32_t ioposition = 0x00; 80128d6: 2300 movs r3, #0 80128d8: 617b str r3, [r7, #20] uint32_t iocurrent = 0x00; 80128da: 2300 movs r3, #0 80128dc: 613b str r3, [r7, #16] uint32_t temp = 0x00; 80128de: 2300 movs r3, #0 80128e0: 61bb str r3, [r7, #24] assert_param(IS_GPIO_ALL_INSTANCE(GPIOx)); assert_param(IS_GPIO_PIN(GPIO_Init->Pin)); assert_param(IS_GPIO_MODE(GPIO_Init->Mode)); /* Configure the port pins */ for(position = 0; position < GPIO_NUMBER; position++) 80128e2: 2300 movs r3, #0 80128e4: 61fb str r3, [r7, #28] 80128e6: e175 b.n 8012bd4 { /* Get the IO position */ ioposition = ((uint32_t)0x01) << position; 80128e8: 2201 movs r2, #1 80128ea: 69fb ldr r3, [r7, #28] 80128ec: fa02 f303 lsl.w r3, r2, r3 80128f0: 617b str r3, [r7, #20] /* Get the current IO position */ iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition; 80128f2: 683b ldr r3, [r7, #0] 80128f4: 681a ldr r2, [r3, #0] 80128f6: 697b ldr r3, [r7, #20] 80128f8: 4013 ands r3, r2 80128fa: 613b str r3, [r7, #16] if(iocurrent == ioposition) 80128fc: 693a ldr r2, [r7, #16] 80128fe: 697b ldr r3, [r7, #20] 8012900: 429a cmp r2, r3 8012902: f040 8164 bne.w 8012bce { /*--------------------- GPIO Mode Configuration ------------------------*/ /* In case of Output or Alternate function mode selection */ if(((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)) 8012906: 683b ldr r3, [r7, #0] 8012908: 685b ldr r3, [r3, #4] 801290a: f003 0303 and.w r3, r3, #3 801290e: 2b01 cmp r3, #1 8012910: d005 beq.n 801291e 8012912: 683b ldr r3, [r7, #0] 8012914: 685b ldr r3, [r3, #4] 8012916: f003 0303 and.w r3, r3, #3 801291a: 2b02 cmp r3, #2 801291c: d130 bne.n 8012980 { /* Check the Speed parameter */ assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); /* Configure the IO Speed */ temp = GPIOx->OSPEEDR; 801291e: 687b ldr r3, [r7, #4] 8012920: 689b ldr r3, [r3, #8] 8012922: 61bb str r3, [r7, #24] temp &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2)); 8012924: 69fb ldr r3, [r7, #28] 8012926: 005b lsls r3, r3, #1 8012928: 2203 movs r2, #3 801292a: fa02 f303 lsl.w r3, r2, r3 801292e: 43db mvns r3, r3 8012930: 69ba ldr r2, [r7, #24] 8012932: 4013 ands r3, r2 8012934: 61bb str r3, [r7, #24] temp |= (GPIO_Init->Speed << (position * 2)); 8012936: 683b ldr r3, [r7, #0] 8012938: 68da ldr r2, [r3, #12] 801293a: 69fb ldr r3, [r7, #28] 801293c: 005b lsls r3, r3, #1 801293e: fa02 f303 lsl.w r3, r2, r3 8012942: 69ba ldr r2, [r7, #24] 8012944: 4313 orrs r3, r2 8012946: 61bb str r3, [r7, #24] GPIOx->OSPEEDR = temp; 8012948: 687b ldr r3, [r7, #4] 801294a: 69ba ldr r2, [r7, #24] 801294c: 609a str r2, [r3, #8] /* Configure the IO Output Type */ temp = GPIOx->OTYPER; 801294e: 687b ldr r3, [r7, #4] 8012950: 685b ldr r3, [r3, #4] 8012952: 61bb str r3, [r7, #24] temp &= ~(GPIO_OTYPER_OT_0 << position) ; 8012954: 2201 movs r2, #1 8012956: 69fb ldr r3, [r7, #28] 8012958: fa02 f303 lsl.w r3, r2, r3 801295c: 43db mvns r3, r3 801295e: 69ba ldr r2, [r7, #24] 8012960: 4013 ands r3, r2 8012962: 61bb str r3, [r7, #24] temp |= (((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position); 8012964: 683b ldr r3, [r7, #0] 8012966: 685b ldr r3, [r3, #4] 8012968: 091b lsrs r3, r3, #4 801296a: f003 0201 and.w r2, r3, #1 801296e: 69fb ldr r3, [r7, #28] 8012970: fa02 f303 lsl.w r3, r2, r3 8012974: 69ba ldr r2, [r7, #24] 8012976: 4313 orrs r3, r2 8012978: 61bb str r3, [r7, #24] GPIOx->OTYPER = temp; 801297a: 687b ldr r3, [r7, #4] 801297c: 69ba ldr r2, [r7, #24] 801297e: 605a str r2, [r3, #4] } if((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG) 8012980: 683b ldr r3, [r7, #0] 8012982: 685b ldr r3, [r3, #4] 8012984: f003 0303 and.w r3, r3, #3 8012988: 2b03 cmp r3, #3 801298a: d017 beq.n 80129bc { /* Check the Pull parameter */ assert_param(IS_GPIO_PULL(GPIO_Init->Pull)); /* Activate the Pull-up or Pull down resistor for the current IO */ temp = GPIOx->PUPDR; 801298c: 687b ldr r3, [r7, #4] 801298e: 68db ldr r3, [r3, #12] 8012990: 61bb str r3, [r7, #24] temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2)); 8012992: 69fb ldr r3, [r7, #28] 8012994: 005b lsls r3, r3, #1 8012996: 2203 movs r2, #3 8012998: fa02 f303 lsl.w r3, r2, r3 801299c: 43db mvns r3, r3 801299e: 69ba ldr r2, [r7, #24] 80129a0: 4013 ands r3, r2 80129a2: 61bb str r3, [r7, #24] temp |= ((GPIO_Init->Pull) << (position * 2)); 80129a4: 683b ldr r3, [r7, #0] 80129a6: 689a ldr r2, [r3, #8] 80129a8: 69fb ldr r3, [r7, #28] 80129aa: 005b lsls r3, r3, #1 80129ac: fa02 f303 lsl.w r3, r2, r3 80129b0: 69ba ldr r2, [r7, #24] 80129b2: 4313 orrs r3, r2 80129b4: 61bb str r3, [r7, #24] GPIOx->PUPDR = temp; 80129b6: 687b ldr r3, [r7, #4] 80129b8: 69ba ldr r2, [r7, #24] 80129ba: 60da str r2, [r3, #12] } /* In case of Alternate function mode selection */ if((GPIO_Init->Mode & GPIO_MODE) == MODE_AF) 80129bc: 683b ldr r3, [r7, #0] 80129be: 685b ldr r3, [r3, #4] 80129c0: f003 0303 and.w r3, r3, #3 80129c4: 2b02 cmp r3, #2 80129c6: d123 bne.n 8012a10 { /* Check the Alternate function parameter */ assert_param(IS_GPIO_AF(GPIO_Init->Alternate)); /* Configure Alternate function mapped with the current IO */ temp = GPIOx->AFR[position >> 3]; 80129c8: 69fb ldr r3, [r7, #28] 80129ca: 08da lsrs r2, r3, #3 80129cc: 687b ldr r3, [r7, #4] 80129ce: 3208 adds r2, #8 80129d0: f853 3022 ldr.w r3, [r3, r2, lsl #2] 80129d4: 61bb str r3, [r7, #24] temp &= ~((uint32_t)0xF << ((uint32_t)(position & (uint32_t)0x07) * 4)) ; 80129d6: 69fb ldr r3, [r7, #28] 80129d8: f003 0307 and.w r3, r3, #7 80129dc: 009b lsls r3, r3, #2 80129de: 220f movs r2, #15 80129e0: fa02 f303 lsl.w r3, r2, r3 80129e4: 43db mvns r3, r3 80129e6: 69ba ldr r2, [r7, #24] 80129e8: 4013 ands r3, r2 80129ea: 61bb str r3, [r7, #24] temp |= ((uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & (uint32_t)0x07) * 4)); 80129ec: 683b ldr r3, [r7, #0] 80129ee: 691a ldr r2, [r3, #16] 80129f0: 69fb ldr r3, [r7, #28] 80129f2: f003 0307 and.w r3, r3, #7 80129f6: 009b lsls r3, r3, #2 80129f8: fa02 f303 lsl.w r3, r2, r3 80129fc: 69ba ldr r2, [r7, #24] 80129fe: 4313 orrs r3, r2 8012a00: 61bb str r3, [r7, #24] GPIOx->AFR[position >> 3] = temp; 8012a02: 69fb ldr r3, [r7, #28] 8012a04: 08da lsrs r2, r3, #3 8012a06: 687b ldr r3, [r7, #4] 8012a08: 3208 adds r2, #8 8012a0a: 69b9 ldr r1, [r7, #24] 8012a0c: f843 1022 str.w r1, [r3, r2, lsl #2] } /* Configure IO Direction mode (Input, Output, Alternate or Analog) */ temp = GPIOx->MODER; 8012a10: 687b ldr r3, [r7, #4] 8012a12: 681b ldr r3, [r3, #0] 8012a14: 61bb str r3, [r7, #24] temp &= ~(GPIO_MODER_MODER0 << (position * 2)); 8012a16: 69fb ldr r3, [r7, #28] 8012a18: 005b lsls r3, r3, #1 8012a1a: 2203 movs r2, #3 8012a1c: fa02 f303 lsl.w r3, r2, r3 8012a20: 43db mvns r3, r3 8012a22: 69ba ldr r2, [r7, #24] 8012a24: 4013 ands r3, r2 8012a26: 61bb str r3, [r7, #24] temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2)); 8012a28: 683b ldr r3, [r7, #0] 8012a2a: 685b ldr r3, [r3, #4] 8012a2c: f003 0203 and.w r2, r3, #3 8012a30: 69fb ldr r3, [r7, #28] 8012a32: 005b lsls r3, r3, #1 8012a34: fa02 f303 lsl.w r3, r2, r3 8012a38: 69ba ldr r2, [r7, #24] 8012a3a: 4313 orrs r3, r2 8012a3c: 61bb str r3, [r7, #24] GPIOx->MODER = temp; 8012a3e: 687b ldr r3, [r7, #4] 8012a40: 69ba ldr r2, [r7, #24] 8012a42: 601a str r2, [r3, #0] /*--------------------- EXTI Mode Configuration ------------------------*/ /* Configure the External Interrupt or event for the current IO */ if((GPIO_Init->Mode & EXTI_MODE) != 0x00u) 8012a44: 683b ldr r3, [r7, #0] 8012a46: 685b ldr r3, [r3, #4] 8012a48: f403 3340 and.w r3, r3, #196608 ; 0x30000 8012a4c: 2b00 cmp r3, #0 8012a4e: f000 80be beq.w 8012bce { /* Enable SYSCFG Clock */ __HAL_RCC_SYSCFG_CLK_ENABLE(); 8012a52: 4a65 ldr r2, [pc, #404] ; (8012be8 ) 8012a54: 4b64 ldr r3, [pc, #400] ; (8012be8 ) 8012a56: 6c5b ldr r3, [r3, #68] ; 0x44 8012a58: f443 4380 orr.w r3, r3, #16384 ; 0x4000 8012a5c: 6453 str r3, [r2, #68] ; 0x44 8012a5e: 4b62 ldr r3, [pc, #392] ; (8012be8 ) 8012a60: 6c5b ldr r3, [r3, #68] ; 0x44 8012a62: f403 4380 and.w r3, r3, #16384 ; 0x4000 8012a66: 60fb str r3, [r7, #12] 8012a68: 68fb ldr r3, [r7, #12] temp = SYSCFG->EXTICR[position >> 2]; 8012a6a: 4a60 ldr r2, [pc, #384] ; (8012bec ) 8012a6c: 69fb ldr r3, [r7, #28] 8012a6e: 089b lsrs r3, r3, #2 8012a70: 3302 adds r3, #2 8012a72: f852 3023 ldr.w r3, [r2, r3, lsl #2] 8012a76: 61bb str r3, [r7, #24] temp &= ~(((uint32_t)0x0F) << (4 * (position & 0x03))); 8012a78: 69fb ldr r3, [r7, #28] 8012a7a: f003 0303 and.w r3, r3, #3 8012a7e: 009b lsls r3, r3, #2 8012a80: 220f movs r2, #15 8012a82: fa02 f303 lsl.w r3, r2, r3 8012a86: 43db mvns r3, r3 8012a88: 69ba ldr r2, [r7, #24] 8012a8a: 4013 ands r3, r2 8012a8c: 61bb str r3, [r7, #24] temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4 * (position & 0x03))); 8012a8e: 687b ldr r3, [r7, #4] 8012a90: 4a57 ldr r2, [pc, #348] ; (8012bf0 ) 8012a92: 4293 cmp r3, r2 8012a94: d037 beq.n 8012b06 8012a96: 687b ldr r3, [r7, #4] 8012a98: 4a56 ldr r2, [pc, #344] ; (8012bf4 ) 8012a9a: 4293 cmp r3, r2 8012a9c: d031 beq.n 8012b02 8012a9e: 687b ldr r3, [r7, #4] 8012aa0: 4a55 ldr r2, [pc, #340] ; (8012bf8 ) 8012aa2: 4293 cmp r3, r2 8012aa4: d02b beq.n 8012afe 8012aa6: 687b ldr r3, [r7, #4] 8012aa8: 4a54 ldr r2, [pc, #336] ; (8012bfc ) 8012aaa: 4293 cmp r3, r2 8012aac: d025 beq.n 8012afa 8012aae: 687b ldr r3, [r7, #4] 8012ab0: 4a53 ldr r2, [pc, #332] ; (8012c00 ) 8012ab2: 4293 cmp r3, r2 8012ab4: d01f beq.n 8012af6 8012ab6: 687b ldr r3, [r7, #4] 8012ab8: 4a52 ldr r2, [pc, #328] ; (8012c04 ) 8012aba: 4293 cmp r3, r2 8012abc: d019 beq.n 8012af2 8012abe: 687b ldr r3, [r7, #4] 8012ac0: 4a51 ldr r2, [pc, #324] ; (8012c08 ) 8012ac2: 4293 cmp r3, r2 8012ac4: d013 beq.n 8012aee 8012ac6: 687b ldr r3, [r7, #4] 8012ac8: 4a50 ldr r2, [pc, #320] ; (8012c0c ) 8012aca: 4293 cmp r3, r2 8012acc: d00d beq.n 8012aea 8012ace: 687b ldr r3, [r7, #4] 8012ad0: 4a4f ldr r2, [pc, #316] ; (8012c10 ) 8012ad2: 4293 cmp r3, r2 8012ad4: d007 beq.n 8012ae6 8012ad6: 687b ldr r3, [r7, #4] 8012ad8: 4a4e ldr r2, [pc, #312] ; (8012c14 ) 8012ada: 4293 cmp r3, r2 8012adc: d101 bne.n 8012ae2 8012ade: 2309 movs r3, #9 8012ae0: e012 b.n 8012b08 8012ae2: 230a movs r3, #10 8012ae4: e010 b.n 8012b08 8012ae6: 2308 movs r3, #8 8012ae8: e00e b.n 8012b08 8012aea: 2307 movs r3, #7 8012aec: e00c b.n 8012b08 8012aee: 2306 movs r3, #6 8012af0: e00a b.n 8012b08 8012af2: 2305 movs r3, #5 8012af4: e008 b.n 8012b08 8012af6: 2304 movs r3, #4 8012af8: e006 b.n 8012b08 8012afa: 2303 movs r3, #3 8012afc: e004 b.n 8012b08 8012afe: 2302 movs r3, #2 8012b00: e002 b.n 8012b08 8012b02: 2301 movs r3, #1 8012b04: e000 b.n 8012b08 8012b06: 2300 movs r3, #0 8012b08: 69fa ldr r2, [r7, #28] 8012b0a: f002 0203 and.w r2, r2, #3 8012b0e: 0092 lsls r2, r2, #2 8012b10: 4093 lsls r3, r2 8012b12: 69ba ldr r2, [r7, #24] 8012b14: 4313 orrs r3, r2 8012b16: 61bb str r3, [r7, #24] SYSCFG->EXTICR[position >> 2] = temp; 8012b18: 4934 ldr r1, [pc, #208] ; (8012bec ) 8012b1a: 69fb ldr r3, [r7, #28] 8012b1c: 089b lsrs r3, r3, #2 8012b1e: 3302 adds r3, #2 8012b20: 69ba ldr r2, [r7, #24] 8012b22: f841 2023 str.w r2, [r1, r3, lsl #2] /* Clear Rising Falling edge configuration */ temp = EXTI->RTSR; 8012b26: 4b3c ldr r3, [pc, #240] ; (8012c18 ) 8012b28: 689b ldr r3, [r3, #8] 8012b2a: 61bb str r3, [r7, #24] temp &= ~((uint32_t)iocurrent); 8012b2c: 693b ldr r3, [r7, #16] 8012b2e: 43db mvns r3, r3 8012b30: 69ba ldr r2, [r7, #24] 8012b32: 4013 ands r3, r2 8012b34: 61bb str r3, [r7, #24] if((GPIO_Init->Mode & TRIGGER_RISING) != 0x00u) 8012b36: 683b ldr r3, [r7, #0] 8012b38: 685b ldr r3, [r3, #4] 8012b3a: f403 1380 and.w r3, r3, #1048576 ; 0x100000 8012b3e: 2b00 cmp r3, #0 8012b40: d003 beq.n 8012b4a { temp |= iocurrent; 8012b42: 69ba ldr r2, [r7, #24] 8012b44: 693b ldr r3, [r7, #16] 8012b46: 4313 orrs r3, r2 8012b48: 61bb str r3, [r7, #24] } EXTI->RTSR = temp; 8012b4a: 4a33 ldr r2, [pc, #204] ; (8012c18 ) 8012b4c: 69bb ldr r3, [r7, #24] 8012b4e: 6093 str r3, [r2, #8] temp = EXTI->FTSR; 8012b50: 4b31 ldr r3, [pc, #196] ; (8012c18 ) 8012b52: 68db ldr r3, [r3, #12] 8012b54: 61bb str r3, [r7, #24] temp &= ~((uint32_t)iocurrent); 8012b56: 693b ldr r3, [r7, #16] 8012b58: 43db mvns r3, r3 8012b5a: 69ba ldr r2, [r7, #24] 8012b5c: 4013 ands r3, r2 8012b5e: 61bb str r3, [r7, #24] if((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00u) 8012b60: 683b ldr r3, [r7, #0] 8012b62: 685b ldr r3, [r3, #4] 8012b64: f403 1300 and.w r3, r3, #2097152 ; 0x200000 8012b68: 2b00 cmp r3, #0 8012b6a: d003 beq.n 8012b74 { temp |= iocurrent; 8012b6c: 69ba ldr r2, [r7, #24] 8012b6e: 693b ldr r3, [r7, #16] 8012b70: 4313 orrs r3, r2 8012b72: 61bb str r3, [r7, #24] } EXTI->FTSR = temp; 8012b74: 4a28 ldr r2, [pc, #160] ; (8012c18 ) 8012b76: 69bb ldr r3, [r7, #24] 8012b78: 60d3 str r3, [r2, #12] temp = EXTI->EMR; 8012b7a: 4b27 ldr r3, [pc, #156] ; (8012c18 ) 8012b7c: 685b ldr r3, [r3, #4] 8012b7e: 61bb str r3, [r7, #24] temp &= ~((uint32_t)iocurrent); 8012b80: 693b ldr r3, [r7, #16] 8012b82: 43db mvns r3, r3 8012b84: 69ba ldr r2, [r7, #24] 8012b86: 4013 ands r3, r2 8012b88: 61bb str r3, [r7, #24] if((GPIO_Init->Mode & EXTI_EVT) != 0x00u) 8012b8a: 683b ldr r3, [r7, #0] 8012b8c: 685b ldr r3, [r3, #4] 8012b8e: f403 3300 and.w r3, r3, #131072 ; 0x20000 8012b92: 2b00 cmp r3, #0 8012b94: d003 beq.n 8012b9e { temp |= iocurrent; 8012b96: 69ba ldr r2, [r7, #24] 8012b98: 693b ldr r3, [r7, #16] 8012b9a: 4313 orrs r3, r2 8012b9c: 61bb str r3, [r7, #24] } EXTI->EMR = temp; 8012b9e: 4a1e ldr r2, [pc, #120] ; (8012c18 ) 8012ba0: 69bb ldr r3, [r7, #24] 8012ba2: 6053 str r3, [r2, #4] /* Clear EXTI line configuration */ temp = EXTI->IMR; 8012ba4: 4b1c ldr r3, [pc, #112] ; (8012c18 ) 8012ba6: 681b ldr r3, [r3, #0] 8012ba8: 61bb str r3, [r7, #24] temp &= ~((uint32_t)iocurrent); 8012baa: 693b ldr r3, [r7, #16] 8012bac: 43db mvns r3, r3 8012bae: 69ba ldr r2, [r7, #24] 8012bb0: 4013 ands r3, r2 8012bb2: 61bb str r3, [r7, #24] if((GPIO_Init->Mode & EXTI_IT) != 0x00u) 8012bb4: 683b ldr r3, [r7, #0] 8012bb6: 685b ldr r3, [r3, #4] 8012bb8: f403 3380 and.w r3, r3, #65536 ; 0x10000 8012bbc: 2b00 cmp r3, #0 8012bbe: d003 beq.n 8012bc8 { temp |= iocurrent; 8012bc0: 69ba ldr r2, [r7, #24] 8012bc2: 693b ldr r3, [r7, #16] 8012bc4: 4313 orrs r3, r2 8012bc6: 61bb str r3, [r7, #24] } EXTI->IMR = temp; 8012bc8: 4a13 ldr r2, [pc, #76] ; (8012c18 ) 8012bca: 69bb ldr r3, [r7, #24] 8012bcc: 6013 str r3, [r2, #0] for(position = 0; position < GPIO_NUMBER; position++) 8012bce: 69fb ldr r3, [r7, #28] 8012bd0: 3301 adds r3, #1 8012bd2: 61fb str r3, [r7, #28] 8012bd4: 69fb ldr r3, [r7, #28] 8012bd6: 2b0f cmp r3, #15 8012bd8: f67f ae86 bls.w 80128e8 } } } } 8012bdc: bf00 nop 8012bde: 3724 adds r7, #36 ; 0x24 8012be0: 46bd mov sp, r7 8012be2: f85d 7b04 ldr.w r7, [sp], #4 8012be6: 4770 bx lr 8012be8: 40023800 .word 0x40023800 8012bec: 40013800 .word 0x40013800 8012bf0: 40020000 .word 0x40020000 8012bf4: 40020400 .word 0x40020400 8012bf8: 40020800 .word 0x40020800 8012bfc: 40020c00 .word 0x40020c00 8012c00: 40021000 .word 0x40021000 8012c04: 40021400 .word 0x40021400 8012c08: 40021800 .word 0x40021800 8012c0c: 40021c00 .word 0x40021c00 8012c10: 40022000 .word 0x40022000 8012c14: 40022400 .word 0x40022400 8012c18: 40013c00 .word 0x40013c00 08012c1c : * @param GPIO_Pin specifies the port bit to read. * This parameter can be GPIO_PIN_x where x can be (0..15). * @retval The input port pin value. */ GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) { 8012c1c: b480 push {r7} 8012c1e: b085 sub sp, #20 8012c20: af00 add r7, sp, #0 8012c22: 6078 str r0, [r7, #4] 8012c24: 460b mov r3, r1 8012c26: 807b strh r3, [r7, #2] GPIO_PinState bitstatus; /* Check the parameters */ assert_param(IS_GPIO_PIN(GPIO_Pin)); if((GPIOx->IDR & GPIO_Pin) != (uint32_t)GPIO_PIN_RESET) 8012c28: 687b ldr r3, [r7, #4] 8012c2a: 691a ldr r2, [r3, #16] 8012c2c: 887b ldrh r3, [r7, #2] 8012c2e: 4013 ands r3, r2 8012c30: 2b00 cmp r3, #0 8012c32: d002 beq.n 8012c3a { bitstatus = GPIO_PIN_SET; 8012c34: 2301 movs r3, #1 8012c36: 73fb strb r3, [r7, #15] 8012c38: e001 b.n 8012c3e } else { bitstatus = GPIO_PIN_RESET; 8012c3a: 2300 movs r3, #0 8012c3c: 73fb strb r3, [r7, #15] } return bitstatus; 8012c3e: 7bfb ldrb r3, [r7, #15] } 8012c40: 4618 mov r0, r3 8012c42: 3714 adds r7, #20 8012c44: 46bd mov sp, r7 8012c46: f85d 7b04 ldr.w r7, [sp], #4 8012c4a: 4770 bx lr 08012c4c : * @arg GPIO_PIN_RESET: to clear the port pin * @arg GPIO_PIN_SET: to set the port pin * @retval None */ void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState) { 8012c4c: b480 push {r7} 8012c4e: b083 sub sp, #12 8012c50: af00 add r7, sp, #0 8012c52: 6078 str r0, [r7, #4] 8012c54: 460b mov r3, r1 8012c56: 807b strh r3, [r7, #2] 8012c58: 4613 mov r3, r2 8012c5a: 707b strb r3, [r7, #1] /* Check the parameters */ assert_param(IS_GPIO_PIN(GPIO_Pin)); assert_param(IS_GPIO_PIN_ACTION(PinState)); if(PinState != GPIO_PIN_RESET) 8012c5c: 787b ldrb r3, [r7, #1] 8012c5e: 2b00 cmp r3, #0 8012c60: d003 beq.n 8012c6a { GPIOx->BSRR = GPIO_Pin; 8012c62: 887a ldrh r2, [r7, #2] 8012c64: 687b ldr r3, [r7, #4] 8012c66: 619a str r2, [r3, #24] } else { GPIOx->BSRR = (uint32_t)GPIO_Pin << 16; } } 8012c68: e003 b.n 8012c72 GPIOx->BSRR = (uint32_t)GPIO_Pin << 16; 8012c6a: 887b ldrh r3, [r7, #2] 8012c6c: 041a lsls r2, r3, #16 8012c6e: 687b ldr r3, [r7, #4] 8012c70: 619a str r2, [r3, #24] } 8012c72: bf00 nop 8012c74: 370c adds r7, #12 8012c76: 46bd mov sp, r7 8012c78: f85d 7b04 ldr.w r7, [sp], #4 8012c7c: 4770 bx lr ... 08012c80 : * @brief This function handles EXTI interrupt request. * @param GPIO_Pin Specifies the pins connected EXTI line * @retval None */ void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin) { 8012c80: b580 push {r7, lr} 8012c82: b082 sub sp, #8 8012c84: af00 add r7, sp, #0 8012c86: 4603 mov r3, r0 8012c88: 80fb strh r3, [r7, #6] /* EXTI line interrupt detected */ if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET) 8012c8a: 4b08 ldr r3, [pc, #32] ; (8012cac ) 8012c8c: 695a ldr r2, [r3, #20] 8012c8e: 88fb ldrh r3, [r7, #6] 8012c90: 4013 ands r3, r2 8012c92: 2b00 cmp r3, #0 8012c94: d006 beq.n 8012ca4 { __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin); 8012c96: 4a05 ldr r2, [pc, #20] ; (8012cac ) 8012c98: 88fb ldrh r3, [r7, #6] 8012c9a: 6153 str r3, [r2, #20] HAL_GPIO_EXTI_Callback(GPIO_Pin); 8012c9c: 88fb ldrh r3, [r7, #6] 8012c9e: 4618 mov r0, r3 8012ca0: f7f3 f910 bl 8005ec4 } } 8012ca4: bf00 nop 8012ca6: 3708 adds r7, #8 8012ca8: 46bd mov sp, r7 8012caa: bd80 pop {r7, pc} 8012cac: 40013c00 .word 0x40013c00 08012cb0 : * @param hltdc pointer to a LTDC_HandleTypeDef structure that contains * the configuration information for the LTDC. * @retval HAL status */ HAL_StatusTypeDef HAL_LTDC_Init(LTDC_HandleTypeDef *hltdc) { 8012cb0: b580 push {r7, lr} 8012cb2: b084 sub sp, #16 8012cb4: af00 add r7, sp, #0 8012cb6: 6078 str r0, [r7, #4] uint32_t tmp, tmp1; /* Check the LTDC peripheral state */ if (hltdc == NULL) 8012cb8: 687b ldr r3, [r7, #4] 8012cba: 2b00 cmp r3, #0 8012cbc: d101 bne.n 8012cc2 { return HAL_ERROR; 8012cbe: 2301 movs r3, #1 8012cc0: e0bf b.n 8012e42 } /* Init the low level hardware */ hltdc->MspInitCallback(hltdc); } #else if (hltdc->State == HAL_LTDC_STATE_RESET) 8012cc2: 687b ldr r3, [r7, #4] 8012cc4: f893 30a1 ldrb.w r3, [r3, #161] ; 0xa1 8012cc8: b2db uxtb r3, r3 8012cca: 2b00 cmp r3, #0 8012ccc: d106 bne.n 8012cdc { /* Allocate lock resource and initialize it */ hltdc->Lock = HAL_UNLOCKED; 8012cce: 687b ldr r3, [r7, #4] 8012cd0: 2200 movs r2, #0 8012cd2: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 /* Init the low level hardware */ HAL_LTDC_MspInit(hltdc); 8012cd6: 6878 ldr r0, [r7, #4] 8012cd8: f7f1 ff10 bl 8004afc } #endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */ /* Change LTDC peripheral state */ hltdc->State = HAL_LTDC_STATE_BUSY; 8012cdc: 687b ldr r3, [r7, #4] 8012cde: 2202 movs r2, #2 8012ce0: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Configure the HS, VS, DE and PC polarity */ hltdc->Instance->GCR &= ~(LTDC_GCR_HSPOL | LTDC_GCR_VSPOL | LTDC_GCR_DEPOL | LTDC_GCR_PCPOL); 8012ce4: 687b ldr r3, [r7, #4] 8012ce6: 681b ldr r3, [r3, #0] 8012ce8: 687a ldr r2, [r7, #4] 8012cea: 6812 ldr r2, [r2, #0] 8012cec: 6992 ldr r2, [r2, #24] 8012cee: f022 4270 bic.w r2, r2, #4026531840 ; 0xf0000000 8012cf2: 619a str r2, [r3, #24] hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \ 8012cf4: 687b ldr r3, [r7, #4] 8012cf6: 681b ldr r3, [r3, #0] 8012cf8: 687a ldr r2, [r7, #4] 8012cfa: 6812 ldr r2, [r2, #0] 8012cfc: 6991 ldr r1, [r2, #24] 8012cfe: 687a ldr r2, [r7, #4] 8012d00: 6850 ldr r0, [r2, #4] 8012d02: 687a ldr r2, [r7, #4] 8012d04: 6892 ldr r2, [r2, #8] 8012d06: 4310 orrs r0, r2 hltdc->Init.DEPolarity | hltdc->Init.PCPolarity); 8012d08: 687a ldr r2, [r7, #4] 8012d0a: 68d2 ldr r2, [r2, #12] hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \ 8012d0c: 4310 orrs r0, r2 hltdc->Init.DEPolarity | hltdc->Init.PCPolarity); 8012d0e: 687a ldr r2, [r7, #4] 8012d10: 6912 ldr r2, [r2, #16] 8012d12: 4302 orrs r2, r0 hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \ 8012d14: 430a orrs r2, r1 8012d16: 619a str r2, [r3, #24] /* Set Synchronization size */ hltdc->Instance->SSCR &= ~(LTDC_SSCR_VSH | LTDC_SSCR_HSW); 8012d18: 687b ldr r3, [r7, #4] 8012d1a: 681a ldr r2, [r3, #0] 8012d1c: 687b ldr r3, [r7, #4] 8012d1e: 681b ldr r3, [r3, #0] 8012d20: 6899 ldr r1, [r3, #8] 8012d22: 4b4a ldr r3, [pc, #296] ; (8012e4c ) 8012d24: 400b ands r3, r1 8012d26: 6093 str r3, [r2, #8] tmp = (hltdc->Init.HorizontalSync << 16U); 8012d28: 687b ldr r3, [r7, #4] 8012d2a: 695b ldr r3, [r3, #20] 8012d2c: 041b lsls r3, r3, #16 8012d2e: 60fb str r3, [r7, #12] hltdc->Instance->SSCR |= (tmp | hltdc->Init.VerticalSync); 8012d30: 687b ldr r3, [r7, #4] 8012d32: 681b ldr r3, [r3, #0] 8012d34: 687a ldr r2, [r7, #4] 8012d36: 6812 ldr r2, [r2, #0] 8012d38: 6891 ldr r1, [r2, #8] 8012d3a: 687a ldr r2, [r7, #4] 8012d3c: 6990 ldr r0, [r2, #24] 8012d3e: 68fa ldr r2, [r7, #12] 8012d40: 4302 orrs r2, r0 8012d42: 430a orrs r2, r1 8012d44: 609a str r2, [r3, #8] /* Set Accumulated Back porch */ hltdc->Instance->BPCR &= ~(LTDC_BPCR_AVBP | LTDC_BPCR_AHBP); 8012d46: 687b ldr r3, [r7, #4] 8012d48: 681a ldr r2, [r3, #0] 8012d4a: 687b ldr r3, [r7, #4] 8012d4c: 681b ldr r3, [r3, #0] 8012d4e: 68d9 ldr r1, [r3, #12] 8012d50: 4b3e ldr r3, [pc, #248] ; (8012e4c ) 8012d52: 400b ands r3, r1 8012d54: 60d3 str r3, [r2, #12] tmp = (hltdc->Init.AccumulatedHBP << 16U); 8012d56: 687b ldr r3, [r7, #4] 8012d58: 69db ldr r3, [r3, #28] 8012d5a: 041b lsls r3, r3, #16 8012d5c: 60fb str r3, [r7, #12] hltdc->Instance->BPCR |= (tmp | hltdc->Init.AccumulatedVBP); 8012d5e: 687b ldr r3, [r7, #4] 8012d60: 681b ldr r3, [r3, #0] 8012d62: 687a ldr r2, [r7, #4] 8012d64: 6812 ldr r2, [r2, #0] 8012d66: 68d1 ldr r1, [r2, #12] 8012d68: 687a ldr r2, [r7, #4] 8012d6a: 6a10 ldr r0, [r2, #32] 8012d6c: 68fa ldr r2, [r7, #12] 8012d6e: 4302 orrs r2, r0 8012d70: 430a orrs r2, r1 8012d72: 60da str r2, [r3, #12] /* Set Accumulated Active Width */ hltdc->Instance->AWCR &= ~(LTDC_AWCR_AAH | LTDC_AWCR_AAW); 8012d74: 687b ldr r3, [r7, #4] 8012d76: 681a ldr r2, [r3, #0] 8012d78: 687b ldr r3, [r7, #4] 8012d7a: 681b ldr r3, [r3, #0] 8012d7c: 6919 ldr r1, [r3, #16] 8012d7e: 4b33 ldr r3, [pc, #204] ; (8012e4c ) 8012d80: 400b ands r3, r1 8012d82: 6113 str r3, [r2, #16] tmp = (hltdc->Init.AccumulatedActiveW << 16U); 8012d84: 687b ldr r3, [r7, #4] 8012d86: 6a5b ldr r3, [r3, #36] ; 0x24 8012d88: 041b lsls r3, r3, #16 8012d8a: 60fb str r3, [r7, #12] hltdc->Instance->AWCR |= (tmp | hltdc->Init.AccumulatedActiveH); 8012d8c: 687b ldr r3, [r7, #4] 8012d8e: 681b ldr r3, [r3, #0] 8012d90: 687a ldr r2, [r7, #4] 8012d92: 6812 ldr r2, [r2, #0] 8012d94: 6911 ldr r1, [r2, #16] 8012d96: 687a ldr r2, [r7, #4] 8012d98: 6a90 ldr r0, [r2, #40] ; 0x28 8012d9a: 68fa ldr r2, [r7, #12] 8012d9c: 4302 orrs r2, r0 8012d9e: 430a orrs r2, r1 8012da0: 611a str r2, [r3, #16] /* Set Total Width */ hltdc->Instance->TWCR &= ~(LTDC_TWCR_TOTALH | LTDC_TWCR_TOTALW); 8012da2: 687b ldr r3, [r7, #4] 8012da4: 681a ldr r2, [r3, #0] 8012da6: 687b ldr r3, [r7, #4] 8012da8: 681b ldr r3, [r3, #0] 8012daa: 6959 ldr r1, [r3, #20] 8012dac: 4b27 ldr r3, [pc, #156] ; (8012e4c ) 8012dae: 400b ands r3, r1 8012db0: 6153 str r3, [r2, #20] tmp = (hltdc->Init.TotalWidth << 16U); 8012db2: 687b ldr r3, [r7, #4] 8012db4: 6adb ldr r3, [r3, #44] ; 0x2c 8012db6: 041b lsls r3, r3, #16 8012db8: 60fb str r3, [r7, #12] hltdc->Instance->TWCR |= (tmp | hltdc->Init.TotalHeigh); 8012dba: 687b ldr r3, [r7, #4] 8012dbc: 681b ldr r3, [r3, #0] 8012dbe: 687a ldr r2, [r7, #4] 8012dc0: 6812 ldr r2, [r2, #0] 8012dc2: 6951 ldr r1, [r2, #20] 8012dc4: 687a ldr r2, [r7, #4] 8012dc6: 6b10 ldr r0, [r2, #48] ; 0x30 8012dc8: 68fa ldr r2, [r7, #12] 8012dca: 4302 orrs r2, r0 8012dcc: 430a orrs r2, r1 8012dce: 615a str r2, [r3, #20] /* Set the background color value */ tmp = ((uint32_t)(hltdc->Init.Backcolor.Green) << 8U); 8012dd0: 687b ldr r3, [r7, #4] 8012dd2: f893 3035 ldrb.w r3, [r3, #53] ; 0x35 8012dd6: 021b lsls r3, r3, #8 8012dd8: 60fb str r3, [r7, #12] tmp1 = ((uint32_t)(hltdc->Init.Backcolor.Red) << 16U); 8012dda: 687b ldr r3, [r7, #4] 8012ddc: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 8012de0: 041b lsls r3, r3, #16 8012de2: 60bb str r3, [r7, #8] hltdc->Instance->BCCR &= ~(LTDC_BCCR_BCBLUE | LTDC_BCCR_BCGREEN | LTDC_BCCR_BCRED); 8012de4: 687b ldr r3, [r7, #4] 8012de6: 681b ldr r3, [r3, #0] 8012de8: 687a ldr r2, [r7, #4] 8012dea: 6812 ldr r2, [r2, #0] 8012dec: 6ad2 ldr r2, [r2, #44] ; 0x2c 8012dee: f002 427f and.w r2, r2, #4278190080 ; 0xff000000 8012df2: 62da str r2, [r3, #44] ; 0x2c hltdc->Instance->BCCR |= (tmp1 | tmp | hltdc->Init.Backcolor.Blue); 8012df4: 687b ldr r3, [r7, #4] 8012df6: 681b ldr r3, [r3, #0] 8012df8: 687a ldr r2, [r7, #4] 8012dfa: 6812 ldr r2, [r2, #0] 8012dfc: 6ad1 ldr r1, [r2, #44] ; 0x2c 8012dfe: 68b8 ldr r0, [r7, #8] 8012e00: 68fa ldr r2, [r7, #12] 8012e02: 4302 orrs r2, r0 8012e04: 6878 ldr r0, [r7, #4] 8012e06: f890 0034 ldrb.w r0, [r0, #52] ; 0x34 8012e0a: 4302 orrs r2, r0 8012e0c: 430a orrs r2, r1 8012e0e: 62da str r2, [r3, #44] ; 0x2c /* Enable the Transfer Error and FIFO underrun interrupts */ __HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_TE | LTDC_IT_FU); 8012e10: 687b ldr r3, [r7, #4] 8012e12: 681b ldr r3, [r3, #0] 8012e14: 687a ldr r2, [r7, #4] 8012e16: 6812 ldr r2, [r2, #0] 8012e18: 6b52 ldr r2, [r2, #52] ; 0x34 8012e1a: f042 0206 orr.w r2, r2, #6 8012e1e: 635a str r2, [r3, #52] ; 0x34 /* Enable LTDC by setting LTDCEN bit */ __HAL_LTDC_ENABLE(hltdc); 8012e20: 687b ldr r3, [r7, #4] 8012e22: 681b ldr r3, [r3, #0] 8012e24: 687a ldr r2, [r7, #4] 8012e26: 6812 ldr r2, [r2, #0] 8012e28: 6992 ldr r2, [r2, #24] 8012e2a: f042 0201 orr.w r2, r2, #1 8012e2e: 619a str r2, [r3, #24] /* Initialize the error code */ hltdc->ErrorCode = HAL_LTDC_ERROR_NONE; 8012e30: 687b ldr r3, [r7, #4] 8012e32: 2200 movs r2, #0 8012e34: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4 /* Initialize the LTDC state*/ hltdc->State = HAL_LTDC_STATE_READY; 8012e38: 687b ldr r3, [r7, #4] 8012e3a: 2201 movs r2, #1 8012e3c: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 return HAL_OK; 8012e40: 2300 movs r3, #0 } 8012e42: 4618 mov r0, r3 8012e44: 3710 adds r7, #16 8012e46: 46bd mov sp, r7 8012e48: bd80 pop {r7, pc} 8012e4a: bf00 nop 8012e4c: f000f800 .word 0xf000f800 08012e50 : * @param hltdc pointer to a LTDC_HandleTypeDef structure that contains * the configuration information for the LTDC. * @retval HAL status */ void HAL_LTDC_IRQHandler(LTDC_HandleTypeDef *hltdc) { 8012e50: b580 push {r7, lr} 8012e52: b084 sub sp, #16 8012e54: af00 add r7, sp, #0 8012e56: 6078 str r0, [r7, #4] uint32_t isrflags = READ_REG(hltdc->Instance->ISR); 8012e58: 687b ldr r3, [r7, #4] 8012e5a: 681b ldr r3, [r3, #0] 8012e5c: 6b9b ldr r3, [r3, #56] ; 0x38 8012e5e: 60fb str r3, [r7, #12] uint32_t itsources = READ_REG(hltdc->Instance->IER); 8012e60: 687b ldr r3, [r7, #4] 8012e62: 681b ldr r3, [r3, #0] 8012e64: 6b5b ldr r3, [r3, #52] ; 0x34 8012e66: 60bb str r3, [r7, #8] /* Transfer Error Interrupt management ***************************************/ if (((isrflags & LTDC_ISR_TERRIF) != 0U) && ((itsources & LTDC_IER_TERRIE) != 0U)) 8012e68: 68fb ldr r3, [r7, #12] 8012e6a: f003 0304 and.w r3, r3, #4 8012e6e: 2b00 cmp r3, #0 8012e70: d023 beq.n 8012eba 8012e72: 68bb ldr r3, [r7, #8] 8012e74: f003 0304 and.w r3, r3, #4 8012e78: 2b00 cmp r3, #0 8012e7a: d01e beq.n 8012eba { /* Disable the transfer Error interrupt */ __HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_TE); 8012e7c: 687b ldr r3, [r7, #4] 8012e7e: 681b ldr r3, [r3, #0] 8012e80: 687a ldr r2, [r7, #4] 8012e82: 6812 ldr r2, [r2, #0] 8012e84: 6b52 ldr r2, [r2, #52] ; 0x34 8012e86: f022 0204 bic.w r2, r2, #4 8012e8a: 635a str r2, [r3, #52] ; 0x34 /* Clear the transfer error flag */ __HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_TE); 8012e8c: 687b ldr r3, [r7, #4] 8012e8e: 681b ldr r3, [r3, #0] 8012e90: 2204 movs r2, #4 8012e92: 63da str r2, [r3, #60] ; 0x3c /* Update error code */ hltdc->ErrorCode |= HAL_LTDC_ERROR_TE; 8012e94: 687b ldr r3, [r7, #4] 8012e96: f8d3 30a4 ldr.w r3, [r3, #164] ; 0xa4 8012e9a: f043 0201 orr.w r2, r3, #1 8012e9e: 687b ldr r3, [r7, #4] 8012ea0: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4 /* Change LTDC state */ hltdc->State = HAL_LTDC_STATE_ERROR; 8012ea4: 687b ldr r3, [r7, #4] 8012ea6: 2204 movs r2, #4 8012ea8: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Process unlocked */ __HAL_UNLOCK(hltdc); 8012eac: 687b ldr r3, [r7, #4] 8012eae: 2200 movs r2, #0 8012eb0: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1) /*Call registered error callback*/ hltdc->ErrorCallback(hltdc); #else /* Call legacy error callback*/ HAL_LTDC_ErrorCallback(hltdc); 8012eb4: 6878 ldr r0, [r7, #4] 8012eb6: f000 f86f bl 8012f98 #endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */ } /* FIFO underrun Interrupt management ***************************************/ if (((isrflags & LTDC_ISR_FUIF) != 0U) && ((itsources & LTDC_IER_FUIE) != 0U)) 8012eba: 68fb ldr r3, [r7, #12] 8012ebc: f003 0302 and.w r3, r3, #2 8012ec0: 2b00 cmp r3, #0 8012ec2: d023 beq.n 8012f0c 8012ec4: 68bb ldr r3, [r7, #8] 8012ec6: f003 0302 and.w r3, r3, #2 8012eca: 2b00 cmp r3, #0 8012ecc: d01e beq.n 8012f0c { /* Disable the FIFO underrun interrupt */ __HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_FU); 8012ece: 687b ldr r3, [r7, #4] 8012ed0: 681b ldr r3, [r3, #0] 8012ed2: 687a ldr r2, [r7, #4] 8012ed4: 6812 ldr r2, [r2, #0] 8012ed6: 6b52 ldr r2, [r2, #52] ; 0x34 8012ed8: f022 0202 bic.w r2, r2, #2 8012edc: 635a str r2, [r3, #52] ; 0x34 /* Clear the FIFO underrun flag */ __HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_FU); 8012ede: 687b ldr r3, [r7, #4] 8012ee0: 681b ldr r3, [r3, #0] 8012ee2: 2202 movs r2, #2 8012ee4: 63da str r2, [r3, #60] ; 0x3c /* Update error code */ hltdc->ErrorCode |= HAL_LTDC_ERROR_FU; 8012ee6: 687b ldr r3, [r7, #4] 8012ee8: f8d3 30a4 ldr.w r3, [r3, #164] ; 0xa4 8012eec: f043 0202 orr.w r2, r3, #2 8012ef0: 687b ldr r3, [r7, #4] 8012ef2: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4 /* Change LTDC state */ hltdc->State = HAL_LTDC_STATE_ERROR; 8012ef6: 687b ldr r3, [r7, #4] 8012ef8: 2204 movs r2, #4 8012efa: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Process unlocked */ __HAL_UNLOCK(hltdc); 8012efe: 687b ldr r3, [r7, #4] 8012f00: 2200 movs r2, #0 8012f02: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1) /*Call registered error callback*/ hltdc->ErrorCallback(hltdc); #else /* Call legacy error callback*/ HAL_LTDC_ErrorCallback(hltdc); 8012f06: 6878 ldr r0, [r7, #4] 8012f08: f000 f846 bl 8012f98 #endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */ } /* Line Interrupt management ************************************************/ if (((isrflags & LTDC_ISR_LIF) != 0U) && ((itsources & LTDC_IER_LIE) != 0U)) 8012f0c: 68fb ldr r3, [r7, #12] 8012f0e: f003 0301 and.w r3, r3, #1 8012f12: 2b00 cmp r3, #0 8012f14: d01b beq.n 8012f4e 8012f16: 68bb ldr r3, [r7, #8] 8012f18: f003 0301 and.w r3, r3, #1 8012f1c: 2b00 cmp r3, #0 8012f1e: d016 beq.n 8012f4e { /* Disable the Line interrupt */ __HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_LI); 8012f20: 687b ldr r3, [r7, #4] 8012f22: 681b ldr r3, [r3, #0] 8012f24: 687a ldr r2, [r7, #4] 8012f26: 6812 ldr r2, [r2, #0] 8012f28: 6b52 ldr r2, [r2, #52] ; 0x34 8012f2a: f022 0201 bic.w r2, r2, #1 8012f2e: 635a str r2, [r3, #52] ; 0x34 /* Clear the Line interrupt flag */ __HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_LI); 8012f30: 687b ldr r3, [r7, #4] 8012f32: 681b ldr r3, [r3, #0] 8012f34: 2201 movs r2, #1 8012f36: 63da str r2, [r3, #60] ; 0x3c /* Change LTDC state */ hltdc->State = HAL_LTDC_STATE_READY; 8012f38: 687b ldr r3, [r7, #4] 8012f3a: 2201 movs r2, #1 8012f3c: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Process unlocked */ __HAL_UNLOCK(hltdc); 8012f40: 687b ldr r3, [r7, #4] 8012f42: 2200 movs r2, #0 8012f44: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1) /*Call registered Line Event callback */ hltdc->LineEventCallback(hltdc); #else /*Call Legacy Line Event callback */ HAL_LTDC_LineEventCallback(hltdc); 8012f48: 6878 ldr r0, [r7, #4] 8012f4a: f7f2 fdf1 bl 8005b30 #endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */ } /* Register reload Interrupt management ***************************************/ if (((isrflags & LTDC_ISR_RRIF) != 0U) && ((itsources & LTDC_IER_RRIE) != 0U)) 8012f4e: 68fb ldr r3, [r7, #12] 8012f50: f003 0308 and.w r3, r3, #8 8012f54: 2b00 cmp r3, #0 8012f56: d01b beq.n 8012f90 8012f58: 68bb ldr r3, [r7, #8] 8012f5a: f003 0308 and.w r3, r3, #8 8012f5e: 2b00 cmp r3, #0 8012f60: d016 beq.n 8012f90 { /* Disable the register reload interrupt */ __HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_RR); 8012f62: 687b ldr r3, [r7, #4] 8012f64: 681b ldr r3, [r3, #0] 8012f66: 687a ldr r2, [r7, #4] 8012f68: 6812 ldr r2, [r2, #0] 8012f6a: 6b52 ldr r2, [r2, #52] ; 0x34 8012f6c: f022 0208 bic.w r2, r2, #8 8012f70: 635a str r2, [r3, #52] ; 0x34 /* Clear the register reload flag */ __HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_RR); 8012f72: 687b ldr r3, [r7, #4] 8012f74: 681b ldr r3, [r3, #0] 8012f76: 2208 movs r2, #8 8012f78: 63da str r2, [r3, #60] ; 0x3c /* Change LTDC state */ hltdc->State = HAL_LTDC_STATE_READY; 8012f7a: 687b ldr r3, [r7, #4] 8012f7c: 2201 movs r2, #1 8012f7e: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Process unlocked */ __HAL_UNLOCK(hltdc); 8012f82: 687b ldr r3, [r7, #4] 8012f84: 2200 movs r2, #0 8012f86: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1) /*Call registered reload Event callback */ hltdc->ReloadEventCallback(hltdc); #else /*Call Legacy Reload Event callback */ HAL_LTDC_ReloadEventCallback(hltdc); 8012f8a: 6878 ldr r0, [r7, #4] 8012f8c: f000 f80e bl 8012fac #endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */ } } 8012f90: bf00 nop 8012f92: 3710 adds r7, #16 8012f94: 46bd mov sp, r7 8012f96: bd80 pop {r7, pc} 08012f98 : * @param hltdc pointer to a LTDC_HandleTypeDef structure that contains * the configuration information for the LTDC. * @retval None */ __weak void HAL_LTDC_ErrorCallback(LTDC_HandleTypeDef *hltdc) { 8012f98: b480 push {r7} 8012f9a: b083 sub sp, #12 8012f9c: af00 add r7, sp, #0 8012f9e: 6078 str r0, [r7, #4] UNUSED(hltdc); /* NOTE : This function should not be modified, when the callback is needed, the HAL_LTDC_ErrorCallback could be implemented in the user file */ } 8012fa0: bf00 nop 8012fa2: 370c adds r7, #12 8012fa4: 46bd mov sp, r7 8012fa6: f85d 7b04 ldr.w r7, [sp], #4 8012faa: 4770 bx lr 08012fac : * @param hltdc pointer to a LTDC_HandleTypeDef structure that contains * the configuration information for the LTDC. * @retval None */ __weak void HAL_LTDC_ReloadEventCallback(LTDC_HandleTypeDef *hltdc) { 8012fac: b480 push {r7} 8012fae: b083 sub sp, #12 8012fb0: af00 add r7, sp, #0 8012fb2: 6078 str r0, [r7, #4] UNUSED(hltdc); /* NOTE : This function should not be modified, when the callback is needed, the HAL_LTDC_ReloadEvenCallback could be implemented in the user file */ } 8012fb4: bf00 nop 8012fb6: 370c adds r7, #12 8012fb8: 46bd mov sp, r7 8012fba: f85d 7b04 ldr.w r7, [sp], #4 8012fbe: 4770 bx lr 08012fc0 : * This parameter can be one of the following values: * LTDC_LAYER_1 (0) or LTDC_LAYER_2 (1) * @retval HAL status */ HAL_StatusTypeDef HAL_LTDC_ConfigLayer(LTDC_HandleTypeDef *hltdc, LTDC_LayerCfgTypeDef *pLayerCfg, uint32_t LayerIdx) { 8012fc0: b5b0 push {r4, r5, r7, lr} 8012fc2: b084 sub sp, #16 8012fc4: af00 add r7, sp, #0 8012fc6: 60f8 str r0, [r7, #12] 8012fc8: 60b9 str r1, [r7, #8] 8012fca: 607a str r2, [r7, #4] assert_param(IS_LTDC_BLENDING_FACTOR2(pLayerCfg->BlendingFactor2)); assert_param(IS_LTDC_CFBLL(pLayerCfg->ImageWidth)); assert_param(IS_LTDC_CFBLNBR(pLayerCfg->ImageHeight)); /* Process locked */ __HAL_LOCK(hltdc); 8012fcc: 68fb ldr r3, [r7, #12] 8012fce: f893 30a0 ldrb.w r3, [r3, #160] ; 0xa0 8012fd2: 2b01 cmp r3, #1 8012fd4: d101 bne.n 8012fda 8012fd6: 2302 movs r3, #2 8012fd8: e02c b.n 8013034 8012fda: 68fb ldr r3, [r7, #12] 8012fdc: 2201 movs r2, #1 8012fde: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 /* Change LTDC peripheral state */ hltdc->State = HAL_LTDC_STATE_BUSY; 8012fe2: 68fb ldr r3, [r7, #12] 8012fe4: 2202 movs r2, #2 8012fe6: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Copy new layer configuration into handle structure */ hltdc->LayerCfg[LayerIdx] = *pLayerCfg; 8012fea: 68fa ldr r2, [r7, #12] 8012fec: 687b ldr r3, [r7, #4] 8012fee: 2134 movs r1, #52 ; 0x34 8012ff0: fb01 f303 mul.w r3, r1, r3 8012ff4: 4413 add r3, r2 8012ff6: f103 0238 add.w r2, r3, #56 ; 0x38 8012ffa: 68bb ldr r3, [r7, #8] 8012ffc: 4614 mov r4, r2 8012ffe: 461d mov r5, r3 8013000: cd0f ldmia r5!, {r0, r1, r2, r3} 8013002: c40f stmia r4!, {r0, r1, r2, r3} 8013004: cd0f ldmia r5!, {r0, r1, r2, r3} 8013006: c40f stmia r4!, {r0, r1, r2, r3} 8013008: cd0f ldmia r5!, {r0, r1, r2, r3} 801300a: c40f stmia r4!, {r0, r1, r2, r3} 801300c: 682b ldr r3, [r5, #0] 801300e: 6023 str r3, [r4, #0] /* Configure the LTDC Layer */ LTDC_SetConfig(hltdc, pLayerCfg, LayerIdx); 8013010: 687a ldr r2, [r7, #4] 8013012: 68b9 ldr r1, [r7, #8] 8013014: 68f8 ldr r0, [r7, #12] 8013016: f000 f879 bl 801310c /* Set the Immediate Reload type */ hltdc->Instance->SRCR = LTDC_SRCR_IMR; 801301a: 68fb ldr r3, [r7, #12] 801301c: 681b ldr r3, [r3, #0] 801301e: 2201 movs r2, #1 8013020: 625a str r2, [r3, #36] ; 0x24 /* Initialize the LTDC state*/ hltdc->State = HAL_LTDC_STATE_READY; 8013022: 68fb ldr r3, [r7, #12] 8013024: 2201 movs r2, #1 8013026: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Process unlocked */ __HAL_UNLOCK(hltdc); 801302a: 68fb ldr r3, [r7, #12] 801302c: 2200 movs r2, #0 801302e: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 return HAL_OK; 8013032: 2300 movs r3, #0 } 8013034: 4618 mov r0, r3 8013036: 3710 adds r7, #16 8013038: 46bd mov sp, r7 801303a: bdb0 pop {r4, r5, r7, pc} 0801303c : * @param Line Line Interrupt Position. * @note User application may resort to HAL_LTDC_LineEventCallback() at line interrupt generation. * @retval HAL status */ HAL_StatusTypeDef HAL_LTDC_ProgramLineEvent(LTDC_HandleTypeDef *hltdc, uint32_t Line) { 801303c: b480 push {r7} 801303e: b083 sub sp, #12 8013040: af00 add r7, sp, #0 8013042: 6078 str r0, [r7, #4] 8013044: 6039 str r1, [r7, #0] /* Check the parameters */ assert_param(IS_LTDC_LIPOS(Line)); /* Process locked */ __HAL_LOCK(hltdc); 8013046: 687b ldr r3, [r7, #4] 8013048: f893 30a0 ldrb.w r3, [r3, #160] ; 0xa0 801304c: 2b01 cmp r3, #1 801304e: d101 bne.n 8013054 8013050: 2302 movs r3, #2 8013052: e023 b.n 801309c 8013054: 687b ldr r3, [r7, #4] 8013056: 2201 movs r2, #1 8013058: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 /* Change LTDC peripheral state */ hltdc->State = HAL_LTDC_STATE_BUSY; 801305c: 687b ldr r3, [r7, #4] 801305e: 2202 movs r2, #2 8013060: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Disable the Line interrupt */ __HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_LI); 8013064: 687b ldr r3, [r7, #4] 8013066: 681b ldr r3, [r3, #0] 8013068: 687a ldr r2, [r7, #4] 801306a: 6812 ldr r2, [r2, #0] 801306c: 6b52 ldr r2, [r2, #52] ; 0x34 801306e: f022 0201 bic.w r2, r2, #1 8013072: 635a str r2, [r3, #52] ; 0x34 /* Set the Line Interrupt position */ LTDC->LIPCR = (uint32_t)Line; 8013074: 4a0c ldr r2, [pc, #48] ; (80130a8 ) 8013076: 683b ldr r3, [r7, #0] 8013078: 6413 str r3, [r2, #64] ; 0x40 /* Enable the Line interrupt */ __HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_LI); 801307a: 687b ldr r3, [r7, #4] 801307c: 681b ldr r3, [r3, #0] 801307e: 687a ldr r2, [r7, #4] 8013080: 6812 ldr r2, [r2, #0] 8013082: 6b52 ldr r2, [r2, #52] ; 0x34 8013084: f042 0201 orr.w r2, r2, #1 8013088: 635a str r2, [r3, #52] ; 0x34 /* Change the LTDC state*/ hltdc->State = HAL_LTDC_STATE_READY; 801308a: 687b ldr r3, [r7, #4] 801308c: 2201 movs r2, #1 801308e: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Process unlocked */ __HAL_UNLOCK(hltdc); 8013092: 687b ldr r3, [r7, #4] 8013094: 2200 movs r2, #0 8013096: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 return HAL_OK; 801309a: 2300 movs r3, #0 } 801309c: 4618 mov r0, r3 801309e: 370c adds r7, #12 80130a0: 46bd mov sp, r7 80130a2: f85d 7b04 ldr.w r7, [sp], #4 80130a6: 4770 bx lr 80130a8: 40016800 .word 0x40016800 080130ac : * LTDC_RELOAD_VERTICAL_BLANKING : Reload in the next Vertical Blanking * @note User application may resort to HAL_LTDC_ReloadEventCallback() at reload interrupt generation. * @retval HAL status */ HAL_StatusTypeDef HAL_LTDC_Reload(LTDC_HandleTypeDef *hltdc, uint32_t ReloadType) { 80130ac: b480 push {r7} 80130ae: b083 sub sp, #12 80130b0: af00 add r7, sp, #0 80130b2: 6078 str r0, [r7, #4] 80130b4: 6039 str r1, [r7, #0] /* Check the parameters */ assert_param(IS_LTDC_RELOAD(ReloadType)); /* Process locked */ __HAL_LOCK(hltdc); 80130b6: 687b ldr r3, [r7, #4] 80130b8: f893 30a0 ldrb.w r3, [r3, #160] ; 0xa0 80130bc: 2b01 cmp r3, #1 80130be: d101 bne.n 80130c4 80130c0: 2302 movs r3, #2 80130c2: e01c b.n 80130fe 80130c4: 687b ldr r3, [r7, #4] 80130c6: 2201 movs r2, #1 80130c8: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 /* Change LTDC peripheral state */ hltdc->State = HAL_LTDC_STATE_BUSY; 80130cc: 687b ldr r3, [r7, #4] 80130ce: 2202 movs r2, #2 80130d0: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Enable the Reload interrupt */ __HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_RR); 80130d4: 687b ldr r3, [r7, #4] 80130d6: 681b ldr r3, [r3, #0] 80130d8: 687a ldr r2, [r7, #4] 80130da: 6812 ldr r2, [r2, #0] 80130dc: 6b52 ldr r2, [r2, #52] ; 0x34 80130de: f042 0208 orr.w r2, r2, #8 80130e2: 635a str r2, [r3, #52] ; 0x34 /* Apply Reload type */ hltdc->Instance->SRCR = ReloadType; 80130e4: 687b ldr r3, [r7, #4] 80130e6: 681b ldr r3, [r3, #0] 80130e8: 683a ldr r2, [r7, #0] 80130ea: 625a str r2, [r3, #36] ; 0x24 /* Change the LTDC state*/ hltdc->State = HAL_LTDC_STATE_READY; 80130ec: 687b ldr r3, [r7, #4] 80130ee: 2201 movs r2, #1 80130f0: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Process unlocked */ __HAL_UNLOCK(hltdc); 80130f4: 687b ldr r3, [r7, #4] 80130f6: 2200 movs r2, #0 80130f8: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 return HAL_OK; 80130fc: 2300 movs r3, #0 } 80130fe: 4618 mov r0, r3 8013100: 370c adds r7, #12 8013102: 46bd mov sp, r7 8013104: f85d 7b04 ldr.w r7, [sp], #4 8013108: 4770 bx lr ... 0801310c : * @param LayerIdx LTDC Layer index. * This parameter can be one of the following values: LTDC_LAYER_1 (0) or LTDC_LAYER_2 (1) * @retval None */ static void LTDC_SetConfig(LTDC_HandleTypeDef *hltdc, LTDC_LayerCfgTypeDef *pLayerCfg, uint32_t LayerIdx) { 801310c: b480 push {r7} 801310e: b089 sub sp, #36 ; 0x24 8013110: af00 add r7, sp, #0 8013112: 60f8 str r0, [r7, #12] 8013114: 60b9 str r1, [r7, #8] 8013116: 607a str r2, [r7, #4] uint32_t tmp; uint32_t tmp1; uint32_t tmp2; /* Configure the horizontal start and stop position */ tmp = ((pLayerCfg->WindowX1 + ((hltdc->Instance->BPCR & LTDC_BPCR_AHBP) >> 16U)) << 16U); 8013118: 68bb ldr r3, [r7, #8] 801311a: 685a ldr r2, [r3, #4] 801311c: 68fb ldr r3, [r7, #12] 801311e: 681b ldr r3, [r3, #0] 8013120: 68db ldr r3, [r3, #12] 8013122: 0c1b lsrs r3, r3, #16 8013124: f3c3 030b ubfx r3, r3, #0, #12 8013128: 4413 add r3, r2 801312a: 041b lsls r3, r3, #16 801312c: 61fb str r3, [r7, #28] LTDC_LAYER(hltdc, LayerIdx)->WHPCR &= ~(LTDC_LxWHPCR_WHSTPOS | LTDC_LxWHPCR_WHSPPOS); 801312e: 68fb ldr r3, [r7, #12] 8013130: 681b ldr r3, [r3, #0] 8013132: 461a mov r2, r3 8013134: 687b ldr r3, [r7, #4] 8013136: 01db lsls r3, r3, #7 8013138: 4413 add r3, r2 801313a: 3384 adds r3, #132 ; 0x84 801313c: 461a mov r2, r3 801313e: 68fb ldr r3, [r7, #12] 8013140: 681b ldr r3, [r3, #0] 8013142: 4619 mov r1, r3 8013144: 687b ldr r3, [r7, #4] 8013146: 01db lsls r3, r3, #7 8013148: 440b add r3, r1 801314a: 3384 adds r3, #132 ; 0x84 801314c: 685b ldr r3, [r3, #4] 801314e: f403 4370 and.w r3, r3, #61440 ; 0xf000 8013152: 6053 str r3, [r2, #4] LTDC_LAYER(hltdc, LayerIdx)->WHPCR = ((pLayerCfg->WindowX0 + ((hltdc->Instance->BPCR & LTDC_BPCR_AHBP) >> 16U) + 1U) | tmp); 8013154: 68fb ldr r3, [r7, #12] 8013156: 681b ldr r3, [r3, #0] 8013158: 461a mov r2, r3 801315a: 687b ldr r3, [r7, #4] 801315c: 01db lsls r3, r3, #7 801315e: 4413 add r3, r2 8013160: 3384 adds r3, #132 ; 0x84 8013162: 4619 mov r1, r3 8013164: 68bb ldr r3, [r7, #8] 8013166: 681a ldr r2, [r3, #0] 8013168: 68fb ldr r3, [r7, #12] 801316a: 681b ldr r3, [r3, #0] 801316c: 68db ldr r3, [r3, #12] 801316e: 0c1b lsrs r3, r3, #16 8013170: f3c3 030b ubfx r3, r3, #0, #12 8013174: 4413 add r3, r2 8013176: 1c5a adds r2, r3, #1 8013178: 69fb ldr r3, [r7, #28] 801317a: 4313 orrs r3, r2 801317c: 604b str r3, [r1, #4] /* Configure the vertical start and stop position */ tmp = ((pLayerCfg->WindowY1 + (hltdc->Instance->BPCR & LTDC_BPCR_AVBP)) << 16U); 801317e: 68bb ldr r3, [r7, #8] 8013180: 68da ldr r2, [r3, #12] 8013182: 68fb ldr r3, [r7, #12] 8013184: 681b ldr r3, [r3, #0] 8013186: 68db ldr r3, [r3, #12] 8013188: f3c3 030a ubfx r3, r3, #0, #11 801318c: 4413 add r3, r2 801318e: 041b lsls r3, r3, #16 8013190: 61fb str r3, [r7, #28] LTDC_LAYER(hltdc, LayerIdx)->WVPCR &= ~(LTDC_LxWVPCR_WVSTPOS | LTDC_LxWVPCR_WVSPPOS); 8013192: 68fb ldr r3, [r7, #12] 8013194: 681b ldr r3, [r3, #0] 8013196: 461a mov r2, r3 8013198: 687b ldr r3, [r7, #4] 801319a: 01db lsls r3, r3, #7 801319c: 4413 add r3, r2 801319e: 3384 adds r3, #132 ; 0x84 80131a0: 461a mov r2, r3 80131a2: 68fb ldr r3, [r7, #12] 80131a4: 681b ldr r3, [r3, #0] 80131a6: 4619 mov r1, r3 80131a8: 687b ldr r3, [r7, #4] 80131aa: 01db lsls r3, r3, #7 80131ac: 440b add r3, r1 80131ae: 3384 adds r3, #132 ; 0x84 80131b0: 689b ldr r3, [r3, #8] 80131b2: f403 4370 and.w r3, r3, #61440 ; 0xf000 80131b6: 6093 str r3, [r2, #8] LTDC_LAYER(hltdc, LayerIdx)->WVPCR = ((pLayerCfg->WindowY0 + (hltdc->Instance->BPCR & LTDC_BPCR_AVBP) + 1U) | tmp); 80131b8: 68fb ldr r3, [r7, #12] 80131ba: 681b ldr r3, [r3, #0] 80131bc: 461a mov r2, r3 80131be: 687b ldr r3, [r7, #4] 80131c0: 01db lsls r3, r3, #7 80131c2: 4413 add r3, r2 80131c4: 3384 adds r3, #132 ; 0x84 80131c6: 4619 mov r1, r3 80131c8: 68bb ldr r3, [r7, #8] 80131ca: 689a ldr r2, [r3, #8] 80131cc: 68fb ldr r3, [r7, #12] 80131ce: 681b ldr r3, [r3, #0] 80131d0: 68db ldr r3, [r3, #12] 80131d2: f3c3 030a ubfx r3, r3, #0, #11 80131d6: 4413 add r3, r2 80131d8: 1c5a adds r2, r3, #1 80131da: 69fb ldr r3, [r7, #28] 80131dc: 4313 orrs r3, r2 80131de: 608b str r3, [r1, #8] /* Specifies the pixel format */ LTDC_LAYER(hltdc, LayerIdx)->PFCR &= ~(LTDC_LxPFCR_PF); 80131e0: 68fb ldr r3, [r7, #12] 80131e2: 681b ldr r3, [r3, #0] 80131e4: 461a mov r2, r3 80131e6: 687b ldr r3, [r7, #4] 80131e8: 01db lsls r3, r3, #7 80131ea: 4413 add r3, r2 80131ec: 3384 adds r3, #132 ; 0x84 80131ee: 461a mov r2, r3 80131f0: 68fb ldr r3, [r7, #12] 80131f2: 681b ldr r3, [r3, #0] 80131f4: 4619 mov r1, r3 80131f6: 687b ldr r3, [r7, #4] 80131f8: 01db lsls r3, r3, #7 80131fa: 440b add r3, r1 80131fc: 3384 adds r3, #132 ; 0x84 80131fe: 691b ldr r3, [r3, #16] 8013200: f023 0307 bic.w r3, r3, #7 8013204: 6113 str r3, [r2, #16] LTDC_LAYER(hltdc, LayerIdx)->PFCR = (pLayerCfg->PixelFormat); 8013206: 68fb ldr r3, [r7, #12] 8013208: 681b ldr r3, [r3, #0] 801320a: 461a mov r2, r3 801320c: 687b ldr r3, [r7, #4] 801320e: 01db lsls r3, r3, #7 8013210: 4413 add r3, r2 8013212: 3384 adds r3, #132 ; 0x84 8013214: 461a mov r2, r3 8013216: 68bb ldr r3, [r7, #8] 8013218: 691b ldr r3, [r3, #16] 801321a: 6113 str r3, [r2, #16] /* Configure the default color values */ tmp = ((uint32_t)(pLayerCfg->Backcolor.Green) << 8U); 801321c: 68bb ldr r3, [r7, #8] 801321e: f893 3031 ldrb.w r3, [r3, #49] ; 0x31 8013222: 021b lsls r3, r3, #8 8013224: 61fb str r3, [r7, #28] tmp1 = ((uint32_t)(pLayerCfg->Backcolor.Red) << 16U); 8013226: 68bb ldr r3, [r7, #8] 8013228: f893 3032 ldrb.w r3, [r3, #50] ; 0x32 801322c: 041b lsls r3, r3, #16 801322e: 61bb str r3, [r7, #24] tmp2 = (pLayerCfg->Alpha0 << 24U); 8013230: 68bb ldr r3, [r7, #8] 8013232: 699b ldr r3, [r3, #24] 8013234: 061b lsls r3, r3, #24 8013236: 617b str r3, [r7, #20] LTDC_LAYER(hltdc, LayerIdx)->DCCR &= ~(LTDC_LxDCCR_DCBLUE | LTDC_LxDCCR_DCGREEN | LTDC_LxDCCR_DCRED | LTDC_LxDCCR_DCALPHA); 8013238: 68fb ldr r3, [r7, #12] 801323a: 681b ldr r3, [r3, #0] 801323c: 461a mov r2, r3 801323e: 687b ldr r3, [r7, #4] 8013240: 01db lsls r3, r3, #7 8013242: 4413 add r3, r2 8013244: 3384 adds r3, #132 ; 0x84 8013246: 699b ldr r3, [r3, #24] 8013248: 68fb ldr r3, [r7, #12] 801324a: 681b ldr r3, [r3, #0] 801324c: 461a mov r2, r3 801324e: 687b ldr r3, [r7, #4] 8013250: 01db lsls r3, r3, #7 8013252: 4413 add r3, r2 8013254: 3384 adds r3, #132 ; 0x84 8013256: 461a mov r2, r3 8013258: 2300 movs r3, #0 801325a: 6193 str r3, [r2, #24] LTDC_LAYER(hltdc, LayerIdx)->DCCR = (pLayerCfg->Backcolor.Blue | tmp | tmp1 | tmp2); 801325c: 68fb ldr r3, [r7, #12] 801325e: 681b ldr r3, [r3, #0] 8013260: 461a mov r2, r3 8013262: 687b ldr r3, [r7, #4] 8013264: 01db lsls r3, r3, #7 8013266: 4413 add r3, r2 8013268: 3384 adds r3, #132 ; 0x84 801326a: 4619 mov r1, r3 801326c: 68bb ldr r3, [r7, #8] 801326e: f893 3030 ldrb.w r3, [r3, #48] ; 0x30 8013272: 461a mov r2, r3 8013274: 69fb ldr r3, [r7, #28] 8013276: 431a orrs r2, r3 8013278: 69bb ldr r3, [r7, #24] 801327a: 431a orrs r2, r3 801327c: 697b ldr r3, [r7, #20] 801327e: 4313 orrs r3, r2 8013280: 618b str r3, [r1, #24] /* Specifies the constant alpha value */ LTDC_LAYER(hltdc, LayerIdx)->CACR &= ~(LTDC_LxCACR_CONSTA); 8013282: 68fb ldr r3, [r7, #12] 8013284: 681b ldr r3, [r3, #0] 8013286: 461a mov r2, r3 8013288: 687b ldr r3, [r7, #4] 801328a: 01db lsls r3, r3, #7 801328c: 4413 add r3, r2 801328e: 3384 adds r3, #132 ; 0x84 8013290: 461a mov r2, r3 8013292: 68fb ldr r3, [r7, #12] 8013294: 681b ldr r3, [r3, #0] 8013296: 4619 mov r1, r3 8013298: 687b ldr r3, [r7, #4] 801329a: 01db lsls r3, r3, #7 801329c: 440b add r3, r1 801329e: 3384 adds r3, #132 ; 0x84 80132a0: 695b ldr r3, [r3, #20] 80132a2: f023 03ff bic.w r3, r3, #255 ; 0xff 80132a6: 6153 str r3, [r2, #20] LTDC_LAYER(hltdc, LayerIdx)->CACR = (pLayerCfg->Alpha); 80132a8: 68fb ldr r3, [r7, #12] 80132aa: 681b ldr r3, [r3, #0] 80132ac: 461a mov r2, r3 80132ae: 687b ldr r3, [r7, #4] 80132b0: 01db lsls r3, r3, #7 80132b2: 4413 add r3, r2 80132b4: 3384 adds r3, #132 ; 0x84 80132b6: 461a mov r2, r3 80132b8: 68bb ldr r3, [r7, #8] 80132ba: 695b ldr r3, [r3, #20] 80132bc: 6153 str r3, [r2, #20] /* Specifies the blending factors */ LTDC_LAYER(hltdc, LayerIdx)->BFCR &= ~(LTDC_LxBFCR_BF2 | LTDC_LxBFCR_BF1); 80132be: 68fb ldr r3, [r7, #12] 80132c0: 681b ldr r3, [r3, #0] 80132c2: 461a mov r2, r3 80132c4: 687b ldr r3, [r7, #4] 80132c6: 01db lsls r3, r3, #7 80132c8: 4413 add r3, r2 80132ca: 3384 adds r3, #132 ; 0x84 80132cc: 4619 mov r1, r3 80132ce: 68fb ldr r3, [r7, #12] 80132d0: 681b ldr r3, [r3, #0] 80132d2: 461a mov r2, r3 80132d4: 687b ldr r3, [r7, #4] 80132d6: 01db lsls r3, r3, #7 80132d8: 4413 add r3, r2 80132da: 3384 adds r3, #132 ; 0x84 80132dc: 69da ldr r2, [r3, #28] 80132de: 4b5a ldr r3, [pc, #360] ; (8013448 ) 80132e0: 4013 ands r3, r2 80132e2: 61cb str r3, [r1, #28] LTDC_LAYER(hltdc, LayerIdx)->BFCR = (pLayerCfg->BlendingFactor1 | pLayerCfg->BlendingFactor2); 80132e4: 68fb ldr r3, [r7, #12] 80132e6: 681b ldr r3, [r3, #0] 80132e8: 461a mov r2, r3 80132ea: 687b ldr r3, [r7, #4] 80132ec: 01db lsls r3, r3, #7 80132ee: 4413 add r3, r2 80132f0: 3384 adds r3, #132 ; 0x84 80132f2: 4619 mov r1, r3 80132f4: 68bb ldr r3, [r7, #8] 80132f6: 69da ldr r2, [r3, #28] 80132f8: 68bb ldr r3, [r7, #8] 80132fa: 6a1b ldr r3, [r3, #32] 80132fc: 4313 orrs r3, r2 80132fe: 61cb str r3, [r1, #28] /* Configure the color frame buffer start address */ LTDC_LAYER(hltdc, LayerIdx)->CFBAR &= ~(LTDC_LxCFBAR_CFBADD); 8013300: 68fb ldr r3, [r7, #12] 8013302: 681b ldr r3, [r3, #0] 8013304: 461a mov r2, r3 8013306: 687b ldr r3, [r7, #4] 8013308: 01db lsls r3, r3, #7 801330a: 4413 add r3, r2 801330c: 3384 adds r3, #132 ; 0x84 801330e: 6a9b ldr r3, [r3, #40] ; 0x28 8013310: 68fb ldr r3, [r7, #12] 8013312: 681b ldr r3, [r3, #0] 8013314: 461a mov r2, r3 8013316: 687b ldr r3, [r7, #4] 8013318: 01db lsls r3, r3, #7 801331a: 4413 add r3, r2 801331c: 3384 adds r3, #132 ; 0x84 801331e: 461a mov r2, r3 8013320: 2300 movs r3, #0 8013322: 6293 str r3, [r2, #40] ; 0x28 LTDC_LAYER(hltdc, LayerIdx)->CFBAR = (pLayerCfg->FBStartAdress); 8013324: 68fb ldr r3, [r7, #12] 8013326: 681b ldr r3, [r3, #0] 8013328: 461a mov r2, r3 801332a: 687b ldr r3, [r7, #4] 801332c: 01db lsls r3, r3, #7 801332e: 4413 add r3, r2 8013330: 3384 adds r3, #132 ; 0x84 8013332: 461a mov r2, r3 8013334: 68bb ldr r3, [r7, #8] 8013336: 6a5b ldr r3, [r3, #36] ; 0x24 8013338: 6293 str r3, [r2, #40] ; 0x28 if (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB8888) 801333a: 68bb ldr r3, [r7, #8] 801333c: 691b ldr r3, [r3, #16] 801333e: 2b00 cmp r3, #0 8013340: d102 bne.n 8013348 { tmp = 4U; 8013342: 2304 movs r3, #4 8013344: 61fb str r3, [r7, #28] 8013346: e01b b.n 8013380 } else if (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_RGB888) 8013348: 68bb ldr r3, [r7, #8] 801334a: 691b ldr r3, [r3, #16] 801334c: 2b01 cmp r3, #1 801334e: d102 bne.n 8013356 { tmp = 3U; 8013350: 2303 movs r3, #3 8013352: 61fb str r3, [r7, #28] 8013354: e014 b.n 8013380 } else if ((pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB4444) || \ 8013356: 68bb ldr r3, [r7, #8] 8013358: 691b ldr r3, [r3, #16] 801335a: 2b04 cmp r3, #4 801335c: d00b beq.n 8013376 (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_RGB565) || \ 801335e: 68bb ldr r3, [r7, #8] 8013360: 691b ldr r3, [r3, #16] else if ((pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB4444) || \ 8013362: 2b02 cmp r3, #2 8013364: d007 beq.n 8013376 (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB1555) || \ 8013366: 68bb ldr r3, [r7, #8] 8013368: 691b ldr r3, [r3, #16] (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_RGB565) || \ 801336a: 2b03 cmp r3, #3 801336c: d003 beq.n 8013376 (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_AL88)) 801336e: 68bb ldr r3, [r7, #8] 8013370: 691b ldr r3, [r3, #16] (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB1555) || \ 8013372: 2b07 cmp r3, #7 8013374: d102 bne.n 801337c { tmp = 2U; 8013376: 2302 movs r3, #2 8013378: 61fb str r3, [r7, #28] 801337a: e001 b.n 8013380 } else { tmp = 1U; 801337c: 2301 movs r3, #1 801337e: 61fb str r3, [r7, #28] } /* Configure the color frame buffer pitch in byte */ LTDC_LAYER(hltdc, LayerIdx)->CFBLR &= ~(LTDC_LxCFBLR_CFBLL | LTDC_LxCFBLR_CFBP); 8013380: 68fb ldr r3, [r7, #12] 8013382: 681b ldr r3, [r3, #0] 8013384: 461a mov r2, r3 8013386: 687b ldr r3, [r7, #4] 8013388: 01db lsls r3, r3, #7 801338a: 4413 add r3, r2 801338c: 3384 adds r3, #132 ; 0x84 801338e: 461a mov r2, r3 8013390: 68fb ldr r3, [r7, #12] 8013392: 681b ldr r3, [r3, #0] 8013394: 4619 mov r1, r3 8013396: 687b ldr r3, [r7, #4] 8013398: 01db lsls r3, r3, #7 801339a: 440b add r3, r1 801339c: 3384 adds r3, #132 ; 0x84 801339e: 6adb ldr r3, [r3, #44] ; 0x2c 80133a0: f003 23e0 and.w r3, r3, #3758153728 ; 0xe000e000 80133a4: 62d3 str r3, [r2, #44] ; 0x2c LTDC_LAYER(hltdc, LayerIdx)->CFBLR = (((pLayerCfg->ImageWidth * tmp) << 16U) | (((pLayerCfg->WindowX1 - pLayerCfg->WindowX0) * tmp) + 3U)); 80133a6: 68fb ldr r3, [r7, #12] 80133a8: 681b ldr r3, [r3, #0] 80133aa: 461a mov r2, r3 80133ac: 687b ldr r3, [r7, #4] 80133ae: 01db lsls r3, r3, #7 80133b0: 4413 add r3, r2 80133b2: 3384 adds r3, #132 ; 0x84 80133b4: 4618 mov r0, r3 80133b6: 68bb ldr r3, [r7, #8] 80133b8: 6a9b ldr r3, [r3, #40] ; 0x28 80133ba: 69fa ldr r2, [r7, #28] 80133bc: fb02 f303 mul.w r3, r2, r3 80133c0: 041a lsls r2, r3, #16 80133c2: 68bb ldr r3, [r7, #8] 80133c4: 6859 ldr r1, [r3, #4] 80133c6: 68bb ldr r3, [r7, #8] 80133c8: 681b ldr r3, [r3, #0] 80133ca: 1acb subs r3, r1, r3 80133cc: 69f9 ldr r1, [r7, #28] 80133ce: fb01 f303 mul.w r3, r1, r3 80133d2: 3303 adds r3, #3 80133d4: 4313 orrs r3, r2 80133d6: 62c3 str r3, [r0, #44] ; 0x2c /* Configure the frame buffer line number */ LTDC_LAYER(hltdc, LayerIdx)->CFBLNR &= ~(LTDC_LxCFBLNR_CFBLNBR); 80133d8: 68fb ldr r3, [r7, #12] 80133da: 681b ldr r3, [r3, #0] 80133dc: 461a mov r2, r3 80133de: 687b ldr r3, [r7, #4] 80133e0: 01db lsls r3, r3, #7 80133e2: 4413 add r3, r2 80133e4: 3384 adds r3, #132 ; 0x84 80133e6: 4619 mov r1, r3 80133e8: 68fb ldr r3, [r7, #12] 80133ea: 681b ldr r3, [r3, #0] 80133ec: 461a mov r2, r3 80133ee: 687b ldr r3, [r7, #4] 80133f0: 01db lsls r3, r3, #7 80133f2: 4413 add r3, r2 80133f4: 3384 adds r3, #132 ; 0x84 80133f6: 6b1a ldr r2, [r3, #48] ; 0x30 80133f8: 4b14 ldr r3, [pc, #80] ; (801344c ) 80133fa: 4013 ands r3, r2 80133fc: 630b str r3, [r1, #48] ; 0x30 LTDC_LAYER(hltdc, LayerIdx)->CFBLNR = (pLayerCfg->ImageHeight); 80133fe: 68fb ldr r3, [r7, #12] 8013400: 681b ldr r3, [r3, #0] 8013402: 461a mov r2, r3 8013404: 687b ldr r3, [r7, #4] 8013406: 01db lsls r3, r3, #7 8013408: 4413 add r3, r2 801340a: 3384 adds r3, #132 ; 0x84 801340c: 461a mov r2, r3 801340e: 68bb ldr r3, [r7, #8] 8013410: 6adb ldr r3, [r3, #44] ; 0x2c 8013412: 6313 str r3, [r2, #48] ; 0x30 /* Enable LTDC_Layer by setting LEN bit */ LTDC_LAYER(hltdc, LayerIdx)->CR |= (uint32_t)LTDC_LxCR_LEN; 8013414: 68fb ldr r3, [r7, #12] 8013416: 681b ldr r3, [r3, #0] 8013418: 461a mov r2, r3 801341a: 687b ldr r3, [r7, #4] 801341c: 01db lsls r3, r3, #7 801341e: 4413 add r3, r2 8013420: 3384 adds r3, #132 ; 0x84 8013422: 461a mov r2, r3 8013424: 68fb ldr r3, [r7, #12] 8013426: 681b ldr r3, [r3, #0] 8013428: 4619 mov r1, r3 801342a: 687b ldr r3, [r7, #4] 801342c: 01db lsls r3, r3, #7 801342e: 440b add r3, r1 8013430: 3384 adds r3, #132 ; 0x84 8013432: 681b ldr r3, [r3, #0] 8013434: f043 0301 orr.w r3, r3, #1 8013438: 6013 str r3, [r2, #0] } 801343a: bf00 nop 801343c: 3724 adds r7, #36 ; 0x24 801343e: 46bd mov sp, r7 8013440: f85d 7b04 ldr.w r7, [sp], #4 8013444: 4770 bx lr 8013446: bf00 nop 8013448: fffff8f8 .word 0xfffff8f8 801344c: fffff800 .word 0xfffff800 08013450 : * supported by this function. User should request a transition to HSE Off * first and then HSE On or HSE Bypass. * @retval HAL status */ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) { 8013450: b580 push {r7, lr} 8013452: b086 sub sp, #24 8013454: af00 add r7, sp, #0 8013456: 6078 str r0, [r7, #4] uint32_t tickstart; uint32_t pll_config; FlagStatus pwrclkchanged = RESET; 8013458: 2300 movs r3, #0 801345a: 75fb strb r3, [r7, #23] /* Check Null pointer */ if (RCC_OscInitStruct == NULL) 801345c: 687b ldr r3, [r7, #4] 801345e: 2b00 cmp r3, #0 8013460: d101 bne.n 8013466 { return HAL_ERROR; 8013462: 2301 movs r3, #1 8013464: e29b b.n 801399e /* Check the parameters */ assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); /*------------------------------- HSE Configuration ------------------------*/ if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) 8013466: 687b ldr r3, [r7, #4] 8013468: 681b ldr r3, [r3, #0] 801346a: f003 0301 and.w r3, r3, #1 801346e: 2b00 cmp r3, #0 8013470: f000 8087 beq.w 8013582 { /* Check the parameters */ assert_param(IS_RCC_HSE(RCC_OscInitStruct->HSEState)); /* When the HSE is used as system clock or clock source for PLL, It can not be disabled */ if ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSE) 8013474: 4b96 ldr r3, [pc, #600] ; (80136d0 ) 8013476: 689b ldr r3, [r3, #8] 8013478: f003 030c and.w r3, r3, #12 801347c: 2b04 cmp r3, #4 801347e: d00c beq.n 801349a || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSE))) 8013480: 4b93 ldr r3, [pc, #588] ; (80136d0 ) 8013482: 689b ldr r3, [r3, #8] 8013484: f003 030c and.w r3, r3, #12 8013488: 2b08 cmp r3, #8 801348a: d112 bne.n 80134b2 801348c: 4b90 ldr r3, [pc, #576] ; (80136d0 ) 801348e: 685b ldr r3, [r3, #4] 8013490: f403 0380 and.w r3, r3, #4194304 ; 0x400000 8013494: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000 8013498: d10b bne.n 80134b2 { if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) 801349a: 4b8d ldr r3, [pc, #564] ; (80136d0 ) 801349c: 681b ldr r3, [r3, #0] 801349e: f403 3300 and.w r3, r3, #131072 ; 0x20000 80134a2: 2b00 cmp r3, #0 80134a4: d06c beq.n 8013580 80134a6: 687b ldr r3, [r7, #4] 80134a8: 685b ldr r3, [r3, #4] 80134aa: 2b00 cmp r3, #0 80134ac: d168 bne.n 8013580 { return HAL_ERROR; 80134ae: 2301 movs r3, #1 80134b0: e275 b.n 801399e } } else { /* Set the new HSE configuration ---------------------------------------*/ __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); 80134b2: 687b ldr r3, [r7, #4] 80134b4: 685b ldr r3, [r3, #4] 80134b6: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 80134ba: d106 bne.n 80134ca 80134bc: 4a84 ldr r2, [pc, #528] ; (80136d0 ) 80134be: 4b84 ldr r3, [pc, #528] ; (80136d0 ) 80134c0: 681b ldr r3, [r3, #0] 80134c2: f443 3380 orr.w r3, r3, #65536 ; 0x10000 80134c6: 6013 str r3, [r2, #0] 80134c8: e02e b.n 8013528 80134ca: 687b ldr r3, [r7, #4] 80134cc: 685b ldr r3, [r3, #4] 80134ce: 2b00 cmp r3, #0 80134d0: d10c bne.n 80134ec 80134d2: 4a7f ldr r2, [pc, #508] ; (80136d0 ) 80134d4: 4b7e ldr r3, [pc, #504] ; (80136d0 ) 80134d6: 681b ldr r3, [r3, #0] 80134d8: f423 3380 bic.w r3, r3, #65536 ; 0x10000 80134dc: 6013 str r3, [r2, #0] 80134de: 4a7c ldr r2, [pc, #496] ; (80136d0 ) 80134e0: 4b7b ldr r3, [pc, #492] ; (80136d0 ) 80134e2: 681b ldr r3, [r3, #0] 80134e4: f423 2380 bic.w r3, r3, #262144 ; 0x40000 80134e8: 6013 str r3, [r2, #0] 80134ea: e01d b.n 8013528 80134ec: 687b ldr r3, [r7, #4] 80134ee: 685b ldr r3, [r3, #4] 80134f0: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000 80134f4: d10c bne.n 8013510 80134f6: 4a76 ldr r2, [pc, #472] ; (80136d0 ) 80134f8: 4b75 ldr r3, [pc, #468] ; (80136d0 ) 80134fa: 681b ldr r3, [r3, #0] 80134fc: f443 2380 orr.w r3, r3, #262144 ; 0x40000 8013500: 6013 str r3, [r2, #0] 8013502: 4a73 ldr r2, [pc, #460] ; (80136d0 ) 8013504: 4b72 ldr r3, [pc, #456] ; (80136d0 ) 8013506: 681b ldr r3, [r3, #0] 8013508: f443 3380 orr.w r3, r3, #65536 ; 0x10000 801350c: 6013 str r3, [r2, #0] 801350e: e00b b.n 8013528 8013510: 4a6f ldr r2, [pc, #444] ; (80136d0 ) 8013512: 4b6f ldr r3, [pc, #444] ; (80136d0 ) 8013514: 681b ldr r3, [r3, #0] 8013516: f423 3380 bic.w r3, r3, #65536 ; 0x10000 801351a: 6013 str r3, [r2, #0] 801351c: 4a6c ldr r2, [pc, #432] ; (80136d0 ) 801351e: 4b6c ldr r3, [pc, #432] ; (80136d0 ) 8013520: 681b ldr r3, [r3, #0] 8013522: f423 2380 bic.w r3, r3, #262144 ; 0x40000 8013526: 6013 str r3, [r2, #0] /* Check the HSE State */ if (RCC_OscInitStruct->HSEState != RCC_HSE_OFF) 8013528: 687b ldr r3, [r7, #4] 801352a: 685b ldr r3, [r3, #4] 801352c: 2b00 cmp r3, #0 801352e: d013 beq.n 8013558 { /* Get Start Tick*/ tickstart = HAL_GetTick(); 8013530: f7fe f854 bl 80115dc 8013534: 6138 str r0, [r7, #16] /* Wait till HSE is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) 8013536: e008 b.n 801354a { if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) 8013538: f7fe f850 bl 80115dc 801353c: 4602 mov r2, r0 801353e: 693b ldr r3, [r7, #16] 8013540: 1ad3 subs r3, r2, r3 8013542: 2b64 cmp r3, #100 ; 0x64 8013544: d901 bls.n 801354a { return HAL_TIMEOUT; 8013546: 2303 movs r3, #3 8013548: e229 b.n 801399e while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) 801354a: 4b61 ldr r3, [pc, #388] ; (80136d0 ) 801354c: 681b ldr r3, [r3, #0] 801354e: f403 3300 and.w r3, r3, #131072 ; 0x20000 8013552: 2b00 cmp r3, #0 8013554: d0f0 beq.n 8013538 8013556: e014 b.n 8013582 } } else { /* Get Start Tick*/ tickstart = HAL_GetTick(); 8013558: f7fe f840 bl 80115dc 801355c: 6138 str r0, [r7, #16] /* Wait till HSE is bypassed or disabled */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) 801355e: e008 b.n 8013572 { if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) 8013560: f7fe f83c bl 80115dc 8013564: 4602 mov r2, r0 8013566: 693b ldr r3, [r7, #16] 8013568: 1ad3 subs r3, r2, r3 801356a: 2b64 cmp r3, #100 ; 0x64 801356c: d901 bls.n 8013572 { return HAL_TIMEOUT; 801356e: 2303 movs r3, #3 8013570: e215 b.n 801399e while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) 8013572: 4b57 ldr r3, [pc, #348] ; (80136d0 ) 8013574: 681b ldr r3, [r3, #0] 8013576: f403 3300 and.w r3, r3, #131072 ; 0x20000 801357a: 2b00 cmp r3, #0 801357c: d1f0 bne.n 8013560 801357e: e000 b.n 8013582 if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) 8013580: bf00 nop } } } } /*----------------------------- HSI Configuration --------------------------*/ if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) 8013582: 687b ldr r3, [r7, #4] 8013584: 681b ldr r3, [r3, #0] 8013586: f003 0302 and.w r3, r3, #2 801358a: 2b00 cmp r3, #0 801358c: d069 beq.n 8013662 /* Check the parameters */ assert_param(IS_RCC_HSI(RCC_OscInitStruct->HSIState)); assert_param(IS_RCC_CALIBRATION_VALUE(RCC_OscInitStruct->HSICalibrationValue)); /* Check if HSI is used as system clock or as PLL source when PLL is selected as system clock */ if ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSI) 801358e: 4b50 ldr r3, [pc, #320] ; (80136d0 ) 8013590: 689b ldr r3, [r3, #8] 8013592: f003 030c and.w r3, r3, #12 8013596: 2b00 cmp r3, #0 8013598: d00b beq.n 80135b2 || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSI))) 801359a: 4b4d ldr r3, [pc, #308] ; (80136d0 ) 801359c: 689b ldr r3, [r3, #8] 801359e: f003 030c and.w r3, r3, #12 80135a2: 2b08 cmp r3, #8 80135a4: d11c bne.n 80135e0 80135a6: 4b4a ldr r3, [pc, #296] ; (80136d0 ) 80135a8: 685b ldr r3, [r3, #4] 80135aa: f403 0380 and.w r3, r3, #4194304 ; 0x400000 80135ae: 2b00 cmp r3, #0 80135b0: d116 bne.n 80135e0 { /* When HSI is used as system clock it will not disabled */ if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) 80135b2: 4b47 ldr r3, [pc, #284] ; (80136d0 ) 80135b4: 681b ldr r3, [r3, #0] 80135b6: f003 0302 and.w r3, r3, #2 80135ba: 2b00 cmp r3, #0 80135bc: d005 beq.n 80135ca 80135be: 687b ldr r3, [r7, #4] 80135c0: 68db ldr r3, [r3, #12] 80135c2: 2b01 cmp r3, #1 80135c4: d001 beq.n 80135ca { return HAL_ERROR; 80135c6: 2301 movs r3, #1 80135c8: e1e9 b.n 801399e } /* Otherwise, just the calibration is allowed */ else { /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); 80135ca: 4941 ldr r1, [pc, #260] ; (80136d0 ) 80135cc: 4b40 ldr r3, [pc, #256] ; (80136d0 ) 80135ce: 681b ldr r3, [r3, #0] 80135d0: f023 02f8 bic.w r2, r3, #248 ; 0xf8 80135d4: 687b ldr r3, [r7, #4] 80135d6: 691b ldr r3, [r3, #16] 80135d8: 00db lsls r3, r3, #3 80135da: 4313 orrs r3, r2 80135dc: 600b str r3, [r1, #0] if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) 80135de: e040 b.n 8013662 } } else { /* Check the HSI State */ if ((RCC_OscInitStruct->HSIState) != RCC_HSI_OFF) 80135e0: 687b ldr r3, [r7, #4] 80135e2: 68db ldr r3, [r3, #12] 80135e4: 2b00 cmp r3, #0 80135e6: d023 beq.n 8013630 { /* Enable the Internal High Speed oscillator (HSI). */ __HAL_RCC_HSI_ENABLE(); 80135e8: 4a39 ldr r2, [pc, #228] ; (80136d0 ) 80135ea: 4b39 ldr r3, [pc, #228] ; (80136d0 ) 80135ec: 681b ldr r3, [r3, #0] 80135ee: f043 0301 orr.w r3, r3, #1 80135f2: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 80135f4: f7fd fff2 bl 80115dc 80135f8: 6138 str r0, [r7, #16] /* Wait till HSI is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) 80135fa: e008 b.n 801360e { if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) 80135fc: f7fd ffee bl 80115dc 8013600: 4602 mov r2, r0 8013602: 693b ldr r3, [r7, #16] 8013604: 1ad3 subs r3, r2, r3 8013606: 2b02 cmp r3, #2 8013608: d901 bls.n 801360e { return HAL_TIMEOUT; 801360a: 2303 movs r3, #3 801360c: e1c7 b.n 801399e while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) 801360e: 4b30 ldr r3, [pc, #192] ; (80136d0 ) 8013610: 681b ldr r3, [r3, #0] 8013612: f003 0302 and.w r3, r3, #2 8013616: 2b00 cmp r3, #0 8013618: d0f0 beq.n 80135fc } } /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); 801361a: 492d ldr r1, [pc, #180] ; (80136d0 ) 801361c: 4b2c ldr r3, [pc, #176] ; (80136d0 ) 801361e: 681b ldr r3, [r3, #0] 8013620: f023 02f8 bic.w r2, r3, #248 ; 0xf8 8013624: 687b ldr r3, [r7, #4] 8013626: 691b ldr r3, [r3, #16] 8013628: 00db lsls r3, r3, #3 801362a: 4313 orrs r3, r2 801362c: 600b str r3, [r1, #0] 801362e: e018 b.n 8013662 } else { /* Disable the Internal High Speed oscillator (HSI). */ __HAL_RCC_HSI_DISABLE(); 8013630: 4a27 ldr r2, [pc, #156] ; (80136d0 ) 8013632: 4b27 ldr r3, [pc, #156] ; (80136d0 ) 8013634: 681b ldr r3, [r3, #0] 8013636: f023 0301 bic.w r3, r3, #1 801363a: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 801363c: f7fd ffce bl 80115dc 8013640: 6138 str r0, [r7, #16] /* Wait till HSI is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) 8013642: e008 b.n 8013656 { if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) 8013644: f7fd ffca bl 80115dc 8013648: 4602 mov r2, r0 801364a: 693b ldr r3, [r7, #16] 801364c: 1ad3 subs r3, r2, r3 801364e: 2b02 cmp r3, #2 8013650: d901 bls.n 8013656 { return HAL_TIMEOUT; 8013652: 2303 movs r3, #3 8013654: e1a3 b.n 801399e while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) 8013656: 4b1e ldr r3, [pc, #120] ; (80136d0 ) 8013658: 681b ldr r3, [r3, #0] 801365a: f003 0302 and.w r3, r3, #2 801365e: 2b00 cmp r3, #0 8013660: d1f0 bne.n 8013644 } } } } /*------------------------------ LSI Configuration -------------------------*/ if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) 8013662: 687b ldr r3, [r7, #4] 8013664: 681b ldr r3, [r3, #0] 8013666: f003 0308 and.w r3, r3, #8 801366a: 2b00 cmp r3, #0 801366c: d038 beq.n 80136e0 { /* Check the parameters */ assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState)); /* Check the LSI State */ if ((RCC_OscInitStruct->LSIState) != RCC_LSI_OFF) 801366e: 687b ldr r3, [r7, #4] 8013670: 695b ldr r3, [r3, #20] 8013672: 2b00 cmp r3, #0 8013674: d019 beq.n 80136aa { /* Enable the Internal Low Speed oscillator (LSI). */ __HAL_RCC_LSI_ENABLE(); 8013676: 4a16 ldr r2, [pc, #88] ; (80136d0 ) 8013678: 4b15 ldr r3, [pc, #84] ; (80136d0 ) 801367a: 6f5b ldr r3, [r3, #116] ; 0x74 801367c: f043 0301 orr.w r3, r3, #1 8013680: 6753 str r3, [r2, #116] ; 0x74 /* Get Start Tick*/ tickstart = HAL_GetTick(); 8013682: f7fd ffab bl 80115dc 8013686: 6138 str r0, [r7, #16] /* Wait till LSI is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) 8013688: e008 b.n 801369c { if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) 801368a: f7fd ffa7 bl 80115dc 801368e: 4602 mov r2, r0 8013690: 693b ldr r3, [r7, #16] 8013692: 1ad3 subs r3, r2, r3 8013694: 2b02 cmp r3, #2 8013696: d901 bls.n 801369c { return HAL_TIMEOUT; 8013698: 2303 movs r3, #3 801369a: e180 b.n 801399e while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) 801369c: 4b0c ldr r3, [pc, #48] ; (80136d0 ) 801369e: 6f5b ldr r3, [r3, #116] ; 0x74 80136a0: f003 0302 and.w r3, r3, #2 80136a4: 2b00 cmp r3, #0 80136a6: d0f0 beq.n 801368a 80136a8: e01a b.n 80136e0 } } else { /* Disable the Internal Low Speed oscillator (LSI). */ __HAL_RCC_LSI_DISABLE(); 80136aa: 4a09 ldr r2, [pc, #36] ; (80136d0 ) 80136ac: 4b08 ldr r3, [pc, #32] ; (80136d0 ) 80136ae: 6f5b ldr r3, [r3, #116] ; 0x74 80136b0: f023 0301 bic.w r3, r3, #1 80136b4: 6753 str r3, [r2, #116] ; 0x74 /* Get Start Tick*/ tickstart = HAL_GetTick(); 80136b6: f7fd ff91 bl 80115dc 80136ba: 6138 str r0, [r7, #16] /* Wait till LSI is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) 80136bc: e00a b.n 80136d4 { if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) 80136be: f7fd ff8d bl 80115dc 80136c2: 4602 mov r2, r0 80136c4: 693b ldr r3, [r7, #16] 80136c6: 1ad3 subs r3, r2, r3 80136c8: 2b02 cmp r3, #2 80136ca: d903 bls.n 80136d4 { return HAL_TIMEOUT; 80136cc: 2303 movs r3, #3 80136ce: e166 b.n 801399e 80136d0: 40023800 .word 0x40023800 while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) 80136d4: 4b92 ldr r3, [pc, #584] ; (8013920 ) 80136d6: 6f5b ldr r3, [r3, #116] ; 0x74 80136d8: f003 0302 and.w r3, r3, #2 80136dc: 2b00 cmp r3, #0 80136de: d1ee bne.n 80136be } } } } /*------------------------------ LSE Configuration -------------------------*/ if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) 80136e0: 687b ldr r3, [r7, #4] 80136e2: 681b ldr r3, [r3, #0] 80136e4: f003 0304 and.w r3, r3, #4 80136e8: 2b00 cmp r3, #0 80136ea: f000 80a4 beq.w 8013836 /* Check the parameters */ assert_param(IS_RCC_LSE(RCC_OscInitStruct->LSEState)); /* Update LSE configuration in Backup Domain control register */ /* Requires to enable write access to Backup Domain of necessary */ if (__HAL_RCC_PWR_IS_CLK_DISABLED()) 80136ee: 4b8c ldr r3, [pc, #560] ; (8013920 ) 80136f0: 6c1b ldr r3, [r3, #64] ; 0x40 80136f2: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 80136f6: 2b00 cmp r3, #0 80136f8: d10d bne.n 8013716 { /* Enable Power Clock*/ __HAL_RCC_PWR_CLK_ENABLE(); 80136fa: 4a89 ldr r2, [pc, #548] ; (8013920 ) 80136fc: 4b88 ldr r3, [pc, #544] ; (8013920 ) 80136fe: 6c1b ldr r3, [r3, #64] ; 0x40 8013700: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 8013704: 6413 str r3, [r2, #64] ; 0x40 8013706: 4b86 ldr r3, [pc, #536] ; (8013920 ) 8013708: 6c1b ldr r3, [r3, #64] ; 0x40 801370a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 801370e: 60bb str r3, [r7, #8] 8013710: 68bb ldr r3, [r7, #8] pwrclkchanged = SET; 8013712: 2301 movs r3, #1 8013714: 75fb strb r3, [r7, #23] } if (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) 8013716: 4b83 ldr r3, [pc, #524] ; (8013924 ) 8013718: 681b ldr r3, [r3, #0] 801371a: f403 7380 and.w r3, r3, #256 ; 0x100 801371e: 2b00 cmp r3, #0 8013720: d118 bne.n 8013754 { /* Enable write access to Backup domain */ PWR->CR1 |= PWR_CR1_DBP; 8013722: 4a80 ldr r2, [pc, #512] ; (8013924 ) 8013724: 4b7f ldr r3, [pc, #508] ; (8013924 ) 8013726: 681b ldr r3, [r3, #0] 8013728: f443 7380 orr.w r3, r3, #256 ; 0x100 801372c: 6013 str r3, [r2, #0] /* Wait for Backup domain Write protection disable */ tickstart = HAL_GetTick(); 801372e: f7fd ff55 bl 80115dc 8013732: 6138 str r0, [r7, #16] while (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) 8013734: e008 b.n 8013748 { if ((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) 8013736: f7fd ff51 bl 80115dc 801373a: 4602 mov r2, r0 801373c: 693b ldr r3, [r7, #16] 801373e: 1ad3 subs r3, r2, r3 8013740: 2b64 cmp r3, #100 ; 0x64 8013742: d901 bls.n 8013748 { return HAL_TIMEOUT; 8013744: 2303 movs r3, #3 8013746: e12a b.n 801399e while (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) 8013748: 4b76 ldr r3, [pc, #472] ; (8013924 ) 801374a: 681b ldr r3, [r3, #0] 801374c: f403 7380 and.w r3, r3, #256 ; 0x100 8013750: 2b00 cmp r3, #0 8013752: d0f0 beq.n 8013736 } } } /* Set the new LSE configuration -----------------------------------------*/ __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState); 8013754: 687b ldr r3, [r7, #4] 8013756: 689b ldr r3, [r3, #8] 8013758: 2b01 cmp r3, #1 801375a: d106 bne.n 801376a 801375c: 4a70 ldr r2, [pc, #448] ; (8013920 ) 801375e: 4b70 ldr r3, [pc, #448] ; (8013920 ) 8013760: 6f1b ldr r3, [r3, #112] ; 0x70 8013762: f043 0301 orr.w r3, r3, #1 8013766: 6713 str r3, [r2, #112] ; 0x70 8013768: e02d b.n 80137c6 801376a: 687b ldr r3, [r7, #4] 801376c: 689b ldr r3, [r3, #8] 801376e: 2b00 cmp r3, #0 8013770: d10c bne.n 801378c 8013772: 4a6b ldr r2, [pc, #428] ; (8013920 ) 8013774: 4b6a ldr r3, [pc, #424] ; (8013920 ) 8013776: 6f1b ldr r3, [r3, #112] ; 0x70 8013778: f023 0301 bic.w r3, r3, #1 801377c: 6713 str r3, [r2, #112] ; 0x70 801377e: 4a68 ldr r2, [pc, #416] ; (8013920 ) 8013780: 4b67 ldr r3, [pc, #412] ; (8013920 ) 8013782: 6f1b ldr r3, [r3, #112] ; 0x70 8013784: f023 0304 bic.w r3, r3, #4 8013788: 6713 str r3, [r2, #112] ; 0x70 801378a: e01c b.n 80137c6 801378c: 687b ldr r3, [r7, #4] 801378e: 689b ldr r3, [r3, #8] 8013790: 2b05 cmp r3, #5 8013792: d10c bne.n 80137ae 8013794: 4a62 ldr r2, [pc, #392] ; (8013920 ) 8013796: 4b62 ldr r3, [pc, #392] ; (8013920 ) 8013798: 6f1b ldr r3, [r3, #112] ; 0x70 801379a: f043 0304 orr.w r3, r3, #4 801379e: 6713 str r3, [r2, #112] ; 0x70 80137a0: 4a5f ldr r2, [pc, #380] ; (8013920 ) 80137a2: 4b5f ldr r3, [pc, #380] ; (8013920 ) 80137a4: 6f1b ldr r3, [r3, #112] ; 0x70 80137a6: f043 0301 orr.w r3, r3, #1 80137aa: 6713 str r3, [r2, #112] ; 0x70 80137ac: e00b b.n 80137c6 80137ae: 4a5c ldr r2, [pc, #368] ; (8013920 ) 80137b0: 4b5b ldr r3, [pc, #364] ; (8013920 ) 80137b2: 6f1b ldr r3, [r3, #112] ; 0x70 80137b4: f023 0301 bic.w r3, r3, #1 80137b8: 6713 str r3, [r2, #112] ; 0x70 80137ba: 4a59 ldr r2, [pc, #356] ; (8013920 ) 80137bc: 4b58 ldr r3, [pc, #352] ; (8013920 ) 80137be: 6f1b ldr r3, [r3, #112] ; 0x70 80137c0: f023 0304 bic.w r3, r3, #4 80137c4: 6713 str r3, [r2, #112] ; 0x70 /* Check the LSE State */ if ((RCC_OscInitStruct->LSEState) != RCC_LSE_OFF) 80137c6: 687b ldr r3, [r7, #4] 80137c8: 689b ldr r3, [r3, #8] 80137ca: 2b00 cmp r3, #0 80137cc: d015 beq.n 80137fa { /* Get Start Tick*/ tickstart = HAL_GetTick(); 80137ce: f7fd ff05 bl 80115dc 80137d2: 6138 str r0, [r7, #16] /* Wait till LSE is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) 80137d4: e00a b.n 80137ec { if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) 80137d6: f7fd ff01 bl 80115dc 80137da: 4602 mov r2, r0 80137dc: 693b ldr r3, [r7, #16] 80137de: 1ad3 subs r3, r2, r3 80137e0: f241 3288 movw r2, #5000 ; 0x1388 80137e4: 4293 cmp r3, r2 80137e6: d901 bls.n 80137ec { return HAL_TIMEOUT; 80137e8: 2303 movs r3, #3 80137ea: e0d8 b.n 801399e while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) 80137ec: 4b4c ldr r3, [pc, #304] ; (8013920 ) 80137ee: 6f1b ldr r3, [r3, #112] ; 0x70 80137f0: f003 0302 and.w r3, r3, #2 80137f4: 2b00 cmp r3, #0 80137f6: d0ee beq.n 80137d6 80137f8: e014 b.n 8013824 } } else { /* Get Start Tick*/ tickstart = HAL_GetTick(); 80137fa: f7fd feef bl 80115dc 80137fe: 6138 str r0, [r7, #16] /* Wait till LSE is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) 8013800: e00a b.n 8013818 { if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) 8013802: f7fd feeb bl 80115dc 8013806: 4602 mov r2, r0 8013808: 693b ldr r3, [r7, #16] 801380a: 1ad3 subs r3, r2, r3 801380c: f241 3288 movw r2, #5000 ; 0x1388 8013810: 4293 cmp r3, r2 8013812: d901 bls.n 8013818 { return HAL_TIMEOUT; 8013814: 2303 movs r3, #3 8013816: e0c2 b.n 801399e while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) 8013818: 4b41 ldr r3, [pc, #260] ; (8013920 ) 801381a: 6f1b ldr r3, [r3, #112] ; 0x70 801381c: f003 0302 and.w r3, r3, #2 8013820: 2b00 cmp r3, #0 8013822: d1ee bne.n 8013802 } } } /* Restore clock configuration if changed */ if (pwrclkchanged == SET) 8013824: 7dfb ldrb r3, [r7, #23] 8013826: 2b01 cmp r3, #1 8013828: d105 bne.n 8013836 { __HAL_RCC_PWR_CLK_DISABLE(); 801382a: 4a3d ldr r2, [pc, #244] ; (8013920 ) 801382c: 4b3c ldr r3, [pc, #240] ; (8013920 ) 801382e: 6c1b ldr r3, [r3, #64] ; 0x40 8013830: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 8013834: 6413 str r3, [r2, #64] ; 0x40 } } /*-------------------------------- PLL Configuration -----------------------*/ /* Check the parameters */ assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState)); if ((RCC_OscInitStruct->PLL.PLLState) != RCC_PLL_NONE) 8013836: 687b ldr r3, [r7, #4] 8013838: 699b ldr r3, [r3, #24] 801383a: 2b00 cmp r3, #0 801383c: f000 80ae beq.w 801399c { /* Check if the PLL is used as system clock or not */ if (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK) 8013840: 4b37 ldr r3, [pc, #220] ; (8013920 ) 8013842: 689b ldr r3, [r3, #8] 8013844: f003 030c and.w r3, r3, #12 8013848: 2b08 cmp r3, #8 801384a: d06d beq.n 8013928 { if ((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON) 801384c: 687b ldr r3, [r7, #4] 801384e: 699b ldr r3, [r3, #24] 8013850: 2b02 cmp r3, #2 8013852: d14b bne.n 80138ec #if defined (RCC_PLLCFGR_PLLR) assert_param(IS_RCC_PLLR_VALUE(RCC_OscInitStruct->PLL.PLLR)); #endif /* Disable the main PLL. */ __HAL_RCC_PLL_DISABLE(); 8013854: 4a32 ldr r2, [pc, #200] ; (8013920 ) 8013856: 4b32 ldr r3, [pc, #200] ; (8013920 ) 8013858: 681b ldr r3, [r3, #0] 801385a: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000 801385e: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 8013860: f7fd febc bl 80115dc 8013864: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) 8013866: e008 b.n 801387a { if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) 8013868: f7fd feb8 bl 80115dc 801386c: 4602 mov r2, r0 801386e: 693b ldr r3, [r7, #16] 8013870: 1ad3 subs r3, r2, r3 8013872: 2b02 cmp r3, #2 8013874: d901 bls.n 801387a { return HAL_TIMEOUT; 8013876: 2303 movs r3, #3 8013878: e091 b.n 801399e while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) 801387a: 4b29 ldr r3, [pc, #164] ; (8013920 ) 801387c: 681b ldr r3, [r3, #0] 801387e: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 8013882: 2b00 cmp r3, #0 8013884: d1f0 bne.n 8013868 } } /* Configure the main PLL clock source, multiplication and division factors. */ #if defined (RCC_PLLCFGR_PLLR) __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, 8013886: 4926 ldr r1, [pc, #152] ; (8013920 ) 8013888: 687b ldr r3, [r7, #4] 801388a: 69da ldr r2, [r3, #28] 801388c: 687b ldr r3, [r7, #4] 801388e: 6a1b ldr r3, [r3, #32] 8013890: 431a orrs r2, r3 8013892: 687b ldr r3, [r7, #4] 8013894: 6a5b ldr r3, [r3, #36] ; 0x24 8013896: 019b lsls r3, r3, #6 8013898: 431a orrs r2, r3 801389a: 687b ldr r3, [r7, #4] 801389c: 6a9b ldr r3, [r3, #40] ; 0x28 801389e: 085b lsrs r3, r3, #1 80138a0: 3b01 subs r3, #1 80138a2: 041b lsls r3, r3, #16 80138a4: 431a orrs r2, r3 80138a6: 687b ldr r3, [r7, #4] 80138a8: 6adb ldr r3, [r3, #44] ; 0x2c 80138aa: 061b lsls r3, r3, #24 80138ac: 431a orrs r2, r3 80138ae: 687b ldr r3, [r7, #4] 80138b0: 6b1b ldr r3, [r3, #48] ; 0x30 80138b2: 071b lsls r3, r3, #28 80138b4: 4313 orrs r3, r2 80138b6: 604b str r3, [r1, #4] RCC_OscInitStruct->PLL.PLLP, RCC_OscInitStruct->PLL.PLLQ); #endif /* Enable the main PLL. */ __HAL_RCC_PLL_ENABLE(); 80138b8: 4a19 ldr r2, [pc, #100] ; (8013920 ) 80138ba: 4b19 ldr r3, [pc, #100] ; (8013920 ) 80138bc: 681b ldr r3, [r3, #0] 80138be: f043 7380 orr.w r3, r3, #16777216 ; 0x1000000 80138c2: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 80138c4: f7fd fe8a bl 80115dc 80138c8: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) 80138ca: e008 b.n 80138de { if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) 80138cc: f7fd fe86 bl 80115dc 80138d0: 4602 mov r2, r0 80138d2: 693b ldr r3, [r7, #16] 80138d4: 1ad3 subs r3, r2, r3 80138d6: 2b02 cmp r3, #2 80138d8: d901 bls.n 80138de { return HAL_TIMEOUT; 80138da: 2303 movs r3, #3 80138dc: e05f b.n 801399e while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) 80138de: 4b10 ldr r3, [pc, #64] ; (8013920 ) 80138e0: 681b ldr r3, [r3, #0] 80138e2: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 80138e6: 2b00 cmp r3, #0 80138e8: d0f0 beq.n 80138cc 80138ea: e057 b.n 801399c } } else { /* Disable the main PLL. */ __HAL_RCC_PLL_DISABLE(); 80138ec: 4a0c ldr r2, [pc, #48] ; (8013920 ) 80138ee: 4b0c ldr r3, [pc, #48] ; (8013920 ) 80138f0: 681b ldr r3, [r3, #0] 80138f2: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000 80138f6: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 80138f8: f7fd fe70 bl 80115dc 80138fc: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) 80138fe: e008 b.n 8013912 { if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) 8013900: f7fd fe6c bl 80115dc 8013904: 4602 mov r2, r0 8013906: 693b ldr r3, [r7, #16] 8013908: 1ad3 subs r3, r2, r3 801390a: 2b02 cmp r3, #2 801390c: d901 bls.n 8013912 { return HAL_TIMEOUT; 801390e: 2303 movs r3, #3 8013910: e045 b.n 801399e while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) 8013912: 4b03 ldr r3, [pc, #12] ; (8013920 ) 8013914: 681b ldr r3, [r3, #0] 8013916: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 801391a: 2b00 cmp r3, #0 801391c: d1f0 bne.n 8013900 801391e: e03d b.n 801399c 8013920: 40023800 .word 0x40023800 8013924: 40007000 .word 0x40007000 } } else { /* Do not return HAL_ERROR if request repeats the current configuration */ pll_config = RCC->PLLCFGR; 8013928: 4b1f ldr r3, [pc, #124] ; (80139a8 ) 801392a: 685b ldr r3, [r3, #4] 801392c: 60fb str r3, [r7, #12] #if defined (RCC_PLLCFGR_PLLR) if (((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) || 801392e: 687b ldr r3, [r7, #4] 8013930: 699b ldr r3, [r3, #24] 8013932: 2b01 cmp r3, #1 8013934: d030 beq.n 8013998 (READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || 8013936: 68fb ldr r3, [r7, #12] 8013938: f403 0280 and.w r2, r3, #4194304 ; 0x400000 801393c: 687b ldr r3, [r7, #4] 801393e: 69db ldr r3, [r3, #28] if (((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) || 8013940: 429a cmp r2, r3 8013942: d129 bne.n 8013998 (READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != RCC_OscInitStruct->PLL.PLLM) || 8013944: 68fb ldr r3, [r7, #12] 8013946: f003 023f and.w r2, r3, #63 ; 0x3f 801394a: 687b ldr r3, [r7, #4] 801394c: 6a1b ldr r3, [r3, #32] (READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || 801394e: 429a cmp r2, r3 8013950: d122 bne.n 8013998 (READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) || 8013952: 68fa ldr r2, [r7, #12] 8013954: f647 73c0 movw r3, #32704 ; 0x7fc0 8013958: 4013 ands r3, r2 801395a: 687a ldr r2, [r7, #4] 801395c: 6a52 ldr r2, [r2, #36] ; 0x24 801395e: 0192 lsls r2, r2, #6 (READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != RCC_OscInitStruct->PLL.PLLM) || 8013960: 4293 cmp r3, r2 8013962: d119 bne.n 8013998 (READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != ((((RCC_OscInitStruct->PLL.PLLP) >> 1U) - 1U) << RCC_PLLCFGR_PLLP_Pos)) || 8013964: 68fb ldr r3, [r7, #12] 8013966: f403 3240 and.w r2, r3, #196608 ; 0x30000 801396a: 687b ldr r3, [r7, #4] 801396c: 6a9b ldr r3, [r3, #40] ; 0x28 801396e: 085b lsrs r3, r3, #1 8013970: 3b01 subs r3, #1 8013972: 041b lsls r3, r3, #16 (READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) || 8013974: 429a cmp r2, r3 8013976: d10f bne.n 8013998 (READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != (RCC_OscInitStruct->PLL.PLLQ << RCC_PLLCFGR_PLLQ_Pos)) || 8013978: 68fb ldr r3, [r7, #12] 801397a: f003 6270 and.w r2, r3, #251658240 ; 0xf000000 801397e: 687b ldr r3, [r7, #4] 8013980: 6adb ldr r3, [r3, #44] ; 0x2c 8013982: 061b lsls r3, r3, #24 (READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != ((((RCC_OscInitStruct->PLL.PLLP) >> 1U) - 1U) << RCC_PLLCFGR_PLLP_Pos)) || 8013984: 429a cmp r2, r3 8013986: d107 bne.n 8013998 (READ_BIT(pll_config, RCC_PLLCFGR_PLLR) != (RCC_OscInitStruct->PLL.PLLR << RCC_PLLCFGR_PLLR_Pos))) 8013988: 68fb ldr r3, [r7, #12] 801398a: f003 42e0 and.w r2, r3, #1879048192 ; 0x70000000 801398e: 687b ldr r3, [r7, #4] 8013990: 6b1b ldr r3, [r3, #48] ; 0x30 8013992: 071b lsls r3, r3, #28 (READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != (RCC_OscInitStruct->PLL.PLLQ << RCC_PLLCFGR_PLLQ_Pos)) || 8013994: 429a cmp r2, r3 8013996: d001 beq.n 801399c (READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) || (READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != ((((RCC_OscInitStruct->PLL.PLLP) >> 1U) - 1U) << RCC_PLLCFGR_PLLP_Pos)) || (READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != (RCC_OscInitStruct->PLL.PLLQ << RCC_PLLCFGR_PLLQ_Pos))) #endif { return HAL_ERROR; 8013998: 2301 movs r3, #1 801399a: e000 b.n 801399e } } } return HAL_OK; 801399c: 2300 movs r3, #0 } 801399e: 4618 mov r0, r3 80139a0: 3718 adds r7, #24 80139a2: 46bd mov sp, r7 80139a4: bd80 pop {r7, pc} 80139a6: bf00 nop 80139a8: 40023800 .word 0x40023800 080139ac : * HPRE[3:0] bits to ensure that HCLK not exceed the maximum allowed frequency * (for more details refer to section above "Initialization/de-initialization functions") * @retval None */ HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency) { 80139ac: b580 push {r7, lr} 80139ae: b084 sub sp, #16 80139b0: af00 add r7, sp, #0 80139b2: 6078 str r0, [r7, #4] 80139b4: 6039 str r1, [r7, #0] uint32_t tickstart = 0; 80139b6: 2300 movs r3, #0 80139b8: 60fb str r3, [r7, #12] /* Check Null pointer */ if (RCC_ClkInitStruct == NULL) 80139ba: 687b ldr r3, [r7, #4] 80139bc: 2b00 cmp r3, #0 80139be: d101 bne.n 80139c4 { return HAL_ERROR; 80139c0: 2301 movs r3, #1 80139c2: e0d0 b.n 8013b66 /* To correctly read data from FLASH memory, the number of wait states (LATENCY) must be correctly programmed according to the frequency of the CPU clock (HCLK) and the supply voltage of the device. */ /* Increasing the CPU frequency */ if (FLatency > __HAL_FLASH_GET_LATENCY()) 80139c4: 4b6a ldr r3, [pc, #424] ; (8013b70 ) 80139c6: 681b ldr r3, [r3, #0] 80139c8: f003 020f and.w r2, r3, #15 80139cc: 683b ldr r3, [r7, #0] 80139ce: 429a cmp r2, r3 80139d0: d210 bcs.n 80139f4 { /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ __HAL_FLASH_SET_LATENCY(FLatency); 80139d2: 4967 ldr r1, [pc, #412] ; (8013b70 ) 80139d4: 4b66 ldr r3, [pc, #408] ; (8013b70 ) 80139d6: 681b ldr r3, [r3, #0] 80139d8: f023 020f bic.w r2, r3, #15 80139dc: 683b ldr r3, [r7, #0] 80139de: 4313 orrs r3, r2 80139e0: 600b str r3, [r1, #0] /* Check that the new number of wait states is taken into account to access the Flash memory by reading the FLASH_ACR register */ if (__HAL_FLASH_GET_LATENCY() != FLatency) 80139e2: 4b63 ldr r3, [pc, #396] ; (8013b70 ) 80139e4: 681b ldr r3, [r3, #0] 80139e6: f003 020f and.w r2, r3, #15 80139ea: 683b ldr r3, [r7, #0] 80139ec: 429a cmp r2, r3 80139ee: d001 beq.n 80139f4 { return HAL_ERROR; 80139f0: 2301 movs r3, #1 80139f2: e0b8 b.n 8013b66 } } /*-------------------------- HCLK Configuration --------------------------*/ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) 80139f4: 687b ldr r3, [r7, #4] 80139f6: 681b ldr r3, [r3, #0] 80139f8: f003 0302 and.w r3, r3, #2 80139fc: 2b00 cmp r3, #0 80139fe: d020 beq.n 8013a42 { /* Set the highest APBx dividers in order to ensure that we do not go through a non-spec phase whatever we decrease or increase HCLK. */ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) 8013a00: 687b ldr r3, [r7, #4] 8013a02: 681b ldr r3, [r3, #0] 8013a04: f003 0304 and.w r3, r3, #4 8013a08: 2b00 cmp r3, #0 8013a0a: d005 beq.n 8013a18 { MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16); 8013a0c: 4a59 ldr r2, [pc, #356] ; (8013b74 ) 8013a0e: 4b59 ldr r3, [pc, #356] ; (8013b74 ) 8013a10: 689b ldr r3, [r3, #8] 8013a12: f443 53e0 orr.w r3, r3, #7168 ; 0x1c00 8013a16: 6093 str r3, [r2, #8] } if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) 8013a18: 687b ldr r3, [r7, #4] 8013a1a: 681b ldr r3, [r3, #0] 8013a1c: f003 0308 and.w r3, r3, #8 8013a20: 2b00 cmp r3, #0 8013a22: d005 beq.n 8013a30 { MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, (RCC_HCLK_DIV16 << 3)); 8013a24: 4a53 ldr r2, [pc, #332] ; (8013b74 ) 8013a26: 4b53 ldr r3, [pc, #332] ; (8013b74 ) 8013a28: 689b ldr r3, [r3, #8] 8013a2a: f443 4360 orr.w r3, r3, #57344 ; 0xe000 8013a2e: 6093 str r3, [r2, #8] } /* Set the new HCLK clock divider */ assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); 8013a30: 4950 ldr r1, [pc, #320] ; (8013b74 ) 8013a32: 4b50 ldr r3, [pc, #320] ; (8013b74 ) 8013a34: 689b ldr r3, [r3, #8] 8013a36: f023 02f0 bic.w r2, r3, #240 ; 0xf0 8013a3a: 687b ldr r3, [r7, #4] 8013a3c: 689b ldr r3, [r3, #8] 8013a3e: 4313 orrs r3, r2 8013a40: 608b str r3, [r1, #8] } /*------------------------- SYSCLK Configuration ---------------------------*/ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) 8013a42: 687b ldr r3, [r7, #4] 8013a44: 681b ldr r3, [r3, #0] 8013a46: f003 0301 and.w r3, r3, #1 8013a4a: 2b00 cmp r3, #0 8013a4c: d040 beq.n 8013ad0 { assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); /* HSE is selected as System Clock Source */ if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) 8013a4e: 687b ldr r3, [r7, #4] 8013a50: 685b ldr r3, [r3, #4] 8013a52: 2b01 cmp r3, #1 8013a54: d107 bne.n 8013a66 { /* Check the HSE ready flag */ if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) 8013a56: 4b47 ldr r3, [pc, #284] ; (8013b74 ) 8013a58: 681b ldr r3, [r3, #0] 8013a5a: f403 3300 and.w r3, r3, #131072 ; 0x20000 8013a5e: 2b00 cmp r3, #0 8013a60: d115 bne.n 8013a8e { return HAL_ERROR; 8013a62: 2301 movs r3, #1 8013a64: e07f b.n 8013b66 } } /* PLL is selected as System Clock Source */ else if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) 8013a66: 687b ldr r3, [r7, #4] 8013a68: 685b ldr r3, [r3, #4] 8013a6a: 2b02 cmp r3, #2 8013a6c: d107 bne.n 8013a7e { /* Check the PLL ready flag */ if (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) 8013a6e: 4b41 ldr r3, [pc, #260] ; (8013b74 ) 8013a70: 681b ldr r3, [r3, #0] 8013a72: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 8013a76: 2b00 cmp r3, #0 8013a78: d109 bne.n 8013a8e { return HAL_ERROR; 8013a7a: 2301 movs r3, #1 8013a7c: e073 b.n 8013b66 } /* HSI is selected as System Clock Source */ else { /* Check the HSI ready flag */ if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) 8013a7e: 4b3d ldr r3, [pc, #244] ; (8013b74 ) 8013a80: 681b ldr r3, [r3, #0] 8013a82: f003 0302 and.w r3, r3, #2 8013a86: 2b00 cmp r3, #0 8013a88: d101 bne.n 8013a8e { return HAL_ERROR; 8013a8a: 2301 movs r3, #1 8013a8c: e06b b.n 8013b66 } } __HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource); 8013a8e: 4939 ldr r1, [pc, #228] ; (8013b74 ) 8013a90: 4b38 ldr r3, [pc, #224] ; (8013b74 ) 8013a92: 689b ldr r3, [r3, #8] 8013a94: f023 0203 bic.w r2, r3, #3 8013a98: 687b ldr r3, [r7, #4] 8013a9a: 685b ldr r3, [r3, #4] 8013a9c: 4313 orrs r3, r2 8013a9e: 608b str r3, [r1, #8] /* Get Start Tick*/ tickstart = HAL_GetTick(); 8013aa0: f7fd fd9c bl 80115dc 8013aa4: 60f8 str r0, [r7, #12] while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) 8013aa6: e00a b.n 8013abe { if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) 8013aa8: f7fd fd98 bl 80115dc 8013aac: 4602 mov r2, r0 8013aae: 68fb ldr r3, [r7, #12] 8013ab0: 1ad3 subs r3, r2, r3 8013ab2: f241 3288 movw r2, #5000 ; 0x1388 8013ab6: 4293 cmp r3, r2 8013ab8: d901 bls.n 8013abe { return HAL_TIMEOUT; 8013aba: 2303 movs r3, #3 8013abc: e053 b.n 8013b66 while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) 8013abe: 4b2d ldr r3, [pc, #180] ; (8013b74 ) 8013ac0: 689b ldr r3, [r3, #8] 8013ac2: f003 020c and.w r2, r3, #12 8013ac6: 687b ldr r3, [r7, #4] 8013ac8: 685b ldr r3, [r3, #4] 8013aca: 009b lsls r3, r3, #2 8013acc: 429a cmp r2, r3 8013ace: d1eb bne.n 8013aa8 } } } /* Decreasing the number of wait states because of lower CPU frequency */ if (FLatency < __HAL_FLASH_GET_LATENCY()) 8013ad0: 4b27 ldr r3, [pc, #156] ; (8013b70 ) 8013ad2: 681b ldr r3, [r3, #0] 8013ad4: f003 020f and.w r2, r3, #15 8013ad8: 683b ldr r3, [r7, #0] 8013ada: 429a cmp r2, r3 8013adc: d910 bls.n 8013b00 { /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ __HAL_FLASH_SET_LATENCY(FLatency); 8013ade: 4924 ldr r1, [pc, #144] ; (8013b70 ) 8013ae0: 4b23 ldr r3, [pc, #140] ; (8013b70 ) 8013ae2: 681b ldr r3, [r3, #0] 8013ae4: f023 020f bic.w r2, r3, #15 8013ae8: 683b ldr r3, [r7, #0] 8013aea: 4313 orrs r3, r2 8013aec: 600b str r3, [r1, #0] /* Check that the new number of wait states is taken into account to access the Flash memory by reading the FLASH_ACR register */ if (__HAL_FLASH_GET_LATENCY() != FLatency) 8013aee: 4b20 ldr r3, [pc, #128] ; (8013b70 ) 8013af0: 681b ldr r3, [r3, #0] 8013af2: f003 020f and.w r2, r3, #15 8013af6: 683b ldr r3, [r7, #0] 8013af8: 429a cmp r2, r3 8013afa: d001 beq.n 8013b00 { return HAL_ERROR; 8013afc: 2301 movs r3, #1 8013afe: e032 b.n 8013b66 } } /*-------------------------- PCLK1 Configuration ---------------------------*/ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) 8013b00: 687b ldr r3, [r7, #4] 8013b02: 681b ldr r3, [r3, #0] 8013b04: f003 0304 and.w r3, r3, #4 8013b08: 2b00 cmp r3, #0 8013b0a: d008 beq.n 8013b1e { assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); 8013b0c: 4919 ldr r1, [pc, #100] ; (8013b74 ) 8013b0e: 4b19 ldr r3, [pc, #100] ; (8013b74 ) 8013b10: 689b ldr r3, [r3, #8] 8013b12: f423 52e0 bic.w r2, r3, #7168 ; 0x1c00 8013b16: 687b ldr r3, [r7, #4] 8013b18: 68db ldr r3, [r3, #12] 8013b1a: 4313 orrs r3, r2 8013b1c: 608b str r3, [r1, #8] } /*-------------------------- PCLK2 Configuration ---------------------------*/ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) 8013b1e: 687b ldr r3, [r7, #4] 8013b20: 681b ldr r3, [r3, #0] 8013b22: f003 0308 and.w r3, r3, #8 8013b26: 2b00 cmp r3, #0 8013b28: d009 beq.n 8013b3e { assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3)); 8013b2a: 4912 ldr r1, [pc, #72] ; (8013b74 ) 8013b2c: 4b11 ldr r3, [pc, #68] ; (8013b74 ) 8013b2e: 689b ldr r3, [r3, #8] 8013b30: f423 4260 bic.w r2, r3, #57344 ; 0xe000 8013b34: 687b ldr r3, [r7, #4] 8013b36: 691b ldr r3, [r3, #16] 8013b38: 00db lsls r3, r3, #3 8013b3a: 4313 orrs r3, r2 8013b3c: 608b str r3, [r1, #8] } /* Update the SystemCoreClock global variable */ SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos]; 8013b3e: f000 f821 bl 8013b84 8013b42: 4601 mov r1, r0 8013b44: 4b0b ldr r3, [pc, #44] ; (8013b74 ) 8013b46: 689b ldr r3, [r3, #8] 8013b48: 091b lsrs r3, r3, #4 8013b4a: f003 030f and.w r3, r3, #15 8013b4e: 4a0a ldr r2, [pc, #40] ; (8013b78 ) 8013b50: 5cd3 ldrb r3, [r2, r3] 8013b52: fa21 f303 lsr.w r3, r1, r3 8013b56: 4a09 ldr r2, [pc, #36] ; (8013b7c ) 8013b58: 6013 str r3, [r2, #0] /* Configure the source of time base considering new system clocks settings*/ HAL_InitTick(uwTickPrio); 8013b5a: 4b09 ldr r3, [pc, #36] ; (8013b80 ) 8013b5c: 681b ldr r3, [r3, #0] 8013b5e: 4618 mov r0, r3 8013b60: f7fd fcf8 bl 8011554 return HAL_OK; 8013b64: 2300 movs r3, #0 } 8013b66: 4618 mov r0, r3 8013b68: 3710 adds r7, #16 8013b6a: 46bd mov sp, r7 8013b6c: bd80 pop {r7, pc} 8013b6e: bf00 nop 8013b70: 40023c00 .word 0x40023c00 8013b74: 40023800 .word 0x40023800 8013b78: 0801ae50 .word 0x0801ae50 8013b7c: 20020994 .word 0x20020994 8013b80: 200209a0 .word 0x200209a0 08013b84 : * * * @retval SYSCLK frequency */ uint32_t HAL_RCC_GetSysClockFreq(void) { 8013b84: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 8013b88: b087 sub sp, #28 8013b8a: af00 add r7, sp, #0 uint32_t pllm = 0, pllvco = 0, pllp = 0; 8013b8c: 2200 movs r2, #0 8013b8e: 60fa str r2, [r7, #12] 8013b90: 2200 movs r2, #0 8013b92: 617a str r2, [r7, #20] 8013b94: 2200 movs r2, #0 8013b96: 60ba str r2, [r7, #8] uint32_t sysclockfreq = 0; 8013b98: 2200 movs r2, #0 8013b9a: 613a str r2, [r7, #16] /* Get SYSCLK source -------------------------------------------------------*/ switch (RCC->CFGR & RCC_CFGR_SWS) 8013b9c: 4a51 ldr r2, [pc, #324] ; (8013ce4 ) 8013b9e: 6892 ldr r2, [r2, #8] 8013ba0: f002 020c and.w r2, r2, #12 8013ba4: 2a04 cmp r2, #4 8013ba6: d007 beq.n 8013bb8 8013ba8: 2a08 cmp r2, #8 8013baa: d008 beq.n 8013bbe 8013bac: 2a00 cmp r2, #0 8013bae: f040 8090 bne.w 8013cd2 { case RCC_SYSCLKSOURCE_STATUS_HSI: /* HSI used as system clock source */ { sysclockfreq = HSI_VALUE; 8013bb2: 4b4d ldr r3, [pc, #308] ; (8013ce8 ) 8013bb4: 613b str r3, [r7, #16] break; 8013bb6: e08f b.n 8013cd8 } case RCC_SYSCLKSOURCE_STATUS_HSE: /* HSE used as system clock source */ { sysclockfreq = HSE_VALUE; 8013bb8: 4b4c ldr r3, [pc, #304] ; (8013cec ) 8013bba: 613b str r3, [r7, #16] break; 8013bbc: e08c b.n 8013cd8 } case RCC_SYSCLKSOURCE_STATUS_PLLCLK: /* PLL used as system clock source */ { /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLLM) * PLLN SYSCLK = PLL_VCO / PLLP */ pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM; 8013bbe: 4a49 ldr r2, [pc, #292] ; (8013ce4 ) 8013bc0: 6852 ldr r2, [r2, #4] 8013bc2: f002 023f and.w r2, r2, #63 ; 0x3f 8013bc6: 60fa str r2, [r7, #12] if (__HAL_RCC_GET_PLL_OSCSOURCE() != RCC_PLLCFGR_PLLSRC_HSI) 8013bc8: 4a46 ldr r2, [pc, #280] ; (8013ce4 ) 8013bca: 6852 ldr r2, [r2, #4] 8013bcc: f402 0280 and.w r2, r2, #4194304 ; 0x400000 8013bd0: 2a00 cmp r2, #0 8013bd2: d023 beq.n 8013c1c { /* HSE used as PLL clock source */ pllvco = (uint32_t)((((uint64_t) HSE_VALUE * ((uint64_t)((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)))) / (uint64_t)pllm); 8013bd4: 4b43 ldr r3, [pc, #268] ; (8013ce4 ) 8013bd6: 685b ldr r3, [r3, #4] 8013bd8: 099b lsrs r3, r3, #6 8013bda: f04f 0400 mov.w r4, #0 8013bde: f240 11ff movw r1, #511 ; 0x1ff 8013be2: f04f 0200 mov.w r2, #0 8013be6: ea03 0301 and.w r3, r3, r1 8013bea: ea04 0402 and.w r4, r4, r2 8013bee: 4a3f ldr r2, [pc, #252] ; (8013cec ) 8013bf0: fb02 f104 mul.w r1, r2, r4 8013bf4: 2200 movs r2, #0 8013bf6: fb02 f203 mul.w r2, r2, r3 8013bfa: 440a add r2, r1 8013bfc: 493b ldr r1, [pc, #236] ; (8013cec ) 8013bfe: fba3 0101 umull r0, r1, r3, r1 8013c02: 1853 adds r3, r2, r1 8013c04: 4619 mov r1, r3 8013c06: 68fb ldr r3, [r7, #12] 8013c08: f04f 0400 mov.w r4, #0 8013c0c: 461a mov r2, r3 8013c0e: 4623 mov r3, r4 8013c10: f7ec fb1a bl 8000248 <__aeabi_uldivmod> 8013c14: 4603 mov r3, r0 8013c16: 460c mov r4, r1 8013c18: 617b str r3, [r7, #20] 8013c1a: e04c b.n 8013cb6 } else { /* HSI used as PLL clock source */ pllvco = (uint32_t)((((uint64_t) HSI_VALUE * ((uint64_t)((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)))) / (uint64_t)pllm); 8013c1c: 4a31 ldr r2, [pc, #196] ; (8013ce4 ) 8013c1e: 6852 ldr r2, [r2, #4] 8013c20: 0992 lsrs r2, r2, #6 8013c22: 4611 mov r1, r2 8013c24: f04f 0200 mov.w r2, #0 8013c28: f240 15ff movw r5, #511 ; 0x1ff 8013c2c: f04f 0600 mov.w r6, #0 8013c30: ea05 0501 and.w r5, r5, r1 8013c34: ea06 0602 and.w r6, r6, r2 8013c38: 4629 mov r1, r5 8013c3a: 4632 mov r2, r6 8013c3c: ea4f 1b42 mov.w fp, r2, lsl #5 8013c40: ea4b 6bd1 orr.w fp, fp, r1, lsr #27 8013c44: ea4f 1a41 mov.w sl, r1, lsl #5 8013c48: 4651 mov r1, sl 8013c4a: 465a mov r2, fp 8013c4c: 46aa mov sl, r5 8013c4e: 46b3 mov fp, r6 8013c50: 4655 mov r5, sl 8013c52: 465e mov r6, fp 8013c54: 1b4d subs r5, r1, r5 8013c56: eb62 0606 sbc.w r6, r2, r6 8013c5a: 4629 mov r1, r5 8013c5c: 4632 mov r2, r6 8013c5e: 0194 lsls r4, r2, #6 8013c60: ea44 6491 orr.w r4, r4, r1, lsr #26 8013c64: 018b lsls r3, r1, #6 8013c66: 1a5b subs r3, r3, r1 8013c68: eb64 0402 sbc.w r4, r4, r2 8013c6c: ea4f 09c4 mov.w r9, r4, lsl #3 8013c70: ea49 7953 orr.w r9, r9, r3, lsr #29 8013c74: ea4f 08c3 mov.w r8, r3, lsl #3 8013c78: 4643 mov r3, r8 8013c7a: 464c mov r4, r9 8013c7c: 4655 mov r5, sl 8013c7e: 465e mov r6, fp 8013c80: 18ed adds r5, r5, r3 8013c82: eb46 0604 adc.w r6, r6, r4 8013c86: 462b mov r3, r5 8013c88: 4634 mov r4, r6 8013c8a: 02a2 lsls r2, r4, #10 8013c8c: 607a str r2, [r7, #4] 8013c8e: 687a ldr r2, [r7, #4] 8013c90: ea42 5293 orr.w r2, r2, r3, lsr #22 8013c94: 607a str r2, [r7, #4] 8013c96: 029b lsls r3, r3, #10 8013c98: 603b str r3, [r7, #0] 8013c9a: e897 0018 ldmia.w r7, {r3, r4} 8013c9e: 4618 mov r0, r3 8013ca0: 4621 mov r1, r4 8013ca2: 68fb ldr r3, [r7, #12] 8013ca4: f04f 0400 mov.w r4, #0 8013ca8: 461a mov r2, r3 8013caa: 4623 mov r3, r4 8013cac: f7ec facc bl 8000248 <__aeabi_uldivmod> 8013cb0: 4603 mov r3, r0 8013cb2: 460c mov r4, r1 8013cb4: 617b str r3, [r7, #20] } pllp = ((((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >> RCC_PLLCFGR_PLLP_Pos) + 1) * 2); 8013cb6: 4b0b ldr r3, [pc, #44] ; (8013ce4 ) 8013cb8: 685b ldr r3, [r3, #4] 8013cba: 0c1b lsrs r3, r3, #16 8013cbc: f003 0303 and.w r3, r3, #3 8013cc0: 3301 adds r3, #1 8013cc2: 005b lsls r3, r3, #1 8013cc4: 60bb str r3, [r7, #8] sysclockfreq = pllvco / pllp; 8013cc6: 697a ldr r2, [r7, #20] 8013cc8: 68bb ldr r3, [r7, #8] 8013cca: fbb2 f3f3 udiv r3, r2, r3 8013cce: 613b str r3, [r7, #16] break; 8013cd0: e002 b.n 8013cd8 } default: { sysclockfreq = HSI_VALUE; 8013cd2: 4b05 ldr r3, [pc, #20] ; (8013ce8 ) 8013cd4: 613b str r3, [r7, #16] break; 8013cd6: bf00 nop } } return sysclockfreq; 8013cd8: 693b ldr r3, [r7, #16] } 8013cda: 4618 mov r0, r3 8013cdc: 371c adds r7, #28 8013cde: 46bd mov sp, r7 8013ce0: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 8013ce4: 40023800 .word 0x40023800 8013ce8: 00f42400 .word 0x00f42400 8013cec: 017d7840 .word 0x017d7840 08013cf0 : * right HCLK value. Otherwise, any configuration based on this function will be incorrect. * @note The SystemCoreClock CMSIS variable is used to store System Clock Frequency. * @retval HCLK frequency */ uint32_t HAL_RCC_GetHCLKFreq(void) { 8013cf0: b480 push {r7} 8013cf2: af00 add r7, sp, #0 return SystemCoreClock; 8013cf4: 4b03 ldr r3, [pc, #12] ; (8013d04 ) 8013cf6: 681b ldr r3, [r3, #0] } 8013cf8: 4618 mov r0, r3 8013cfa: 46bd mov sp, r7 8013cfc: f85d 7b04 ldr.w r7, [sp], #4 8013d00: 4770 bx lr 8013d02: bf00 nop 8013d04: 20020994 .word 0x20020994 08013d08 : * @note Each time PCLK1 changes, this function must be called to update the * right PCLK1 value. Otherwise, any configuration based on this function will be incorrect. * @retval PCLK1 frequency */ uint32_t HAL_RCC_GetPCLK1Freq(void) { 8013d08: b580 push {r7, lr} 8013d0a: af00 add r7, sp, #0 /* Get HCLK source and Compute PCLK1 frequency ---------------------------*/ return (HAL_RCC_GetHCLKFreq() >> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE1) >> RCC_CFGR_PPRE1_Pos]); 8013d0c: f7ff fff0 bl 8013cf0 8013d10: 4601 mov r1, r0 8013d12: 4b05 ldr r3, [pc, #20] ; (8013d28 ) 8013d14: 689b ldr r3, [r3, #8] 8013d16: 0a9b lsrs r3, r3, #10 8013d18: f003 0307 and.w r3, r3, #7 8013d1c: 4a03 ldr r2, [pc, #12] ; (8013d2c ) 8013d1e: 5cd3 ldrb r3, [r2, r3] 8013d20: fa21 f303 lsr.w r3, r1, r3 } 8013d24: 4618 mov r0, r3 8013d26: bd80 pop {r7, pc} 8013d28: 40023800 .word 0x40023800 8013d2c: 0801ae60 .word 0x0801ae60 08013d30 : * @note Each time PCLK2 changes, this function must be called to update the * right PCLK2 value. Otherwise, any configuration based on this function will be incorrect. * @retval PCLK2 frequency */ uint32_t HAL_RCC_GetPCLK2Freq(void) { 8013d30: b580 push {r7, lr} 8013d32: af00 add r7, sp, #0 /* Get HCLK source and Compute PCLK2 frequency ---------------------------*/ return (HAL_RCC_GetHCLKFreq() >> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE2) >> RCC_CFGR_PPRE2_Pos]); 8013d34: f7ff ffdc bl 8013cf0 8013d38: 4601 mov r1, r0 8013d3a: 4b05 ldr r3, [pc, #20] ; (8013d50 ) 8013d3c: 689b ldr r3, [r3, #8] 8013d3e: 0b5b lsrs r3, r3, #13 8013d40: f003 0307 and.w r3, r3, #7 8013d44: 4a03 ldr r2, [pc, #12] ; (8013d54 ) 8013d46: 5cd3 ldrb r3, [r2, r3] 8013d48: fa21 f303 lsr.w r3, r1, r3 } 8013d4c: 4618 mov r0, r3 8013d4e: bd80 pop {r7, pc} 8013d50: 40023800 .word 0x40023800 8013d54: 0801ae60 .word 0x0801ae60 08013d58 : * the backup registers) are set to their reset values. * * @retval HAL status */ HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit) { 8013d58: b580 push {r7, lr} 8013d5a: b088 sub sp, #32 8013d5c: af00 add r7, sp, #0 8013d5e: 6078 str r0, [r7, #4] uint32_t tickstart = 0; 8013d60: 2300 movs r3, #0 8013d62: 617b str r3, [r7, #20] uint32_t tmpreg0 = 0; 8013d64: 2300 movs r3, #0 8013d66: 613b str r3, [r7, #16] uint32_t tmpreg1 = 0; 8013d68: 2300 movs r3, #0 8013d6a: 60fb str r3, [r7, #12] uint32_t plli2sused = 0; 8013d6c: 2300 movs r3, #0 8013d6e: 61fb str r3, [r7, #28] uint32_t pllsaiused = 0; 8013d70: 2300 movs r3, #0 8013d72: 61bb str r3, [r7, #24] /* Check the parameters */ assert_param(IS_RCC_PERIPHCLOCK(PeriphClkInit->PeriphClockSelection)); /*----------------------------------- I2S configuration ----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2S) == (RCC_PERIPHCLK_I2S)) 8013d74: 687b ldr r3, [r7, #4] 8013d76: 681b ldr r3, [r3, #0] 8013d78: f003 0301 and.w r3, r3, #1 8013d7c: 2b00 cmp r3, #0 8013d7e: d012 beq.n 8013da6 { /* Check the parameters */ assert_param(IS_RCC_I2SCLKSOURCE(PeriphClkInit->I2sClockSelection)); /* Configure I2S Clock source */ __HAL_RCC_I2S_CONFIG(PeriphClkInit->I2sClockSelection); 8013d80: 4a69 ldr r2, [pc, #420] ; (8013f28 ) 8013d82: 4b69 ldr r3, [pc, #420] ; (8013f28 ) 8013d84: 689b ldr r3, [r3, #8] 8013d86: f423 0300 bic.w r3, r3, #8388608 ; 0x800000 8013d8a: 6093 str r3, [r2, #8] 8013d8c: 4966 ldr r1, [pc, #408] ; (8013f28 ) 8013d8e: 4b66 ldr r3, [pc, #408] ; (8013f28 ) 8013d90: 689a ldr r2, [r3, #8] 8013d92: 687b ldr r3, [r7, #4] 8013d94: 6b5b ldr r3, [r3, #52] ; 0x34 8013d96: 4313 orrs r3, r2 8013d98: 608b str r3, [r1, #8] /* Enable the PLLI2S when it's used as clock source for I2S */ if(PeriphClkInit->I2sClockSelection == RCC_I2SCLKSOURCE_PLLI2S) 8013d9a: 687b ldr r3, [r7, #4] 8013d9c: 6b5b ldr r3, [r3, #52] ; 0x34 8013d9e: 2b00 cmp r3, #0 8013da0: d101 bne.n 8013da6 { plli2sused = 1; 8013da2: 2301 movs r3, #1 8013da4: 61fb str r3, [r7, #28] } } /*------------------------------------ SAI1 configuration --------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == (RCC_PERIPHCLK_SAI1)) 8013da6: 687b ldr r3, [r7, #4] 8013da8: 681b ldr r3, [r3, #0] 8013daa: f403 2300 and.w r3, r3, #524288 ; 0x80000 8013dae: 2b00 cmp r3, #0 8013db0: d017 beq.n 8013de2 { /* Check the parameters */ assert_param(IS_RCC_SAI1CLKSOURCE(PeriphClkInit->Sai1ClockSelection)); /* Configure SAI1 Clock source */ __HAL_RCC_SAI1_CONFIG(PeriphClkInit->Sai1ClockSelection); 8013db2: 495d ldr r1, [pc, #372] ; (8013f28 ) 8013db4: 4b5c ldr r3, [pc, #368] ; (8013f28 ) 8013db6: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 8013dba: f423 1240 bic.w r2, r3, #3145728 ; 0x300000 8013dbe: 687b ldr r3, [r7, #4] 8013dc0: 6bdb ldr r3, [r3, #60] ; 0x3c 8013dc2: 4313 orrs r3, r2 8013dc4: f8c1 308c str.w r3, [r1, #140] ; 0x8c /* Enable the PLLI2S when it's used as clock source for SAI */ if(PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLI2S) 8013dc8: 687b ldr r3, [r7, #4] 8013dca: 6bdb ldr r3, [r3, #60] ; 0x3c 8013dcc: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000 8013dd0: d101 bne.n 8013dd6 { plli2sused = 1; 8013dd2: 2301 movs r3, #1 8013dd4: 61fb str r3, [r7, #28] } /* Enable the PLLSAI when it's used as clock source for SAI */ if(PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI) 8013dd6: 687b ldr r3, [r7, #4] 8013dd8: 6bdb ldr r3, [r3, #60] ; 0x3c 8013dda: 2b00 cmp r3, #0 8013ddc: d101 bne.n 8013de2 { pllsaiused = 1; 8013dde: 2301 movs r3, #1 8013de0: 61bb str r3, [r7, #24] } } /*------------------------------------ SAI2 configuration --------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == (RCC_PERIPHCLK_SAI2)) 8013de2: 687b ldr r3, [r7, #4] 8013de4: 681b ldr r3, [r3, #0] 8013de6: f403 1380 and.w r3, r3, #1048576 ; 0x100000 8013dea: 2b00 cmp r3, #0 8013dec: d017 beq.n 8013e1e { /* Check the parameters */ assert_param(IS_RCC_SAI2CLKSOURCE(PeriphClkInit->Sai2ClockSelection)); /* Configure SAI2 Clock source */ __HAL_RCC_SAI2_CONFIG(PeriphClkInit->Sai2ClockSelection); 8013dee: 494e ldr r1, [pc, #312] ; (8013f28 ) 8013df0: 4b4d ldr r3, [pc, #308] ; (8013f28 ) 8013df2: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 8013df6: f423 0240 bic.w r2, r3, #12582912 ; 0xc00000 8013dfa: 687b ldr r3, [r7, #4] 8013dfc: 6c1b ldr r3, [r3, #64] ; 0x40 8013dfe: 4313 orrs r3, r2 8013e00: f8c1 308c str.w r3, [r1, #140] ; 0x8c /* Enable the PLLI2S when it's used as clock source for SAI */ if(PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S) 8013e04: 687b ldr r3, [r7, #4] 8013e06: 6c1b ldr r3, [r3, #64] ; 0x40 8013e08: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000 8013e0c: d101 bne.n 8013e12 { plli2sused = 1; 8013e0e: 2301 movs r3, #1 8013e10: 61fb str r3, [r7, #28] } /* Enable the PLLSAI when it's used as clock source for SAI */ if(PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI) 8013e12: 687b ldr r3, [r7, #4] 8013e14: 6c1b ldr r3, [r3, #64] ; 0x40 8013e16: 2b00 cmp r3, #0 8013e18: d101 bne.n 8013e1e { pllsaiused = 1; 8013e1a: 2301 movs r3, #1 8013e1c: 61bb str r3, [r7, #24] } } /*-------------------------------------- SPDIF-RX Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SPDIFRX) == RCC_PERIPHCLK_SPDIFRX) 8013e1e: 687b ldr r3, [r7, #4] 8013e20: 681b ldr r3, [r3, #0] 8013e22: f003 7380 and.w r3, r3, #16777216 ; 0x1000000 8013e26: 2b00 cmp r3, #0 8013e28: d001 beq.n 8013e2e { plli2sused = 1; 8013e2a: 2301 movs r3, #1 8013e2c: 61fb str r3, [r7, #28] } /*------------------------------------ RTC configuration --------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RTC) == (RCC_PERIPHCLK_RTC)) 8013e2e: 687b ldr r3, [r7, #4] 8013e30: 681b ldr r3, [r3, #0] 8013e32: f003 0320 and.w r3, r3, #32 8013e36: 2b00 cmp r3, #0 8013e38: f000 808b beq.w 8013f52 { /* Check for RTC Parameters used to output RTCCLK */ assert_param(IS_RCC_RTCCLKSOURCE(PeriphClkInit->RTCClockSelection)); /* Enable Power Clock*/ __HAL_RCC_PWR_CLK_ENABLE(); 8013e3c: 4a3a ldr r2, [pc, #232] ; (8013f28 ) 8013e3e: 4b3a ldr r3, [pc, #232] ; (8013f28 ) 8013e40: 6c1b ldr r3, [r3, #64] ; 0x40 8013e42: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 8013e46: 6413 str r3, [r2, #64] ; 0x40 8013e48: 4b37 ldr r3, [pc, #220] ; (8013f28 ) 8013e4a: 6c1b ldr r3, [r3, #64] ; 0x40 8013e4c: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 8013e50: 60bb str r3, [r7, #8] 8013e52: 68bb ldr r3, [r7, #8] /* Enable write access to Backup domain */ PWR->CR1 |= PWR_CR1_DBP; 8013e54: 4a35 ldr r2, [pc, #212] ; (8013f2c ) 8013e56: 4b35 ldr r3, [pc, #212] ; (8013f2c ) 8013e58: 681b ldr r3, [r3, #0] 8013e5a: f443 7380 orr.w r3, r3, #256 ; 0x100 8013e5e: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 8013e60: f7fd fbbc bl 80115dc 8013e64: 6178 str r0, [r7, #20] /* Wait for Backup domain Write protection disable */ while((PWR->CR1 & PWR_CR1_DBP) == RESET) 8013e66: e008 b.n 8013e7a { if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) 8013e68: f7fd fbb8 bl 80115dc 8013e6c: 4602 mov r2, r0 8013e6e: 697b ldr r3, [r7, #20] 8013e70: 1ad3 subs r3, r2, r3 8013e72: 2b64 cmp r3, #100 ; 0x64 8013e74: d901 bls.n 8013e7a { return HAL_TIMEOUT; 8013e76: 2303 movs r3, #3 8013e78: e38d b.n 8014596 while((PWR->CR1 & PWR_CR1_DBP) == RESET) 8013e7a: 4b2c ldr r3, [pc, #176] ; (8013f2c ) 8013e7c: 681b ldr r3, [r3, #0] 8013e7e: f403 7380 and.w r3, r3, #256 ; 0x100 8013e82: 2b00 cmp r3, #0 8013e84: d0f0 beq.n 8013e68 } } /* Reset the Backup domain only if the RTC Clock source selection is modified */ tmpreg0 = (RCC->BDCR & RCC_BDCR_RTCSEL); 8013e86: 4b28 ldr r3, [pc, #160] ; (8013f28 ) 8013e88: 6f1b ldr r3, [r3, #112] ; 0x70 8013e8a: f403 7340 and.w r3, r3, #768 ; 0x300 8013e8e: 613b str r3, [r7, #16] if((tmpreg0 != 0x00000000U) && (tmpreg0 != (PeriphClkInit->RTCClockSelection & RCC_BDCR_RTCSEL))) 8013e90: 693b ldr r3, [r7, #16] 8013e92: 2b00 cmp r3, #0 8013e94: d035 beq.n 8013f02 8013e96: 687b ldr r3, [r7, #4] 8013e98: 6b1b ldr r3, [r3, #48] ; 0x30 8013e9a: f403 7240 and.w r2, r3, #768 ; 0x300 8013e9e: 693b ldr r3, [r7, #16] 8013ea0: 429a cmp r2, r3 8013ea2: d02e beq.n 8013f02 { /* Store the content of BDCR register before the reset of Backup Domain */ tmpreg0 = (RCC->BDCR & ~(RCC_BDCR_RTCSEL)); 8013ea4: 4b20 ldr r3, [pc, #128] ; (8013f28 ) 8013ea6: 6f1b ldr r3, [r3, #112] ; 0x70 8013ea8: f423 7340 bic.w r3, r3, #768 ; 0x300 8013eac: 613b str r3, [r7, #16] /* RTC Clock selection can be changed only if the Backup Domain is reset */ __HAL_RCC_BACKUPRESET_FORCE(); 8013eae: 4a1e ldr r2, [pc, #120] ; (8013f28 ) 8013eb0: 4b1d ldr r3, [pc, #116] ; (8013f28 ) 8013eb2: 6f1b ldr r3, [r3, #112] ; 0x70 8013eb4: f443 3380 orr.w r3, r3, #65536 ; 0x10000 8013eb8: 6713 str r3, [r2, #112] ; 0x70 __HAL_RCC_BACKUPRESET_RELEASE(); 8013eba: 4a1b ldr r2, [pc, #108] ; (8013f28 ) 8013ebc: 4b1a ldr r3, [pc, #104] ; (8013f28 ) 8013ebe: 6f1b ldr r3, [r3, #112] ; 0x70 8013ec0: f423 3380 bic.w r3, r3, #65536 ; 0x10000 8013ec4: 6713 str r3, [r2, #112] ; 0x70 /* Restore the Content of BDCR register */ RCC->BDCR = tmpreg0; 8013ec6: 4a18 ldr r2, [pc, #96] ; (8013f28 ) 8013ec8: 693b ldr r3, [r7, #16] 8013eca: 6713 str r3, [r2, #112] ; 0x70 /* Wait for LSE reactivation if LSE was enable prior to Backup Domain reset */ if (HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSEON)) 8013ecc: 4b16 ldr r3, [pc, #88] ; (8013f28 ) 8013ece: 6f1b ldr r3, [r3, #112] ; 0x70 8013ed0: f003 0301 and.w r3, r3, #1 8013ed4: 2b01 cmp r3, #1 8013ed6: d114 bne.n 8013f02 { /* Get Start Tick*/ tickstart = HAL_GetTick(); 8013ed8: f7fd fb80 bl 80115dc 8013edc: 6178 str r0, [r7, #20] /* Wait till LSE is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) 8013ede: e00a b.n 8013ef6 { if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) 8013ee0: f7fd fb7c bl 80115dc 8013ee4: 4602 mov r2, r0 8013ee6: 697b ldr r3, [r7, #20] 8013ee8: 1ad3 subs r3, r2, r3 8013eea: f241 3288 movw r2, #5000 ; 0x1388 8013eee: 4293 cmp r3, r2 8013ef0: d901 bls.n 8013ef6 { return HAL_TIMEOUT; 8013ef2: 2303 movs r3, #3 8013ef4: e34f b.n 8014596 while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) 8013ef6: 4b0c ldr r3, [pc, #48] ; (8013f28 ) 8013ef8: 6f1b ldr r3, [r3, #112] ; 0x70 8013efa: f003 0302 and.w r3, r3, #2 8013efe: 2b00 cmp r3, #0 8013f00: d0ee beq.n 8013ee0 } } } } __HAL_RCC_RTC_CONFIG(PeriphClkInit->RTCClockSelection); 8013f02: 687b ldr r3, [r7, #4] 8013f04: 6b1b ldr r3, [r3, #48] ; 0x30 8013f06: f403 7340 and.w r3, r3, #768 ; 0x300 8013f0a: f5b3 7f40 cmp.w r3, #768 ; 0x300 8013f0e: d111 bne.n 8013f34 8013f10: 4805 ldr r0, [pc, #20] ; (8013f28 ) 8013f12: 4b05 ldr r3, [pc, #20] ; (8013f28 ) 8013f14: 689b ldr r3, [r3, #8] 8013f16: f423 12f8 bic.w r2, r3, #2031616 ; 0x1f0000 8013f1a: 687b ldr r3, [r7, #4] 8013f1c: 6b19 ldr r1, [r3, #48] ; 0x30 8013f1e: 4b04 ldr r3, [pc, #16] ; (8013f30 ) 8013f20: 400b ands r3, r1 8013f22: 4313 orrs r3, r2 8013f24: 6083 str r3, [r0, #8] 8013f26: e00b b.n 8013f40 8013f28: 40023800 .word 0x40023800 8013f2c: 40007000 .word 0x40007000 8013f30: 0ffffcff .word 0x0ffffcff 8013f34: 4ab2 ldr r2, [pc, #712] ; (8014200 ) 8013f36: 4bb2 ldr r3, [pc, #712] ; (8014200 ) 8013f38: 689b ldr r3, [r3, #8] 8013f3a: f423 13f8 bic.w r3, r3, #2031616 ; 0x1f0000 8013f3e: 6093 str r3, [r2, #8] 8013f40: 49af ldr r1, [pc, #700] ; (8014200 ) 8013f42: 4baf ldr r3, [pc, #700] ; (8014200 ) 8013f44: 6f1a ldr r2, [r3, #112] ; 0x70 8013f46: 687b ldr r3, [r7, #4] 8013f48: 6b1b ldr r3, [r3, #48] ; 0x30 8013f4a: f3c3 030b ubfx r3, r3, #0, #12 8013f4e: 4313 orrs r3, r2 8013f50: 670b str r3, [r1, #112] ; 0x70 } /*------------------------------------ TIM configuration --------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_TIM) == (RCC_PERIPHCLK_TIM)) 8013f52: 687b ldr r3, [r7, #4] 8013f54: 681b ldr r3, [r3, #0] 8013f56: f003 0310 and.w r3, r3, #16 8013f5a: 2b00 cmp r3, #0 8013f5c: d010 beq.n 8013f80 { /* Check the parameters */ assert_param(IS_RCC_TIMPRES(PeriphClkInit->TIMPresSelection)); /* Configure Timer Prescaler */ __HAL_RCC_TIMCLKPRESCALER(PeriphClkInit->TIMPresSelection); 8013f5e: 4aa8 ldr r2, [pc, #672] ; (8014200 ) 8013f60: 4ba7 ldr r3, [pc, #668] ; (8014200 ) 8013f62: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 8013f66: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000 8013f6a: f8c2 308c str.w r3, [r2, #140] ; 0x8c 8013f6e: 49a4 ldr r1, [pc, #656] ; (8014200 ) 8013f70: 4ba3 ldr r3, [pc, #652] ; (8014200 ) 8013f72: f8d3 208c ldr.w r2, [r3, #140] ; 0x8c 8013f76: 687b ldr r3, [r7, #4] 8013f78: 6b9b ldr r3, [r3, #56] ; 0x38 8013f7a: 4313 orrs r3, r2 8013f7c: f8c1 308c str.w r3, [r1, #140] ; 0x8c } /*-------------------------------------- I2C1 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1) 8013f80: 687b ldr r3, [r7, #4] 8013f82: 681b ldr r3, [r3, #0] 8013f84: f403 4380 and.w r3, r3, #16384 ; 0x4000 8013f88: 2b00 cmp r3, #0 8013f8a: d00a beq.n 8013fa2 { /* Check the parameters */ assert_param(IS_RCC_I2C1CLKSOURCE(PeriphClkInit->I2c1ClockSelection)); /* Configure the I2C1 clock source */ __HAL_RCC_I2C1_CONFIG(PeriphClkInit->I2c1ClockSelection); 8013f8c: 499c ldr r1, [pc, #624] ; (8014200 ) 8013f8e: 4b9c ldr r3, [pc, #624] ; (8014200 ) 8013f90: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8013f94: f423 3240 bic.w r2, r3, #196608 ; 0x30000 8013f98: 687b ldr r3, [r7, #4] 8013f9a: 6e5b ldr r3, [r3, #100] ; 0x64 8013f9c: 4313 orrs r3, r2 8013f9e: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- I2C2 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2) 8013fa2: 687b ldr r3, [r7, #4] 8013fa4: 681b ldr r3, [r3, #0] 8013fa6: f403 4300 and.w r3, r3, #32768 ; 0x8000 8013faa: 2b00 cmp r3, #0 8013fac: d00a beq.n 8013fc4 { /* Check the parameters */ assert_param(IS_RCC_I2C2CLKSOURCE(PeriphClkInit->I2c2ClockSelection)); /* Configure the I2C2 clock source */ __HAL_RCC_I2C2_CONFIG(PeriphClkInit->I2c2ClockSelection); 8013fae: 4994 ldr r1, [pc, #592] ; (8014200 ) 8013fb0: 4b93 ldr r3, [pc, #588] ; (8014200 ) 8013fb2: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8013fb6: f423 2240 bic.w r2, r3, #786432 ; 0xc0000 8013fba: 687b ldr r3, [r7, #4] 8013fbc: 6e9b ldr r3, [r3, #104] ; 0x68 8013fbe: 4313 orrs r3, r2 8013fc0: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- I2C3 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3) 8013fc4: 687b ldr r3, [r7, #4] 8013fc6: 681b ldr r3, [r3, #0] 8013fc8: f403 3380 and.w r3, r3, #65536 ; 0x10000 8013fcc: 2b00 cmp r3, #0 8013fce: d00a beq.n 8013fe6 { /* Check the parameters */ assert_param(IS_RCC_I2C3CLKSOURCE(PeriphClkInit->I2c3ClockSelection)); /* Configure the I2C3 clock source */ __HAL_RCC_I2C3_CONFIG(PeriphClkInit->I2c3ClockSelection); 8013fd0: 498b ldr r1, [pc, #556] ; (8014200 ) 8013fd2: 4b8b ldr r3, [pc, #556] ; (8014200 ) 8013fd4: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8013fd8: f423 1240 bic.w r2, r3, #3145728 ; 0x300000 8013fdc: 687b ldr r3, [r7, #4] 8013fde: 6edb ldr r3, [r3, #108] ; 0x6c 8013fe0: 4313 orrs r3, r2 8013fe2: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- I2C4 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C4) == RCC_PERIPHCLK_I2C4) 8013fe6: 687b ldr r3, [r7, #4] 8013fe8: 681b ldr r3, [r3, #0] 8013fea: f403 3300 and.w r3, r3, #131072 ; 0x20000 8013fee: 2b00 cmp r3, #0 8013ff0: d00a beq.n 8014008 { /* Check the parameters */ assert_param(IS_RCC_I2C4CLKSOURCE(PeriphClkInit->I2c4ClockSelection)); /* Configure the I2C4 clock source */ __HAL_RCC_I2C4_CONFIG(PeriphClkInit->I2c4ClockSelection); 8013ff2: 4983 ldr r1, [pc, #524] ; (8014200 ) 8013ff4: 4b82 ldr r3, [pc, #520] ; (8014200 ) 8013ff6: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8013ffa: f423 0240 bic.w r2, r3, #12582912 ; 0xc00000 8013ffe: 687b ldr r3, [r7, #4] 8014000: 6f1b ldr r3, [r3, #112] ; 0x70 8014002: 4313 orrs r3, r2 8014004: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- USART1 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1) 8014008: 687b ldr r3, [r7, #4] 801400a: 681b ldr r3, [r3, #0] 801400c: f003 0340 and.w r3, r3, #64 ; 0x40 8014010: 2b00 cmp r3, #0 8014012: d00a beq.n 801402a { /* Check the parameters */ assert_param(IS_RCC_USART1CLKSOURCE(PeriphClkInit->Usart1ClockSelection)); /* Configure the USART1 clock source */ __HAL_RCC_USART1_CONFIG(PeriphClkInit->Usart1ClockSelection); 8014014: 497a ldr r1, [pc, #488] ; (8014200 ) 8014016: 4b7a ldr r3, [pc, #488] ; (8014200 ) 8014018: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 801401c: f023 0203 bic.w r2, r3, #3 8014020: 687b ldr r3, [r7, #4] 8014022: 6c5b ldr r3, [r3, #68] ; 0x44 8014024: 4313 orrs r3, r2 8014026: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- USART2 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2) 801402a: 687b ldr r3, [r7, #4] 801402c: 681b ldr r3, [r3, #0] 801402e: f003 0380 and.w r3, r3, #128 ; 0x80 8014032: 2b00 cmp r3, #0 8014034: d00a beq.n 801404c { /* Check the parameters */ assert_param(IS_RCC_USART2CLKSOURCE(PeriphClkInit->Usart2ClockSelection)); /* Configure the USART2 clock source */ __HAL_RCC_USART2_CONFIG(PeriphClkInit->Usart2ClockSelection); 8014036: 4972 ldr r1, [pc, #456] ; (8014200 ) 8014038: 4b71 ldr r3, [pc, #452] ; (8014200 ) 801403a: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 801403e: f023 020c bic.w r2, r3, #12 8014042: 687b ldr r3, [r7, #4] 8014044: 6c9b ldr r3, [r3, #72] ; 0x48 8014046: 4313 orrs r3, r2 8014048: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- USART3 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART3) == RCC_PERIPHCLK_USART3) 801404c: 687b ldr r3, [r7, #4] 801404e: 681b ldr r3, [r3, #0] 8014050: f403 7380 and.w r3, r3, #256 ; 0x100 8014054: 2b00 cmp r3, #0 8014056: d00a beq.n 801406e { /* Check the parameters */ assert_param(IS_RCC_USART3CLKSOURCE(PeriphClkInit->Usart3ClockSelection)); /* Configure the USART3 clock source */ __HAL_RCC_USART3_CONFIG(PeriphClkInit->Usart3ClockSelection); 8014058: 4969 ldr r1, [pc, #420] ; (8014200 ) 801405a: 4b69 ldr r3, [pc, #420] ; (8014200 ) 801405c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8014060: f023 0230 bic.w r2, r3, #48 ; 0x30 8014064: 687b ldr r3, [r7, #4] 8014066: 6cdb ldr r3, [r3, #76] ; 0x4c 8014068: 4313 orrs r3, r2 801406a: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- UART4 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART4) == RCC_PERIPHCLK_UART4) 801406e: 687b ldr r3, [r7, #4] 8014070: 681b ldr r3, [r3, #0] 8014072: f403 7300 and.w r3, r3, #512 ; 0x200 8014076: 2b00 cmp r3, #0 8014078: d00a beq.n 8014090 { /* Check the parameters */ assert_param(IS_RCC_UART4CLKSOURCE(PeriphClkInit->Uart4ClockSelection)); /* Configure the UART4 clock source */ __HAL_RCC_UART4_CONFIG(PeriphClkInit->Uart4ClockSelection); 801407a: 4961 ldr r1, [pc, #388] ; (8014200 ) 801407c: 4b60 ldr r3, [pc, #384] ; (8014200 ) 801407e: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8014082: f023 02c0 bic.w r2, r3, #192 ; 0xc0 8014086: 687b ldr r3, [r7, #4] 8014088: 6d1b ldr r3, [r3, #80] ; 0x50 801408a: 4313 orrs r3, r2 801408c: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- UART5 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART5) == RCC_PERIPHCLK_UART5) 8014090: 687b ldr r3, [r7, #4] 8014092: 681b ldr r3, [r3, #0] 8014094: f403 6380 and.w r3, r3, #1024 ; 0x400 8014098: 2b00 cmp r3, #0 801409a: d00a beq.n 80140b2 { /* Check the parameters */ assert_param(IS_RCC_UART5CLKSOURCE(PeriphClkInit->Uart5ClockSelection)); /* Configure the UART5 clock source */ __HAL_RCC_UART5_CONFIG(PeriphClkInit->Uart5ClockSelection); 801409c: 4958 ldr r1, [pc, #352] ; (8014200 ) 801409e: 4b58 ldr r3, [pc, #352] ; (8014200 ) 80140a0: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 80140a4: f423 7240 bic.w r2, r3, #768 ; 0x300 80140a8: 687b ldr r3, [r7, #4] 80140aa: 6d5b ldr r3, [r3, #84] ; 0x54 80140ac: 4313 orrs r3, r2 80140ae: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- USART6 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART6) == RCC_PERIPHCLK_USART6) 80140b2: 687b ldr r3, [r7, #4] 80140b4: 681b ldr r3, [r3, #0] 80140b6: f403 6300 and.w r3, r3, #2048 ; 0x800 80140ba: 2b00 cmp r3, #0 80140bc: d00a beq.n 80140d4 { /* Check the parameters */ assert_param(IS_RCC_USART6CLKSOURCE(PeriphClkInit->Usart6ClockSelection)); /* Configure the USART6 clock source */ __HAL_RCC_USART6_CONFIG(PeriphClkInit->Usart6ClockSelection); 80140be: 4950 ldr r1, [pc, #320] ; (8014200 ) 80140c0: 4b4f ldr r3, [pc, #316] ; (8014200 ) 80140c2: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 80140c6: f423 6240 bic.w r2, r3, #3072 ; 0xc00 80140ca: 687b ldr r3, [r7, #4] 80140cc: 6d9b ldr r3, [r3, #88] ; 0x58 80140ce: 4313 orrs r3, r2 80140d0: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- UART7 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART7) == RCC_PERIPHCLK_UART7) 80140d4: 687b ldr r3, [r7, #4] 80140d6: 681b ldr r3, [r3, #0] 80140d8: f403 5380 and.w r3, r3, #4096 ; 0x1000 80140dc: 2b00 cmp r3, #0 80140de: d00a beq.n 80140f6 { /* Check the parameters */ assert_param(IS_RCC_UART7CLKSOURCE(PeriphClkInit->Uart7ClockSelection)); /* Configure the UART7 clock source */ __HAL_RCC_UART7_CONFIG(PeriphClkInit->Uart7ClockSelection); 80140e0: 4947 ldr r1, [pc, #284] ; (8014200 ) 80140e2: 4b47 ldr r3, [pc, #284] ; (8014200 ) 80140e4: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 80140e8: f423 5240 bic.w r2, r3, #12288 ; 0x3000 80140ec: 687b ldr r3, [r7, #4] 80140ee: 6ddb ldr r3, [r3, #92] ; 0x5c 80140f0: 4313 orrs r3, r2 80140f2: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- UART8 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART8) == RCC_PERIPHCLK_UART8) 80140f6: 687b ldr r3, [r7, #4] 80140f8: 681b ldr r3, [r3, #0] 80140fa: f403 5300 and.w r3, r3, #8192 ; 0x2000 80140fe: 2b00 cmp r3, #0 8014100: d00a beq.n 8014118 { /* Check the parameters */ assert_param(IS_RCC_UART8CLKSOURCE(PeriphClkInit->Uart8ClockSelection)); /* Configure the UART8 clock source */ __HAL_RCC_UART8_CONFIG(PeriphClkInit->Uart8ClockSelection); 8014102: 493f ldr r1, [pc, #252] ; (8014200 ) 8014104: 4b3e ldr r3, [pc, #248] ; (8014200 ) 8014106: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 801410a: f423 4240 bic.w r2, r3, #49152 ; 0xc000 801410e: 687b ldr r3, [r7, #4] 8014110: 6e1b ldr r3, [r3, #96] ; 0x60 8014112: 4313 orrs r3, r2 8014114: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*--------------------------------------- CEC Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CEC) == RCC_PERIPHCLK_CEC) 8014118: 687b ldr r3, [r7, #4] 801411a: 681b ldr r3, [r3, #0] 801411c: f403 0380 and.w r3, r3, #4194304 ; 0x400000 8014120: 2b00 cmp r3, #0 8014122: d00a beq.n 801413a { /* Check the parameters */ assert_param(IS_RCC_CECCLKSOURCE(PeriphClkInit->CecClockSelection)); /* Configure the CEC clock source */ __HAL_RCC_CEC_CONFIG(PeriphClkInit->CecClockSelection); 8014124: 4936 ldr r1, [pc, #216] ; (8014200 ) 8014126: 4b36 ldr r3, [pc, #216] ; (8014200 ) 8014128: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 801412c: f023 6280 bic.w r2, r3, #67108864 ; 0x4000000 8014130: 687b ldr r3, [r7, #4] 8014132: 6f9b ldr r3, [r3, #120] ; 0x78 8014134: 4313 orrs r3, r2 8014136: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- CK48 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CLK48) == RCC_PERIPHCLK_CLK48) 801413a: 687b ldr r3, [r7, #4] 801413c: 681b ldr r3, [r3, #0] 801413e: f403 1300 and.w r3, r3, #2097152 ; 0x200000 8014142: 2b00 cmp r3, #0 8014144: d011 beq.n 801416a { /* Check the parameters */ assert_param(IS_RCC_CLK48SOURCE(PeriphClkInit->Clk48ClockSelection)); /* Configure the CLK48 source */ __HAL_RCC_CLK48_CONFIG(PeriphClkInit->Clk48ClockSelection); 8014146: 492e ldr r1, [pc, #184] ; (8014200 ) 8014148: 4b2d ldr r3, [pc, #180] ; (8014200 ) 801414a: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 801414e: f023 6200 bic.w r2, r3, #134217728 ; 0x8000000 8014152: 687b ldr r3, [r7, #4] 8014154: 6fdb ldr r3, [r3, #124] ; 0x7c 8014156: 4313 orrs r3, r2 8014158: f8c1 3090 str.w r3, [r1, #144] ; 0x90 /* Enable the PLLSAI when it's used as clock source for CK48 */ if(PeriphClkInit->Clk48ClockSelection == RCC_CLK48SOURCE_PLLSAIP) 801415c: 687b ldr r3, [r7, #4] 801415e: 6fdb ldr r3, [r3, #124] ; 0x7c 8014160: f1b3 6f00 cmp.w r3, #134217728 ; 0x8000000 8014164: d101 bne.n 801416a { pllsaiused = 1; 8014166: 2301 movs r3, #1 8014168: 61bb str r3, [r7, #24] } } /*-------------------------------------- LTDC Configuration -----------------------------------*/ #if defined(STM32F746xx) || defined(STM32F756xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx) || defined (STM32F750xx) if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LTDC) == RCC_PERIPHCLK_LTDC) 801416a: 687b ldr r3, [r7, #4] 801416c: 681b ldr r3, [r3, #0] 801416e: f003 0308 and.w r3, r3, #8 8014172: 2b00 cmp r3, #0 8014174: d001 beq.n 801417a { pllsaiused = 1; 8014176: 2301 movs r3, #1 8014178: 61bb str r3, [r7, #24] } #endif /* STM32F746xx || STM32F756xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx || STM32F750xx */ /*-------------------------------------- LPTIM1 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPTIM1) == RCC_PERIPHCLK_LPTIM1) 801417a: 687b ldr r3, [r7, #4] 801417c: 681b ldr r3, [r3, #0] 801417e: f403 2380 and.w r3, r3, #262144 ; 0x40000 8014182: 2b00 cmp r3, #0 8014184: d00a beq.n 801419c { /* Check the parameters */ assert_param(IS_RCC_LPTIM1CLK(PeriphClkInit->Lptim1ClockSelection)); /* Configure the LTPIM1 clock source */ __HAL_RCC_LPTIM1_CONFIG(PeriphClkInit->Lptim1ClockSelection); 8014186: 491e ldr r1, [pc, #120] ; (8014200 ) 8014188: 4b1d ldr r3, [pc, #116] ; (8014200 ) 801418a: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 801418e: f023 7240 bic.w r2, r3, #50331648 ; 0x3000000 8014192: 687b ldr r3, [r7, #4] 8014194: 6f5b ldr r3, [r3, #116] ; 0x74 8014196: 4313 orrs r3, r2 8014198: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*------------------------------------- SDMMC1 Configuration ------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SDMMC1) == RCC_PERIPHCLK_SDMMC1) 801419c: 687b ldr r3, [r7, #4] 801419e: 681b ldr r3, [r3, #0] 80141a0: f403 0300 and.w r3, r3, #8388608 ; 0x800000 80141a4: 2b00 cmp r3, #0 80141a6: d00b beq.n 80141c0 { /* Check the parameters */ assert_param(IS_RCC_SDMMC1CLKSOURCE(PeriphClkInit->Sdmmc1ClockSelection)); /* Configure the SDMMC1 clock source */ __HAL_RCC_SDMMC1_CONFIG(PeriphClkInit->Sdmmc1ClockSelection); 80141a8: 4915 ldr r1, [pc, #84] ; (8014200 ) 80141aa: 4b15 ldr r3, [pc, #84] ; (8014200 ) 80141ac: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 80141b0: f023 5280 bic.w r2, r3, #268435456 ; 0x10000000 80141b4: 687b ldr r3, [r7, #4] 80141b6: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 80141ba: 4313 orrs r3, r2 80141bc: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } #if defined (STM32F765xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx) /*------------------------------------- SDMMC2 Configuration ------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SDMMC2) == RCC_PERIPHCLK_SDMMC2) 80141c0: 687b ldr r3, [r7, #4] 80141c2: 681b ldr r3, [r3, #0] 80141c4: f003 6380 and.w r3, r3, #67108864 ; 0x4000000 80141c8: 2b00 cmp r3, #0 80141ca: d00b beq.n 80141e4 { /* Check the parameters */ assert_param(IS_RCC_SDMMC2CLKSOURCE(PeriphClkInit->Sdmmc2ClockSelection)); /* Configure the SDMMC2 clock source */ __HAL_RCC_SDMMC2_CONFIG(PeriphClkInit->Sdmmc2ClockSelection); 80141cc: 490c ldr r1, [pc, #48] ; (8014200 ) 80141ce: 4b0c ldr r3, [pc, #48] ; (8014200 ) 80141d0: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 80141d4: f023 5200 bic.w r2, r3, #536870912 ; 0x20000000 80141d8: 687b ldr r3, [r7, #4] 80141da: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 80141de: 4313 orrs r3, r2 80141e0: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*------------------------------------- DFSDM1 Configuration -------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_DFSDM1) == RCC_PERIPHCLK_DFSDM1) 80141e4: 687b ldr r3, [r7, #4] 80141e6: 681b ldr r3, [r3, #0] 80141e8: f003 6300 and.w r3, r3, #134217728 ; 0x8000000 80141ec: 2b00 cmp r3, #0 80141ee: d00e beq.n 801420e { /* Check the parameters */ assert_param(IS_RCC_DFSDM1CLKSOURCE(PeriphClkInit->Dfsdm1ClockSelection)); /* Configure the DFSDM1 interface clock source */ __HAL_RCC_DFSDM1_CONFIG(PeriphClkInit->Dfsdm1ClockSelection); 80141f0: 4903 ldr r1, [pc, #12] ; (8014200 ) 80141f2: 4b03 ldr r3, [pc, #12] ; (8014200 ) 80141f4: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 80141f8: f023 7200 bic.w r2, r3, #33554432 ; 0x2000000 80141fc: 687b ldr r3, [r7, #4] 80141fe: e001 b.n 8014204 8014200: 40023800 .word 0x40023800 8014204: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 8014208: 4313 orrs r3, r2 801420a: f8c1 308c str.w r3, [r1, #140] ; 0x8c } /*------------------------------------- DFSDM AUDIO Configuration -------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_DFSDM1_AUDIO) == RCC_PERIPHCLK_DFSDM1_AUDIO) 801420e: 687b ldr r3, [r7, #4] 8014210: 681b ldr r3, [r3, #0] 8014212: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 8014216: 2b00 cmp r3, #0 8014218: d00b beq.n 8014232 { /* Check the parameters */ assert_param(IS_RCC_DFSDM1AUDIOCLKSOURCE(PeriphClkInit->Dfsdm1AudioClockSelection)); /* Configure the DFSDM interface clock source */ __HAL_RCC_DFSDM1AUDIO_CONFIG(PeriphClkInit->Dfsdm1AudioClockSelection); 801421a: 4981 ldr r1, [pc, #516] ; (8014420 ) 801421c: 4b80 ldr r3, [pc, #512] ; (8014420 ) 801421e: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 8014222: f023 6280 bic.w r2, r3, #67108864 ; 0x4000000 8014226: 687b ldr r3, [r7, #4] 8014228: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 801422c: 4313 orrs r3, r2 801422e: f8c1 308c str.w r3, [r1, #140] ; 0x8c } #endif /* STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx */ /*-------------------------------------- PLLI2S Configuration ---------------------------------*/ /* PLLI2S is configured when a peripheral will use it as source clock : SAI1, SAI2, I2S or SPDIF-RX */ if((plli2sused == 1) || ((PeriphClkInit->PeriphClockSelection & RCC_PERIPHCLK_PLLI2S) == RCC_PERIPHCLK_PLLI2S)) 8014232: 69fb ldr r3, [r7, #28] 8014234: 2b01 cmp r3, #1 8014236: d006 beq.n 8014246 8014238: 687b ldr r3, [r7, #4] 801423a: 681b ldr r3, [r3, #0] 801423c: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 8014240: 2b00 cmp r3, #0 8014242: f000 80d6 beq.w 80143f2 { /* Disable the PLLI2S */ __HAL_RCC_PLLI2S_DISABLE(); 8014246: 4a76 ldr r2, [pc, #472] ; (8014420 ) 8014248: 4b75 ldr r3, [pc, #468] ; (8014420 ) 801424a: 681b ldr r3, [r3, #0] 801424c: f023 6380 bic.w r3, r3, #67108864 ; 0x4000000 8014250: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 8014252: f7fd f9c3 bl 80115dc 8014256: 6178 str r0, [r7, #20] /* Wait till PLLI2S is disabled */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) != RESET) 8014258: e008 b.n 801426c { if((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE) 801425a: f7fd f9bf bl 80115dc 801425e: 4602 mov r2, r0 8014260: 697b ldr r3, [r7, #20] 8014262: 1ad3 subs r3, r2, r3 8014264: 2b64 cmp r3, #100 ; 0x64 8014266: d901 bls.n 801426c { /* return in case of Timeout detected */ return HAL_TIMEOUT; 8014268: 2303 movs r3, #3 801426a: e194 b.n 8014596 while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) != RESET) 801426c: 4b6c ldr r3, [pc, #432] ; (8014420 ) 801426e: 681b ldr r3, [r3, #0] 8014270: f003 6300 and.w r3, r3, #134217728 ; 0x8000000 8014274: 2b00 cmp r3, #0 8014276: d1f0 bne.n 801425a /* check for common PLLI2S Parameters */ assert_param(IS_RCC_PLLI2SN_VALUE(PeriphClkInit->PLLI2S.PLLI2SN)); /*----------------- In Case of PLLI2S is selected as source clock for I2S -------------------*/ if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2S) == RCC_PERIPHCLK_I2S) && (PeriphClkInit->I2sClockSelection == RCC_I2SCLKSOURCE_PLLI2S))) 8014278: 687b ldr r3, [r7, #4] 801427a: 681b ldr r3, [r3, #0] 801427c: f003 0301 and.w r3, r3, #1 8014280: 2b00 cmp r3, #0 8014282: d021 beq.n 80142c8 8014284: 687b ldr r3, [r7, #4] 8014286: 6b5b ldr r3, [r3, #52] ; 0x34 8014288: 2b00 cmp r3, #0 801428a: d11d bne.n 80142c8 { /* check for Parameters */ assert_param(IS_RCC_PLLI2SR_VALUE(PeriphClkInit->PLLI2S.PLLI2SR)); /* Read PLLI2SP and PLLI2SQ value from PLLI2SCFGR register (this value is not needed for I2S configuration) */ tmpreg0 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SP) >> RCC_PLLI2SCFGR_PLLI2SP_Pos); 801428c: 4b64 ldr r3, [pc, #400] ; (8014420 ) 801428e: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 8014292: 0c1b lsrs r3, r3, #16 8014294: f003 0303 and.w r3, r3, #3 8014298: 613b str r3, [r7, #16] tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SQ) >> RCC_PLLI2SCFGR_PLLI2SQ_Pos); 801429a: 4b61 ldr r3, [pc, #388] ; (8014420 ) 801429c: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 80142a0: 0e1b lsrs r3, r3, #24 80142a2: f003 030f and.w r3, r3, #15 80142a6: 60fb str r3, [r7, #12] /* Configure the PLLI2S division factors */ /* PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) x (PLLI2SN/PLLM) */ /* I2SCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SR */ __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN , tmpreg0, tmpreg1, PeriphClkInit->PLLI2S.PLLI2SR); 80142a8: 495d ldr r1, [pc, #372] ; (8014420 ) 80142aa: 687b ldr r3, [r7, #4] 80142ac: 685b ldr r3, [r3, #4] 80142ae: 019a lsls r2, r3, #6 80142b0: 693b ldr r3, [r7, #16] 80142b2: 041b lsls r3, r3, #16 80142b4: 431a orrs r2, r3 80142b6: 68fb ldr r3, [r7, #12] 80142b8: 061b lsls r3, r3, #24 80142ba: 431a orrs r2, r3 80142bc: 687b ldr r3, [r7, #4] 80142be: 689b ldr r3, [r3, #8] 80142c0: 071b lsls r3, r3, #28 80142c2: 4313 orrs r3, r2 80142c4: f8c1 3084 str.w r3, [r1, #132] ; 0x84 } /*----------------- In Case of PLLI2S is selected as source clock for SAI -------------------*/ if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLI2S)) || 80142c8: 687b ldr r3, [r7, #4] 80142ca: 681b ldr r3, [r3, #0] 80142cc: f403 2300 and.w r3, r3, #524288 ; 0x80000 80142d0: 2b00 cmp r3, #0 80142d2: d004 beq.n 80142de 80142d4: 687b ldr r3, [r7, #4] 80142d6: 6bdb ldr r3, [r3, #60] ; 0x3c 80142d8: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000 80142dc: d00a beq.n 80142f4 ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S))) 80142de: 687b ldr r3, [r7, #4] 80142e0: 681b ldr r3, [r3, #0] 80142e2: f403 1380 and.w r3, r3, #1048576 ; 0x100000 if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLI2S)) || 80142e6: 2b00 cmp r3, #0 80142e8: d02e beq.n 8014348 ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S))) 80142ea: 687b ldr r3, [r7, #4] 80142ec: 6c1b ldr r3, [r3, #64] ; 0x40 80142ee: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000 80142f2: d129 bne.n 8014348 assert_param(IS_RCC_PLLI2SQ_VALUE(PeriphClkInit->PLLI2S.PLLI2SQ)); /* Check for PLLI2S/DIVQ parameters */ assert_param(IS_RCC_PLLI2S_DIVQ_VALUE(PeriphClkInit->PLLI2SDivQ)); /* Read PLLI2SP and PLLI2SR values from PLLI2SCFGR register (this value is not needed for SAI configuration) */ tmpreg0 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SP) >> RCC_PLLI2SCFGR_PLLI2SP_Pos); 80142f4: 4b4a ldr r3, [pc, #296] ; (8014420 ) 80142f6: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 80142fa: 0c1b lsrs r3, r3, #16 80142fc: f003 0303 and.w r3, r3, #3 8014300: 613b str r3, [r7, #16] tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLI2SCFGR_PLLI2SR_Pos); 8014302: 4b47 ldr r3, [pc, #284] ; (8014420 ) 8014304: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 8014308: 0f1b lsrs r3, r3, #28 801430a: f003 0307 and.w r3, r3, #7 801430e: 60fb str r3, [r7, #12] /* Configure the PLLI2S division factors */ /* PLLI2S_VCO Input = PLL_SOURCE/PLLM */ /* PLLI2S_VCO Output = PLLI2S_VCO Input * PLLI2SN */ /* SAI_CLK(first level) = PLLI2S_VCO Output/PLLI2SQ */ __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN, tmpreg0, PeriphClkInit->PLLI2S.PLLI2SQ, tmpreg1); 8014310: 4943 ldr r1, [pc, #268] ; (8014420 ) 8014312: 687b ldr r3, [r7, #4] 8014314: 685b ldr r3, [r3, #4] 8014316: 019a lsls r2, r3, #6 8014318: 693b ldr r3, [r7, #16] 801431a: 041b lsls r3, r3, #16 801431c: 431a orrs r2, r3 801431e: 687b ldr r3, [r7, #4] 8014320: 68db ldr r3, [r3, #12] 8014322: 061b lsls r3, r3, #24 8014324: 431a orrs r2, r3 8014326: 68fb ldr r3, [r7, #12] 8014328: 071b lsls r3, r3, #28 801432a: 4313 orrs r3, r2 801432c: f8c1 3084 str.w r3, [r1, #132] ; 0x84 /* SAI_CLK_x = SAI_CLK(first level)/PLLI2SDIVQ */ __HAL_RCC_PLLI2S_PLLSAICLKDIVQ_CONFIG(PeriphClkInit->PLLI2SDivQ); 8014330: 493b ldr r1, [pc, #236] ; (8014420 ) 8014332: 4b3b ldr r3, [pc, #236] ; (8014420 ) 8014334: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 8014338: f023 021f bic.w r2, r3, #31 801433c: 687b ldr r3, [r7, #4] 801433e: 6a5b ldr r3, [r3, #36] ; 0x24 8014340: 3b01 subs r3, #1 8014342: 4313 orrs r3, r2 8014344: f8c1 308c str.w r3, [r1, #140] ; 0x8c } /*----------------- In Case of PLLI2S is selected as source clock for SPDIF-RX -------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SPDIFRX) == RCC_PERIPHCLK_SPDIFRX) 8014348: 687b ldr r3, [r7, #4] 801434a: 681b ldr r3, [r3, #0] 801434c: f003 7380 and.w r3, r3, #16777216 ; 0x1000000 8014350: 2b00 cmp r3, #0 8014352: d01d beq.n 8014390 { /* check for Parameters */ assert_param(IS_RCC_PLLI2SP_VALUE(PeriphClkInit->PLLI2S.PLLI2SP)); /* Read PLLI2SR value from PLLI2SCFGR register (this value is not needed for SPDIF-RX configuration) */ tmpreg0 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SQ) >> RCC_PLLI2SCFGR_PLLI2SQ_Pos); 8014354: 4b32 ldr r3, [pc, #200] ; (8014420 ) 8014356: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 801435a: 0e1b lsrs r3, r3, #24 801435c: f003 030f and.w r3, r3, #15 8014360: 613b str r3, [r7, #16] tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLI2SCFGR_PLLI2SR_Pos); 8014362: 4b2f ldr r3, [pc, #188] ; (8014420 ) 8014364: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 8014368: 0f1b lsrs r3, r3, #28 801436a: f003 0307 and.w r3, r3, #7 801436e: 60fb str r3, [r7, #12] /* Configure the PLLI2S division factors */ /* PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) x (PLLI2SN/PLLM) */ /* SPDIFCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SP */ __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN , PeriphClkInit->PLLI2S.PLLI2SP, tmpreg0, tmpreg1); 8014370: 492b ldr r1, [pc, #172] ; (8014420 ) 8014372: 687b ldr r3, [r7, #4] 8014374: 685b ldr r3, [r3, #4] 8014376: 019a lsls r2, r3, #6 8014378: 687b ldr r3, [r7, #4] 801437a: 691b ldr r3, [r3, #16] 801437c: 041b lsls r3, r3, #16 801437e: 431a orrs r2, r3 8014380: 693b ldr r3, [r7, #16] 8014382: 061b lsls r3, r3, #24 8014384: 431a orrs r2, r3 8014386: 68fb ldr r3, [r7, #12] 8014388: 071b lsls r3, r3, #28 801438a: 4313 orrs r3, r2 801438c: f8c1 3084 str.w r3, [r1, #132] ; 0x84 } /*----------------- In Case of PLLI2S is just selected -----------------*/ if((PeriphClkInit->PeriphClockSelection & RCC_PERIPHCLK_PLLI2S) == RCC_PERIPHCLK_PLLI2S) 8014390: 687b ldr r3, [r7, #4] 8014392: 681b ldr r3, [r3, #0] 8014394: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 8014398: 2b00 cmp r3, #0 801439a: d011 beq.n 80143c0 assert_param(IS_RCC_PLLI2SQ_VALUE(PeriphClkInit->PLLI2S.PLLI2SQ)); /* Configure the PLLI2S division factors */ /* PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) x (PLLI2SN/PLLI2SM) */ /* SPDIFRXCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SP */ __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN , PeriphClkInit->PLLI2S.PLLI2SP, PeriphClkInit->PLLI2S.PLLI2SQ, PeriphClkInit->PLLI2S.PLLI2SR); 801439c: 4920 ldr r1, [pc, #128] ; (8014420 ) 801439e: 687b ldr r3, [r7, #4] 80143a0: 685b ldr r3, [r3, #4] 80143a2: 019a lsls r2, r3, #6 80143a4: 687b ldr r3, [r7, #4] 80143a6: 691b ldr r3, [r3, #16] 80143a8: 041b lsls r3, r3, #16 80143aa: 431a orrs r2, r3 80143ac: 687b ldr r3, [r7, #4] 80143ae: 68db ldr r3, [r3, #12] 80143b0: 061b lsls r3, r3, #24 80143b2: 431a orrs r2, r3 80143b4: 687b ldr r3, [r7, #4] 80143b6: 689b ldr r3, [r3, #8] 80143b8: 071b lsls r3, r3, #28 80143ba: 4313 orrs r3, r2 80143bc: f8c1 3084 str.w r3, [r1, #132] ; 0x84 } /* Enable the PLLI2S */ __HAL_RCC_PLLI2S_ENABLE(); 80143c0: 4a17 ldr r2, [pc, #92] ; (8014420 ) 80143c2: 4b17 ldr r3, [pc, #92] ; (8014420 ) 80143c4: 681b ldr r3, [r3, #0] 80143c6: f043 6380 orr.w r3, r3, #67108864 ; 0x4000000 80143ca: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 80143cc: f7fd f906 bl 80115dc 80143d0: 6178 str r0, [r7, #20] /* Wait till PLLI2S is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) == RESET) 80143d2: e008 b.n 80143e6 { if((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE) 80143d4: f7fd f902 bl 80115dc 80143d8: 4602 mov r2, r0 80143da: 697b ldr r3, [r7, #20] 80143dc: 1ad3 subs r3, r2, r3 80143de: 2b64 cmp r3, #100 ; 0x64 80143e0: d901 bls.n 80143e6 { /* return in case of Timeout detected */ return HAL_TIMEOUT; 80143e2: 2303 movs r3, #3 80143e4: e0d7 b.n 8014596 while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) == RESET) 80143e6: 4b0e ldr r3, [pc, #56] ; (8014420 ) 80143e8: 681b ldr r3, [r3, #0] 80143ea: f003 6300 and.w r3, r3, #134217728 ; 0x8000000 80143ee: 2b00 cmp r3, #0 80143f0: d0f0 beq.n 80143d4 } } /*-------------------------------------- PLLSAI Configuration ---------------------------------*/ /* PLLSAI is configured when a peripheral will use it as source clock : SAI1, SAI2, LTDC or CK48 */ if(pllsaiused == 1) 80143f2: 69bb ldr r3, [r7, #24] 80143f4: 2b01 cmp r3, #1 80143f6: f040 80cd bne.w 8014594 { /* Disable PLLSAI Clock */ __HAL_RCC_PLLSAI_DISABLE(); 80143fa: 4a09 ldr r2, [pc, #36] ; (8014420 ) 80143fc: 4b08 ldr r3, [pc, #32] ; (8014420 ) 80143fe: 681b ldr r3, [r3, #0] 8014400: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 8014404: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 8014406: f7fd f8e9 bl 80115dc 801440a: 6178 str r0, [r7, #20] /* Wait till PLLSAI is disabled */ while(__HAL_RCC_PLLSAI_GET_FLAG() != RESET) 801440c: e00a b.n 8014424 { if((HAL_GetTick() - tickstart) > PLLSAI_TIMEOUT_VALUE) 801440e: f7fd f8e5 bl 80115dc 8014412: 4602 mov r2, r0 8014414: 697b ldr r3, [r7, #20] 8014416: 1ad3 subs r3, r2, r3 8014418: 2b64 cmp r3, #100 ; 0x64 801441a: d903 bls.n 8014424 { /* return in case of Timeout detected */ return HAL_TIMEOUT; 801441c: 2303 movs r3, #3 801441e: e0ba b.n 8014596 8014420: 40023800 .word 0x40023800 while(__HAL_RCC_PLLSAI_GET_FLAG() != RESET) 8014424: 4b5e ldr r3, [pc, #376] ; (80145a0 ) 8014426: 681b ldr r3, [r3, #0] 8014428: f003 5300 and.w r3, r3, #536870912 ; 0x20000000 801442c: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000 8014430: d0ed beq.n 801440e /* Check the PLLSAI division factors */ assert_param(IS_RCC_PLLSAIN_VALUE(PeriphClkInit->PLLSAI.PLLSAIN)); /*----------------- In Case of PLLSAI is selected as source clock for SAI -------------------*/ if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI)) ||\ 8014432: 687b ldr r3, [r7, #4] 8014434: 681b ldr r3, [r3, #0] 8014436: f403 2300 and.w r3, r3, #524288 ; 0x80000 801443a: 2b00 cmp r3, #0 801443c: d003 beq.n 8014446 801443e: 687b ldr r3, [r7, #4] 8014440: 6bdb ldr r3, [r3, #60] ; 0x3c 8014442: 2b00 cmp r3, #0 8014444: d009 beq.n 801445a ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI))) 8014446: 687b ldr r3, [r7, #4] 8014448: 681b ldr r3, [r3, #0] 801444a: f403 1380 and.w r3, r3, #1048576 ; 0x100000 if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI)) ||\ 801444e: 2b00 cmp r3, #0 8014450: d02e beq.n 80144b0 ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI))) 8014452: 687b ldr r3, [r7, #4] 8014454: 6c1b ldr r3, [r3, #64] ; 0x40 8014456: 2b00 cmp r3, #0 8014458: d12a bne.n 80144b0 assert_param(IS_RCC_PLLSAIQ_VALUE(PeriphClkInit->PLLSAI.PLLSAIQ)); /* check for PLLSAI/DIVQ Parameter */ assert_param(IS_RCC_PLLSAI_DIVQ_VALUE(PeriphClkInit->PLLSAIDivQ)); /* Read PLLSAIP value from PLLSAICFGR register (this value is not needed for SAI configuration) */ tmpreg0 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIP) >> RCC_PLLSAICFGR_PLLSAIP_Pos); 801445a: 4b51 ldr r3, [pc, #324] ; (80145a0 ) 801445c: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 8014460: 0c1b lsrs r3, r3, #16 8014462: f003 0303 and.w r3, r3, #3 8014466: 613b str r3, [r7, #16] tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLSAICFGR_PLLSAIR_Pos); 8014468: 4b4d ldr r3, [pc, #308] ; (80145a0 ) 801446a: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 801446e: 0f1b lsrs r3, r3, #28 8014470: f003 0307 and.w r3, r3, #7 8014474: 60fb str r3, [r7, #12] /* PLLSAI_VCO Input = PLL_SOURCE/PLLM */ /* PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAIN */ /* SAI_CLK(first level) = PLLSAI_VCO Output/PLLSAIQ */ __HAL_RCC_PLLSAI_CONFIG(PeriphClkInit->PLLSAI.PLLSAIN , tmpreg0, PeriphClkInit->PLLSAI.PLLSAIQ, tmpreg1); 8014476: 494a ldr r1, [pc, #296] ; (80145a0 ) 8014478: 687b ldr r3, [r7, #4] 801447a: 695b ldr r3, [r3, #20] 801447c: 019a lsls r2, r3, #6 801447e: 693b ldr r3, [r7, #16] 8014480: 041b lsls r3, r3, #16 8014482: 431a orrs r2, r3 8014484: 687b ldr r3, [r7, #4] 8014486: 699b ldr r3, [r3, #24] 8014488: 061b lsls r3, r3, #24 801448a: 431a orrs r2, r3 801448c: 68fb ldr r3, [r7, #12] 801448e: 071b lsls r3, r3, #28 8014490: 4313 orrs r3, r2 8014492: f8c1 3088 str.w r3, [r1, #136] ; 0x88 /* SAI_CLK_x = SAI_CLK(first level)/PLLSAIDIVQ */ __HAL_RCC_PLLSAI_PLLSAICLKDIVQ_CONFIG(PeriphClkInit->PLLSAIDivQ); 8014496: 4942 ldr r1, [pc, #264] ; (80145a0 ) 8014498: 4b41 ldr r3, [pc, #260] ; (80145a0 ) 801449a: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 801449e: f423 52f8 bic.w r2, r3, #7936 ; 0x1f00 80144a2: 687b ldr r3, [r7, #4] 80144a4: 6a9b ldr r3, [r3, #40] ; 0x28 80144a6: 3b01 subs r3, #1 80144a8: 021b lsls r3, r3, #8 80144aa: 4313 orrs r3, r2 80144ac: f8c1 308c str.w r3, [r1, #140] ; 0x8c } /*----------------- In Case of PLLSAI is selected as source clock for CLK48 -------------------*/ /* In Case of PLLI2S is selected as source clock for CK48 */ if((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CLK48) == RCC_PERIPHCLK_CLK48) && (PeriphClkInit->Clk48ClockSelection == RCC_CLK48SOURCE_PLLSAIP)) 80144b0: 687b ldr r3, [r7, #4] 80144b2: 681b ldr r3, [r3, #0] 80144b4: f403 1300 and.w r3, r3, #2097152 ; 0x200000 80144b8: 2b00 cmp r3, #0 80144ba: d022 beq.n 8014502 80144bc: 687b ldr r3, [r7, #4] 80144be: 6fdb ldr r3, [r3, #124] ; 0x7c 80144c0: f1b3 6f00 cmp.w r3, #134217728 ; 0x8000000 80144c4: d11d bne.n 8014502 { /* check for Parameters */ assert_param(IS_RCC_PLLSAIP_VALUE(PeriphClkInit->PLLSAI.PLLSAIP)); /* Read PLLSAIQ and PLLSAIR value from PLLSAICFGR register (this value is not needed for CK48 configuration) */ tmpreg0 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIQ) >> RCC_PLLSAICFGR_PLLSAIQ_Pos); 80144c6: 4b36 ldr r3, [pc, #216] ; (80145a0 ) 80144c8: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 80144cc: 0e1b lsrs r3, r3, #24 80144ce: f003 030f and.w r3, r3, #15 80144d2: 613b str r3, [r7, #16] tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIR) >> RCC_PLLSAICFGR_PLLSAIR_Pos); 80144d4: 4b32 ldr r3, [pc, #200] ; (80145a0 ) 80144d6: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 80144da: 0f1b lsrs r3, r3, #28 80144dc: f003 0307 and.w r3, r3, #7 80144e0: 60fb str r3, [r7, #12] /* Configure the PLLSAI division factors */ /* PLLSAI_VCO = f(VCO clock) = f(PLLSAI clock input) x (PLLI2SN/PLLM) */ /* 48CLK = f(PLLSAI clock output) = f(VCO clock) / PLLSAIP */ __HAL_RCC_PLLSAI_CONFIG(PeriphClkInit->PLLSAI.PLLSAIN , PeriphClkInit->PLLSAI.PLLSAIP, tmpreg0, tmpreg1); 80144e2: 492f ldr r1, [pc, #188] ; (80145a0 ) 80144e4: 687b ldr r3, [r7, #4] 80144e6: 695b ldr r3, [r3, #20] 80144e8: 019a lsls r2, r3, #6 80144ea: 687b ldr r3, [r7, #4] 80144ec: 6a1b ldr r3, [r3, #32] 80144ee: 041b lsls r3, r3, #16 80144f0: 431a orrs r2, r3 80144f2: 693b ldr r3, [r7, #16] 80144f4: 061b lsls r3, r3, #24 80144f6: 431a orrs r2, r3 80144f8: 68fb ldr r3, [r7, #12] 80144fa: 071b lsls r3, r3, #28 80144fc: 4313 orrs r3, r2 80144fe: f8c1 3088 str.w r3, [r1, #136] ; 0x88 } #if defined(STM32F746xx) || defined(STM32F756xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx) || defined (STM32F750xx) /*---------------------------- LTDC configuration -------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LTDC) == (RCC_PERIPHCLK_LTDC)) 8014502: 687b ldr r3, [r7, #4] 8014504: 681b ldr r3, [r3, #0] 8014506: f003 0308 and.w r3, r3, #8 801450a: 2b00 cmp r3, #0 801450c: d028 beq.n 8014560 { assert_param(IS_RCC_PLLSAIR_VALUE(PeriphClkInit->PLLSAI.PLLSAIR)); assert_param(IS_RCC_PLLSAI_DIVR_VALUE(PeriphClkInit->PLLSAIDivR)); /* Read PLLSAIP and PLLSAIQ value from PLLSAICFGR register (these value are not needed for LTDC configuration) */ tmpreg0 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIQ) >> RCC_PLLSAICFGR_PLLSAIQ_Pos); 801450e: 4b24 ldr r3, [pc, #144] ; (80145a0 ) 8014510: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 8014514: 0e1b lsrs r3, r3, #24 8014516: f003 030f and.w r3, r3, #15 801451a: 613b str r3, [r7, #16] tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIP) >> RCC_PLLSAICFGR_PLLSAIP_Pos); 801451c: 4b20 ldr r3, [pc, #128] ; (80145a0 ) 801451e: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 8014522: 0c1b lsrs r3, r3, #16 8014524: f003 0303 and.w r3, r3, #3 8014528: 60fb str r3, [r7, #12] /* PLLSAI_VCO Input = PLL_SOURCE/PLLM */ /* PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAIN */ /* LTDC_CLK(first level) = PLLSAI_VCO Output/PLLSAIR */ __HAL_RCC_PLLSAI_CONFIG(PeriphClkInit->PLLSAI.PLLSAIN , tmpreg1, tmpreg0, PeriphClkInit->PLLSAI.PLLSAIR); 801452a: 491d ldr r1, [pc, #116] ; (80145a0 ) 801452c: 687b ldr r3, [r7, #4] 801452e: 695b ldr r3, [r3, #20] 8014530: 019a lsls r2, r3, #6 8014532: 68fb ldr r3, [r7, #12] 8014534: 041b lsls r3, r3, #16 8014536: 431a orrs r2, r3 8014538: 693b ldr r3, [r7, #16] 801453a: 061b lsls r3, r3, #24 801453c: 431a orrs r2, r3 801453e: 687b ldr r3, [r7, #4] 8014540: 69db ldr r3, [r3, #28] 8014542: 071b lsls r3, r3, #28 8014544: 4313 orrs r3, r2 8014546: f8c1 3088 str.w r3, [r1, #136] ; 0x88 /* LTDC_CLK = LTDC_CLK(first level)/PLLSAIDIVR */ __HAL_RCC_PLLSAI_PLLSAICLKDIVR_CONFIG(PeriphClkInit->PLLSAIDivR); 801454a: 4915 ldr r1, [pc, #84] ; (80145a0 ) 801454c: 4b14 ldr r3, [pc, #80] ; (80145a0 ) 801454e: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 8014552: f423 3240 bic.w r2, r3, #196608 ; 0x30000 8014556: 687b ldr r3, [r7, #4] 8014558: 6adb ldr r3, [r3, #44] ; 0x2c 801455a: 4313 orrs r3, r2 801455c: f8c1 308c str.w r3, [r1, #140] ; 0x8c } #endif /* STM32F746xx || STM32F756xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx || STM32F750xx */ /* Enable PLLSAI Clock */ __HAL_RCC_PLLSAI_ENABLE(); 8014560: 4a0f ldr r2, [pc, #60] ; (80145a0 ) 8014562: 4b0f ldr r3, [pc, #60] ; (80145a0 ) 8014564: 681b ldr r3, [r3, #0] 8014566: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 801456a: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 801456c: f7fd f836 bl 80115dc 8014570: 6178 str r0, [r7, #20] /* Wait till PLLSAI is ready */ while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET) 8014572: e008 b.n 8014586 { if((HAL_GetTick() - tickstart) > PLLSAI_TIMEOUT_VALUE) 8014574: f7fd f832 bl 80115dc 8014578: 4602 mov r2, r0 801457a: 697b ldr r3, [r7, #20] 801457c: 1ad3 subs r3, r2, r3 801457e: 2b64 cmp r3, #100 ; 0x64 8014580: d901 bls.n 8014586 { /* return in case of Timeout detected */ return HAL_TIMEOUT; 8014582: 2303 movs r3, #3 8014584: e007 b.n 8014596 while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET) 8014586: 4b06 ldr r3, [pc, #24] ; (80145a0 ) 8014588: 681b ldr r3, [r3, #0] 801458a: f003 5300 and.w r3, r3, #536870912 ; 0x20000000 801458e: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000 8014592: d1ef bne.n 8014574 } } } return HAL_OK; 8014594: 2300 movs r3, #0 } 8014596: 4618 mov r0, r3 8014598: 3720 adds r7, #32 801459a: 46bd mov sp, r7 801459c: bd80 pop {r7, pc} 801459e: bf00 nop 80145a0: 40023800 .word 0x40023800 080145a4 : * Ex: call @ref HAL_TIM_Base_DeInit() before HAL_TIM_Base_Init() * @param htim TIM Base handle * @retval HAL status */ HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim) { 80145a4: b580 push {r7, lr} 80145a6: b082 sub sp, #8 80145a8: af00 add r7, sp, #0 80145aa: 6078 str r0, [r7, #4] /* Check the TIM handle allocation */ if (htim == NULL) 80145ac: 687b ldr r3, [r7, #4] 80145ae: 2b00 cmp r3, #0 80145b0: d101 bne.n 80145b6 { return HAL_ERROR; 80145b2: 2301 movs r3, #1 80145b4: e049 b.n 801464a assert_param(IS_TIM_INSTANCE(htim->Instance)); assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); if (htim->State == HAL_TIM_STATE_RESET) 80145b6: 687b ldr r3, [r7, #4] 80145b8: f893 303d ldrb.w r3, [r3, #61] ; 0x3d 80145bc: b2db uxtb r3, r3 80145be: 2b00 cmp r3, #0 80145c0: d106 bne.n 80145d0 { /* Allocate lock resource and initialize it */ htim->Lock = HAL_UNLOCKED; 80145c2: 687b ldr r3, [r7, #4] 80145c4: 2200 movs r2, #0 80145c6: f883 203c strb.w r2, [r3, #60] ; 0x3c } /* Init the low level hardware : GPIO, CLOCK, NVIC */ htim->Base_MspInitCallback(htim); #else /* Init the low level hardware : GPIO, CLOCK, NVIC */ HAL_TIM_Base_MspInit(htim); 80145ca: 6878 ldr r0, [r7, #4] 80145cc: f7fb fa18 bl 800fa00 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } /* Set the TIM state */ htim->State = HAL_TIM_STATE_BUSY; 80145d0: 687b ldr r3, [r7, #4] 80145d2: 2202 movs r2, #2 80145d4: f883 203d strb.w r2, [r3, #61] ; 0x3d /* Set the Time Base configuration */ TIM_Base_SetConfig(htim->Instance, &htim->Init); 80145d8: 687b ldr r3, [r7, #4] 80145da: 681a ldr r2, [r3, #0] 80145dc: 687b ldr r3, [r7, #4] 80145de: 3304 adds r3, #4 80145e0: 4619 mov r1, r3 80145e2: 4610 mov r0, r2 80145e4: f000 f9f6 bl 80149d4 /* Initialize the DMA burst operation state */ htim->DMABurstState = HAL_DMA_BURST_STATE_READY; 80145e8: 687b ldr r3, [r7, #4] 80145ea: 2201 movs r2, #1 80145ec: f883 2048 strb.w r2, [r3, #72] ; 0x48 /* Initialize the TIM channels state */ TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); 80145f0: 687b ldr r3, [r7, #4] 80145f2: 2201 movs r2, #1 80145f4: f883 203e strb.w r2, [r3, #62] ; 0x3e 80145f8: 687b ldr r3, [r7, #4] 80145fa: 2201 movs r2, #1 80145fc: f883 203f strb.w r2, [r3, #63] ; 0x3f 8014600: 687b ldr r3, [r7, #4] 8014602: 2201 movs r2, #1 8014604: f883 2040 strb.w r2, [r3, #64] ; 0x40 8014608: 687b ldr r3, [r7, #4] 801460a: 2201 movs r2, #1 801460c: f883 2041 strb.w r2, [r3, #65] ; 0x41 8014610: 687b ldr r3, [r7, #4] 8014612: 2201 movs r2, #1 8014614: f883 2042 strb.w r2, [r3, #66] ; 0x42 8014618: 687b ldr r3, [r7, #4] 801461a: 2201 movs r2, #1 801461c: f883 2043 strb.w r2, [r3, #67] ; 0x43 TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); 8014620: 687b ldr r3, [r7, #4] 8014622: 2201 movs r2, #1 8014624: f883 2044 strb.w r2, [r3, #68] ; 0x44 8014628: 687b ldr r3, [r7, #4] 801462a: 2201 movs r2, #1 801462c: f883 2045 strb.w r2, [r3, #69] ; 0x45 8014630: 687b ldr r3, [r7, #4] 8014632: 2201 movs r2, #1 8014634: f883 2046 strb.w r2, [r3, #70] ; 0x46 8014638: 687b ldr r3, [r7, #4] 801463a: 2201 movs r2, #1 801463c: f883 2047 strb.w r2, [r3, #71] ; 0x47 /* Initialize the TIM state*/ htim->State = HAL_TIM_STATE_READY; 8014640: 687b ldr r3, [r7, #4] 8014642: 2201 movs r2, #1 8014644: f883 203d strb.w r2, [r3, #61] ; 0x3d return HAL_OK; 8014648: 2300 movs r3, #0 } 801464a: 4618 mov r0, r3 801464c: 3708 adds r7, #8 801464e: 46bd mov sp, r7 8014650: bd80 pop {r7, pc} ... 08014654 : * @brief Starts the TIM Base generation in interrupt mode. * @param htim TIM Base handle * @retval HAL status */ HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim) { 8014654: b480 push {r7} 8014656: b085 sub sp, #20 8014658: af00 add r7, sp, #0 801465a: 6078 str r0, [r7, #4] /* Check the parameters */ assert_param(IS_TIM_INSTANCE(htim->Instance)); /* Check the TIM state */ if (htim->State != HAL_TIM_STATE_READY) 801465c: 687b ldr r3, [r7, #4] 801465e: f893 303d ldrb.w r3, [r3, #61] ; 0x3d 8014662: b2db uxtb r3, r3 8014664: 2b01 cmp r3, #1 8014666: d001 beq.n 801466c { return HAL_ERROR; 8014668: 2301 movs r3, #1 801466a: e054 b.n 8014716 } /* Set the TIM state */ htim->State = HAL_TIM_STATE_BUSY; 801466c: 687b ldr r3, [r7, #4] 801466e: 2202 movs r2, #2 8014670: f883 203d strb.w r2, [r3, #61] ; 0x3d /* Enable the TIM Update interrupt */ __HAL_TIM_ENABLE_IT(htim, TIM_IT_UPDATE); 8014674: 687b ldr r3, [r7, #4] 8014676: 681b ldr r3, [r3, #0] 8014678: 687a ldr r2, [r7, #4] 801467a: 6812 ldr r2, [r2, #0] 801467c: 68d2 ldr r2, [r2, #12] 801467e: f042 0201 orr.w r2, r2, #1 8014682: 60da str r2, [r3, #12] /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) 8014684: 687b ldr r3, [r7, #4] 8014686: 681b ldr r3, [r3, #0] 8014688: 4a26 ldr r2, [pc, #152] ; (8014724 ) 801468a: 4293 cmp r3, r2 801468c: d022 beq.n 80146d4 801468e: 687b ldr r3, [r7, #4] 8014690: 681b ldr r3, [r3, #0] 8014692: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 8014696: d01d beq.n 80146d4 8014698: 687b ldr r3, [r7, #4] 801469a: 681b ldr r3, [r3, #0] 801469c: 4a22 ldr r2, [pc, #136] ; (8014728 ) 801469e: 4293 cmp r3, r2 80146a0: d018 beq.n 80146d4 80146a2: 687b ldr r3, [r7, #4] 80146a4: 681b ldr r3, [r3, #0] 80146a6: 4a21 ldr r2, [pc, #132] ; (801472c ) 80146a8: 4293 cmp r3, r2 80146aa: d013 beq.n 80146d4 80146ac: 687b ldr r3, [r7, #4] 80146ae: 681b ldr r3, [r3, #0] 80146b0: 4a1f ldr r2, [pc, #124] ; (8014730 ) 80146b2: 4293 cmp r3, r2 80146b4: d00e beq.n 80146d4 80146b6: 687b ldr r3, [r7, #4] 80146b8: 681b ldr r3, [r3, #0] 80146ba: 4a1e ldr r2, [pc, #120] ; (8014734 ) 80146bc: 4293 cmp r3, r2 80146be: d009 beq.n 80146d4 80146c0: 687b ldr r3, [r7, #4] 80146c2: 681b ldr r3, [r3, #0] 80146c4: 4a1c ldr r2, [pc, #112] ; (8014738 ) 80146c6: 4293 cmp r3, r2 80146c8: d004 beq.n 80146d4 80146ca: 687b ldr r3, [r7, #4] 80146cc: 681b ldr r3, [r3, #0] 80146ce: 4a1b ldr r2, [pc, #108] ; (801473c ) 80146d0: 4293 cmp r3, r2 80146d2: d115 bne.n 8014700 { tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; 80146d4: 687b ldr r3, [r7, #4] 80146d6: 681b ldr r3, [r3, #0] 80146d8: 689a ldr r2, [r3, #8] 80146da: 4b19 ldr r3, [pc, #100] ; (8014740 ) 80146dc: 4013 ands r3, r2 80146de: 60fb str r3, [r7, #12] if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) 80146e0: 68fb ldr r3, [r7, #12] 80146e2: 2b06 cmp r3, #6 80146e4: d015 beq.n 8014712 80146e6: 68fb ldr r3, [r7, #12] 80146e8: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 80146ec: d011 beq.n 8014712 { __HAL_TIM_ENABLE(htim); 80146ee: 687b ldr r3, [r7, #4] 80146f0: 681b ldr r3, [r3, #0] 80146f2: 687a ldr r2, [r7, #4] 80146f4: 6812 ldr r2, [r2, #0] 80146f6: 6812 ldr r2, [r2, #0] 80146f8: f042 0201 orr.w r2, r2, #1 80146fc: 601a str r2, [r3, #0] if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) 80146fe: e008 b.n 8014712 } } else { __HAL_TIM_ENABLE(htim); 8014700: 687b ldr r3, [r7, #4] 8014702: 681b ldr r3, [r3, #0] 8014704: 687a ldr r2, [r7, #4] 8014706: 6812 ldr r2, [r2, #0] 8014708: 6812 ldr r2, [r2, #0] 801470a: f042 0201 orr.w r2, r2, #1 801470e: 601a str r2, [r3, #0] 8014710: e000 b.n 8014714 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) 8014712: bf00 nop } /* Return function status */ return HAL_OK; 8014714: 2300 movs r3, #0 } 8014716: 4618 mov r0, r3 8014718: 3714 adds r7, #20 801471a: 46bd mov sp, r7 801471c: f85d 7b04 ldr.w r7, [sp], #4 8014720: 4770 bx lr 8014722: bf00 nop 8014724: 40010000 .word 0x40010000 8014728: 40000400 .word 0x40000400 801472c: 40000800 .word 0x40000800 8014730: 40000c00 .word 0x40000c00 8014734: 40010400 .word 0x40010400 8014738: 40014000 .word 0x40014000 801473c: 40001800 .word 0x40001800 8014740: 00010007 .word 0x00010007 08014744 : * @brief This function handles TIM interrupts requests. * @param htim TIM handle * @retval None */ void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim) { 8014744: b580 push {r7, lr} 8014746: b082 sub sp, #8 8014748: af00 add r7, sp, #0 801474a: 6078 str r0, [r7, #4] /* Capture compare 1 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1) != RESET) 801474c: 687b ldr r3, [r7, #4] 801474e: 681b ldr r3, [r3, #0] 8014750: 691b ldr r3, [r3, #16] 8014752: f003 0302 and.w r3, r3, #2 8014756: 2b02 cmp r3, #2 8014758: d122 bne.n 80147a0 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC1) != RESET) 801475a: 687b ldr r3, [r7, #4] 801475c: 681b ldr r3, [r3, #0] 801475e: 68db ldr r3, [r3, #12] 8014760: f003 0302 and.w r3, r3, #2 8014764: 2b02 cmp r3, #2 8014766: d11b bne.n 80147a0 { { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC1); 8014768: 687b ldr r3, [r7, #4] 801476a: 681b ldr r3, [r3, #0] 801476c: f06f 0202 mvn.w r2, #2 8014770: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; 8014772: 687b ldr r3, [r7, #4] 8014774: 2201 movs r2, #1 8014776: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR1 & TIM_CCMR1_CC1S) != 0x00U) 8014778: 687b ldr r3, [r7, #4] 801477a: 681b ldr r3, [r3, #0] 801477c: 699b ldr r3, [r3, #24] 801477e: f003 0303 and.w r3, r3, #3 8014782: 2b00 cmp r3, #0 8014784: d003 beq.n 801478e { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); 8014786: 6878 ldr r0, [r7, #4] 8014788: f000 f905 bl 8014996 801478c: e005 b.n 801479a { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); 801478e: 6878 ldr r0, [r7, #4] 8014790: f000 f8f7 bl 8014982 HAL_TIM_PWM_PulseFinishedCallback(htim); 8014794: 6878 ldr r0, [r7, #4] 8014796: f000 f908 bl 80149aa #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; 801479a: 687b ldr r3, [r7, #4] 801479c: 2200 movs r2, #0 801479e: 771a strb r2, [r3, #28] } } } /* Capture compare 2 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC2) != RESET) 80147a0: 687b ldr r3, [r7, #4] 80147a2: 681b ldr r3, [r3, #0] 80147a4: 691b ldr r3, [r3, #16] 80147a6: f003 0304 and.w r3, r3, #4 80147aa: 2b04 cmp r3, #4 80147ac: d122 bne.n 80147f4 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC2) != RESET) 80147ae: 687b ldr r3, [r7, #4] 80147b0: 681b ldr r3, [r3, #0] 80147b2: 68db ldr r3, [r3, #12] 80147b4: f003 0304 and.w r3, r3, #4 80147b8: 2b04 cmp r3, #4 80147ba: d11b bne.n 80147f4 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC2); 80147bc: 687b ldr r3, [r7, #4] 80147be: 681b ldr r3, [r3, #0] 80147c0: f06f 0204 mvn.w r2, #4 80147c4: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; 80147c6: 687b ldr r3, [r7, #4] 80147c8: 2202 movs r2, #2 80147ca: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U) 80147cc: 687b ldr r3, [r7, #4] 80147ce: 681b ldr r3, [r3, #0] 80147d0: 699b ldr r3, [r3, #24] 80147d2: f403 7340 and.w r3, r3, #768 ; 0x300 80147d6: 2b00 cmp r3, #0 80147d8: d003 beq.n 80147e2 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); 80147da: 6878 ldr r0, [r7, #4] 80147dc: f000 f8db bl 8014996 80147e0: e005 b.n 80147ee { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); 80147e2: 6878 ldr r0, [r7, #4] 80147e4: f000 f8cd bl 8014982 HAL_TIM_PWM_PulseFinishedCallback(htim); 80147e8: 6878 ldr r0, [r7, #4] 80147ea: f000 f8de bl 80149aa #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; 80147ee: 687b ldr r3, [r7, #4] 80147f0: 2200 movs r2, #0 80147f2: 771a strb r2, [r3, #28] } } /* Capture compare 3 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC3) != RESET) 80147f4: 687b ldr r3, [r7, #4] 80147f6: 681b ldr r3, [r3, #0] 80147f8: 691b ldr r3, [r3, #16] 80147fa: f003 0308 and.w r3, r3, #8 80147fe: 2b08 cmp r3, #8 8014800: d122 bne.n 8014848 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC3) != RESET) 8014802: 687b ldr r3, [r7, #4] 8014804: 681b ldr r3, [r3, #0] 8014806: 68db ldr r3, [r3, #12] 8014808: f003 0308 and.w r3, r3, #8 801480c: 2b08 cmp r3, #8 801480e: d11b bne.n 8014848 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC3); 8014810: 687b ldr r3, [r7, #4] 8014812: 681b ldr r3, [r3, #0] 8014814: f06f 0208 mvn.w r2, #8 8014818: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; 801481a: 687b ldr r3, [r7, #4] 801481c: 2204 movs r2, #4 801481e: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U) 8014820: 687b ldr r3, [r7, #4] 8014822: 681b ldr r3, [r3, #0] 8014824: 69db ldr r3, [r3, #28] 8014826: f003 0303 and.w r3, r3, #3 801482a: 2b00 cmp r3, #0 801482c: d003 beq.n 8014836 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); 801482e: 6878 ldr r0, [r7, #4] 8014830: f000 f8b1 bl 8014996 8014834: e005 b.n 8014842 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); 8014836: 6878 ldr r0, [r7, #4] 8014838: f000 f8a3 bl 8014982 HAL_TIM_PWM_PulseFinishedCallback(htim); 801483c: 6878 ldr r0, [r7, #4] 801483e: f000 f8b4 bl 80149aa #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; 8014842: 687b ldr r3, [r7, #4] 8014844: 2200 movs r2, #0 8014846: 771a strb r2, [r3, #28] } } /* Capture compare 4 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC4) != RESET) 8014848: 687b ldr r3, [r7, #4] 801484a: 681b ldr r3, [r3, #0] 801484c: 691b ldr r3, [r3, #16] 801484e: f003 0310 and.w r3, r3, #16 8014852: 2b10 cmp r3, #16 8014854: d122 bne.n 801489c { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC4) != RESET) 8014856: 687b ldr r3, [r7, #4] 8014858: 681b ldr r3, [r3, #0] 801485a: 68db ldr r3, [r3, #12] 801485c: f003 0310 and.w r3, r3, #16 8014860: 2b10 cmp r3, #16 8014862: d11b bne.n 801489c { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC4); 8014864: 687b ldr r3, [r7, #4] 8014866: 681b ldr r3, [r3, #0] 8014868: f06f 0210 mvn.w r2, #16 801486c: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; 801486e: 687b ldr r3, [r7, #4] 8014870: 2208 movs r2, #8 8014872: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U) 8014874: 687b ldr r3, [r7, #4] 8014876: 681b ldr r3, [r3, #0] 8014878: 69db ldr r3, [r3, #28] 801487a: f403 7340 and.w r3, r3, #768 ; 0x300 801487e: 2b00 cmp r3, #0 8014880: d003 beq.n 801488a { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); 8014882: 6878 ldr r0, [r7, #4] 8014884: f000 f887 bl 8014996 8014888: e005 b.n 8014896 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); 801488a: 6878 ldr r0, [r7, #4] 801488c: f000 f879 bl 8014982 HAL_TIM_PWM_PulseFinishedCallback(htim); 8014890: 6878 ldr r0, [r7, #4] 8014892: f000 f88a bl 80149aa #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; 8014896: 687b ldr r3, [r7, #4] 8014898: 2200 movs r2, #0 801489a: 771a strb r2, [r3, #28] } } /* TIM Update event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_UPDATE) != RESET) 801489c: 687b ldr r3, [r7, #4] 801489e: 681b ldr r3, [r3, #0] 80148a0: 691b ldr r3, [r3, #16] 80148a2: f003 0301 and.w r3, r3, #1 80148a6: 2b01 cmp r3, #1 80148a8: d10e bne.n 80148c8 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_UPDATE) != RESET) 80148aa: 687b ldr r3, [r7, #4] 80148ac: 681b ldr r3, [r3, #0] 80148ae: 68db ldr r3, [r3, #12] 80148b0: f003 0301 and.w r3, r3, #1 80148b4: 2b01 cmp r3, #1 80148b6: d107 bne.n 80148c8 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE); 80148b8: 687b ldr r3, [r7, #4] 80148ba: 681b ldr r3, [r3, #0] 80148bc: f06f 0201 mvn.w r2, #1 80148c0: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->PeriodElapsedCallback(htim); #else HAL_TIM_PeriodElapsedCallback(htim); 80148c2: 6878 ldr r0, [r7, #4] 80148c4: f7fb f8ea bl 800fa9c #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } /* TIM Break input event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK) != RESET) 80148c8: 687b ldr r3, [r7, #4] 80148ca: 681b ldr r3, [r3, #0] 80148cc: 691b ldr r3, [r3, #16] 80148ce: f003 0380 and.w r3, r3, #128 ; 0x80 80148d2: 2b80 cmp r3, #128 ; 0x80 80148d4: d10e bne.n 80148f4 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET) 80148d6: 687b ldr r3, [r7, #4] 80148d8: 681b ldr r3, [r3, #0] 80148da: 68db ldr r3, [r3, #12] 80148dc: f003 0380 and.w r3, r3, #128 ; 0x80 80148e0: 2b80 cmp r3, #128 ; 0x80 80148e2: d107 bne.n 80148f4 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_BREAK); 80148e4: 687b ldr r3, [r7, #4] 80148e6: 681b ldr r3, [r3, #0] 80148e8: f06f 0280 mvn.w r2, #128 ; 0x80 80148ec: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->BreakCallback(htim); #else HAL_TIMEx_BreakCallback(htim); 80148ee: 6878 ldr r0, [r7, #4] 80148f0: f000 f9a8 bl 8014c44 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } /* TIM Break2 input event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK2) != RESET) 80148f4: 687b ldr r3, [r7, #4] 80148f6: 681b ldr r3, [r3, #0] 80148f8: 691b ldr r3, [r3, #16] 80148fa: f403 7380 and.w r3, r3, #256 ; 0x100 80148fe: f5b3 7f80 cmp.w r3, #256 ; 0x100 8014902: d10e bne.n 8014922 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET) 8014904: 687b ldr r3, [r7, #4] 8014906: 681b ldr r3, [r3, #0] 8014908: 68db ldr r3, [r3, #12] 801490a: f003 0380 and.w r3, r3, #128 ; 0x80 801490e: 2b80 cmp r3, #128 ; 0x80 8014910: d107 bne.n 8014922 { __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_BREAK2); 8014912: 687b ldr r3, [r7, #4] 8014914: 681b ldr r3, [r3, #0] 8014916: f46f 7280 mvn.w r2, #256 ; 0x100 801491a: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->Break2Callback(htim); #else HAL_TIMEx_Break2Callback(htim); 801491c: 6878 ldr r0, [r7, #4] 801491e: f000 f99b bl 8014c58 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } /* TIM Trigger detection event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_TRIGGER) != RESET) 8014922: 687b ldr r3, [r7, #4] 8014924: 681b ldr r3, [r3, #0] 8014926: 691b ldr r3, [r3, #16] 8014928: f003 0340 and.w r3, r3, #64 ; 0x40 801492c: 2b40 cmp r3, #64 ; 0x40 801492e: d10e bne.n 801494e { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_TRIGGER) != RESET) 8014930: 687b ldr r3, [r7, #4] 8014932: 681b ldr r3, [r3, #0] 8014934: 68db ldr r3, [r3, #12] 8014936: f003 0340 and.w r3, r3, #64 ; 0x40 801493a: 2b40 cmp r3, #64 ; 0x40 801493c: d107 bne.n 801494e { __HAL_TIM_CLEAR_IT(htim, TIM_IT_TRIGGER); 801493e: 687b ldr r3, [r7, #4] 8014940: 681b ldr r3, [r3, #0] 8014942: f06f 0240 mvn.w r2, #64 ; 0x40 8014946: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->TriggerCallback(htim); #else HAL_TIM_TriggerCallback(htim); 8014948: 6878 ldr r0, [r7, #4] 801494a: f000 f838 bl 80149be #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } /* TIM commutation event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_COM) != RESET) 801494e: 687b ldr r3, [r7, #4] 8014950: 681b ldr r3, [r3, #0] 8014952: 691b ldr r3, [r3, #16] 8014954: f003 0320 and.w r3, r3, #32 8014958: 2b20 cmp r3, #32 801495a: d10e bne.n 801497a { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_COM) != RESET) 801495c: 687b ldr r3, [r7, #4] 801495e: 681b ldr r3, [r3, #0] 8014960: 68db ldr r3, [r3, #12] 8014962: f003 0320 and.w r3, r3, #32 8014966: 2b20 cmp r3, #32 8014968: d107 bne.n 801497a { __HAL_TIM_CLEAR_IT(htim, TIM_FLAG_COM); 801496a: 687b ldr r3, [r7, #4] 801496c: 681b ldr r3, [r3, #0] 801496e: f06f 0220 mvn.w r2, #32 8014972: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->CommutationCallback(htim); #else HAL_TIMEx_CommutCallback(htim); 8014974: 6878 ldr r0, [r7, #4] 8014976: f000 f95b bl 8014c30 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } } 801497a: bf00 nop 801497c: 3708 adds r7, #8 801497e: 46bd mov sp, r7 8014980: bd80 pop {r7, pc} 08014982 : * @brief Output Compare callback in non-blocking mode * @param htim TIM OC handle * @retval None */ __weak void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim) { 8014982: b480 push {r7} 8014984: b083 sub sp, #12 8014986: af00 add r7, sp, #0 8014988: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_OC_DelayElapsedCallback could be implemented in the user file */ } 801498a: bf00 nop 801498c: 370c adds r7, #12 801498e: 46bd mov sp, r7 8014990: f85d 7b04 ldr.w r7, [sp], #4 8014994: 4770 bx lr 08014996 : * @brief Input Capture callback in non-blocking mode * @param htim TIM IC handle * @retval None */ __weak void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) { 8014996: b480 push {r7} 8014998: b083 sub sp, #12 801499a: af00 add r7, sp, #0 801499c: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_IC_CaptureCallback could be implemented in the user file */ } 801499e: bf00 nop 80149a0: 370c adds r7, #12 80149a2: 46bd mov sp, r7 80149a4: f85d 7b04 ldr.w r7, [sp], #4 80149a8: 4770 bx lr 080149aa : * @brief PWM Pulse finished callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) { 80149aa: b480 push {r7} 80149ac: b083 sub sp, #12 80149ae: af00 add r7, sp, #0 80149b0: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_PWM_PulseFinishedCallback could be implemented in the user file */ } 80149b2: bf00 nop 80149b4: 370c adds r7, #12 80149b6: 46bd mov sp, r7 80149b8: f85d 7b04 ldr.w r7, [sp], #4 80149bc: 4770 bx lr 080149be : * @brief Hall Trigger detection callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim) { 80149be: b480 push {r7} 80149c0: b083 sub sp, #12 80149c2: af00 add r7, sp, #0 80149c4: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_TriggerCallback could be implemented in the user file */ } 80149c6: bf00 nop 80149c8: 370c adds r7, #12 80149ca: 46bd mov sp, r7 80149cc: f85d 7b04 ldr.w r7, [sp], #4 80149d0: 4770 bx lr ... 080149d4 : * @param TIMx TIM peripheral * @param Structure TIM Base configuration structure * @retval None */ void TIM_Base_SetConfig(TIM_TypeDef *TIMx, TIM_Base_InitTypeDef *Structure) { 80149d4: b480 push {r7} 80149d6: b085 sub sp, #20 80149d8: af00 add r7, sp, #0 80149da: 6078 str r0, [r7, #4] 80149dc: 6039 str r1, [r7, #0] uint32_t tmpcr1; tmpcr1 = TIMx->CR1; 80149de: 687b ldr r3, [r7, #4] 80149e0: 681b ldr r3, [r3, #0] 80149e2: 60fb str r3, [r7, #12] /* Set TIM Time Base Unit parameters ---------------------------------------*/ if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx)) 80149e4: 687b ldr r3, [r7, #4] 80149e6: 4a40 ldr r2, [pc, #256] ; (8014ae8 ) 80149e8: 4293 cmp r3, r2 80149ea: d013 beq.n 8014a14 80149ec: 687b ldr r3, [r7, #4] 80149ee: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 80149f2: d00f beq.n 8014a14 80149f4: 687b ldr r3, [r7, #4] 80149f6: 4a3d ldr r2, [pc, #244] ; (8014aec ) 80149f8: 4293 cmp r3, r2 80149fa: d00b beq.n 8014a14 80149fc: 687b ldr r3, [r7, #4] 80149fe: 4a3c ldr r2, [pc, #240] ; (8014af0 ) 8014a00: 4293 cmp r3, r2 8014a02: d007 beq.n 8014a14 8014a04: 687b ldr r3, [r7, #4] 8014a06: 4a3b ldr r2, [pc, #236] ; (8014af4 ) 8014a08: 4293 cmp r3, r2 8014a0a: d003 beq.n 8014a14 8014a0c: 687b ldr r3, [r7, #4] 8014a0e: 4a3a ldr r2, [pc, #232] ; (8014af8 ) 8014a10: 4293 cmp r3, r2 8014a12: d108 bne.n 8014a26 { /* Select the Counter Mode */ tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS); 8014a14: 68fb ldr r3, [r7, #12] 8014a16: f023 0370 bic.w r3, r3, #112 ; 0x70 8014a1a: 60fb str r3, [r7, #12] tmpcr1 |= Structure->CounterMode; 8014a1c: 683b ldr r3, [r7, #0] 8014a1e: 685b ldr r3, [r3, #4] 8014a20: 68fa ldr r2, [r7, #12] 8014a22: 4313 orrs r3, r2 8014a24: 60fb str r3, [r7, #12] } if (IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx)) 8014a26: 687b ldr r3, [r7, #4] 8014a28: 4a2f ldr r2, [pc, #188] ; (8014ae8 ) 8014a2a: 4293 cmp r3, r2 8014a2c: d02b beq.n 8014a86 8014a2e: 687b ldr r3, [r7, #4] 8014a30: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 8014a34: d027 beq.n 8014a86 8014a36: 687b ldr r3, [r7, #4] 8014a38: 4a2c ldr r2, [pc, #176] ; (8014aec ) 8014a3a: 4293 cmp r3, r2 8014a3c: d023 beq.n 8014a86 8014a3e: 687b ldr r3, [r7, #4] 8014a40: 4a2b ldr r2, [pc, #172] ; (8014af0 ) 8014a42: 4293 cmp r3, r2 8014a44: d01f beq.n 8014a86 8014a46: 687b ldr r3, [r7, #4] 8014a48: 4a2a ldr r2, [pc, #168] ; (8014af4 ) 8014a4a: 4293 cmp r3, r2 8014a4c: d01b beq.n 8014a86 8014a4e: 687b ldr r3, [r7, #4] 8014a50: 4a29 ldr r2, [pc, #164] ; (8014af8 ) 8014a52: 4293 cmp r3, r2 8014a54: d017 beq.n 8014a86 8014a56: 687b ldr r3, [r7, #4] 8014a58: 4a28 ldr r2, [pc, #160] ; (8014afc ) 8014a5a: 4293 cmp r3, r2 8014a5c: d013 beq.n 8014a86 8014a5e: 687b ldr r3, [r7, #4] 8014a60: 4a27 ldr r2, [pc, #156] ; (8014b00 ) 8014a62: 4293 cmp r3, r2 8014a64: d00f beq.n 8014a86 8014a66: 687b ldr r3, [r7, #4] 8014a68: 4a26 ldr r2, [pc, #152] ; (8014b04 ) 8014a6a: 4293 cmp r3, r2 8014a6c: d00b beq.n 8014a86 8014a6e: 687b ldr r3, [r7, #4] 8014a70: 4a25 ldr r2, [pc, #148] ; (8014b08 ) 8014a72: 4293 cmp r3, r2 8014a74: d007 beq.n 8014a86 8014a76: 687b ldr r3, [r7, #4] 8014a78: 4a24 ldr r2, [pc, #144] ; (8014b0c ) 8014a7a: 4293 cmp r3, r2 8014a7c: d003 beq.n 8014a86 8014a7e: 687b ldr r3, [r7, #4] 8014a80: 4a23 ldr r2, [pc, #140] ; (8014b10 ) 8014a82: 4293 cmp r3, r2 8014a84: d108 bne.n 8014a98 { /* Set the clock division */ tmpcr1 &= ~TIM_CR1_CKD; 8014a86: 68fb ldr r3, [r7, #12] 8014a88: f423 7340 bic.w r3, r3, #768 ; 0x300 8014a8c: 60fb str r3, [r7, #12] tmpcr1 |= (uint32_t)Structure->ClockDivision; 8014a8e: 683b ldr r3, [r7, #0] 8014a90: 68db ldr r3, [r3, #12] 8014a92: 68fa ldr r2, [r7, #12] 8014a94: 4313 orrs r3, r2 8014a96: 60fb str r3, [r7, #12] } /* Set the auto-reload preload */ MODIFY_REG(tmpcr1, TIM_CR1_ARPE, Structure->AutoReloadPreload); 8014a98: 68fb ldr r3, [r7, #12] 8014a9a: f023 0280 bic.w r2, r3, #128 ; 0x80 8014a9e: 683b ldr r3, [r7, #0] 8014aa0: 695b ldr r3, [r3, #20] 8014aa2: 4313 orrs r3, r2 8014aa4: 60fb str r3, [r7, #12] TIMx->CR1 = tmpcr1; 8014aa6: 687b ldr r3, [r7, #4] 8014aa8: 68fa ldr r2, [r7, #12] 8014aaa: 601a str r2, [r3, #0] /* Set the Autoreload value */ TIMx->ARR = (uint32_t)Structure->Period ; 8014aac: 683b ldr r3, [r7, #0] 8014aae: 689a ldr r2, [r3, #8] 8014ab0: 687b ldr r3, [r7, #4] 8014ab2: 62da str r2, [r3, #44] ; 0x2c /* Set the Prescaler value */ TIMx->PSC = Structure->Prescaler; 8014ab4: 683b ldr r3, [r7, #0] 8014ab6: 681a ldr r2, [r3, #0] 8014ab8: 687b ldr r3, [r7, #4] 8014aba: 629a str r2, [r3, #40] ; 0x28 if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx)) 8014abc: 687b ldr r3, [r7, #4] 8014abe: 4a0a ldr r2, [pc, #40] ; (8014ae8 ) 8014ac0: 4293 cmp r3, r2 8014ac2: d003 beq.n 8014acc 8014ac4: 687b ldr r3, [r7, #4] 8014ac6: 4a0c ldr r2, [pc, #48] ; (8014af8 ) 8014ac8: 4293 cmp r3, r2 8014aca: d103 bne.n 8014ad4 { /* Set the Repetition Counter value */ TIMx->RCR = Structure->RepetitionCounter; 8014acc: 683b ldr r3, [r7, #0] 8014ace: 691a ldr r2, [r3, #16] 8014ad0: 687b ldr r3, [r7, #4] 8014ad2: 631a str r2, [r3, #48] ; 0x30 } /* Generate an update event to reload the Prescaler and the repetition counter (only for advanced timer) value immediately */ TIMx->EGR = TIM_EGR_UG; 8014ad4: 687b ldr r3, [r7, #4] 8014ad6: 2201 movs r2, #1 8014ad8: 615a str r2, [r3, #20] } 8014ada: bf00 nop 8014adc: 3714 adds r7, #20 8014ade: 46bd mov sp, r7 8014ae0: f85d 7b04 ldr.w r7, [sp], #4 8014ae4: 4770 bx lr 8014ae6: bf00 nop 8014ae8: 40010000 .word 0x40010000 8014aec: 40000400 .word 0x40000400 8014af0: 40000800 .word 0x40000800 8014af4: 40000c00 .word 0x40000c00 8014af8: 40010400 .word 0x40010400 8014afc: 40014000 .word 0x40014000 8014b00: 40014400 .word 0x40014400 8014b04: 40014800 .word 0x40014800 8014b08: 40001800 .word 0x40001800 8014b0c: 40001c00 .word 0x40001c00 8014b10: 40002000 .word 0x40002000 08014b14 : * mode. * @retval HAL status */ HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef *htim, TIM_MasterConfigTypeDef *sMasterConfig) { 8014b14: b480 push {r7} 8014b16: b085 sub sp, #20 8014b18: af00 add r7, sp, #0 8014b1a: 6078 str r0, [r7, #4] 8014b1c: 6039 str r1, [r7, #0] assert_param(IS_TIM_MASTER_INSTANCE(htim->Instance)); assert_param(IS_TIM_TRGO_SOURCE(sMasterConfig->MasterOutputTrigger)); assert_param(IS_TIM_MSM_STATE(sMasterConfig->MasterSlaveMode)); /* Check input state */ __HAL_LOCK(htim); 8014b1e: 687b ldr r3, [r7, #4] 8014b20: f893 303c ldrb.w r3, [r3, #60] ; 0x3c 8014b24: 2b01 cmp r3, #1 8014b26: d101 bne.n 8014b2c 8014b28: 2302 movs r3, #2 8014b2a: e06d b.n 8014c08 8014b2c: 687b ldr r3, [r7, #4] 8014b2e: 2201 movs r2, #1 8014b30: f883 203c strb.w r2, [r3, #60] ; 0x3c /* Change the handler state */ htim->State = HAL_TIM_STATE_BUSY; 8014b34: 687b ldr r3, [r7, #4] 8014b36: 2202 movs r2, #2 8014b38: f883 203d strb.w r2, [r3, #61] ; 0x3d /* Get the TIMx CR2 register value */ tmpcr2 = htim->Instance->CR2; 8014b3c: 687b ldr r3, [r7, #4] 8014b3e: 681b ldr r3, [r3, #0] 8014b40: 685b ldr r3, [r3, #4] 8014b42: 60fb str r3, [r7, #12] /* Get the TIMx SMCR register value */ tmpsmcr = htim->Instance->SMCR; 8014b44: 687b ldr r3, [r7, #4] 8014b46: 681b ldr r3, [r3, #0] 8014b48: 689b ldr r3, [r3, #8] 8014b4a: 60bb str r3, [r7, #8] /* If the timer supports ADC synchronization through TRGO2, set the master mode selection 2 */ if (IS_TIM_TRGO2_INSTANCE(htim->Instance)) 8014b4c: 687b ldr r3, [r7, #4] 8014b4e: 681b ldr r3, [r3, #0] 8014b50: 4a30 ldr r2, [pc, #192] ; (8014c14 ) 8014b52: 4293 cmp r3, r2 8014b54: d004 beq.n 8014b60 8014b56: 687b ldr r3, [r7, #4] 8014b58: 681b ldr r3, [r3, #0] 8014b5a: 4a2f ldr r2, [pc, #188] ; (8014c18 ) 8014b5c: 4293 cmp r3, r2 8014b5e: d108 bne.n 8014b72 { /* Check the parameters */ assert_param(IS_TIM_TRGO2_SOURCE(sMasterConfig->MasterOutputTrigger2)); /* Clear the MMS2 bits */ tmpcr2 &= ~TIM_CR2_MMS2; 8014b60: 68fb ldr r3, [r7, #12] 8014b62: f423 0370 bic.w r3, r3, #15728640 ; 0xf00000 8014b66: 60fb str r3, [r7, #12] /* Select the TRGO2 source*/ tmpcr2 |= sMasterConfig->MasterOutputTrigger2; 8014b68: 683b ldr r3, [r7, #0] 8014b6a: 685b ldr r3, [r3, #4] 8014b6c: 68fa ldr r2, [r7, #12] 8014b6e: 4313 orrs r3, r2 8014b70: 60fb str r3, [r7, #12] } /* Reset the MMS Bits */ tmpcr2 &= ~TIM_CR2_MMS; 8014b72: 68fb ldr r3, [r7, #12] 8014b74: f023 0370 bic.w r3, r3, #112 ; 0x70 8014b78: 60fb str r3, [r7, #12] /* Select the TRGO source */ tmpcr2 |= sMasterConfig->MasterOutputTrigger; 8014b7a: 683b ldr r3, [r7, #0] 8014b7c: 681b ldr r3, [r3, #0] 8014b7e: 68fa ldr r2, [r7, #12] 8014b80: 4313 orrs r3, r2 8014b82: 60fb str r3, [r7, #12] /* Update TIMx CR2 */ htim->Instance->CR2 = tmpcr2; 8014b84: 687b ldr r3, [r7, #4] 8014b86: 681b ldr r3, [r3, #0] 8014b88: 68fa ldr r2, [r7, #12] 8014b8a: 605a str r2, [r3, #4] if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) 8014b8c: 687b ldr r3, [r7, #4] 8014b8e: 681b ldr r3, [r3, #0] 8014b90: 4a20 ldr r2, [pc, #128] ; (8014c14 ) 8014b92: 4293 cmp r3, r2 8014b94: d022 beq.n 8014bdc 8014b96: 687b ldr r3, [r7, #4] 8014b98: 681b ldr r3, [r3, #0] 8014b9a: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 8014b9e: d01d beq.n 8014bdc 8014ba0: 687b ldr r3, [r7, #4] 8014ba2: 681b ldr r3, [r3, #0] 8014ba4: 4a1d ldr r2, [pc, #116] ; (8014c1c ) 8014ba6: 4293 cmp r3, r2 8014ba8: d018 beq.n 8014bdc 8014baa: 687b ldr r3, [r7, #4] 8014bac: 681b ldr r3, [r3, #0] 8014bae: 4a1c ldr r2, [pc, #112] ; (8014c20 ) 8014bb0: 4293 cmp r3, r2 8014bb2: d013 beq.n 8014bdc 8014bb4: 687b ldr r3, [r7, #4] 8014bb6: 681b ldr r3, [r3, #0] 8014bb8: 4a1a ldr r2, [pc, #104] ; (8014c24 ) 8014bba: 4293 cmp r3, r2 8014bbc: d00e beq.n 8014bdc 8014bbe: 687b ldr r3, [r7, #4] 8014bc0: 681b ldr r3, [r3, #0] 8014bc2: 4a15 ldr r2, [pc, #84] ; (8014c18 ) 8014bc4: 4293 cmp r3, r2 8014bc6: d009 beq.n 8014bdc 8014bc8: 687b ldr r3, [r7, #4] 8014bca: 681b ldr r3, [r3, #0] 8014bcc: 4a16 ldr r2, [pc, #88] ; (8014c28 ) 8014bce: 4293 cmp r3, r2 8014bd0: d004 beq.n 8014bdc 8014bd2: 687b ldr r3, [r7, #4] 8014bd4: 681b ldr r3, [r3, #0] 8014bd6: 4a15 ldr r2, [pc, #84] ; (8014c2c ) 8014bd8: 4293 cmp r3, r2 8014bda: d10c bne.n 8014bf6 { /* Reset the MSM Bit */ tmpsmcr &= ~TIM_SMCR_MSM; 8014bdc: 68bb ldr r3, [r7, #8] 8014bde: f023 0380 bic.w r3, r3, #128 ; 0x80 8014be2: 60bb str r3, [r7, #8] /* Set master mode */ tmpsmcr |= sMasterConfig->MasterSlaveMode; 8014be4: 683b ldr r3, [r7, #0] 8014be6: 689b ldr r3, [r3, #8] 8014be8: 68ba ldr r2, [r7, #8] 8014bea: 4313 orrs r3, r2 8014bec: 60bb str r3, [r7, #8] /* Update TIMx SMCR */ htim->Instance->SMCR = tmpsmcr; 8014bee: 687b ldr r3, [r7, #4] 8014bf0: 681b ldr r3, [r3, #0] 8014bf2: 68ba ldr r2, [r7, #8] 8014bf4: 609a str r2, [r3, #8] } /* Change the htim state */ htim->State = HAL_TIM_STATE_READY; 8014bf6: 687b ldr r3, [r7, #4] 8014bf8: 2201 movs r2, #1 8014bfa: f883 203d strb.w r2, [r3, #61] ; 0x3d __HAL_UNLOCK(htim); 8014bfe: 687b ldr r3, [r7, #4] 8014c00: 2200 movs r2, #0 8014c02: f883 203c strb.w r2, [r3, #60] ; 0x3c return HAL_OK; 8014c06: 2300 movs r3, #0 } 8014c08: 4618 mov r0, r3 8014c0a: 3714 adds r7, #20 8014c0c: 46bd mov sp, r7 8014c0e: f85d 7b04 ldr.w r7, [sp], #4 8014c12: 4770 bx lr 8014c14: 40010000 .word 0x40010000 8014c18: 40010400 .word 0x40010400 8014c1c: 40000400 .word 0x40000400 8014c20: 40000800 .word 0x40000800 8014c24: 40000c00 .word 0x40000c00 8014c28: 40014000 .word 0x40014000 8014c2c: 40001800 .word 0x40001800 08014c30 : * @brief Hall commutation changed callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIMEx_CommutCallback(TIM_HandleTypeDef *htim) { 8014c30: b480 push {r7} 8014c32: b083 sub sp, #12 8014c34: af00 add r7, sp, #0 8014c36: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIMEx_CommutCallback could be implemented in the user file */ } 8014c38: bf00 nop 8014c3a: 370c adds r7, #12 8014c3c: 46bd mov sp, r7 8014c3e: f85d 7b04 ldr.w r7, [sp], #4 8014c42: 4770 bx lr 08014c44 : * @brief Hall Break detection callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim) { 8014c44: b480 push {r7} 8014c46: b083 sub sp, #12 8014c48: af00 add r7, sp, #0 8014c4a: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIMEx_BreakCallback could be implemented in the user file */ } 8014c4c: bf00 nop 8014c4e: 370c adds r7, #12 8014c50: 46bd mov sp, r7 8014c52: f85d 7b04 ldr.w r7, [sp], #4 8014c56: 4770 bx lr 08014c58 : * @brief Hall Break2 detection callback in non blocking mode * @param htim: TIM handle * @retval None */ __weak void HAL_TIMEx_Break2Callback(TIM_HandleTypeDef *htim) { 8014c58: b480 push {r7} 8014c5a: b083 sub sp, #12 8014c5c: af00 add r7, sp, #0 8014c5e: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function Should not be modified, when the callback is needed, the HAL_TIMEx_Break2Callback could be implemented in the user file */ } 8014c60: bf00 nop 8014c62: 370c adds r7, #12 8014c64: 46bd mov sp, r7 8014c66: f85d 7b04 ldr.w r7, [sp], #4 8014c6a: 4770 bx lr 08014c6c : * parameters in the UART_InitTypeDef and initialize the associated handle. * @param huart UART handle. * @retval HAL status */ HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) { 8014c6c: b580 push {r7, lr} 8014c6e: b082 sub sp, #8 8014c70: af00 add r7, sp, #0 8014c72: 6078 str r0, [r7, #4] /* Check the UART handle allocation */ if (huart == NULL) 8014c74: 687b ldr r3, [r7, #4] 8014c76: 2b00 cmp r3, #0 8014c78: d101 bne.n 8014c7e { return HAL_ERROR; 8014c7a: 2301 movs r3, #1 8014c7c: e040 b.n 8014d00 { /* Check the parameters */ assert_param(IS_UART_INSTANCE(huart->Instance)); } if (huart->gState == HAL_UART_STATE_RESET) 8014c7e: 687b ldr r3, [r7, #4] 8014c80: 6f9b ldr r3, [r3, #120] ; 0x78 8014c82: 2b00 cmp r3, #0 8014c84: d106 bne.n 8014c94 { /* Allocate lock resource and initialize it */ huart->Lock = HAL_UNLOCKED; 8014c86: 687b ldr r3, [r7, #4] 8014c88: 2200 movs r2, #0 8014c8a: f883 2074 strb.w r2, [r3, #116] ; 0x74 /* Init the low level hardware */ huart->MspInitCallback(huart); #else /* Init the low level hardware : GPIO, CLOCK */ HAL_UART_MspInit(huart); 8014c8e: 6878 ldr r0, [r7, #4] 8014c90: f7fb f838 bl 800fd04 #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ } huart->gState = HAL_UART_STATE_BUSY; 8014c94: 687b ldr r3, [r7, #4] 8014c96: 2224 movs r2, #36 ; 0x24 8014c98: 679a str r2, [r3, #120] ; 0x78 __HAL_UART_DISABLE(huart); 8014c9a: 687b ldr r3, [r7, #4] 8014c9c: 681b ldr r3, [r3, #0] 8014c9e: 687a ldr r2, [r7, #4] 8014ca0: 6812 ldr r2, [r2, #0] 8014ca2: 6812 ldr r2, [r2, #0] 8014ca4: f022 0201 bic.w r2, r2, #1 8014ca8: 601a str r2, [r3, #0] /* Set the UART Communication parameters */ if (UART_SetConfig(huart) == HAL_ERROR) 8014caa: 6878 ldr r0, [r7, #4] 8014cac: f000 fd90 bl 80157d0 8014cb0: 4603 mov r3, r0 8014cb2: 2b01 cmp r3, #1 8014cb4: d101 bne.n 8014cba { return HAL_ERROR; 8014cb6: 2301 movs r3, #1 8014cb8: e022 b.n 8014d00 } if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) 8014cba: 687b ldr r3, [r7, #4] 8014cbc: 6a5b ldr r3, [r3, #36] ; 0x24 8014cbe: 2b00 cmp r3, #0 8014cc0: d002 beq.n 8014cc8 { UART_AdvFeatureConfig(huart); 8014cc2: 6878 ldr r0, [r7, #4] 8014cc4: f000 ffe4 bl 8015c90 } /* In asynchronous mode, the following bits must be kept cleared: - LINEN and CLKEN bits in the USART_CR2 register, - SCEN, HDSEL and IREN bits in the USART_CR3 register.*/ CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); 8014cc8: 687b ldr r3, [r7, #4] 8014cca: 681b ldr r3, [r3, #0] 8014ccc: 687a ldr r2, [r7, #4] 8014cce: 6812 ldr r2, [r2, #0] 8014cd0: 6852 ldr r2, [r2, #4] 8014cd2: f422 4290 bic.w r2, r2, #18432 ; 0x4800 8014cd6: 605a str r2, [r3, #4] CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); 8014cd8: 687b ldr r3, [r7, #4] 8014cda: 681b ldr r3, [r3, #0] 8014cdc: 687a ldr r2, [r7, #4] 8014cde: 6812 ldr r2, [r2, #0] 8014ce0: 6892 ldr r2, [r2, #8] 8014ce2: f022 022a bic.w r2, r2, #42 ; 0x2a 8014ce6: 609a str r2, [r3, #8] __HAL_UART_ENABLE(huart); 8014ce8: 687b ldr r3, [r7, #4] 8014cea: 681b ldr r3, [r3, #0] 8014cec: 687a ldr r2, [r7, #4] 8014cee: 6812 ldr r2, [r2, #0] 8014cf0: 6812 ldr r2, [r2, #0] 8014cf2: f042 0201 orr.w r2, r2, #1 8014cf6: 601a str r2, [r3, #0] /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ return (UART_CheckIdleState(huart)); 8014cf8: 6878 ldr r0, [r7, #4] 8014cfa: f001 f86b bl 8015dd4 8014cfe: 4603 mov r3, r0 } 8014d00: 4618 mov r0, r3 8014d02: 3708 adds r7, #8 8014d04: 46bd mov sp, r7 8014d06: bd80 pop {r7, pc} 08014d08 : * @param Size Amount of data elements (u8 or u16) to be received. * @param Timeout Timeout duration. * @retval HAL status */ HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout) { 8014d08: b580 push {r7, lr} 8014d0a: b08a sub sp, #40 ; 0x28 8014d0c: af02 add r7, sp, #8 8014d0e: 60f8 str r0, [r7, #12] 8014d10: 60b9 str r1, [r7, #8] 8014d12: 603b str r3, [r7, #0] 8014d14: 4613 mov r3, r2 8014d16: 80fb strh r3, [r7, #6] uint16_t *pdata16bits; uint16_t uhMask; uint32_t tickstart; /* Check that a Rx process is not already ongoing */ if (huart->RxState == HAL_UART_STATE_READY) 8014d18: 68fb ldr r3, [r7, #12] 8014d1a: 6fdb ldr r3, [r3, #124] ; 0x7c 8014d1c: 2b20 cmp r3, #32 8014d1e: f040 80be bne.w 8014e9e { if ((pData == NULL) || (Size == 0U)) 8014d22: 68bb ldr r3, [r7, #8] 8014d24: 2b00 cmp r3, #0 8014d26: d002 beq.n 8014d2e 8014d28: 88fb ldrh r3, [r7, #6] 8014d2a: 2b00 cmp r3, #0 8014d2c: d101 bne.n 8014d32 { return HAL_ERROR; 8014d2e: 2301 movs r3, #1 8014d30: e0b6 b.n 8014ea0 } __HAL_LOCK(huart); 8014d32: 68fb ldr r3, [r7, #12] 8014d34: f893 3074 ldrb.w r3, [r3, #116] ; 0x74 8014d38: 2b01 cmp r3, #1 8014d3a: d101 bne.n 8014d40 8014d3c: 2302 movs r3, #2 8014d3e: e0af b.n 8014ea0 8014d40: 68fb ldr r3, [r7, #12] 8014d42: 2201 movs r2, #1 8014d44: f883 2074 strb.w r2, [r3, #116] ; 0x74 huart->ErrorCode = HAL_UART_ERROR_NONE; 8014d48: 68fb ldr r3, [r7, #12] 8014d4a: 2200 movs r2, #0 8014d4c: f8c3 2080 str.w r2, [r3, #128] ; 0x80 huart->RxState = HAL_UART_STATE_BUSY_RX; 8014d50: 68fb ldr r3, [r7, #12] 8014d52: 2222 movs r2, #34 ; 0x22 8014d54: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 8014d56: 68fb ldr r3, [r7, #12] 8014d58: 2200 movs r2, #0 8014d5a: 661a str r2, [r3, #96] ; 0x60 /* Init tickstart for timeout management */ tickstart = HAL_GetTick(); 8014d5c: f7fc fc3e bl 80115dc 8014d60: 6178 str r0, [r7, #20] huart->RxXferSize = Size; 8014d62: 68fb ldr r3, [r7, #12] 8014d64: 88fa ldrh r2, [r7, #6] 8014d66: f8a3 2058 strh.w r2, [r3, #88] ; 0x58 huart->RxXferCount = Size; 8014d6a: 68fb ldr r3, [r7, #12] 8014d6c: 88fa ldrh r2, [r7, #6] 8014d6e: f8a3 205a strh.w r2, [r3, #90] ; 0x5a /* Computation of UART mask to apply to RDR register */ UART_MASK_COMPUTATION(huart); 8014d72: 68fb ldr r3, [r7, #12] 8014d74: 689b ldr r3, [r3, #8] 8014d76: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 8014d7a: d10e bne.n 8014d9a 8014d7c: 68fb ldr r3, [r7, #12] 8014d7e: 691b ldr r3, [r3, #16] 8014d80: 2b00 cmp r3, #0 8014d82: d105 bne.n 8014d90 8014d84: 68fb ldr r3, [r7, #12] 8014d86: f240 12ff movw r2, #511 ; 0x1ff 8014d8a: f8a3 205c strh.w r2, [r3, #92] ; 0x5c 8014d8e: e02d b.n 8014dec 8014d90: 68fb ldr r3, [r7, #12] 8014d92: 22ff movs r2, #255 ; 0xff 8014d94: f8a3 205c strh.w r2, [r3, #92] ; 0x5c 8014d98: e028 b.n 8014dec 8014d9a: 68fb ldr r3, [r7, #12] 8014d9c: 689b ldr r3, [r3, #8] 8014d9e: 2b00 cmp r3, #0 8014da0: d10d bne.n 8014dbe 8014da2: 68fb ldr r3, [r7, #12] 8014da4: 691b ldr r3, [r3, #16] 8014da6: 2b00 cmp r3, #0 8014da8: d104 bne.n 8014db4 8014daa: 68fb ldr r3, [r7, #12] 8014dac: 22ff movs r2, #255 ; 0xff 8014dae: f8a3 205c strh.w r2, [r3, #92] ; 0x5c 8014db2: e01b b.n 8014dec 8014db4: 68fb ldr r3, [r7, #12] 8014db6: 227f movs r2, #127 ; 0x7f 8014db8: f8a3 205c strh.w r2, [r3, #92] ; 0x5c 8014dbc: e016 b.n 8014dec 8014dbe: 68fb ldr r3, [r7, #12] 8014dc0: 689b ldr r3, [r3, #8] 8014dc2: f1b3 5f80 cmp.w r3, #268435456 ; 0x10000000 8014dc6: d10d bne.n 8014de4 8014dc8: 68fb ldr r3, [r7, #12] 8014dca: 691b ldr r3, [r3, #16] 8014dcc: 2b00 cmp r3, #0 8014dce: d104 bne.n 8014dda 8014dd0: 68fb ldr r3, [r7, #12] 8014dd2: 227f movs r2, #127 ; 0x7f 8014dd4: f8a3 205c strh.w r2, [r3, #92] ; 0x5c 8014dd8: e008 b.n 8014dec 8014dda: 68fb ldr r3, [r7, #12] 8014ddc: 223f movs r2, #63 ; 0x3f 8014dde: f8a3 205c strh.w r2, [r3, #92] ; 0x5c 8014de2: e003 b.n 8014dec 8014de4: 68fb ldr r3, [r7, #12] 8014de6: 2200 movs r2, #0 8014de8: f8a3 205c strh.w r2, [r3, #92] ; 0x5c uhMask = huart->Mask; 8014dec: 68fb ldr r3, [r7, #12] 8014dee: f8b3 305c ldrh.w r3, [r3, #92] ; 0x5c 8014df2: 827b strh r3, [r7, #18] /* In case of 9bits/No Parity transfer, pRxData needs to be handled as a uint16_t pointer */ if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) 8014df4: 68fb ldr r3, [r7, #12] 8014df6: 689b ldr r3, [r3, #8] 8014df8: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 8014dfc: d108 bne.n 8014e10 8014dfe: 68fb ldr r3, [r7, #12] 8014e00: 691b ldr r3, [r3, #16] 8014e02: 2b00 cmp r3, #0 8014e04: d104 bne.n 8014e10 { pdata8bits = NULL; 8014e06: 2300 movs r3, #0 8014e08: 61fb str r3, [r7, #28] pdata16bits = (uint16_t *) pData; 8014e0a: 68bb ldr r3, [r7, #8] 8014e0c: 61bb str r3, [r7, #24] 8014e0e: e003 b.n 8014e18 } else { pdata8bits = pData; 8014e10: 68bb ldr r3, [r7, #8] 8014e12: 61fb str r3, [r7, #28] pdata16bits = NULL; 8014e14: 2300 movs r3, #0 8014e16: 61bb str r3, [r7, #24] } __HAL_UNLOCK(huart); 8014e18: 68fb ldr r3, [r7, #12] 8014e1a: 2200 movs r2, #0 8014e1c: f883 2074 strb.w r2, [r3, #116] ; 0x74 /* as long as data have to be received */ while (huart->RxXferCount > 0U) 8014e20: e032 b.n 8014e88 { if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) 8014e22: 683b ldr r3, [r7, #0] 8014e24: 9300 str r3, [sp, #0] 8014e26: 697b ldr r3, [r7, #20] 8014e28: 2200 movs r2, #0 8014e2a: 2120 movs r1, #32 8014e2c: 68f8 ldr r0, [r7, #12] 8014e2e: f001 f81a bl 8015e66 8014e32: 4603 mov r3, r0 8014e34: 2b00 cmp r3, #0 8014e36: d001 beq.n 8014e3c { return HAL_TIMEOUT; 8014e38: 2303 movs r3, #3 8014e3a: e031 b.n 8014ea0 } if (pdata8bits == NULL) 8014e3c: 69fb ldr r3, [r7, #28] 8014e3e: 2b00 cmp r3, #0 8014e40: d10c bne.n 8014e5c { *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask); 8014e42: 68fb ldr r3, [r7, #12] 8014e44: 681b ldr r3, [r3, #0] 8014e46: 6a5b ldr r3, [r3, #36] ; 0x24 8014e48: b29a uxth r2, r3 8014e4a: 8a7b ldrh r3, [r7, #18] 8014e4c: 4013 ands r3, r2 8014e4e: b29a uxth r2, r3 8014e50: 69bb ldr r3, [r7, #24] 8014e52: 801a strh r2, [r3, #0] pdata16bits++; 8014e54: 69bb ldr r3, [r7, #24] 8014e56: 3302 adds r3, #2 8014e58: 61bb str r3, [r7, #24] 8014e5a: e00c b.n 8014e76 } else { *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask); 8014e5c: 68fb ldr r3, [r7, #12] 8014e5e: 681b ldr r3, [r3, #0] 8014e60: 6a5b ldr r3, [r3, #36] ; 0x24 8014e62: b2da uxtb r2, r3 8014e64: 8a7b ldrh r3, [r7, #18] 8014e66: b2db uxtb r3, r3 8014e68: 4013 ands r3, r2 8014e6a: b2da uxtb r2, r3 8014e6c: 69fb ldr r3, [r7, #28] 8014e6e: 701a strb r2, [r3, #0] pdata8bits++; 8014e70: 69fb ldr r3, [r7, #28] 8014e72: 3301 adds r3, #1 8014e74: 61fb str r3, [r7, #28] } huart->RxXferCount--; 8014e76: 68fb ldr r3, [r7, #12] 8014e78: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a 8014e7c: b29b uxth r3, r3 8014e7e: 3b01 subs r3, #1 8014e80: b29a uxth r2, r3 8014e82: 68fb ldr r3, [r7, #12] 8014e84: f8a3 205a strh.w r2, [r3, #90] ; 0x5a while (huart->RxXferCount > 0U) 8014e88: 68fb ldr r3, [r7, #12] 8014e8a: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a 8014e8e: b29b uxth r3, r3 8014e90: 2b00 cmp r3, #0 8014e92: d1c6 bne.n 8014e22 } /* At end of Rx process, restore huart->RxState to Ready */ huart->RxState = HAL_UART_STATE_READY; 8014e94: 68fb ldr r3, [r7, #12] 8014e96: 2220 movs r2, #32 8014e98: 67da str r2, [r3, #124] ; 0x7c return HAL_OK; 8014e9a: 2300 movs r3, #0 8014e9c: e000 b.n 8014ea0 } else { return HAL_BUSY; 8014e9e: 2302 movs r3, #2 } } 8014ea0: 4618 mov r0, r3 8014ea2: 3720 adds r7, #32 8014ea4: 46bd mov sp, r7 8014ea6: bd80 pop {r7, pc} 08014ea8 : * @param pData Pointer to data buffer (u8 or u16 data elements). * @param Size Amount of data elements (u8 or u16) to be sent. * @retval HAL status */ HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size) { 8014ea8: b480 push {r7} 8014eaa: b08b sub sp, #44 ; 0x2c 8014eac: af00 add r7, sp, #0 8014eae: 60f8 str r0, [r7, #12] 8014eb0: 60b9 str r1, [r7, #8] 8014eb2: 4613 mov r3, r2 8014eb4: 80fb strh r3, [r7, #6] /* Check that a Tx process is not already ongoing */ if (huart->gState == HAL_UART_STATE_READY) 8014eb6: 68fb ldr r3, [r7, #12] 8014eb8: 6f9b ldr r3, [r3, #120] ; 0x78 8014eba: 2b20 cmp r3, #32 8014ebc: d156 bne.n 8014f6c { if ((pData == NULL) || (Size == 0U)) 8014ebe: 68bb ldr r3, [r7, #8] 8014ec0: 2b00 cmp r3, #0 8014ec2: d002 beq.n 8014eca 8014ec4: 88fb ldrh r3, [r7, #6] 8014ec6: 2b00 cmp r3, #0 8014ec8: d101 bne.n 8014ece { return HAL_ERROR; 8014eca: 2301 movs r3, #1 8014ecc: e04f b.n 8014f6e } __HAL_LOCK(huart); 8014ece: 68fb ldr r3, [r7, #12] 8014ed0: f893 3074 ldrb.w r3, [r3, #116] ; 0x74 8014ed4: 2b01 cmp r3, #1 8014ed6: d101 bne.n 8014edc 8014ed8: 2302 movs r3, #2 8014eda: e048 b.n 8014f6e 8014edc: 68fb ldr r3, [r7, #12] 8014ede: 2201 movs r2, #1 8014ee0: f883 2074 strb.w r2, [r3, #116] ; 0x74 huart->pTxBuffPtr = pData; 8014ee4: 68fb ldr r3, [r7, #12] 8014ee6: 68ba ldr r2, [r7, #8] 8014ee8: 64da str r2, [r3, #76] ; 0x4c huart->TxXferSize = Size; 8014eea: 68fb ldr r3, [r7, #12] 8014eec: 88fa ldrh r2, [r7, #6] 8014eee: f8a3 2050 strh.w r2, [r3, #80] ; 0x50 huart->TxXferCount = Size; 8014ef2: 68fb ldr r3, [r7, #12] 8014ef4: 88fa ldrh r2, [r7, #6] 8014ef6: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 huart->TxISR = NULL; 8014efa: 68fb ldr r3, [r7, #12] 8014efc: 2200 movs r2, #0 8014efe: 669a str r2, [r3, #104] ; 0x68 huart->ErrorCode = HAL_UART_ERROR_NONE; 8014f00: 68fb ldr r3, [r7, #12] 8014f02: 2200 movs r2, #0 8014f04: f8c3 2080 str.w r2, [r3, #128] ; 0x80 huart->gState = HAL_UART_STATE_BUSY_TX; 8014f08: 68fb ldr r3, [r7, #12] 8014f0a: 2221 movs r2, #33 ; 0x21 8014f0c: 679a str r2, [r3, #120] ; 0x78 /* Set the Tx ISR function pointer according to the data word length */ if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) 8014f0e: 68fb ldr r3, [r7, #12] 8014f10: 689b ldr r3, [r3, #8] 8014f12: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 8014f16: d107 bne.n 8014f28 8014f18: 68fb ldr r3, [r7, #12] 8014f1a: 691b ldr r3, [r3, #16] 8014f1c: 2b00 cmp r3, #0 8014f1e: d103 bne.n 8014f28 { huart->TxISR = UART_TxISR_16BIT; 8014f20: 68fb ldr r3, [r7, #12] 8014f22: 4a16 ldr r2, [pc, #88] ; (8014f7c ) 8014f24: 669a str r2, [r3, #104] ; 0x68 8014f26: e002 b.n 8014f2e } else { huart->TxISR = UART_TxISR_8BIT; 8014f28: 68fb ldr r3, [r7, #12] 8014f2a: 4a15 ldr r2, [pc, #84] ; (8014f80 ) 8014f2c: 669a str r2, [r3, #104] ; 0x68 } __HAL_UNLOCK(huart); 8014f2e: 68fb ldr r3, [r7, #12] 8014f30: 2200 movs r2, #0 8014f32: f883 2074 strb.w r2, [r3, #116] ; 0x74 /* Enable the Transmit Data Register Empty interrupt */ ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE); 8014f36: 68fb ldr r3, [r7, #12] 8014f38: 681b ldr r3, [r3, #0] 8014f3a: 617b str r3, [r7, #20] */ __STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr) { uint32_t result; __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8014f3c: 697b ldr r3, [r7, #20] 8014f3e: e853 3f00 ldrex r3, [r3] 8014f42: 613b str r3, [r7, #16] return(result); 8014f44: 693b ldr r3, [r7, #16] 8014f46: f043 0380 orr.w r3, r3, #128 ; 0x80 8014f4a: 627b str r3, [r7, #36] ; 0x24 8014f4c: 68fb ldr r3, [r7, #12] 8014f4e: 681b ldr r3, [r3, #0] 8014f50: 461a mov r2, r3 8014f52: 6a7b ldr r3, [r7, #36] ; 0x24 8014f54: 623b str r3, [r7, #32] 8014f56: 61fa str r2, [r7, #28] */ __STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) { uint32_t result; __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8014f58: 69f9 ldr r1, [r7, #28] 8014f5a: 6a3a ldr r2, [r7, #32] 8014f5c: e841 2300 strex r3, r2, [r1] 8014f60: 61bb str r3, [r7, #24] return(result); 8014f62: 69bb ldr r3, [r7, #24] 8014f64: 2b00 cmp r3, #0 8014f66: d1e6 bne.n 8014f36 return HAL_OK; 8014f68: 2300 movs r3, #0 8014f6a: e000 b.n 8014f6e } else { return HAL_BUSY; 8014f6c: 2302 movs r3, #2 } } 8014f6e: 4618 mov r0, r3 8014f70: 372c adds r7, #44 ; 0x2c 8014f72: 46bd mov sp, r7 8014f74: f85d 7b04 ldr.w r7, [sp], #4 8014f78: 4770 bx lr 8014f7a: bf00 nop 8014f7c: 0801627b .word 0x0801627b 8014f80: 080161c5 .word 0x080161c5 08014f84 : * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be * considered as completed only when user abort complete callback is executed (not when exiting function). * @retval HAL status */ HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) { 8014f84: b580 push {r7, lr} 8014f86: b0a2 sub sp, #136 ; 0x88 8014f88: af00 add r7, sp, #0 8014f8a: 6078 str r0, [r7, #4] uint32_t abortcplt = 1U; 8014f8c: 2301 movs r3, #1 8014f8e: f8c7 3084 str.w r3, [r7, #132] ; 0x84 /* Disable interrupts */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_TCIE)); 8014f92: 687b ldr r3, [r7, #4] 8014f94: 681b ldr r3, [r3, #0] 8014f96: 663b str r3, [r7, #96] ; 0x60 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8014f98: 6e3b ldr r3, [r7, #96] ; 0x60 8014f9a: e853 3f00 ldrex r3, [r3] 8014f9e: 65fb str r3, [r7, #92] ; 0x5c return(result); 8014fa0: 6dfb ldr r3, [r7, #92] ; 0x5c 8014fa2: f423 73f0 bic.w r3, r3, #480 ; 0x1e0 8014fa6: f8c7 3080 str.w r3, [r7, #128] ; 0x80 8014faa: 687b ldr r3, [r7, #4] 8014fac: 681b ldr r3, [r3, #0] 8014fae: 461a mov r2, r3 8014fb0: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 8014fb4: 66fb str r3, [r7, #108] ; 0x6c 8014fb6: 66ba str r2, [r7, #104] ; 0x68 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8014fb8: 6eb9 ldr r1, [r7, #104] ; 0x68 8014fba: 6efa ldr r2, [r7, #108] ; 0x6c 8014fbc: e841 2300 strex r3, r2, [r1] 8014fc0: 667b str r3, [r7, #100] ; 0x64 return(result); 8014fc2: 6e7b ldr r3, [r7, #100] ; 0x64 8014fc4: 2b00 cmp r3, #0 8014fc6: d1e4 bne.n 8014f92 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8014fc8: 687b ldr r3, [r7, #4] 8014fca: 681b ldr r3, [r3, #0] 8014fcc: 3308 adds r3, #8 8014fce: 64fb str r3, [r7, #76] ; 0x4c __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8014fd0: 6cfb ldr r3, [r7, #76] ; 0x4c 8014fd2: e853 3f00 ldrex r3, [r3] 8014fd6: 64bb str r3, [r7, #72] ; 0x48 return(result); 8014fd8: 6cbb ldr r3, [r7, #72] ; 0x48 8014fda: f023 0301 bic.w r3, r3, #1 8014fde: 67fb str r3, [r7, #124] ; 0x7c 8014fe0: 687b ldr r3, [r7, #4] 8014fe2: 681b ldr r3, [r3, #0] 8014fe4: 3308 adds r3, #8 8014fe6: 6ffa ldr r2, [r7, #124] ; 0x7c 8014fe8: 65ba str r2, [r7, #88] ; 0x58 8014fea: 657b str r3, [r7, #84] ; 0x54 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8014fec: 6d79 ldr r1, [r7, #84] ; 0x54 8014fee: 6dba ldr r2, [r7, #88] ; 0x58 8014ff0: e841 2300 strex r3, r2, [r1] 8014ff4: 653b str r3, [r7, #80] ; 0x50 return(result); 8014ff6: 6d3b ldr r3, [r7, #80] ; 0x50 8014ff8: 2b00 cmp r3, #0 8014ffa: d1e5 bne.n 8014fc8 /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 8014ffc: 687b ldr r3, [r7, #4] 8014ffe: 6e1b ldr r3, [r3, #96] ; 0x60 8015000: 2b01 cmp r3, #1 8015002: d118 bne.n 8015036 { ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); 8015004: 687b ldr r3, [r7, #4] 8015006: 681b ldr r3, [r3, #0] 8015008: 63bb str r3, [r7, #56] ; 0x38 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 801500a: 6bbb ldr r3, [r7, #56] ; 0x38 801500c: e853 3f00 ldrex r3, [r3] 8015010: 637b str r3, [r7, #52] ; 0x34 return(result); 8015012: 6b7b ldr r3, [r7, #52] ; 0x34 8015014: f023 0310 bic.w r3, r3, #16 8015018: 67bb str r3, [r7, #120] ; 0x78 801501a: 687b ldr r3, [r7, #4] 801501c: 681b ldr r3, [r3, #0] 801501e: 461a mov r2, r3 8015020: 6fbb ldr r3, [r7, #120] ; 0x78 8015022: 647b str r3, [r7, #68] ; 0x44 8015024: 643a str r2, [r7, #64] ; 0x40 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8015026: 6c39 ldr r1, [r7, #64] ; 0x40 8015028: 6c7a ldr r2, [r7, #68] ; 0x44 801502a: e841 2300 strex r3, r2, [r1] 801502e: 63fb str r3, [r7, #60] ; 0x3c return(result); 8015030: 6bfb ldr r3, [r7, #60] ; 0x3c 8015032: 2b00 cmp r3, #0 8015034: d1e6 bne.n 8015004 } /* If DMA Tx and/or DMA Rx Handles are associated to UART Handle, DMA Abort complete callbacks should be initialised before any call to DMA Abort functions */ /* DMA Tx Handle is valid */ if (huart->hdmatx != NULL) 8015036: 687b ldr r3, [r7, #4] 8015038: 6edb ldr r3, [r3, #108] ; 0x6c 801503a: 2b00 cmp r3, #0 801503c: d00f beq.n 801505e { /* Set DMA Abort Complete callback if UART DMA Tx request if enabled. Otherwise, set it to NULL */ if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 801503e: 687b ldr r3, [r7, #4] 8015040: 681b ldr r3, [r3, #0] 8015042: 689b ldr r3, [r3, #8] 8015044: f003 0380 and.w r3, r3, #128 ; 0x80 8015048: 2b80 cmp r3, #128 ; 0x80 801504a: d104 bne.n 8015056 { huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; 801504c: 687b ldr r3, [r7, #4] 801504e: 6edb ldr r3, [r3, #108] ; 0x6c 8015050: 4a5d ldr r2, [pc, #372] ; (80151c8 ) 8015052: 651a str r2, [r3, #80] ; 0x50 8015054: e003 b.n 801505e } else { huart->hdmatx->XferAbortCallback = NULL; 8015056: 687b ldr r3, [r7, #4] 8015058: 6edb ldr r3, [r3, #108] ; 0x6c 801505a: 2200 movs r2, #0 801505c: 651a str r2, [r3, #80] ; 0x50 } } /* DMA Rx Handle is valid */ if (huart->hdmarx != NULL) 801505e: 687b ldr r3, [r7, #4] 8015060: 6f1b ldr r3, [r3, #112] ; 0x70 8015062: 2b00 cmp r3, #0 8015064: d00f beq.n 8015086 { /* Set DMA Abort Complete callback if UART DMA Rx request if enabled. Otherwise, set it to NULL */ if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 8015066: 687b ldr r3, [r7, #4] 8015068: 681b ldr r3, [r3, #0] 801506a: 689b ldr r3, [r3, #8] 801506c: f003 0340 and.w r3, r3, #64 ; 0x40 8015070: 2b40 cmp r3, #64 ; 0x40 8015072: d104 bne.n 801507e { huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; 8015074: 687b ldr r3, [r7, #4] 8015076: 6f1b ldr r3, [r3, #112] ; 0x70 8015078: 4a54 ldr r2, [pc, #336] ; (80151cc ) 801507a: 651a str r2, [r3, #80] ; 0x50 801507c: e003 b.n 8015086 } else { huart->hdmarx->XferAbortCallback = NULL; 801507e: 687b ldr r3, [r7, #4] 8015080: 6f1b ldr r3, [r3, #112] ; 0x70 8015082: 2200 movs r2, #0 8015084: 651a str r2, [r3, #80] ; 0x50 } } /* Abort the UART DMA Tx channel if enabled */ if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 8015086: 687b ldr r3, [r7, #4] 8015088: 681b ldr r3, [r3, #0] 801508a: 689b ldr r3, [r3, #8] 801508c: f003 0380 and.w r3, r3, #128 ; 0x80 8015090: 2b80 cmp r3, #128 ; 0x80 8015092: d12d bne.n 80150f0 { /* Disable DMA Tx at UART level */ ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 8015094: 687b ldr r3, [r7, #4] 8015096: 681b ldr r3, [r3, #0] 8015098: 3308 adds r3, #8 801509a: 627b str r3, [r7, #36] ; 0x24 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 801509c: 6a7b ldr r3, [r7, #36] ; 0x24 801509e: e853 3f00 ldrex r3, [r3] 80150a2: 623b str r3, [r7, #32] return(result); 80150a4: 6a3b ldr r3, [r7, #32] 80150a6: f023 0380 bic.w r3, r3, #128 ; 0x80 80150aa: 677b str r3, [r7, #116] ; 0x74 80150ac: 687b ldr r3, [r7, #4] 80150ae: 681b ldr r3, [r3, #0] 80150b0: 3308 adds r3, #8 80150b2: 6f7a ldr r2, [r7, #116] ; 0x74 80150b4: 633a str r2, [r7, #48] ; 0x30 80150b6: 62fb str r3, [r7, #44] ; 0x2c __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 80150b8: 6af9 ldr r1, [r7, #44] ; 0x2c 80150ba: 6b3a ldr r2, [r7, #48] ; 0x30 80150bc: e841 2300 strex r3, r2, [r1] 80150c0: 62bb str r3, [r7, #40] ; 0x28 return(result); 80150c2: 6abb ldr r3, [r7, #40] ; 0x28 80150c4: 2b00 cmp r3, #0 80150c6: d1e5 bne.n 8015094 /* Abort the UART DMA Tx channel : use non blocking DMA Abort API (callback) */ if (huart->hdmatx != NULL) 80150c8: 687b ldr r3, [r7, #4] 80150ca: 6edb ldr r3, [r3, #108] ; 0x6c 80150cc: 2b00 cmp r3, #0 80150ce: d00f beq.n 80150f0 { /* UART Tx DMA Abort callback has already been initialised : will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ /* Abort DMA TX */ if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) 80150d0: 687b ldr r3, [r7, #4] 80150d2: 6edb ldr r3, [r3, #108] ; 0x6c 80150d4: 4618 mov r0, r3 80150d6: f7fc fc5e bl 8011996 80150da: 4603 mov r3, r0 80150dc: 2b00 cmp r3, #0 80150de: d004 beq.n 80150ea { huart->hdmatx->XferAbortCallback = NULL; 80150e0: 687b ldr r3, [r7, #4] 80150e2: 6edb ldr r3, [r3, #108] ; 0x6c 80150e4: 2200 movs r2, #0 80150e6: 651a str r2, [r3, #80] ; 0x50 80150e8: e002 b.n 80150f0 } else { abortcplt = 0U; 80150ea: 2300 movs r3, #0 80150ec: f8c7 3084 str.w r3, [r7, #132] ; 0x84 } } } /* Abort the UART DMA Rx channel if enabled */ if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 80150f0: 687b ldr r3, [r7, #4] 80150f2: 681b ldr r3, [r3, #0] 80150f4: 689b ldr r3, [r3, #8] 80150f6: f003 0340 and.w r3, r3, #64 ; 0x40 80150fa: 2b40 cmp r3, #64 ; 0x40 80150fc: d130 bne.n 8015160 { /* Disable the UART DMA Rx request if enabled */ ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 80150fe: 687b ldr r3, [r7, #4] 8015100: 681b ldr r3, [r3, #0] 8015102: 3308 adds r3, #8 8015104: 613b str r3, [r7, #16] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8015106: 693b ldr r3, [r7, #16] 8015108: e853 3f00 ldrex r3, [r3] 801510c: 60fb str r3, [r7, #12] return(result); 801510e: 68fb ldr r3, [r7, #12] 8015110: f023 0340 bic.w r3, r3, #64 ; 0x40 8015114: 673b str r3, [r7, #112] ; 0x70 8015116: 687b ldr r3, [r7, #4] 8015118: 681b ldr r3, [r3, #0] 801511a: 3308 adds r3, #8 801511c: 6f3a ldr r2, [r7, #112] ; 0x70 801511e: 61fa str r2, [r7, #28] 8015120: 61bb str r3, [r7, #24] __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8015122: 69b9 ldr r1, [r7, #24] 8015124: 69fa ldr r2, [r7, #28] 8015126: e841 2300 strex r3, r2, [r1] 801512a: 617b str r3, [r7, #20] return(result); 801512c: 697b ldr r3, [r7, #20] 801512e: 2b00 cmp r3, #0 8015130: d1e5 bne.n 80150fe /* Abort the UART DMA Rx channel : use non blocking DMA Abort API (callback) */ if (huart->hdmarx != NULL) 8015132: 687b ldr r3, [r7, #4] 8015134: 6f1b ldr r3, [r3, #112] ; 0x70 8015136: 2b00 cmp r3, #0 8015138: d012 beq.n 8015160 { /* UART Rx DMA Abort callback has already been initialised : will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ /* Abort DMA RX */ if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 801513a: 687b ldr r3, [r7, #4] 801513c: 6f1b ldr r3, [r3, #112] ; 0x70 801513e: 4618 mov r0, r3 8015140: f7fc fc29 bl 8011996 8015144: 4603 mov r3, r0 8015146: 2b00 cmp r3, #0 8015148: d007 beq.n 801515a { huart->hdmarx->XferAbortCallback = NULL; 801514a: 687b ldr r3, [r7, #4] 801514c: 6f1b ldr r3, [r3, #112] ; 0x70 801514e: 2200 movs r2, #0 8015150: 651a str r2, [r3, #80] ; 0x50 abortcplt = 1U; 8015152: 2301 movs r3, #1 8015154: f8c7 3084 str.w r3, [r7, #132] ; 0x84 8015158: e002 b.n 8015160 } else { abortcplt = 0U; 801515a: 2300 movs r3, #0 801515c: f8c7 3084 str.w r3, [r7, #132] ; 0x84 } } } /* if no DMA abort complete callback execution is required => call user Abort Complete callback */ if (abortcplt == 1U) 8015160: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 8015164: 2b01 cmp r3, #1 8015166: d129 bne.n 80151bc { /* Reset Tx and Rx transfer counters */ huart->TxXferCount = 0U; 8015168: 687b ldr r3, [r7, #4] 801516a: 2200 movs r2, #0 801516c: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 huart->RxXferCount = 0U; 8015170: 687b ldr r3, [r7, #4] 8015172: 2200 movs r2, #0 8015174: f8a3 205a strh.w r2, [r3, #90] ; 0x5a /* Clear ISR function pointers */ huart->RxISR = NULL; 8015178: 687b ldr r3, [r7, #4] 801517a: 2200 movs r2, #0 801517c: 665a str r2, [r3, #100] ; 0x64 huart->TxISR = NULL; 801517e: 687b ldr r3, [r7, #4] 8015180: 2200 movs r2, #0 8015182: 669a str r2, [r3, #104] ; 0x68 /* Reset errorCode */ huart->ErrorCode = HAL_UART_ERROR_NONE; 8015184: 687b ldr r3, [r7, #4] 8015186: 2200 movs r2, #0 8015188: f8c3 2080 str.w r2, [r3, #128] ; 0x80 /* Clear the Error flags in the ICR register */ __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); 801518c: 687b ldr r3, [r7, #4] 801518e: 681b ldr r3, [r3, #0] 8015190: 220f movs r2, #15 8015192: 621a str r2, [r3, #32] /* Discard the received data */ __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); 8015194: 687b ldr r3, [r7, #4] 8015196: 681b ldr r3, [r3, #0] 8015198: 687a ldr r2, [r7, #4] 801519a: 6812 ldr r2, [r2, #0] 801519c: 6992 ldr r2, [r2, #24] 801519e: f042 0208 orr.w r2, r2, #8 80151a2: 619a str r2, [r3, #24] /* Restore huart->gState and huart->RxState to Ready */ huart->gState = HAL_UART_STATE_READY; 80151a4: 687b ldr r3, [r7, #4] 80151a6: 2220 movs r2, #32 80151a8: 679a str r2, [r3, #120] ; 0x78 huart->RxState = HAL_UART_STATE_READY; 80151aa: 687b ldr r3, [r7, #4] 80151ac: 2220 movs r2, #32 80151ae: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 80151b0: 687b ldr r3, [r7, #4] 80151b2: 2200 movs r2, #0 80151b4: 661a str r2, [r3, #96] ; 0x60 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /* Call registered Abort complete callback */ huart->AbortCpltCallback(huart); #else /* Call legacy weak Abort complete callback */ HAL_UART_AbortCpltCallback(huart); 80151b6: 6878 ldr r0, [r7, #4] 80151b8: f000 faea bl 8015790 #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } return HAL_OK; 80151bc: 2300 movs r3, #0 } 80151be: 4618 mov r0, r3 80151c0: 3788 adds r7, #136 ; 0x88 80151c2: 46bd mov sp, r7 80151c4: bd80 pop {r7, pc} 80151c6: bf00 nop 80151c8: 080160e1 .word 0x080160e1 80151cc: 0801614b .word 0x0801614b 080151d0 : * @brief Handle UART interrupt request. * @param huart UART handle. * @retval None */ void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) { 80151d0: b580 push {r7, lr} 80151d2: b0ba sub sp, #232 ; 0xe8 80151d4: af00 add r7, sp, #0 80151d6: 6078 str r0, [r7, #4] uint32_t isrflags = READ_REG(huart->Instance->ISR); 80151d8: 687b ldr r3, [r7, #4] 80151da: 681b ldr r3, [r3, #0] 80151dc: 69db ldr r3, [r3, #28] 80151de: f8c7 30e4 str.w r3, [r7, #228] ; 0xe4 uint32_t cr1its = READ_REG(huart->Instance->CR1); 80151e2: 687b ldr r3, [r7, #4] 80151e4: 681b ldr r3, [r3, #0] 80151e6: 681b ldr r3, [r3, #0] 80151e8: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0 uint32_t cr3its = READ_REG(huart->Instance->CR3); 80151ec: 687b ldr r3, [r7, #4] 80151ee: 681b ldr r3, [r3, #0] 80151f0: 689b ldr r3, [r3, #8] 80151f2: f8c7 30dc str.w r3, [r7, #220] ; 0xdc uint32_t errorflags; uint32_t errorcode; /* If no error occurs */ errorflags = (isrflags & (uint32_t)(USART_ISR_PE | USART_ISR_FE | USART_ISR_ORE | USART_ISR_NE | USART_ISR_RTOF)); 80151f6: f8d7 20e4 ldr.w r2, [r7, #228] ; 0xe4 80151fa: f640 030f movw r3, #2063 ; 0x80f 80151fe: 4013 ands r3, r2 8015200: f8c7 30d8 str.w r3, [r7, #216] ; 0xd8 if (errorflags == 0U) 8015204: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 8015208: 2b00 cmp r3, #0 801520a: d115 bne.n 8015238 { /* UART in mode Receiver ---------------------------------------------------*/ if (((isrflags & USART_ISR_RXNE) != 0U) 801520c: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 8015210: f003 0320 and.w r3, r3, #32 8015214: 2b00 cmp r3, #0 8015216: d00f beq.n 8015238 && ((cr1its & USART_CR1_RXNEIE) != 0U)) 8015218: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 801521c: f003 0320 and.w r3, r3, #32 8015220: 2b00 cmp r3, #0 8015222: d009 beq.n 8015238 { if (huart->RxISR != NULL) 8015224: 687b ldr r3, [r7, #4] 8015226: 6e5b ldr r3, [r3, #100] ; 0x64 8015228: 2b00 cmp r3, #0 801522a: f000 82a5 beq.w 8015778 { huart->RxISR(huart); 801522e: 687b ldr r3, [r7, #4] 8015230: 6e5b ldr r3, [r3, #100] ; 0x64 8015232: 6878 ldr r0, [r7, #4] 8015234: 4798 blx r3 } return; 8015236: e29f b.n 8015778 } } /* If some errors occur */ if ((errorflags != 0U) 8015238: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 801523c: 2b00 cmp r3, #0 801523e: f000 8117 beq.w 8015470 && (((cr3its & USART_CR3_EIE) != 0U) 8015242: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc 8015246: f003 0301 and.w r3, r3, #1 801524a: 2b00 cmp r3, #0 801524c: d106 bne.n 801525c || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_RTOIE)) != 0U))) 801524e: f8d7 20e0 ldr.w r2, [r7, #224] ; 0xe0 8015252: 4b85 ldr r3, [pc, #532] ; (8015468 ) 8015254: 4013 ands r3, r2 8015256: 2b00 cmp r3, #0 8015258: f000 810a beq.w 8015470 { /* UART parity error interrupt occurred -------------------------------------*/ if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U)) 801525c: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 8015260: f003 0301 and.w r3, r3, #1 8015264: 2b00 cmp r3, #0 8015266: d011 beq.n 801528c 8015268: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 801526c: f403 7380 and.w r3, r3, #256 ; 0x100 8015270: 2b00 cmp r3, #0 8015272: d00b beq.n 801528c { __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); 8015274: 687b ldr r3, [r7, #4] 8015276: 681b ldr r3, [r3, #0] 8015278: 2201 movs r2, #1 801527a: 621a str r2, [r3, #32] huart->ErrorCode |= HAL_UART_ERROR_PE; 801527c: 687b ldr r3, [r7, #4] 801527e: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 8015282: f043 0201 orr.w r2, r3, #1 8015286: 687b ldr r3, [r7, #4] 8015288: f8c3 2080 str.w r2, [r3, #128] ; 0x80 } /* UART frame error interrupt occurred --------------------------------------*/ if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) 801528c: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 8015290: f003 0302 and.w r3, r3, #2 8015294: 2b00 cmp r3, #0 8015296: d011 beq.n 80152bc 8015298: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc 801529c: f003 0301 and.w r3, r3, #1 80152a0: 2b00 cmp r3, #0 80152a2: d00b beq.n 80152bc { __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); 80152a4: 687b ldr r3, [r7, #4] 80152a6: 681b ldr r3, [r3, #0] 80152a8: 2202 movs r2, #2 80152aa: 621a str r2, [r3, #32] huart->ErrorCode |= HAL_UART_ERROR_FE; 80152ac: 687b ldr r3, [r7, #4] 80152ae: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 80152b2: f043 0204 orr.w r2, r3, #4 80152b6: 687b ldr r3, [r7, #4] 80152b8: f8c3 2080 str.w r2, [r3, #128] ; 0x80 } /* UART noise error interrupt occurred --------------------------------------*/ if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) 80152bc: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 80152c0: f003 0304 and.w r3, r3, #4 80152c4: 2b00 cmp r3, #0 80152c6: d011 beq.n 80152ec 80152c8: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc 80152cc: f003 0301 and.w r3, r3, #1 80152d0: 2b00 cmp r3, #0 80152d2: d00b beq.n 80152ec { __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); 80152d4: 687b ldr r3, [r7, #4] 80152d6: 681b ldr r3, [r3, #0] 80152d8: 2204 movs r2, #4 80152da: 621a str r2, [r3, #32] huart->ErrorCode |= HAL_UART_ERROR_NE; 80152dc: 687b ldr r3, [r7, #4] 80152de: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 80152e2: f043 0202 orr.w r2, r3, #2 80152e6: 687b ldr r3, [r7, #4] 80152e8: f8c3 2080 str.w r2, [r3, #128] ; 0x80 } /* UART Over-Run interrupt occurred -----------------------------------------*/ if (((isrflags & USART_ISR_ORE) != 0U) 80152ec: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 80152f0: f003 0308 and.w r3, r3, #8 80152f4: 2b00 cmp r3, #0 80152f6: d017 beq.n 8015328 && (((cr1its & USART_CR1_RXNEIE) != 0U) || 80152f8: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 80152fc: f003 0320 and.w r3, r3, #32 8015300: 2b00 cmp r3, #0 8015302: d105 bne.n 8015310 ((cr3its & USART_CR3_EIE) != 0U))) 8015304: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc 8015308: f003 0301 and.w r3, r3, #1 && (((cr1its & USART_CR1_RXNEIE) != 0U) || 801530c: 2b00 cmp r3, #0 801530e: d00b beq.n 8015328 { __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); 8015310: 687b ldr r3, [r7, #4] 8015312: 681b ldr r3, [r3, #0] 8015314: 2208 movs r2, #8 8015316: 621a str r2, [r3, #32] huart->ErrorCode |= HAL_UART_ERROR_ORE; 8015318: 687b ldr r3, [r7, #4] 801531a: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 801531e: f043 0208 orr.w r2, r3, #8 8015322: 687b ldr r3, [r7, #4] 8015324: f8c3 2080 str.w r2, [r3, #128] ; 0x80 } /* UART Receiver Timeout interrupt occurred ---------------------------------*/ if (((isrflags & USART_ISR_RTOF) != 0U) && ((cr1its & USART_CR1_RTOIE) != 0U)) 8015328: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 801532c: f403 6300 and.w r3, r3, #2048 ; 0x800 8015330: 2b00 cmp r3, #0 8015332: d012 beq.n 801535a 8015334: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 8015338: f003 6380 and.w r3, r3, #67108864 ; 0x4000000 801533c: 2b00 cmp r3, #0 801533e: d00c beq.n 801535a { __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); 8015340: 687b ldr r3, [r7, #4] 8015342: 681b ldr r3, [r3, #0] 8015344: f44f 6200 mov.w r2, #2048 ; 0x800 8015348: 621a str r2, [r3, #32] huart->ErrorCode |= HAL_UART_ERROR_RTO; 801534a: 687b ldr r3, [r7, #4] 801534c: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 8015350: f043 0220 orr.w r2, r3, #32 8015354: 687b ldr r3, [r7, #4] 8015356: f8c3 2080 str.w r2, [r3, #128] ; 0x80 } /* Call UART Error Call back function if need be ----------------------------*/ if (huart->ErrorCode != HAL_UART_ERROR_NONE) 801535a: 687b ldr r3, [r7, #4] 801535c: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 8015360: 2b00 cmp r3, #0 8015362: f000 820b beq.w 801577c { /* UART in mode Receiver --------------------------------------------------*/ if (((isrflags & USART_ISR_RXNE) != 0U) 8015366: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 801536a: f003 0320 and.w r3, r3, #32 801536e: 2b00 cmp r3, #0 8015370: d00d beq.n 801538e && ((cr1its & USART_CR1_RXNEIE) != 0U)) 8015372: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 8015376: f003 0320 and.w r3, r3, #32 801537a: 2b00 cmp r3, #0 801537c: d007 beq.n 801538e { if (huart->RxISR != NULL) 801537e: 687b ldr r3, [r7, #4] 8015380: 6e5b ldr r3, [r3, #100] ; 0x64 8015382: 2b00 cmp r3, #0 8015384: d003 beq.n 801538e { huart->RxISR(huart); 8015386: 687b ldr r3, [r7, #4] 8015388: 6e5b ldr r3, [r3, #100] ; 0x64 801538a: 6878 ldr r0, [r7, #4] 801538c: 4798 blx r3 /* If Error is to be considered as blocking : - Receiver Timeout error in Reception - Overrun error in Reception - any error occurs in DMA mode reception */ errorcode = huart->ErrorCode; 801538e: 687b ldr r3, [r7, #4] 8015390: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 8015394: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || 8015398: 687b ldr r3, [r7, #4] 801539a: 681b ldr r3, [r3, #0] 801539c: 689b ldr r3, [r3, #8] 801539e: f003 0340 and.w r3, r3, #64 ; 0x40 80153a2: 2b40 cmp r3, #64 ; 0x40 80153a4: d005 beq.n 80153b2 ((errorcode & (HAL_UART_ERROR_RTO | HAL_UART_ERROR_ORE)) != 0U)) 80153a6: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4 80153aa: f003 0328 and.w r3, r3, #40 ; 0x28 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || 80153ae: 2b00 cmp r3, #0 80153b0: d04f beq.n 8015452 { /* Blocking error : transfer is aborted Set the UART state ready to be able to start again the process, Disable Rx Interrupts, and disable Rx DMA request, if ongoing */ UART_EndRxTransfer(huart); 80153b2: 6878 ldr r0, [r7, #4] 80153b4: f000 fe1b bl 8015fee /* Abort the UART DMA Rx channel if enabled */ if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 80153b8: 687b ldr r3, [r7, #4] 80153ba: 681b ldr r3, [r3, #0] 80153bc: 689b ldr r3, [r3, #8] 80153be: f003 0340 and.w r3, r3, #64 ; 0x40 80153c2: 2b40 cmp r3, #64 ; 0x40 80153c4: d141 bne.n 801544a { /* Disable the UART DMA Rx request if enabled */ ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 80153c6: 687b ldr r3, [r7, #4] 80153c8: 681b ldr r3, [r3, #0] 80153ca: 3308 adds r3, #8 80153cc: f8c7 309c str.w r3, [r7, #156] ; 0x9c __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 80153d0: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c 80153d4: e853 3f00 ldrex r3, [r3] 80153d8: f8c7 3098 str.w r3, [r7, #152] ; 0x98 return(result); 80153dc: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 80153e0: f023 0340 bic.w r3, r3, #64 ; 0x40 80153e4: f8c7 30d0 str.w r3, [r7, #208] ; 0xd0 80153e8: 687b ldr r3, [r7, #4] 80153ea: 681b ldr r3, [r3, #0] 80153ec: 3308 adds r3, #8 80153ee: f8d7 20d0 ldr.w r2, [r7, #208] ; 0xd0 80153f2: f8c7 20a8 str.w r2, [r7, #168] ; 0xa8 80153f6: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 80153fa: f8d7 10a4 ldr.w r1, [r7, #164] ; 0xa4 80153fe: f8d7 20a8 ldr.w r2, [r7, #168] ; 0xa8 8015402: e841 2300 strex r3, r2, [r1] 8015406: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 return(result); 801540a: f8d7 30a0 ldr.w r3, [r7, #160] ; 0xa0 801540e: 2b00 cmp r3, #0 8015410: d1d9 bne.n 80153c6 /* Abort the UART DMA Rx channel */ if (huart->hdmarx != NULL) 8015412: 687b ldr r3, [r7, #4] 8015414: 6f1b ldr r3, [r3, #112] ; 0x70 8015416: 2b00 cmp r3, #0 8015418: d013 beq.n 8015442 { /* Set the UART DMA Abort callback : will lead to call HAL_UART_ErrorCallback() at end of DMA abort procedure */ huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; 801541a: 687b ldr r3, [r7, #4] 801541c: 6f1b ldr r3, [r3, #112] ; 0x70 801541e: 4a13 ldr r2, [pc, #76] ; (801546c ) 8015420: 651a str r2, [r3, #80] ; 0x50 /* Abort DMA RX */ if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 8015422: 687b ldr r3, [r7, #4] 8015424: 6f1b ldr r3, [r3, #112] ; 0x70 8015426: 4618 mov r0, r3 8015428: f7fc fab5 bl 8011996 801542c: 4603 mov r3, r0 801542e: 2b00 cmp r3, #0 8015430: d017 beq.n 8015462 { /* Call Directly huart->hdmarx->XferAbortCallback function in case of error */ huart->hdmarx->XferAbortCallback(huart->hdmarx); 8015432: 687b ldr r3, [r7, #4] 8015434: 6f1b ldr r3, [r3, #112] ; 0x70 8015436: 6d1b ldr r3, [r3, #80] ; 0x50 8015438: 687a ldr r2, [r7, #4] 801543a: 6f12 ldr r2, [r2, #112] ; 0x70 801543c: 4610 mov r0, r2 801543e: 4798 blx r3 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 8015440: e00f b.n 8015462 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered error callback*/ huart->ErrorCallback(huart); #else /*Call legacy weak error callback*/ HAL_UART_ErrorCallback(huart); 8015442: 6878 ldr r0, [r7, #4] 8015444: f7fa fd7a bl 800ff3c if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 8015448: e00b b.n 8015462 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered error callback*/ huart->ErrorCallback(huart); #else /*Call legacy weak error callback*/ HAL_UART_ErrorCallback(huart); 801544a: 6878 ldr r0, [r7, #4] 801544c: f7fa fd76 bl 800ff3c if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 8015450: e007 b.n 8015462 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered error callback*/ huart->ErrorCallback(huart); #else /*Call legacy weak error callback*/ HAL_UART_ErrorCallback(huart); 8015452: 6878 ldr r0, [r7, #4] 8015454: f7fa fd72 bl 800ff3c #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ huart->ErrorCode = HAL_UART_ERROR_NONE; 8015458: 687b ldr r3, [r7, #4] 801545a: 2200 movs r2, #0 801545c: f8c3 2080 str.w r2, [r3, #128] ; 0x80 } } return; 8015460: e18c b.n 801577c if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 8015462: bf00 nop return; 8015464: e18a b.n 801577c 8015466: bf00 nop 8015468: 04000120 .word 0x04000120 801546c: 080160b5 .word 0x080160b5 } /* End if some error occurs */ /* Check current reception Mode : If Reception till IDLE event has been selected : */ if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 8015470: 687b ldr r3, [r7, #4] 8015472: 6e1b ldr r3, [r3, #96] ; 0x60 8015474: 2b01 cmp r3, #1 8015476: f040 8144 bne.w 8015702 && ((isrflags & USART_ISR_IDLE) != 0U) 801547a: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 801547e: f003 0310 and.w r3, r3, #16 8015482: 2b00 cmp r3, #0 8015484: f000 813d beq.w 8015702 && ((cr1its & USART_ISR_IDLE) != 0U)) 8015488: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 801548c: f003 0310 and.w r3, r3, #16 8015490: 2b00 cmp r3, #0 8015492: f000 8136 beq.w 8015702 { __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); 8015496: 687b ldr r3, [r7, #4] 8015498: 681b ldr r3, [r3, #0] 801549a: 2210 movs r2, #16 801549c: 621a str r2, [r3, #32] /* Check if DMA mode is enabled in UART */ if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 801549e: 687b ldr r3, [r7, #4] 80154a0: 681b ldr r3, [r3, #0] 80154a2: 689b ldr r3, [r3, #8] 80154a4: f003 0340 and.w r3, r3, #64 ; 0x40 80154a8: 2b40 cmp r3, #64 ; 0x40 80154aa: f040 80b2 bne.w 8015612 { /* DMA mode enabled */ /* Check received length : If all expected data are received, do nothing, (DMA cplt callback will be called). Otherwise, if at least one data has already been received, IDLE event is to be notified to user */ uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); 80154ae: 687b ldr r3, [r7, #4] 80154b0: 6f1b ldr r3, [r3, #112] ; 0x70 80154b2: 681b ldr r3, [r3, #0] 80154b4: 685b ldr r3, [r3, #4] 80154b6: f8a7 30ce strh.w r3, [r7, #206] ; 0xce if ((nb_remaining_rx_data > 0U) 80154ba: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce 80154be: 2b00 cmp r3, #0 80154c0: f000 815e beq.w 8015780 && (nb_remaining_rx_data < huart->RxXferSize)) 80154c4: 687b ldr r3, [r7, #4] 80154c6: f8b3 3058 ldrh.w r3, [r3, #88] ; 0x58 80154ca: f8b7 20ce ldrh.w r2, [r7, #206] ; 0xce 80154ce: 429a cmp r2, r3 80154d0: f080 8156 bcs.w 8015780 { /* Reception is not complete */ huart->RxXferCount = nb_remaining_rx_data; 80154d4: 687b ldr r3, [r7, #4] 80154d6: f8b7 20ce ldrh.w r2, [r7, #206] ; 0xce 80154da: f8a3 205a strh.w r2, [r3, #90] ; 0x5a /* In Normal mode, end DMA xfer and HAL UART Rx process*/ if (huart->hdmarx->Init.Mode != DMA_CIRCULAR) 80154de: 687b ldr r3, [r7, #4] 80154e0: 6f1b ldr r3, [r3, #112] ; 0x70 80154e2: 69db ldr r3, [r3, #28] 80154e4: f5b3 7f80 cmp.w r3, #256 ; 0x100 80154e8: f000 8085 beq.w 80155f6 { /* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); 80154ec: 687b ldr r3, [r7, #4] 80154ee: 681b ldr r3, [r3, #0] 80154f0: f8c7 3088 str.w r3, [r7, #136] ; 0x88 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 80154f4: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 80154f8: e853 3f00 ldrex r3, [r3] 80154fc: f8c7 3084 str.w r3, [r7, #132] ; 0x84 return(result); 8015500: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 8015504: f423 7380 bic.w r3, r3, #256 ; 0x100 8015508: f8c7 30c8 str.w r3, [r7, #200] ; 0xc8 801550c: 687b ldr r3, [r7, #4] 801550e: 681b ldr r3, [r3, #0] 8015510: 461a mov r2, r3 8015512: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 8015516: f8c7 3094 str.w r3, [r7, #148] ; 0x94 801551a: f8c7 2090 str.w r2, [r7, #144] ; 0x90 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 801551e: f8d7 1090 ldr.w r1, [r7, #144] ; 0x90 8015522: f8d7 2094 ldr.w r2, [r7, #148] ; 0x94 8015526: e841 2300 strex r3, r2, [r1] 801552a: f8c7 308c str.w r3, [r7, #140] ; 0x8c return(result); 801552e: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c 8015532: 2b00 cmp r3, #0 8015534: d1da bne.n 80154ec ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8015536: 687b ldr r3, [r7, #4] 8015538: 681b ldr r3, [r3, #0] 801553a: 3308 adds r3, #8 801553c: 677b str r3, [r7, #116] ; 0x74 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 801553e: 6f7b ldr r3, [r7, #116] ; 0x74 8015540: e853 3f00 ldrex r3, [r3] 8015544: 673b str r3, [r7, #112] ; 0x70 return(result); 8015546: 6f3b ldr r3, [r7, #112] ; 0x70 8015548: f023 0301 bic.w r3, r3, #1 801554c: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 8015550: 687b ldr r3, [r7, #4] 8015552: 681b ldr r3, [r3, #0] 8015554: 3308 adds r3, #8 8015556: f8d7 20c4 ldr.w r2, [r7, #196] ; 0xc4 801555a: f8c7 2080 str.w r2, [r7, #128] ; 0x80 801555e: 67fb str r3, [r7, #124] ; 0x7c __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8015560: 6ff9 ldr r1, [r7, #124] ; 0x7c 8015562: f8d7 2080 ldr.w r2, [r7, #128] ; 0x80 8015566: e841 2300 strex r3, r2, [r1] 801556a: 67bb str r3, [r7, #120] ; 0x78 return(result); 801556c: 6fbb ldr r3, [r7, #120] ; 0x78 801556e: 2b00 cmp r3, #0 8015570: d1e1 bne.n 8015536 /* Disable the DMA transfer for the receiver request by resetting the DMAR bit in the UART CR3 register */ ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 8015572: 687b ldr r3, [r7, #4] 8015574: 681b ldr r3, [r3, #0] 8015576: 3308 adds r3, #8 8015578: 663b str r3, [r7, #96] ; 0x60 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 801557a: 6e3b ldr r3, [r7, #96] ; 0x60 801557c: e853 3f00 ldrex r3, [r3] 8015580: 65fb str r3, [r7, #92] ; 0x5c return(result); 8015582: 6dfb ldr r3, [r7, #92] ; 0x5c 8015584: f023 0340 bic.w r3, r3, #64 ; 0x40 8015588: f8c7 30c0 str.w r3, [r7, #192] ; 0xc0 801558c: 687b ldr r3, [r7, #4] 801558e: 681b ldr r3, [r3, #0] 8015590: 3308 adds r3, #8 8015592: f8d7 20c0 ldr.w r2, [r7, #192] ; 0xc0 8015596: 66fa str r2, [r7, #108] ; 0x6c 8015598: 66bb str r3, [r7, #104] ; 0x68 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 801559a: 6eb9 ldr r1, [r7, #104] ; 0x68 801559c: 6efa ldr r2, [r7, #108] ; 0x6c 801559e: e841 2300 strex r3, r2, [r1] 80155a2: 667b str r3, [r7, #100] ; 0x64 return(result); 80155a4: 6e7b ldr r3, [r7, #100] ; 0x64 80155a6: 2b00 cmp r3, #0 80155a8: d1e3 bne.n 8015572 /* At end of Rx process, restore huart->RxState to Ready */ huart->RxState = HAL_UART_STATE_READY; 80155aa: 687b ldr r3, [r7, #4] 80155ac: 2220 movs r2, #32 80155ae: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 80155b0: 687b ldr r3, [r7, #4] 80155b2: 2200 movs r2, #0 80155b4: 661a str r2, [r3, #96] ; 0x60 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 80155b6: 687b ldr r3, [r7, #4] 80155b8: 681b ldr r3, [r3, #0] 80155ba: 64fb str r3, [r7, #76] ; 0x4c __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 80155bc: 6cfb ldr r3, [r7, #76] ; 0x4c 80155be: e853 3f00 ldrex r3, [r3] 80155c2: 64bb str r3, [r7, #72] ; 0x48 return(result); 80155c4: 6cbb ldr r3, [r7, #72] ; 0x48 80155c6: f023 0310 bic.w r3, r3, #16 80155ca: f8c7 30bc str.w r3, [r7, #188] ; 0xbc 80155ce: 687b ldr r3, [r7, #4] 80155d0: 681b ldr r3, [r3, #0] 80155d2: 461a mov r2, r3 80155d4: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc 80155d8: 65bb str r3, [r7, #88] ; 0x58 80155da: 657a str r2, [r7, #84] ; 0x54 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 80155dc: 6d79 ldr r1, [r7, #84] ; 0x54 80155de: 6dba ldr r2, [r7, #88] ; 0x58 80155e0: e841 2300 strex r3, r2, [r1] 80155e4: 653b str r3, [r7, #80] ; 0x50 return(result); 80155e6: 6d3b ldr r3, [r7, #80] ; 0x50 80155e8: 2b00 cmp r3, #0 80155ea: d1e4 bne.n 80155b6 /* Last bytes received, so no need as the abort is immediate */ (void)HAL_DMA_Abort(huart->hdmarx); 80155ec: 687b ldr r3, [r7, #4] 80155ee: 6f1b ldr r3, [r3, #112] ; 0x70 80155f0: 4618 mov r0, r3 80155f2: f7fc f960 bl 80118b6 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered Rx Event callback*/ huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); #else /*Call legacy weak Rx Event callback*/ HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); 80155f6: 687b ldr r3, [r7, #4] 80155f8: f8b3 2058 ldrh.w r2, [r3, #88] ; 0x58 80155fc: 687b ldr r3, [r7, #4] 80155fe: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a 8015602: b29b uxth r3, r3 8015604: 1ad3 subs r3, r2, r3 8015606: b29b uxth r3, r3 8015608: 4619 mov r1, r3 801560a: 6878 ldr r0, [r7, #4] 801560c: f000 f8ca bl 80157a4 #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ } return; 8015610: e0b6 b.n 8015780 else { /* DMA mode not enabled */ /* Check received length : If all expected data are received, do nothing. Otherwise, if at least one data has already been received, IDLE event is to be notified to user */ uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; 8015612: 687b ldr r3, [r7, #4] 8015614: f8b3 2058 ldrh.w r2, [r3, #88] ; 0x58 8015618: 687b ldr r3, [r7, #4] 801561a: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a 801561e: b29b uxth r3, r3 8015620: 1ad3 subs r3, r2, r3 8015622: f8a7 30ba strh.w r3, [r7, #186] ; 0xba if ((huart->RxXferCount > 0U) 8015626: 687b ldr r3, [r7, #4] 8015628: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a 801562c: b29b uxth r3, r3 801562e: 2b00 cmp r3, #0 8015630: f000 80a8 beq.w 8015784 && (nb_rx_data > 0U)) 8015634: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba 8015638: 2b00 cmp r3, #0 801563a: f000 80a3 beq.w 8015784 { /* Disable the UART Parity Error Interrupt and RXNE interrupts */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); 801563e: 687b ldr r3, [r7, #4] 8015640: 681b ldr r3, [r3, #0] 8015642: 63bb str r3, [r7, #56] ; 0x38 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8015644: 6bbb ldr r3, [r7, #56] ; 0x38 8015646: e853 3f00 ldrex r3, [r3] 801564a: 637b str r3, [r7, #52] ; 0x34 return(result); 801564c: 6b7b ldr r3, [r7, #52] ; 0x34 801564e: f423 7390 bic.w r3, r3, #288 ; 0x120 8015652: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 8015656: 687b ldr r3, [r7, #4] 8015658: 681b ldr r3, [r3, #0] 801565a: 461a mov r2, r3 801565c: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 8015660: 647b str r3, [r7, #68] ; 0x44 8015662: 643a str r2, [r7, #64] ; 0x40 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8015664: 6c39 ldr r1, [r7, #64] ; 0x40 8015666: 6c7a ldr r2, [r7, #68] ; 0x44 8015668: e841 2300 strex r3, r2, [r1] 801566c: 63fb str r3, [r7, #60] ; 0x3c return(result); 801566e: 6bfb ldr r3, [r7, #60] ; 0x3c 8015670: 2b00 cmp r3, #0 8015672: d1e4 bne.n 801563e /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */ ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8015674: 687b ldr r3, [r7, #4] 8015676: 681b ldr r3, [r3, #0] 8015678: 3308 adds r3, #8 801567a: 627b str r3, [r7, #36] ; 0x24 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 801567c: 6a7b ldr r3, [r7, #36] ; 0x24 801567e: e853 3f00 ldrex r3, [r3] 8015682: 623b str r3, [r7, #32] return(result); 8015684: 6a3b ldr r3, [r7, #32] 8015686: f023 0301 bic.w r3, r3, #1 801568a: f8c7 30b0 str.w r3, [r7, #176] ; 0xb0 801568e: 687b ldr r3, [r7, #4] 8015690: 681b ldr r3, [r3, #0] 8015692: 3308 adds r3, #8 8015694: f8d7 20b0 ldr.w r2, [r7, #176] ; 0xb0 8015698: 633a str r2, [r7, #48] ; 0x30 801569a: 62fb str r3, [r7, #44] ; 0x2c __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 801569c: 6af9 ldr r1, [r7, #44] ; 0x2c 801569e: 6b3a ldr r2, [r7, #48] ; 0x30 80156a0: e841 2300 strex r3, r2, [r1] 80156a4: 62bb str r3, [r7, #40] ; 0x28 return(result); 80156a6: 6abb ldr r3, [r7, #40] ; 0x28 80156a8: 2b00 cmp r3, #0 80156aa: d1e3 bne.n 8015674 /* Rx process is completed, restore huart->RxState to Ready */ huart->RxState = HAL_UART_STATE_READY; 80156ac: 687b ldr r3, [r7, #4] 80156ae: 2220 movs r2, #32 80156b0: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 80156b2: 687b ldr r3, [r7, #4] 80156b4: 2200 movs r2, #0 80156b6: 661a str r2, [r3, #96] ; 0x60 /* Clear RxISR function pointer */ huart->RxISR = NULL; 80156b8: 687b ldr r3, [r7, #4] 80156ba: 2200 movs r2, #0 80156bc: 665a str r2, [r3, #100] ; 0x64 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 80156be: 687b ldr r3, [r7, #4] 80156c0: 681b ldr r3, [r3, #0] 80156c2: 613b str r3, [r7, #16] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 80156c4: 693b ldr r3, [r7, #16] 80156c6: e853 3f00 ldrex r3, [r3] 80156ca: 60fb str r3, [r7, #12] return(result); 80156cc: 68fb ldr r3, [r7, #12] 80156ce: f023 0310 bic.w r3, r3, #16 80156d2: f8c7 30ac str.w r3, [r7, #172] ; 0xac 80156d6: 687b ldr r3, [r7, #4] 80156d8: 681b ldr r3, [r3, #0] 80156da: 461a mov r2, r3 80156dc: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac 80156e0: 61fb str r3, [r7, #28] 80156e2: 61ba str r2, [r7, #24] __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 80156e4: 69b9 ldr r1, [r7, #24] 80156e6: 69fa ldr r2, [r7, #28] 80156e8: e841 2300 strex r3, r2, [r1] 80156ec: 617b str r3, [r7, #20] return(result); 80156ee: 697b ldr r3, [r7, #20] 80156f0: 2b00 cmp r3, #0 80156f2: d1e4 bne.n 80156be #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered Rx complete callback*/ huart->RxEventCallback(huart, nb_rx_data); #else /*Call legacy weak Rx Event callback*/ HAL_UARTEx_RxEventCallback(huart, nb_rx_data); 80156f4: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba 80156f8: 4619 mov r1, r3 80156fa: 6878 ldr r0, [r7, #4] 80156fc: f000 f852 bl 80157a4 #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ } return; 8015700: e040 b.n 8015784 } #if defined(USART_CR1_UESM) #if defined(USART_CR3_WUFIE) /* UART wakeup from Stop mode interrupt occurred ---------------------------*/ if (((isrflags & USART_ISR_WUF) != 0U) && ((cr3its & USART_CR3_WUFIE) != 0U)) 8015702: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 8015706: f403 1380 and.w r3, r3, #1048576 ; 0x100000 801570a: 2b00 cmp r3, #0 801570c: d00e beq.n 801572c 801570e: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc 8015712: f403 0380 and.w r3, r3, #4194304 ; 0x400000 8015716: 2b00 cmp r3, #0 8015718: d008 beq.n 801572c { __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF); 801571a: 687b ldr r3, [r7, #4] 801571c: 681b ldr r3, [r3, #0] 801571e: f44f 1280 mov.w r2, #1048576 ; 0x100000 8015722: 621a str r2, [r3, #32] #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /* Call registered Wakeup Callback */ huart->WakeupCallback(huart); #else /* Call legacy weak Wakeup Callback */ HAL_UARTEx_WakeupCallback(huart); 8015724: 6878 ldr r0, [r7, #4] 8015726: f000 f849 bl 80157bc #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ return; 801572a: e02e b.n 801578a } #endif /* USART_CR3_WUFIE */ #endif /* USART_CR1_UESM */ /* UART in mode Transmitter ------------------------------------------------*/ if (((isrflags & USART_ISR_TXE) != 0U) 801572c: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 8015730: f003 0380 and.w r3, r3, #128 ; 0x80 8015734: 2b00 cmp r3, #0 8015736: d00e beq.n 8015756 && ((cr1its & USART_CR1_TXEIE) != 0U)) 8015738: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 801573c: f003 0380 and.w r3, r3, #128 ; 0x80 8015740: 2b00 cmp r3, #0 8015742: d008 beq.n 8015756 { if (huart->TxISR != NULL) 8015744: 687b ldr r3, [r7, #4] 8015746: 6e9b ldr r3, [r3, #104] ; 0x68 8015748: 2b00 cmp r3, #0 801574a: d01d beq.n 8015788 { huart->TxISR(huart); 801574c: 687b ldr r3, [r7, #4] 801574e: 6e9b ldr r3, [r3, #104] ; 0x68 8015750: 6878 ldr r0, [r7, #4] 8015752: 4798 blx r3 } return; 8015754: e018 b.n 8015788 } /* UART in mode Transmitter (transmission end) -----------------------------*/ if (((isrflags & USART_ISR_TC) != 0U) && ((cr1its & USART_CR1_TCIE) != 0U)) 8015756: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 801575a: f003 0340 and.w r3, r3, #64 ; 0x40 801575e: 2b00 cmp r3, #0 8015760: d013 beq.n 801578a 8015762: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 8015766: f003 0340 and.w r3, r3, #64 ; 0x40 801576a: 2b00 cmp r3, #0 801576c: d00d beq.n 801578a { UART_EndTransmit_IT(huart); 801576e: 6878 ldr r0, [r7, #4] 8015770: f000 fde2 bl 8016338 return; 8015774: bf00 nop 8015776: e008 b.n 801578a return; 8015778: bf00 nop 801577a: e006 b.n 801578a return; 801577c: bf00 nop 801577e: e004 b.n 801578a return; 8015780: bf00 nop 8015782: e002 b.n 801578a return; 8015784: bf00 nop 8015786: e000 b.n 801578a return; 8015788: bf00 nop } } 801578a: 37e8 adds r7, #232 ; 0xe8 801578c: 46bd mov sp, r7 801578e: bd80 pop {r7, pc} 08015790 : * @brief UART Abort Complete callback. * @param huart UART handle. * @retval None */ __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) { 8015790: b480 push {r7} 8015792: b083 sub sp, #12 8015794: af00 add r7, sp, #0 8015796: 6078 str r0, [r7, #4] UNUSED(huart); /* NOTE : This function should not be modified, when the callback is needed, the HAL_UART_AbortCpltCallback can be implemented in the user file. */ } 8015798: bf00 nop 801579a: 370c adds r7, #12 801579c: 46bd mov sp, r7 801579e: f85d 7b04 ldr.w r7, [sp], #4 80157a2: 4770 bx lr 080157a4 : * @param Size Number of data available in application reception buffer (indicates a position in * reception buffer until which, data are available) * @retval None */ __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) { 80157a4: b480 push {r7} 80157a6: b083 sub sp, #12 80157a8: af00 add r7, sp, #0 80157aa: 6078 str r0, [r7, #4] 80157ac: 460b mov r3, r1 80157ae: 807b strh r3, [r7, #2] UNUSED(Size); /* NOTE : This function should not be modified, when the callback is needed, the HAL_UARTEx_RxEventCallback can be implemented in the user file. */ } 80157b0: bf00 nop 80157b2: 370c adds r7, #12 80157b4: 46bd mov sp, r7 80157b6: f85d 7b04 ldr.w r7, [sp], #4 80157ba: 4770 bx lr 080157bc : * @brief UART wakeup from Stop mode callback. * @param huart UART handle. * @retval None */ __weak void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart) { 80157bc: b480 push {r7} 80157be: b083 sub sp, #12 80157c0: af00 add r7, sp, #0 80157c2: 6078 str r0, [r7, #4] UNUSED(huart); /* NOTE : This function should not be modified, when the callback is needed, the HAL_UARTEx_WakeupCallback can be implemented in the user file. */ } 80157c4: bf00 nop 80157c6: 370c adds r7, #12 80157c8: 46bd mov sp, r7 80157ca: f85d 7b04 ldr.w r7, [sp], #4 80157ce: 4770 bx lr 080157d0 : * @brief Configure the UART peripheral. * @param huart UART handle. * @retval HAL status */ HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) { 80157d0: b580 push {r7, lr} 80157d2: b088 sub sp, #32 80157d4: af00 add r7, sp, #0 80157d6: 6078 str r0, [r7, #4] uint32_t tmpreg; uint16_t brrtemp; UART_ClockSourceTypeDef clocksource; uint32_t usartdiv; HAL_StatusTypeDef ret = HAL_OK; 80157d8: 2300 movs r3, #0 80157da: 77bb strb r3, [r7, #30] * the UART Word Length, Parity, Mode and oversampling: * set the M bits according to huart->Init.WordLength value * set PCE and PS bits according to huart->Init.Parity value * set TE and RE bits according to huart->Init.Mode value * set OVER8 bit according to huart->Init.OverSampling value */ tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.OverSampling ; 80157dc: 687b ldr r3, [r7, #4] 80157de: 689a ldr r2, [r3, #8] 80157e0: 687b ldr r3, [r7, #4] 80157e2: 691b ldr r3, [r3, #16] 80157e4: 431a orrs r2, r3 80157e6: 687b ldr r3, [r7, #4] 80157e8: 695b ldr r3, [r3, #20] 80157ea: 431a orrs r2, r3 80157ec: 687b ldr r3, [r7, #4] 80157ee: 69db ldr r3, [r3, #28] 80157f0: 4313 orrs r3, r2 80157f2: 617b str r3, [r7, #20] MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); 80157f4: 687b ldr r3, [r7, #4] 80157f6: 681a ldr r2, [r3, #0] 80157f8: 687b ldr r3, [r7, #4] 80157fa: 681b ldr r3, [r3, #0] 80157fc: 6819 ldr r1, [r3, #0] 80157fe: 4bb3 ldr r3, [pc, #716] ; (8015acc ) 8015800: 400b ands r3, r1 8015802: 6979 ldr r1, [r7, #20] 8015804: 430b orrs r3, r1 8015806: 6013 str r3, [r2, #0] /*-------------------------- USART CR2 Configuration -----------------------*/ /* Configure the UART Stop Bits: Set STOP[13:12] bits according * to huart->Init.StopBits value */ MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); 8015808: 687b ldr r3, [r7, #4] 801580a: 681b ldr r3, [r3, #0] 801580c: 687a ldr r2, [r7, #4] 801580e: 6812 ldr r2, [r2, #0] 8015810: 6852 ldr r2, [r2, #4] 8015812: f422 5140 bic.w r1, r2, #12288 ; 0x3000 8015816: 687a ldr r2, [r7, #4] 8015818: 68d2 ldr r2, [r2, #12] 801581a: 430a orrs r2, r1 801581c: 605a str r2, [r3, #4] /* Configure * - UART HardWare Flow Control: set CTSE and RTSE bits according * to huart->Init.HwFlowCtl value * - one-bit sampling method versus three samples' majority rule according * to huart->Init.OneBitSampling (not applicable to LPUART) */ tmpreg = (uint32_t)huart->Init.HwFlowCtl; 801581e: 687b ldr r3, [r7, #4] 8015820: 699b ldr r3, [r3, #24] 8015822: 617b str r3, [r7, #20] tmpreg |= huart->Init.OneBitSampling; 8015824: 687b ldr r3, [r7, #4] 8015826: 6a1b ldr r3, [r3, #32] 8015828: 697a ldr r2, [r7, #20] 801582a: 4313 orrs r3, r2 801582c: 617b str r3, [r7, #20] MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); 801582e: 687b ldr r3, [r7, #4] 8015830: 681b ldr r3, [r3, #0] 8015832: 687a ldr r2, [r7, #4] 8015834: 6812 ldr r2, [r2, #0] 8015836: 6892 ldr r2, [r2, #8] 8015838: f422 6130 bic.w r1, r2, #2816 ; 0xb00 801583c: 697a ldr r2, [r7, #20] 801583e: 430a orrs r2, r1 8015840: 609a str r2, [r3, #8] /*-------------------------- USART BRR Configuration -----------------------*/ UART_GETCLOCKSOURCE(huart, clocksource); 8015842: 687b ldr r3, [r7, #4] 8015844: 681b ldr r3, [r3, #0] 8015846: 4aa2 ldr r2, [pc, #648] ; (8015ad0 ) 8015848: 4293 cmp r3, r2 801584a: d121 bne.n 8015890 801584c: 4ba1 ldr r3, [pc, #644] ; (8015ad4 ) 801584e: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8015852: f003 0303 and.w r3, r3, #3 8015856: 2b03 cmp r3, #3 8015858: d816 bhi.n 8015888 801585a: a201 add r2, pc, #4 ; (adr r2, 8015860 ) 801585c: f852 f023 ldr.w pc, [r2, r3, lsl #2] 8015860: 08015871 .word 0x08015871 8015864: 0801587d .word 0x0801587d 8015868: 08015877 .word 0x08015877 801586c: 08015883 .word 0x08015883 8015870: 2301 movs r3, #1 8015872: 77fb strb r3, [r7, #31] 8015874: e150 b.n 8015b18 8015876: 2302 movs r3, #2 8015878: 77fb strb r3, [r7, #31] 801587a: e14d b.n 8015b18 801587c: 2304 movs r3, #4 801587e: 77fb strb r3, [r7, #31] 8015880: e14a b.n 8015b18 8015882: 2308 movs r3, #8 8015884: 77fb strb r3, [r7, #31] 8015886: e147 b.n 8015b18 8015888: 2310 movs r3, #16 801588a: 77fb strb r3, [r7, #31] 801588c: bf00 nop 801588e: e143 b.n 8015b18 8015890: 687b ldr r3, [r7, #4] 8015892: 681b ldr r3, [r3, #0] 8015894: 4a90 ldr r2, [pc, #576] ; (8015ad8 ) 8015896: 4293 cmp r3, r2 8015898: d134 bne.n 8015904 801589a: 4b8e ldr r3, [pc, #568] ; (8015ad4 ) 801589c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 80158a0: f003 030c and.w r3, r3, #12 80158a4: 2b0c cmp r3, #12 80158a6: d829 bhi.n 80158fc 80158a8: a201 add r2, pc, #4 ; (adr r2, 80158b0 ) 80158aa: f852 f023 ldr.w pc, [r2, r3, lsl #2] 80158ae: bf00 nop 80158b0: 080158e5 .word 0x080158e5 80158b4: 080158fd .word 0x080158fd 80158b8: 080158fd .word 0x080158fd 80158bc: 080158fd .word 0x080158fd 80158c0: 080158f1 .word 0x080158f1 80158c4: 080158fd .word 0x080158fd 80158c8: 080158fd .word 0x080158fd 80158cc: 080158fd .word 0x080158fd 80158d0: 080158eb .word 0x080158eb 80158d4: 080158fd .word 0x080158fd 80158d8: 080158fd .word 0x080158fd 80158dc: 080158fd .word 0x080158fd 80158e0: 080158f7 .word 0x080158f7 80158e4: 2300 movs r3, #0 80158e6: 77fb strb r3, [r7, #31] 80158e8: e116 b.n 8015b18 80158ea: 2302 movs r3, #2 80158ec: 77fb strb r3, [r7, #31] 80158ee: e113 b.n 8015b18 80158f0: 2304 movs r3, #4 80158f2: 77fb strb r3, [r7, #31] 80158f4: e110 b.n 8015b18 80158f6: 2308 movs r3, #8 80158f8: 77fb strb r3, [r7, #31] 80158fa: e10d b.n 8015b18 80158fc: 2310 movs r3, #16 80158fe: 77fb strb r3, [r7, #31] 8015900: bf00 nop 8015902: e109 b.n 8015b18 8015904: 687b ldr r3, [r7, #4] 8015906: 681b ldr r3, [r3, #0] 8015908: 4a74 ldr r2, [pc, #464] ; (8015adc ) 801590a: 4293 cmp r3, r2 801590c: d120 bne.n 8015950 801590e: 4b71 ldr r3, [pc, #452] ; (8015ad4 ) 8015910: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8015914: f003 0330 and.w r3, r3, #48 ; 0x30 8015918: 2b10 cmp r3, #16 801591a: d00f beq.n 801593c 801591c: 2b10 cmp r3, #16 801591e: d802 bhi.n 8015926 8015920: 2b00 cmp r3, #0 8015922: d005 beq.n 8015930 8015924: e010 b.n 8015948 8015926: 2b20 cmp r3, #32 8015928: d005 beq.n 8015936 801592a: 2b30 cmp r3, #48 ; 0x30 801592c: d009 beq.n 8015942 801592e: e00b b.n 8015948 8015930: 2300 movs r3, #0 8015932: 77fb strb r3, [r7, #31] 8015934: e0f0 b.n 8015b18 8015936: 2302 movs r3, #2 8015938: 77fb strb r3, [r7, #31] 801593a: e0ed b.n 8015b18 801593c: 2304 movs r3, #4 801593e: 77fb strb r3, [r7, #31] 8015940: e0ea b.n 8015b18 8015942: 2308 movs r3, #8 8015944: 77fb strb r3, [r7, #31] 8015946: e0e7 b.n 8015b18 8015948: 2310 movs r3, #16 801594a: 77fb strb r3, [r7, #31] 801594c: bf00 nop 801594e: e0e3 b.n 8015b18 8015950: 687b ldr r3, [r7, #4] 8015952: 681b ldr r3, [r3, #0] 8015954: 4a62 ldr r2, [pc, #392] ; (8015ae0 ) 8015956: 4293 cmp r3, r2 8015958: d120 bne.n 801599c 801595a: 4b5e ldr r3, [pc, #376] ; (8015ad4 ) 801595c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8015960: f003 03c0 and.w r3, r3, #192 ; 0xc0 8015964: 2b40 cmp r3, #64 ; 0x40 8015966: d00f beq.n 8015988 8015968: 2b40 cmp r3, #64 ; 0x40 801596a: d802 bhi.n 8015972 801596c: 2b00 cmp r3, #0 801596e: d005 beq.n 801597c 8015970: e010 b.n 8015994 8015972: 2b80 cmp r3, #128 ; 0x80 8015974: d005 beq.n 8015982 8015976: 2bc0 cmp r3, #192 ; 0xc0 8015978: d009 beq.n 801598e 801597a: e00b b.n 8015994 801597c: 2300 movs r3, #0 801597e: 77fb strb r3, [r7, #31] 8015980: e0ca b.n 8015b18 8015982: 2302 movs r3, #2 8015984: 77fb strb r3, [r7, #31] 8015986: e0c7 b.n 8015b18 8015988: 2304 movs r3, #4 801598a: 77fb strb r3, [r7, #31] 801598c: e0c4 b.n 8015b18 801598e: 2308 movs r3, #8 8015990: 77fb strb r3, [r7, #31] 8015992: e0c1 b.n 8015b18 8015994: 2310 movs r3, #16 8015996: 77fb strb r3, [r7, #31] 8015998: bf00 nop 801599a: e0bd b.n 8015b18 801599c: 687b ldr r3, [r7, #4] 801599e: 681b ldr r3, [r3, #0] 80159a0: 4a50 ldr r2, [pc, #320] ; (8015ae4 ) 80159a2: 4293 cmp r3, r2 80159a4: d124 bne.n 80159f0 80159a6: 4b4b ldr r3, [pc, #300] ; (8015ad4 ) 80159a8: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 80159ac: f403 7340 and.w r3, r3, #768 ; 0x300 80159b0: f5b3 7f80 cmp.w r3, #256 ; 0x100 80159b4: d012 beq.n 80159dc 80159b6: f5b3 7f80 cmp.w r3, #256 ; 0x100 80159ba: d802 bhi.n 80159c2 80159bc: 2b00 cmp r3, #0 80159be: d007 beq.n 80159d0 80159c0: e012 b.n 80159e8 80159c2: f5b3 7f00 cmp.w r3, #512 ; 0x200 80159c6: d006 beq.n 80159d6 80159c8: f5b3 7f40 cmp.w r3, #768 ; 0x300 80159cc: d009 beq.n 80159e2 80159ce: e00b b.n 80159e8 80159d0: 2300 movs r3, #0 80159d2: 77fb strb r3, [r7, #31] 80159d4: e0a0 b.n 8015b18 80159d6: 2302 movs r3, #2 80159d8: 77fb strb r3, [r7, #31] 80159da: e09d b.n 8015b18 80159dc: 2304 movs r3, #4 80159de: 77fb strb r3, [r7, #31] 80159e0: e09a b.n 8015b18 80159e2: 2308 movs r3, #8 80159e4: 77fb strb r3, [r7, #31] 80159e6: e097 b.n 8015b18 80159e8: 2310 movs r3, #16 80159ea: 77fb strb r3, [r7, #31] 80159ec: bf00 nop 80159ee: e093 b.n 8015b18 80159f0: 687b ldr r3, [r7, #4] 80159f2: 681b ldr r3, [r3, #0] 80159f4: 4a3c ldr r2, [pc, #240] ; (8015ae8 ) 80159f6: 4293 cmp r3, r2 80159f8: d124 bne.n 8015a44 80159fa: 4b36 ldr r3, [pc, #216] ; (8015ad4 ) 80159fc: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8015a00: f403 6340 and.w r3, r3, #3072 ; 0xc00 8015a04: f5b3 6f80 cmp.w r3, #1024 ; 0x400 8015a08: d012 beq.n 8015a30 8015a0a: f5b3 6f80 cmp.w r3, #1024 ; 0x400 8015a0e: d802 bhi.n 8015a16 8015a10: 2b00 cmp r3, #0 8015a12: d007 beq.n 8015a24 8015a14: e012 b.n 8015a3c 8015a16: f5b3 6f00 cmp.w r3, #2048 ; 0x800 8015a1a: d006 beq.n 8015a2a 8015a1c: f5b3 6f40 cmp.w r3, #3072 ; 0xc00 8015a20: d009 beq.n 8015a36 8015a22: e00b b.n 8015a3c 8015a24: 2301 movs r3, #1 8015a26: 77fb strb r3, [r7, #31] 8015a28: e076 b.n 8015b18 8015a2a: 2302 movs r3, #2 8015a2c: 77fb strb r3, [r7, #31] 8015a2e: e073 b.n 8015b18 8015a30: 2304 movs r3, #4 8015a32: 77fb strb r3, [r7, #31] 8015a34: e070 b.n 8015b18 8015a36: 2308 movs r3, #8 8015a38: 77fb strb r3, [r7, #31] 8015a3a: e06d b.n 8015b18 8015a3c: 2310 movs r3, #16 8015a3e: 77fb strb r3, [r7, #31] 8015a40: bf00 nop 8015a42: e069 b.n 8015b18 8015a44: 687b ldr r3, [r7, #4] 8015a46: 681b ldr r3, [r3, #0] 8015a48: 4a28 ldr r2, [pc, #160] ; (8015aec ) 8015a4a: 4293 cmp r3, r2 8015a4c: d124 bne.n 8015a98 8015a4e: 4b21 ldr r3, [pc, #132] ; (8015ad4 ) 8015a50: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8015a54: f403 5340 and.w r3, r3, #12288 ; 0x3000 8015a58: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 8015a5c: d012 beq.n 8015a84 8015a5e: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 8015a62: d802 bhi.n 8015a6a 8015a64: 2b00 cmp r3, #0 8015a66: d007 beq.n 8015a78 8015a68: e012 b.n 8015a90 8015a6a: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 8015a6e: d006 beq.n 8015a7e 8015a70: f5b3 5f40 cmp.w r3, #12288 ; 0x3000 8015a74: d009 beq.n 8015a8a 8015a76: e00b b.n 8015a90 8015a78: 2300 movs r3, #0 8015a7a: 77fb strb r3, [r7, #31] 8015a7c: e04c b.n 8015b18 8015a7e: 2302 movs r3, #2 8015a80: 77fb strb r3, [r7, #31] 8015a82: e049 b.n 8015b18 8015a84: 2304 movs r3, #4 8015a86: 77fb strb r3, [r7, #31] 8015a88: e046 b.n 8015b18 8015a8a: 2308 movs r3, #8 8015a8c: 77fb strb r3, [r7, #31] 8015a8e: e043 b.n 8015b18 8015a90: 2310 movs r3, #16 8015a92: 77fb strb r3, [r7, #31] 8015a94: bf00 nop 8015a96: e03f b.n 8015b18 8015a98: 687b ldr r3, [r7, #4] 8015a9a: 681b ldr r3, [r3, #0] 8015a9c: 4a14 ldr r2, [pc, #80] ; (8015af0 ) 8015a9e: 4293 cmp r3, r2 8015aa0: d138 bne.n 8015b14 8015aa2: 4b0c ldr r3, [pc, #48] ; (8015ad4 ) 8015aa4: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8015aa8: f403 4340 and.w r3, r3, #49152 ; 0xc000 8015aac: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 8015ab0: d026 beq.n 8015b00 8015ab2: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 8015ab6: d802 bhi.n 8015abe 8015ab8: 2b00 cmp r3, #0 8015aba: d01b beq.n 8015af4 8015abc: e026 b.n 8015b0c 8015abe: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 8015ac2: d01a beq.n 8015afa 8015ac4: f5b3 4f40 cmp.w r3, #49152 ; 0xc000 8015ac8: d01d beq.n 8015b06 8015aca: e01f b.n 8015b0c 8015acc: efff69f3 .word 0xefff69f3 8015ad0: 40011000 .word 0x40011000 8015ad4: 40023800 .word 0x40023800 8015ad8: 40004400 .word 0x40004400 8015adc: 40004800 .word 0x40004800 8015ae0: 40004c00 .word 0x40004c00 8015ae4: 40005000 .word 0x40005000 8015ae8: 40011400 .word 0x40011400 8015aec: 40007800 .word 0x40007800 8015af0: 40007c00 .word 0x40007c00 8015af4: 2300 movs r3, #0 8015af6: 77fb strb r3, [r7, #31] 8015af8: e00e b.n 8015b18 8015afa: 2302 movs r3, #2 8015afc: 77fb strb r3, [r7, #31] 8015afe: e00b b.n 8015b18 8015b00: 2304 movs r3, #4 8015b02: 77fb strb r3, [r7, #31] 8015b04: e008 b.n 8015b18 8015b06: 2308 movs r3, #8 8015b08: 77fb strb r3, [r7, #31] 8015b0a: e005 b.n 8015b18 8015b0c: 2310 movs r3, #16 8015b0e: 77fb strb r3, [r7, #31] 8015b10: bf00 nop 8015b12: e001 b.n 8015b18 8015b14: 2310 movs r3, #16 8015b16: 77fb strb r3, [r7, #31] if (huart->Init.OverSampling == UART_OVERSAMPLING_8) 8015b18: 687b ldr r3, [r7, #4] 8015b1a: 69db ldr r3, [r3, #28] 8015b1c: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 8015b20: d15b bne.n 8015bda { switch (clocksource) 8015b22: 7ffb ldrb r3, [r7, #31] 8015b24: 2b08 cmp r3, #8 8015b26: d828 bhi.n 8015b7a 8015b28: a201 add r2, pc, #4 ; (adr r2, 8015b30 ) 8015b2a: f852 f023 ldr.w pc, [r2, r3, lsl #2] 8015b2e: bf00 nop 8015b30: 08015b55 .word 0x08015b55 8015b34: 08015b5d .word 0x08015b5d 8015b38: 08015b65 .word 0x08015b65 8015b3c: 08015b7b .word 0x08015b7b 8015b40: 08015b6b .word 0x08015b6b 8015b44: 08015b7b .word 0x08015b7b 8015b48: 08015b7b .word 0x08015b7b 8015b4c: 08015b7b .word 0x08015b7b 8015b50: 08015b73 .word 0x08015b73 { case UART_CLOCKSOURCE_PCLK1: pclk = HAL_RCC_GetPCLK1Freq(); 8015b54: f7fe f8d8 bl 8013d08 8015b58: 61b8 str r0, [r7, #24] break; 8015b5a: e013 b.n 8015b84 case UART_CLOCKSOURCE_PCLK2: pclk = HAL_RCC_GetPCLK2Freq(); 8015b5c: f7fe f8e8 bl 8013d30 8015b60: 61b8 str r0, [r7, #24] break; 8015b62: e00f b.n 8015b84 case UART_CLOCKSOURCE_HSI: pclk = (uint32_t) HSI_VALUE; 8015b64: 4b49 ldr r3, [pc, #292] ; (8015c8c ) 8015b66: 61bb str r3, [r7, #24] break; 8015b68: e00c b.n 8015b84 case UART_CLOCKSOURCE_SYSCLK: pclk = HAL_RCC_GetSysClockFreq(); 8015b6a: f7fe f80b bl 8013b84 8015b6e: 61b8 str r0, [r7, #24] break; 8015b70: e008 b.n 8015b84 case UART_CLOCKSOURCE_LSE: pclk = (uint32_t) LSE_VALUE; 8015b72: f44f 4300 mov.w r3, #32768 ; 0x8000 8015b76: 61bb str r3, [r7, #24] break; 8015b78: e004 b.n 8015b84 default: pclk = 0U; 8015b7a: 2300 movs r3, #0 8015b7c: 61bb str r3, [r7, #24] ret = HAL_ERROR; 8015b7e: 2301 movs r3, #1 8015b80: 77bb strb r3, [r7, #30] break; 8015b82: bf00 nop } /* USARTDIV must be greater than or equal to 0d16 */ if (pclk != 0U) 8015b84: 69bb ldr r3, [r7, #24] 8015b86: 2b00 cmp r3, #0 8015b88: d074 beq.n 8015c74 { usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate)); 8015b8a: 69bb ldr r3, [r7, #24] 8015b8c: 005a lsls r2, r3, #1 8015b8e: 687b ldr r3, [r7, #4] 8015b90: 685b ldr r3, [r3, #4] 8015b92: 085b lsrs r3, r3, #1 8015b94: 441a add r2, r3 8015b96: 687b ldr r3, [r7, #4] 8015b98: 685b ldr r3, [r3, #4] 8015b9a: fbb2 f3f3 udiv r3, r2, r3 8015b9e: 613b str r3, [r7, #16] if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) 8015ba0: 693b ldr r3, [r7, #16] 8015ba2: 2b0f cmp r3, #15 8015ba4: d916 bls.n 8015bd4 8015ba6: 693b ldr r3, [r7, #16] 8015ba8: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 8015bac: d212 bcs.n 8015bd4 { brrtemp = (uint16_t)(usartdiv & 0xFFF0U); 8015bae: 693b ldr r3, [r7, #16] 8015bb0: b29b uxth r3, r3 8015bb2: f023 030f bic.w r3, r3, #15 8015bb6: 81fb strh r3, [r7, #14] brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U); 8015bb8: 693b ldr r3, [r7, #16] 8015bba: 085b lsrs r3, r3, #1 8015bbc: b29b uxth r3, r3 8015bbe: f003 0307 and.w r3, r3, #7 8015bc2: b29a uxth r2, r3 8015bc4: 89fb ldrh r3, [r7, #14] 8015bc6: 4313 orrs r3, r2 8015bc8: 81fb strh r3, [r7, #14] huart->Instance->BRR = brrtemp; 8015bca: 687b ldr r3, [r7, #4] 8015bcc: 681b ldr r3, [r3, #0] 8015bce: 89fa ldrh r2, [r7, #14] 8015bd0: 60da str r2, [r3, #12] 8015bd2: e04f b.n 8015c74 } else { ret = HAL_ERROR; 8015bd4: 2301 movs r3, #1 8015bd6: 77bb strb r3, [r7, #30] 8015bd8: e04c b.n 8015c74 } } } else { switch (clocksource) 8015bda: 7ffb ldrb r3, [r7, #31] 8015bdc: 2b08 cmp r3, #8 8015bde: d828 bhi.n 8015c32 8015be0: a201 add r2, pc, #4 ; (adr r2, 8015be8 ) 8015be2: f852 f023 ldr.w pc, [r2, r3, lsl #2] 8015be6: bf00 nop 8015be8: 08015c0d .word 0x08015c0d 8015bec: 08015c15 .word 0x08015c15 8015bf0: 08015c1d .word 0x08015c1d 8015bf4: 08015c33 .word 0x08015c33 8015bf8: 08015c23 .word 0x08015c23 8015bfc: 08015c33 .word 0x08015c33 8015c00: 08015c33 .word 0x08015c33 8015c04: 08015c33 .word 0x08015c33 8015c08: 08015c2b .word 0x08015c2b { case UART_CLOCKSOURCE_PCLK1: pclk = HAL_RCC_GetPCLK1Freq(); 8015c0c: f7fe f87c bl 8013d08 8015c10: 61b8 str r0, [r7, #24] break; 8015c12: e013 b.n 8015c3c case UART_CLOCKSOURCE_PCLK2: pclk = HAL_RCC_GetPCLK2Freq(); 8015c14: f7fe f88c bl 8013d30 8015c18: 61b8 str r0, [r7, #24] break; 8015c1a: e00f b.n 8015c3c case UART_CLOCKSOURCE_HSI: pclk = (uint32_t) HSI_VALUE; 8015c1c: 4b1b ldr r3, [pc, #108] ; (8015c8c ) 8015c1e: 61bb str r3, [r7, #24] break; 8015c20: e00c b.n 8015c3c case UART_CLOCKSOURCE_SYSCLK: pclk = HAL_RCC_GetSysClockFreq(); 8015c22: f7fd ffaf bl 8013b84 8015c26: 61b8 str r0, [r7, #24] break; 8015c28: e008 b.n 8015c3c case UART_CLOCKSOURCE_LSE: pclk = (uint32_t) LSE_VALUE; 8015c2a: f44f 4300 mov.w r3, #32768 ; 0x8000 8015c2e: 61bb str r3, [r7, #24] break; 8015c30: e004 b.n 8015c3c default: pclk = 0U; 8015c32: 2300 movs r3, #0 8015c34: 61bb str r3, [r7, #24] ret = HAL_ERROR; 8015c36: 2301 movs r3, #1 8015c38: 77bb strb r3, [r7, #30] break; 8015c3a: bf00 nop } if (pclk != 0U) 8015c3c: 69bb ldr r3, [r7, #24] 8015c3e: 2b00 cmp r3, #0 8015c40: d018 beq.n 8015c74 { /* USARTDIV must be greater than or equal to 0d16 */ usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate)); 8015c42: 687b ldr r3, [r7, #4] 8015c44: 685b ldr r3, [r3, #4] 8015c46: 085a lsrs r2, r3, #1 8015c48: 69bb ldr r3, [r7, #24] 8015c4a: 441a add r2, r3 8015c4c: 687b ldr r3, [r7, #4] 8015c4e: 685b ldr r3, [r3, #4] 8015c50: fbb2 f3f3 udiv r3, r2, r3 8015c54: 613b str r3, [r7, #16] if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) 8015c56: 693b ldr r3, [r7, #16] 8015c58: 2b0f cmp r3, #15 8015c5a: d909 bls.n 8015c70 8015c5c: 693b ldr r3, [r7, #16] 8015c5e: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 8015c62: d205 bcs.n 8015c70 { huart->Instance->BRR = (uint16_t)usartdiv; 8015c64: 687b ldr r3, [r7, #4] 8015c66: 681b ldr r3, [r3, #0] 8015c68: 693a ldr r2, [r7, #16] 8015c6a: b292 uxth r2, r2 8015c6c: 60da str r2, [r3, #12] 8015c6e: e001 b.n 8015c74 } else { ret = HAL_ERROR; 8015c70: 2301 movs r3, #1 8015c72: 77bb strb r3, [r7, #30] } } /* Clear ISR function pointers */ huart->RxISR = NULL; 8015c74: 687b ldr r3, [r7, #4] 8015c76: 2200 movs r2, #0 8015c78: 665a str r2, [r3, #100] ; 0x64 huart->TxISR = NULL; 8015c7a: 687b ldr r3, [r7, #4] 8015c7c: 2200 movs r2, #0 8015c7e: 669a str r2, [r3, #104] ; 0x68 return ret; 8015c80: 7fbb ldrb r3, [r7, #30] } 8015c82: 4618 mov r0, r3 8015c84: 3720 adds r7, #32 8015c86: 46bd mov sp, r7 8015c88: bd80 pop {r7, pc} 8015c8a: bf00 nop 8015c8c: 00f42400 .word 0x00f42400 08015c90 : * @brief Configure the UART peripheral advanced features. * @param huart UART handle. * @retval None */ void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) { 8015c90: b480 push {r7} 8015c92: b083 sub sp, #12 8015c94: af00 add r7, sp, #0 8015c96: 6078 str r0, [r7, #4] /* Check whether the set of advanced features to configure is properly set */ assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); /* if required, configure TX pin active level inversion */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) 8015c98: 687b ldr r3, [r7, #4] 8015c9a: 6a5b ldr r3, [r3, #36] ; 0x24 8015c9c: f003 0301 and.w r3, r3, #1 8015ca0: 2b00 cmp r3, #0 8015ca2: d00a beq.n 8015cba { assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); 8015ca4: 687b ldr r3, [r7, #4] 8015ca6: 681b ldr r3, [r3, #0] 8015ca8: 687a ldr r2, [r7, #4] 8015caa: 6812 ldr r2, [r2, #0] 8015cac: 6852 ldr r2, [r2, #4] 8015cae: f422 3100 bic.w r1, r2, #131072 ; 0x20000 8015cb2: 687a ldr r2, [r7, #4] 8015cb4: 6a92 ldr r2, [r2, #40] ; 0x28 8015cb6: 430a orrs r2, r1 8015cb8: 605a str r2, [r3, #4] } /* if required, configure RX pin active level inversion */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) 8015cba: 687b ldr r3, [r7, #4] 8015cbc: 6a5b ldr r3, [r3, #36] ; 0x24 8015cbe: f003 0302 and.w r3, r3, #2 8015cc2: 2b00 cmp r3, #0 8015cc4: d00a beq.n 8015cdc { assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); 8015cc6: 687b ldr r3, [r7, #4] 8015cc8: 681b ldr r3, [r3, #0] 8015cca: 687a ldr r2, [r7, #4] 8015ccc: 6812 ldr r2, [r2, #0] 8015cce: 6852 ldr r2, [r2, #4] 8015cd0: f422 3180 bic.w r1, r2, #65536 ; 0x10000 8015cd4: 687a ldr r2, [r7, #4] 8015cd6: 6ad2 ldr r2, [r2, #44] ; 0x2c 8015cd8: 430a orrs r2, r1 8015cda: 605a str r2, [r3, #4] } /* if required, configure data inversion */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) 8015cdc: 687b ldr r3, [r7, #4] 8015cde: 6a5b ldr r3, [r3, #36] ; 0x24 8015ce0: f003 0304 and.w r3, r3, #4 8015ce4: 2b00 cmp r3, #0 8015ce6: d00a beq.n 8015cfe { assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); 8015ce8: 687b ldr r3, [r7, #4] 8015cea: 681b ldr r3, [r3, #0] 8015cec: 687a ldr r2, [r7, #4] 8015cee: 6812 ldr r2, [r2, #0] 8015cf0: 6852 ldr r2, [r2, #4] 8015cf2: f422 2180 bic.w r1, r2, #262144 ; 0x40000 8015cf6: 687a ldr r2, [r7, #4] 8015cf8: 6b12 ldr r2, [r2, #48] ; 0x30 8015cfa: 430a orrs r2, r1 8015cfc: 605a str r2, [r3, #4] } /* if required, configure RX/TX pins swap */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) 8015cfe: 687b ldr r3, [r7, #4] 8015d00: 6a5b ldr r3, [r3, #36] ; 0x24 8015d02: f003 0308 and.w r3, r3, #8 8015d06: 2b00 cmp r3, #0 8015d08: d00a beq.n 8015d20 { assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); 8015d0a: 687b ldr r3, [r7, #4] 8015d0c: 681b ldr r3, [r3, #0] 8015d0e: 687a ldr r2, [r7, #4] 8015d10: 6812 ldr r2, [r2, #0] 8015d12: 6852 ldr r2, [r2, #4] 8015d14: f422 4100 bic.w r1, r2, #32768 ; 0x8000 8015d18: 687a ldr r2, [r7, #4] 8015d1a: 6b52 ldr r2, [r2, #52] ; 0x34 8015d1c: 430a orrs r2, r1 8015d1e: 605a str r2, [r3, #4] } /* if required, configure RX overrun detection disabling */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) 8015d20: 687b ldr r3, [r7, #4] 8015d22: 6a5b ldr r3, [r3, #36] ; 0x24 8015d24: f003 0310 and.w r3, r3, #16 8015d28: 2b00 cmp r3, #0 8015d2a: d00a beq.n 8015d42 { assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); 8015d2c: 687b ldr r3, [r7, #4] 8015d2e: 681b ldr r3, [r3, #0] 8015d30: 687a ldr r2, [r7, #4] 8015d32: 6812 ldr r2, [r2, #0] 8015d34: 6892 ldr r2, [r2, #8] 8015d36: f422 5180 bic.w r1, r2, #4096 ; 0x1000 8015d3a: 687a ldr r2, [r7, #4] 8015d3c: 6b92 ldr r2, [r2, #56] ; 0x38 8015d3e: 430a orrs r2, r1 8015d40: 609a str r2, [r3, #8] } /* if required, configure DMA disabling on reception error */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) 8015d42: 687b ldr r3, [r7, #4] 8015d44: 6a5b ldr r3, [r3, #36] ; 0x24 8015d46: f003 0320 and.w r3, r3, #32 8015d4a: 2b00 cmp r3, #0 8015d4c: d00a beq.n 8015d64 { assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); 8015d4e: 687b ldr r3, [r7, #4] 8015d50: 681b ldr r3, [r3, #0] 8015d52: 687a ldr r2, [r7, #4] 8015d54: 6812 ldr r2, [r2, #0] 8015d56: 6892 ldr r2, [r2, #8] 8015d58: f422 5100 bic.w r1, r2, #8192 ; 0x2000 8015d5c: 687a ldr r2, [r7, #4] 8015d5e: 6bd2 ldr r2, [r2, #60] ; 0x3c 8015d60: 430a orrs r2, r1 8015d62: 609a str r2, [r3, #8] } /* if required, configure auto Baud rate detection scheme */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) 8015d64: 687b ldr r3, [r7, #4] 8015d66: 6a5b ldr r3, [r3, #36] ; 0x24 8015d68: f003 0340 and.w r3, r3, #64 ; 0x40 8015d6c: 2b00 cmp r3, #0 8015d6e: d01a beq.n 8015da6 { assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); 8015d70: 687b ldr r3, [r7, #4] 8015d72: 681b ldr r3, [r3, #0] 8015d74: 687a ldr r2, [r7, #4] 8015d76: 6812 ldr r2, [r2, #0] 8015d78: 6852 ldr r2, [r2, #4] 8015d7a: f422 1180 bic.w r1, r2, #1048576 ; 0x100000 8015d7e: 687a ldr r2, [r7, #4] 8015d80: 6c12 ldr r2, [r2, #64] ; 0x40 8015d82: 430a orrs r2, r1 8015d84: 605a str r2, [r3, #4] /* set auto Baudrate detection parameters if detection is enabled */ if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) 8015d86: 687b ldr r3, [r7, #4] 8015d88: 6c1b ldr r3, [r3, #64] ; 0x40 8015d8a: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000 8015d8e: d10a bne.n 8015da6 { assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); 8015d90: 687b ldr r3, [r7, #4] 8015d92: 681b ldr r3, [r3, #0] 8015d94: 687a ldr r2, [r7, #4] 8015d96: 6812 ldr r2, [r2, #0] 8015d98: 6852 ldr r2, [r2, #4] 8015d9a: f422 01c0 bic.w r1, r2, #6291456 ; 0x600000 8015d9e: 687a ldr r2, [r7, #4] 8015da0: 6c52 ldr r2, [r2, #68] ; 0x44 8015da2: 430a orrs r2, r1 8015da4: 605a str r2, [r3, #4] } } /* if required, configure MSB first on communication line */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) 8015da6: 687b ldr r3, [r7, #4] 8015da8: 6a5b ldr r3, [r3, #36] ; 0x24 8015daa: f003 0380 and.w r3, r3, #128 ; 0x80 8015dae: 2b00 cmp r3, #0 8015db0: d00a beq.n 8015dc8 { assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); 8015db2: 687b ldr r3, [r7, #4] 8015db4: 681b ldr r3, [r3, #0] 8015db6: 687a ldr r2, [r7, #4] 8015db8: 6812 ldr r2, [r2, #0] 8015dba: 6852 ldr r2, [r2, #4] 8015dbc: f422 2100 bic.w r1, r2, #524288 ; 0x80000 8015dc0: 687a ldr r2, [r7, #4] 8015dc2: 6c92 ldr r2, [r2, #72] ; 0x48 8015dc4: 430a orrs r2, r1 8015dc6: 605a str r2, [r3, #4] } } 8015dc8: bf00 nop 8015dca: 370c adds r7, #12 8015dcc: 46bd mov sp, r7 8015dce: f85d 7b04 ldr.w r7, [sp], #4 8015dd2: 4770 bx lr 08015dd4 : * @brief Check the UART Idle State. * @param huart UART handle. * @retval HAL status */ HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) { 8015dd4: b580 push {r7, lr} 8015dd6: b086 sub sp, #24 8015dd8: af02 add r7, sp, #8 8015dda: 6078 str r0, [r7, #4] uint32_t tickstart; /* Initialize the UART ErrorCode */ huart->ErrorCode = HAL_UART_ERROR_NONE; 8015ddc: 687b ldr r3, [r7, #4] 8015dde: 2200 movs r2, #0 8015de0: f8c3 2080 str.w r2, [r3, #128] ; 0x80 /* Init tickstart for timeout management */ tickstart = HAL_GetTick(); 8015de4: f7fb fbfa bl 80115dc 8015de8: 60f8 str r0, [r7, #12] /* Check if the Transmitter is enabled */ if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) 8015dea: 687b ldr r3, [r7, #4] 8015dec: 681b ldr r3, [r3, #0] 8015dee: 681b ldr r3, [r3, #0] 8015df0: f003 0308 and.w r3, r3, #8 8015df4: 2b08 cmp r3, #8 8015df6: d10e bne.n 8015e16 { /* Wait until TEACK flag is set */ if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK) 8015df8: f06f 437e mvn.w r3, #4261412864 ; 0xfe000000 8015dfc: 9300 str r3, [sp, #0] 8015dfe: 68fb ldr r3, [r7, #12] 8015e00: 2200 movs r2, #0 8015e02: f44f 1100 mov.w r1, #2097152 ; 0x200000 8015e06: 6878 ldr r0, [r7, #4] 8015e08: f000 f82d bl 8015e66 8015e0c: 4603 mov r3, r0 8015e0e: 2b00 cmp r3, #0 8015e10: d001 beq.n 8015e16 { /* Timeout occurred */ return HAL_TIMEOUT; 8015e12: 2303 movs r3, #3 8015e14: e023 b.n 8015e5e } } #if defined(USART_ISR_REACK) /* Check if the Receiver is enabled */ if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) 8015e16: 687b ldr r3, [r7, #4] 8015e18: 681b ldr r3, [r3, #0] 8015e1a: 681b ldr r3, [r3, #0] 8015e1c: f003 0304 and.w r3, r3, #4 8015e20: 2b04 cmp r3, #4 8015e22: d10e bne.n 8015e42 { /* Wait until REACK flag is set */ if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK) 8015e24: f06f 437e mvn.w r3, #4261412864 ; 0xfe000000 8015e28: 9300 str r3, [sp, #0] 8015e2a: 68fb ldr r3, [r7, #12] 8015e2c: 2200 movs r2, #0 8015e2e: f44f 0180 mov.w r1, #4194304 ; 0x400000 8015e32: 6878 ldr r0, [r7, #4] 8015e34: f000 f817 bl 8015e66 8015e38: 4603 mov r3, r0 8015e3a: 2b00 cmp r3, #0 8015e3c: d001 beq.n 8015e42 { /* Timeout occurred */ return HAL_TIMEOUT; 8015e3e: 2303 movs r3, #3 8015e40: e00d b.n 8015e5e } } #endif /* Initialize the UART State */ huart->gState = HAL_UART_STATE_READY; 8015e42: 687b ldr r3, [r7, #4] 8015e44: 2220 movs r2, #32 8015e46: 679a str r2, [r3, #120] ; 0x78 huart->RxState = HAL_UART_STATE_READY; 8015e48: 687b ldr r3, [r7, #4] 8015e4a: 2220 movs r2, #32 8015e4c: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 8015e4e: 687b ldr r3, [r7, #4] 8015e50: 2200 movs r2, #0 8015e52: 661a str r2, [r3, #96] ; 0x60 __HAL_UNLOCK(huart); 8015e54: 687b ldr r3, [r7, #4] 8015e56: 2200 movs r2, #0 8015e58: f883 2074 strb.w r2, [r3, #116] ; 0x74 return HAL_OK; 8015e5c: 2300 movs r3, #0 } 8015e5e: 4618 mov r0, r3 8015e60: 3710 adds r7, #16 8015e62: 46bd mov sp, r7 8015e64: bd80 pop {r7, pc} 08015e66 : * @param Timeout Timeout duration * @retval HAL status */ HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus Status, uint32_t Tickstart, uint32_t Timeout) { 8015e66: b580 push {r7, lr} 8015e68: b09c sub sp, #112 ; 0x70 8015e6a: af00 add r7, sp, #0 8015e6c: 60f8 str r0, [r7, #12] 8015e6e: 60b9 str r1, [r7, #8] 8015e70: 603b str r3, [r7, #0] 8015e72: 4613 mov r3, r2 8015e74: 71fb strb r3, [r7, #7] /* Wait until flag is set */ while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) 8015e76: e0a5 b.n 8015fc4 { /* Check for the Timeout */ if (Timeout != HAL_MAX_DELAY) 8015e78: 6fbb ldr r3, [r7, #120] ; 0x78 8015e7a: f1b3 3fff cmp.w r3, #4294967295 8015e7e: f000 80a1 beq.w 8015fc4 { if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 8015e82: f7fb fbab bl 80115dc 8015e86: 4602 mov r2, r0 8015e88: 683b ldr r3, [r7, #0] 8015e8a: 1ad2 subs r2, r2, r3 8015e8c: 6fbb ldr r3, [r7, #120] ; 0x78 8015e8e: 429a cmp r2, r3 8015e90: d802 bhi.n 8015e98 8015e92: 6fbb ldr r3, [r7, #120] ; 0x78 8015e94: 2b00 cmp r3, #0 8015e96: d13e bne.n 8015f16 { /* Disable TXE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts for the interrupt process */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE)); 8015e98: 68fb ldr r3, [r7, #12] 8015e9a: 681b ldr r3, [r3, #0] 8015e9c: 653b str r3, [r7, #80] ; 0x50 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8015e9e: 6d3b ldr r3, [r7, #80] ; 0x50 8015ea0: e853 3f00 ldrex r3, [r3] 8015ea4: 64fb str r3, [r7, #76] ; 0x4c return(result); 8015ea6: 6cfb ldr r3, [r7, #76] ; 0x4c 8015ea8: f423 73d0 bic.w r3, r3, #416 ; 0x1a0 8015eac: 667b str r3, [r7, #100] ; 0x64 8015eae: 68fb ldr r3, [r7, #12] 8015eb0: 681b ldr r3, [r3, #0] 8015eb2: 461a mov r2, r3 8015eb4: 6e7b ldr r3, [r7, #100] ; 0x64 8015eb6: 65fb str r3, [r7, #92] ; 0x5c 8015eb8: 65ba str r2, [r7, #88] ; 0x58 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8015eba: 6db9 ldr r1, [r7, #88] ; 0x58 8015ebc: 6dfa ldr r2, [r7, #92] ; 0x5c 8015ebe: e841 2300 strex r3, r2, [r1] 8015ec2: 657b str r3, [r7, #84] ; 0x54 return(result); 8015ec4: 6d7b ldr r3, [r7, #84] ; 0x54 8015ec6: 2b00 cmp r3, #0 8015ec8: d1e6 bne.n 8015e98 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8015eca: 68fb ldr r3, [r7, #12] 8015ecc: 681b ldr r3, [r3, #0] 8015ece: 3308 adds r3, #8 8015ed0: 63fb str r3, [r7, #60] ; 0x3c __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8015ed2: 6bfb ldr r3, [r7, #60] ; 0x3c 8015ed4: e853 3f00 ldrex r3, [r3] 8015ed8: 63bb str r3, [r7, #56] ; 0x38 return(result); 8015eda: 6bbb ldr r3, [r7, #56] ; 0x38 8015edc: f023 0301 bic.w r3, r3, #1 8015ee0: 663b str r3, [r7, #96] ; 0x60 8015ee2: 68fb ldr r3, [r7, #12] 8015ee4: 681b ldr r3, [r3, #0] 8015ee6: 3308 adds r3, #8 8015ee8: 6e3a ldr r2, [r7, #96] ; 0x60 8015eea: 64ba str r2, [r7, #72] ; 0x48 8015eec: 647b str r3, [r7, #68] ; 0x44 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8015eee: 6c79 ldr r1, [r7, #68] ; 0x44 8015ef0: 6cba ldr r2, [r7, #72] ; 0x48 8015ef2: e841 2300 strex r3, r2, [r1] 8015ef6: 643b str r3, [r7, #64] ; 0x40 return(result); 8015ef8: 6c3b ldr r3, [r7, #64] ; 0x40 8015efa: 2b00 cmp r3, #0 8015efc: d1e5 bne.n 8015eca huart->gState = HAL_UART_STATE_READY; 8015efe: 68fb ldr r3, [r7, #12] 8015f00: 2220 movs r2, #32 8015f02: 679a str r2, [r3, #120] ; 0x78 huart->RxState = HAL_UART_STATE_READY; 8015f04: 68fb ldr r3, [r7, #12] 8015f06: 2220 movs r2, #32 8015f08: 67da str r2, [r3, #124] ; 0x7c __HAL_UNLOCK(huart); 8015f0a: 68fb ldr r3, [r7, #12] 8015f0c: 2200 movs r2, #0 8015f0e: f883 2074 strb.w r2, [r3, #116] ; 0x74 return HAL_TIMEOUT; 8015f12: 2303 movs r3, #3 8015f14: e067 b.n 8015fe6 } if (READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) 8015f16: 68fb ldr r3, [r7, #12] 8015f18: 681b ldr r3, [r3, #0] 8015f1a: 681b ldr r3, [r3, #0] 8015f1c: f003 0304 and.w r3, r3, #4 8015f20: 2b00 cmp r3, #0 8015f22: d04f beq.n 8015fc4 { if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) 8015f24: 68fb ldr r3, [r7, #12] 8015f26: 681b ldr r3, [r3, #0] 8015f28: 69db ldr r3, [r3, #28] 8015f2a: f403 6300 and.w r3, r3, #2048 ; 0x800 8015f2e: f5b3 6f00 cmp.w r3, #2048 ; 0x800 8015f32: d147 bne.n 8015fc4 { /* Clear Receiver Timeout flag*/ __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); 8015f34: 68fb ldr r3, [r7, #12] 8015f36: 681b ldr r3, [r3, #0] 8015f38: f44f 6200 mov.w r2, #2048 ; 0x800 8015f3c: 621a str r2, [r3, #32] /* Disable TXE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts for the interrupt process */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE)); 8015f3e: 68fb ldr r3, [r7, #12] 8015f40: 681b ldr r3, [r3, #0] 8015f42: 62bb str r3, [r7, #40] ; 0x28 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8015f44: 6abb ldr r3, [r7, #40] ; 0x28 8015f46: e853 3f00 ldrex r3, [r3] 8015f4a: 627b str r3, [r7, #36] ; 0x24 return(result); 8015f4c: 6a7b ldr r3, [r7, #36] ; 0x24 8015f4e: f423 73d0 bic.w r3, r3, #416 ; 0x1a0 8015f52: 66fb str r3, [r7, #108] ; 0x6c 8015f54: 68fb ldr r3, [r7, #12] 8015f56: 681b ldr r3, [r3, #0] 8015f58: 461a mov r2, r3 8015f5a: 6efb ldr r3, [r7, #108] ; 0x6c 8015f5c: 637b str r3, [r7, #52] ; 0x34 8015f5e: 633a str r2, [r7, #48] ; 0x30 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8015f60: 6b39 ldr r1, [r7, #48] ; 0x30 8015f62: 6b7a ldr r2, [r7, #52] ; 0x34 8015f64: e841 2300 strex r3, r2, [r1] 8015f68: 62fb str r3, [r7, #44] ; 0x2c return(result); 8015f6a: 6afb ldr r3, [r7, #44] ; 0x2c 8015f6c: 2b00 cmp r3, #0 8015f6e: d1e6 bne.n 8015f3e ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8015f70: 68fb ldr r3, [r7, #12] 8015f72: 681b ldr r3, [r3, #0] 8015f74: 3308 adds r3, #8 8015f76: 617b str r3, [r7, #20] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8015f78: 697b ldr r3, [r7, #20] 8015f7a: e853 3f00 ldrex r3, [r3] 8015f7e: 613b str r3, [r7, #16] return(result); 8015f80: 693b ldr r3, [r7, #16] 8015f82: f023 0301 bic.w r3, r3, #1 8015f86: 66bb str r3, [r7, #104] ; 0x68 8015f88: 68fb ldr r3, [r7, #12] 8015f8a: 681b ldr r3, [r3, #0] 8015f8c: 3308 adds r3, #8 8015f8e: 6eba ldr r2, [r7, #104] ; 0x68 8015f90: 623a str r2, [r7, #32] 8015f92: 61fb str r3, [r7, #28] __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8015f94: 69f9 ldr r1, [r7, #28] 8015f96: 6a3a ldr r2, [r7, #32] 8015f98: e841 2300 strex r3, r2, [r1] 8015f9c: 61bb str r3, [r7, #24] return(result); 8015f9e: 69bb ldr r3, [r7, #24] 8015fa0: 2b00 cmp r3, #0 8015fa2: d1e5 bne.n 8015f70 huart->gState = HAL_UART_STATE_READY; 8015fa4: 68fb ldr r3, [r7, #12] 8015fa6: 2220 movs r2, #32 8015fa8: 679a str r2, [r3, #120] ; 0x78 huart->RxState = HAL_UART_STATE_READY; 8015faa: 68fb ldr r3, [r7, #12] 8015fac: 2220 movs r2, #32 8015fae: 67da str r2, [r3, #124] ; 0x7c huart->ErrorCode = HAL_UART_ERROR_RTO; 8015fb0: 68fb ldr r3, [r7, #12] 8015fb2: 2220 movs r2, #32 8015fb4: f8c3 2080 str.w r2, [r3, #128] ; 0x80 /* Process Unlocked */ __HAL_UNLOCK(huart); 8015fb8: 68fb ldr r3, [r7, #12] 8015fba: 2200 movs r2, #0 8015fbc: f883 2074 strb.w r2, [r3, #116] ; 0x74 return HAL_TIMEOUT; 8015fc0: 2303 movs r3, #3 8015fc2: e010 b.n 8015fe6 while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) 8015fc4: 68fb ldr r3, [r7, #12] 8015fc6: 681b ldr r3, [r3, #0] 8015fc8: 69da ldr r2, [r3, #28] 8015fca: 68bb ldr r3, [r7, #8] 8015fcc: 401a ands r2, r3 8015fce: 68bb ldr r3, [r7, #8] 8015fd0: 429a cmp r2, r3 8015fd2: bf0c ite eq 8015fd4: 2301 moveq r3, #1 8015fd6: 2300 movne r3, #0 8015fd8: b2db uxtb r3, r3 8015fda: 461a mov r2, r3 8015fdc: 79fb ldrb r3, [r7, #7] 8015fde: 429a cmp r2, r3 8015fe0: f43f af4a beq.w 8015e78 } } } } return HAL_OK; 8015fe4: 2300 movs r3, #0 } 8015fe6: 4618 mov r0, r3 8015fe8: 3770 adds r7, #112 ; 0x70 8015fea: 46bd mov sp, r7 8015fec: bd80 pop {r7, pc} 08015fee : * @brief End ongoing Rx transfer on UART peripheral (following error detection or Reception completion). * @param huart UART handle. * @retval None */ static void UART_EndRxTransfer(UART_HandleTypeDef *huart) { 8015fee: b480 push {r7} 8015ff0: b095 sub sp, #84 ; 0x54 8015ff2: af00 add r7, sp, #0 8015ff4: 6078 str r0, [r7, #4] /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); 8015ff6: 687b ldr r3, [r7, #4] 8015ff8: 681b ldr r3, [r3, #0] 8015ffa: 637b str r3, [r7, #52] ; 0x34 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8015ffc: 6b7b ldr r3, [r7, #52] ; 0x34 8015ffe: e853 3f00 ldrex r3, [r3] 8016002: 633b str r3, [r7, #48] ; 0x30 return(result); 8016004: 6b3b ldr r3, [r7, #48] ; 0x30 8016006: f423 7390 bic.w r3, r3, #288 ; 0x120 801600a: 64fb str r3, [r7, #76] ; 0x4c 801600c: 687b ldr r3, [r7, #4] 801600e: 681b ldr r3, [r3, #0] 8016010: 461a mov r2, r3 8016012: 6cfb ldr r3, [r7, #76] ; 0x4c 8016014: 643b str r3, [r7, #64] ; 0x40 8016016: 63fa str r2, [r7, #60] ; 0x3c __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8016018: 6bf9 ldr r1, [r7, #60] ; 0x3c 801601a: 6c3a ldr r2, [r7, #64] ; 0x40 801601c: e841 2300 strex r3, r2, [r1] 8016020: 63bb str r3, [r7, #56] ; 0x38 return(result); 8016022: 6bbb ldr r3, [r7, #56] ; 0x38 8016024: 2b00 cmp r3, #0 8016026: d1e6 bne.n 8015ff6 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8016028: 687b ldr r3, [r7, #4] 801602a: 681b ldr r3, [r3, #0] 801602c: 3308 adds r3, #8 801602e: 623b str r3, [r7, #32] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8016030: 6a3b ldr r3, [r7, #32] 8016032: e853 3f00 ldrex r3, [r3] 8016036: 61fb str r3, [r7, #28] return(result); 8016038: 69fb ldr r3, [r7, #28] 801603a: f023 0301 bic.w r3, r3, #1 801603e: 64bb str r3, [r7, #72] ; 0x48 8016040: 687b ldr r3, [r7, #4] 8016042: 681b ldr r3, [r3, #0] 8016044: 3308 adds r3, #8 8016046: 6cba ldr r2, [r7, #72] ; 0x48 8016048: 62fa str r2, [r7, #44] ; 0x2c 801604a: 62bb str r3, [r7, #40] ; 0x28 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 801604c: 6ab9 ldr r1, [r7, #40] ; 0x28 801604e: 6afa ldr r2, [r7, #44] ; 0x2c 8016050: e841 2300 strex r3, r2, [r1] 8016054: 627b str r3, [r7, #36] ; 0x24 return(result); 8016056: 6a7b ldr r3, [r7, #36] ; 0x24 8016058: 2b00 cmp r3, #0 801605a: d1e5 bne.n 8016028 /* In case of reception waiting for IDLE event, disable also the IDLE IE interrupt source */ if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 801605c: 687b ldr r3, [r7, #4] 801605e: 6e1b ldr r3, [r3, #96] ; 0x60 8016060: 2b01 cmp r3, #1 8016062: d118 bne.n 8016096 { ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 8016064: 687b ldr r3, [r7, #4] 8016066: 681b ldr r3, [r3, #0] 8016068: 60fb str r3, [r7, #12] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 801606a: 68fb ldr r3, [r7, #12] 801606c: e853 3f00 ldrex r3, [r3] 8016070: 60bb str r3, [r7, #8] return(result); 8016072: 68bb ldr r3, [r7, #8] 8016074: f023 0310 bic.w r3, r3, #16 8016078: 647b str r3, [r7, #68] ; 0x44 801607a: 687b ldr r3, [r7, #4] 801607c: 681b ldr r3, [r3, #0] 801607e: 461a mov r2, r3 8016080: 6c7b ldr r3, [r7, #68] ; 0x44 8016082: 61bb str r3, [r7, #24] 8016084: 617a str r2, [r7, #20] __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8016086: 6979 ldr r1, [r7, #20] 8016088: 69ba ldr r2, [r7, #24] 801608a: e841 2300 strex r3, r2, [r1] 801608e: 613b str r3, [r7, #16] return(result); 8016090: 693b ldr r3, [r7, #16] 8016092: 2b00 cmp r3, #0 8016094: d1e6 bne.n 8016064 } /* At end of Rx process, restore huart->RxState to Ready */ huart->RxState = HAL_UART_STATE_READY; 8016096: 687b ldr r3, [r7, #4] 8016098: 2220 movs r2, #32 801609a: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 801609c: 687b ldr r3, [r7, #4] 801609e: 2200 movs r2, #0 80160a0: 661a str r2, [r3, #96] ; 0x60 /* Reset RxIsr function pointer */ huart->RxISR = NULL; 80160a2: 687b ldr r3, [r7, #4] 80160a4: 2200 movs r2, #0 80160a6: 665a str r2, [r3, #100] ; 0x64 } 80160a8: bf00 nop 80160aa: 3754 adds r7, #84 ; 0x54 80160ac: 46bd mov sp, r7 80160ae: f85d 7b04 ldr.w r7, [sp], #4 80160b2: 4770 bx lr 080160b4 : * (To be called at end of DMA Abort procedure following error occurrence). * @param hdma DMA handle. * @retval None */ static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma) { 80160b4: b580 push {r7, lr} 80160b6: b084 sub sp, #16 80160b8: af00 add r7, sp, #0 80160ba: 6078 str r0, [r7, #4] UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 80160bc: 687b ldr r3, [r7, #4] 80160be: 6b9b ldr r3, [r3, #56] ; 0x38 80160c0: 60fb str r3, [r7, #12] huart->RxXferCount = 0U; 80160c2: 68fb ldr r3, [r7, #12] 80160c4: 2200 movs r2, #0 80160c6: f8a3 205a strh.w r2, [r3, #90] ; 0x5a huart->TxXferCount = 0U; 80160ca: 68fb ldr r3, [r7, #12] 80160cc: 2200 movs r2, #0 80160ce: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered error callback*/ huart->ErrorCallback(huart); #else /*Call legacy weak error callback*/ HAL_UART_ErrorCallback(huart); 80160d2: 68f8 ldr r0, [r7, #12] 80160d4: f7f9 ff32 bl 800ff3c #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } 80160d8: bf00 nop 80160da: 3710 adds r7, #16 80160dc: 46bd mov sp, r7 80160de: bd80 pop {r7, pc} 080160e0 : * Abort still ongoing for Rx DMA Handle. * @param hdma DMA handle. * @retval None */ static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma) { 80160e0: b580 push {r7, lr} 80160e2: b084 sub sp, #16 80160e4: af00 add r7, sp, #0 80160e6: 6078 str r0, [r7, #4] UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 80160e8: 687b ldr r3, [r7, #4] 80160ea: 6b9b ldr r3, [r3, #56] ; 0x38 80160ec: 60fb str r3, [r7, #12] huart->hdmatx->XferAbortCallback = NULL; 80160ee: 68fb ldr r3, [r7, #12] 80160f0: 6edb ldr r3, [r3, #108] ; 0x6c 80160f2: 2200 movs r2, #0 80160f4: 651a str r2, [r3, #80] ; 0x50 /* Check if an Abort process is still ongoing */ if (huart->hdmarx != NULL) 80160f6: 68fb ldr r3, [r7, #12] 80160f8: 6f1b ldr r3, [r3, #112] ; 0x70 80160fa: 2b00 cmp r3, #0 80160fc: d004 beq.n 8016108 { if (huart->hdmarx->XferAbortCallback != NULL) 80160fe: 68fb ldr r3, [r7, #12] 8016100: 6f1b ldr r3, [r3, #112] ; 0x70 8016102: 6d1b ldr r3, [r3, #80] ; 0x50 8016104: 2b00 cmp r3, #0 8016106: d11c bne.n 8016142 return; } } /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callback */ huart->TxXferCount = 0U; 8016108: 68fb ldr r3, [r7, #12] 801610a: 2200 movs r2, #0 801610c: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 huart->RxXferCount = 0U; 8016110: 68fb ldr r3, [r7, #12] 8016112: 2200 movs r2, #0 8016114: f8a3 205a strh.w r2, [r3, #90] ; 0x5a /* Reset errorCode */ huart->ErrorCode = HAL_UART_ERROR_NONE; 8016118: 68fb ldr r3, [r7, #12] 801611a: 2200 movs r2, #0 801611c: f8c3 2080 str.w r2, [r3, #128] ; 0x80 /* Clear the Error flags in the ICR register */ __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); 8016120: 68fb ldr r3, [r7, #12] 8016122: 681b ldr r3, [r3, #0] 8016124: 220f movs r2, #15 8016126: 621a str r2, [r3, #32] /* Restore huart->gState and huart->RxState to Ready */ huart->gState = HAL_UART_STATE_READY; 8016128: 68fb ldr r3, [r7, #12] 801612a: 2220 movs r2, #32 801612c: 679a str r2, [r3, #120] ; 0x78 huart->RxState = HAL_UART_STATE_READY; 801612e: 68fb ldr r3, [r7, #12] 8016130: 2220 movs r2, #32 8016132: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 8016134: 68fb ldr r3, [r7, #12] 8016136: 2200 movs r2, #0 8016138: 661a str r2, [r3, #96] ; 0x60 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /* Call registered Abort complete callback */ huart->AbortCpltCallback(huart); #else /* Call legacy weak Abort complete callback */ HAL_UART_AbortCpltCallback(huart); 801613a: 68f8 ldr r0, [r7, #12] 801613c: f7ff fb28 bl 8015790 8016140: e000 b.n 8016144 return; 8016142: bf00 nop #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } 8016144: 3710 adds r7, #16 8016146: 46bd mov sp, r7 8016148: bd80 pop {r7, pc} 0801614a : * Abort still ongoing for Tx DMA Handle. * @param hdma DMA handle. * @retval None */ static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma) { 801614a: b580 push {r7, lr} 801614c: b084 sub sp, #16 801614e: af00 add r7, sp, #0 8016150: 6078 str r0, [r7, #4] UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 8016152: 687b ldr r3, [r7, #4] 8016154: 6b9b ldr r3, [r3, #56] ; 0x38 8016156: 60fb str r3, [r7, #12] huart->hdmarx->XferAbortCallback = NULL; 8016158: 68fb ldr r3, [r7, #12] 801615a: 6f1b ldr r3, [r3, #112] ; 0x70 801615c: 2200 movs r2, #0 801615e: 651a str r2, [r3, #80] ; 0x50 /* Check if an Abort process is still ongoing */ if (huart->hdmatx != NULL) 8016160: 68fb ldr r3, [r7, #12] 8016162: 6edb ldr r3, [r3, #108] ; 0x6c 8016164: 2b00 cmp r3, #0 8016166: d004 beq.n 8016172 { if (huart->hdmatx->XferAbortCallback != NULL) 8016168: 68fb ldr r3, [r7, #12] 801616a: 6edb ldr r3, [r3, #108] ; 0x6c 801616c: 6d1b ldr r3, [r3, #80] ; 0x50 801616e: 2b00 cmp r3, #0 8016170: d124 bne.n 80161bc return; } } /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callback */ huart->TxXferCount = 0U; 8016172: 68fb ldr r3, [r7, #12] 8016174: 2200 movs r2, #0 8016176: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 huart->RxXferCount = 0U; 801617a: 68fb ldr r3, [r7, #12] 801617c: 2200 movs r2, #0 801617e: f8a3 205a strh.w r2, [r3, #90] ; 0x5a /* Reset errorCode */ huart->ErrorCode = HAL_UART_ERROR_NONE; 8016182: 68fb ldr r3, [r7, #12] 8016184: 2200 movs r2, #0 8016186: f8c3 2080 str.w r2, [r3, #128] ; 0x80 /* Clear the Error flags in the ICR register */ __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); 801618a: 68fb ldr r3, [r7, #12] 801618c: 681b ldr r3, [r3, #0] 801618e: 220f movs r2, #15 8016190: 621a str r2, [r3, #32] /* Discard the received data */ __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); 8016192: 68fb ldr r3, [r7, #12] 8016194: 681b ldr r3, [r3, #0] 8016196: 68fa ldr r2, [r7, #12] 8016198: 6812 ldr r2, [r2, #0] 801619a: 6992 ldr r2, [r2, #24] 801619c: f042 0208 orr.w r2, r2, #8 80161a0: 619a str r2, [r3, #24] /* Restore huart->gState and huart->RxState to Ready */ huart->gState = HAL_UART_STATE_READY; 80161a2: 68fb ldr r3, [r7, #12] 80161a4: 2220 movs r2, #32 80161a6: 679a str r2, [r3, #120] ; 0x78 huart->RxState = HAL_UART_STATE_READY; 80161a8: 68fb ldr r3, [r7, #12] 80161aa: 2220 movs r2, #32 80161ac: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 80161ae: 68fb ldr r3, [r7, #12] 80161b0: 2200 movs r2, #0 80161b2: 661a str r2, [r3, #96] ; 0x60 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /* Call registered Abort complete callback */ huart->AbortCpltCallback(huart); #else /* Call legacy weak Abort complete callback */ HAL_UART_AbortCpltCallback(huart); 80161b4: 68f8 ldr r0, [r7, #12] 80161b6: f7ff faeb bl 8015790 80161ba: e000 b.n 80161be return; 80161bc: bf00 nop #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } 80161be: 3710 adds r7, #16 80161c0: 46bd mov sp, r7 80161c2: bd80 pop {r7, pc} 080161c4 : * interruptions have been enabled by HAL_UART_Transmit_IT(). * @param huart UART handle. * @retval None */ static void UART_TxISR_8BIT(UART_HandleTypeDef *huart) { 80161c4: b480 push {r7} 80161c6: b08f sub sp, #60 ; 0x3c 80161c8: af00 add r7, sp, #0 80161ca: 6078 str r0, [r7, #4] /* Check that a Tx process is ongoing */ if (huart->gState == HAL_UART_STATE_BUSY_TX) 80161cc: 687b ldr r3, [r7, #4] 80161ce: 6f9b ldr r3, [r3, #120] ; 0x78 80161d0: 2b21 cmp r3, #33 ; 0x21 80161d2: d14c bne.n 801626e { if (huart->TxXferCount == 0U) 80161d4: 687b ldr r3, [r7, #4] 80161d6: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 80161da: b29b uxth r3, r3 80161dc: 2b00 cmp r3, #0 80161de: d132 bne.n 8016246 { /* Disable the UART Transmit Data Register Empty Interrupt */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE); 80161e0: 687b ldr r3, [r7, #4] 80161e2: 681b ldr r3, [r3, #0] 80161e4: 623b str r3, [r7, #32] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 80161e6: 6a3b ldr r3, [r7, #32] 80161e8: e853 3f00 ldrex r3, [r3] 80161ec: 61fb str r3, [r7, #28] return(result); 80161ee: 69fb ldr r3, [r7, #28] 80161f0: f023 0380 bic.w r3, r3, #128 ; 0x80 80161f4: 637b str r3, [r7, #52] ; 0x34 80161f6: 687b ldr r3, [r7, #4] 80161f8: 681b ldr r3, [r3, #0] 80161fa: 461a mov r2, r3 80161fc: 6b7b ldr r3, [r7, #52] ; 0x34 80161fe: 62fb str r3, [r7, #44] ; 0x2c 8016200: 62ba str r2, [r7, #40] ; 0x28 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8016202: 6ab9 ldr r1, [r7, #40] ; 0x28 8016204: 6afa ldr r2, [r7, #44] ; 0x2c 8016206: e841 2300 strex r3, r2, [r1] 801620a: 627b str r3, [r7, #36] ; 0x24 return(result); 801620c: 6a7b ldr r3, [r7, #36] ; 0x24 801620e: 2b00 cmp r3, #0 8016210: d1e6 bne.n 80161e0 /* Enable the UART Transmit Complete Interrupt */ ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); 8016212: 687b ldr r3, [r7, #4] 8016214: 681b ldr r3, [r3, #0] 8016216: 60fb str r3, [r7, #12] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8016218: 68fb ldr r3, [r7, #12] 801621a: e853 3f00 ldrex r3, [r3] 801621e: 60bb str r3, [r7, #8] return(result); 8016220: 68bb ldr r3, [r7, #8] 8016222: f043 0340 orr.w r3, r3, #64 ; 0x40 8016226: 633b str r3, [r7, #48] ; 0x30 8016228: 687b ldr r3, [r7, #4] 801622a: 681b ldr r3, [r3, #0] 801622c: 461a mov r2, r3 801622e: 6b3b ldr r3, [r7, #48] ; 0x30 8016230: 61bb str r3, [r7, #24] 8016232: 617a str r2, [r7, #20] __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8016234: 6979 ldr r1, [r7, #20] 8016236: 69ba ldr r2, [r7, #24] 8016238: e841 2300 strex r3, r2, [r1] 801623c: 613b str r3, [r7, #16] return(result); 801623e: 693b ldr r3, [r7, #16] 8016240: 2b00 cmp r3, #0 8016242: d1e6 bne.n 8016212 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); huart->pTxBuffPtr++; huart->TxXferCount--; } } } 8016244: e013 b.n 801626e huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); 8016246: 687b ldr r3, [r7, #4] 8016248: 681b ldr r3, [r3, #0] 801624a: 687a ldr r2, [r7, #4] 801624c: 6cd2 ldr r2, [r2, #76] ; 0x4c 801624e: 7812 ldrb r2, [r2, #0] 8016250: 629a str r2, [r3, #40] ; 0x28 huart->pTxBuffPtr++; 8016252: 687b ldr r3, [r7, #4] 8016254: 6cdb ldr r3, [r3, #76] ; 0x4c 8016256: 1c5a adds r2, r3, #1 8016258: 687b ldr r3, [r7, #4] 801625a: 64da str r2, [r3, #76] ; 0x4c huart->TxXferCount--; 801625c: 687b ldr r3, [r7, #4] 801625e: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8016262: b29b uxth r3, r3 8016264: 3b01 subs r3, #1 8016266: b29a uxth r2, r3 8016268: 687b ldr r3, [r7, #4] 801626a: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 } 801626e: bf00 nop 8016270: 373c adds r7, #60 ; 0x3c 8016272: 46bd mov sp, r7 8016274: f85d 7b04 ldr.w r7, [sp], #4 8016278: 4770 bx lr 0801627a : * interruptions have been enabled by HAL_UART_Transmit_IT(). * @param huart UART handle. * @retval None */ static void UART_TxISR_16BIT(UART_HandleTypeDef *huart) { 801627a: b480 push {r7} 801627c: b091 sub sp, #68 ; 0x44 801627e: af00 add r7, sp, #0 8016280: 6078 str r0, [r7, #4] const uint16_t *tmp; /* Check that a Tx process is ongoing */ if (huart->gState == HAL_UART_STATE_BUSY_TX) 8016282: 687b ldr r3, [r7, #4] 8016284: 6f9b ldr r3, [r3, #120] ; 0x78 8016286: 2b21 cmp r3, #33 ; 0x21 8016288: d150 bne.n 801632c { if (huart->TxXferCount == 0U) 801628a: 687b ldr r3, [r7, #4] 801628c: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8016290: b29b uxth r3, r3 8016292: 2b00 cmp r3, #0 8016294: d132 bne.n 80162fc { /* Disable the UART Transmit Data Register Empty Interrupt */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE); 8016296: 687b ldr r3, [r7, #4] 8016298: 681b ldr r3, [r3, #0] 801629a: 627b str r3, [r7, #36] ; 0x24 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 801629c: 6a7b ldr r3, [r7, #36] ; 0x24 801629e: e853 3f00 ldrex r3, [r3] 80162a2: 623b str r3, [r7, #32] return(result); 80162a4: 6a3b ldr r3, [r7, #32] 80162a6: f023 0380 bic.w r3, r3, #128 ; 0x80 80162aa: 63fb str r3, [r7, #60] ; 0x3c 80162ac: 687b ldr r3, [r7, #4] 80162ae: 681b ldr r3, [r3, #0] 80162b0: 461a mov r2, r3 80162b2: 6bfb ldr r3, [r7, #60] ; 0x3c 80162b4: 633b str r3, [r7, #48] ; 0x30 80162b6: 62fa str r2, [r7, #44] ; 0x2c __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 80162b8: 6af9 ldr r1, [r7, #44] ; 0x2c 80162ba: 6b3a ldr r2, [r7, #48] ; 0x30 80162bc: e841 2300 strex r3, r2, [r1] 80162c0: 62bb str r3, [r7, #40] ; 0x28 return(result); 80162c2: 6abb ldr r3, [r7, #40] ; 0x28 80162c4: 2b00 cmp r3, #0 80162c6: d1e6 bne.n 8016296 /* Enable the UART Transmit Complete Interrupt */ ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); 80162c8: 687b ldr r3, [r7, #4] 80162ca: 681b ldr r3, [r3, #0] 80162cc: 613b str r3, [r7, #16] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 80162ce: 693b ldr r3, [r7, #16] 80162d0: e853 3f00 ldrex r3, [r3] 80162d4: 60fb str r3, [r7, #12] return(result); 80162d6: 68fb ldr r3, [r7, #12] 80162d8: f043 0340 orr.w r3, r3, #64 ; 0x40 80162dc: 63bb str r3, [r7, #56] ; 0x38 80162de: 687b ldr r3, [r7, #4] 80162e0: 681b ldr r3, [r3, #0] 80162e2: 461a mov r2, r3 80162e4: 6bbb ldr r3, [r7, #56] ; 0x38 80162e6: 61fb str r3, [r7, #28] 80162e8: 61ba str r2, [r7, #24] __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 80162ea: 69b9 ldr r1, [r7, #24] 80162ec: 69fa ldr r2, [r7, #28] 80162ee: e841 2300 strex r3, r2, [r1] 80162f2: 617b str r3, [r7, #20] return(result); 80162f4: 697b ldr r3, [r7, #20] 80162f6: 2b00 cmp r3, #0 80162f8: d1e6 bne.n 80162c8 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); huart->pTxBuffPtr += 2U; huart->TxXferCount--; } } } 80162fa: e017 b.n 801632c tmp = (const uint16_t *) huart->pTxBuffPtr; 80162fc: 687b ldr r3, [r7, #4] 80162fe: 6cdb ldr r3, [r3, #76] ; 0x4c 8016300: 637b str r3, [r7, #52] ; 0x34 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); 8016302: 687b ldr r3, [r7, #4] 8016304: 681b ldr r3, [r3, #0] 8016306: 6b7a ldr r2, [r7, #52] ; 0x34 8016308: 8812 ldrh r2, [r2, #0] 801630a: f3c2 0208 ubfx r2, r2, #0, #9 801630e: 629a str r2, [r3, #40] ; 0x28 huart->pTxBuffPtr += 2U; 8016310: 687b ldr r3, [r7, #4] 8016312: 6cdb ldr r3, [r3, #76] ; 0x4c 8016314: 1c9a adds r2, r3, #2 8016316: 687b ldr r3, [r7, #4] 8016318: 64da str r2, [r3, #76] ; 0x4c huart->TxXferCount--; 801631a: 687b ldr r3, [r7, #4] 801631c: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8016320: b29b uxth r3, r3 8016322: 3b01 subs r3, #1 8016324: b29a uxth r2, r3 8016326: 687b ldr r3, [r7, #4] 8016328: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 } 801632c: bf00 nop 801632e: 3744 adds r7, #68 ; 0x44 8016330: 46bd mov sp, r7 8016332: f85d 7b04 ldr.w r7, [sp], #4 8016336: 4770 bx lr 08016338 : * @param huart pointer to a UART_HandleTypeDef structure that contains * the configuration information for the specified UART module. * @retval None */ static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) { 8016338: b580 push {r7, lr} 801633a: b088 sub sp, #32 801633c: af00 add r7, sp, #0 801633e: 6078 str r0, [r7, #4] /* Disable the UART Transmit Complete Interrupt */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); 8016340: 687b ldr r3, [r7, #4] 8016342: 681b ldr r3, [r3, #0] 8016344: 60fb str r3, [r7, #12] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8016346: 68fb ldr r3, [r7, #12] 8016348: e853 3f00 ldrex r3, [r3] 801634c: 60bb str r3, [r7, #8] return(result); 801634e: 68bb ldr r3, [r7, #8] 8016350: f023 0340 bic.w r3, r3, #64 ; 0x40 8016354: 61fb str r3, [r7, #28] 8016356: 687b ldr r3, [r7, #4] 8016358: 681b ldr r3, [r3, #0] 801635a: 461a mov r2, r3 801635c: 69fb ldr r3, [r7, #28] 801635e: 61bb str r3, [r7, #24] 8016360: 617a str r2, [r7, #20] __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8016362: 6979 ldr r1, [r7, #20] 8016364: 69ba ldr r2, [r7, #24] 8016366: e841 2300 strex r3, r2, [r1] 801636a: 613b str r3, [r7, #16] return(result); 801636c: 693b ldr r3, [r7, #16] 801636e: 2b00 cmp r3, #0 8016370: d1e6 bne.n 8016340 /* Tx process is ended, restore huart->gState to Ready */ huart->gState = HAL_UART_STATE_READY; 8016372: 687b ldr r3, [r7, #4] 8016374: 2220 movs r2, #32 8016376: 679a str r2, [r3, #120] ; 0x78 /* Cleat TxISR function pointer */ huart->TxISR = NULL; 8016378: 687b ldr r3, [r7, #4] 801637a: 2200 movs r2, #0 801637c: 669a str r2, [r3, #104] ; 0x68 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered Tx complete callback*/ huart->TxCpltCallback(huart); #else /*Call legacy weak Tx complete callback*/ HAL_UART_TxCpltCallback(huart); 801637e: 6878 ldr r0, [r7, #4] 8016380: f7f9 fdb6 bl 800fef0 #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } 8016384: bf00 nop 8016386: 3720 adds r7, #32 8016388: 46bd mov sp, r7 801638a: bd80 pop {r7, pc} 0801638c : .section .text.Reset_Handler .weak Reset_Handler .type Reset_Handler, %function Reset_Handler: ldr sp, =_estack /* set stack pointer */ 801638c: f8df d034 ldr.w sp, [pc, #52] ; 80163c4 /* Copy the data segment initializers from flash to SRAM */ movs r1, #0 8016390: 2100 movs r1, #0 b LoopCopyDataInit 8016392: e003 b.n 801639c 08016394 : CopyDataInit: ldr r3, =_sidata 8016394: 4b0c ldr r3, [pc, #48] ; (80163c8 ) ldr r3, [r3, r1] 8016396: 585b ldr r3, [r3, r1] str r3, [r0, r1] 8016398: 5043 str r3, [r0, r1] adds r1, r1, #4 801639a: 3104 adds r1, #4 0801639c : LoopCopyDataInit: ldr r0, =_sdata 801639c: 480b ldr r0, [pc, #44] ; (80163cc ) ldr r3, =_edata 801639e: 4b0c ldr r3, [pc, #48] ; (80163d0 ) adds r2, r0, r1 80163a0: 1842 adds r2, r0, r1 cmp r2, r3 80163a2: 429a cmp r2, r3 bcc CopyDataInit 80163a4: d3f6 bcc.n 8016394 ldr r2, =_sbss 80163a6: 4a0b ldr r2, [pc, #44] ; (80163d4 ) b LoopFillZerobss 80163a8: e002 b.n 80163b0 080163aa : /* Zero fill the bss segment. */ FillZerobss: movs r3, #0 80163aa: 2300 movs r3, #0 str r3, [r2], #4 80163ac: f842 3b04 str.w r3, [r2], #4 080163b0 : LoopFillZerobss: ldr r3, = _ebss 80163b0: 4b09 ldr r3, [pc, #36] ; (80163d8 ) cmp r2, r3 80163b2: 429a cmp r2, r3 bcc FillZerobss 80163b4: d3f9 bcc.n 80163aa /* Call the clock system initialization function.*/ bl SystemInit 80163b6: f7f9 fadd bl 800f974 /* Call static constructors */ bl __libc_init_array 80163ba: f000 f85f bl 801647c <__libc_init_array> /* Call the application's entry point.*/ bl main 80163be: f7ef fbcb bl 8005b58
bx lr 80163c2: 4770 bx lr ldr sp, =_estack /* set stack pointer */ 80163c4: 20080000 .word 0x20080000 ldr r3, =_sidata 80163c8: 0802fd2c .word 0x0802fd2c ldr r0, =_sdata 80163cc: 20020000 .word 0x20020000 ldr r3, =_edata 80163d0: 200209a8 .word 0x200209a8 ldr r2, =_sbss 80163d4: 200209a8 .word 0x200209a8 ldr r3, = _ebss 80163d8: 2006c6e4 .word 0x2006c6e4 080163dc : * @retval None */ .section .text.Default_Handler,"ax",%progbits Default_Handler: Infinite_Loop: b Infinite_Loop 80163dc: e7fe b.n 80163dc ... 080163e0 : 80163e0: ee10 2a10 vmov r2, s0 80163e4: f3c2 51c7 ubfx r1, r2, #23, #8 80163e8: 397f subs r1, #127 ; 0x7f 80163ea: 2916 cmp r1, #22 80163ec: b510 push {r4, lr} 80163ee: ee10 3a10 vmov r3, s0 80163f2: dc0c bgt.n 801640e 80163f4: 2900 cmp r1, #0 80163f6: da05 bge.n 8016404 80163f8: f002 4300 and.w r3, r2, #2147483648 ; 0x80000000 80163fc: 6003 str r3, [r0, #0] 80163fe: ee00 2a10 vmov s0, r2 8016402: bd10 pop {r4, pc} 8016404: 4c09 ldr r4, [pc, #36] ; (801642c ) 8016406: fa44 f101 asr.w r1, r4, r1 801640a: 420a tst r2, r1 801640c: d103 bne.n 8016416 801640e: 6002 str r2, [r0, #0] 8016410: f003 4200 and.w r2, r3, #2147483648 ; 0x80000000 8016414: e7f3 b.n 80163fe 8016416: ea22 0301 bic.w r3, r2, r1 801641a: ee07 3a10 vmov s14, r3 801641e: ee70 7a47 vsub.f32 s15, s0, s14 8016422: 6003 str r3, [r0, #0] 8016424: ee17 2a90 vmov r2, s15 8016428: e7e9 b.n 80163fe 801642a: bf00 nop 801642c: 007fffff .word 0x007fffff 08016430 : 8016430: ee10 0a10 vmov r0, s0 8016434: f3c0 53c7 ubfx r3, r0, #23, #8 8016438: f1a3 027f sub.w r2, r3, #127 ; 0x7f 801643c: 2a16 cmp r2, #22 801643e: dc15 bgt.n 801646c 8016440: 2a00 cmp r2, #0 8016442: da08 bge.n 8016456 8016444: 3201 adds r2, #1 8016446: f000 4300 and.w r3, r0, #2147483648 ; 0x80000000 801644a: d101 bne.n 8016450 801644c: f043 537e orr.w r3, r3, #1065353216 ; 0x3f800000 8016450: ee00 3a10 vmov s0, r3 8016454: 4770 bx lr 8016456: 4908 ldr r1, [pc, #32] ; (8016478 ) 8016458: 4111 asrs r1, r2 801645a: 4208 tst r0, r1 801645c: d0fa beq.n 8016454 801645e: f44f 0380 mov.w r3, #4194304 ; 0x400000 8016462: 4113 asrs r3, r2 8016464: 4403 add r3, r0 8016466: ea23 0301 bic.w r3, r3, r1 801646a: e7f1 b.n 8016450 801646c: 2a80 cmp r2, #128 ; 0x80 801646e: d1f1 bne.n 8016454 8016470: ee30 0a00 vadd.f32 s0, s0, s0 8016474: 4770 bx lr 8016476: bf00 nop 8016478: 007fffff .word 0x007fffff 0801647c <__libc_init_array>: 801647c: b570 push {r4, r5, r6, lr} 801647e: 4e0d ldr r6, [pc, #52] ; (80164b4 <__libc_init_array+0x38>) 8016480: 4c0d ldr r4, [pc, #52] ; (80164b8 <__libc_init_array+0x3c>) 8016482: 1ba4 subs r4, r4, r6 8016484: 10a4 asrs r4, r4, #2 8016486: 2500 movs r5, #0 8016488: 42a5 cmp r5, r4 801648a: d109 bne.n 80164a0 <__libc_init_array+0x24> 801648c: 4e0b ldr r6, [pc, #44] ; (80164bc <__libc_init_array+0x40>) 801648e: 4c0c ldr r4, [pc, #48] ; (80164c0 <__libc_init_array+0x44>) 8016490: f000 f834 bl 80164fc <_init> 8016494: 1ba4 subs r4, r4, r6 8016496: 10a4 asrs r4, r4, #2 8016498: 2500 movs r5, #0 801649a: 42a5 cmp r5, r4 801649c: d105 bne.n 80164aa <__libc_init_array+0x2e> 801649e: bd70 pop {r4, r5, r6, pc} 80164a0: f856 3025 ldr.w r3, [r6, r5, lsl #2] 80164a4: 4798 blx r3 80164a6: 3501 adds r5, #1 80164a8: e7ee b.n 8016488 <__libc_init_array+0xc> 80164aa: f856 3025 ldr.w r3, [r6, r5, lsl #2] 80164ae: 4798 blx r3 80164b0: 3501 adds r5, #1 80164b2: e7f2 b.n 801649a <__libc_init_array+0x1e> 80164b4: 0802fd24 .word 0x0802fd24 80164b8: 0802fd24 .word 0x0802fd24 80164bc: 0802fd24 .word 0x0802fd24 80164c0: 0802fd28 .word 0x0802fd28 080164c4 : 80164c4: b510 push {r4, lr} 80164c6: 1e43 subs r3, r0, #1 80164c8: 440a add r2, r1 80164ca: 4291 cmp r1, r2 80164cc: d100 bne.n 80164d0 80164ce: bd10 pop {r4, pc} 80164d0: f811 4b01 ldrb.w r4, [r1], #1 80164d4: f803 4f01 strb.w r4, [r3, #1]! 80164d8: e7f7 b.n 80164ca 080164da : 80164da: 4402 add r2, r0 80164dc: 4603 mov r3, r0 80164de: 4293 cmp r3, r2 80164e0: d100 bne.n 80164e4 80164e2: 4770 bx lr 80164e4: f803 1b01 strb.w r1, [r3], #1 80164e8: e7f9 b.n 80164de 080164ea : 80164ea: 4603 mov r3, r0 80164ec: f811 2b01 ldrb.w r2, [r1], #1 80164f0: f803 2b01 strb.w r2, [r3], #1 80164f4: 2a00 cmp r2, #0 80164f6: d1f9 bne.n 80164ec 80164f8: 4770 bx lr ... 080164fc <_init>: 80164fc: b5f8 push {r3, r4, r5, r6, r7, lr} 80164fe: bf00 nop 8016500: bcf8 pop {r3, r4, r5, r6, r7} 8016502: bc08 pop {r3} 8016504: 469e mov lr, r3 8016506: 4770 bx lr 08016508 <_fini>: 8016508: b5f8 push {r3, r4, r5, r6, r7, lr} 801650a: bf00 nop 801650c: bcf8 pop {r3, r4, r5, r6, r7} 801650e: bc08 pop {r3} 8016510: 469e mov lr, r3 8016512: 4770 bx lr