F203 VER 4.elf: file format elf32-littlearm Sections: Idx Name Size VMA LMA File off Algn 0 .isr_vector 000001f8 08000000 08000000 00010000 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA 1 .text 000162a4 080001f8 080001f8 000101f8 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE 2 .rodata 00019808 0801649c 0801649c 0002649c 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 3 .ARM 00000008 0802fca4 0802fca4 0003fca4 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 4 .init_array 00000004 0802fcac 0802fcac 0003fcac 2**2 CONTENTS, ALLOC, LOAD, DATA 5 .fini_array 00000004 0802fcb0 0802fcb0 0003fcb0 2**2 CONTENTS, ALLOC, LOAD, DATA 6 .data 000009a8 20020000 0802fcb4 00040000 2**2 CONTENTS, ALLOC, LOAD, DATA 7 .dtcmram 00000000 20000000 20000000 000409a8 2**0 CONTENTS 8 .sram2 00000000 2007c000 2007c000 000409a8 2**0 CONTENTS 9 .bss 0004bd3c 200209a8 200209a8 000409a8 2**2 ALLOC 10 ._user_heap_stack 00000600 2006c6e4 2006c6e4 000409a8 2**0 ALLOC 11 .ARM.attributes 0000002e 00000000 00000000 000409a8 2**0 CONTENTS, READONLY 12 .debug_info 000305ea 00000000 00000000 000409d6 2**0 CONTENTS, READONLY, DEBUGGING 13 .debug_abbrev 0000457a 00000000 00000000 00070fc0 2**0 CONTENTS, READONLY, DEBUGGING 14 .debug_aranges 00001650 00000000 00000000 00075540 2**3 CONTENTS, READONLY, DEBUGGING 15 .debug_ranges 00001480 00000000 00000000 00076b90 2**3 CONTENTS, READONLY, DEBUGGING 16 .debug_line 0000ef6e 00000000 00000000 00078010 2**0 CONTENTS, READONLY, DEBUGGING 17 .debug_str 00009231 00000000 00000000 00086f7e 2**0 CONTENTS, READONLY, DEBUGGING 18 .comment 0000007c 00000000 00000000 000901af 2**0 CONTENTS, READONLY 19 .debug_frame 00005c8c 00000000 00000000 0009022c 2**2 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: 080001f8 <__do_global_dtors_aux>: 80001f8: b510 push {r4, lr} 80001fa: 4c05 ldr r4, [pc, #20] ; (8000210 <_isr_vector_flash_end+0x18>) 80001fc: 7823 ldrb r3, [r4, #0] 80001fe: b933 cbnz r3, 800020e <__do_global_dtors_aux+0x16> 8000200: 4b04 ldr r3, [pc, #16] ; (8000214 <_isr_vector_flash_end+0x1c>) 8000202: b113 cbz r3, 800020a <__do_global_dtors_aux+0x12> 8000204: 4804 ldr r0, [pc, #16] ; (8000218 <_isr_vector_flash_end+0x20>) 8000206: f3af 8000 nop.w 800020a: 2301 movs r3, #1 800020c: 7023 strb r3, [r4, #0] 800020e: bd10 pop {r4, pc} 8000210: 200209a8 .word 0x200209a8 8000214: 00000000 .word 0x00000000 8000218: 08016484 .word 0x08016484 0800021c : 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: 08016484 .word 0x08016484 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 fa83 bl 8004a6c 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 fb31 bl 8012bd4 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 fb12 bl 8012ba4 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 fb21 bl 8012bd4 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 fb1c bl 8012bd4 HAL_Delay(300); 800059c: f44f 7096 mov.w r0, #300 ; 0x12c 80005a0: f010 ffec bl 801157c 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 fb3f bl 8011c78 80005fa: 4603 mov r3, r0 80005fc: 2b00 cmp r3, #0 80005fe: d001 beq.n 8000604 { Error_Handler(); 8000600: f005 fbf4 bl 8005dec } if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK) 8000604: 2101 movs r1, #1 8000606: 4805 ldr r0, [pc, #20] ; (800061c ) 8000608: f011 fca4 bl 8011f54 800060c: 4603 mov r3, r0 800060e: 2b00 cmp r3, #0 8000610: d001 beq.n 8000616 { Error_Handler(); 8000612: f005 fbeb bl 8005dec } } 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: f011 ffc4 bl 8012610 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 fde4 bl 801227c 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 ff2d bl 8012530 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 fd61 bl 80121c4 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 fdd3 bl 80122c0 __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 fe84 bl 801644c 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 f9b6 bl 8012bd4 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 f9b0 bl 8012bd4 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 f9ab bl 8012bd4 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 f9a5 bl 8012bd4 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 f99f bl 8012bd4 /*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: f011 ffcf bl 8012850 /*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 ffc0 bl 8012850 /*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 ffb1 bl 8012850 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 ffa2 bl 8012850 /*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 ff96 bl 8012850 /*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 ff88 bl 8012850 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 f944 bl 8012bd4 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 f93f bl 8012bd4 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 f939 bl 8012bd4 } 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 f920 bl 8012bd4 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 f91b bl 8012bd4 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 f916 bl 8012bd4 } 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 f8e5 bl 8012ba4 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 f8f3 bl 8012bd4 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 f8ee bl 8012bd4 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 f8e9 bl 8012bd4 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 f8e4 bl 8012bd4 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 f8c7 bl 8012ba4 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 f8d3 bl 8012bd4 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 f8ce bl 8012bd4 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 f8b1 bl 8012ba4 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 f8bd bl 8012bd4 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 f8b8 bl 8012bd4 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 f89b bl 8012ba4 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 f8a7 bl 8012bd4 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 fb9d bl 80104d4 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 fb38 bl 80104d4 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 facd bl 80104d4 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 fa75 bl 80104d4 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 f9e7 bl 80104d4 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 f95f bl 80104d4 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 f8e3 bl 80104d4 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 f85c bl 80104d4 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 ff10 bl 80104d4 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 feb8 bl 80104d4 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 fe55 bl 80104d4 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 fdf0 bl 80104d4 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 f859 bl 8003a48 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 fb20 bl 801644c 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 fe68 bl 8010b30 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 faea bl 801644c if(menupos < Kpt_1) 8001e78: e1ce b.n 8002218 WriteChannel(Ch1); 8001e7a: 2000 movs r0, #0 8001e7c: f00e fb2a bl 80104d4 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 fac6 bl 801644c 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 fe0e bl 8010b30 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 fa90 bl 801644c if(menupos < Kpt_2) 8001f2c: e174 b.n 8002218 WriteChannel(Ch2); 8001f2e: 2001 movs r0, #1 8001f30: f00e fad0 bl 80104d4 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 fa7d bl 801644c 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 fdc5 bl 8010b30 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 fa47 bl 801644c if(menupos < Kpt_3) 8001fbe: e12b b.n 8002218 WriteChannel(Ch3); 8001fc0: 2002 movs r0, #2 8001fc2: f00e fa87 bl 80104d4 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 fa34 bl 801644c 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 fd7a bl 8010b30 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 f9fc bl 801644c break; 8002054: e10d b.n 8002272 WriteChannel(Ch4); 8002056: 2003 movs r0, #3 8002058: f00e fa3c bl 80104d4 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 fe7d bl 8010db8 break; 80020be: e0d8 b.n 8002272 CalibrOFF(); 80020c0: f00f f8f4 bl 80112ac 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 fe4a bl 8010db8 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 ff7a bl 801103c 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 ff5b bl 801103c 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 ff49 bl 801103c 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 ff37 bl 801103c 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 ff25 bl 801103c 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 ff13 bl 801103c 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 f8f3 bl 80104d4 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 f89e bl 80104d4 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 f859 bl 80104d4 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 f814 bl 80104d4 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: f00d ffc4 bl 80104d4 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 ff7f bl 80104d4 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 ff3a bl 80104d4 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 fef5 bl 80104d4 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 feb0 bl 80104d4 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 fe5c bl 80104d4 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 fe17 bl 80104d4 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 fdd2 bl 80104d4 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 fd8d bl 80104d4 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 fd49 bl 80104d4 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 fd08 bl 80104d4 } 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 fccd bl 80104d4 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 fc89 bl 80104d4 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 fc3d bl 80104d4 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 fc09 bl 80104d4 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: 4baf ldr r3, [pc, #700] ; (8003158 ) 8002e9a: 681b ldr r3, [r3, #0] 8002e9c: 4aaf ldr r2, [pc, #700] ; (800315c ) 8002e9e: 015b lsls r3, r3, #5 8002ea0: 4413 add r3, r2 8002ea2: 3318 adds r3, #24 8002ea4: edd3 7a00 vldr s15, [r3] 8002ea8: ed9f 7aad vldr s14, [pc, #692] ; 8003160 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: 4ba8 ldr r3, [pc, #672] ; (8003158 ) 8002eb8: 681b ldr r3, [r3, #0] 8002eba: 4aa8 ldr r2, [pc, #672] ; (800315c ) 8002ebc: 015b lsls r3, r3, #5 8002ebe: 4413 add r3, r2 8002ec0: 3318 adds r3, #24 8002ec2: 4aa8 ldr r2, [pc, #672] ; (8003164 ) 8002ec4: 601a str r2, [r3, #0] s = 99999; 8002ec6: 4ba8 ldr r3, [pc, #672] ; (8003168 ) 8002ec8: 61fb str r3, [r7, #28] ipt = 0; 8002eca: 2300 movs r3, #0 8002ecc: 607b str r3, [r7, #4] } ikdt = (s / 10000); 8002ece: 69fb ldr r3, [r7, #28] 8002ed0: 4aa6 ldr r2, [pc, #664] ; (800316c ) 8002ed2: fba2 2303 umull r2, r3, r2, r3 8002ed6: 0b5b lsrs r3, r3, #13 8002ed8: 61bb str r3, [r7, #24] ikt = (s % 10000 / 1000); 8002eda: 69fa ldr r2, [r7, #28] 8002edc: 4ba3 ldr r3, [pc, #652] ; (800316c ) 8002ede: fba3 1302 umull r1, r3, r3, r2 8002ee2: 0b5b lsrs r3, r3, #13 8002ee4: f242 7110 movw r1, #10000 ; 0x2710 8002ee8: fb01 f303 mul.w r3, r1, r3 8002eec: 1ad3 subs r3, r2, r3 8002eee: 4aa0 ldr r2, [pc, #640] ; (8003170 ) 8002ef0: fba2 2303 umull r2, r3, r2, r3 8002ef4: 099b lsrs r3, r3, #6 8002ef6: 617b str r3, [r7, #20] iks = (s % 10000 % 1000 / 100); 8002ef8: 69fa ldr r2, [r7, #28] 8002efa: 4b9c ldr r3, [pc, #624] ; (800316c ) 8002efc: fba3 1302 umull r1, r3, r3, r2 8002f00: 0b5b lsrs r3, r3, #13 8002f02: f242 7110 movw r1, #10000 ; 0x2710 8002f06: fb01 f303 mul.w r3, r1, r3 8002f0a: 1ad3 subs r3, r2, r3 8002f0c: 4a98 ldr r2, [pc, #608] ; (8003170 ) 8002f0e: fba2 1203 umull r1, r2, r2, r3 8002f12: 0992 lsrs r2, r2, #6 8002f14: f44f 717a mov.w r1, #1000 ; 0x3e8 8002f18: fb01 f202 mul.w r2, r1, r2 8002f1c: 1a9a subs r2, r3, r2 8002f1e: 4b95 ldr r3, [pc, #596] ; (8003174 ) 8002f20: fba3 2302 umull r2, r3, r3, r2 8002f24: 095b lsrs r3, r3, #5 8002f26: 613b str r3, [r7, #16] ikd = (s % 10000 % 1000 % 100 / 10); 8002f28: 69fb ldr r3, [r7, #28] 8002f2a: 4a90 ldr r2, [pc, #576] ; (800316c ) 8002f2c: fba2 1203 umull r1, r2, r2, r3 8002f30: 0b52 lsrs r2, r2, #13 8002f32: f242 7110 movw r1, #10000 ; 0x2710 8002f36: fb01 f202 mul.w r2, r1, r2 8002f3a: 1a9a subs r2, r3, r2 8002f3c: 4b8c ldr r3, [pc, #560] ; (8003170 ) 8002f3e: fba3 1302 umull r1, r3, r3, r2 8002f42: 099b lsrs r3, r3, #6 8002f44: f44f 717a mov.w r1, #1000 ; 0x3e8 8002f48: fb01 f303 mul.w r3, r1, r3 8002f4c: 1ad3 subs r3, r2, r3 8002f4e: 4a89 ldr r2, [pc, #548] ; (8003174 ) 8002f50: fba2 1203 umull r1, r2, r2, r3 8002f54: 0952 lsrs r2, r2, #5 8002f56: 2164 movs r1, #100 ; 0x64 8002f58: fb01 f202 mul.w r2, r1, r2 8002f5c: 1a9a subs r2, r3, r2 8002f5e: 4b86 ldr r3, [pc, #536] ; (8003178 ) 8002f60: fba3 2302 umull r2, r3, r3, r2 8002f64: 08db lsrs r3, r3, #3 8002f66: 60fb str r3, [r7, #12] ike = (s % 10000 % 1000 % 100 % 10); 8002f68: 69fb ldr r3, [r7, #28] 8002f6a: 4a80 ldr r2, [pc, #512] ; (800316c ) 8002f6c: fba2 1203 umull r1, r2, r2, r3 8002f70: 0b52 lsrs r2, r2, #13 8002f72: f242 7110 movw r1, #10000 ; 0x2710 8002f76: fb01 f202 mul.w r2, r1, r2 8002f7a: 1a9a subs r2, r3, r2 8002f7c: 4b7c ldr r3, [pc, #496] ; (8003170 ) 8002f7e: fba3 1302 umull r1, r3, r3, r2 8002f82: 099b lsrs r3, r3, #6 8002f84: f44f 717a mov.w r1, #1000 ; 0x3e8 8002f88: fb01 f303 mul.w r3, r1, r3 8002f8c: 1ad3 subs r3, r2, r3 8002f8e: 4a79 ldr r2, [pc, #484] ; (8003174 ) 8002f90: fba2 1203 umull r1, r2, r2, r3 8002f94: 0952 lsrs r2, r2, #5 8002f96: 2164 movs r1, #100 ; 0x64 8002f98: fb01 f202 mul.w r2, r1, r2 8002f9c: 1a9a subs r2, r3, r2 8002f9e: 4b76 ldr r3, [pc, #472] ; (8003178 ) 8002fa0: fba3 1302 umull r1, r3, r3, r2 8002fa4: 08d9 lsrs r1, r3, #3 8002fa6: 460b mov r3, r1 8002fa8: 009b lsls r3, r3, #2 8002faa: 440b add r3, r1 8002fac: 005b lsls r3, r3, #1 8002fae: 1ad3 subs r3, r2, r3 8002fb0: 60bb str r3, [r7, #8] if(menupos == Kikdt_1 || menupos == Kikdt_2 || menupos == Kikdt_3 || menupos == Kikdt_4) 8002fb2: 4b72 ldr r3, [pc, #456] ; (800317c ) 8002fb4: 781b ldrb r3, [r3, #0] 8002fb6: b2db uxtb r3, r3 8002fb8: 2b02 cmp r3, #2 8002fba: d00f beq.n 8002fdc 8002fbc: 4b6f ldr r3, [pc, #444] ; (800317c ) 8002fbe: 781b ldrb r3, [r3, #0] 8002fc0: b2db uxtb r3, r3 8002fc2: 2b0a cmp r3, #10 8002fc4: d00a beq.n 8002fdc 8002fc6: 4b6d ldr r3, [pc, #436] ; (800317c ) 8002fc8: 781b ldrb r3, [r3, #0] 8002fca: b2db uxtb r3, r3 8002fcc: 2b12 cmp r3, #18 8002fce: d005 beq.n 8002fdc 8002fd0: 4b6a ldr r3, [pc, #424] ; (800317c ) 8002fd2: 781b ldrb r3, [r3, #0] 8002fd4: b2db uxtb r3, r3 8002fd6: 2b1a cmp r3, #26 8002fd8: f040 80dc bne.w 8003194 { 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: 4b4e ldr r3, [pc, #312] ; (8003158 ) 800301e: 681b ldr r3, [r3, #0] 8003020: 69fa ldr r2, [r7, #28] 8003022: ee07 2a90 vmov s15, r2 8003026: eef8 7a67 vcvt.f32.u32 s15, s15 800302a: 4a4c ldr r2, [pc, #304] ; (800315c ) 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: 4b46 ldr r3, [pc, #280] ; (8003158 ) 800303e: 681b ldr r3, [r3, #0] 8003040: 4946 ldr r1, [pc, #280] ; (800315c ) 8003042: 015a lsls r2, r3, #5 8003044: 440a add r2, r1 8003046: 3218 adds r2, #24 8003048: edd2 7a00 vldr s15, [r2] 800304c: ed9f 7a4c vldr s14, [pc, #304] ; 8003180 8003050: ee67 7a87 vmul.f32 s15, s15, s14 8003054: 4a41 ldr r2, [pc, #260] ; (800315c ) 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: 4b3b ldr r3, [pc, #236] ; (8003158 ) 800306a: 681b ldr r3, [r3, #0] 800306c: 493b ldr r1, [pc, #236] ; (800315c ) 800306e: 015a lsls r2, r3, #5 8003070: 440a add r2, r1 8003072: 3218 adds r2, #24 8003074: edd2 7a00 vldr s15, [r2] 8003078: ed9f 7a42 vldr s14, [pc, #264] ; 8003184 800307c: ee67 7a87 vmul.f32 s15, s15, s14 8003080: 4a36 ldr r2, [pc, #216] ; (800315c ) 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: 4b30 ldr r3, [pc, #192] ; (8003158 ) 8003096: 681b ldr r3, [r3, #0] 8003098: 4930 ldr r1, [pc, #192] ; (800315c ) 800309a: 015a lsls r2, r3, #5 800309c: 440a add r2, r1 800309e: 3218 adds r2, #24 80030a0: edd2 7a00 vldr s15, [r2] 80030a4: ed9f 7a38 vldr s14, [pc, #224] ; 8003188 80030a8: ee67 7a87 vmul.f32 s15, s15, s14 80030ac: 4a2b ldr r2, [pc, #172] ; (800315c ) 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: 4b25 ldr r3, [pc, #148] ; (8003158 ) 80030c2: 681b ldr r3, [r3, #0] 80030c4: 4925 ldr r1, [pc, #148] ; (800315c ) 80030c6: 015a lsls r2, r3, #5 80030c8: 440a add r2, r1 80030ca: 3218 adds r2, #24 80030cc: edd2 7a00 vldr s15, [r2] 80030d0: ed9f 7a2e vldr s14, [pc, #184] ; 800318c 80030d4: ee67 7a87 vmul.f32 s15, s15, s14 80030d8: 4a20 ldr r2, [pc, #128] ; (800315c ) 80030da: 015b lsls r3, r3, #5 80030dc: 4413 add r3, r2 80030de: 3318 adds r3, #24 80030e0: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 80030e4: 4b1c ldr r3, [pc, #112] ; (8003158 ) 80030e6: 681b ldr r3, [r3, #0] 80030e8: 4a1c ldr r2, [pc, #112] ; (800315c ) 80030ea: 015b lsls r3, r3, #5 80030ec: 4413 add r3, r2 80030ee: 3318 adds r3, #24 80030f0: edd3 7a00 vldr s15, [r3] 80030f4: eef5 7ac0 vcmpe.f32 s15, #0.0 80030f8: eef1 fa10 vmrs APSR_nzcv, fpscr 80030fc: d807 bhi.n 800310e pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 80030fe: 4b16 ldr r3, [pc, #88] ; (8003158 ) 8003100: 681b ldr r3, [r3, #0] 8003102: 4a16 ldr r2, [pc, #88] ; (800315c ) 8003104: 015b lsls r3, r3, #5 8003106: 4413 add r3, r2 8003108: 3318 adds r3, #24 800310a: 4a21 ldr r2, [pc, #132] ; (8003190 ) 800310c: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 800310e: 4b12 ldr r3, [pc, #72] ; (8003158 ) 8003110: 681b ldr r3, [r3, #0] 8003112: 4a12 ldr r2, [pc, #72] ; (800315c ) 8003114: 015b lsls r3, r3, #5 8003116: 4413 add r3, r2 8003118: 3318 adds r3, #24 800311a: edd3 7a00 vldr s15, [r3] 800311e: ed9f 7a10 vldr s14, [pc, #64] ; 8003160 8003122: eef4 7ac7 vcmpe.f32 s15, s14 8003126: eef1 fa10 vmrs APSR_nzcv, fpscr 800312a: db07 blt.n 800313c pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 800312c: 4b0a ldr r3, [pc, #40] ; (8003158 ) 800312e: 681b ldr r3, [r3, #0] 8003130: 4a0a ldr r2, [pc, #40] ; (800315c ) 8003132: 015b lsls r3, r3, #5 8003134: 4413 add r3, r2 8003136: 3318 adds r3, #24 8003138: 4a0a ldr r2, [pc, #40] ; (8003164 ) 800313a: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 800313c: 4b06 ldr r3, [pc, #24] ; (8003158 ) 800313e: 681b ldr r3, [r3, #0] 8003140: 4a06 ldr r2, [pc, #24] ; (800315c ) 8003142: 015b lsls r3, r3, #5 8003144: 4413 add r3, r2 8003146: 3318 adds r3, #24 8003148: edd3 7a00 vldr s15, [r3] 800314c: eeb0 0a67 vmov.f32 s0, s15 8003150: f001 fb20 bl 8004794 8003154: f000 bc60 b.w 8003a18 8003158: 2006ba68 .word 0x2006ba68 800315c: 2006bca8 .word 0x2006bca8 8003160: 47c35000 .word 0x47c35000 8003164: 47c34f80 .word 0x47c34f80 8003168: 0001869f .word 0x0001869f 800316c: d1b71759 .word 0xd1b71759 8003170: 10624dd3 .word 0x10624dd3 8003174: 51eb851f .word 0x51eb851f 8003178: cccccccd .word 0xcccccccd 800317c: 20020010 .word 0x20020010 8003180: 3dcccccd .word 0x3dcccccd 8003184: 3c23d70a .word 0x3c23d70a 8003188: 3a83126f .word 0x3a83126f 800318c: 38d1b717 .word 0x38d1b717 8003190: 38d1b717 .word 0x38d1b717 } else if(menupos == Kikt_1 || menupos == Kikt_2 || menupos == Kikt_3 || menupos == Kikt_4) 8003194: 4baa ldr r3, [pc, #680] ; (8003440 ) 8003196: 781b ldrb r3, [r3, #0] 8003198: b2db uxtb r3, r3 800319a: 2b03 cmp r3, #3 800319c: d00f beq.n 80031be 800319e: 4ba8 ldr r3, [pc, #672] ; (8003440 ) 80031a0: 781b ldrb r3, [r3, #0] 80031a2: b2db uxtb r3, r3 80031a4: 2b0b cmp r3, #11 80031a6: d00a beq.n 80031be 80031a8: 4ba5 ldr r3, [pc, #660] ; (8003440 ) 80031aa: 781b ldrb r3, [r3, #0] 80031ac: b2db uxtb r3, r3 80031ae: 2b13 cmp r3, #19 80031b0: d005 beq.n 80031be 80031b2: 4ba3 ldr r3, [pc, #652] ; (8003440 ) 80031b4: 781b ldrb r3, [r3, #0] 80031b6: b2db uxtb r3, r3 80031b8: 2b1b cmp r3, #27 80031ba: f040 80bd bne.w 8003338 { if(ikt < 9) { 80031be: 697b ldr r3, [r7, #20] 80031c0: 2b08 cmp r3, #8 80031c2: d802 bhi.n 80031ca ikt++; 80031c4: 697b ldr r3, [r7, #20] 80031c6: 3301 adds r3, #1 80031c8: 617b str r3, [r7, #20] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 80031ca: 69bb ldr r3, [r7, #24] 80031cc: f242 7210 movw r2, #10000 ; 0x2710 80031d0: fb02 f203 mul.w r2, r2, r3 80031d4: 697b ldr r3, [r7, #20] 80031d6: f44f 717a mov.w r1, #1000 ; 0x3e8 80031da: fb01 f303 mul.w r3, r1, r3 80031de: 18d1 adds r1, r2, r3 80031e0: 68fa ldr r2, [r7, #12] 80031e2: 4613 mov r3, r2 80031e4: 009b lsls r3, r3, #2 80031e6: 4413 add r3, r2 80031e8: 005b lsls r3, r3, #1 80031ea: 4618 mov r0, r3 80031ec: 693b ldr r3, [r7, #16] 80031ee: 2264 movs r2, #100 ; 0x64 80031f0: fb02 f303 mul.w r3, r2, r3 80031f4: 4403 add r3, r0 80031f6: 18ca adds r2, r1, r3 80031f8: 68bb ldr r3, [r7, #8] 80031fa: 4413 add r3, r2 80031fc: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 80031fe: 4b91 ldr r3, [pc, #580] ; (8003444 ) 8003200: 681b ldr r3, [r3, #0] 8003202: 69fa ldr r2, [r7, #28] 8003204: ee07 2a90 vmov s15, r2 8003208: eef8 7a67 vcvt.f32.u32 s15, s15 800320c: 4a8e ldr r2, [pc, #568] ; (8003448 ) 800320e: 015b lsls r3, r3, #5 8003210: 4413 add r3, r2 8003212: 3318 adds r3, #24 8003214: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 8003218: 687b ldr r3, [r7, #4] 800321a: 2b01 cmp r3, #1 800321c: d112 bne.n 8003244 800321e: 4b89 ldr r3, [pc, #548] ; (8003444 ) 8003220: 681b ldr r3, [r3, #0] 8003222: 4989 ldr r1, [pc, #548] ; (8003448 ) 8003224: 015a lsls r2, r3, #5 8003226: 440a add r2, r1 8003228: 3218 adds r2, #24 800322a: edd2 7a00 vldr s15, [r2] 800322e: ed9f 7a87 vldr s14, [pc, #540] ; 800344c 8003232: ee67 7a87 vmul.f32 s15, s15, s14 8003236: 4a84 ldr r2, [pc, #528] ; (8003448 ) 8003238: 015b lsls r3, r3, #5 800323a: 4413 add r3, r2 800323c: 3318 adds r3, #24 800323e: edc3 7a00 vstr s15, [r3] 8003242: e040 b.n 80032c6 else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8003244: 687b ldr r3, [r7, #4] 8003246: 2b02 cmp r3, #2 8003248: d112 bne.n 8003270 800324a: 4b7e ldr r3, [pc, #504] ; (8003444 ) 800324c: 681b ldr r3, [r3, #0] 800324e: 497e ldr r1, [pc, #504] ; (8003448 ) 8003250: 015a lsls r2, r3, #5 8003252: 440a add r2, r1 8003254: 3218 adds r2, #24 8003256: edd2 7a00 vldr s15, [r2] 800325a: ed9f 7a7d vldr s14, [pc, #500] ; 8003450 800325e: ee67 7a87 vmul.f32 s15, s15, s14 8003262: 4a79 ldr r2, [pc, #484] ; (8003448 ) 8003264: 015b lsls r3, r3, #5 8003266: 4413 add r3, r2 8003268: 3318 adds r3, #24 800326a: edc3 7a00 vstr s15, [r3] 800326e: e02a b.n 80032c6 else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 8003270: 687b ldr r3, [r7, #4] 8003272: 2b03 cmp r3, #3 8003274: d112 bne.n 800329c 8003276: 4b73 ldr r3, [pc, #460] ; (8003444 ) 8003278: 681b ldr r3, [r3, #0] 800327a: 4973 ldr r1, [pc, #460] ; (8003448 ) 800327c: 015a lsls r2, r3, #5 800327e: 440a add r2, r1 8003280: 3218 adds r2, #24 8003282: edd2 7a00 vldr s15, [r2] 8003286: ed9f 7a73 vldr s14, [pc, #460] ; 8003454 800328a: ee67 7a87 vmul.f32 s15, s15, s14 800328e: 4a6e ldr r2, [pc, #440] ; (8003448 ) 8003290: 015b lsls r3, r3, #5 8003292: 4413 add r3, r2 8003294: 3318 adds r3, #24 8003296: edc3 7a00 vstr s15, [r3] 800329a: e014 b.n 80032c6 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 800329c: 687b ldr r3, [r7, #4] 800329e: 2b04 cmp r3, #4 80032a0: d111 bne.n 80032c6 80032a2: 4b68 ldr r3, [pc, #416] ; (8003444 ) 80032a4: 681b ldr r3, [r3, #0] 80032a6: 4968 ldr r1, [pc, #416] ; (8003448 ) 80032a8: 015a lsls r2, r3, #5 80032aa: 440a add r2, r1 80032ac: 3218 adds r2, #24 80032ae: edd2 7a00 vldr s15, [r2] 80032b2: ed9f 7a69 vldr s14, [pc, #420] ; 8003458 80032b6: ee67 7a87 vmul.f32 s15, s15, s14 80032ba: 4a63 ldr r2, [pc, #396] ; (8003448 ) 80032bc: 015b lsls r3, r3, #5 80032be: 4413 add r3, r2 80032c0: 3318 adds r3, #24 80032c2: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 80032c6: 4b5f ldr r3, [pc, #380] ; (8003444 ) 80032c8: 681b ldr r3, [r3, #0] 80032ca: 4a5f ldr r2, [pc, #380] ; (8003448 ) 80032cc: 015b lsls r3, r3, #5 80032ce: 4413 add r3, r2 80032d0: 3318 adds r3, #24 80032d2: edd3 7a00 vldr s15, [r3] 80032d6: eef5 7ac0 vcmpe.f32 s15, #0.0 80032da: eef1 fa10 vmrs APSR_nzcv, fpscr 80032de: d807 bhi.n 80032f0 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 80032e0: 4b58 ldr r3, [pc, #352] ; (8003444 ) 80032e2: 681b ldr r3, [r3, #0] 80032e4: 4a58 ldr r2, [pc, #352] ; (8003448 ) 80032e6: 015b lsls r3, r3, #5 80032e8: 4413 add r3, r2 80032ea: 3318 adds r3, #24 80032ec: 4a5b ldr r2, [pc, #364] ; (800345c ) 80032ee: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 80032f0: 4b54 ldr r3, [pc, #336] ; (8003444 ) 80032f2: 681b ldr r3, [r3, #0] 80032f4: 4a54 ldr r2, [pc, #336] ; (8003448 ) 80032f6: 015b lsls r3, r3, #5 80032f8: 4413 add r3, r2 80032fa: 3318 adds r3, #24 80032fc: edd3 7a00 vldr s15, [r3] 8003300: ed9f 7a57 vldr s14, [pc, #348] ; 8003460 8003304: eef4 7ac7 vcmpe.f32 s15, s14 8003308: eef1 fa10 vmrs APSR_nzcv, fpscr 800330c: db07 blt.n 800331e pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 800330e: 4b4d ldr r3, [pc, #308] ; (8003444 ) 8003310: 681b ldr r3, [r3, #0] 8003312: 4a4d ldr r2, [pc, #308] ; (8003448 ) 8003314: 015b lsls r3, r3, #5 8003316: 4413 add r3, r2 8003318: 3318 adds r3, #24 800331a: 4a52 ldr r2, [pc, #328] ; (8003464 ) 800331c: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 800331e: 4b49 ldr r3, [pc, #292] ; (8003444 ) 8003320: 681b ldr r3, [r3, #0] 8003322: 4a49 ldr r2, [pc, #292] ; (8003448 ) 8003324: 015b lsls r3, r3, #5 8003326: 4413 add r3, r2 8003328: 3318 adds r3, #24 800332a: edd3 7a00 vldr s15, [r3] 800332e: eeb0 0a67 vmov.f32 s0, s15 8003332: f001 fa2f bl 8004794 8003336: e36f b.n 8003a18 } else if(menupos == Kiks_1 || menupos == Kiks_2 || menupos == Kiks_3 || menupos == Kiks_4) 8003338: 4b41 ldr r3, [pc, #260] ; (8003440 ) 800333a: 781b ldrb r3, [r3, #0] 800333c: b2db uxtb r3, r3 800333e: 2b04 cmp r3, #4 8003340: d00f beq.n 8003362 8003342: 4b3f ldr r3, [pc, #252] ; (8003440 ) 8003344: 781b ldrb r3, [r3, #0] 8003346: b2db uxtb r3, r3 8003348: 2b0c cmp r3, #12 800334a: d00a beq.n 8003362 800334c: 4b3c ldr r3, [pc, #240] ; (8003440 ) 800334e: 781b ldrb r3, [r3, #0] 8003350: b2db uxtb r3, r3 8003352: 2b14 cmp r3, #20 8003354: d005 beq.n 8003362 8003356: 4b3a ldr r3, [pc, #232] ; (8003440 ) 8003358: 781b ldrb r3, [r3, #0] 800335a: b2db uxtb r3, r3 800335c: 2b1c cmp r3, #28 800335e: f040 80d1 bne.w 8003504 { if(iks < 9) { 8003362: 693b ldr r3, [r7, #16] 8003364: 2b08 cmp r3, #8 8003366: d802 bhi.n 800336e iks++; 8003368: 693b ldr r3, [r7, #16] 800336a: 3301 adds r3, #1 800336c: 613b str r3, [r7, #16] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 800336e: 69bb ldr r3, [r7, #24] 8003370: f242 7210 movw r2, #10000 ; 0x2710 8003374: fb02 f203 mul.w r2, r2, r3 8003378: 697b ldr r3, [r7, #20] 800337a: f44f 717a mov.w r1, #1000 ; 0x3e8 800337e: fb01 f303 mul.w r3, r1, r3 8003382: 18d1 adds r1, r2, r3 8003384: 68fa ldr r2, [r7, #12] 8003386: 4613 mov r3, r2 8003388: 009b lsls r3, r3, #2 800338a: 4413 add r3, r2 800338c: 005b lsls r3, r3, #1 800338e: 4618 mov r0, r3 8003390: 693b ldr r3, [r7, #16] 8003392: 2264 movs r2, #100 ; 0x64 8003394: fb02 f303 mul.w r3, r2, r3 8003398: 4403 add r3, r0 800339a: 18ca adds r2, r1, r3 800339c: 68bb ldr r3, [r7, #8] 800339e: 4413 add r3, r2 80033a0: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 80033a2: 4b28 ldr r3, [pc, #160] ; (8003444 ) 80033a4: 681b ldr r3, [r3, #0] 80033a6: 69fa ldr r2, [r7, #28] 80033a8: ee07 2a90 vmov s15, r2 80033ac: eef8 7a67 vcvt.f32.u32 s15, s15 80033b0: 4a25 ldr r2, [pc, #148] ; (8003448 ) 80033b2: 015b lsls r3, r3, #5 80033b4: 4413 add r3, r2 80033b6: 3318 adds r3, #24 80033b8: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 80033bc: 687b ldr r3, [r7, #4] 80033be: 2b01 cmp r3, #1 80033c0: d112 bne.n 80033e8 80033c2: 4b20 ldr r3, [pc, #128] ; (8003444 ) 80033c4: 681b ldr r3, [r3, #0] 80033c6: 4920 ldr r1, [pc, #128] ; (8003448 ) 80033c8: 015a lsls r2, r3, #5 80033ca: 440a add r2, r1 80033cc: 3218 adds r2, #24 80033ce: edd2 7a00 vldr s15, [r2] 80033d2: ed9f 7a1e vldr s14, [pc, #120] ; 800344c 80033d6: ee67 7a87 vmul.f32 s15, s15, s14 80033da: 4a1b ldr r2, [pc, #108] ; (8003448 ) 80033dc: 015b lsls r3, r3, #5 80033de: 4413 add r3, r2 80033e0: 3318 adds r3, #24 80033e2: edc3 7a00 vstr s15, [r3] 80033e6: e054 b.n 8003492 else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 80033e8: 687b ldr r3, [r7, #4] 80033ea: 2b02 cmp r3, #2 80033ec: d112 bne.n 8003414 80033ee: 4b15 ldr r3, [pc, #84] ; (8003444 ) 80033f0: 681b ldr r3, [r3, #0] 80033f2: 4915 ldr r1, [pc, #84] ; (8003448 ) 80033f4: 015a lsls r2, r3, #5 80033f6: 440a add r2, r1 80033f8: 3218 adds r2, #24 80033fa: edd2 7a00 vldr s15, [r2] 80033fe: ed9f 7a14 vldr s14, [pc, #80] ; 8003450 8003402: ee67 7a87 vmul.f32 s15, s15, s14 8003406: 4a10 ldr r2, [pc, #64] ; (8003448 ) 8003408: 015b lsls r3, r3, #5 800340a: 4413 add r3, r2 800340c: 3318 adds r3, #24 800340e: edc3 7a00 vstr s15, [r3] 8003412: e03e b.n 8003492 else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 8003414: 687b ldr r3, [r7, #4] 8003416: 2b03 cmp r3, #3 8003418: d126 bne.n 8003468 800341a: 4b0a ldr r3, [pc, #40] ; (8003444 ) 800341c: 681b ldr r3, [r3, #0] 800341e: 490a ldr r1, [pc, #40] ; (8003448 ) 8003420: 015a lsls r2, r3, #5 8003422: 440a add r2, r1 8003424: 3218 adds r2, #24 8003426: edd2 7a00 vldr s15, [r2] 800342a: ed9f 7a0a vldr s14, [pc, #40] ; 8003454 800342e: ee67 7a87 vmul.f32 s15, s15, s14 8003432: 4a05 ldr r2, [pc, #20] ; (8003448 ) 8003434: 015b lsls r3, r3, #5 8003436: 4413 add r3, r2 8003438: 3318 adds r3, #24 800343a: edc3 7a00 vstr s15, [r3] 800343e: e028 b.n 8003492 8003440: 20020010 .word 0x20020010 8003444: 2006ba68 .word 0x2006ba68 8003448: 2006bca8 .word 0x2006bca8 800344c: 3dcccccd .word 0x3dcccccd 8003450: 3c23d70a .word 0x3c23d70a 8003454: 3a83126f .word 0x3a83126f 8003458: 38d1b717 .word 0x38d1b717 800345c: 38d1b717 .word 0x38d1b717 8003460: 47c35000 .word 0x47c35000 8003464: 47c34f80 .word 0x47c34f80 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 8003468: 687b ldr r3, [r7, #4] 800346a: 2b04 cmp r3, #4 800346c: d111 bne.n 8003492 800346e: 4bba ldr r3, [pc, #744] ; (8003758 ) 8003470: 681b ldr r3, [r3, #0] 8003472: 49ba ldr r1, [pc, #744] ; (800375c ) 8003474: 015a lsls r2, r3, #5 8003476: 440a add r2, r1 8003478: 3218 adds r2, #24 800347a: edd2 7a00 vldr s15, [r2] 800347e: ed9f 7ab8 vldr s14, [pc, #736] ; 8003760 8003482: ee67 7a87 vmul.f32 s15, s15, s14 8003486: 4ab5 ldr r2, [pc, #724] ; (800375c ) 8003488: 015b lsls r3, r3, #5 800348a: 4413 add r3, r2 800348c: 3318 adds r3, #24 800348e: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 8003492: 4bb1 ldr r3, [pc, #708] ; (8003758 ) 8003494: 681b ldr r3, [r3, #0] 8003496: 4ab1 ldr r2, [pc, #708] ; (800375c ) 8003498: 015b lsls r3, r3, #5 800349a: 4413 add r3, r2 800349c: 3318 adds r3, #24 800349e: edd3 7a00 vldr s15, [r3] 80034a2: eef5 7ac0 vcmpe.f32 s15, #0.0 80034a6: eef1 fa10 vmrs APSR_nzcv, fpscr 80034aa: d807 bhi.n 80034bc pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 80034ac: 4baa ldr r3, [pc, #680] ; (8003758 ) 80034ae: 681b ldr r3, [r3, #0] 80034b0: 4aaa ldr r2, [pc, #680] ; (800375c ) 80034b2: 015b lsls r3, r3, #5 80034b4: 4413 add r3, r2 80034b6: 3318 adds r3, #24 80034b8: 4aaa ldr r2, [pc, #680] ; (8003764 ) 80034ba: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 80034bc: 4ba6 ldr r3, [pc, #664] ; (8003758 ) 80034be: 681b ldr r3, [r3, #0] 80034c0: 4aa6 ldr r2, [pc, #664] ; (800375c ) 80034c2: 015b lsls r3, r3, #5 80034c4: 4413 add r3, r2 80034c6: 3318 adds r3, #24 80034c8: edd3 7a00 vldr s15, [r3] 80034cc: ed9f 7aa6 vldr s14, [pc, #664] ; 8003768 80034d0: eef4 7ac7 vcmpe.f32 s15, s14 80034d4: eef1 fa10 vmrs APSR_nzcv, fpscr 80034d8: db07 blt.n 80034ea pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 80034da: 4b9f ldr r3, [pc, #636] ; (8003758 ) 80034dc: 681b ldr r3, [r3, #0] 80034de: 4a9f ldr r2, [pc, #636] ; (800375c ) 80034e0: 015b lsls r3, r3, #5 80034e2: 4413 add r3, r2 80034e4: 3318 adds r3, #24 80034e6: 4aa1 ldr r2, [pc, #644] ; (800376c ) 80034e8: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 80034ea: 4b9b ldr r3, [pc, #620] ; (8003758 ) 80034ec: 681b ldr r3, [r3, #0] 80034ee: 4a9b ldr r2, [pc, #620] ; (800375c ) 80034f0: 015b lsls r3, r3, #5 80034f2: 4413 add r3, r2 80034f4: 3318 adds r3, #24 80034f6: edd3 7a00 vldr s15, [r3] 80034fa: eeb0 0a67 vmov.f32 s0, s15 80034fe: f001 f949 bl 8004794 8003502: e289 b.n 8003a18 } else if(menupos == Kikd_1 || menupos == Kikd_2 || menupos == Kikd_3 || menupos == Kikd_4) 8003504: 4b9a ldr r3, [pc, #616] ; (8003770 ) 8003506: 781b ldrb r3, [r3, #0] 8003508: b2db uxtb r3, r3 800350a: 2b05 cmp r3, #5 800350c: d00f beq.n 800352e 800350e: 4b98 ldr r3, [pc, #608] ; (8003770 ) 8003510: 781b ldrb r3, [r3, #0] 8003512: b2db uxtb r3, r3 8003514: 2b0d cmp r3, #13 8003516: d00a beq.n 800352e 8003518: 4b95 ldr r3, [pc, #596] ; (8003770 ) 800351a: 781b ldrb r3, [r3, #0] 800351c: b2db uxtb r3, r3 800351e: 2b15 cmp r3, #21 8003520: d005 beq.n 800352e 8003522: 4b93 ldr r3, [pc, #588] ; (8003770 ) 8003524: 781b ldrb r3, [r3, #0] 8003526: b2db uxtb r3, r3 8003528: 2b1d cmp r3, #29 800352a: f040 80bd bne.w 80036a8 { if(ikd < 9) { 800352e: 68fb ldr r3, [r7, #12] 8003530: 2b08 cmp r3, #8 8003532: d802 bhi.n 800353a ikd++; 8003534: 68fb ldr r3, [r7, #12] 8003536: 3301 adds r3, #1 8003538: 60fb str r3, [r7, #12] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 800353a: 69bb ldr r3, [r7, #24] 800353c: f242 7210 movw r2, #10000 ; 0x2710 8003540: fb02 f203 mul.w r2, r2, r3 8003544: 697b ldr r3, [r7, #20] 8003546: f44f 717a mov.w r1, #1000 ; 0x3e8 800354a: fb01 f303 mul.w r3, r1, r3 800354e: 18d1 adds r1, r2, r3 8003550: 68fa ldr r2, [r7, #12] 8003552: 4613 mov r3, r2 8003554: 009b lsls r3, r3, #2 8003556: 4413 add r3, r2 8003558: 005b lsls r3, r3, #1 800355a: 4618 mov r0, r3 800355c: 693b ldr r3, [r7, #16] 800355e: 2264 movs r2, #100 ; 0x64 8003560: fb02 f303 mul.w r3, r2, r3 8003564: 4403 add r3, r0 8003566: 18ca adds r2, r1, r3 8003568: 68bb ldr r3, [r7, #8] 800356a: 4413 add r3, r2 800356c: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 800356e: 4b7a ldr r3, [pc, #488] ; (8003758 ) 8003570: 681b ldr r3, [r3, #0] 8003572: 69fa ldr r2, [r7, #28] 8003574: ee07 2a90 vmov s15, r2 8003578: eef8 7a67 vcvt.f32.u32 s15, s15 800357c: 4a77 ldr r2, [pc, #476] ; (800375c ) 800357e: 015b lsls r3, r3, #5 8003580: 4413 add r3, r2 8003582: 3318 adds r3, #24 8003584: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 8003588: 687b ldr r3, [r7, #4] 800358a: 2b01 cmp r3, #1 800358c: d112 bne.n 80035b4 800358e: 4b72 ldr r3, [pc, #456] ; (8003758 ) 8003590: 681b ldr r3, [r3, #0] 8003592: 4972 ldr r1, [pc, #456] ; (800375c ) 8003594: 015a lsls r2, r3, #5 8003596: 440a add r2, r1 8003598: 3218 adds r2, #24 800359a: edd2 7a00 vldr s15, [r2] 800359e: ed9f 7a75 vldr s14, [pc, #468] ; 8003774 80035a2: ee67 7a87 vmul.f32 s15, s15, s14 80035a6: 4a6d ldr r2, [pc, #436] ; (800375c ) 80035a8: 015b lsls r3, r3, #5 80035aa: 4413 add r3, r2 80035ac: 3318 adds r3, #24 80035ae: edc3 7a00 vstr s15, [r3] 80035b2: e040 b.n 8003636 else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 80035b4: 687b ldr r3, [r7, #4] 80035b6: 2b02 cmp r3, #2 80035b8: d112 bne.n 80035e0 80035ba: 4b67 ldr r3, [pc, #412] ; (8003758 ) 80035bc: 681b ldr r3, [r3, #0] 80035be: 4967 ldr r1, [pc, #412] ; (800375c ) 80035c0: 015a lsls r2, r3, #5 80035c2: 440a add r2, r1 80035c4: 3218 adds r2, #24 80035c6: edd2 7a00 vldr s15, [r2] 80035ca: ed9f 7a6b vldr s14, [pc, #428] ; 8003778 80035ce: ee67 7a87 vmul.f32 s15, s15, s14 80035d2: 4a62 ldr r2, [pc, #392] ; (800375c ) 80035d4: 015b lsls r3, r3, #5 80035d6: 4413 add r3, r2 80035d8: 3318 adds r3, #24 80035da: edc3 7a00 vstr s15, [r3] 80035de: e02a b.n 8003636 else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 80035e0: 687b ldr r3, [r7, #4] 80035e2: 2b03 cmp r3, #3 80035e4: d112 bne.n 800360c 80035e6: 4b5c ldr r3, [pc, #368] ; (8003758 ) 80035e8: 681b ldr r3, [r3, #0] 80035ea: 495c ldr r1, [pc, #368] ; (800375c ) 80035ec: 015a lsls r2, r3, #5 80035ee: 440a add r2, r1 80035f0: 3218 adds r2, #24 80035f2: edd2 7a00 vldr s15, [r2] 80035f6: ed9f 7a61 vldr s14, [pc, #388] ; 800377c 80035fa: ee67 7a87 vmul.f32 s15, s15, s14 80035fe: 4a57 ldr r2, [pc, #348] ; (800375c ) 8003600: 015b lsls r3, r3, #5 8003602: 4413 add r3, r2 8003604: 3318 adds r3, #24 8003606: edc3 7a00 vstr s15, [r3] 800360a: e014 b.n 8003636 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 800360c: 687b ldr r3, [r7, #4] 800360e: 2b04 cmp r3, #4 8003610: d111 bne.n 8003636 8003612: 4b51 ldr r3, [pc, #324] ; (8003758 ) 8003614: 681b ldr r3, [r3, #0] 8003616: 4951 ldr r1, [pc, #324] ; (800375c ) 8003618: 015a lsls r2, r3, #5 800361a: 440a add r2, r1 800361c: 3218 adds r2, #24 800361e: edd2 7a00 vldr s15, [r2] 8003622: ed9f 7a4f vldr s14, [pc, #316] ; 8003760 8003626: ee67 7a87 vmul.f32 s15, s15, s14 800362a: 4a4c ldr r2, [pc, #304] ; (800375c ) 800362c: 015b lsls r3, r3, #5 800362e: 4413 add r3, r2 8003630: 3318 adds r3, #24 8003632: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 8003636: 4b48 ldr r3, [pc, #288] ; (8003758 ) 8003638: 681b ldr r3, [r3, #0] 800363a: 4a48 ldr r2, [pc, #288] ; (800375c ) 800363c: 015b lsls r3, r3, #5 800363e: 4413 add r3, r2 8003640: 3318 adds r3, #24 8003642: edd3 7a00 vldr s15, [r3] 8003646: eef5 7ac0 vcmpe.f32 s15, #0.0 800364a: eef1 fa10 vmrs APSR_nzcv, fpscr 800364e: d807 bhi.n 8003660 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 8003650: 4b41 ldr r3, [pc, #260] ; (8003758 ) 8003652: 681b ldr r3, [r3, #0] 8003654: 4a41 ldr r2, [pc, #260] ; (800375c ) 8003656: 015b lsls r3, r3, #5 8003658: 4413 add r3, r2 800365a: 3318 adds r3, #24 800365c: 4a41 ldr r2, [pc, #260] ; (8003764 ) 800365e: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 8003660: 4b3d ldr r3, [pc, #244] ; (8003758 ) 8003662: 681b ldr r3, [r3, #0] 8003664: 4a3d ldr r2, [pc, #244] ; (800375c ) 8003666: 015b lsls r3, r3, #5 8003668: 4413 add r3, r2 800366a: 3318 adds r3, #24 800366c: edd3 7a00 vldr s15, [r3] 8003670: ed9f 7a3d vldr s14, [pc, #244] ; 8003768 8003674: eef4 7ac7 vcmpe.f32 s15, s14 8003678: eef1 fa10 vmrs APSR_nzcv, fpscr 800367c: db07 blt.n 800368e pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 800367e: 4b36 ldr r3, [pc, #216] ; (8003758 ) 8003680: 681b ldr r3, [r3, #0] 8003682: 4a36 ldr r2, [pc, #216] ; (800375c ) 8003684: 015b lsls r3, r3, #5 8003686: 4413 add r3, r2 8003688: 3318 adds r3, #24 800368a: 4a38 ldr r2, [pc, #224] ; (800376c ) 800368c: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 800368e: 4b32 ldr r3, [pc, #200] ; (8003758 ) 8003690: 681b ldr r3, [r3, #0] 8003692: 4a32 ldr r2, [pc, #200] ; (800375c ) 8003694: 015b lsls r3, r3, #5 8003696: 4413 add r3, r2 8003698: 3318 adds r3, #24 800369a: edd3 7a00 vldr s15, [r3] 800369e: eeb0 0a67 vmov.f32 s0, s15 80036a2: f001 f877 bl 8004794 80036a6: e1b7 b.n 8003a18 } else if(menupos == Kike_1 || menupos == Kike_2 || menupos == Kike_3 || menupos == Kike_4) 80036a8: 4b31 ldr r3, [pc, #196] ; (8003770 ) 80036aa: 781b ldrb r3, [r3, #0] 80036ac: b2db uxtb r3, r3 80036ae: 2b06 cmp r3, #6 80036b0: d00f beq.n 80036d2 80036b2: 4b2f ldr r3, [pc, #188] ; (8003770 ) 80036b4: 781b ldrb r3, [r3, #0] 80036b6: b2db uxtb r3, r3 80036b8: 2b0e cmp r3, #14 80036ba: d00a beq.n 80036d2 80036bc: 4b2c ldr r3, [pc, #176] ; (8003770 ) 80036be: 781b ldrb r3, [r3, #0] 80036c0: b2db uxtb r3, r3 80036c2: 2b16 cmp r3, #22 80036c4: d005 beq.n 80036d2 80036c6: 4b2a ldr r3, [pc, #168] ; (8003770 ) 80036c8: 781b ldrb r3, [r3, #0] 80036ca: b2db uxtb r3, r3 80036cc: 2b1e cmp r3, #30 80036ce: f040 80d1 bne.w 8003874 { if(ike < 9) { 80036d2: 68bb ldr r3, [r7, #8] 80036d4: 2b08 cmp r3, #8 80036d6: d802 bhi.n 80036de ike++; 80036d8: 68bb ldr r3, [r7, #8] 80036da: 3301 adds r3, #1 80036dc: 60bb str r3, [r7, #8] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 80036de: 69bb ldr r3, [r7, #24] 80036e0: f242 7210 movw r2, #10000 ; 0x2710 80036e4: fb02 f203 mul.w r2, r2, r3 80036e8: 697b ldr r3, [r7, #20] 80036ea: f44f 717a mov.w r1, #1000 ; 0x3e8 80036ee: fb01 f303 mul.w r3, r1, r3 80036f2: 18d1 adds r1, r2, r3 80036f4: 68fa ldr r2, [r7, #12] 80036f6: 4613 mov r3, r2 80036f8: 009b lsls r3, r3, #2 80036fa: 4413 add r3, r2 80036fc: 005b lsls r3, r3, #1 80036fe: 4618 mov r0, r3 8003700: 693b ldr r3, [r7, #16] 8003702: 2264 movs r2, #100 ; 0x64 8003704: fb02 f303 mul.w r3, r2, r3 8003708: 4403 add r3, r0 800370a: 18ca adds r2, r1, r3 800370c: 68bb ldr r3, [r7, #8] 800370e: 4413 add r3, r2 8003710: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 8003712: 4b11 ldr r3, [pc, #68] ; (8003758 ) 8003714: 681b ldr r3, [r3, #0] 8003716: 69fa ldr r2, [r7, #28] 8003718: ee07 2a90 vmov s15, r2 800371c: eef8 7a67 vcvt.f32.u32 s15, s15 8003720: 4a0e ldr r2, [pc, #56] ; (800375c ) 8003722: 015b lsls r3, r3, #5 8003724: 4413 add r3, r2 8003726: 3318 adds r3, #24 8003728: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 800372c: 687b ldr r3, [r7, #4] 800372e: 2b01 cmp r3, #1 8003730: d126 bne.n 8003780 8003732: 4b09 ldr r3, [pc, #36] ; (8003758 ) 8003734: 681b ldr r3, [r3, #0] 8003736: 4909 ldr r1, [pc, #36] ; (800375c ) 8003738: 015a lsls r2, r3, #5 800373a: 440a add r2, r1 800373c: 3218 adds r2, #24 800373e: edd2 7a00 vldr s15, [r2] 8003742: ed9f 7a0c vldr s14, [pc, #48] ; 8003774 8003746: ee67 7a87 vmul.f32 s15, s15, s14 800374a: 4a04 ldr r2, [pc, #16] ; (800375c ) 800374c: 015b lsls r3, r3, #5 800374e: 4413 add r3, r2 8003750: 3318 adds r3, #24 8003752: edc3 7a00 vstr s15, [r3] 8003756: e054 b.n 8003802 8003758: 2006ba68 .word 0x2006ba68 800375c: 2006bca8 .word 0x2006bca8 8003760: 38d1b717 .word 0x38d1b717 8003764: 38d1b717 .word 0x38d1b717 8003768: 47c35000 .word 0x47c35000 800376c: 47c34f80 .word 0x47c34f80 8003770: 20020010 .word 0x20020010 8003774: 3dcccccd .word 0x3dcccccd 8003778: 3c23d70a .word 0x3c23d70a 800377c: 3a83126f .word 0x3a83126f else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8003780: 687b ldr r3, [r7, #4] 8003782: 2b02 cmp r3, #2 8003784: d112 bne.n 80037ac 8003786: 4ba6 ldr r3, [pc, #664] ; (8003a20 ) 8003788: 681b ldr r3, [r3, #0] 800378a: 49a6 ldr r1, [pc, #664] ; (8003a24 ) 800378c: 015a lsls r2, r3, #5 800378e: 440a add r2, r1 8003790: 3218 adds r2, #24 8003792: edd2 7a00 vldr s15, [r2] 8003796: ed9f 7aa4 vldr s14, [pc, #656] ; 8003a28 800379a: ee67 7a87 vmul.f32 s15, s15, s14 800379e: 4aa1 ldr r2, [pc, #644] ; (8003a24 ) 80037a0: 015b lsls r3, r3, #5 80037a2: 4413 add r3, r2 80037a4: 3318 adds r3, #24 80037a6: edc3 7a00 vstr s15, [r3] 80037aa: e02a b.n 8003802 else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 80037ac: 687b ldr r3, [r7, #4] 80037ae: 2b03 cmp r3, #3 80037b0: d112 bne.n 80037d8 80037b2: 4b9b ldr r3, [pc, #620] ; (8003a20 ) 80037b4: 681b ldr r3, [r3, #0] 80037b6: 499b ldr r1, [pc, #620] ; (8003a24 ) 80037b8: 015a lsls r2, r3, #5 80037ba: 440a add r2, r1 80037bc: 3218 adds r2, #24 80037be: edd2 7a00 vldr s15, [r2] 80037c2: ed9f 7a9a vldr s14, [pc, #616] ; 8003a2c 80037c6: ee67 7a87 vmul.f32 s15, s15, s14 80037ca: 4a96 ldr r2, [pc, #600] ; (8003a24 ) 80037cc: 015b lsls r3, r3, #5 80037ce: 4413 add r3, r2 80037d0: 3318 adds r3, #24 80037d2: edc3 7a00 vstr s15, [r3] 80037d6: e014 b.n 8003802 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 80037d8: 687b ldr r3, [r7, #4] 80037da: 2b04 cmp r3, #4 80037dc: d111 bne.n 8003802 80037de: 4b90 ldr r3, [pc, #576] ; (8003a20 ) 80037e0: 681b ldr r3, [r3, #0] 80037e2: 4990 ldr r1, [pc, #576] ; (8003a24 ) 80037e4: 015a lsls r2, r3, #5 80037e6: 440a add r2, r1 80037e8: 3218 adds r2, #24 80037ea: edd2 7a00 vldr s15, [r2] 80037ee: ed9f 7a90 vldr s14, [pc, #576] ; 8003a30 80037f2: ee67 7a87 vmul.f32 s15, s15, s14 80037f6: 4a8b ldr r2, [pc, #556] ; (8003a24 ) 80037f8: 015b lsls r3, r3, #5 80037fa: 4413 add r3, r2 80037fc: 3318 adds r3, #24 80037fe: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 8003802: 4b87 ldr r3, [pc, #540] ; (8003a20 ) 8003804: 681b ldr r3, [r3, #0] 8003806: 4a87 ldr r2, [pc, #540] ; (8003a24 ) 8003808: 015b lsls r3, r3, #5 800380a: 4413 add r3, r2 800380c: 3318 adds r3, #24 800380e: edd3 7a00 vldr s15, [r3] 8003812: eef5 7ac0 vcmpe.f32 s15, #0.0 8003816: eef1 fa10 vmrs APSR_nzcv, fpscr 800381a: d807 bhi.n 800382c pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 800381c: 4b80 ldr r3, [pc, #512] ; (8003a20 ) 800381e: 681b ldr r3, [r3, #0] 8003820: 4a80 ldr r2, [pc, #512] ; (8003a24 ) 8003822: 015b lsls r3, r3, #5 8003824: 4413 add r3, r2 8003826: 3318 adds r3, #24 8003828: 4a82 ldr r2, [pc, #520] ; (8003a34 ) 800382a: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 800382c: 4b7c ldr r3, [pc, #496] ; (8003a20 ) 800382e: 681b ldr r3, [r3, #0] 8003830: 4a7c ldr r2, [pc, #496] ; (8003a24 ) 8003832: 015b lsls r3, r3, #5 8003834: 4413 add r3, r2 8003836: 3318 adds r3, #24 8003838: edd3 7a00 vldr s15, [r3] 800383c: ed9f 7a7e vldr s14, [pc, #504] ; 8003a38 8003840: eef4 7ac7 vcmpe.f32 s15, s14 8003844: eef1 fa10 vmrs APSR_nzcv, fpscr 8003848: db07 blt.n 800385a pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 800384a: 4b75 ldr r3, [pc, #468] ; (8003a20 ) 800384c: 681b ldr r3, [r3, #0] 800384e: 4a75 ldr r2, [pc, #468] ; (8003a24 ) 8003850: 015b lsls r3, r3, #5 8003852: 4413 add r3, r2 8003854: 3318 adds r3, #24 8003856: 4a79 ldr r2, [pc, #484] ; (8003a3c ) 8003858: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 800385a: 4b71 ldr r3, [pc, #452] ; (8003a20 ) 800385c: 681b ldr r3, [r3, #0] 800385e: 4a71 ldr r2, [pc, #452] ; (8003a24 ) 8003860: 015b lsls r3, r3, #5 8003862: 4413 add r3, r2 8003864: 3318 adds r3, #24 8003866: edd3 7a00 vldr s15, [r3] 800386a: eeb0 0a67 vmov.f32 s0, s15 800386e: f000 ff91 bl 8004794 8003872: e0d1 b.n 8003a18 } else if(menupos == Kpt_1 || menupos == Kpt_2 || menupos == Kpt_3 || menupos == Kpt_4) 8003874: 4b72 ldr r3, [pc, #456] ; (8003a40 ) 8003876: 781b ldrb r3, [r3, #0] 8003878: b2db uxtb r3, r3 800387a: 2b07 cmp r3, #7 800387c: d00f beq.n 800389e 800387e: 4b70 ldr r3, [pc, #448] ; (8003a40 ) 8003880: 781b ldrb r3, [r3, #0] 8003882: b2db uxtb r3, r3 8003884: 2b0f cmp r3, #15 8003886: d00a beq.n 800389e 8003888: 4b6d ldr r3, [pc, #436] ; (8003a40 ) 800388a: 781b ldrb r3, [r3, #0] 800388c: b2db uxtb r3, r3 800388e: 2b17 cmp r3, #23 8003890: d005 beq.n 800389e 8003892: 4b6b ldr r3, [pc, #428] ; (8003a40 ) 8003894: 781b ldrb r3, [r3, #0] 8003896: b2db uxtb r3, r3 8003898: 2b1f cmp r3, #31 800389a: f040 80bd bne.w 8003a18 { if(ipt) { 800389e: 687b ldr r3, [r7, #4] 80038a0: 2b00 cmp r3, #0 80038a2: d002 beq.n 80038aa ipt--; 80038a4: 687b ldr r3, [r7, #4] 80038a6: 3b01 subs r3, #1 80038a8: 607b str r3, [r7, #4] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 80038aa: 69bb ldr r3, [r7, #24] 80038ac: f242 7210 movw r2, #10000 ; 0x2710 80038b0: fb02 f203 mul.w r2, r2, r3 80038b4: 697b ldr r3, [r7, #20] 80038b6: f44f 717a mov.w r1, #1000 ; 0x3e8 80038ba: fb01 f303 mul.w r3, r1, r3 80038be: 18d1 adds r1, r2, r3 80038c0: 68fa ldr r2, [r7, #12] 80038c2: 4613 mov r3, r2 80038c4: 009b lsls r3, r3, #2 80038c6: 4413 add r3, r2 80038c8: 005b lsls r3, r3, #1 80038ca: 4618 mov r0, r3 80038cc: 693b ldr r3, [r7, #16] 80038ce: 2264 movs r2, #100 ; 0x64 80038d0: fb02 f303 mul.w r3, r2, r3 80038d4: 4403 add r3, r0 80038d6: 18ca adds r2, r1, r3 80038d8: 68bb ldr r3, [r7, #8] 80038da: 4413 add r3, r2 80038dc: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 80038de: 4b50 ldr r3, [pc, #320] ; (8003a20 ) 80038e0: 681b ldr r3, [r3, #0] 80038e2: 69fa ldr r2, [r7, #28] 80038e4: ee07 2a90 vmov s15, r2 80038e8: eef8 7a67 vcvt.f32.u32 s15, s15 80038ec: 4a4d ldr r2, [pc, #308] ; (8003a24 ) 80038ee: 015b lsls r3, r3, #5 80038f0: 4413 add r3, r2 80038f2: 3318 adds r3, #24 80038f4: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 80038f8: 687b ldr r3, [r7, #4] 80038fa: 2b01 cmp r3, #1 80038fc: d112 bne.n 8003924 80038fe: 4b48 ldr r3, [pc, #288] ; (8003a20 ) 8003900: 681b ldr r3, [r3, #0] 8003902: 4948 ldr r1, [pc, #288] ; (8003a24 ) 8003904: 015a lsls r2, r3, #5 8003906: 440a add r2, r1 8003908: 3218 adds r2, #24 800390a: edd2 7a00 vldr s15, [r2] 800390e: ed9f 7a4d vldr s14, [pc, #308] ; 8003a44 8003912: ee67 7a87 vmul.f32 s15, s15, s14 8003916: 4a43 ldr r2, [pc, #268] ; (8003a24 ) 8003918: 015b lsls r3, r3, #5 800391a: 4413 add r3, r2 800391c: 3318 adds r3, #24 800391e: edc3 7a00 vstr s15, [r3] 8003922: e040 b.n 80039a6 else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8003924: 687b ldr r3, [r7, #4] 8003926: 2b02 cmp r3, #2 8003928: d112 bne.n 8003950 800392a: 4b3d ldr r3, [pc, #244] ; (8003a20 ) 800392c: 681b ldr r3, [r3, #0] 800392e: 493d ldr r1, [pc, #244] ; (8003a24 ) 8003930: 015a lsls r2, r3, #5 8003932: 440a add r2, r1 8003934: 3218 adds r2, #24 8003936: edd2 7a00 vldr s15, [r2] 800393a: ed9f 7a3b vldr s14, [pc, #236] ; 8003a28 800393e: ee67 7a87 vmul.f32 s15, s15, s14 8003942: 4a38 ldr r2, [pc, #224] ; (8003a24 ) 8003944: 015b lsls r3, r3, #5 8003946: 4413 add r3, r2 8003948: 3318 adds r3, #24 800394a: edc3 7a00 vstr s15, [r3] 800394e: e02a b.n 80039a6 else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 8003950: 687b ldr r3, [r7, #4] 8003952: 2b03 cmp r3, #3 8003954: d112 bne.n 800397c 8003956: 4b32 ldr r3, [pc, #200] ; (8003a20 ) 8003958: 681b ldr r3, [r3, #0] 800395a: 4932 ldr r1, [pc, #200] ; (8003a24 ) 800395c: 015a lsls r2, r3, #5 800395e: 440a add r2, r1 8003960: 3218 adds r2, #24 8003962: edd2 7a00 vldr s15, [r2] 8003966: ed9f 7a31 vldr s14, [pc, #196] ; 8003a2c 800396a: ee67 7a87 vmul.f32 s15, s15, s14 800396e: 4a2d ldr r2, [pc, #180] ; (8003a24 ) 8003970: 015b lsls r3, r3, #5 8003972: 4413 add r3, r2 8003974: 3318 adds r3, #24 8003976: edc3 7a00 vstr s15, [r3] 800397a: e014 b.n 80039a6 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 800397c: 687b ldr r3, [r7, #4] 800397e: 2b04 cmp r3, #4 8003980: d111 bne.n 80039a6 8003982: 4b27 ldr r3, [pc, #156] ; (8003a20 ) 8003984: 681b ldr r3, [r3, #0] 8003986: 4927 ldr r1, [pc, #156] ; (8003a24 ) 8003988: 015a lsls r2, r3, #5 800398a: 440a add r2, r1 800398c: 3218 adds r2, #24 800398e: edd2 7a00 vldr s15, [r2] 8003992: ed9f 7a27 vldr s14, [pc, #156] ; 8003a30 8003996: ee67 7a87 vmul.f32 s15, s15, s14 800399a: 4a22 ldr r2, [pc, #136] ; (8003a24 ) 800399c: 015b lsls r3, r3, #5 800399e: 4413 add r3, r2 80039a0: 3318 adds r3, #24 80039a2: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 80039a6: 4b1e ldr r3, [pc, #120] ; (8003a20 ) 80039a8: 681b ldr r3, [r3, #0] 80039aa: 4a1e ldr r2, [pc, #120] ; (8003a24 ) 80039ac: 015b lsls r3, r3, #5 80039ae: 4413 add r3, r2 80039b0: 3318 adds r3, #24 80039b2: edd3 7a00 vldr s15, [r3] 80039b6: eef5 7ac0 vcmpe.f32 s15, #0.0 80039ba: eef1 fa10 vmrs APSR_nzcv, fpscr 80039be: d807 bhi.n 80039d0 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 80039c0: 4b17 ldr r3, [pc, #92] ; (8003a20 ) 80039c2: 681b ldr r3, [r3, #0] 80039c4: 4a17 ldr r2, [pc, #92] ; (8003a24 ) 80039c6: 015b lsls r3, r3, #5 80039c8: 4413 add r3, r2 80039ca: 3318 adds r3, #24 80039cc: 4a19 ldr r2, [pc, #100] ; (8003a34 ) 80039ce: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 80039d0: 4b13 ldr r3, [pc, #76] ; (8003a20 ) 80039d2: 681b ldr r3, [r3, #0] 80039d4: 4a13 ldr r2, [pc, #76] ; (8003a24 ) 80039d6: 015b lsls r3, r3, #5 80039d8: 4413 add r3, r2 80039da: 3318 adds r3, #24 80039dc: edd3 7a00 vldr s15, [r3] 80039e0: ed9f 7a15 vldr s14, [pc, #84] ; 8003a38 80039e4: eef4 7ac7 vcmpe.f32 s15, s14 80039e8: eef1 fa10 vmrs APSR_nzcv, fpscr 80039ec: db07 blt.n 80039fe pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 80039ee: 4b0c ldr r3, [pc, #48] ; (8003a20 ) 80039f0: 681b ldr r3, [r3, #0] 80039f2: 4a0c ldr r2, [pc, #48] ; (8003a24 ) 80039f4: 015b lsls r3, r3, #5 80039f6: 4413 add r3, r2 80039f8: 3318 adds r3, #24 80039fa: 4a10 ldr r2, [pc, #64] ; (8003a3c ) 80039fc: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 80039fe: 4b08 ldr r3, [pc, #32] ; (8003a20 ) 8003a00: 681b ldr r3, [r3, #0] 8003a02: 4a08 ldr r2, [pc, #32] ; (8003a24 ) 8003a04: 015b lsls r3, r3, #5 8003a06: 4413 add r3, r2 8003a08: 3318 adds r3, #24 8003a0a: edd3 7a00 vldr s15, [r3] 8003a0e: eeb0 0a67 vmov.f32 s0, s15 8003a12: f000 febf bl 8004794 pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); }*/ } 8003a16: e7ff b.n 8003a18 8003a18: bf00 nop 8003a1a: 3720 adds r7, #32 8003a1c: 46bd mov sp, r7 8003a1e: bd80 pop {r7, pc} 8003a20: 2006ba68 .word 0x2006ba68 8003a24: 2006bca8 .word 0x2006bca8 8003a28: 3c23d70a .word 0x3c23d70a 8003a2c: 3a83126f .word 0x3a83126f 8003a30: 38d1b717 .word 0x38d1b717 8003a34: 38d1b717 .word 0x38d1b717 8003a38: 47c35000 .word 0x47c35000 8003a3c: 47c34f80 .word 0x47c34f80 8003a40: 20020010 .word 0x20020010 8003a44: 3dcccccd .word 0x3dcccccd 08003a48 : void DoKeyDN(void) { 8003a48: b580 push {r7, lr} 8003a4a: b088 sub sp, #32 8003a4c: af00 add r7, sp, #0 uint32_t s, ikdt, ikt, iks, ikd, ike, ipt; if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10.0f) { 8003a4e: 4b5f ldr r3, [pc, #380] ; (8003bcc ) 8003a50: 681b ldr r3, [r3, #0] 8003a52: 4a5f ldr r2, [pc, #380] ; (8003bd0 ) 8003a54: 015b lsls r3, r3, #5 8003a56: 4413 add r3, r2 8003a58: 3318 adds r3, #24 8003a5a: edd3 7a00 vldr s15, [r3] 8003a5e: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8003a62: eef4 7ac7 vcmpe.f32 s15, s14 8003a66: eef1 fa10 vmrs APSR_nzcv, fpscr 8003a6a: d517 bpl.n 8003a9c s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10000.0f) + 0.5f); 8003a6c: 4b57 ldr r3, [pc, #348] ; (8003bcc ) 8003a6e: 681b ldr r3, [r3, #0] 8003a70: 4a57 ldr r2, [pc, #348] ; (8003bd0 ) 8003a72: 015b lsls r3, r3, #5 8003a74: 4413 add r3, r2 8003a76: 3318 adds r3, #24 8003a78: edd3 7a00 vldr s15, [r3] 8003a7c: ed9f 7a55 vldr s14, [pc, #340] ; 8003bd4 8003a80: ee67 7a87 vmul.f32 s15, s15, s14 8003a84: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8003a88: ee77 7a87 vadd.f32 s15, s15, s14 8003a8c: eefc 7ae7 vcvt.u32.f32 s15, s15 8003a90: ee17 3a90 vmov r3, s15 8003a94: 61fb str r3, [r7, #28] ipt = 4; 8003a96: 2304 movs r3, #4 8003a98: 607b str r3, [r7, #4] 8003a9a: e0be b.n 8003c1a } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100.0f) { 8003a9c: 4b4b ldr r3, [pc, #300] ; (8003bcc ) 8003a9e: 681b ldr r3, [r3, #0] 8003aa0: 4a4b ldr r2, [pc, #300] ; (8003bd0 ) 8003aa2: 015b lsls r3, r3, #5 8003aa4: 4413 add r3, r2 8003aa6: 3318 adds r3, #24 8003aa8: edd3 7a00 vldr s15, [r3] 8003aac: ed9f 7a4a vldr s14, [pc, #296] ; 8003bd8 8003ab0: eef4 7ac7 vcmpe.f32 s15, s14 8003ab4: eef1 fa10 vmrs APSR_nzcv, fpscr 8003ab8: d517 bpl.n 8003aea s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 1000.0f) + 0.5f); 8003aba: 4b44 ldr r3, [pc, #272] ; (8003bcc ) 8003abc: 681b ldr r3, [r3, #0] 8003abe: 4a44 ldr r2, [pc, #272] ; (8003bd0 ) 8003ac0: 015b lsls r3, r3, #5 8003ac2: 4413 add r3, r2 8003ac4: 3318 adds r3, #24 8003ac6: edd3 7a00 vldr s15, [r3] 8003aca: ed9f 7a44 vldr s14, [pc, #272] ; 8003bdc 8003ace: ee67 7a87 vmul.f32 s15, s15, s14 8003ad2: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8003ad6: ee77 7a87 vadd.f32 s15, s15, s14 8003ada: eefc 7ae7 vcvt.u32.f32 s15, s15 8003ade: ee17 3a90 vmov r3, s15 8003ae2: 61fb str r3, [r7, #28] ipt = 3; 8003ae4: 2303 movs r3, #3 8003ae6: 607b str r3, [r7, #4] 8003ae8: e097 b.n 8003c1a } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 1000.0f) { 8003aea: 4b38 ldr r3, [pc, #224] ; (8003bcc ) 8003aec: 681b ldr r3, [r3, #0] 8003aee: 4a38 ldr r2, [pc, #224] ; (8003bd0 ) 8003af0: 015b lsls r3, r3, #5 8003af2: 4413 add r3, r2 8003af4: 3318 adds r3, #24 8003af6: edd3 7a00 vldr s15, [r3] 8003afa: ed9f 7a38 vldr s14, [pc, #224] ; 8003bdc 8003afe: eef4 7ac7 vcmpe.f32 s15, s14 8003b02: eef1 fa10 vmrs APSR_nzcv, fpscr 8003b06: d517 bpl.n 8003b38 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 100.0f) + 0.5f); 8003b08: 4b30 ldr r3, [pc, #192] ; (8003bcc ) 8003b0a: 681b ldr r3, [r3, #0] 8003b0c: 4a30 ldr r2, [pc, #192] ; (8003bd0 ) 8003b0e: 015b lsls r3, r3, #5 8003b10: 4413 add r3, r2 8003b12: 3318 adds r3, #24 8003b14: edd3 7a00 vldr s15, [r3] 8003b18: ed9f 7a2f vldr s14, [pc, #188] ; 8003bd8 8003b1c: ee67 7a87 vmul.f32 s15, s15, s14 8003b20: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8003b24: ee77 7a87 vadd.f32 s15, s15, s14 8003b28: eefc 7ae7 vcvt.u32.f32 s15, s15 8003b2c: ee17 3a90 vmov r3, s15 8003b30: 61fb str r3, [r7, #28] ipt = 2; 8003b32: 2302 movs r3, #2 8003b34: 607b str r3, [r7, #4] 8003b36: e070 b.n 8003c1a } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10000.0f) { 8003b38: 4b24 ldr r3, [pc, #144] ; (8003bcc ) 8003b3a: 681b ldr r3, [r3, #0] 8003b3c: 4a24 ldr r2, [pc, #144] ; (8003bd0 ) 8003b3e: 015b lsls r3, r3, #5 8003b40: 4413 add r3, r2 8003b42: 3318 adds r3, #24 8003b44: edd3 7a00 vldr s15, [r3] 8003b48: ed9f 7a22 vldr s14, [pc, #136] ; 8003bd4 8003b4c: eef4 7ac7 vcmpe.f32 s15, s14 8003b50: eef1 fa10 vmrs APSR_nzcv, fpscr 8003b54: d517 bpl.n 8003b86 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10.0f) + 0.5f); 8003b56: 4b1d ldr r3, [pc, #116] ; (8003bcc ) 8003b58: 681b ldr r3, [r3, #0] 8003b5a: 4a1d ldr r2, [pc, #116] ; (8003bd0 ) 8003b5c: 015b lsls r3, r3, #5 8003b5e: 4413 add r3, r2 8003b60: 3318 adds r3, #24 8003b62: edd3 7a00 vldr s15, [r3] 8003b66: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8003b6a: ee67 7a87 vmul.f32 s15, s15, s14 8003b6e: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8003b72: ee77 7a87 vadd.f32 s15, s15, s14 8003b76: eefc 7ae7 vcvt.u32.f32 s15, s15 8003b7a: ee17 3a90 vmov r3, s15 8003b7e: 61fb str r3, [r7, #28] ipt = 1; 8003b80: 2301 movs r3, #1 8003b82: 607b str r3, [r7, #4] 8003b84: e049 b.n 8003c1a } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) { 8003b86: 4b11 ldr r3, [pc, #68] ; (8003bcc ) 8003b88: 681b ldr r3, [r3, #0] 8003b8a: 4a11 ldr r2, [pc, #68] ; (8003bd0 ) 8003b8c: 015b lsls r3, r3, #5 8003b8e: 4413 add r3, r2 8003b90: 3318 adds r3, #24 8003b92: edd3 7a00 vldr s15, [r3] 8003b96: ed9f 7a12 vldr s14, [pc, #72] ; 8003be0 8003b9a: eef4 7ac7 vcmpe.f32 s15, s14 8003b9e: eef1 fa10 vmrs APSR_nzcv, fpscr 8003ba2: d51f bpl.n 8003be4 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS) + 0.5f); 8003ba4: 4b09 ldr r3, [pc, #36] ; (8003bcc ) 8003ba6: 681b ldr r3, [r3, #0] 8003ba8: 4a09 ldr r2, [pc, #36] ; (8003bd0 ) 8003baa: 015b lsls r3, r3, #5 8003bac: 4413 add r3, r2 8003bae: 3318 adds r3, #24 8003bb0: edd3 7a00 vldr s15, [r3] 8003bb4: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8003bb8: ee77 7a87 vadd.f32 s15, s15, s14 8003bbc: eefc 7ae7 vcvt.u32.f32 s15, s15 8003bc0: ee17 3a90 vmov r3, s15 8003bc4: 61fb str r3, [r7, #28] ipt = 0; 8003bc6: 2300 movs r3, #0 8003bc8: 607b str r3, [r7, #4] 8003bca: e026 b.n 8003c1a 8003bcc: 2006ba68 .word 0x2006ba68 8003bd0: 2006bca8 .word 0x2006bca8 8003bd4: 461c4000 .word 0x461c4000 8003bd8: 42c80000 .word 0x42c80000 8003bdc: 447a0000 .word 0x447a0000 8003be0: 47c35000 .word 0x47c35000 } else if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 8003be4: 4baf ldr r3, [pc, #700] ; (8003ea4 ) 8003be6: 681b ldr r3, [r3, #0] 8003be8: 4aaf ldr r2, [pc, #700] ; (8003ea8 ) 8003bea: 015b lsls r3, r3, #5 8003bec: 4413 add r3, r2 8003bee: 3318 adds r3, #24 8003bf0: edd3 7a00 vldr s15, [r3] 8003bf4: ed9f 7aad vldr s14, [pc, #692] ; 8003eac 8003bf8: eef4 7ac7 vcmpe.f32 s15, s14 8003bfc: eef1 fa10 vmrs APSR_nzcv, fpscr 8003c00: db0b blt.n 8003c1a pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 8003c02: 4ba8 ldr r3, [pc, #672] ; (8003ea4 ) 8003c04: 681b ldr r3, [r3, #0] 8003c06: 4aa8 ldr r2, [pc, #672] ; (8003ea8 ) 8003c08: 015b lsls r3, r3, #5 8003c0a: 4413 add r3, r2 8003c0c: 3318 adds r3, #24 8003c0e: 4aa8 ldr r2, [pc, #672] ; (8003eb0 ) 8003c10: 601a str r2, [r3, #0] s = 99999; 8003c12: 4ba8 ldr r3, [pc, #672] ; (8003eb4 ) 8003c14: 61fb str r3, [r7, #28] ipt = 0; 8003c16: 2300 movs r3, #0 8003c18: 607b str r3, [r7, #4] } ikdt = (s / 10000); 8003c1a: 69fb ldr r3, [r7, #28] 8003c1c: 4aa6 ldr r2, [pc, #664] ; (8003eb8 ) 8003c1e: fba2 2303 umull r2, r3, r2, r3 8003c22: 0b5b lsrs r3, r3, #13 8003c24: 61bb str r3, [r7, #24] ikt = (s % 10000 / 1000); 8003c26: 69fa ldr r2, [r7, #28] 8003c28: 4ba3 ldr r3, [pc, #652] ; (8003eb8 ) 8003c2a: fba3 1302 umull r1, r3, r3, r2 8003c2e: 0b5b lsrs r3, r3, #13 8003c30: f242 7110 movw r1, #10000 ; 0x2710 8003c34: fb01 f303 mul.w r3, r1, r3 8003c38: 1ad3 subs r3, r2, r3 8003c3a: 4aa0 ldr r2, [pc, #640] ; (8003ebc ) 8003c3c: fba2 2303 umull r2, r3, r2, r3 8003c40: 099b lsrs r3, r3, #6 8003c42: 617b str r3, [r7, #20] iks = (s % 10000 % 1000 / 100); 8003c44: 69fa ldr r2, [r7, #28] 8003c46: 4b9c ldr r3, [pc, #624] ; (8003eb8 ) 8003c48: fba3 1302 umull r1, r3, r3, r2 8003c4c: 0b5b lsrs r3, r3, #13 8003c4e: f242 7110 movw r1, #10000 ; 0x2710 8003c52: fb01 f303 mul.w r3, r1, r3 8003c56: 1ad3 subs r3, r2, r3 8003c58: 4a98 ldr r2, [pc, #608] ; (8003ebc ) 8003c5a: fba2 1203 umull r1, r2, r2, r3 8003c5e: 0992 lsrs r2, r2, #6 8003c60: f44f 717a mov.w r1, #1000 ; 0x3e8 8003c64: fb01 f202 mul.w r2, r1, r2 8003c68: 1a9a subs r2, r3, r2 8003c6a: 4b95 ldr r3, [pc, #596] ; (8003ec0 ) 8003c6c: fba3 2302 umull r2, r3, r3, r2 8003c70: 095b lsrs r3, r3, #5 8003c72: 613b str r3, [r7, #16] ikd = (s % 10000 % 1000 % 100 / 10); 8003c74: 69fb ldr r3, [r7, #28] 8003c76: 4a90 ldr r2, [pc, #576] ; (8003eb8 ) 8003c78: fba2 1203 umull r1, r2, r2, r3 8003c7c: 0b52 lsrs r2, r2, #13 8003c7e: f242 7110 movw r1, #10000 ; 0x2710 8003c82: fb01 f202 mul.w r2, r1, r2 8003c86: 1a9a subs r2, r3, r2 8003c88: 4b8c ldr r3, [pc, #560] ; (8003ebc ) 8003c8a: fba3 1302 umull r1, r3, r3, r2 8003c8e: 099b lsrs r3, r3, #6 8003c90: f44f 717a mov.w r1, #1000 ; 0x3e8 8003c94: fb01 f303 mul.w r3, r1, r3 8003c98: 1ad3 subs r3, r2, r3 8003c9a: 4a89 ldr r2, [pc, #548] ; (8003ec0 ) 8003c9c: fba2 1203 umull r1, r2, r2, r3 8003ca0: 0952 lsrs r2, r2, #5 8003ca2: 2164 movs r1, #100 ; 0x64 8003ca4: fb01 f202 mul.w r2, r1, r2 8003ca8: 1a9a subs r2, r3, r2 8003caa: 4b86 ldr r3, [pc, #536] ; (8003ec4 ) 8003cac: fba3 2302 umull r2, r3, r3, r2 8003cb0: 08db lsrs r3, r3, #3 8003cb2: 60fb str r3, [r7, #12] ike = (s % 10000 % 1000 % 100 % 10); 8003cb4: 69fb ldr r3, [r7, #28] 8003cb6: 4a80 ldr r2, [pc, #512] ; (8003eb8 ) 8003cb8: fba2 1203 umull r1, r2, r2, r3 8003cbc: 0b52 lsrs r2, r2, #13 8003cbe: f242 7110 movw r1, #10000 ; 0x2710 8003cc2: fb01 f202 mul.w r2, r1, r2 8003cc6: 1a9a subs r2, r3, r2 8003cc8: 4b7c ldr r3, [pc, #496] ; (8003ebc ) 8003cca: fba3 1302 umull r1, r3, r3, r2 8003cce: 099b lsrs r3, r3, #6 8003cd0: f44f 717a mov.w r1, #1000 ; 0x3e8 8003cd4: fb01 f303 mul.w r3, r1, r3 8003cd8: 1ad3 subs r3, r2, r3 8003cda: 4a79 ldr r2, [pc, #484] ; (8003ec0 ) 8003cdc: fba2 1203 umull r1, r2, r2, r3 8003ce0: 0952 lsrs r2, r2, #5 8003ce2: 2164 movs r1, #100 ; 0x64 8003ce4: fb01 f202 mul.w r2, r1, r2 8003ce8: 1a9a subs r2, r3, r2 8003cea: 4b76 ldr r3, [pc, #472] ; (8003ec4 ) 8003cec: fba3 1302 umull r1, r3, r3, r2 8003cf0: 08d9 lsrs r1, r3, #3 8003cf2: 460b mov r3, r1 8003cf4: 009b lsls r3, r3, #2 8003cf6: 440b add r3, r1 8003cf8: 005b lsls r3, r3, #1 8003cfa: 1ad3 subs r3, r2, r3 8003cfc: 60bb str r3, [r7, #8] if(menupos == Kikdt_1 || menupos == Kikdt_2 || menupos == Kikdt_3 || menupos == Kikdt_4) 8003cfe: 4b72 ldr r3, [pc, #456] ; (8003ec8 ) 8003d00: 781b ldrb r3, [r3, #0] 8003d02: b2db uxtb r3, r3 8003d04: 2b02 cmp r3, #2 8003d06: d00f beq.n 8003d28 8003d08: 4b6f ldr r3, [pc, #444] ; (8003ec8 ) 8003d0a: 781b ldrb r3, [r3, #0] 8003d0c: b2db uxtb r3, r3 8003d0e: 2b0a cmp r3, #10 8003d10: d00a beq.n 8003d28 8003d12: 4b6d ldr r3, [pc, #436] ; (8003ec8 ) 8003d14: 781b ldrb r3, [r3, #0] 8003d16: b2db uxtb r3, r3 8003d18: 2b12 cmp r3, #18 8003d1a: d005 beq.n 8003d28 8003d1c: 4b6a ldr r3, [pc, #424] ; (8003ec8 ) 8003d1e: 781b ldrb r3, [r3, #0] 8003d20: b2db uxtb r3, r3 8003d22: 2b1a cmp r3, #26 8003d24: f040 80dc bne.w 8003ee0 { if(ikdt) { 8003d28: 69bb ldr r3, [r7, #24] 8003d2a: 2b00 cmp r3, #0 8003d2c: d002 beq.n 8003d34 ikdt--; 8003d2e: 69bb ldr r3, [r7, #24] 8003d30: 3b01 subs r3, #1 8003d32: 61bb str r3, [r7, #24] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 8003d34: 69bb ldr r3, [r7, #24] 8003d36: f242 7210 movw r2, #10000 ; 0x2710 8003d3a: fb02 f203 mul.w r2, r2, r3 8003d3e: 697b ldr r3, [r7, #20] 8003d40: f44f 717a mov.w r1, #1000 ; 0x3e8 8003d44: fb01 f303 mul.w r3, r1, r3 8003d48: 18d1 adds r1, r2, r3 8003d4a: 68fa ldr r2, [r7, #12] 8003d4c: 4613 mov r3, r2 8003d4e: 009b lsls r3, r3, #2 8003d50: 4413 add r3, r2 8003d52: 005b lsls r3, r3, #1 8003d54: 4618 mov r0, r3 8003d56: 693b ldr r3, [r7, #16] 8003d58: 2264 movs r2, #100 ; 0x64 8003d5a: fb02 f303 mul.w r3, r2, r3 8003d5e: 4403 add r3, r0 8003d60: 18ca adds r2, r1, r3 8003d62: 68bb ldr r3, [r7, #8] 8003d64: 4413 add r3, r2 8003d66: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 8003d68: 4b4e ldr r3, [pc, #312] ; (8003ea4 ) 8003d6a: 681b ldr r3, [r3, #0] 8003d6c: 69fa ldr r2, [r7, #28] 8003d6e: ee07 2a90 vmov s15, r2 8003d72: eef8 7a67 vcvt.f32.u32 s15, s15 8003d76: 4a4c ldr r2, [pc, #304] ; (8003ea8 ) 8003d78: 015b lsls r3, r3, #5 8003d7a: 4413 add r3, r2 8003d7c: 3318 adds r3, #24 8003d7e: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 8003d82: 687b ldr r3, [r7, #4] 8003d84: 2b01 cmp r3, #1 8003d86: d112 bne.n 8003dae 8003d88: 4b46 ldr r3, [pc, #280] ; (8003ea4 ) 8003d8a: 681b ldr r3, [r3, #0] 8003d8c: 4946 ldr r1, [pc, #280] ; (8003ea8 ) 8003d8e: 015a lsls r2, r3, #5 8003d90: 440a add r2, r1 8003d92: 3218 adds r2, #24 8003d94: edd2 7a00 vldr s15, [r2] 8003d98: ed9f 7a4c vldr s14, [pc, #304] ; 8003ecc 8003d9c: ee67 7a87 vmul.f32 s15, s15, s14 8003da0: 4a41 ldr r2, [pc, #260] ; (8003ea8 ) 8003da2: 015b lsls r3, r3, #5 8003da4: 4413 add r3, r2 8003da6: 3318 adds r3, #24 8003da8: edc3 7a00 vstr s15, [r3] 8003dac: e040 b.n 8003e30 else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8003dae: 687b ldr r3, [r7, #4] 8003db0: 2b02 cmp r3, #2 8003db2: d112 bne.n 8003dda 8003db4: 4b3b ldr r3, [pc, #236] ; (8003ea4 ) 8003db6: 681b ldr r3, [r3, #0] 8003db8: 493b ldr r1, [pc, #236] ; (8003ea8 ) 8003dba: 015a lsls r2, r3, #5 8003dbc: 440a add r2, r1 8003dbe: 3218 adds r2, #24 8003dc0: edd2 7a00 vldr s15, [r2] 8003dc4: ed9f 7a42 vldr s14, [pc, #264] ; 8003ed0 8003dc8: ee67 7a87 vmul.f32 s15, s15, s14 8003dcc: 4a36 ldr r2, [pc, #216] ; (8003ea8 ) 8003dce: 015b lsls r3, r3, #5 8003dd0: 4413 add r3, r2 8003dd2: 3318 adds r3, #24 8003dd4: edc3 7a00 vstr s15, [r3] 8003dd8: e02a b.n 8003e30 else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 8003dda: 687b ldr r3, [r7, #4] 8003ddc: 2b03 cmp r3, #3 8003dde: d112 bne.n 8003e06 8003de0: 4b30 ldr r3, [pc, #192] ; (8003ea4 ) 8003de2: 681b ldr r3, [r3, #0] 8003de4: 4930 ldr r1, [pc, #192] ; (8003ea8 ) 8003de6: 015a lsls r2, r3, #5 8003de8: 440a add r2, r1 8003dea: 3218 adds r2, #24 8003dec: edd2 7a00 vldr s15, [r2] 8003df0: ed9f 7a38 vldr s14, [pc, #224] ; 8003ed4 8003df4: ee67 7a87 vmul.f32 s15, s15, s14 8003df8: 4a2b ldr r2, [pc, #172] ; (8003ea8 ) 8003dfa: 015b lsls r3, r3, #5 8003dfc: 4413 add r3, r2 8003dfe: 3318 adds r3, #24 8003e00: edc3 7a00 vstr s15, [r3] 8003e04: e014 b.n 8003e30 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 8003e06: 687b ldr r3, [r7, #4] 8003e08: 2b04 cmp r3, #4 8003e0a: d111 bne.n 8003e30 8003e0c: 4b25 ldr r3, [pc, #148] ; (8003ea4 ) 8003e0e: 681b ldr r3, [r3, #0] 8003e10: 4925 ldr r1, [pc, #148] ; (8003ea8 ) 8003e12: 015a lsls r2, r3, #5 8003e14: 440a add r2, r1 8003e16: 3218 adds r2, #24 8003e18: edd2 7a00 vldr s15, [r2] 8003e1c: ed9f 7a2e vldr s14, [pc, #184] ; 8003ed8 8003e20: ee67 7a87 vmul.f32 s15, s15, s14 8003e24: 4a20 ldr r2, [pc, #128] ; (8003ea8 ) 8003e26: 015b lsls r3, r3, #5 8003e28: 4413 add r3, r2 8003e2a: 3318 adds r3, #24 8003e2c: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 8003e30: 4b1c ldr r3, [pc, #112] ; (8003ea4 ) 8003e32: 681b ldr r3, [r3, #0] 8003e34: 4a1c ldr r2, [pc, #112] ; (8003ea8 ) 8003e36: 015b lsls r3, r3, #5 8003e38: 4413 add r3, r2 8003e3a: 3318 adds r3, #24 8003e3c: edd3 7a00 vldr s15, [r3] 8003e40: eef5 7ac0 vcmpe.f32 s15, #0.0 8003e44: eef1 fa10 vmrs APSR_nzcv, fpscr 8003e48: d807 bhi.n 8003e5a pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 8003e4a: 4b16 ldr r3, [pc, #88] ; (8003ea4 ) 8003e4c: 681b ldr r3, [r3, #0] 8003e4e: 4a16 ldr r2, [pc, #88] ; (8003ea8 ) 8003e50: 015b lsls r3, r3, #5 8003e52: 4413 add r3, r2 8003e54: 3318 adds r3, #24 8003e56: 4a21 ldr r2, [pc, #132] ; (8003edc ) 8003e58: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 8003e5a: 4b12 ldr r3, [pc, #72] ; (8003ea4 ) 8003e5c: 681b ldr r3, [r3, #0] 8003e5e: 4a12 ldr r2, [pc, #72] ; (8003ea8 ) 8003e60: 015b lsls r3, r3, #5 8003e62: 4413 add r3, r2 8003e64: 3318 adds r3, #24 8003e66: edd3 7a00 vldr s15, [r3] 8003e6a: ed9f 7a10 vldr s14, [pc, #64] ; 8003eac 8003e6e: eef4 7ac7 vcmpe.f32 s15, s14 8003e72: eef1 fa10 vmrs APSR_nzcv, fpscr 8003e76: db07 blt.n 8003e88 pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 8003e78: 4b0a ldr r3, [pc, #40] ; (8003ea4 ) 8003e7a: 681b ldr r3, [r3, #0] 8003e7c: 4a0a ldr r2, [pc, #40] ; (8003ea8 ) 8003e7e: 015b lsls r3, r3, #5 8003e80: 4413 add r3, r2 8003e82: 3318 adds r3, #24 8003e84: 4a0a ldr r2, [pc, #40] ; (8003eb0 ) 8003e86: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 8003e88: 4b06 ldr r3, [pc, #24] ; (8003ea4 ) 8003e8a: 681b ldr r3, [r3, #0] 8003e8c: 4a06 ldr r2, [pc, #24] ; (8003ea8 ) 8003e8e: 015b lsls r3, r3, #5 8003e90: 4413 add r3, r2 8003e92: 3318 adds r3, #24 8003e94: edd3 7a00 vldr s15, [r3] 8003e98: eeb0 0a67 vmov.f32 s0, s15 8003e9c: f000 fc7a bl 8004794 8003ea0: f000 bc60 b.w 8004764 8003ea4: 2006ba68 .word 0x2006ba68 8003ea8: 2006bca8 .word 0x2006bca8 8003eac: 47c35000 .word 0x47c35000 8003eb0: 47c34f80 .word 0x47c34f80 8003eb4: 0001869f .word 0x0001869f 8003eb8: d1b71759 .word 0xd1b71759 8003ebc: 10624dd3 .word 0x10624dd3 8003ec0: 51eb851f .word 0x51eb851f 8003ec4: cccccccd .word 0xcccccccd 8003ec8: 20020010 .word 0x20020010 8003ecc: 3dcccccd .word 0x3dcccccd 8003ed0: 3c23d70a .word 0x3c23d70a 8003ed4: 3a83126f .word 0x3a83126f 8003ed8: 38d1b717 .word 0x38d1b717 8003edc: 38d1b717 .word 0x38d1b717 } else if(menupos == Kikt_1 || menupos == Kikt_2 || menupos == Kikt_3 || menupos == Kikt_4) 8003ee0: 4baa ldr r3, [pc, #680] ; (800418c ) 8003ee2: 781b ldrb r3, [r3, #0] 8003ee4: b2db uxtb r3, r3 8003ee6: 2b03 cmp r3, #3 8003ee8: d00f beq.n 8003f0a 8003eea: 4ba8 ldr r3, [pc, #672] ; (800418c ) 8003eec: 781b ldrb r3, [r3, #0] 8003eee: b2db uxtb r3, r3 8003ef0: 2b0b cmp r3, #11 8003ef2: d00a beq.n 8003f0a 8003ef4: 4ba5 ldr r3, [pc, #660] ; (800418c ) 8003ef6: 781b ldrb r3, [r3, #0] 8003ef8: b2db uxtb r3, r3 8003efa: 2b13 cmp r3, #19 8003efc: d005 beq.n 8003f0a 8003efe: 4ba3 ldr r3, [pc, #652] ; (800418c ) 8003f00: 781b ldrb r3, [r3, #0] 8003f02: b2db uxtb r3, r3 8003f04: 2b1b cmp r3, #27 8003f06: f040 80bd bne.w 8004084 { if(ikt) { 8003f0a: 697b ldr r3, [r7, #20] 8003f0c: 2b00 cmp r3, #0 8003f0e: d002 beq.n 8003f16 ikt--; 8003f10: 697b ldr r3, [r7, #20] 8003f12: 3b01 subs r3, #1 8003f14: 617b str r3, [r7, #20] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 8003f16: 69bb ldr r3, [r7, #24] 8003f18: f242 7210 movw r2, #10000 ; 0x2710 8003f1c: fb02 f203 mul.w r2, r2, r3 8003f20: 697b ldr r3, [r7, #20] 8003f22: f44f 717a mov.w r1, #1000 ; 0x3e8 8003f26: fb01 f303 mul.w r3, r1, r3 8003f2a: 18d1 adds r1, r2, r3 8003f2c: 68fa ldr r2, [r7, #12] 8003f2e: 4613 mov r3, r2 8003f30: 009b lsls r3, r3, #2 8003f32: 4413 add r3, r2 8003f34: 005b lsls r3, r3, #1 8003f36: 4618 mov r0, r3 8003f38: 693b ldr r3, [r7, #16] 8003f3a: 2264 movs r2, #100 ; 0x64 8003f3c: fb02 f303 mul.w r3, r2, r3 8003f40: 4403 add r3, r0 8003f42: 18ca adds r2, r1, r3 8003f44: 68bb ldr r3, [r7, #8] 8003f46: 4413 add r3, r2 8003f48: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 8003f4a: 4b91 ldr r3, [pc, #580] ; (8004190 ) 8003f4c: 681b ldr r3, [r3, #0] 8003f4e: 69fa ldr r2, [r7, #28] 8003f50: ee07 2a90 vmov s15, r2 8003f54: eef8 7a67 vcvt.f32.u32 s15, s15 8003f58: 4a8e ldr r2, [pc, #568] ; (8004194 ) 8003f5a: 015b lsls r3, r3, #5 8003f5c: 4413 add r3, r2 8003f5e: 3318 adds r3, #24 8003f60: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 8003f64: 687b ldr r3, [r7, #4] 8003f66: 2b01 cmp r3, #1 8003f68: d112 bne.n 8003f90 8003f6a: 4b89 ldr r3, [pc, #548] ; (8004190 ) 8003f6c: 681b ldr r3, [r3, #0] 8003f6e: 4989 ldr r1, [pc, #548] ; (8004194 ) 8003f70: 015a lsls r2, r3, #5 8003f72: 440a add r2, r1 8003f74: 3218 adds r2, #24 8003f76: edd2 7a00 vldr s15, [r2] 8003f7a: ed9f 7a87 vldr s14, [pc, #540] ; 8004198 8003f7e: ee67 7a87 vmul.f32 s15, s15, s14 8003f82: 4a84 ldr r2, [pc, #528] ; (8004194 ) 8003f84: 015b lsls r3, r3, #5 8003f86: 4413 add r3, r2 8003f88: 3318 adds r3, #24 8003f8a: edc3 7a00 vstr s15, [r3] 8003f8e: e040 b.n 8004012 else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8003f90: 687b ldr r3, [r7, #4] 8003f92: 2b02 cmp r3, #2 8003f94: d112 bne.n 8003fbc 8003f96: 4b7e ldr r3, [pc, #504] ; (8004190 ) 8003f98: 681b ldr r3, [r3, #0] 8003f9a: 497e ldr r1, [pc, #504] ; (8004194 ) 8003f9c: 015a lsls r2, r3, #5 8003f9e: 440a add r2, r1 8003fa0: 3218 adds r2, #24 8003fa2: edd2 7a00 vldr s15, [r2] 8003fa6: ed9f 7a7d vldr s14, [pc, #500] ; 800419c 8003faa: ee67 7a87 vmul.f32 s15, s15, s14 8003fae: 4a79 ldr r2, [pc, #484] ; (8004194 ) 8003fb0: 015b lsls r3, r3, #5 8003fb2: 4413 add r3, r2 8003fb4: 3318 adds r3, #24 8003fb6: edc3 7a00 vstr s15, [r3] 8003fba: e02a b.n 8004012 else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 8003fbc: 687b ldr r3, [r7, #4] 8003fbe: 2b03 cmp r3, #3 8003fc0: d112 bne.n 8003fe8 8003fc2: 4b73 ldr r3, [pc, #460] ; (8004190 ) 8003fc4: 681b ldr r3, [r3, #0] 8003fc6: 4973 ldr r1, [pc, #460] ; (8004194 ) 8003fc8: 015a lsls r2, r3, #5 8003fca: 440a add r2, r1 8003fcc: 3218 adds r2, #24 8003fce: edd2 7a00 vldr s15, [r2] 8003fd2: ed9f 7a73 vldr s14, [pc, #460] ; 80041a0 8003fd6: ee67 7a87 vmul.f32 s15, s15, s14 8003fda: 4a6e ldr r2, [pc, #440] ; (8004194 ) 8003fdc: 015b lsls r3, r3, #5 8003fde: 4413 add r3, r2 8003fe0: 3318 adds r3, #24 8003fe2: edc3 7a00 vstr s15, [r3] 8003fe6: e014 b.n 8004012 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 8003fe8: 687b ldr r3, [r7, #4] 8003fea: 2b04 cmp r3, #4 8003fec: d111 bne.n 8004012 8003fee: 4b68 ldr r3, [pc, #416] ; (8004190 ) 8003ff0: 681b ldr r3, [r3, #0] 8003ff2: 4968 ldr r1, [pc, #416] ; (8004194 ) 8003ff4: 015a lsls r2, r3, #5 8003ff6: 440a add r2, r1 8003ff8: 3218 adds r2, #24 8003ffa: edd2 7a00 vldr s15, [r2] 8003ffe: ed9f 7a69 vldr s14, [pc, #420] ; 80041a4 8004002: ee67 7a87 vmul.f32 s15, s15, s14 8004006: 4a63 ldr r2, [pc, #396] ; (8004194 ) 8004008: 015b lsls r3, r3, #5 800400a: 4413 add r3, r2 800400c: 3318 adds r3, #24 800400e: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 8004012: 4b5f ldr r3, [pc, #380] ; (8004190 ) 8004014: 681b ldr r3, [r3, #0] 8004016: 4a5f ldr r2, [pc, #380] ; (8004194 ) 8004018: 015b lsls r3, r3, #5 800401a: 4413 add r3, r2 800401c: 3318 adds r3, #24 800401e: edd3 7a00 vldr s15, [r3] 8004022: eef5 7ac0 vcmpe.f32 s15, #0.0 8004026: eef1 fa10 vmrs APSR_nzcv, fpscr 800402a: d807 bhi.n 800403c pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 800402c: 4b58 ldr r3, [pc, #352] ; (8004190 ) 800402e: 681b ldr r3, [r3, #0] 8004030: 4a58 ldr r2, [pc, #352] ; (8004194 ) 8004032: 015b lsls r3, r3, #5 8004034: 4413 add r3, r2 8004036: 3318 adds r3, #24 8004038: 4a5b ldr r2, [pc, #364] ; (80041a8 ) 800403a: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 800403c: 4b54 ldr r3, [pc, #336] ; (8004190 ) 800403e: 681b ldr r3, [r3, #0] 8004040: 4a54 ldr r2, [pc, #336] ; (8004194 ) 8004042: 015b lsls r3, r3, #5 8004044: 4413 add r3, r2 8004046: 3318 adds r3, #24 8004048: edd3 7a00 vldr s15, [r3] 800404c: ed9f 7a57 vldr s14, [pc, #348] ; 80041ac 8004050: eef4 7ac7 vcmpe.f32 s15, s14 8004054: eef1 fa10 vmrs APSR_nzcv, fpscr 8004058: db07 blt.n 800406a pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 800405a: 4b4d ldr r3, [pc, #308] ; (8004190 ) 800405c: 681b ldr r3, [r3, #0] 800405e: 4a4d ldr r2, [pc, #308] ; (8004194 ) 8004060: 015b lsls r3, r3, #5 8004062: 4413 add r3, r2 8004064: 3318 adds r3, #24 8004066: 4a52 ldr r2, [pc, #328] ; (80041b0 ) 8004068: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 800406a: 4b49 ldr r3, [pc, #292] ; (8004190 ) 800406c: 681b ldr r3, [r3, #0] 800406e: 4a49 ldr r2, [pc, #292] ; (8004194 ) 8004070: 015b lsls r3, r3, #5 8004072: 4413 add r3, r2 8004074: 3318 adds r3, #24 8004076: edd3 7a00 vldr s15, [r3] 800407a: eeb0 0a67 vmov.f32 s0, s15 800407e: f000 fb89 bl 8004794 8004082: e36f b.n 8004764 } else if(menupos == Kiks_1 || menupos == Kiks_2 || menupos == Kiks_3 || menupos == Kiks_4) 8004084: 4b41 ldr r3, [pc, #260] ; (800418c ) 8004086: 781b ldrb r3, [r3, #0] 8004088: b2db uxtb r3, r3 800408a: 2b04 cmp r3, #4 800408c: d00f beq.n 80040ae 800408e: 4b3f ldr r3, [pc, #252] ; (800418c ) 8004090: 781b ldrb r3, [r3, #0] 8004092: b2db uxtb r3, r3 8004094: 2b0c cmp r3, #12 8004096: d00a beq.n 80040ae 8004098: 4b3c ldr r3, [pc, #240] ; (800418c ) 800409a: 781b ldrb r3, [r3, #0] 800409c: b2db uxtb r3, r3 800409e: 2b14 cmp r3, #20 80040a0: d005 beq.n 80040ae 80040a2: 4b3a ldr r3, [pc, #232] ; (800418c ) 80040a4: 781b ldrb r3, [r3, #0] 80040a6: b2db uxtb r3, r3 80040a8: 2b1c cmp r3, #28 80040aa: f040 80d1 bne.w 8004250 { if(iks) { 80040ae: 693b ldr r3, [r7, #16] 80040b0: 2b00 cmp r3, #0 80040b2: d002 beq.n 80040ba iks--; 80040b4: 693b ldr r3, [r7, #16] 80040b6: 3b01 subs r3, #1 80040b8: 613b str r3, [r7, #16] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 80040ba: 69bb ldr r3, [r7, #24] 80040bc: f242 7210 movw r2, #10000 ; 0x2710 80040c0: fb02 f203 mul.w r2, r2, r3 80040c4: 697b ldr r3, [r7, #20] 80040c6: f44f 717a mov.w r1, #1000 ; 0x3e8 80040ca: fb01 f303 mul.w r3, r1, r3 80040ce: 18d1 adds r1, r2, r3 80040d0: 68fa ldr r2, [r7, #12] 80040d2: 4613 mov r3, r2 80040d4: 009b lsls r3, r3, #2 80040d6: 4413 add r3, r2 80040d8: 005b lsls r3, r3, #1 80040da: 4618 mov r0, r3 80040dc: 693b ldr r3, [r7, #16] 80040de: 2264 movs r2, #100 ; 0x64 80040e0: fb02 f303 mul.w r3, r2, r3 80040e4: 4403 add r3, r0 80040e6: 18ca adds r2, r1, r3 80040e8: 68bb ldr r3, [r7, #8] 80040ea: 4413 add r3, r2 80040ec: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 80040ee: 4b28 ldr r3, [pc, #160] ; (8004190 ) 80040f0: 681b ldr r3, [r3, #0] 80040f2: 69fa ldr r2, [r7, #28] 80040f4: ee07 2a90 vmov s15, r2 80040f8: eef8 7a67 vcvt.f32.u32 s15, s15 80040fc: 4a25 ldr r2, [pc, #148] ; (8004194 ) 80040fe: 015b lsls r3, r3, #5 8004100: 4413 add r3, r2 8004102: 3318 adds r3, #24 8004104: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 8004108: 687b ldr r3, [r7, #4] 800410a: 2b01 cmp r3, #1 800410c: d112 bne.n 8004134 800410e: 4b20 ldr r3, [pc, #128] ; (8004190 ) 8004110: 681b ldr r3, [r3, #0] 8004112: 4920 ldr r1, [pc, #128] ; (8004194 ) 8004114: 015a lsls r2, r3, #5 8004116: 440a add r2, r1 8004118: 3218 adds r2, #24 800411a: edd2 7a00 vldr s15, [r2] 800411e: ed9f 7a1e vldr s14, [pc, #120] ; 8004198 8004122: ee67 7a87 vmul.f32 s15, s15, s14 8004126: 4a1b ldr r2, [pc, #108] ; (8004194 ) 8004128: 015b lsls r3, r3, #5 800412a: 4413 add r3, r2 800412c: 3318 adds r3, #24 800412e: edc3 7a00 vstr s15, [r3] 8004132: e054 b.n 80041de else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8004134: 687b ldr r3, [r7, #4] 8004136: 2b02 cmp r3, #2 8004138: d112 bne.n 8004160 800413a: 4b15 ldr r3, [pc, #84] ; (8004190 ) 800413c: 681b ldr r3, [r3, #0] 800413e: 4915 ldr r1, [pc, #84] ; (8004194 ) 8004140: 015a lsls r2, r3, #5 8004142: 440a add r2, r1 8004144: 3218 adds r2, #24 8004146: edd2 7a00 vldr s15, [r2] 800414a: ed9f 7a14 vldr s14, [pc, #80] ; 800419c 800414e: ee67 7a87 vmul.f32 s15, s15, s14 8004152: 4a10 ldr r2, [pc, #64] ; (8004194 ) 8004154: 015b lsls r3, r3, #5 8004156: 4413 add r3, r2 8004158: 3318 adds r3, #24 800415a: edc3 7a00 vstr s15, [r3] 800415e: e03e b.n 80041de else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 8004160: 687b ldr r3, [r7, #4] 8004162: 2b03 cmp r3, #3 8004164: d126 bne.n 80041b4 8004166: 4b0a ldr r3, [pc, #40] ; (8004190 ) 8004168: 681b ldr r3, [r3, #0] 800416a: 490a ldr r1, [pc, #40] ; (8004194 ) 800416c: 015a lsls r2, r3, #5 800416e: 440a add r2, r1 8004170: 3218 adds r2, #24 8004172: edd2 7a00 vldr s15, [r2] 8004176: ed9f 7a0a vldr s14, [pc, #40] ; 80041a0 800417a: ee67 7a87 vmul.f32 s15, s15, s14 800417e: 4a05 ldr r2, [pc, #20] ; (8004194 ) 8004180: 015b lsls r3, r3, #5 8004182: 4413 add r3, r2 8004184: 3318 adds r3, #24 8004186: edc3 7a00 vstr s15, [r3] 800418a: e028 b.n 80041de 800418c: 20020010 .word 0x20020010 8004190: 2006ba68 .word 0x2006ba68 8004194: 2006bca8 .word 0x2006bca8 8004198: 3dcccccd .word 0x3dcccccd 800419c: 3c23d70a .word 0x3c23d70a 80041a0: 3a83126f .word 0x3a83126f 80041a4: 38d1b717 .word 0x38d1b717 80041a8: 38d1b717 .word 0x38d1b717 80041ac: 47c35000 .word 0x47c35000 80041b0: 47c34f80 .word 0x47c34f80 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 80041b4: 687b ldr r3, [r7, #4] 80041b6: 2b04 cmp r3, #4 80041b8: d111 bne.n 80041de 80041ba: 4bba ldr r3, [pc, #744] ; (80044a4 ) 80041bc: 681b ldr r3, [r3, #0] 80041be: 49ba ldr r1, [pc, #744] ; (80044a8 ) 80041c0: 015a lsls r2, r3, #5 80041c2: 440a add r2, r1 80041c4: 3218 adds r2, #24 80041c6: edd2 7a00 vldr s15, [r2] 80041ca: ed9f 7ab8 vldr s14, [pc, #736] ; 80044ac 80041ce: ee67 7a87 vmul.f32 s15, s15, s14 80041d2: 4ab5 ldr r2, [pc, #724] ; (80044a8 ) 80041d4: 015b lsls r3, r3, #5 80041d6: 4413 add r3, r2 80041d8: 3318 adds r3, #24 80041da: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 80041de: 4bb1 ldr r3, [pc, #708] ; (80044a4 ) 80041e0: 681b ldr r3, [r3, #0] 80041e2: 4ab1 ldr r2, [pc, #708] ; (80044a8 ) 80041e4: 015b lsls r3, r3, #5 80041e6: 4413 add r3, r2 80041e8: 3318 adds r3, #24 80041ea: edd3 7a00 vldr s15, [r3] 80041ee: eef5 7ac0 vcmpe.f32 s15, #0.0 80041f2: eef1 fa10 vmrs APSR_nzcv, fpscr 80041f6: d807 bhi.n 8004208 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 80041f8: 4baa ldr r3, [pc, #680] ; (80044a4 ) 80041fa: 681b ldr r3, [r3, #0] 80041fc: 4aaa ldr r2, [pc, #680] ; (80044a8 ) 80041fe: 015b lsls r3, r3, #5 8004200: 4413 add r3, r2 8004202: 3318 adds r3, #24 8004204: 4aaa ldr r2, [pc, #680] ; (80044b0 ) 8004206: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 8004208: 4ba6 ldr r3, [pc, #664] ; (80044a4 ) 800420a: 681b ldr r3, [r3, #0] 800420c: 4aa6 ldr r2, [pc, #664] ; (80044a8 ) 800420e: 015b lsls r3, r3, #5 8004210: 4413 add r3, r2 8004212: 3318 adds r3, #24 8004214: edd3 7a00 vldr s15, [r3] 8004218: ed9f 7aa6 vldr s14, [pc, #664] ; 80044b4 800421c: eef4 7ac7 vcmpe.f32 s15, s14 8004220: eef1 fa10 vmrs APSR_nzcv, fpscr 8004224: db07 blt.n 8004236 pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 8004226: 4b9f ldr r3, [pc, #636] ; (80044a4 ) 8004228: 681b ldr r3, [r3, #0] 800422a: 4a9f ldr r2, [pc, #636] ; (80044a8 ) 800422c: 015b lsls r3, r3, #5 800422e: 4413 add r3, r2 8004230: 3318 adds r3, #24 8004232: 4aa1 ldr r2, [pc, #644] ; (80044b8 ) 8004234: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 8004236: 4b9b ldr r3, [pc, #620] ; (80044a4 ) 8004238: 681b ldr r3, [r3, #0] 800423a: 4a9b ldr r2, [pc, #620] ; (80044a8 ) 800423c: 015b lsls r3, r3, #5 800423e: 4413 add r3, r2 8004240: 3318 adds r3, #24 8004242: edd3 7a00 vldr s15, [r3] 8004246: eeb0 0a67 vmov.f32 s0, s15 800424a: f000 faa3 bl 8004794 800424e: e289 b.n 8004764 } else if(menupos == Kikd_1 || menupos == Kikd_2 || menupos == Kikd_3 || menupos == Kikd_4) 8004250: 4b9a ldr r3, [pc, #616] ; (80044bc ) 8004252: 781b ldrb r3, [r3, #0] 8004254: b2db uxtb r3, r3 8004256: 2b05 cmp r3, #5 8004258: d00f beq.n 800427a 800425a: 4b98 ldr r3, [pc, #608] ; (80044bc ) 800425c: 781b ldrb r3, [r3, #0] 800425e: b2db uxtb r3, r3 8004260: 2b0d cmp r3, #13 8004262: d00a beq.n 800427a 8004264: 4b95 ldr r3, [pc, #596] ; (80044bc ) 8004266: 781b ldrb r3, [r3, #0] 8004268: b2db uxtb r3, r3 800426a: 2b15 cmp r3, #21 800426c: d005 beq.n 800427a 800426e: 4b93 ldr r3, [pc, #588] ; (80044bc ) 8004270: 781b ldrb r3, [r3, #0] 8004272: b2db uxtb r3, r3 8004274: 2b1d cmp r3, #29 8004276: f040 80bd bne.w 80043f4 { if(ikd) { 800427a: 68fb ldr r3, [r7, #12] 800427c: 2b00 cmp r3, #0 800427e: d002 beq.n 8004286 ikd--; 8004280: 68fb ldr r3, [r7, #12] 8004282: 3b01 subs r3, #1 8004284: 60fb str r3, [r7, #12] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 8004286: 69bb ldr r3, [r7, #24] 8004288: f242 7210 movw r2, #10000 ; 0x2710 800428c: fb02 f203 mul.w r2, r2, r3 8004290: 697b ldr r3, [r7, #20] 8004292: f44f 717a mov.w r1, #1000 ; 0x3e8 8004296: fb01 f303 mul.w r3, r1, r3 800429a: 18d1 adds r1, r2, r3 800429c: 68fa ldr r2, [r7, #12] 800429e: 4613 mov r3, r2 80042a0: 009b lsls r3, r3, #2 80042a2: 4413 add r3, r2 80042a4: 005b lsls r3, r3, #1 80042a6: 4618 mov r0, r3 80042a8: 693b ldr r3, [r7, #16] 80042aa: 2264 movs r2, #100 ; 0x64 80042ac: fb02 f303 mul.w r3, r2, r3 80042b0: 4403 add r3, r0 80042b2: 18ca adds r2, r1, r3 80042b4: 68bb ldr r3, [r7, #8] 80042b6: 4413 add r3, r2 80042b8: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 80042ba: 4b7a ldr r3, [pc, #488] ; (80044a4 ) 80042bc: 681b ldr r3, [r3, #0] 80042be: 69fa ldr r2, [r7, #28] 80042c0: ee07 2a90 vmov s15, r2 80042c4: eef8 7a67 vcvt.f32.u32 s15, s15 80042c8: 4a77 ldr r2, [pc, #476] ; (80044a8 ) 80042ca: 015b lsls r3, r3, #5 80042cc: 4413 add r3, r2 80042ce: 3318 adds r3, #24 80042d0: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 80042d4: 687b ldr r3, [r7, #4] 80042d6: 2b01 cmp r3, #1 80042d8: d112 bne.n 8004300 80042da: 4b72 ldr r3, [pc, #456] ; (80044a4 ) 80042dc: 681b ldr r3, [r3, #0] 80042de: 4972 ldr r1, [pc, #456] ; (80044a8 ) 80042e0: 015a lsls r2, r3, #5 80042e2: 440a add r2, r1 80042e4: 3218 adds r2, #24 80042e6: edd2 7a00 vldr s15, [r2] 80042ea: ed9f 7a75 vldr s14, [pc, #468] ; 80044c0 80042ee: ee67 7a87 vmul.f32 s15, s15, s14 80042f2: 4a6d ldr r2, [pc, #436] ; (80044a8 ) 80042f4: 015b lsls r3, r3, #5 80042f6: 4413 add r3, r2 80042f8: 3318 adds r3, #24 80042fa: edc3 7a00 vstr s15, [r3] 80042fe: e040 b.n 8004382 else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8004300: 687b ldr r3, [r7, #4] 8004302: 2b02 cmp r3, #2 8004304: d112 bne.n 800432c 8004306: 4b67 ldr r3, [pc, #412] ; (80044a4 ) 8004308: 681b ldr r3, [r3, #0] 800430a: 4967 ldr r1, [pc, #412] ; (80044a8 ) 800430c: 015a lsls r2, r3, #5 800430e: 440a add r2, r1 8004310: 3218 adds r2, #24 8004312: edd2 7a00 vldr s15, [r2] 8004316: ed9f 7a6b vldr s14, [pc, #428] ; 80044c4 800431a: ee67 7a87 vmul.f32 s15, s15, s14 800431e: 4a62 ldr r2, [pc, #392] ; (80044a8 ) 8004320: 015b lsls r3, r3, #5 8004322: 4413 add r3, r2 8004324: 3318 adds r3, #24 8004326: edc3 7a00 vstr s15, [r3] 800432a: e02a b.n 8004382 else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 800432c: 687b ldr r3, [r7, #4] 800432e: 2b03 cmp r3, #3 8004330: d112 bne.n 8004358 8004332: 4b5c ldr r3, [pc, #368] ; (80044a4 ) 8004334: 681b ldr r3, [r3, #0] 8004336: 495c ldr r1, [pc, #368] ; (80044a8 ) 8004338: 015a lsls r2, r3, #5 800433a: 440a add r2, r1 800433c: 3218 adds r2, #24 800433e: edd2 7a00 vldr s15, [r2] 8004342: ed9f 7a61 vldr s14, [pc, #388] ; 80044c8 8004346: ee67 7a87 vmul.f32 s15, s15, s14 800434a: 4a57 ldr r2, [pc, #348] ; (80044a8 ) 800434c: 015b lsls r3, r3, #5 800434e: 4413 add r3, r2 8004350: 3318 adds r3, #24 8004352: edc3 7a00 vstr s15, [r3] 8004356: e014 b.n 8004382 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 8004358: 687b ldr r3, [r7, #4] 800435a: 2b04 cmp r3, #4 800435c: d111 bne.n 8004382 800435e: 4b51 ldr r3, [pc, #324] ; (80044a4 ) 8004360: 681b ldr r3, [r3, #0] 8004362: 4951 ldr r1, [pc, #324] ; (80044a8 ) 8004364: 015a lsls r2, r3, #5 8004366: 440a add r2, r1 8004368: 3218 adds r2, #24 800436a: edd2 7a00 vldr s15, [r2] 800436e: ed9f 7a4f vldr s14, [pc, #316] ; 80044ac 8004372: ee67 7a87 vmul.f32 s15, s15, s14 8004376: 4a4c ldr r2, [pc, #304] ; (80044a8 ) 8004378: 015b lsls r3, r3, #5 800437a: 4413 add r3, r2 800437c: 3318 adds r3, #24 800437e: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 8004382: 4b48 ldr r3, [pc, #288] ; (80044a4 ) 8004384: 681b ldr r3, [r3, #0] 8004386: 4a48 ldr r2, [pc, #288] ; (80044a8 ) 8004388: 015b lsls r3, r3, #5 800438a: 4413 add r3, r2 800438c: 3318 adds r3, #24 800438e: edd3 7a00 vldr s15, [r3] 8004392: eef5 7ac0 vcmpe.f32 s15, #0.0 8004396: eef1 fa10 vmrs APSR_nzcv, fpscr 800439a: d807 bhi.n 80043ac pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 800439c: 4b41 ldr r3, [pc, #260] ; (80044a4 ) 800439e: 681b ldr r3, [r3, #0] 80043a0: 4a41 ldr r2, [pc, #260] ; (80044a8 ) 80043a2: 015b lsls r3, r3, #5 80043a4: 4413 add r3, r2 80043a6: 3318 adds r3, #24 80043a8: 4a41 ldr r2, [pc, #260] ; (80044b0 ) 80043aa: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 80043ac: 4b3d ldr r3, [pc, #244] ; (80044a4 ) 80043ae: 681b ldr r3, [r3, #0] 80043b0: 4a3d ldr r2, [pc, #244] ; (80044a8 ) 80043b2: 015b lsls r3, r3, #5 80043b4: 4413 add r3, r2 80043b6: 3318 adds r3, #24 80043b8: edd3 7a00 vldr s15, [r3] 80043bc: ed9f 7a3d vldr s14, [pc, #244] ; 80044b4 80043c0: eef4 7ac7 vcmpe.f32 s15, s14 80043c4: eef1 fa10 vmrs APSR_nzcv, fpscr 80043c8: db07 blt.n 80043da pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 80043ca: 4b36 ldr r3, [pc, #216] ; (80044a4 ) 80043cc: 681b ldr r3, [r3, #0] 80043ce: 4a36 ldr r2, [pc, #216] ; (80044a8 ) 80043d0: 015b lsls r3, r3, #5 80043d2: 4413 add r3, r2 80043d4: 3318 adds r3, #24 80043d6: 4a38 ldr r2, [pc, #224] ; (80044b8 ) 80043d8: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 80043da: 4b32 ldr r3, [pc, #200] ; (80044a4 ) 80043dc: 681b ldr r3, [r3, #0] 80043de: 4a32 ldr r2, [pc, #200] ; (80044a8 ) 80043e0: 015b lsls r3, r3, #5 80043e2: 4413 add r3, r2 80043e4: 3318 adds r3, #24 80043e6: edd3 7a00 vldr s15, [r3] 80043ea: eeb0 0a67 vmov.f32 s0, s15 80043ee: f000 f9d1 bl 8004794 80043f2: e1b7 b.n 8004764 } else if(menupos == Kike_1 || menupos == Kike_2 || menupos == Kike_3 || menupos == Kike_4) 80043f4: 4b31 ldr r3, [pc, #196] ; (80044bc ) 80043f6: 781b ldrb r3, [r3, #0] 80043f8: b2db uxtb r3, r3 80043fa: 2b06 cmp r3, #6 80043fc: d00f beq.n 800441e 80043fe: 4b2f ldr r3, [pc, #188] ; (80044bc ) 8004400: 781b ldrb r3, [r3, #0] 8004402: b2db uxtb r3, r3 8004404: 2b0e cmp r3, #14 8004406: d00a beq.n 800441e 8004408: 4b2c ldr r3, [pc, #176] ; (80044bc ) 800440a: 781b ldrb r3, [r3, #0] 800440c: b2db uxtb r3, r3 800440e: 2b16 cmp r3, #22 8004410: d005 beq.n 800441e 8004412: 4b2a ldr r3, [pc, #168] ; (80044bc ) 8004414: 781b ldrb r3, [r3, #0] 8004416: b2db uxtb r3, r3 8004418: 2b1e cmp r3, #30 800441a: f040 80d1 bne.w 80045c0 { if(ike) { 800441e: 68bb ldr r3, [r7, #8] 8004420: 2b00 cmp r3, #0 8004422: d002 beq.n 800442a ike--; 8004424: 68bb ldr r3, [r7, #8] 8004426: 3b01 subs r3, #1 8004428: 60bb str r3, [r7, #8] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 800442a: 69bb ldr r3, [r7, #24] 800442c: f242 7210 movw r2, #10000 ; 0x2710 8004430: fb02 f203 mul.w r2, r2, r3 8004434: 697b ldr r3, [r7, #20] 8004436: f44f 717a mov.w r1, #1000 ; 0x3e8 800443a: fb01 f303 mul.w r3, r1, r3 800443e: 18d1 adds r1, r2, r3 8004440: 68fa ldr r2, [r7, #12] 8004442: 4613 mov r3, r2 8004444: 009b lsls r3, r3, #2 8004446: 4413 add r3, r2 8004448: 005b lsls r3, r3, #1 800444a: 4618 mov r0, r3 800444c: 693b ldr r3, [r7, #16] 800444e: 2264 movs r2, #100 ; 0x64 8004450: fb02 f303 mul.w r3, r2, r3 8004454: 4403 add r3, r0 8004456: 18ca adds r2, r1, r3 8004458: 68bb ldr r3, [r7, #8] 800445a: 4413 add r3, r2 800445c: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 800445e: 4b11 ldr r3, [pc, #68] ; (80044a4 ) 8004460: 681b ldr r3, [r3, #0] 8004462: 69fa ldr r2, [r7, #28] 8004464: ee07 2a90 vmov s15, r2 8004468: eef8 7a67 vcvt.f32.u32 s15, s15 800446c: 4a0e ldr r2, [pc, #56] ; (80044a8 ) 800446e: 015b lsls r3, r3, #5 8004470: 4413 add r3, r2 8004472: 3318 adds r3, #24 8004474: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 8004478: 687b ldr r3, [r7, #4] 800447a: 2b01 cmp r3, #1 800447c: d126 bne.n 80044cc 800447e: 4b09 ldr r3, [pc, #36] ; (80044a4 ) 8004480: 681b ldr r3, [r3, #0] 8004482: 4909 ldr r1, [pc, #36] ; (80044a8 ) 8004484: 015a lsls r2, r3, #5 8004486: 440a add r2, r1 8004488: 3218 adds r2, #24 800448a: edd2 7a00 vldr s15, [r2] 800448e: ed9f 7a0c vldr s14, [pc, #48] ; 80044c0 8004492: ee67 7a87 vmul.f32 s15, s15, s14 8004496: 4a04 ldr r2, [pc, #16] ; (80044a8 ) 8004498: 015b lsls r3, r3, #5 800449a: 4413 add r3, r2 800449c: 3318 adds r3, #24 800449e: edc3 7a00 vstr s15, [r3] 80044a2: e054 b.n 800454e 80044a4: 2006ba68 .word 0x2006ba68 80044a8: 2006bca8 .word 0x2006bca8 80044ac: 38d1b717 .word 0x38d1b717 80044b0: 38d1b717 .word 0x38d1b717 80044b4: 47c35000 .word 0x47c35000 80044b8: 47c34f80 .word 0x47c34f80 80044bc: 20020010 .word 0x20020010 80044c0: 3dcccccd .word 0x3dcccccd 80044c4: 3c23d70a .word 0x3c23d70a 80044c8: 3a83126f .word 0x3a83126f else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 80044cc: 687b ldr r3, [r7, #4] 80044ce: 2b02 cmp r3, #2 80044d0: d112 bne.n 80044f8 80044d2: 4ba6 ldr r3, [pc, #664] ; (800476c ) 80044d4: 681b ldr r3, [r3, #0] 80044d6: 49a6 ldr r1, [pc, #664] ; (8004770 ) 80044d8: 015a lsls r2, r3, #5 80044da: 440a add r2, r1 80044dc: 3218 adds r2, #24 80044de: edd2 7a00 vldr s15, [r2] 80044e2: ed9f 7aa4 vldr s14, [pc, #656] ; 8004774 80044e6: ee67 7a87 vmul.f32 s15, s15, s14 80044ea: 4aa1 ldr r2, [pc, #644] ; (8004770 ) 80044ec: 015b lsls r3, r3, #5 80044ee: 4413 add r3, r2 80044f0: 3318 adds r3, #24 80044f2: edc3 7a00 vstr s15, [r3] 80044f6: e02a b.n 800454e else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 80044f8: 687b ldr r3, [r7, #4] 80044fa: 2b03 cmp r3, #3 80044fc: d112 bne.n 8004524 80044fe: 4b9b ldr r3, [pc, #620] ; (800476c ) 8004500: 681b ldr r3, [r3, #0] 8004502: 499b ldr r1, [pc, #620] ; (8004770 ) 8004504: 015a lsls r2, r3, #5 8004506: 440a add r2, r1 8004508: 3218 adds r2, #24 800450a: edd2 7a00 vldr s15, [r2] 800450e: ed9f 7a9a vldr s14, [pc, #616] ; 8004778 8004512: ee67 7a87 vmul.f32 s15, s15, s14 8004516: 4a96 ldr r2, [pc, #600] ; (8004770 ) 8004518: 015b lsls r3, r3, #5 800451a: 4413 add r3, r2 800451c: 3318 adds r3, #24 800451e: edc3 7a00 vstr s15, [r3] 8004522: e014 b.n 800454e else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 8004524: 687b ldr r3, [r7, #4] 8004526: 2b04 cmp r3, #4 8004528: d111 bne.n 800454e 800452a: 4b90 ldr r3, [pc, #576] ; (800476c ) 800452c: 681b ldr r3, [r3, #0] 800452e: 4990 ldr r1, [pc, #576] ; (8004770 ) 8004530: 015a lsls r2, r3, #5 8004532: 440a add r2, r1 8004534: 3218 adds r2, #24 8004536: edd2 7a00 vldr s15, [r2] 800453a: ed9f 7a90 vldr s14, [pc, #576] ; 800477c 800453e: ee67 7a87 vmul.f32 s15, s15, s14 8004542: 4a8b ldr r2, [pc, #556] ; (8004770 ) 8004544: 015b lsls r3, r3, #5 8004546: 4413 add r3, r2 8004548: 3318 adds r3, #24 800454a: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 800454e: 4b87 ldr r3, [pc, #540] ; (800476c ) 8004550: 681b ldr r3, [r3, #0] 8004552: 4a87 ldr r2, [pc, #540] ; (8004770 ) 8004554: 015b lsls r3, r3, #5 8004556: 4413 add r3, r2 8004558: 3318 adds r3, #24 800455a: edd3 7a00 vldr s15, [r3] 800455e: eef5 7ac0 vcmpe.f32 s15, #0.0 8004562: eef1 fa10 vmrs APSR_nzcv, fpscr 8004566: d807 bhi.n 8004578 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 8004568: 4b80 ldr r3, [pc, #512] ; (800476c ) 800456a: 681b ldr r3, [r3, #0] 800456c: 4a80 ldr r2, [pc, #512] ; (8004770 ) 800456e: 015b lsls r3, r3, #5 8004570: 4413 add r3, r2 8004572: 3318 adds r3, #24 8004574: 4a82 ldr r2, [pc, #520] ; (8004780 ) 8004576: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 8004578: 4b7c ldr r3, [pc, #496] ; (800476c ) 800457a: 681b ldr r3, [r3, #0] 800457c: 4a7c ldr r2, [pc, #496] ; (8004770 ) 800457e: 015b lsls r3, r3, #5 8004580: 4413 add r3, r2 8004582: 3318 adds r3, #24 8004584: edd3 7a00 vldr s15, [r3] 8004588: ed9f 7a7e vldr s14, [pc, #504] ; 8004784 800458c: eef4 7ac7 vcmpe.f32 s15, s14 8004590: eef1 fa10 vmrs APSR_nzcv, fpscr 8004594: db07 blt.n 80045a6 pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 8004596: 4b75 ldr r3, [pc, #468] ; (800476c ) 8004598: 681b ldr r3, [r3, #0] 800459a: 4a75 ldr r2, [pc, #468] ; (8004770 ) 800459c: 015b lsls r3, r3, #5 800459e: 4413 add r3, r2 80045a0: 3318 adds r3, #24 80045a2: 4a79 ldr r2, [pc, #484] ; (8004788 ) 80045a4: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 80045a6: 4b71 ldr r3, [pc, #452] ; (800476c ) 80045a8: 681b ldr r3, [r3, #0] 80045aa: 4a71 ldr r2, [pc, #452] ; (8004770 ) 80045ac: 015b lsls r3, r3, #5 80045ae: 4413 add r3, r2 80045b0: 3318 adds r3, #24 80045b2: edd3 7a00 vldr s15, [r3] 80045b6: eeb0 0a67 vmov.f32 s0, s15 80045ba: f000 f8eb bl 8004794 80045be: e0d1 b.n 8004764 } else if(menupos == Kpt_1 || menupos == Kpt_2 || menupos == Kpt_3 || menupos == Kpt_4) 80045c0: 4b72 ldr r3, [pc, #456] ; (800478c ) 80045c2: 781b ldrb r3, [r3, #0] 80045c4: b2db uxtb r3, r3 80045c6: 2b07 cmp r3, #7 80045c8: d00f beq.n 80045ea 80045ca: 4b70 ldr r3, [pc, #448] ; (800478c ) 80045cc: 781b ldrb r3, [r3, #0] 80045ce: b2db uxtb r3, r3 80045d0: 2b0f cmp r3, #15 80045d2: d00a beq.n 80045ea 80045d4: 4b6d ldr r3, [pc, #436] ; (800478c ) 80045d6: 781b ldrb r3, [r3, #0] 80045d8: b2db uxtb r3, r3 80045da: 2b17 cmp r3, #23 80045dc: d005 beq.n 80045ea 80045de: 4b6b ldr r3, [pc, #428] ; (800478c ) 80045e0: 781b ldrb r3, [r3, #0] 80045e2: b2db uxtb r3, r3 80045e4: 2b1f cmp r3, #31 80045e6: f040 80bd bne.w 8004764 { if(ipt < 4) { 80045ea: 687b ldr r3, [r7, #4] 80045ec: 2b03 cmp r3, #3 80045ee: d802 bhi.n 80045f6 ipt++; 80045f0: 687b ldr r3, [r7, #4] 80045f2: 3301 adds r3, #1 80045f4: 607b str r3, [r7, #4] } s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 80045f6: 69bb ldr r3, [r7, #24] 80045f8: f242 7210 movw r2, #10000 ; 0x2710 80045fc: fb02 f203 mul.w r2, r2, r3 8004600: 697b ldr r3, [r7, #20] 8004602: f44f 717a mov.w r1, #1000 ; 0x3e8 8004606: fb01 f303 mul.w r3, r1, r3 800460a: 18d1 adds r1, r2, r3 800460c: 68fa ldr r2, [r7, #12] 800460e: 4613 mov r3, r2 8004610: 009b lsls r3, r3, #2 8004612: 4413 add r3, r2 8004614: 005b lsls r3, r3, #1 8004616: 4618 mov r0, r3 8004618: 693b ldr r3, [r7, #16] 800461a: 2264 movs r2, #100 ; 0x64 800461c: fb02 f303 mul.w r3, r2, r3 8004620: 4403 add r3, r0 8004622: 18ca adds r2, r1, r3 8004624: 68bb ldr r3, [r7, #8] 8004626: 4413 add r3, r2 8004628: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 800462a: 4b50 ldr r3, [pc, #320] ; (800476c ) 800462c: 681b ldr r3, [r3, #0] 800462e: 69fa ldr r2, [r7, #28] 8004630: ee07 2a90 vmov s15, r2 8004634: eef8 7a67 vcvt.f32.u32 s15, s15 8004638: 4a4d ldr r2, [pc, #308] ; (8004770 ) 800463a: 015b lsls r3, r3, #5 800463c: 4413 add r3, r2 800463e: 3318 adds r3, #24 8004640: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 8004644: 687b ldr r3, [r7, #4] 8004646: 2b01 cmp r3, #1 8004648: d112 bne.n 8004670 800464a: 4b48 ldr r3, [pc, #288] ; (800476c ) 800464c: 681b ldr r3, [r3, #0] 800464e: 4948 ldr r1, [pc, #288] ; (8004770 ) 8004650: 015a lsls r2, r3, #5 8004652: 440a add r2, r1 8004654: 3218 adds r2, #24 8004656: edd2 7a00 vldr s15, [r2] 800465a: ed9f 7a4d vldr s14, [pc, #308] ; 8004790 800465e: ee67 7a87 vmul.f32 s15, s15, s14 8004662: 4a43 ldr r2, [pc, #268] ; (8004770 ) 8004664: 015b lsls r3, r3, #5 8004666: 4413 add r3, r2 8004668: 3318 adds r3, #24 800466a: edc3 7a00 vstr s15, [r3] 800466e: e040 b.n 80046f2 else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8004670: 687b ldr r3, [r7, #4] 8004672: 2b02 cmp r3, #2 8004674: d112 bne.n 800469c 8004676: 4b3d ldr r3, [pc, #244] ; (800476c ) 8004678: 681b ldr r3, [r3, #0] 800467a: 493d ldr r1, [pc, #244] ; (8004770 ) 800467c: 015a lsls r2, r3, #5 800467e: 440a add r2, r1 8004680: 3218 adds r2, #24 8004682: edd2 7a00 vldr s15, [r2] 8004686: ed9f 7a3b vldr s14, [pc, #236] ; 8004774 800468a: ee67 7a87 vmul.f32 s15, s15, s14 800468e: 4a38 ldr r2, [pc, #224] ; (8004770 ) 8004690: 015b lsls r3, r3, #5 8004692: 4413 add r3, r2 8004694: 3318 adds r3, #24 8004696: edc3 7a00 vstr s15, [r3] 800469a: e02a b.n 80046f2 else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 800469c: 687b ldr r3, [r7, #4] 800469e: 2b03 cmp r3, #3 80046a0: d112 bne.n 80046c8 80046a2: 4b32 ldr r3, [pc, #200] ; (800476c ) 80046a4: 681b ldr r3, [r3, #0] 80046a6: 4932 ldr r1, [pc, #200] ; (8004770 ) 80046a8: 015a lsls r2, r3, #5 80046aa: 440a add r2, r1 80046ac: 3218 adds r2, #24 80046ae: edd2 7a00 vldr s15, [r2] 80046b2: ed9f 7a31 vldr s14, [pc, #196] ; 8004778 80046b6: ee67 7a87 vmul.f32 s15, s15, s14 80046ba: 4a2d ldr r2, [pc, #180] ; (8004770 ) 80046bc: 015b lsls r3, r3, #5 80046be: 4413 add r3, r2 80046c0: 3318 adds r3, #24 80046c2: edc3 7a00 vstr s15, [r3] 80046c6: e014 b.n 80046f2 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 80046c8: 687b ldr r3, [r7, #4] 80046ca: 2b04 cmp r3, #4 80046cc: d111 bne.n 80046f2 80046ce: 4b27 ldr r3, [pc, #156] ; (800476c ) 80046d0: 681b ldr r3, [r3, #0] 80046d2: 4927 ldr r1, [pc, #156] ; (8004770 ) 80046d4: 015a lsls r2, r3, #5 80046d6: 440a add r2, r1 80046d8: 3218 adds r2, #24 80046da: edd2 7a00 vldr s15, [r2] 80046de: ed9f 7a27 vldr s14, [pc, #156] ; 800477c 80046e2: ee67 7a87 vmul.f32 s15, s15, s14 80046e6: 4a22 ldr r2, [pc, #136] ; (8004770 ) 80046e8: 015b lsls r3, r3, #5 80046ea: 4413 add r3, r2 80046ec: 3318 adds r3, #24 80046ee: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 80046f2: 4b1e ldr r3, [pc, #120] ; (800476c ) 80046f4: 681b ldr r3, [r3, #0] 80046f6: 4a1e ldr r2, [pc, #120] ; (8004770 ) 80046f8: 015b lsls r3, r3, #5 80046fa: 4413 add r3, r2 80046fc: 3318 adds r3, #24 80046fe: edd3 7a00 vldr s15, [r3] 8004702: eef5 7ac0 vcmpe.f32 s15, #0.0 8004706: eef1 fa10 vmrs APSR_nzcv, fpscr 800470a: d807 bhi.n 800471c pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 800470c: 4b17 ldr r3, [pc, #92] ; (800476c ) 800470e: 681b ldr r3, [r3, #0] 8004710: 4a17 ldr r2, [pc, #92] ; (8004770 ) 8004712: 015b lsls r3, r3, #5 8004714: 4413 add r3, r2 8004716: 3318 adds r3, #24 8004718: 4a19 ldr r2, [pc, #100] ; (8004780 ) 800471a: 601a str r2, [r3, #0] } if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 800471c: 4b13 ldr r3, [pc, #76] ; (800476c ) 800471e: 681b ldr r3, [r3, #0] 8004720: 4a13 ldr r2, [pc, #76] ; (8004770 ) 8004722: 015b lsls r3, r3, #5 8004724: 4413 add r3, r2 8004726: 3318 adds r3, #24 8004728: edd3 7a00 vldr s15, [r3] 800472c: ed9f 7a15 vldr s14, [pc, #84] ; 8004784 8004730: eef4 7ac7 vcmpe.f32 s15, s14 8004734: eef1 fa10 vmrs APSR_nzcv, fpscr 8004738: db07 blt.n 800474a pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 800473a: 4b0c ldr r3, [pc, #48] ; (800476c ) 800473c: 681b ldr r3, [r3, #0] 800473e: 4a0c ldr r2, [pc, #48] ; (8004770 ) 8004740: 015b lsls r3, r3, #5 8004742: 4413 add r3, r2 8004744: 3318 adds r3, #24 8004746: 4a10 ldr r2, [pc, #64] ; (8004788 ) 8004748: 601a str r2, [r3, #0] } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 800474a: 4b08 ldr r3, [pc, #32] ; (800476c ) 800474c: 681b ldr r3, [r3, #0] 800474e: 4a08 ldr r2, [pc, #32] ; (8004770 ) 8004750: 015b lsls r3, r3, #5 8004752: 4413 add r3, r2 8004754: 3318 adds r3, #24 8004756: edd3 7a00 vldr s15, [r3] 800475a: eeb0 0a67 vmov.f32 s0, s15 800475e: f000 f819 bl 8004794 pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); }*/ } 8004762: e7ff b.n 8004764 8004764: bf00 nop 8004766: 3720 adds r7, #32 8004768: 46bd mov sp, r7 800476a: bd80 pop {r7, pc} 800476c: 2006ba68 .word 0x2006ba68 8004770: 2006bca8 .word 0x2006bca8 8004774: 3c23d70a .word 0x3c23d70a 8004778: 3a83126f .word 0x3a83126f 800477c: 38d1b717 .word 0x38d1b717 8004780: 38d1b717 .word 0x38d1b717 8004784: 47c35000 .word 0x47c35000 8004788: 47c34f80 .word 0x47c34f80 800478c: 20020010 .word 0x20020010 8004790: 3dcccccd .word 0x3dcccccd 08004794 : void VerifyGain(float32_t sens) { 8004794: b480 push {r7} 8004796: b083 sub sp, #12 8004798: af00 add r7, sp, #0 800479a: ed87 0a01 vstr s0, [r7, #4] return; //!!!Отключил 800479e: bf00 nop if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku0_1) { pardata.amplif[ACTIVE_CHANNEL].IKU = Ku0_1; } } } 80047a0: 370c adds r7, #12 80047a2: 46bd mov sp, r7 80047a4: f85d 7b04 ldr.w r7, [sp], #4 80047a8: 4770 bx lr ... 080047ac : } void LTDC_Reset(void) { 80047ac: b580 push {r7, lr} 80047ae: af00 add r7, sp, #0 HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_SET); HAL_Delay(100); 80047b0: 2201 movs r2, #1 80047b2: 2140 movs r1, #64 ; 0x40 80047b4: 480b ldr r0, [pc, #44] ; (80047e4 ) 80047b6: f00e fa0d bl 8012bd4 80047ba: 2064 movs r0, #100 ; 0x64 80047bc: f00c fede bl 801157c HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_RESET); HAL_Delay(100); 80047c0: 2200 movs r2, #0 80047c2: 2140 movs r1, #64 ; 0x40 80047c4: 4807 ldr r0, [pc, #28] ; (80047e4 ) 80047c6: f00e fa05 bl 8012bd4 80047ca: 2064 movs r0, #100 ; 0x64 80047cc: f00c fed6 bl 801157c HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_SET); HAL_Delay(100); 80047d0: 2201 movs r2, #1 80047d2: 2140 movs r1, #64 ; 0x40 80047d4: 4803 ldr r0, [pc, #12] ; (80047e4 ) 80047d6: f00e f9fd bl 8012bd4 80047da: 2064 movs r0, #100 ; 0x64 80047dc: f00c fece bl 801157c } 80047e0: bf00 nop 80047e2: bd80 pop {r7, pc} 80047e4: 40020c00 .word 0x40020c00 080047e8 : /* LTDC init function */ void MX_LTDC_Init(void) { 80047e8: b580 push {r7, lr} 80047ea: b09c sub sp, #112 ; 0x70 80047ec: af00 add r7, sp, #0 __IO uint32_t tickstart; // SET_BIT(RCC->CR, RCC_CR_PLLSAION); // HAL_Delay(100); LTDC_Reset(); 80047ee: f7ff ffdd bl 80047ac __HAL_RCC_PLLSAI_ENABLE(); 80047f2: 4a8c ldr r2, [pc, #560] ; (8004a24 ) 80047f4: 4b8b ldr r3, [pc, #556] ; (8004a24 ) 80047f6: 681b ldr r3, [r3, #0] 80047f8: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 80047fc: 6013 str r3, [r2, #0] tickstart = HAL_GetTick(); 80047fe: f00c feb1 bl 8011564 8004802: 4603 mov r3, r0 8004804: 607b str r3, [r7, #4] while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET) 8004806: e008 b.n 800481a { if((HAL_GetTick() - tickstart) >= PLLSAI_TIMEOUT_VALUE) { 8004808: f00c feac bl 8011564 800480c: 4602 mov r2, r0 800480e: 687b ldr r3, [r7, #4] 8004810: 1ad3 subs r3, r2, r3 8004812: 2b63 cmp r3, #99 ; 0x63 8004814: d901 bls.n 800481a Error_Handler(); 8004816: f001 fae9 bl 8005dec while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET) 800481a: 4b82 ldr r3, [pc, #520] ; (8004a24 ) 800481c: 681b ldr r3, [r3, #0] 800481e: f003 5300 and.w r3, r3, #536870912 ; 0x20000000 8004822: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000 8004826: d1ef bne.n 8004808 } } hLtdcHandler.Instance = LTDC; 8004828: 4b7f ldr r3, [pc, #508] ; (8004a28 ) 800482a: 4a80 ldr r2, [pc, #512] ; (8004a2c ) 800482c: 601a str r2, [r3, #0] hLtdcHandler.Init.HSPolarity = LTDC_HSPOLARITY_AL; 800482e: 4b7e ldr r3, [pc, #504] ; (8004a28 ) 8004830: 2200 movs r2, #0 8004832: 605a str r2, [r3, #4] hLtdcHandler.Init.VSPolarity = LTDC_VSPOLARITY_AL; 8004834: 4b7c ldr r3, [pc, #496] ; (8004a28 ) 8004836: 2200 movs r2, #0 8004838: 609a str r2, [r3, #8] hLtdcHandler.Init.DEPolarity = LTDC_DEPOLARITY_AH; 800483a: 4b7b ldr r3, [pc, #492] ; (8004a28 ) 800483c: f04f 5200 mov.w r2, #536870912 ; 0x20000000 8004840: 60da str r2, [r3, #12] hLtdcHandler.Init.PCPolarity = LTDC_PCPOLARITY_IPC; 8004842: 4b79 ldr r3, [pc, #484] ; (8004a28 ) 8004844: 2200 movs r2, #0 8004846: 611a str r2, [r3, #16] hLtdcHandler.Init.HorizontalSync = 38; 8004848: 4b77 ldr r3, [pc, #476] ; (8004a28 ) 800484a: 2226 movs r2, #38 ; 0x26 800484c: 615a str r2, [r3, #20] hLtdcHandler.Init.VerticalSync = 4; 800484e: 4b76 ldr r3, [pc, #472] ; (8004a28 ) 8004850: 2204 movs r2, #4 8004852: 619a str r2, [r3, #24] hLtdcHandler.Init.AccumulatedHBP = 68; 8004854: 4b74 ldr r3, [pc, #464] ; (8004a28 ) 8004856: 2244 movs r2, #68 ; 0x44 8004858: 61da str r2, [r3, #28] hLtdcHandler.Init.AccumulatedVBP = 18; 800485a: 4b73 ldr r3, [pc, #460] ; (8004a28 ) 800485c: 2212 movs r2, #18 800485e: 621a str r2, [r3, #32] hLtdcHandler.Init.AccumulatedActiveW = 388; 8004860: 4b71 ldr r3, [pc, #452] ; (8004a28 ) 8004862: f44f 72c2 mov.w r2, #388 ; 0x184 8004866: 625a str r2, [r3, #36] ; 0x24 hLtdcHandler.Init.AccumulatedActiveH = 262; 8004868: 4b6f ldr r3, [pc, #444] ; (8004a28 ) 800486a: f44f 7283 mov.w r2, #262 ; 0x106 800486e: 629a str r2, [r3, #40] ; 0x28 hLtdcHandler.Init.TotalWidth = 408; 8004870: 4b6d ldr r3, [pc, #436] ; (8004a28 ) 8004872: f44f 72cc mov.w r2, #408 ; 0x198 8004876: 62da str r2, [r3, #44] ; 0x2c hLtdcHandler.Init.TotalHeigh = 263; 8004878: 4b6b ldr r3, [pc, #428] ; (8004a28 ) 800487a: f240 1207 movw r2, #263 ; 0x107 800487e: 631a str r2, [r3, #48] ; 0x30 hLtdcHandler.Init.Backcolor.Blue = 0; 8004880: 4b69 ldr r3, [pc, #420] ; (8004a28 ) 8004882: 2200 movs r2, #0 8004884: f883 2034 strb.w r2, [r3, #52] ; 0x34 hLtdcHandler.Init.Backcolor.Green = 0; 8004888: 4b67 ldr r3, [pc, #412] ; (8004a28 ) 800488a: 2200 movs r2, #0 800488c: f883 2035 strb.w r2, [r3, #53] ; 0x35 hLtdcHandler.Init.Backcolor.Red = 0; 8004890: 4b65 ldr r3, [pc, #404] ; (8004a28 ) 8004892: 2200 movs r2, #0 8004894: f883 2036 strb.w r2, [r3, #54] ; 0x36 if (HAL_LTDC_Init(&hLtdcHandler) != HAL_OK) { 8004898: 4863 ldr r0, [pc, #396] ; (8004a28 ) 800489a: f00e f9cd bl 8012c38 800489e: 4603 mov r3, r0 80048a0: 2b00 cmp r3, #0 80048a2: d001 beq.n 80048a8 Error_Handler(); 80048a4: f001 faa2 bl 8005dec } pLayerCfg.WindowX0 = 0; 80048a8: 2300 movs r3, #0 80048aa: 63fb str r3, [r7, #60] ; 0x3c pLayerCfg.WindowX1 = 320; 80048ac: f44f 73a0 mov.w r3, #320 ; 0x140 80048b0: 643b str r3, [r7, #64] ; 0x40 pLayerCfg.WindowY0 = 0; 80048b2: 2300 movs r3, #0 80048b4: 647b str r3, [r7, #68] ; 0x44 pLayerCfg.WindowY1 = 240; 80048b6: 23f0 movs r3, #240 ; 0xf0 80048b8: 64bb str r3, [r7, #72] ; 0x48 pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565; 80048ba: 2302 movs r3, #2 80048bc: 64fb str r3, [r7, #76] ; 0x4c pLayerCfg.Alpha = 255; 80048be: 23ff movs r3, #255 ; 0xff 80048c0: 653b str r3, [r7, #80] ; 0x50 pLayerCfg.Alpha0 = 0; 80048c2: 2300 movs r3, #0 80048c4: 657b str r3, [r7, #84] ; 0x54 pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA; 80048c6: f44f 63c0 mov.w r3, #1536 ; 0x600 80048ca: 65bb str r3, [r7, #88] ; 0x58 pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA; 80048cc: 2307 movs r3, #7 80048ce: 65fb str r3, [r7, #92] ; 0x5c pLayerCfg.FBStartAdress = (uint32_t) &LAYER_1[0]; 80048d0: 4b57 ldr r3, [pc, #348] ; (8004a30 ) 80048d2: 663b str r3, [r7, #96] ; 0x60 pLayerCfg.ImageWidth = 320; 80048d4: f44f 73a0 mov.w r3, #320 ; 0x140 80048d8: 667b str r3, [r7, #100] ; 0x64 pLayerCfg.ImageHeight = 240; 80048da: 23f0 movs r3, #240 ; 0xf0 80048dc: 66bb str r3, [r7, #104] ; 0x68 pLayerCfg.Backcolor.Blue = 0; 80048de: 2300 movs r3, #0 80048e0: f887 306c strb.w r3, [r7, #108] ; 0x6c pLayerCfg.Backcolor.Green = 0; 80048e4: 2300 movs r3, #0 80048e6: f887 306d strb.w r3, [r7, #109] ; 0x6d pLayerCfg.Backcolor.Red = 0; 80048ea: 2300 movs r3, #0 80048ec: f887 306e strb.w r3, [r7, #110] ; 0x6e if(HAL_LTDC_ConfigLayer(&hLtdcHandler, &pLayerCfg, 0) != HAL_OK) { 80048f0: f107 033c add.w r3, r7, #60 ; 0x3c 80048f4: 2200 movs r2, #0 80048f6: 4619 mov r1, r3 80048f8: 484b ldr r0, [pc, #300] ; (8004a28 ) 80048fa: f00e fb25 bl 8012f48 80048fe: 4603 mov r3, r0 8004900: 2b00 cmp r3, #0 8004902: d001 beq.n 8004908 Error_Handler(); 8004904: f001 fa72 bl 8005dec } pLayerCfg1.WindowX0 = 0; 8004908: 2300 movs r3, #0 800490a: 60bb str r3, [r7, #8] pLayerCfg1.WindowX1 = 320; 800490c: f44f 73a0 mov.w r3, #320 ; 0x140 8004910: 60fb str r3, [r7, #12] pLayerCfg1.WindowY0 = 0; 8004912: 2300 movs r3, #0 8004914: 613b str r3, [r7, #16] pLayerCfg1.WindowY1 = 240; 8004916: 23f0 movs r3, #240 ; 0xf0 8004918: 617b str r3, [r7, #20] pLayerCfg1.PixelFormat = LTDC_PIXEL_FORMAT_RGB565; 800491a: 2302 movs r3, #2 800491c: 61bb str r3, [r7, #24] pLayerCfg1.Alpha = 255; 800491e: 23ff movs r3, #255 ; 0xff 8004920: 61fb str r3, [r7, #28] pLayerCfg1.Alpha0 = 0; 8004922: 2300 movs r3, #0 8004924: 623b str r3, [r7, #32] pLayerCfg1.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA; 8004926: f44f 63c0 mov.w r3, #1536 ; 0x600 800492a: 627b str r3, [r7, #36] ; 0x24 pLayerCfg1.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA; 800492c: 2307 movs r3, #7 800492e: 62bb str r3, [r7, #40] ; 0x28 pLayerCfg1.FBStartAdress = (uint32_t) &LAYER_2[0]; 8004930: 4b40 ldr r3, [pc, #256] ; (8004a34 ) 8004932: 62fb str r3, [r7, #44] ; 0x2c pLayerCfg1.ImageWidth = 320; 8004934: f44f 73a0 mov.w r3, #320 ; 0x140 8004938: 633b str r3, [r7, #48] ; 0x30 pLayerCfg1.ImageHeight = 240; 800493a: 23f0 movs r3, #240 ; 0xf0 800493c: 637b str r3, [r7, #52] ; 0x34 pLayerCfg1.Backcolor.Blue = 0; 800493e: 2300 movs r3, #0 8004940: f887 3038 strb.w r3, [r7, #56] ; 0x38 pLayerCfg1.Backcolor.Green = 0; 8004944: 2300 movs r3, #0 8004946: f887 3039 strb.w r3, [r7, #57] ; 0x39 pLayerCfg1.Backcolor.Red = 0; 800494a: 2300 movs r3, #0 800494c: f887 303a strb.w r3, [r7, #58] ; 0x3a if(HAL_LTDC_ConfigLayer(&hLtdcHandler, &pLayerCfg1, 1) != HAL_OK) { 8004950: f107 0308 add.w r3, r7, #8 8004954: 2201 movs r2, #1 8004956: 4619 mov r1, r3 8004958: 4833 ldr r0, [pc, #204] ; (8004a28 ) 800495a: f00e faf5 bl 8012f48 800495e: 4603 mov r3, r0 8004960: 2b00 cmp r3, #0 8004962: d001 beq.n 8004968 Error_Handler(); 8004964: f001 fa42 bl 8005dec } //HAL_LTDC_EnableCLUT(&hLtdcHandler, 0); //HAL_LTDC_EnableCLUT(&hLtdcHandler, 1); ActiveLayer = 1; 8004968: 4b33 ldr r3, [pc, #204] ; (8004a38 ) 800496a: 2201 movs r2, #1 800496c: 601a str r2, [r3, #0] RenderingLayer = 0; 800496e: 4b33 ldr r3, [pc, #204] ; (8004a3c ) 8004970: 2200 movs r2, #0 8004972: 601a str r2, [r3, #0] BSP_LCD_DisplayOff(); 8004974: f000 f87a bl 8004a6c BSP_LCD_SelectLayer(0); 8004978: 2000 movs r0, #0 800497a: f000 f961 bl 8004c40 BSP_LCD_Clear(0xFF000000); 800497e: f04f 407f mov.w r0, #4278190080 ; 0xff000000 8004982: f000 fa3f bl 8004e04 BSP_LCD_SelectLayer(1); 8004986: 2001 movs r0, #1 8004988: f000 f95a bl 8004c40 BSP_LCD_Clear(0xFF000000); 800498c: f04f 407f mov.w r0, #4278190080 ; 0xff000000 8004990: f000 fa38 bl 8004e04 BSP_LCD_SetLayerVisible(RenderingLayer, DISABLE); 8004994: 4b29 ldr r3, [pc, #164] ; (8004a3c ) 8004996: 681b ldr r3, [r3, #0] 8004998: 2100 movs r1, #0 800499a: 4618 mov r0, r3 800499c: f000 f960 bl 8004c60 BSP_LCD_SetLayerVisible(ActiveLayer, DISABLE); 80049a0: 4b25 ldr r3, [pc, #148] ; (8004a38 ) 80049a2: 681b ldr r3, [r3, #0] 80049a4: 2100 movs r1, #0 80049a6: 4618 mov r0, r3 80049a8: f000 f95a bl 8004c60 HAL_LTDC_Reload(&hLtdcHandler, LTDC_RELOAD_IMMEDIATE); 80049ac: 2101 movs r1, #1 80049ae: 481e ldr r0, [pc, #120] ; (8004a28 ) 80049b0: f00e fb40 bl 8013034 DrawProp[0].BackColor = LCD_COLOR_BLACK; 80049b4: 4b22 ldr r3, [pc, #136] ; (8004a40 ) 80049b6: f04f 427f mov.w r2, #4278190080 ; 0xff000000 80049ba: 605a str r2, [r3, #4] DrawProp[0].pFont = &Font17; 80049bc: 4b20 ldr r3, [pc, #128] ; (8004a40 ) 80049be: 4a21 ldr r2, [pc, #132] ; (8004a44 ) 80049c0: 609a str r2, [r3, #8] DrawProp[0].TextColor = LCD_COLOR_WHITE; 80049c2: 4b1f ldr r3, [pc, #124] ; (8004a40 ) 80049c4: f04f 32ff mov.w r2, #4294967295 80049c8: 601a str r2, [r3, #0] DrawProp[1].BackColor = LCD_COLOR_BLACK; 80049ca: 4b1d ldr r3, [pc, #116] ; (8004a40 ) 80049cc: f04f 427f mov.w r2, #4278190080 ; 0xff000000 80049d0: 611a str r2, [r3, #16] DrawProp[1].pFont = &Font17; 80049d2: 4b1b ldr r3, [pc, #108] ; (8004a40 ) 80049d4: 4a1b ldr r2, [pc, #108] ; (8004a44 ) 80049d6: 615a str r2, [r3, #20] DrawProp[1].TextColor = LCD_COLOR_WHITE; 80049d8: 4b19 ldr r3, [pc, #100] ; (8004a40 ) 80049da: f04f 32ff mov.w r2, #4294967295 80049de: 60da str r2, [r3, #12] CurrentFont = &Font17; 80049e0: 4b19 ldr r3, [pc, #100] ; (8004a48 ) 80049e2: 4a18 ldr r2, [pc, #96] ; (8004a44 ) 80049e4: 601a str r2, [r3, #0] BSP_LCD_DisplayOn(); 80049e6: f000 f835 bl 8004a54 HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_SET); // BACKLIGHT IS OFF 80049ea: 2201 movs r2, #1 80049ec: f44f 7180 mov.w r1, #256 ; 0x100 80049f0: 4816 ldr r0, [pc, #88] ; (8004a4c ) 80049f2: f00e f8ef bl 8012bd4 RefreshScreen = true; 80049f6: 4b16 ldr r3, [pc, #88] ; (8004a50 ) 80049f8: 2201 movs r2, #1 80049fa: 701a strb r2, [r3, #0] HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 255); 80049fc: 21ff movs r1, #255 ; 0xff 80049fe: 480a ldr r0, [pc, #40] ; (8004a28 ) 8004a00: f00e fae0 bl 8012fc4 while(RefreshScreen); 8004a04: bf00 nop 8004a06: 4b12 ldr r3, [pc, #72] ; (8004a50 ) 8004a08: 781b ldrb r3, [r3, #0] 8004a0a: b2db uxtb r3, r3 8004a0c: 2b00 cmp r3, #0 8004a0e: d1fa bne.n 8004a06 BSP_LCD_SetLayerVisible(RenderingLayer, ENABLE); 8004a10: 4b0a ldr r3, [pc, #40] ; (8004a3c ) 8004a12: 681b ldr r3, [r3, #0] 8004a14: 2101 movs r1, #1 8004a16: 4618 mov r0, r3 8004a18: f000 f922 bl 8004c60 } 8004a1c: bf00 nop 8004a1e: 3770 adds r7, #112 ; 0x70 8004a20: 46bd mov sp, r7 8004a22: bd80 pop {r7, pc} 8004a24: 40023800 .word 0x40023800 8004a28: 2006c174 .word 0x2006c174 8004a2c: 40016800 .word 0x40016800 8004a30: 200209ec .word 0x200209ec 8004a34: 200461ec .word 0x200461ec 8004a38: 20020018 .word 0x20020018 8004a3c: 2006ba5c .word 0x2006ba5c 8004a40: 2006ba44 .word 0x2006ba44 8004a44: 20020008 .word 0x20020008 8004a48: 2006c170 .word 0x2006c170 8004a4c: 40020000 .word 0x40020000 8004a50: 2006ba60 .word 0x2006ba60 08004a54 : void BSP_LCD_DisplayOn(void) { 8004a54: b580 push {r7, lr} 8004a56: af00 add r7, sp, #0 //__HAL_LTDC_ENABLE(&hLtdcHandler); HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_SET); // DISPLAY_ON 8004a58: 2201 movs r2, #1 8004a5a: f44f 6180 mov.w r1, #1024 ; 0x400 8004a5e: 4802 ldr r0, [pc, #8] ; (8004a68 ) 8004a60: f00e f8b8 bl 8012bd4 } 8004a64: bf00 nop 8004a66: bd80 pop {r7, pc} 8004a68: 40021400 .word 0x40021400 08004a6c : /** * @brief Disables the display. * @retval None */ void BSP_LCD_DisplayOff(void) { 8004a6c: b580 push {r7, lr} 8004a6e: af00 add r7, sp, #0 //__HAL_LTDC_DISABLE(&hLtdcHandler); HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_RESET); // DISPLAY_OFF 8004a70: 2200 movs r2, #0 8004a72: f44f 6180 mov.w r1, #1024 ; 0x400 8004a76: 4802 ldr r0, [pc, #8] ; (8004a80 ) 8004a78: f00e f8ac bl 8012bd4 } 8004a7c: bf00 nop 8004a7e: bd80 pop {r7, pc} 8004a80: 40021400 .word 0x40021400 08004a84 : void HAL_LTDC_MspInit(LTDC_HandleTypeDef* ltdcHandle) { 8004a84: b580 push {r7, lr} 8004a86: b088 sub sp, #32 8004a88: af00 add r7, sp, #0 8004a8a: 6078 str r0, [r7, #4] GPIO_InitTypeDef GPIO_InitStruct; if(ltdcHandle->Instance == LTDC) 8004a8c: 687b ldr r3, [r7, #4] 8004a8e: 681b ldr r3, [r3, #0] 8004a90: 4a4f ldr r2, [pc, #316] ; (8004bd0 ) 8004a92: 4293 cmp r3, r2 8004a94: f040 8097 bne.w 8004bc6 { __HAL_RCC_LTDC_CLK_ENABLE(); 8004a98: 4a4e ldr r2, [pc, #312] ; (8004bd4 ) 8004a9a: 4b4e ldr r3, [pc, #312] ; (8004bd4 ) 8004a9c: 6c5b ldr r3, [r3, #68] ; 0x44 8004a9e: f043 6380 orr.w r3, r3, #67108864 ; 0x4000000 8004aa2: 6453 str r3, [r2, #68] ; 0x44 8004aa4: 4b4b ldr r3, [pc, #300] ; (8004bd4 ) 8004aa6: 6c5b ldr r3, [r3, #68] ; 0x44 8004aa8: f003 6380 and.w r3, r3, #67108864 ; 0x4000000 8004aac: 60bb str r3, [r7, #8] 8004aae: 68bb ldr r3, [r7, #8] PG7 ------> LTDC_CLK PG10 ------> LTDC_G3 PG11 ------> LTDC_B3 PG12 ------> LTDC_B4 */ GPIO_InitStruct.Pin = GPIO_PIN_10; 8004ab0: f44f 6380 mov.w r3, #1024 ; 0x400 8004ab4: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 8004ab6: 2301 movs r3, #1 8004ab8: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 8004aba: 2300 movs r3, #0 8004abc: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 8004abe: 2303 movs r3, #3 8004ac0: 61bb str r3, [r7, #24] HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); 8004ac2: f107 030c add.w r3, r7, #12 8004ac6: 4619 mov r1, r3 8004ac8: 4843 ldr r0, [pc, #268] ; (8004bd8 ) 8004aca: f00d fec1 bl 8012850 GPIO_InitStruct.Pin = GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_6 | GPIO_PIN_11 |GPIO_PIN_12; 8004ace: f641 0358 movw r3, #6232 ; 0x1858 8004ad2: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 8004ad4: 2302 movs r3, #2 8004ad6: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 8004ad8: 2300 movs r3, #0 8004ada: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 8004adc: 2303 movs r3, #3 8004ade: 61bb str r3, [r7, #24] GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; 8004ae0: 230e movs r3, #14 8004ae2: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); 8004ae4: f107 030c add.w r3, r7, #12 8004ae8: 4619 mov r1, r3 8004aea: 483c ldr r0, [pc, #240] ; (8004bdc ) 8004aec: f00d feb0 bl 8012850 GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1; 8004af0: 2303 movs r3, #3 8004af2: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 8004af4: 2302 movs r3, #2 8004af6: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 8004af8: 2300 movs r3, #0 8004afa: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 8004afc: 2303 movs r3, #3 8004afe: 61bb str r3, [r7, #24] GPIO_InitStruct.Alternate = GPIO_AF9_LTDC; 8004b00: 2309 movs r3, #9 8004b02: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 8004b04: f107 030c add.w r3, r7, #12 8004b08: 4619 mov r1, r3 8004b0a: 4835 ldr r0, [pc, #212] ; (8004be0 ) 8004b0c: f00d fea0 bl 8012850 GPIO_InitStruct.Pin = GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_8 | GPIO_PIN_9; 8004b10: f44f 6370 mov.w r3, #3840 ; 0xf00 8004b14: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 8004b16: 2302 movs r3, #2 8004b18: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 8004b1a: 2300 movs r3, #0 8004b1c: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 8004b1e: 2303 movs r3, #3 8004b20: 61bb str r3, [r7, #24] GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; 8004b22: 230e movs r3, #14 8004b24: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 8004b26: f107 030c add.w r3, r7, #12 8004b2a: 4619 mov r1, r3 8004b2c: 482c ldr r0, [pc, #176] ; (8004be0 ) 8004b2e: f00d fe8f bl 8012850 GPIO_InitStruct.Pin = GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_11; 8004b32: f44f 630c mov.w r3, #2240 ; 0x8c0 8004b36: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 8004b38: 2302 movs r3, #2 8004b3a: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 8004b3c: 2300 movs r3, #0 8004b3e: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 8004b40: 2303 movs r3, #3 8004b42: 61bb str r3, [r7, #24] GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; 8004b44: 230e movs r3, #14 8004b46: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); 8004b48: f107 030c add.w r3, r7, #12 8004b4c: 4619 mov r1, r3 8004b4e: 4825 ldr r0, [pc, #148] ; (8004be4 ) 8004b50: f00d fe7e bl 8012850 GPIO_InitStruct.Pin = GPIO_PIN_6 | GPIO_PIN_7; 8004b54: 23c0 movs r3, #192 ; 0xc0 8004b56: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 8004b58: 2302 movs r3, #2 8004b5a: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 8004b5c: 2300 movs r3, #0 8004b5e: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 8004b60: 2303 movs r3, #3 8004b62: 61bb str r3, [r7, #24] GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; 8004b64: 230e movs r3, #14 8004b66: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); 8004b68: f107 030c add.w r3, r7, #12 8004b6c: 4619 mov r1, r3 8004b6e: 481e ldr r0, [pc, #120] ; (8004be8 ) 8004b70: f00d fe6e bl 8012850 GPIO_InitStruct.Pin = GPIO_PIN_3; 8004b74: 2308 movs r3, #8 8004b76: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 8004b78: 2302 movs r3, #2 8004b7a: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 8004b7c: 2300 movs r3, #0 8004b7e: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 8004b80: 2303 movs r3, #3 8004b82: 61bb str r3, [r7, #24] GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; 8004b84: 230e movs r3, #14 8004b86: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); 8004b88: f107 030c add.w r3, r7, #12 8004b8c: 4619 mov r1, r3 8004b8e: 4817 ldr r0, [pc, #92] ; (8004bec ) 8004b90: f00d fe5e bl 8012850 GPIO_InitStruct.Pin = GPIO_PIN_10 | GPIO_PIN_12; 8004b94: f44f 53a0 mov.w r3, #5120 ; 0x1400 8004b98: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 8004b9a: 2302 movs r3, #2 8004b9c: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 8004b9e: 2300 movs r3, #0 8004ba0: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 8004ba2: 2303 movs r3, #3 8004ba4: 61bb str r3, [r7, #24] GPIO_InitStruct.Alternate = GPIO_AF9_LTDC; 8004ba6: 2309 movs r3, #9 8004ba8: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); 8004baa: f107 030c add.w r3, r7, #12 8004bae: 4619 mov r1, r3 8004bb0: 480c ldr r0, [pc, #48] ; (8004be4 ) 8004bb2: f00d fe4d bl 8012850 HAL_NVIC_SetPriority(LTDC_IRQn, 6, 0); 8004bb6: 2200 movs r2, #0 8004bb8: 2106 movs r1, #6 8004bba: 2058 movs r0, #88 ; 0x58 8004bbc: f00c fdfb bl 80117b6 HAL_NVIC_EnableIRQ(LTDC_IRQn); 8004bc0: 2058 movs r0, #88 ; 0x58 8004bc2: f00c fe14 bl 80117ee } } 8004bc6: bf00 nop 8004bc8: 3720 adds r7, #32 8004bca: 46bd mov sp, r7 8004bcc: bd80 pop {r7, pc} 8004bce: bf00 nop 8004bd0: 40016800 .word 0x40016800 8004bd4: 40023800 .word 0x40023800 8004bd8: 40021400 .word 0x40021400 8004bdc: 40020000 .word 0x40020000 8004be0: 40020400 .word 0x40020400 8004be4: 40021800 .word 0x40021800 8004be8: 40020800 .word 0x40020800 8004bec: 40020c00 .word 0x40020c00 08004bf0 : HAL_NVIC_DisableIRQ(LTDC_IRQn); } } uint32_t BSP_LCD_GetXSize(void) { 8004bf0: b480 push {r7} 8004bf2: af00 add r7, sp, #0 return hLtdcHandler.LayerCfg[ActiveLayer].ImageWidth; 8004bf4: 4b06 ldr r3, [pc, #24] ; (8004c10 ) 8004bf6: 681b ldr r3, [r3, #0] 8004bf8: 4a06 ldr r2, [pc, #24] ; (8004c14 ) 8004bfa: 2134 movs r1, #52 ; 0x34 8004bfc: fb01 f303 mul.w r3, r1, r3 8004c00: 4413 add r3, r2 8004c02: 3360 adds r3, #96 ; 0x60 8004c04: 681b ldr r3, [r3, #0] } 8004c06: 4618 mov r0, r3 8004c08: 46bd mov sp, r7 8004c0a: f85d 7b04 ldr.w r7, [sp], #4 8004c0e: 4770 bx lr 8004c10: 20020018 .word 0x20020018 8004c14: 2006c174 .word 0x2006c174 08004c18 : /** * @brief Gets the LCD Y size. * @retval Used LCD Y size */ uint32_t BSP_LCD_GetYSize(void) { 8004c18: b480 push {r7} 8004c1a: af00 add r7, sp, #0 return hLtdcHandler.LayerCfg[ActiveLayer].ImageHeight; 8004c1c: 4b06 ldr r3, [pc, #24] ; (8004c38 ) 8004c1e: 681b ldr r3, [r3, #0] 8004c20: 4a06 ldr r2, [pc, #24] ; (8004c3c ) 8004c22: 2134 movs r1, #52 ; 0x34 8004c24: fb01 f303 mul.w r3, r1, r3 8004c28: 4413 add r3, r2 8004c2a: 3364 adds r3, #100 ; 0x64 8004c2c: 681b ldr r3, [r3, #0] } 8004c2e: 4618 mov r0, r3 8004c30: 46bd mov sp, r7 8004c32: f85d 7b04 ldr.w r7, [sp], #4 8004c36: 4770 bx lr 8004c38: 20020018 .word 0x20020018 8004c3c: 2006c174 .word 0x2006c174 08004c40 : { hLtdcHandler.LayerCfg[ActiveLayer].ImageHeight = imageHeightPixels; } void BSP_LCD_SelectLayer(uint32_t LayerIndex) { 8004c40: b480 push {r7} 8004c42: b083 sub sp, #12 8004c44: af00 add r7, sp, #0 8004c46: 6078 str r0, [r7, #4] ActiveLayer = LayerIndex; 8004c48: 4a04 ldr r2, [pc, #16] ; (8004c5c ) 8004c4a: 687b ldr r3, [r7, #4] 8004c4c: 6013 str r3, [r2, #0] } 8004c4e: bf00 nop 8004c50: 370c adds r7, #12 8004c52: 46bd mov sp, r7 8004c54: f85d 7b04 ldr.w r7, [sp], #4 8004c58: 4770 bx lr 8004c5a: bf00 nop 8004c5c: 20020018 .word 0x20020018 08004c60 : * @arg ENABLE * @arg DISABLE * @retval None */ void BSP_LCD_SetLayerVisible(uint32_t LayerIndex, FunctionalState State) { 8004c60: b480 push {r7} 8004c62: b083 sub sp, #12 8004c64: af00 add r7, sp, #0 8004c66: 6078 str r0, [r7, #4] 8004c68: 460b mov r3, r1 8004c6a: 70fb strb r3, [r7, #3] if(State == ENABLE) 8004c6c: 78fb ldrb r3, [r7, #3] 8004c6e: 2b01 cmp r3, #1 8004c70: d113 bne.n 8004c9a __HAL_LTDC_LAYER_ENABLE(&hLtdcHandler, LayerIndex); 8004c72: 4b1a ldr r3, [pc, #104] ; (8004cdc ) 8004c74: 681b ldr r3, [r3, #0] 8004c76: 461a mov r2, r3 8004c78: 687b ldr r3, [r7, #4] 8004c7a: 01db lsls r3, r3, #7 8004c7c: 4413 add r3, r2 8004c7e: 3384 adds r3, #132 ; 0x84 8004c80: 461a mov r2, r3 8004c82: 4b16 ldr r3, [pc, #88] ; (8004cdc ) 8004c84: 681b ldr r3, [r3, #0] 8004c86: 4619 mov r1, r3 8004c88: 687b ldr r3, [r7, #4] 8004c8a: 01db lsls r3, r3, #7 8004c8c: 440b add r3, r1 8004c8e: 3384 adds r3, #132 ; 0x84 8004c90: 681b ldr r3, [r3, #0] 8004c92: f043 0301 orr.w r3, r3, #1 8004c96: 6013 str r3, [r2, #0] 8004c98: e012 b.n 8004cc0 else __HAL_LTDC_LAYER_DISABLE(&hLtdcHandler, LayerIndex); 8004c9a: 4b10 ldr r3, [pc, #64] ; (8004cdc ) 8004c9c: 681b ldr r3, [r3, #0] 8004c9e: 461a mov r2, r3 8004ca0: 687b ldr r3, [r7, #4] 8004ca2: 01db lsls r3, r3, #7 8004ca4: 4413 add r3, r2 8004ca6: 3384 adds r3, #132 ; 0x84 8004ca8: 461a mov r2, r3 8004caa: 4b0c ldr r3, [pc, #48] ; (8004cdc ) 8004cac: 681b ldr r3, [r3, #0] 8004cae: 4619 mov r1, r3 8004cb0: 687b ldr r3, [r7, #4] 8004cb2: 01db lsls r3, r3, #7 8004cb4: 440b add r3, r1 8004cb6: 3384 adds r3, #132 ; 0x84 8004cb8: 681b ldr r3, [r3, #0] 8004cba: f023 0301 bic.w r3, r3, #1 8004cbe: 6013 str r3, [r2, #0] __HAL_LTDC_RELOAD_CONFIG(&hLtdcHandler); 8004cc0: 4b06 ldr r3, [pc, #24] ; (8004cdc ) 8004cc2: 681b ldr r3, [r3, #0] 8004cc4: 4a05 ldr r2, [pc, #20] ; (8004cdc ) 8004cc6: 6812 ldr r2, [r2, #0] 8004cc8: 6a52 ldr r2, [r2, #36] ; 0x24 8004cca: f042 0201 orr.w r2, r2, #1 8004cce: 625a str r2, [r3, #36] ; 0x24 } 8004cd0: bf00 nop 8004cd2: 370c adds r7, #12 8004cd4: 46bd mov sp, r7 8004cd6: f85d 7b04 ldr.w r7, [sp], #4 8004cda: 4770 bx lr 8004cdc: 2006c174 .word 0x2006c174 08004ce0 : * @arg ENABLE * @arg DISABLE * @retval None */ void BSP_LCD_SetLayerVisible_NoReload(uint32_t LayerIndex, FunctionalState State) { 8004ce0: b480 push {r7} 8004ce2: b083 sub sp, #12 8004ce4: af00 add r7, sp, #0 8004ce6: 6078 str r0, [r7, #4] 8004ce8: 460b mov r3, r1 8004cea: 70fb strb r3, [r7, #3] if(State == ENABLE) 8004cec: 78fb ldrb r3, [r7, #3] 8004cee: 2b01 cmp r3, #1 8004cf0: d113 bne.n 8004d1a __HAL_LTDC_LAYER_ENABLE(&hLtdcHandler, LayerIndex); 8004cf2: 4b16 ldr r3, [pc, #88] ; (8004d4c ) 8004cf4: 681b ldr r3, [r3, #0] 8004cf6: 461a mov r2, r3 8004cf8: 687b ldr r3, [r7, #4] 8004cfa: 01db lsls r3, r3, #7 8004cfc: 4413 add r3, r2 8004cfe: 3384 adds r3, #132 ; 0x84 8004d00: 461a mov r2, r3 8004d02: 4b12 ldr r3, [pc, #72] ; (8004d4c ) 8004d04: 681b ldr r3, [r3, #0] 8004d06: 4619 mov r1, r3 8004d08: 687b ldr r3, [r7, #4] 8004d0a: 01db lsls r3, r3, #7 8004d0c: 440b add r3, r1 8004d0e: 3384 adds r3, #132 ; 0x84 8004d10: 681b ldr r3, [r3, #0] 8004d12: f043 0301 orr.w r3, r3, #1 8004d16: 6013 str r3, [r2, #0] else __HAL_LTDC_LAYER_DISABLE(&hLtdcHandler, LayerIndex); } 8004d18: e012 b.n 8004d40 else __HAL_LTDC_LAYER_DISABLE(&hLtdcHandler, LayerIndex); 8004d1a: 4b0c ldr r3, [pc, #48] ; (8004d4c ) 8004d1c: 681b ldr r3, [r3, #0] 8004d1e: 461a mov r2, r3 8004d20: 687b ldr r3, [r7, #4] 8004d22: 01db lsls r3, r3, #7 8004d24: 4413 add r3, r2 8004d26: 3384 adds r3, #132 ; 0x84 8004d28: 461a mov r2, r3 8004d2a: 4b08 ldr r3, [pc, #32] ; (8004d4c ) 8004d2c: 681b ldr r3, [r3, #0] 8004d2e: 4619 mov r1, r3 8004d30: 687b ldr r3, [r7, #4] 8004d32: 01db lsls r3, r3, #7 8004d34: 440b add r3, r1 8004d36: 3384 adds r3, #132 ; 0x84 8004d38: 681b ldr r3, [r3, #0] 8004d3a: f023 0301 bic.w r3, r3, #1 8004d3e: 6013 str r3, [r2, #0] } 8004d40: bf00 nop 8004d42: 370c adds r7, #12 8004d44: 46bd mov sp, r7 8004d46: f85d 7b04 ldr.w r7, [sp], #4 8004d4a: 4770 bx lr 8004d4c: 2006c174 .word 0x2006c174 08004d50 : * @brief Sets the LCD text color. * @param Color: Text color code ARGB(8-8-8-8) * @retval None */ void LCD_SetColors(uint32_t ColorUp, uint32_t ColorDn) { 8004d50: b480 push {r7} 8004d52: b083 sub sp, #12 8004d54: af00 add r7, sp, #0 8004d56: 6078 str r0, [r7, #4] 8004d58: 6039 str r1, [r7, #0] DrawProp[ActiveLayer].TextColor = ColorUp; 8004d5a: 4b0d ldr r3, [pc, #52] ; (8004d90 ) 8004d5c: 681a ldr r2, [r3, #0] 8004d5e: 490d ldr r1, [pc, #52] ; (8004d94 ) 8004d60: 4613 mov r3, r2 8004d62: 005b lsls r3, r3, #1 8004d64: 4413 add r3, r2 8004d66: 009b lsls r3, r3, #2 8004d68: 440b add r3, r1 8004d6a: 687a ldr r2, [r7, #4] 8004d6c: 601a str r2, [r3, #0] DrawProp[ActiveLayer].BackColor = ColorDn; 8004d6e: 4b08 ldr r3, [pc, #32] ; (8004d90 ) 8004d70: 681a ldr r2, [r3, #0] 8004d72: 4908 ldr r1, [pc, #32] ; (8004d94 ) 8004d74: 4613 mov r3, r2 8004d76: 005b lsls r3, r3, #1 8004d78: 4413 add r3, r2 8004d7a: 009b lsls r3, r3, #2 8004d7c: 440b add r3, r1 8004d7e: 3304 adds r3, #4 8004d80: 683a ldr r2, [r7, #0] 8004d82: 601a str r2, [r3, #0] } 8004d84: bf00 nop 8004d86: 370c adds r7, #12 8004d88: 46bd mov sp, r7 8004d8a: f85d 7b04 ldr.w r7, [sp], #4 8004d8e: 4770 bx lr 8004d90: 20020018 .word 0x20020018 8004d94: 2006ba44 .word 0x2006ba44 08004d98 : void BSP_LCD_SetTextColor(uint32_t Color) { 8004d98: b480 push {r7} 8004d9a: b083 sub sp, #12 8004d9c: af00 add r7, sp, #0 8004d9e: 6078 str r0, [r7, #4] DrawProp[ActiveLayer].TextColor = Color; 8004da0: 4b07 ldr r3, [pc, #28] ; (8004dc0 ) 8004da2: 681a ldr r2, [r3, #0] 8004da4: 4907 ldr r1, [pc, #28] ; (8004dc4 ) 8004da6: 4613 mov r3, r2 8004da8: 005b lsls r3, r3, #1 8004daa: 4413 add r3, r2 8004dac: 009b lsls r3, r3, #2 8004dae: 440b add r3, r1 8004db0: 687a ldr r2, [r7, #4] 8004db2: 601a str r2, [r3, #0] } 8004db4: bf00 nop 8004db6: 370c adds r7, #12 8004db8: 46bd mov sp, r7 8004dba: f85d 7b04 ldr.w r7, [sp], #4 8004dbe: 4770 bx lr 8004dc0: 20020018 .word 0x20020018 8004dc4: 2006ba44 .word 0x2006ba44 08004dc8 : * @brief Sets the LCD text font. * @param fonts: Layer font to be used * @retval None */ void BSP_LCD_SetFont(sFONT *fonts) { 8004dc8: b480 push {r7} 8004dca: b083 sub sp, #12 8004dcc: af00 add r7, sp, #0 8004dce: 6078 str r0, [r7, #4] DrawProp[ActiveLayer].pFont = fonts; 8004dd0: 4b09 ldr r3, [pc, #36] ; (8004df8 ) 8004dd2: 681a ldr r2, [r3, #0] 8004dd4: 4909 ldr r1, [pc, #36] ; (8004dfc ) 8004dd6: 4613 mov r3, r2 8004dd8: 005b lsls r3, r3, #1 8004dda: 4413 add r3, r2 8004ddc: 009b lsls r3, r3, #2 8004dde: 440b add r3, r1 8004de0: 3308 adds r3, #8 8004de2: 687a ldr r2, [r7, #4] 8004de4: 601a str r2, [r3, #0] CurrentFont = fonts; 8004de6: 4a06 ldr r2, [pc, #24] ; (8004e00 ) 8004de8: 687b ldr r3, [r7, #4] 8004dea: 6013 str r3, [r2, #0] } 8004dec: bf00 nop 8004dee: 370c adds r7, #12 8004df0: 46bd mov sp, r7 8004df2: f85d 7b04 ldr.w r7, [sp], #4 8004df6: 4770 bx lr 8004df8: 20020018 .word 0x20020018 8004dfc: 2006ba44 .word 0x2006ba44 8004e00: 2006c170 .word 0x2006c170 08004e04 : * @brief Clears the hole LCD. * @param Color: Color of the background * @retval None */ void BSP_LCD_Clear(uint32_t Color) { 8004e04: b5f0 push {r4, r5, r6, r7, lr} 8004e06: b085 sub sp, #20 8004e08: af02 add r7, sp, #8 8004e0a: 6078 str r0, [r7, #4] LL_FillBuffer(ActiveLayer, (uint32_t *)(hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress), BSP_LCD_GetXSize(), BSP_LCD_GetYSize(), 0, Color); 8004e0c: 4b0f ldr r3, [pc, #60] ; (8004e4c ) 8004e0e: 681c ldr r4, [r3, #0] 8004e10: 4b0e ldr r3, [pc, #56] ; (8004e4c ) 8004e12: 681b ldr r3, [r3, #0] 8004e14: 4a0e ldr r2, [pc, #56] ; (8004e50 ) 8004e16: 2134 movs r1, #52 ; 0x34 8004e18: fb01 f303 mul.w r3, r1, r3 8004e1c: 4413 add r3, r2 8004e1e: 335c adds r3, #92 ; 0x5c 8004e20: 681b ldr r3, [r3, #0] 8004e22: 461d mov r5, r3 8004e24: f7ff fee4 bl 8004bf0 8004e28: 4606 mov r6, r0 8004e2a: f7ff fef5 bl 8004c18 8004e2e: 4602 mov r2, r0 8004e30: 687b ldr r3, [r7, #4] 8004e32: 9301 str r3, [sp, #4] 8004e34: 2300 movs r3, #0 8004e36: 9300 str r3, [sp, #0] 8004e38: 4613 mov r3, r2 8004e3a: 4632 mov r2, r6 8004e3c: 4629 mov r1, r5 8004e3e: 4620 mov r0, r4 8004e40: f000 fd1a bl 8005878 } 8004e44: bf00 nop 8004e46: 370c adds r7, #12 8004e48: 46bd mov sp, r7 8004e4a: bdf0 pop {r4, r5, r6, r7, pc} 8004e4c: 20020018 .word 0x20020018 8004e50: 2006c174 .word 0x2006c174 08004e54 : * @param Ascii: Character ascii code * This parameter must be a number between Min_Data = 0x20 and Max_Data = 0x7E * @retval None */ void BSP_LCD_DisplayChar(uint16_t Xpos, uint16_t Ypos, uint8_t Ascii) { 8004e54: b590 push {r4, r7, lr} 8004e56: b083 sub sp, #12 8004e58: af00 add r7, sp, #0 8004e5a: 4603 mov r3, r0 8004e5c: 80fb strh r3, [r7, #6] 8004e5e: 460b mov r3, r1 8004e60: 80bb strh r3, [r7, #4] 8004e62: 4613 mov r3, r2 8004e64: 70fb strb r3, [r7, #3] DrawChar( Xpos, Ypos, &DrawProp[ActiveLayer].pFont->table[(Ascii - ' ') * DrawProp[ActiveLayer].pFont->Height * ((DrawProp[ActiveLayer].pFont->Width + 7) / 8)] ); 8004e66: 4b1b ldr r3, [pc, #108] ; (8004ed4 ) 8004e68: 681a ldr r2, [r3, #0] 8004e6a: 491b ldr r1, [pc, #108] ; (8004ed8 ) 8004e6c: 4613 mov r3, r2 8004e6e: 005b lsls r3, r3, #1 8004e70: 4413 add r3, r2 8004e72: 009b lsls r3, r3, #2 8004e74: 440b add r3, r1 8004e76: 3308 adds r3, #8 8004e78: 681b ldr r3, [r3, #0] 8004e7a: 6819 ldr r1, [r3, #0] 8004e7c: 78fb ldrb r3, [r7, #3] 8004e7e: f1a3 0020 sub.w r0, r3, #32 8004e82: 4b14 ldr r3, [pc, #80] ; (8004ed4 ) 8004e84: 681a ldr r2, [r3, #0] 8004e86: 4c14 ldr r4, [pc, #80] ; (8004ed8 ) 8004e88: 4613 mov r3, r2 8004e8a: 005b lsls r3, r3, #1 8004e8c: 4413 add r3, r2 8004e8e: 009b lsls r3, r3, #2 8004e90: 4423 add r3, r4 8004e92: 3308 adds r3, #8 8004e94: 681b ldr r3, [r3, #0] 8004e96: 88db ldrh r3, [r3, #6] 8004e98: fb03 f000 mul.w r0, r3, r0 8004e9c: 4b0d ldr r3, [pc, #52] ; (8004ed4 ) 8004e9e: 681a ldr r2, [r3, #0] 8004ea0: 4c0d ldr r4, [pc, #52] ; (8004ed8 ) 8004ea2: 4613 mov r3, r2 8004ea4: 005b lsls r3, r3, #1 8004ea6: 4413 add r3, r2 8004ea8: 009b lsls r3, r3, #2 8004eaa: 4423 add r3, r4 8004eac: 3308 adds r3, #8 8004eae: 681b ldr r3, [r3, #0] 8004eb0: 889b ldrh r3, [r3, #4] 8004eb2: 3307 adds r3, #7 8004eb4: 2b00 cmp r3, #0 8004eb6: da00 bge.n 8004eba 8004eb8: 3307 adds r3, #7 8004eba: 10db asrs r3, r3, #3 8004ebc: fb03 f300 mul.w r3, r3, r0 8004ec0: 18ca adds r2, r1, r3 8004ec2: 88b9 ldrh r1, [r7, #4] 8004ec4: 88fb ldrh r3, [r7, #6] 8004ec6: 4618 mov r0, r3 8004ec8: f000 fc1e bl 8005708 } 8004ecc: bf00 nop 8004ece: 370c adds r7, #12 8004ed0: 46bd mov sp, r7 8004ed2: bd90 pop {r4, r7, pc} 8004ed4: 20020018 .word 0x20020018 8004ed8: 2006ba44 .word 0x2006ba44 08004edc : * @arg RIGHT_MODE * @arg LEFT_MODE * @retval None */ void BSP_LCD_DisplayStringAt(uint16_t Xpos, uint16_t Ypos, char *Text, Text_AlignModeTypdef Mode) { 8004edc: b5b0 push {r4, r5, r7, lr} 8004ede: b088 sub sp, #32 8004ee0: af00 add r7, sp, #0 8004ee2: 60ba str r2, [r7, #8] 8004ee4: 461a mov r2, r3 8004ee6: 4603 mov r3, r0 8004ee8: 81fb strh r3, [r7, #14] 8004eea: 460b mov r3, r1 8004eec: 81bb strh r3, [r7, #12] 8004eee: 4613 mov r3, r2 8004ef0: 71fb strb r3, [r7, #7] uint16_t ref_column = 1, i = 0, ll = 0; 8004ef2: 2301 movs r3, #1 8004ef4: 83fb strh r3, [r7, #30] 8004ef6: 2300 movs r3, #0 8004ef8: 83bb strh r3, [r7, #28] 8004efa: 2300 movs r3, #0 8004efc: 827b strh r3, [r7, #18] uint32_t size = 0; 8004efe: 2300 movs r3, #0 8004f00: 61bb str r3, [r7, #24] uint8_t *ptr; ptr = (uint8_t *) Text; 8004f02: 68bb ldr r3, [r7, #8] 8004f04: 617b str r3, [r7, #20] /* Get the text size */ while (*ptr++) size++ ; 8004f06: e002 b.n 8004f0e 8004f08: 69bb ldr r3, [r7, #24] 8004f0a: 3301 adds r3, #1 8004f0c: 61bb str r3, [r7, #24] 8004f0e: 697b ldr r3, [r7, #20] 8004f10: 1c5a adds r2, r3, #1 8004f12: 617a str r2, [r7, #20] 8004f14: 781b ldrb r3, [r3, #0] 8004f16: 2b00 cmp r3, #0 8004f18: d1f6 bne.n 8004f08 /* Characters number per line */ // xsize = (BSP_LCD_GetXSize() / DrawProp[ActiveLayer].pFont->Width); switch (Mode) 8004f1a: 79fb ldrb r3, [r7, #7] 8004f1c: 2b02 cmp r3, #2 8004f1e: d01d beq.n 8004f5c 8004f20: 2b03 cmp r3, #3 8004f22: d018 beq.n 8004f56 8004f24: 2b01 cmp r3, #1 8004f26: d12e bne.n 8004f86 { case CENTER_MODE: { ll = DrawProp[ActiveLayer].pFont->Width * size; 8004f28: 4b44 ldr r3, [pc, #272] ; (800503c ) 8004f2a: 681a ldr r2, [r3, #0] 8004f2c: 4944 ldr r1, [pc, #272] ; (8005040 ) 8004f2e: 4613 mov r3, r2 8004f30: 005b lsls r3, r3, #1 8004f32: 4413 add r3, r2 8004f34: 009b lsls r3, r3, #2 8004f36: 440b add r3, r1 8004f38: 3308 adds r3, #8 8004f3a: 681b ldr r3, [r3, #0] 8004f3c: 889a ldrh r2, [r3, #4] 8004f3e: 69bb ldr r3, [r7, #24] 8004f40: b29b uxth r3, r3 8004f42: fb12 f303 smulbb r3, r2, r3 8004f46: 827b strh r3, [r7, #18] ref_column = Xpos - (ll >> 1); 8004f48: 8a7b ldrh r3, [r7, #18] 8004f4a: 085b lsrs r3, r3, #1 8004f4c: b29b uxth r3, r3 8004f4e: 89fa ldrh r2, [r7, #14] 8004f50: 1ad3 subs r3, r2, r3 8004f52: 83fb strh r3, [r7, #30] //if((ref_column + ll > 319) || (ref_column > 319)) // ref_column = Xpos + ((xsize - size)* DrawProp[ActiveLayer].pFont->Width) / 2; break; 8004f54: e01a b.n 8004f8c } case LEFT_MODE: { ref_column = Xpos; 8004f56: 89fb ldrh r3, [r7, #14] 8004f58: 83fb strh r3, [r7, #30] break; 8004f5a: e017 b.n 8004f8c } case RIGHT_MODE: { ll = DrawProp[ActiveLayer].pFont->Width * size; 8004f5c: 4b37 ldr r3, [pc, #220] ; (800503c ) 8004f5e: 681a ldr r2, [r3, #0] 8004f60: 4937 ldr r1, [pc, #220] ; (8005040 ) 8004f62: 4613 mov r3, r2 8004f64: 005b lsls r3, r3, #1 8004f66: 4413 add r3, r2 8004f68: 009b lsls r3, r3, #2 8004f6a: 440b add r3, r1 8004f6c: 3308 adds r3, #8 8004f6e: 681b ldr r3, [r3, #0] 8004f70: 889a ldrh r2, [r3, #4] 8004f72: 69bb ldr r3, [r7, #24] 8004f74: b29b uxth r3, r3 8004f76: fb12 f303 smulbb r3, r2, r3 8004f7a: 827b strh r3, [r7, #18] ref_column = Xpos - ll; 8004f7c: 89fa ldrh r2, [r7, #14] 8004f7e: 8a7b ldrh r3, [r7, #18] 8004f80: 1ad3 subs r3, r2, r3 8004f82: 83fb strh r3, [r7, #30] // ref_column = - Xpos + ((xsize - size)*DrawProp[ActiveLayer].pFont->Width); break; 8004f84: e002 b.n 8004f8c } default: { ref_column = Xpos; 8004f86: 89fb ldrh r3, [r7, #14] 8004f88: 83fb strh r3, [r7, #30] break; 8004f8a: bf00 nop } } /* Check that the Start column is located in the screen */ if ((ref_column < 1) || (ref_column >= 0x8000)) 8004f8c: 8bfb ldrh r3, [r7, #30] 8004f8e: 2b00 cmp r3, #0 8004f90: d003 beq.n 8004f9a 8004f92: f9b7 301e ldrsh.w r3, [r7, #30] 8004f96: 2b00 cmp r3, #0 8004f98: da1d bge.n 8004fd6 { ref_column = 1; 8004f9a: 2301 movs r3, #1 8004f9c: 83fb strh r3, [r7, #30] } /* Send the string character by character on LCD */ while ((*Text != 0) & (((BSP_LCD_GetXSize() - (i*DrawProp[ActiveLayer].pFont->Width)) & 0xFFFF) >= DrawProp[ActiveLayer].pFont->Width)) 8004f9e: e01a b.n 8004fd6 { /* Display one character on LCD */ BSP_LCD_DisplayChar(ref_column, Ypos, *Text); 8004fa0: 68bb ldr r3, [r7, #8] 8004fa2: 781a ldrb r2, [r3, #0] 8004fa4: 89b9 ldrh r1, [r7, #12] 8004fa6: 8bfb ldrh r3, [r7, #30] 8004fa8: 4618 mov r0, r3 8004faa: f7ff ff53 bl 8004e54 /* Decrement the column position by 16 */ ref_column += DrawProp[ActiveLayer].pFont->Width; 8004fae: 4b23 ldr r3, [pc, #140] ; (800503c ) 8004fb0: 681a ldr r2, [r3, #0] 8004fb2: 4923 ldr r1, [pc, #140] ; (8005040 ) 8004fb4: 4613 mov r3, r2 8004fb6: 005b lsls r3, r3, #1 8004fb8: 4413 add r3, r2 8004fba: 009b lsls r3, r3, #2 8004fbc: 440b add r3, r1 8004fbe: 3308 adds r3, #8 8004fc0: 681b ldr r3, [r3, #0] 8004fc2: 889a ldrh r2, [r3, #4] 8004fc4: 8bfb ldrh r3, [r7, #30] 8004fc6: 4413 add r3, r2 8004fc8: 83fb strh r3, [r7, #30] /* Point on the next character */ Text++; 8004fca: 68bb ldr r3, [r7, #8] 8004fcc: 3301 adds r3, #1 8004fce: 60bb str r3, [r7, #8] i++; 8004fd0: 8bbb ldrh r3, [r7, #28] 8004fd2: 3301 adds r3, #1 8004fd4: 83bb strh r3, [r7, #28] while ((*Text != 0) & (((BSP_LCD_GetXSize() - (i*DrawProp[ActiveLayer].pFont->Width)) & 0xFFFF) >= DrawProp[ActiveLayer].pFont->Width)) 8004fd6: 68bb ldr r3, [r7, #8] 8004fd8: 781b ldrb r3, [r3, #0] 8004fda: 2b00 cmp r3, #0 8004fdc: bf14 ite ne 8004fde: 2301 movne r3, #1 8004fe0: 2300 moveq r3, #0 8004fe2: b2dc uxtb r4, r3 8004fe4: f7ff fe04 bl 8004bf0 8004fe8: 4605 mov r5, r0 8004fea: 8bb9 ldrh r1, [r7, #28] 8004fec: 4b13 ldr r3, [pc, #76] ; (800503c ) 8004fee: 681a ldr r2, [r3, #0] 8004ff0: 4813 ldr r0, [pc, #76] ; (8005040 ) 8004ff2: 4613 mov r3, r2 8004ff4: 005b lsls r3, r3, #1 8004ff6: 4413 add r3, r2 8004ff8: 009b lsls r3, r3, #2 8004ffa: 4403 add r3, r0 8004ffc: 3308 adds r3, #8 8004ffe: 681b ldr r3, [r3, #0] 8005000: 889b ldrh r3, [r3, #4] 8005002: fb03 f301 mul.w r3, r3, r1 8005006: 1aeb subs r3, r5, r3 8005008: b299 uxth r1, r3 800500a: 4b0c ldr r3, [pc, #48] ; (800503c ) 800500c: 681a ldr r2, [r3, #0] 800500e: 480c ldr r0, [pc, #48] ; (8005040 ) 8005010: 4613 mov r3, r2 8005012: 005b lsls r3, r3, #1 8005014: 4413 add r3, r2 8005016: 009b lsls r3, r3, #2 8005018: 4403 add r3, r0 800501a: 3308 adds r3, #8 800501c: 681b ldr r3, [r3, #0] 800501e: 889b ldrh r3, [r3, #4] 8005020: 4299 cmp r1, r3 8005022: bf2c ite cs 8005024: 2301 movcs r3, #1 8005026: 2300 movcc r3, #0 8005028: b2db uxtb r3, r3 800502a: 4023 ands r3, r4 800502c: b2db uxtb r3, r3 800502e: 2b00 cmp r3, #0 8005030: d1b6 bne.n 8004fa0 } } 8005032: bf00 nop 8005034: 3720 adds r7, #32 8005036: 46bd mov sp, r7 8005038: bdb0 pop {r4, r5, r7, pc} 800503a: bf00 nop 800503c: 20020018 .word 0x20020018 8005040: 2006ba44 .word 0x2006ba44 08005044 : * @param Ypos: Y position * @param Length: Line length * @retval None */ void BSP_LCD_DrawHLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length) { 8005044: b5b0 push {r4, r5, r7, lr} 8005046: b086 sub sp, #24 8005048: af02 add r7, sp, #8 800504a: 4603 mov r3, r0 800504c: 80fb strh r3, [r7, #6] 800504e: 460b mov r3, r1 8005050: 80bb strh r3, [r7, #4] 8005052: 4613 mov r3, r2 8005054: 807b strh r3, [r7, #2] uint32_t Xaddress = 0; 8005056: 2300 movs r3, #0 8005058: 60fb str r3, [r7, #12] /* Get the line address */ if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565) 800505a: 4b26 ldr r3, [pc, #152] ; (80050f4 ) 800505c: 681b ldr r3, [r3, #0] 800505e: 4a26 ldr r2, [pc, #152] ; (80050f8 ) 8005060: 2134 movs r1, #52 ; 0x34 8005062: fb01 f303 mul.w r3, r1, r3 8005066: 4413 add r3, r2 8005068: 3348 adds r3, #72 ; 0x48 800506a: 681b ldr r3, [r3, #0] 800506c: 2b02 cmp r3, #2 800506e: d114 bne.n 800509a { /* RGB565 format */ Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 2*(BSP_LCD_GetXSize()*Ypos + Xpos); 8005070: 4b20 ldr r3, [pc, #128] ; (80050f4 ) 8005072: 681b ldr r3, [r3, #0] 8005074: 4a20 ldr r2, [pc, #128] ; (80050f8 ) 8005076: 2134 movs r1, #52 ; 0x34 8005078: fb01 f303 mul.w r3, r1, r3 800507c: 4413 add r3, r2 800507e: 335c adds r3, #92 ; 0x5c 8005080: 681c ldr r4, [r3, #0] 8005082: f7ff fdb5 bl 8004bf0 8005086: 4602 mov r2, r0 8005088: 88bb ldrh r3, [r7, #4] 800508a: fb03 f202 mul.w r2, r3, r2 800508e: 88fb ldrh r3, [r7, #6] 8005090: 4413 add r3, r2 8005092: 005b lsls r3, r3, #1 8005094: 4423 add r3, r4 8005096: 60fb str r3, [r7, #12] 8005098: e013 b.n 80050c2 } else { /* ARGB8888 format */ Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 4*(BSP_LCD_GetXSize()*Ypos + Xpos); 800509a: 4b16 ldr r3, [pc, #88] ; (80050f4 ) 800509c: 681b ldr r3, [r3, #0] 800509e: 4a16 ldr r2, [pc, #88] ; (80050f8 ) 80050a0: 2134 movs r1, #52 ; 0x34 80050a2: fb01 f303 mul.w r3, r1, r3 80050a6: 4413 add r3, r2 80050a8: 335c adds r3, #92 ; 0x5c 80050aa: 681c ldr r4, [r3, #0] 80050ac: f7ff fda0 bl 8004bf0 80050b0: 4602 mov r2, r0 80050b2: 88bb ldrh r3, [r7, #4] 80050b4: fb03 f202 mul.w r2, r3, r2 80050b8: 88fb ldrh r3, [r7, #6] 80050ba: 4413 add r3, r2 80050bc: 009b lsls r3, r3, #2 80050be: 4423 add r3, r4 80050c0: 60fb str r3, [r7, #12] } /* Write line */ LL_FillBuffer(ActiveLayer, (uint32_t *)Xaddress, Length, 1, 0, DrawProp[ActiveLayer].TextColor); 80050c2: 4b0c ldr r3, [pc, #48] ; (80050f4 ) 80050c4: 6818 ldr r0, [r3, #0] 80050c6: 68fc ldr r4, [r7, #12] 80050c8: 887d ldrh r5, [r7, #2] 80050ca: 4b0a ldr r3, [pc, #40] ; (80050f4 ) 80050cc: 681a ldr r2, [r3, #0] 80050ce: 490b ldr r1, [pc, #44] ; (80050fc ) 80050d0: 4613 mov r3, r2 80050d2: 005b lsls r3, r3, #1 80050d4: 4413 add r3, r2 80050d6: 009b lsls r3, r3, #2 80050d8: 440b add r3, r1 80050da: 681b ldr r3, [r3, #0] 80050dc: 9301 str r3, [sp, #4] 80050de: 2300 movs r3, #0 80050e0: 9300 str r3, [sp, #0] 80050e2: 2301 movs r3, #1 80050e4: 462a mov r2, r5 80050e6: 4621 mov r1, r4 80050e8: f000 fbc6 bl 8005878 } 80050ec: bf00 nop 80050ee: 3710 adds r7, #16 80050f0: 46bd mov sp, r7 80050f2: bdb0 pop {r4, r5, r7, pc} 80050f4: 20020018 .word 0x20020018 80050f8: 2006c174 .word 0x2006c174 80050fc: 2006ba44 .word 0x2006ba44 08005100 : * @param Ypos: Y position * @param Length: Line length * @retval None */ void BSP_LCD_DrawVLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length) { 8005100: b5f0 push {r4, r5, r6, r7, lr} 8005102: b087 sub sp, #28 8005104: af02 add r7, sp, #8 8005106: 4603 mov r3, r0 8005108: 80fb strh r3, [r7, #6] 800510a: 460b mov r3, r1 800510c: 80bb strh r3, [r7, #4] 800510e: 4613 mov r3, r2 8005110: 807b strh r3, [r7, #2] uint32_t Xaddress = 0; 8005112: 2300 movs r3, #0 8005114: 60fb str r3, [r7, #12] /* Get the line address */ if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565) 8005116: 4b28 ldr r3, [pc, #160] ; (80051b8 ) 8005118: 681b ldr r3, [r3, #0] 800511a: 4a28 ldr r2, [pc, #160] ; (80051bc ) 800511c: 2134 movs r1, #52 ; 0x34 800511e: fb01 f303 mul.w r3, r1, r3 8005122: 4413 add r3, r2 8005124: 3348 adds r3, #72 ; 0x48 8005126: 681b ldr r3, [r3, #0] 8005128: 2b02 cmp r3, #2 800512a: d114 bne.n 8005156 { /* RGB565 format */ Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 2*(BSP_LCD_GetXSize()*Ypos + Xpos); 800512c: 4b22 ldr r3, [pc, #136] ; (80051b8 ) 800512e: 681b ldr r3, [r3, #0] 8005130: 4a22 ldr r2, [pc, #136] ; (80051bc ) 8005132: 2134 movs r1, #52 ; 0x34 8005134: fb01 f303 mul.w r3, r1, r3 8005138: 4413 add r3, r2 800513a: 335c adds r3, #92 ; 0x5c 800513c: 681c ldr r4, [r3, #0] 800513e: f7ff fd57 bl 8004bf0 8005142: 4602 mov r2, r0 8005144: 88bb ldrh r3, [r7, #4] 8005146: fb03 f202 mul.w r2, r3, r2 800514a: 88fb ldrh r3, [r7, #6] 800514c: 4413 add r3, r2 800514e: 005b lsls r3, r3, #1 8005150: 4423 add r3, r4 8005152: 60fb str r3, [r7, #12] 8005154: e013 b.n 800517e } else { /* ARGB8888 format */ Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 4*(BSP_LCD_GetXSize()*Ypos + Xpos); 8005156: 4b18 ldr r3, [pc, #96] ; (80051b8 ) 8005158: 681b ldr r3, [r3, #0] 800515a: 4a18 ldr r2, [pc, #96] ; (80051bc ) 800515c: 2134 movs r1, #52 ; 0x34 800515e: fb01 f303 mul.w r3, r1, r3 8005162: 4413 add r3, r2 8005164: 335c adds r3, #92 ; 0x5c 8005166: 681c ldr r4, [r3, #0] 8005168: f7ff fd42 bl 8004bf0 800516c: 4602 mov r2, r0 800516e: 88bb ldrh r3, [r7, #4] 8005170: fb03 f202 mul.w r2, r3, r2 8005174: 88fb ldrh r3, [r7, #6] 8005176: 4413 add r3, r2 8005178: 009b lsls r3, r3, #2 800517a: 4423 add r3, r4 800517c: 60fb str r3, [r7, #12] } /* Write line */ LL_FillBuffer(ActiveLayer, (uint32_t *)Xaddress, 1, Length, (BSP_LCD_GetXSize() - 1), DrawProp[ActiveLayer].TextColor); 800517e: 4b0e ldr r3, [pc, #56] ; (80051b8 ) 8005180: 681c ldr r4, [r3, #0] 8005182: 68fd ldr r5, [r7, #12] 8005184: 887e ldrh r6, [r7, #2] 8005186: f7ff fd33 bl 8004bf0 800518a: 4603 mov r3, r0 800518c: 1e59 subs r1, r3, #1 800518e: 4b0a ldr r3, [pc, #40] ; (80051b8 ) 8005190: 681a ldr r2, [r3, #0] 8005192: 480b ldr r0, [pc, #44] ; (80051c0 ) 8005194: 4613 mov r3, r2 8005196: 005b lsls r3, r3, #1 8005198: 4413 add r3, r2 800519a: 009b lsls r3, r3, #2 800519c: 4403 add r3, r0 800519e: 681b ldr r3, [r3, #0] 80051a0: 9301 str r3, [sp, #4] 80051a2: 9100 str r1, [sp, #0] 80051a4: 4633 mov r3, r6 80051a6: 2201 movs r2, #1 80051a8: 4629 mov r1, r5 80051aa: 4620 mov r0, r4 80051ac: f000 fb64 bl 8005878 } 80051b0: bf00 nop 80051b2: 3714 adds r7, #20 80051b4: 46bd mov sp, r7 80051b6: bdf0 pop {r4, r5, r6, r7, pc} 80051b8: 20020018 .word 0x20020018 80051bc: 2006c174 .word 0x2006c174 80051c0: 2006ba44 .word 0x2006ba44 080051c4 : * @param Width: Rectangle width * @param Height: Rectangle height * @retval None */ void BSP_LCD_DrawRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height) { 80051c4: b590 push {r4, r7, lr} 80051c6: b083 sub sp, #12 80051c8: af00 add r7, sp, #0 80051ca: 4604 mov r4, r0 80051cc: 4608 mov r0, r1 80051ce: 4611 mov r1, r2 80051d0: 461a mov r2, r3 80051d2: 4623 mov r3, r4 80051d4: 80fb strh r3, [r7, #6] 80051d6: 4603 mov r3, r0 80051d8: 80bb strh r3, [r7, #4] 80051da: 460b mov r3, r1 80051dc: 807b strh r3, [r7, #2] 80051de: 4613 mov r3, r2 80051e0: 803b strh r3, [r7, #0] BSP_LCD_DrawHLine(Xpos, Ypos, Width); 80051e2: 887a ldrh r2, [r7, #2] 80051e4: 88b9 ldrh r1, [r7, #4] 80051e6: 88fb ldrh r3, [r7, #6] 80051e8: 4618 mov r0, r3 80051ea: f7ff ff2b bl 8005044 BSP_LCD_DrawVLine(Xpos, Ypos, Height); 80051ee: 883a ldrh r2, [r7, #0] 80051f0: 88b9 ldrh r1, [r7, #4] 80051f2: 88fb ldrh r3, [r7, #6] 80051f4: 4618 mov r0, r3 80051f6: f7ff ff83 bl 8005100 BSP_LCD_DrawHLine(Xpos, (Ypos + Height), Width); 80051fa: 88ba ldrh r2, [r7, #4] 80051fc: 883b ldrh r3, [r7, #0] 80051fe: 4413 add r3, r2 8005200: b299 uxth r1, r3 8005202: 887a ldrh r2, [r7, #2] 8005204: 88fb ldrh r3, [r7, #6] 8005206: 4618 mov r0, r3 8005208: f7ff ff1c bl 8005044 BSP_LCD_DrawVLine((Xpos + Width), Ypos, Height + 1); 800520c: 88fa ldrh r2, [r7, #6] 800520e: 887b ldrh r3, [r7, #2] 8005210: 4413 add r3, r2 8005212: b298 uxth r0, r3 8005214: 883b ldrh r3, [r7, #0] 8005216: 3301 adds r3, #1 8005218: b29a uxth r2, r3 800521a: 88bb ldrh r3, [r7, #4] 800521c: 4619 mov r1, r3 800521e: f7ff ff6f bl 8005100 } 8005222: bf00 nop 8005224: 370c adds r7, #12 8005226: 46bd mov sp, r7 8005228: bd90 pop {r4, r7, pc} ... 0800522c : * @param Ypos: Y position * @param Radius: Circle radius * @retval None */ void BSP_LCD_DrawCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius) { 800522c: b590 push {r4, r7, lr} 800522e: b087 sub sp, #28 8005230: af00 add r7, sp, #0 8005232: 4603 mov r3, r0 8005234: 80fb strh r3, [r7, #6] 8005236: 460b mov r3, r1 8005238: 80bb strh r3, [r7, #4] 800523a: 4613 mov r3, r2 800523c: 807b strh r3, [r7, #2] int32_t decision; /* Decision Variable */ uint32_t current_x; /* Current X Value */ uint32_t current_y; /* Current Y Value */ decision = 3 - (Radius << 1); 800523e: 887b ldrh r3, [r7, #2] 8005240: 005b lsls r3, r3, #1 8005242: f1c3 0303 rsb r3, r3, #3 8005246: 617b str r3, [r7, #20] current_x = 0; 8005248: 2300 movs r3, #0 800524a: 613b str r3, [r7, #16] current_y = Radius; 800524c: 887b ldrh r3, [r7, #2] 800524e: 60fb str r3, [r7, #12] while (current_x <= current_y) 8005250: e0cf b.n 80053f2 { BSP_LCD_DrawPixel((Xpos + current_x), (Ypos - current_y), DrawProp[ActiveLayer].TextColor); 8005252: 693b ldr r3, [r7, #16] 8005254: b29a uxth r2, r3 8005256: 88fb ldrh r3, [r7, #6] 8005258: 4413 add r3, r2 800525a: b298 uxth r0, r3 800525c: 68fb ldr r3, [r7, #12] 800525e: b29b uxth r3, r3 8005260: 88ba ldrh r2, [r7, #4] 8005262: 1ad3 subs r3, r2, r3 8005264: b29c uxth r4, r3 8005266: 4b67 ldr r3, [pc, #412] ; (8005404 ) 8005268: 681a ldr r2, [r3, #0] 800526a: 4967 ldr r1, [pc, #412] ; (8005408 ) 800526c: 4613 mov r3, r2 800526e: 005b lsls r3, r3, #1 8005270: 4413 add r3, r2 8005272: 009b lsls r3, r3, #2 8005274: 440b add r3, r1 8005276: 681b ldr r3, [r3, #0] 8005278: 461a mov r2, r3 800527a: 4621 mov r1, r4 800527c: f000 f8c6 bl 800540c BSP_LCD_DrawPixel((Xpos - current_x), (Ypos - current_y), DrawProp[ActiveLayer].TextColor); 8005280: 693b ldr r3, [r7, #16] 8005282: b29b uxth r3, r3 8005284: 88fa ldrh r2, [r7, #6] 8005286: 1ad3 subs r3, r2, r3 8005288: b298 uxth r0, r3 800528a: 68fb ldr r3, [r7, #12] 800528c: b29b uxth r3, r3 800528e: 88ba ldrh r2, [r7, #4] 8005290: 1ad3 subs r3, r2, r3 8005292: b29c uxth r4, r3 8005294: 4b5b ldr r3, [pc, #364] ; (8005404 ) 8005296: 681a ldr r2, [r3, #0] 8005298: 495b ldr r1, [pc, #364] ; (8005408 ) 800529a: 4613 mov r3, r2 800529c: 005b lsls r3, r3, #1 800529e: 4413 add r3, r2 80052a0: 009b lsls r3, r3, #2 80052a2: 440b add r3, r1 80052a4: 681b ldr r3, [r3, #0] 80052a6: 461a mov r2, r3 80052a8: 4621 mov r1, r4 80052aa: f000 f8af bl 800540c BSP_LCD_DrawPixel((Xpos + current_y), (Ypos - current_x), DrawProp[ActiveLayer].TextColor); 80052ae: 68fb ldr r3, [r7, #12] 80052b0: b29a uxth r2, r3 80052b2: 88fb ldrh r3, [r7, #6] 80052b4: 4413 add r3, r2 80052b6: b298 uxth r0, r3 80052b8: 693b ldr r3, [r7, #16] 80052ba: b29b uxth r3, r3 80052bc: 88ba ldrh r2, [r7, #4] 80052be: 1ad3 subs r3, r2, r3 80052c0: b29c uxth r4, r3 80052c2: 4b50 ldr r3, [pc, #320] ; (8005404 ) 80052c4: 681a ldr r2, [r3, #0] 80052c6: 4950 ldr r1, [pc, #320] ; (8005408 ) 80052c8: 4613 mov r3, r2 80052ca: 005b lsls r3, r3, #1 80052cc: 4413 add r3, r2 80052ce: 009b lsls r3, r3, #2 80052d0: 440b add r3, r1 80052d2: 681b ldr r3, [r3, #0] 80052d4: 461a mov r2, r3 80052d6: 4621 mov r1, r4 80052d8: f000 f898 bl 800540c BSP_LCD_DrawPixel((Xpos - current_y), (Ypos - current_x), DrawProp[ActiveLayer].TextColor); 80052dc: 68fb ldr r3, [r7, #12] 80052de: b29b uxth r3, r3 80052e0: 88fa ldrh r2, [r7, #6] 80052e2: 1ad3 subs r3, r2, r3 80052e4: b298 uxth r0, r3 80052e6: 693b ldr r3, [r7, #16] 80052e8: b29b uxth r3, r3 80052ea: 88ba ldrh r2, [r7, #4] 80052ec: 1ad3 subs r3, r2, r3 80052ee: b29c uxth r4, r3 80052f0: 4b44 ldr r3, [pc, #272] ; (8005404 ) 80052f2: 681a ldr r2, [r3, #0] 80052f4: 4944 ldr r1, [pc, #272] ; (8005408 ) 80052f6: 4613 mov r3, r2 80052f8: 005b lsls r3, r3, #1 80052fa: 4413 add r3, r2 80052fc: 009b lsls r3, r3, #2 80052fe: 440b add r3, r1 8005300: 681b ldr r3, [r3, #0] 8005302: 461a mov r2, r3 8005304: 4621 mov r1, r4 8005306: f000 f881 bl 800540c BSP_LCD_DrawPixel((Xpos + current_x), (Ypos + current_y), DrawProp[ActiveLayer].TextColor); 800530a: 693b ldr r3, [r7, #16] 800530c: b29a uxth r2, r3 800530e: 88fb ldrh r3, [r7, #6] 8005310: 4413 add r3, r2 8005312: b298 uxth r0, r3 8005314: 68fb ldr r3, [r7, #12] 8005316: b29a uxth r2, r3 8005318: 88bb ldrh r3, [r7, #4] 800531a: 4413 add r3, r2 800531c: b29c uxth r4, r3 800531e: 4b39 ldr r3, [pc, #228] ; (8005404 ) 8005320: 681a ldr r2, [r3, #0] 8005322: 4939 ldr r1, [pc, #228] ; (8005408 ) 8005324: 4613 mov r3, r2 8005326: 005b lsls r3, r3, #1 8005328: 4413 add r3, r2 800532a: 009b lsls r3, r3, #2 800532c: 440b add r3, r1 800532e: 681b ldr r3, [r3, #0] 8005330: 461a mov r2, r3 8005332: 4621 mov r1, r4 8005334: f000 f86a bl 800540c BSP_LCD_DrawPixel((Xpos - current_x), (Ypos + current_y), DrawProp[ActiveLayer].TextColor); 8005338: 693b ldr r3, [r7, #16] 800533a: b29b uxth r3, r3 800533c: 88fa ldrh r2, [r7, #6] 800533e: 1ad3 subs r3, r2, r3 8005340: b298 uxth r0, r3 8005342: 68fb ldr r3, [r7, #12] 8005344: b29a uxth r2, r3 8005346: 88bb ldrh r3, [r7, #4] 8005348: 4413 add r3, r2 800534a: b29c uxth r4, r3 800534c: 4b2d ldr r3, [pc, #180] ; (8005404 ) 800534e: 681a ldr r2, [r3, #0] 8005350: 492d ldr r1, [pc, #180] ; (8005408 ) 8005352: 4613 mov r3, r2 8005354: 005b lsls r3, r3, #1 8005356: 4413 add r3, r2 8005358: 009b lsls r3, r3, #2 800535a: 440b add r3, r1 800535c: 681b ldr r3, [r3, #0] 800535e: 461a mov r2, r3 8005360: 4621 mov r1, r4 8005362: f000 f853 bl 800540c BSP_LCD_DrawPixel((Xpos + current_y), (Ypos + current_x), DrawProp[ActiveLayer].TextColor); 8005366: 68fb ldr r3, [r7, #12] 8005368: b29a uxth r2, r3 800536a: 88fb ldrh r3, [r7, #6] 800536c: 4413 add r3, r2 800536e: b298 uxth r0, r3 8005370: 693b ldr r3, [r7, #16] 8005372: b29a uxth r2, r3 8005374: 88bb ldrh r3, [r7, #4] 8005376: 4413 add r3, r2 8005378: b29c uxth r4, r3 800537a: 4b22 ldr r3, [pc, #136] ; (8005404 ) 800537c: 681a ldr r2, [r3, #0] 800537e: 4922 ldr r1, [pc, #136] ; (8005408 ) 8005380: 4613 mov r3, r2 8005382: 005b lsls r3, r3, #1 8005384: 4413 add r3, r2 8005386: 009b lsls r3, r3, #2 8005388: 440b add r3, r1 800538a: 681b ldr r3, [r3, #0] 800538c: 461a mov r2, r3 800538e: 4621 mov r1, r4 8005390: f000 f83c bl 800540c BSP_LCD_DrawPixel((Xpos - current_y), (Ypos + current_x), DrawProp[ActiveLayer].TextColor); 8005394: 68fb ldr r3, [r7, #12] 8005396: b29b uxth r3, r3 8005398: 88fa ldrh r2, [r7, #6] 800539a: 1ad3 subs r3, r2, r3 800539c: b298 uxth r0, r3 800539e: 693b ldr r3, [r7, #16] 80053a0: b29a uxth r2, r3 80053a2: 88bb ldrh r3, [r7, #4] 80053a4: 4413 add r3, r2 80053a6: b29c uxth r4, r3 80053a8: 4b16 ldr r3, [pc, #88] ; (8005404 ) 80053aa: 681a ldr r2, [r3, #0] 80053ac: 4916 ldr r1, [pc, #88] ; (8005408 ) 80053ae: 4613 mov r3, r2 80053b0: 005b lsls r3, r3, #1 80053b2: 4413 add r3, r2 80053b4: 009b lsls r3, r3, #2 80053b6: 440b add r3, r1 80053b8: 681b ldr r3, [r3, #0] 80053ba: 461a mov r2, r3 80053bc: 4621 mov r1, r4 80053be: f000 f825 bl 800540c if (decision < 0) 80053c2: 697b ldr r3, [r7, #20] 80053c4: 2b00 cmp r3, #0 80053c6: da06 bge.n 80053d6 { decision += (current_x << 2) + 6; 80053c8: 693b ldr r3, [r7, #16] 80053ca: 009a lsls r2, r3, #2 80053cc: 697b ldr r3, [r7, #20] 80053ce: 4413 add r3, r2 80053d0: 3306 adds r3, #6 80053d2: 617b str r3, [r7, #20] 80053d4: e00a b.n 80053ec } else { decision += ((current_x - current_y) << 2) + 10; 80053d6: 693a ldr r2, [r7, #16] 80053d8: 68fb ldr r3, [r7, #12] 80053da: 1ad3 subs r3, r2, r3 80053dc: 009a lsls r2, r3, #2 80053de: 697b ldr r3, [r7, #20] 80053e0: 4413 add r3, r2 80053e2: 330a adds r3, #10 80053e4: 617b str r3, [r7, #20] current_y--; 80053e6: 68fb ldr r3, [r7, #12] 80053e8: 3b01 subs r3, #1 80053ea: 60fb str r3, [r7, #12] } current_x++; 80053ec: 693b ldr r3, [r7, #16] 80053ee: 3301 adds r3, #1 80053f0: 613b str r3, [r7, #16] while (current_x <= current_y) 80053f2: 693a ldr r2, [r7, #16] 80053f4: 68fb ldr r3, [r7, #12] 80053f6: 429a cmp r2, r3 80053f8: f67f af2b bls.w 8005252 } } 80053fc: bf00 nop 80053fe: 371c adds r7, #28 8005400: 46bd mov sp, r7 8005402: bd90 pop {r4, r7, pc} 8005404: 20020018 .word 0x20020018 8005408: 2006ba44 .word 0x2006ba44 0800540c : * @param Ypos: Y position * @param RGB_Code: Pixel color in ARGB mode (8-8-8-8) * @retval None */ void BSP_LCD_DrawPixel(uint16_t Xpos, uint16_t Ypos, uint32_t RGB_Code) { 800540c: b5b0 push {r4, r5, r7, lr} 800540e: b082 sub sp, #8 8005410: af00 add r7, sp, #0 8005412: 4603 mov r3, r0 8005414: 603a str r2, [r7, #0] 8005416: 80fb strh r3, [r7, #6] 8005418: 460b mov r3, r1 800541a: 80bb strh r3, [r7, #4] /* Write data value to all SDRAM memory */ if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565) 800541c: 4b2a ldr r3, [pc, #168] ; (80054c8 ) 800541e: 681b ldr r3, [r3, #0] 8005420: 4a2a ldr r2, [pc, #168] ; (80054cc ) 8005422: 2134 movs r1, #52 ; 0x34 8005424: fb01 f303 mul.w r3, r1, r3 8005428: 4413 add r3, r2 800542a: 3348 adds r3, #72 ; 0x48 800542c: 681b ldr r3, [r3, #0] 800542e: 2b02 cmp r3, #2 8005430: d12f bne.n 8005492 { /* RGB565 format */ *(__IO uint16_t*) (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (2*(Ypos*BSP_LCD_GetXSize() + Xpos))) = COLOR24TO16(RGB_Code); 8005432: 4b25 ldr r3, [pc, #148] ; (80054c8 ) 8005434: 681b ldr r3, [r3, #0] 8005436: 4a25 ldr r2, [pc, #148] ; (80054cc ) 8005438: 2134 movs r1, #52 ; 0x34 800543a: fb01 f303 mul.w r3, r1, r3 800543e: 4413 add r3, r2 8005440: 335c adds r3, #92 ; 0x5c 8005442: 681c ldr r4, [r3, #0] 8005444: 88bd ldrh r5, [r7, #4] 8005446: f7ff fbd3 bl 8004bf0 800544a: 4603 mov r3, r0 800544c: fb03 f205 mul.w r2, r3, r5 8005450: 88fb ldrh r3, [r7, #6] 8005452: 4413 add r3, r2 8005454: 005b lsls r3, r3, #1 8005456: 4423 add r3, r4 8005458: 4619 mov r1, r3 800545a: 683b ldr r3, [r7, #0] 800545c: 0c1b lsrs r3, r3, #16 800545e: b29b uxth r3, r3 8005460: 021b lsls r3, r3, #8 8005462: b29a uxth r2, r3 8005464: 4b1a ldr r3, [pc, #104] ; (80054d0 ) 8005466: 4013 ands r3, r2 8005468: b29a uxth r2, r3 800546a: 683b ldr r3, [r7, #0] 800546c: 0a1b lsrs r3, r3, #8 800546e: b29b uxth r3, r3 8005470: 00db lsls r3, r3, #3 8005472: b29b uxth r3, r3 8005474: f403 63fc and.w r3, r3, #2016 ; 0x7e0 8005478: b29b uxth r3, r3 800547a: 4313 orrs r3, r2 800547c: b29a uxth r2, r3 800547e: 683b ldr r3, [r7, #0] 8005480: 08db lsrs r3, r3, #3 8005482: b29b uxth r3, r3 8005484: f003 031f and.w r3, r3, #31 8005488: b29b uxth r3, r3 800548a: 4313 orrs r3, r2 800548c: b29b uxth r3, r3 800548e: 800b strh r3, [r1, #0] } else { /* ARGB8888 format */ *(__IO uint32_t*) (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (4*(Ypos*BSP_LCD_GetXSize() + Xpos))) = RGB_Code; } } 8005490: e015 b.n 80054be *(__IO uint32_t*) (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (4*(Ypos*BSP_LCD_GetXSize() + Xpos))) = RGB_Code; 8005492: 4b0d ldr r3, [pc, #52] ; (80054c8 ) 8005494: 681b ldr r3, [r3, #0] 8005496: 4a0d ldr r2, [pc, #52] ; (80054cc ) 8005498: 2134 movs r1, #52 ; 0x34 800549a: fb01 f303 mul.w r3, r1, r3 800549e: 4413 add r3, r2 80054a0: 335c adds r3, #92 ; 0x5c 80054a2: 681c ldr r4, [r3, #0] 80054a4: 88bd ldrh r5, [r7, #4] 80054a6: f7ff fba3 bl 8004bf0 80054aa: 4603 mov r3, r0 80054ac: fb03 f205 mul.w r2, r3, r5 80054b0: 88fb ldrh r3, [r7, #6] 80054b2: 4413 add r3, r2 80054b4: 009b lsls r3, r3, #2 80054b6: 4423 add r3, r4 80054b8: 461a mov r2, r3 80054ba: 683b ldr r3, [r7, #0] 80054bc: 6013 str r3, [r2, #0] } 80054be: bf00 nop 80054c0: 3708 adds r7, #8 80054c2: 46bd mov sp, r7 80054c4: bdb0 pop {r4, r5, r7, pc} 80054c6: bf00 nop 80054c8: 20020018 .word 0x20020018 80054cc: 2006c174 .word 0x2006c174 80054d0: fffff800 .word 0xfffff800 080054d4 : * @param Width: Rectangle width * @param Height: Rectangle height * @retval None */ void BSP_LCD_FillRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height) { 80054d4: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} 80054d8: b086 sub sp, #24 80054da: af02 add r7, sp, #8 80054dc: 4604 mov r4, r0 80054de: 4608 mov r0, r1 80054e0: 4611 mov r1, r2 80054e2: 461a mov r2, r3 80054e4: 4623 mov r3, r4 80054e6: 80fb strh r3, [r7, #6] 80054e8: 4603 mov r3, r0 80054ea: 80bb strh r3, [r7, #4] 80054ec: 460b mov r3, r1 80054ee: 807b strh r3, [r7, #2] 80054f0: 4613 mov r3, r2 80054f2: 803b strh r3, [r7, #0] uint32_t x_address = 0; 80054f4: 2300 movs r3, #0 80054f6: 60fb str r3, [r7, #12] /* Set the text color */ BSP_LCD_SetTextColor(DrawProp[ActiveLayer].TextColor); 80054f8: 4b30 ldr r3, [pc, #192] ; (80055bc ) 80054fa: 681a ldr r2, [r3, #0] 80054fc: 4930 ldr r1, [pc, #192] ; (80055c0 ) 80054fe: 4613 mov r3, r2 8005500: 005b lsls r3, r3, #1 8005502: 4413 add r3, r2 8005504: 009b lsls r3, r3, #2 8005506: 440b add r3, r1 8005508: 681b ldr r3, [r3, #0] 800550a: 4618 mov r0, r3 800550c: f7ff fc44 bl 8004d98 /* Get the rectangle start address */ if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565) 8005510: 4b2a ldr r3, [pc, #168] ; (80055bc ) 8005512: 681b ldr r3, [r3, #0] 8005514: 4a2b ldr r2, [pc, #172] ; (80055c4 ) 8005516: 2134 movs r1, #52 ; 0x34 8005518: fb01 f303 mul.w r3, r1, r3 800551c: 4413 add r3, r2 800551e: 3348 adds r3, #72 ; 0x48 8005520: 681b ldr r3, [r3, #0] 8005522: 2b02 cmp r3, #2 8005524: d114 bne.n 8005550 { /* RGB565 format */ x_address = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 2*(BSP_LCD_GetXSize()*Ypos + Xpos); 8005526: 4b25 ldr r3, [pc, #148] ; (80055bc ) 8005528: 681b ldr r3, [r3, #0] 800552a: 4a26 ldr r2, [pc, #152] ; (80055c4 ) 800552c: 2134 movs r1, #52 ; 0x34 800552e: fb01 f303 mul.w r3, r1, r3 8005532: 4413 add r3, r2 8005534: 335c adds r3, #92 ; 0x5c 8005536: 681c ldr r4, [r3, #0] 8005538: f7ff fb5a bl 8004bf0 800553c: 4602 mov r2, r0 800553e: 88bb ldrh r3, [r7, #4] 8005540: fb03 f202 mul.w r2, r3, r2 8005544: 88fb ldrh r3, [r7, #6] 8005546: 4413 add r3, r2 8005548: 005b lsls r3, r3, #1 800554a: 4423 add r3, r4 800554c: 60fb str r3, [r7, #12] 800554e: e013 b.n 8005578 } else { /* ARGB8888 format */ x_address = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 4*(BSP_LCD_GetXSize()*Ypos + Xpos); 8005550: 4b1a ldr r3, [pc, #104] ; (80055bc ) 8005552: 681b ldr r3, [r3, #0] 8005554: 4a1b ldr r2, [pc, #108] ; (80055c4 ) 8005556: 2134 movs r1, #52 ; 0x34 8005558: fb01 f303 mul.w r3, r1, r3 800555c: 4413 add r3, r2 800555e: 335c adds r3, #92 ; 0x5c 8005560: 681c ldr r4, [r3, #0] 8005562: f7ff fb45 bl 8004bf0 8005566: 4602 mov r2, r0 8005568: 88bb ldrh r3, [r7, #4] 800556a: fb03 f202 mul.w r2, r3, r2 800556e: 88fb ldrh r3, [r7, #6] 8005570: 4413 add r3, r2 8005572: 009b lsls r3, r3, #2 8005574: 4423 add r3, r4 8005576: 60fb str r3, [r7, #12] } /* Fill the rectangle */ LL_FillBuffer(ActiveLayer, (uint32_t *)x_address, Width, Height, (BSP_LCD_GetXSize() - Width), DrawProp[ActiveLayer].TextColor); 8005578: 4b10 ldr r3, [pc, #64] ; (80055bc ) 800557a: 681c ldr r4, [r3, #0] 800557c: 68fd ldr r5, [r7, #12] 800557e: 887e ldrh r6, [r7, #2] 8005580: f8b7 8000 ldrh.w r8, [r7] 8005584: f7ff fb34 bl 8004bf0 8005588: 4602 mov r2, r0 800558a: 887b ldrh r3, [r7, #2] 800558c: 1ad1 subs r1, r2, r3 800558e: 4b0b ldr r3, [pc, #44] ; (80055bc ) 8005590: 681a ldr r2, [r3, #0] 8005592: 480b ldr r0, [pc, #44] ; (80055c0 ) 8005594: 4613 mov r3, r2 8005596: 005b lsls r3, r3, #1 8005598: 4413 add r3, r2 800559a: 009b lsls r3, r3, #2 800559c: 4403 add r3, r0 800559e: 681b ldr r3, [r3, #0] 80055a0: 9301 str r3, [sp, #4] 80055a2: 9100 str r1, [sp, #0] 80055a4: 4643 mov r3, r8 80055a6: 4632 mov r2, r6 80055a8: 4629 mov r1, r5 80055aa: 4620 mov r0, r4 80055ac: f000 f964 bl 8005878 } 80055b0: bf00 nop 80055b2: 3710 adds r7, #16 80055b4: 46bd mov sp, r7 80055b6: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} 80055ba: bf00 nop 80055bc: 20020018 .word 0x20020018 80055c0: 2006ba44 .word 0x2006ba44 80055c4: 2006c174 .word 0x2006c174 080055c8 : * @param Ypos: Y position * @param Radius: Circle radius * @retval None */ void BSP_LCD_FillCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius) { 80055c8: b580 push {r7, lr} 80055ca: b086 sub sp, #24 80055cc: af00 add r7, sp, #0 80055ce: 4603 mov r3, r0 80055d0: 80fb strh r3, [r7, #6] 80055d2: 460b mov r3, r1 80055d4: 80bb strh r3, [r7, #4] 80055d6: 4613 mov r3, r2 80055d8: 807b strh r3, [r7, #2] int32_t decision; /* Decision Variable */ uint32_t current_x; /* Current X Value */ uint32_t current_y; /* Current Y Value */ decision = 3 - (Radius << 1); 80055da: 887b ldrh r3, [r7, #2] 80055dc: 005b lsls r3, r3, #1 80055de: f1c3 0303 rsb r3, r3, #3 80055e2: 617b str r3, [r7, #20] current_x = 0; 80055e4: 2300 movs r3, #0 80055e6: 613b str r3, [r7, #16] current_y = Radius; 80055e8: 887b ldrh r3, [r7, #2] 80055ea: 60fb str r3, [r7, #12] BSP_LCD_SetTextColor(DrawProp[ActiveLayer].TextColor); 80055ec: 4b44 ldr r3, [pc, #272] ; (8005700 ) 80055ee: 681a ldr r2, [r3, #0] 80055f0: 4944 ldr r1, [pc, #272] ; (8005704 ) 80055f2: 4613 mov r3, r2 80055f4: 005b lsls r3, r3, #1 80055f6: 4413 add r3, r2 80055f8: 009b lsls r3, r3, #2 80055fa: 440b add r3, r1 80055fc: 681b ldr r3, [r3, #0] 80055fe: 4618 mov r0, r3 8005600: f7ff fbca bl 8004d98 while (current_x <= current_y) 8005604: e061 b.n 80056ca { if(current_y > 0) 8005606: 68fb ldr r3, [r7, #12] 8005608: 2b00 cmp r3, #0 800560a: d021 beq.n 8005650 { BSP_LCD_DrawHLine(Xpos - current_y, Ypos + current_x, 2*current_y); 800560c: 68fb ldr r3, [r7, #12] 800560e: b29b uxth r3, r3 8005610: 88fa ldrh r2, [r7, #6] 8005612: 1ad3 subs r3, r2, r3 8005614: b298 uxth r0, r3 8005616: 693b ldr r3, [r7, #16] 8005618: b29a uxth r2, r3 800561a: 88bb ldrh r3, [r7, #4] 800561c: 4413 add r3, r2 800561e: b299 uxth r1, r3 8005620: 68fb ldr r3, [r7, #12] 8005622: b29b uxth r3, r3 8005624: 005b lsls r3, r3, #1 8005626: b29b uxth r3, r3 8005628: 461a mov r2, r3 800562a: f7ff fd0b bl 8005044 BSP_LCD_DrawHLine(Xpos - current_y, Ypos - current_x, 2*current_y); 800562e: 68fb ldr r3, [r7, #12] 8005630: b29b uxth r3, r3 8005632: 88fa ldrh r2, [r7, #6] 8005634: 1ad3 subs r3, r2, r3 8005636: b298 uxth r0, r3 8005638: 693b ldr r3, [r7, #16] 800563a: b29b uxth r3, r3 800563c: 88ba ldrh r2, [r7, #4] 800563e: 1ad3 subs r3, r2, r3 8005640: b299 uxth r1, r3 8005642: 68fb ldr r3, [r7, #12] 8005644: b29b uxth r3, r3 8005646: 005b lsls r3, r3, #1 8005648: b29b uxth r3, r3 800564a: 461a mov r2, r3 800564c: f7ff fcfa bl 8005044 } if(current_x > 0) 8005650: 693b ldr r3, [r7, #16] 8005652: 2b00 cmp r3, #0 8005654: d021 beq.n 800569a { BSP_LCD_DrawHLine(Xpos - current_x, Ypos - current_y, 2*current_x); 8005656: 693b ldr r3, [r7, #16] 8005658: b29b uxth r3, r3 800565a: 88fa ldrh r2, [r7, #6] 800565c: 1ad3 subs r3, r2, r3 800565e: b298 uxth r0, r3 8005660: 68fb ldr r3, [r7, #12] 8005662: b29b uxth r3, r3 8005664: 88ba ldrh r2, [r7, #4] 8005666: 1ad3 subs r3, r2, r3 8005668: b299 uxth r1, r3 800566a: 693b ldr r3, [r7, #16] 800566c: b29b uxth r3, r3 800566e: 005b lsls r3, r3, #1 8005670: b29b uxth r3, r3 8005672: 461a mov r2, r3 8005674: f7ff fce6 bl 8005044 BSP_LCD_DrawHLine(Xpos - current_x, Ypos + current_y, 2*current_x); 8005678: 693b ldr r3, [r7, #16] 800567a: b29b uxth r3, r3 800567c: 88fa ldrh r2, [r7, #6] 800567e: 1ad3 subs r3, r2, r3 8005680: b298 uxth r0, r3 8005682: 68fb ldr r3, [r7, #12] 8005684: b29a uxth r2, r3 8005686: 88bb ldrh r3, [r7, #4] 8005688: 4413 add r3, r2 800568a: b299 uxth r1, r3 800568c: 693b ldr r3, [r7, #16] 800568e: b29b uxth r3, r3 8005690: 005b lsls r3, r3, #1 8005692: b29b uxth r3, r3 8005694: 461a mov r2, r3 8005696: f7ff fcd5 bl 8005044 } if (decision < 0) 800569a: 697b ldr r3, [r7, #20] 800569c: 2b00 cmp r3, #0 800569e: da06 bge.n 80056ae { decision += (current_x << 2) + 6; 80056a0: 693b ldr r3, [r7, #16] 80056a2: 009a lsls r2, r3, #2 80056a4: 697b ldr r3, [r7, #20] 80056a6: 4413 add r3, r2 80056a8: 3306 adds r3, #6 80056aa: 617b str r3, [r7, #20] 80056ac: e00a b.n 80056c4 } else { decision += ((current_x - current_y) << 2) + 10; 80056ae: 693a ldr r2, [r7, #16] 80056b0: 68fb ldr r3, [r7, #12] 80056b2: 1ad3 subs r3, r2, r3 80056b4: 009a lsls r2, r3, #2 80056b6: 697b ldr r3, [r7, #20] 80056b8: 4413 add r3, r2 80056ba: 330a adds r3, #10 80056bc: 617b str r3, [r7, #20] current_y--; 80056be: 68fb ldr r3, [r7, #12] 80056c0: 3b01 subs r3, #1 80056c2: 60fb str r3, [r7, #12] } current_x++; 80056c4: 693b ldr r3, [r7, #16] 80056c6: 3301 adds r3, #1 80056c8: 613b str r3, [r7, #16] while (current_x <= current_y) 80056ca: 693a ldr r2, [r7, #16] 80056cc: 68fb ldr r3, [r7, #12] 80056ce: 429a cmp r2, r3 80056d0: d999 bls.n 8005606 } BSP_LCD_SetTextColor(DrawProp[ActiveLayer].TextColor); 80056d2: 4b0b ldr r3, [pc, #44] ; (8005700 ) 80056d4: 681a ldr r2, [r3, #0] 80056d6: 490b ldr r1, [pc, #44] ; (8005704 ) 80056d8: 4613 mov r3, r2 80056da: 005b lsls r3, r3, #1 80056dc: 4413 add r3, r2 80056de: 009b lsls r3, r3, #2 80056e0: 440b add r3, r1 80056e2: 681b ldr r3, [r3, #0] 80056e4: 4618 mov r0, r3 80056e6: f7ff fb57 bl 8004d98 BSP_LCD_DrawCircle(Xpos, Ypos, Radius); 80056ea: 887a ldrh r2, [r7, #2] 80056ec: 88b9 ldrh r1, [r7, #4] 80056ee: 88fb ldrh r3, [r7, #6] 80056f0: 4618 mov r0, r3 80056f2: f7ff fd9b bl 800522c } 80056f6: bf00 nop 80056f8: 3718 adds r7, #24 80056fa: 46bd mov sp, r7 80056fc: bd80 pop {r7, pc} 80056fe: bf00 nop 8005700: 20020018 .word 0x20020018 8005704: 2006ba44 .word 0x2006ba44 08005708 : * @param Ypos: Start column address * @param c: Pointer to the character data * @retval None */ static void DrawChar(uint16_t Xpos, uint16_t Ypos, const uint8_t *c) { 8005708: b580 push {r7, lr} 800570a: b088 sub sp, #32 800570c: af00 add r7, sp, #0 800570e: 4603 mov r3, r0 8005710: 603a str r2, [r7, #0] 8005712: 80fb strh r3, [r7, #6] 8005714: 460b mov r3, r1 8005716: 80bb strh r3, [r7, #4] uint32_t i = 0, j = 0; 8005718: 2300 movs r3, #0 800571a: 61fb str r3, [r7, #28] 800571c: 2300 movs r3, #0 800571e: 61bb str r3, [r7, #24] uint8_t offset; uint8_t *pchar; uint32_t line; //uint16_t b; height = DrawProp[ActiveLayer].pFont->Height; 8005720: 4b53 ldr r3, [pc, #332] ; (8005870 ) 8005722: 681a ldr r2, [r3, #0] 8005724: 4953 ldr r1, [pc, #332] ; (8005874 ) 8005726: 4613 mov r3, r2 8005728: 005b lsls r3, r3, #1 800572a: 4413 add r3, r2 800572c: 009b lsls r3, r3, #2 800572e: 440b add r3, r1 8005730: 3308 adds r3, #8 8005732: 681b ldr r3, [r3, #0] 8005734: 88db ldrh r3, [r3, #6] 8005736: 827b strh r3, [r7, #18] width = DrawProp[ActiveLayer].pFont->Width; 8005738: 4b4d ldr r3, [pc, #308] ; (8005870 ) 800573a: 681a ldr r2, [r3, #0] 800573c: 494d ldr r1, [pc, #308] ; (8005874 ) 800573e: 4613 mov r3, r2 8005740: 005b lsls r3, r3, #1 8005742: 4413 add r3, r2 8005744: 009b lsls r3, r3, #2 8005746: 440b add r3, r1 8005748: 3308 adds r3, #8 800574a: 681b ldr r3, [r3, #0] 800574c: 889b ldrh r3, [r3, #4] 800574e: 823b strh r3, [r7, #16] offset = 8 *((width + 7)/8) - width ; 8005750: 8a3b ldrh r3, [r7, #16] 8005752: 3307 adds r3, #7 8005754: 2b00 cmp r3, #0 8005756: da00 bge.n 800575a 8005758: 3307 adds r3, #7 800575a: 10db asrs r3, r3, #3 800575c: b2db uxtb r3, r3 800575e: 00db lsls r3, r3, #3 8005760: b2da uxtb r2, r3 8005762: 8a3b ldrh r3, [r7, #16] 8005764: b2db uxtb r3, r3 8005766: 1ad3 subs r3, r2, r3 8005768: 73fb strb r3, [r7, #15] for(i = 0; i < height; i++) 800576a: 2300 movs r3, #0 800576c: 61fb str r3, [r7, #28] 800576e: e076 b.n 800585e { pchar = ((uint8_t *)c + (width + 7)/8 * i); 8005770: 8a3b ldrh r3, [r7, #16] 8005772: 3307 adds r3, #7 8005774: 2b00 cmp r3, #0 8005776: da00 bge.n 800577a 8005778: 3307 adds r3, #7 800577a: 10db asrs r3, r3, #3 800577c: 461a mov r2, r3 800577e: 69fb ldr r3, [r7, #28] 8005780: fb03 f302 mul.w r3, r3, r2 8005784: 683a ldr r2, [r7, #0] 8005786: 4413 add r3, r2 8005788: 60bb str r3, [r7, #8] switch(((width + 7)/8)) 800578a: 8a3b ldrh r3, [r7, #16] 800578c: 3307 adds r3, #7 800578e: 2b00 cmp r3, #0 8005790: da00 bge.n 8005794 8005792: 3307 adds r3, #7 8005794: 10db asrs r3, r3, #3 8005796: 2b01 cmp r3, #1 8005798: d002 beq.n 80057a0 800579a: 2b02 cmp r3, #2 800579c: d004 beq.n 80057a8 800579e: e00c b.n 80057ba { case 1: line = pchar[0]; 80057a0: 68bb ldr r3, [r7, #8] 80057a2: 781b ldrb r3, [r3, #0] 80057a4: 617b str r3, [r7, #20] break; 80057a6: e016 b.n 80057d6 case 2: line = (pchar[0]<< 8) | pchar[1]; 80057a8: 68bb ldr r3, [r7, #8] 80057aa: 781b ldrb r3, [r3, #0] 80057ac: 021b lsls r3, r3, #8 80057ae: 68ba ldr r2, [r7, #8] 80057b0: 3201 adds r2, #1 80057b2: 7812 ldrb r2, [r2, #0] 80057b4: 4313 orrs r3, r2 80057b6: 617b str r3, [r7, #20] break; 80057b8: e00d b.n 80057d6 case 3: default: line = (pchar[0]<< 16) | (pchar[1]<< 8) | pchar[2]; 80057ba: 68bb ldr r3, [r7, #8] 80057bc: 781b ldrb r3, [r3, #0] 80057be: 041a lsls r2, r3, #16 80057c0: 68bb ldr r3, [r7, #8] 80057c2: 3301 adds r3, #1 80057c4: 781b ldrb r3, [r3, #0] 80057c6: 021b lsls r3, r3, #8 80057c8: 4313 orrs r3, r2 80057ca: 68ba ldr r2, [r7, #8] 80057cc: 3202 adds r2, #2 80057ce: 7812 ldrb r2, [r2, #0] 80057d0: 4313 orrs r3, r2 80057d2: 617b str r3, [r7, #20] break; 80057d4: bf00 nop } for (j = 0; j < width; j++) 80057d6: 2300 movs r3, #0 80057d8: 61bb str r3, [r7, #24] 80057da: e036 b.n 800584a { if(line & (1 << (width- j + offset- 1))) 80057dc: 8a3a ldrh r2, [r7, #16] 80057de: 69bb ldr r3, [r7, #24] 80057e0: 1ad2 subs r2, r2, r3 80057e2: 7bfb ldrb r3, [r7, #15] 80057e4: 4413 add r3, r2 80057e6: 3b01 subs r3, #1 80057e8: 2201 movs r2, #1 80057ea: fa02 f303 lsl.w r3, r2, r3 80057ee: 461a mov r2, r3 80057f0: 697b ldr r3, [r7, #20] 80057f2: 4013 ands r3, r2 80057f4: 2b00 cmp r3, #0 80057f6: d012 beq.n 800581e { BSP_LCD_DrawPixel((Xpos + j), Ypos, DrawProp[ActiveLayer].TextColor); 80057f8: 69bb ldr r3, [r7, #24] 80057fa: b29a uxth r2, r3 80057fc: 88fb ldrh r3, [r7, #6] 80057fe: 4413 add r3, r2 8005800: b298 uxth r0, r3 8005802: 4b1b ldr r3, [pc, #108] ; (8005870 ) 8005804: 681a ldr r2, [r3, #0] 8005806: 491b ldr r1, [pc, #108] ; (8005874 ) 8005808: 4613 mov r3, r2 800580a: 005b lsls r3, r3, #1 800580c: 4413 add r3, r2 800580e: 009b lsls r3, r3, #2 8005810: 440b add r3, r1 8005812: 681a ldr r2, [r3, #0] 8005814: 88bb ldrh r3, [r7, #4] 8005816: 4619 mov r1, r3 8005818: f7ff fdf8 bl 800540c 800581c: e012 b.n 8005844 } else { BSP_LCD_DrawPixel((Xpos + j), Ypos, DrawProp[ActiveLayer].BackColor); 800581e: 69bb ldr r3, [r7, #24] 8005820: b29a uxth r2, r3 8005822: 88fb ldrh r3, [r7, #6] 8005824: 4413 add r3, r2 8005826: b298 uxth r0, r3 8005828: 4b11 ldr r3, [pc, #68] ; (8005870 ) 800582a: 681a ldr r2, [r3, #0] 800582c: 4911 ldr r1, [pc, #68] ; (8005874 ) 800582e: 4613 mov r3, r2 8005830: 005b lsls r3, r3, #1 8005832: 4413 add r3, r2 8005834: 009b lsls r3, r3, #2 8005836: 440b add r3, r1 8005838: 3304 adds r3, #4 800583a: 681a ldr r2, [r3, #0] 800583c: 88bb ldrh r3, [r7, #4] 800583e: 4619 mov r1, r3 8005840: f7ff fde4 bl 800540c for (j = 0; j < width; j++) 8005844: 69bb ldr r3, [r7, #24] 8005846: 3301 adds r3, #1 8005848: 61bb str r3, [r7, #24] 800584a: 8a3a ldrh r2, [r7, #16] 800584c: 69bb ldr r3, [r7, #24] 800584e: 429a cmp r2, r3 8005850: d8c4 bhi.n 80057dc } } Ypos++; 8005852: 88bb ldrh r3, [r7, #4] 8005854: 3301 adds r3, #1 8005856: 80bb strh r3, [r7, #4] for(i = 0; i < height; i++) 8005858: 69fb ldr r3, [r7, #28] 800585a: 3301 adds r3, #1 800585c: 61fb str r3, [r7, #28] 800585e: 8a7a ldrh r2, [r7, #18] 8005860: 69fb ldr r3, [r7, #28] 8005862: 429a cmp r2, r3 8005864: d884 bhi.n 8005770 } } 8005866: bf00 nop 8005868: 3720 adds r7, #32 800586a: 46bd mov sp, r7 800586c: bd80 pop {r7, pc} 800586e: bf00 nop 8005870: 20020018 .word 0x20020018 8005874: 2006ba44 .word 0x2006ba44 08005878 : * @param OffLine: Offset * @param ColorIndex: Color index * @retval None */ static void LL_FillBuffer(uint32_t LayerIndex, void *pDst, uint32_t xSize, uint32_t ySize, uint32_t OffLine, uint32_t ColorIndex) { 8005878: b580 push {r7, lr} 800587a: b086 sub sp, #24 800587c: af02 add r7, sp, #8 800587e: 60f8 str r0, [r7, #12] 8005880: 60b9 str r1, [r7, #8] 8005882: 607a str r2, [r7, #4] 8005884: 603b str r3, [r7, #0] /* Register to memory mode with ARGB8888 as color Mode */ hDma2dHandler.Init.Mode = DMA2D_R2M; 8005886: 4b1e ldr r3, [pc, #120] ; (8005900 ) 8005888: f44f 3240 mov.w r2, #196608 ; 0x30000 800588c: 605a str r2, [r3, #4] if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565) 800588e: 4b1d ldr r3, [pc, #116] ; (8005904 ) 8005890: 681b ldr r3, [r3, #0] 8005892: 4a1d ldr r2, [pc, #116] ; (8005908 ) 8005894: 2134 movs r1, #52 ; 0x34 8005896: fb01 f303 mul.w r3, r1, r3 800589a: 4413 add r3, r2 800589c: 3348 adds r3, #72 ; 0x48 800589e: 681b ldr r3, [r3, #0] 80058a0: 2b02 cmp r3, #2 80058a2: d103 bne.n 80058ac hDma2dHandler.Init.ColorMode = DMA2D_RGB565; 80058a4: 4b16 ldr r3, [pc, #88] ; (8005900 ) 80058a6: 2202 movs r2, #2 80058a8: 609a str r2, [r3, #8] 80058aa: e002 b.n 80058b2 else hDma2dHandler.Init.ColorMode = DMA2D_ARGB8888; 80058ac: 4b14 ldr r3, [pc, #80] ; (8005900 ) 80058ae: 2200 movs r2, #0 80058b0: 609a str r2, [r3, #8] hDma2dHandler.Init.OutputOffset = OffLine; 80058b2: 4a13 ldr r2, [pc, #76] ; (8005900 ) 80058b4: 69bb ldr r3, [r7, #24] 80058b6: 60d3 str r3, [r2, #12] hDma2dHandler.Instance = DMA2D; 80058b8: 4b11 ldr r3, [pc, #68] ; (8005900 ) 80058ba: 4a14 ldr r2, [pc, #80] ; (800590c ) 80058bc: 601a str r2, [r3, #0] if(HAL_DMA2D_Init(&hDma2dHandler) == HAL_OK) 80058be: 4810 ldr r0, [pc, #64] ; (8005900 ) 80058c0: f00c f9da bl 8011c78 80058c4: 4603 mov r3, r0 80058c6: 2b00 cmp r3, #0 80058c8: d115 bne.n 80058f6 { if(HAL_DMA2D_ConfigLayer(&hDma2dHandler, LayerIndex) == HAL_OK) 80058ca: 68f9 ldr r1, [r7, #12] 80058cc: 480c ldr r0, [pc, #48] ; (8005900 ) 80058ce: f00c fb41 bl 8011f54 80058d2: 4603 mov r3, r0 80058d4: 2b00 cmp r3, #0 80058d6: d10e bne.n 80058f6 { if (HAL_DMA2D_Start(&hDma2dHandler, ColorIndex, (uint32_t)pDst, xSize, ySize) == HAL_OK) 80058d8: 68ba ldr r2, [r7, #8] 80058da: 683b ldr r3, [r7, #0] 80058dc: 9300 str r3, [sp, #0] 80058de: 687b ldr r3, [r7, #4] 80058e0: 69f9 ldr r1, [r7, #28] 80058e2: 4807 ldr r0, [pc, #28] ; (8005900 ) 80058e4: f00c fa22 bl 8011d2c 80058e8: 4603 mov r3, r0 80058ea: 2b00 cmp r3, #0 80058ec: d103 bne.n 80058f6 { HAL_DMA2D_PollForTransfer(&hDma2dHandler, 30); 80058ee: 211e movs r1, #30 80058f0: 4803 ldr r0, [pc, #12] ; (8005900 ) 80058f2: f00c fa46 bl 8011d82 } } } } 80058f6: bf00 nop 80058f8: 3710 adds r7, #16 80058fa: 46bd mov sp, r7 80058fc: bd80 pop {r7, pc} 80058fe: bf00 nop 8005900: 2006b9ec .word 0x2006b9ec 8005904: 20020018 .word 0x20020018 8005908: 2006c174 .word 0x2006c174 800590c: 4002b000 .word 0x4002b000 08005910 : } } void DrawImage(const GUI_BITMAP * pBM, uint16_t x0, uint16_t y0) { 8005910: b580 push {r7, lr} 8005912: b088 sub sp, #32 8005914: af02 add r7, sp, #8 8005916: 6078 str r0, [r7, #4] 8005918: 460b mov r3, r1 800591a: 807b strh r3, [r7, #2] 800591c: 4613 mov r3, r2 800591e: 803b strh r3, [r7, #0] //HAL_StatusTypeDef hal_status = HAL_OK; uint32_t Xaddress = 0; 8005920: 2300 movs r3, #0 8005922: 617b str r3, [r7, #20] uint8_t * p; uint16_t xSize = pBM->XSize; 8005924: 687b ldr r3, [r7, #4] 8005926: 881b ldrh r3, [r3, #0] 8005928: 827b strh r3, [r7, #18] uint16_t ySize = pBM->YSize; 800592a: 687b ldr r3, [r7, #4] 800592c: 885b ldrh r3, [r3, #2] 800592e: 823b strh r3, [r7, #16] //uint16_t BytesPerLine = pBM->BytesPerLine; p = (uint8_t *) pBM->pData; 8005930: 687b ldr r3, [r7, #4] 8005932: 689b ldr r3, [r3, #8] 8005934: 60fb str r3, [r7, #12] Xaddress = hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + ((320 * y0 + x0) << 1); 8005936: 4b39 ldr r3, [pc, #228] ; (8005a1c ) 8005938: 681b ldr r3, [r3, #0] 800593a: 4a39 ldr r2, [pc, #228] ; (8005a20 ) 800593c: 2134 movs r1, #52 ; 0x34 800593e: fb01 f303 mul.w r3, r1, r3 8005942: 4413 add r3, r2 8005944: 335c adds r3, #92 ; 0x5c 8005946: 6819 ldr r1, [r3, #0] 8005948: 883a ldrh r2, [r7, #0] 800594a: 4613 mov r3, r2 800594c: 009b lsls r3, r3, #2 800594e: 4413 add r3, r2 8005950: 019b lsls r3, r3, #6 8005952: 461a mov r2, r3 8005954: 887b ldrh r3, [r7, #2] 8005956: 4413 add r3, r2 8005958: 005b lsls r3, r3, #1 800595a: 440b add r3, r1 800595c: 617b str r3, [r7, #20] hDma2dHandler.Init.Mode = DMA2D_M2M; 800595e: 4b31 ldr r3, [pc, #196] ; (8005a24 ) 8005960: 2200 movs r2, #0 8005962: 605a str r2, [r3, #4] hDma2dHandler.Init.ColorMode = DMA2D_RGB565; 8005964: 4b2f ldr r3, [pc, #188] ; (8005a24 ) 8005966: 2202 movs r2, #2 8005968: 609a str r2, [r3, #8] hDma2dHandler.Init.OutputOffset = 320 - xSize; 800596a: 8a7b ldrh r3, [r7, #18] 800596c: f5c3 73a0 rsb r3, r3, #320 ; 0x140 8005970: 461a mov r2, r3 8005972: 4b2c ldr r3, [pc, #176] ; (8005a24 ) 8005974: 60da str r2, [r3, #12] /* DMA2D Callbacks Configuration */ hDma2dHandler.XferCpltCallback = TransferComplete; 8005976: 4b2b ldr r3, [pc, #172] ; (8005a24 ) 8005978: 4a2b ldr r2, [pc, #172] ; (8005a28 ) 800597a: 619a str r2, [r3, #24] hDma2dHandler.XferErrorCallback = TransferError; 800597c: 4b29 ldr r3, [pc, #164] ; (8005a24 ) 800597e: 4a2b ldr r2, [pc, #172] ; (8005a2c ) 8005980: 61da str r2, [r3, #28] /* Foreground layer Configuration : layer 1 */ hDma2dHandler.LayerCfg[ActiveLayer].AlphaMode = DMA2D_NO_MODIF_ALPHA; 8005982: 4b26 ldr r3, [pc, #152] ; (8005a1c ) 8005984: 681a ldr r2, [r3, #0] 8005986: 4927 ldr r1, [pc, #156] ; (8005a24 ) 8005988: 4613 mov r3, r2 800598a: 005b lsls r3, r3, #1 800598c: 4413 add r3, r2 800598e: 00db lsls r3, r3, #3 8005990: 440b add r3, r1 8005992: 3328 adds r3, #40 ; 0x28 8005994: 2200 movs r2, #0 8005996: 601a str r2, [r3, #0] hDma2dHandler.LayerCfg[ActiveLayer].InputAlpha = 255; /* Alpha fully opaque */ 8005998: 4b20 ldr r3, [pc, #128] ; (8005a1c ) 800599a: 681a ldr r2, [r3, #0] 800599c: 4921 ldr r1, [pc, #132] ; (8005a24 ) 800599e: 4613 mov r3, r2 80059a0: 005b lsls r3, r3, #1 80059a2: 4413 add r3, r2 80059a4: 00db lsls r3, r3, #3 80059a6: 440b add r3, r1 80059a8: 332c adds r3, #44 ; 0x2c 80059aa: 22ff movs r2, #255 ; 0xff 80059ac: 601a str r2, [r3, #0] hDma2dHandler.LayerCfg[ActiveLayer].InputColorMode = DMA2D_INPUT_RGB565; /* Layer 1 input format is ARGB8888 (32 bpp) */ 80059ae: 4b1b ldr r3, [pc, #108] ; (8005a1c ) 80059b0: 681a ldr r2, [r3, #0] 80059b2: 491c ldr r1, [pc, #112] ; (8005a24 ) 80059b4: 4613 mov r3, r2 80059b6: 005b lsls r3, r3, #1 80059b8: 4413 add r3, r2 80059ba: 00db lsls r3, r3, #3 80059bc: 440b add r3, r1 80059be: 3324 adds r3, #36 ; 0x24 80059c0: 2202 movs r2, #2 80059c2: 601a str r2, [r3, #0] hDma2dHandler.LayerCfg[ActiveLayer].InputOffset = 0; /* No offset in input */ 80059c4: 4b15 ldr r3, [pc, #84] ; (8005a1c ) 80059c6: 681a ldr r2, [r3, #0] 80059c8: 4916 ldr r1, [pc, #88] ; (8005a24 ) 80059ca: 4613 mov r3, r2 80059cc: 005b lsls r3, r3, #1 80059ce: 4413 add r3, r2 80059d0: 00db lsls r3, r3, #3 80059d2: 440b add r3, r1 80059d4: 3320 adds r3, #32 80059d6: 2200 movs r2, #0 80059d8: 601a str r2, [r3, #0] hDma2dHandler.Instance = DMA2D; 80059da: 4b12 ldr r3, [pc, #72] ; (8005a24 ) 80059dc: 4a14 ldr r2, [pc, #80] ; (8005a30 ) 80059de: 601a str r2, [r3, #0] /* DMA2D Initialization */ HAL_DMA2D_Init(&hDma2dHandler); 80059e0: 4810 ldr r0, [pc, #64] ; (8005a24 ) 80059e2: f00c f949 bl 8011c78 HAL_DMA2D_ConfigLayer(&hDma2dHandler, ActiveLayer); 80059e6: 4b0d ldr r3, [pc, #52] ; (8005a1c ) 80059e8: 681b ldr r3, [r3, #0] 80059ea: 4619 mov r1, r3 80059ec: 480d ldr r0, [pc, #52] ; (8005a24 ) 80059ee: f00c fab1 bl 8011f54 DMA2D_TransferOk = 0; 80059f2: 4b10 ldr r3, [pc, #64] ; (8005a34 ) 80059f4: 2200 movs r2, #0 80059f6: 601a str r2, [r3, #0] HAL_DMA2D_Start(&hDma2dHandler, (uint32_t) p, Xaddress, xSize, ySize); 80059f8: 68f9 ldr r1, [r7, #12] 80059fa: 8a7a ldrh r2, [r7, #18] 80059fc: 8a3b ldrh r3, [r7, #16] 80059fe: 9300 str r3, [sp, #0] 8005a00: 4613 mov r3, r2 8005a02: 697a ldr r2, [r7, #20] 8005a04: 4807 ldr r0, [pc, #28] ; (8005a24 ) 8005a06: f00c f991 bl 8011d2c HAL_DMA2D_PollForTransfer(&hDma2dHandler, 30); 8005a0a: 211e movs r1, #30 8005a0c: 4805 ldr r0, [pc, #20] ; (8005a24 ) 8005a0e: f00c f9b8 bl 8011d82 //SCB_CleanInvalidateDCache(); } 8005a12: bf00 nop 8005a14: 3718 adds r7, #24 8005a16: 46bd mov sp, r7 8005a18: bd80 pop {r7, pc} 8005a1a: bf00 nop 8005a1c: 20020018 .word 0x20020018 8005a20: 2006c174 .word 0x2006c174 8005a24: 2006b9ec .word 0x2006b9ec 8005a28: 08005a39 .word 0x08005a39 8005a2c: 08005a59 .word 0x08005a59 8005a30: 4002b000 .word 0x4002b000 8005a34: 2002001c .word 0x2002001c 08005a38 : static void TransferComplete(DMA2D_HandleTypeDef *hdma2d) { 8005a38: b480 push {r7} 8005a3a: b083 sub sp, #12 8005a3c: af00 add r7, sp, #0 8005a3e: 6078 str r0, [r7, #4] DMA2D_TransferOk = 1; 8005a40: 4b04 ldr r3, [pc, #16] ; (8005a54 ) 8005a42: 2201 movs r2, #1 8005a44: 601a str r2, [r3, #0] } 8005a46: bf00 nop 8005a48: 370c adds r7, #12 8005a4a: 46bd mov sp, r7 8005a4c: f85d 7b04 ldr.w r7, [sp], #4 8005a50: 4770 bx lr 8005a52: bf00 nop 8005a54: 2002001c .word 0x2002001c 08005a58 : static void TransferError(DMA2D_HandleTypeDef *hdma2d) { 8005a58: b480 push {r7} 8005a5a: b083 sub sp, #12 8005a5c: af00 add r7, sp, #0 8005a5e: 6078 str r0, [r7, #4] } 8005a60: bf00 nop 8005a62: 370c adds r7, #12 8005a64: 46bd mov sp, r7 8005a66: f85d 7b04 ldr.w r7, [sp], #4 8005a6a: 4770 bx lr 08005a6c : void LCD_Refresh(void) { 8005a6c: b580 push {r7, lr} 8005a6e: af00 add r7, sp, #0 ActiveLayer ^= 1; 8005a70: 4b0e ldr r3, [pc, #56] ; (8005aac ) 8005a72: 681b ldr r3, [r3, #0] 8005a74: f083 0301 eor.w r3, r3, #1 8005a78: 4a0c ldr r2, [pc, #48] ; (8005aac ) 8005a7a: 6013 str r3, [r2, #0] RenderingLayer ^= 1; 8005a7c: 4b0c ldr r3, [pc, #48] ; (8005ab0 ) 8005a7e: 681b ldr r3, [r3, #0] 8005a80: f083 0301 eor.w r3, r3, #1 8005a84: 4a0a ldr r2, [pc, #40] ; (8005ab0 ) 8005a86: 6013 str r3, [r2, #0] BSP_LCD_SetLayerVisible_NoReload(ActiveLayer, DISABLE); 8005a88: 4b08 ldr r3, [pc, #32] ; (8005aac ) 8005a8a: 681b ldr r3, [r3, #0] 8005a8c: 2100 movs r1, #0 8005a8e: 4618 mov r0, r3 8005a90: f7ff f926 bl 8004ce0 BSP_LCD_SetLayerVisible_NoReload(RenderingLayer, ENABLE); 8005a94: 4b06 ldr r3, [pc, #24] ; (8005ab0 ) 8005a96: 681b ldr r3, [r3, #0] 8005a98: 2101 movs r1, #1 8005a9a: 4618 mov r0, r3 8005a9c: f7ff f920 bl 8004ce0 HAL_LTDC_Reload(&hLtdcHandler, LTDC_RELOAD_IMMEDIATE); 8005aa0: 2101 movs r1, #1 8005aa2: 4804 ldr r0, [pc, #16] ; (8005ab4 ) 8005aa4: f00d fac6 bl 8013034 //BSP_LCD_Reload(LCD_RELOAD_VERTICAL_BLANKING); } 8005aa8: bf00 nop 8005aaa: bd80 pop {r7, pc} 8005aac: 20020018 .word 0x20020018 8005ab0: 2006ba5c .word 0x2006ba5c 8005ab4: 2006c174 .word 0x2006c174 08005ab8 : void HAL_LTDC_LineEventCallback(LTDC_HandleTypeDef *hltdc) { 8005ab8: b580 push {r7, lr} 8005aba: b082 sub sp, #8 8005abc: af00 add r7, sp, #0 8005abe: 6078 str r0, [r7, #4] if(RefreshScreen) 8005ac0: 4b06 ldr r3, [pc, #24] ; (8005adc ) 8005ac2: 781b ldrb r3, [r3, #0] 8005ac4: b2db uxtb r3, r3 8005ac6: 2b00 cmp r3, #0 8005ac8: d004 beq.n 8005ad4 { LCD_Refresh(); 8005aca: f7ff ffcf bl 8005a6c RefreshScreen = false; 8005ace: 4b03 ldr r3, [pc, #12] ; (8005adc ) 8005ad0: 2200 movs r2, #0 8005ad2: 701a strb r2, [r3, #0] } } 8005ad4: bf00 nop 8005ad6: 3708 adds r7, #8 8005ad8: 46bd mov sp, r7 8005ada: bd80 pop {r7, pc} 8005adc: 2006ba60 .word 0x2006ba60 08005ae0
: const char _VERSION[] = "VER 2.203.0\0"; volatile char _SERIAL_DRAW[10] = {'S', 'N', ' ', '2', '3', '0', '0', '1', 0, 0}; int main(void) { 8005ae0: b580 push {r7, lr} 8005ae2: b092 sub sp, #72 ; 0x48 8005ae4: af00 add r7, sp, #0 uint32_t cnt = 0, i, j, k, l; 8005ae6: 2300 movs r3, #0 8005ae8: 63fb str r3, [r7, #60] ; 0x3c float32_t f; char str[50]; uint32_t keys = 0; 8005aea: 2300 movs r3, #0 8005aec: 63bb str r3, [r7, #56] ; 0x38 HAL_Init(); 8005aee: f00b fcd9 bl 80114a4 SystemClock_Config(); 8005af2: f000 f8df bl 8005cb4 MX_GPIO_Init(); 8005af6: f7fa fe4f bl 8000798 initFlash(); 8005afa: f7fa fdb3 bl 8000664 MX_DMA2D_Init(); 8005afe: f7fa fd59 bl 80005b4 MX_TIM7_Init(); 8005b02: f009 ff0d bl 800f920 MX_LTDC_Init(); 8005b06: f7fe fe6f bl 80047e8 initKeys(); 8005b0a: f7fa ff39 bl 8000980 /////////////////////////////// todo CNT_CHANNELS = 4; 8005b0e: 4b5e ldr r3, [pc, #376] ; (8005c88 ) 8005b10: 2204 movs r2, #4 8005b12: 601a str r2, [r3, #0] ACTIVE_CHANNEL = Ch1; 8005b14: 4b5d ldr r3, [pc, #372] ; (8005c8c ) 8005b16: 2200 movs r2, #0 8005b18: 601a str r2, [r3, #0] menupos = Hp; 8005b1a: 4b5d ldr r3, [pc, #372] ; (8005c90 ) 8005b1c: 2200 movs r2, #0 8005b1e: 701a strb r2, [r3, #0] for(i = 0; i < 16; i++) 8005b20: 2300 movs r3, #0 8005b22: 647b str r3, [r7, #68] ; 0x44 8005b24: e05d b.n 8005be2 { pardata.amplif[i].IIN = CHARGE; 8005b26: 4a5b ldr r2, [pc, #364] ; (8005c94 ) 8005b28: 6c7b ldr r3, [r7, #68] ; 0x44 8005b2a: 015b lsls r3, r3, #5 8005b2c: 4413 add r3, r2 8005b2e: 2200 movs r2, #0 8005b30: 801a strh r2, [r3, #0] pardata.amplif[i].IFV = Hp0_2; 8005b32: 4a58 ldr r2, [pc, #352] ; (8005c94 ) 8005b34: 6c7b ldr r3, [r7, #68] ; 0x44 8005b36: 015b lsls r3, r3, #5 8005b38: 4413 add r3, r2 8005b3a: 3302 adds r3, #2 8005b3c: 2200 movs r2, #0 8005b3e: 801a strh r2, [r3, #0] pardata.amplif[i].IFN = Lp100000; 8005b40: 4a54 ldr r2, [pc, #336] ; (8005c94 ) 8005b42: 6c7b ldr r3, [r7, #68] ; 0x44 8005b44: 015b lsls r3, r3, #5 8005b46: 4413 add r3, r2 8005b48: 3304 adds r3, #4 8005b4a: 2207 movs r2, #7 8005b4c: 801a strh r2, [r3, #0] pardata.amplif[i].IKU = Ku1000; 8005b4e: 4a51 ldr r2, [pc, #324] ; (8005c94 ) 8005b50: 6c7b ldr r3, [r7, #68] ; 0x44 8005b52: 015b lsls r3, r3, #5 8005b54: 4413 add r3, r2 8005b56: 3306 adds r3, #6 8005b58: 220c movs r2, #12 8005b5a: 801a strh r2, [r3, #0] pardata.amplif[i].IKS = 0; 8005b5c: 4a4d ldr r2, [pc, #308] ; (8005c94 ) 8005b5e: 6c7b ldr r3, [r7, #68] ; 0x44 8005b60: 015b lsls r3, r3, #5 8005b62: 4413 add r3, r2 8005b64: 330c adds r3, #12 8005b66: 2200 movs r2, #0 8005b68: 801a strh r2, [r3, #0] pardata.amplif[i].IKD = 0; 8005b6a: 4a4a ldr r2, [pc, #296] ; (8005c94 ) 8005b6c: 6c7b ldr r3, [r7, #68] ; 0x44 8005b6e: 015b lsls r3, r3, #5 8005b70: 4413 add r3, r2 8005b72: 330a adds r3, #10 8005b74: 2200 movs r2, #0 8005b76: 801a strh r2, [r3, #0] pardata.amplif[i].IKE = 1; 8005b78: 4a46 ldr r2, [pc, #280] ; (8005c94 ) 8005b7a: 6c7b ldr r3, [r7, #68] ; 0x44 8005b7c: 015b lsls r3, r3, #5 8005b7e: 4413 add r3, r2 8005b80: 3308 adds r3, #8 8005b82: 2201 movs r2, #1 8005b84: 801a strh r2, [r3, #0] pardata.amplif[i].IPZ = 0; 8005b86: 4a43 ldr r2, [pc, #268] ; (8005c94 ) 8005b88: 6c7b ldr r3, [r7, #68] ; 0x44 8005b8a: 015b lsls r3, r3, #5 8005b8c: 4413 add r3, r2 8005b8e: 330e adds r3, #14 8005b90: 2200 movs r2, #0 8005b92: 801a strh r2, [r3, #0] pardata.amplif[i].OPZ = 0; 8005b94: 4a3f ldr r2, [pc, #252] ; (8005c94 ) 8005b96: 6c7b ldr r3, [r7, #68] ; 0x44 8005b98: 015b lsls r3, r3, #5 8005b9a: 4413 add r3, r2 8005b9c: 3310 adds r3, #16 8005b9e: 2200 movs r2, #0 8005ba0: 801a strh r2, [r3, #0] pardata.amplif[i].VAL = Accel; 8005ba2: 4a3c ldr r2, [pc, #240] ; (8005c94 ) 8005ba4: 6c7b ldr r3, [r7, #68] ; 0x44 8005ba6: 015b lsls r3, r3, #5 8005ba8: 4413 add r3, r2 8005baa: 3312 adds r3, #18 8005bac: 2200 movs r2, #0 8005bae: 801a strh r2, [r3, #0] pardata.amplif[i].KCOND = 1.00f; 8005bb0: 4a38 ldr r2, [pc, #224] ; (8005c94 ) 8005bb2: 6c7b ldr r3, [r7, #68] ; 0x44 8005bb4: 015b lsls r3, r3, #5 8005bb6: 4413 add r3, r2 8005bb8: 3314 adds r3, #20 8005bba: f04f 527e mov.w r2, #1065353216 ; 0x3f800000 8005bbe: 601a str r2, [r3, #0] pardata.amplif[i].SENS = 10.00f; 8005bc0: 4a34 ldr r2, [pc, #208] ; (8005c94 ) 8005bc2: 6c7b ldr r3, [r7, #68] ; 0x44 8005bc4: 015b lsls r3, r3, #5 8005bc6: 4413 add r3, r2 8005bc8: 3318 adds r3, #24 8005bca: 4a33 ldr r2, [pc, #204] ; (8005c98 ) 8005bcc: 601a str r2, [r3, #0] pardata.amplif[i].ACCEL = 100.00f; 8005bce: 4a31 ldr r2, [pc, #196] ; (8005c94 ) 8005bd0: 6c7b ldr r3, [r7, #68] ; 0x44 8005bd2: 015b lsls r3, r3, #5 8005bd4: 4413 add r3, r2 8005bd6: 331c adds r3, #28 8005bd8: 4a30 ldr r2, [pc, #192] ; (8005c9c ) 8005bda: 601a str r2, [r3, #0] for(i = 0; i < 16; i++) 8005bdc: 6c7b ldr r3, [r7, #68] ; 0x44 8005bde: 3301 adds r3, #1 8005be0: 647b str r3, [r7, #68] ; 0x44 8005be2: 6c7b ldr r3, [r7, #68] ; 0x44 8005be4: 2b0f cmp r3, #15 8005be6: d99e bls.n 8005b26 } pardata.OWN = 18; 8005be8: 4b2a ldr r3, [pc, #168] ; (8005c94 ) 8005bea: 2212 movs r2, #18 8005bec: f8a3 2200 strh.w r2, [r3, #512] ; 0x200 pardata.BAUD = 7; 8005bf0: 4b28 ldr r3, [pc, #160] ; (8005c94 ) 8005bf2: 2207 movs r2, #7 8005bf4: f8a3 2202 strh.w r2, [r3, #514] ; 0x202 pardata.INFB = 0; 8005bf8: 4b26 ldr r3, [pc, #152] ; (8005c94 ) 8005bfa: 2200 movs r2, #0 8005bfc: f8a3 2204 strh.w r2, [r3, #516] ; 0x204 //pardata.LANG = RUS; ///////////////////////////// MX_UART7_Init(); 8005c00: f009 ffa8 bl 800fb54 EXTI_Config(); 8005c04: f000 f8f6 bl 8005df4 Logo(); 8005c08: f000 f958 bl 8005ebc while(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET) { 8005c0c: e001 b.n 8005c12 RedrawScreen(); 8005c0e: f000 f945 bl 8005e9c while(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET) { 8005c12: 2101 movs r1, #1 8005c14: 4822 ldr r0, [pc, #136] ; (8005ca0 ) 8005c16: f00c ffc5 bl 8012ba4 8005c1a: 4603 mov r3, r0 8005c1c: 2b01 cmp r3, #1 8005c1e: d0f6 beq.n 8005c0e } KeysIsReady = true; 8005c20: 4b20 ldr r3, [pc, #128] ; (8005ca4 ) 8005c22: 2201 movs r2, #1 8005c24: 701a strb r2, [r3, #0] for(k = 0; k < 30; k++) 8005c26: 2300 movs r3, #0 8005c28: 643b str r3, [r7, #64] ; 0x40 8005c2a: e00f b.n 8005c4c { keys = kbhit(); 8005c2c: f7fa ff36 bl 8000a9c 8005c30: 63b8 str r0, [r7, #56] ; 0x38 if((keys == KEY_UP) || (keys == (KEY_UP + KEY_OK))) 8005c32: 6bbb ldr r3, [r7, #56] ; 0x38 8005c34: 2b02 cmp r3, #2 8005c36: d002 beq.n 8005c3e 8005c38: 6bbb ldr r3, [r7, #56] ; 0x38 8005c3a: 2b22 cmp r3, #34 ; 0x22 8005c3c: d103 bne.n 8005c46 { clbr = true; 8005c3e: 4b1a ldr r3, [pc, #104] ; (8005ca8 ) 8005c40: 2201 movs r2, #1 8005c42: 701a strb r2, [r3, #0] break; 8005c44: e005 b.n 8005c52 for(k = 0; k < 30; k++) 8005c46: 6c3b ldr r3, [r7, #64] ; 0x40 8005c48: 3301 adds r3, #1 8005c4a: 643b str r3, [r7, #64] ; 0x40 8005c4c: 6c3b ldr r3, [r7, #64] ; 0x40 8005c4e: 2b1d cmp r3, #29 8005c50: d9ec bls.n 8005c2c } } HAL_Delay(1000); 8005c52: f44f 707a mov.w r0, #1000 ; 0x3e8 8005c56: f00b fc91 bl 801157c AskChannels(); 8005c5a: f00b fb59 bl 8011310 //menu = MAIN; //todo timerAsk = msec1900; 8005c5e: 4b13 ldr r3, [pc, #76] ; (8005cac ) 8005c60: 22be movs r2, #190 ; 0xbe 8005c62: 801a strh r2, [r3, #0] FlagAsk = 0; 8005c64: 4b12 ldr r3, [pc, #72] ; (8005cb0 ) 8005c66: 2200 movs r2, #0 8005c68: 701a strb r2, [r3, #0] while(1) { RedrawScreen(); 8005c6a: f000 f917 bl 8005e9c keyIns(); 8005c6e: f7fa ff85 bl 8000b7c if(FlagAsk) 8005c72: 4b0f ldr r3, [pc, #60] ; (8005cb0 ) 8005c74: 781b ldrb r3, [r3, #0] 8005c76: b2db uxtb r3, r3 8005c78: 2b00 cmp r3, #0 8005c7a: d0f6 beq.n 8005c6a { FlagAsk = 0; 8005c7c: 4b0c ldr r3, [pc, #48] ; (8005cb0 ) 8005c7e: 2200 movs r2, #0 8005c80: 701a strb r2, [r3, #0] AskPeriodic(); 8005c82: f00b fbe1 bl 8011448 RedrawScreen(); 8005c86: e7f0 b.n 8005c6a 8005c88: 2006ba6c .word 0x2006ba6c 8005c8c: 2006ba68 .word 0x2006ba68 8005c90: 20020010 .word 0x20020010 8005c94: 2006bca8 .word 0x2006bca8 8005c98: 41200000 .word 0x41200000 8005c9c: 42c80000 .word 0x42c80000 8005ca0: 40020000 .word 0x40020000 8005ca4: 200209dc .word 0x200209dc 8005ca8: 2006c21c .word 0x2006c21c 8005cac: 2002099e .word 0x2002099e 8005cb0: 2006ba87 .word 0x2006ba87 08005cb4 : /** * @brief System Clock Configuration * @retval None */ void SystemClock_Config(void) { 8005cb4: b580 push {r7, lr} 8005cb6: b0b8 sub sp, #224 ; 0xe0 8005cb8: af00 add r7, sp, #0 RCC_OscInitTypeDef RCC_OscInitStruct = {0}; 8005cba: f107 03ac add.w r3, r7, #172 ; 0xac 8005cbe: 2234 movs r2, #52 ; 0x34 8005cc0: 2100 movs r1, #0 8005cc2: 4618 mov r0, r3 8005cc4: f010 fbcd bl 8016462 RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; 8005cc8: f107 0398 add.w r3, r7, #152 ; 0x98 8005ccc: 2200 movs r2, #0 8005cce: 601a str r2, [r3, #0] 8005cd0: 605a str r2, [r3, #4] 8005cd2: 609a str r2, [r3, #8] 8005cd4: 60da str r2, [r3, #12] 8005cd6: 611a str r2, [r3, #16] RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; 8005cd8: f107 0308 add.w r3, r7, #8 8005cdc: 2290 movs r2, #144 ; 0x90 8005cde: 2100 movs r1, #0 8005ce0: 4618 mov r0, r3 8005ce2: f010 fbbe bl 8016462 __HAL_RCC_PWR_CLK_ENABLE(); 8005ce6: 4a3f ldr r2, [pc, #252] ; (8005de4 ) 8005ce8: 4b3e ldr r3, [pc, #248] ; (8005de4 ) 8005cea: 6c1b ldr r3, [r3, #64] ; 0x40 8005cec: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 8005cf0: 6413 str r3, [r2, #64] ; 0x40 8005cf2: 4b3c ldr r3, [pc, #240] ; (8005de4 ) 8005cf4: 6c1b ldr r3, [r3, #64] ; 0x40 8005cf6: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 8005cfa: 607b str r3, [r7, #4] 8005cfc: 687b ldr r3, [r7, #4] __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3); 8005cfe: 4a3a ldr r2, [pc, #232] ; (8005de8 ) 8005d00: 4b39 ldr r3, [pc, #228] ; (8005de8 ) 8005d02: 681b ldr r3, [r3, #0] 8005d04: f423 4340 bic.w r3, r3, #49152 ; 0xc000 8005d08: f443 4380 orr.w r3, r3, #16384 ; 0x4000 8005d0c: 6013 str r3, [r2, #0] 8005d0e: 4b36 ldr r3, [pc, #216] ; (8005de8 ) 8005d10: 681b ldr r3, [r3, #0] 8005d12: f403 4340 and.w r3, r3, #49152 ; 0xc000 8005d16: 603b str r3, [r7, #0] 8005d18: 683b ldr r3, [r7, #0] RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; 8005d1a: 2302 movs r3, #2 8005d1c: f8c7 30ac str.w r3, [r7, #172] ; 0xac RCC_OscInitStruct.LSEState = RCC_LSE_BYPASS; 8005d20: 2305 movs r3, #5 8005d22: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 RCC_OscInitStruct.HSIState = RCC_HSI_ON; 8005d26: 2301 movs r3, #1 8005d28: f8c7 30b8 str.w r3, [r7, #184] ; 0xb8 RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; 8005d2c: 2310 movs r3, #16 8005d2e: f8c7 30bc str.w r3, [r7, #188] ; 0xbc RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; 8005d32: 2302 movs r3, #2 8005d34: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; 8005d38: 2300 movs r3, #0 8005d3a: f8c7 30c8 str.w r3, [r7, #200] ; 0xc8 RCC_OscInitStruct.PLL.PLLM = 16; 8005d3e: 2310 movs r3, #16 8005d40: f8c7 30cc str.w r3, [r7, #204] ; 0xcc RCC_OscInitStruct.PLL.PLLN = 432; 8005d44: f44f 73d8 mov.w r3, #432 ; 0x1b0 8005d48: f8c7 30d0 str.w r3, [r7, #208] ; 0xd0 RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV8; 8005d4c: 2308 movs r3, #8 8005d4e: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4 RCC_OscInitStruct.PLL.PLLQ = 9; 8005d52: 2309 movs r3, #9 8005d54: f8c7 30d8 str.w r3, [r7, #216] ; 0xd8 if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) 8005d58: f107 03ac add.w r3, r7, #172 ; 0xac 8005d5c: 4618 mov r0, r3 8005d5e: f00d fb3b bl 80133d8 8005d62: 4603 mov r3, r0 8005d64: 2b00 cmp r3, #0 8005d66: d001 beq.n 8005d6c { Error_Handler(); 8005d68: f000 f840 bl 8005dec } RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK 8005d6c: 230f movs r3, #15 8005d6e: f8c7 3098 str.w r3, [r7, #152] ; 0x98 |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; 8005d72: 2302 movs r3, #2 8005d74: f8c7 309c str.w r3, [r7, #156] ; 0x9c RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; 8005d78: 2300 movs r3, #0 8005d7a: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; 8005d7e: 2300 movs r3, #0 8005d80: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; 8005d84: 2300 movs r3, #0 8005d86: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8 if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) 8005d8a: f107 0398 add.w r3, r7, #152 ; 0x98 8005d8e: 2101 movs r1, #1 8005d90: 4618 mov r0, r3 8005d92: f00d fdcf bl 8013934 8005d96: 4603 mov r3, r0 8005d98: 2b00 cmp r3, #0 8005d9a: d001 beq.n 8005da0 { Error_Handler(); 8005d9c: f000 f826 bl 8005dec } PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC |RCC_PERIPHCLK_UART7; 8005da0: f241 0308 movw r3, #4104 ; 0x1008 8005da4: 60bb str r3, [r7, #8] PeriphClkInitStruct.PLLSAI.PLLSAIN = 192; 8005da6: 23c0 movs r3, #192 ; 0xc0 8005da8: 61fb str r3, [r7, #28] PeriphClkInitStruct.PLLSAI.PLLSAIR = 4; 8005daa: 2304 movs r3, #4 8005dac: 627b str r3, [r7, #36] ; 0x24 PeriphClkInitStruct.PLLSAI.PLLSAIQ = 2; 8005dae: 2302 movs r3, #2 8005db0: 623b str r3, [r7, #32] PeriphClkInitStruct.PLLSAI.PLLSAIP = RCC_PLLSAIP_DIV4; 8005db2: 2301 movs r3, #1 8005db4: 62bb str r3, [r7, #40] ; 0x28 PeriphClkInitStruct.PLLSAIDivQ = 1; 8005db6: 2301 movs r3, #1 8005db8: 633b str r3, [r7, #48] ; 0x30 PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_2; 8005dba: 2300 movs r3, #0 8005dbc: 637b str r3, [r7, #52] ; 0x34 PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE; 8005dbe: f44f 7380 mov.w r3, #256 ; 0x100 8005dc2: 63bb str r3, [r7, #56] ; 0x38 PeriphClkInitStruct.Uart7ClockSelection = RCC_UART7CLKSOURCE_PCLK1; 8005dc4: 2300 movs r3, #0 8005dc6: 667b str r3, [r7, #100] ; 0x64 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) 8005dc8: f107 0308 add.w r3, r7, #8 8005dcc: 4618 mov r0, r3 8005dce: f00d ff87 bl 8013ce0 8005dd2: 4603 mov r3, r0 8005dd4: 2b00 cmp r3, #0 8005dd6: d001 beq.n 8005ddc { Error_Handler(); 8005dd8: f000 f808 bl 8005dec PeriphClkInitStruct.Sdmmc1ClockSelection = RCC_SDMMC1CLKSOURCE_CLK48; if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) { Error_Handler(); }*/ } 8005ddc: bf00 nop 8005dde: 37e0 adds r7, #224 ; 0xe0 8005de0: 46bd mov sp, r7 8005de2: bd80 pop {r7, pc} 8005de4: 40023800 .word 0x40023800 8005de8: 40007000 .word 0x40007000 08005dec : /** * @brief This function is executed in case of error occurrence. * @retval None */ void Error_Handler(void) { 8005dec: b480 push {r7} 8005dee: af00 add r7, sp, #0 __ASM volatile ("cpsid i" : : : "memory"); 8005df0: b672 cpsid i /* USER CODE BEGIN Error_Handler_Debug */ /* User can add his own implementation to report the HAL error return state */ __disable_irq(); while (1) 8005df2: e7fe b.n 8005df2 08005df4 : void EXTI_Config(void) { 8005df4: b580 push {r7, lr} 8005df6: b086 sub sp, #24 8005df8: af00 add r7, sp, #0 GPIO_InitTypeDef EXTILineStruct; __HAL_RCC_SYSCFG_CLK_ENABLE(); 8005dfa: 4a12 ldr r2, [pc, #72] ; (8005e44 ) 8005dfc: 4b11 ldr r3, [pc, #68] ; (8005e44 ) 8005dfe: 6c5b ldr r3, [r3, #68] ; 0x44 8005e00: f443 4380 orr.w r3, r3, #16384 ; 0x4000 8005e04: 6453 str r3, [r2, #68] ; 0x44 8005e06: 4b0f ldr r3, [pc, #60] ; (8005e44 ) 8005e08: 6c5b ldr r3, [r3, #68] ; 0x44 8005e0a: f403 4380 and.w r3, r3, #16384 ; 0x4000 8005e0e: 603b str r3, [r7, #0] 8005e10: 683b ldr r3, [r7, #0] EXTILineStruct.Pin = GPIO_PIN_2; 8005e12: 2304 movs r3, #4 8005e14: 607b str r3, [r7, #4] EXTILineStruct.Mode = GPIO_MODE_IT_RISING; 8005e16: f44f 1388 mov.w r3, #1114112 ; 0x110000 8005e1a: 60bb str r3, [r7, #8] EXTILineStruct.Pull = GPIO_NOPULL; 8005e1c: 2300 movs r3, #0 8005e1e: 60fb str r3, [r7, #12] HAL_GPIO_Init(GPIOC, &EXTILineStruct); 8005e20: 1d3b adds r3, r7, #4 8005e22: 4619 mov r1, r3 8005e24: 4808 ldr r0, [pc, #32] ; (8005e48 ) 8005e26: f00c fd13 bl 8012850 HAL_NVIC_SetPriority(EXTI2_IRQn, 12, 0); 8005e2a: 2200 movs r2, #0 8005e2c: 210c movs r1, #12 8005e2e: 2008 movs r0, #8 8005e30: f00b fcc1 bl 80117b6 HAL_NVIC_EnableIRQ(EXTI2_IRQn); 8005e34: 2008 movs r0, #8 8005e36: f00b fcda bl 80117ee } 8005e3a: bf00 nop 8005e3c: 3718 adds r7, #24 8005e3e: 46bd mov sp, r7 8005e40: bd80 pop {r7, pc} 8005e42: bf00 nop 8005e44: 40023800 .word 0x40023800 8005e48: 40020800 .word 0x40020800 08005e4c : void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { 8005e4c: b580 push {r7, lr} 8005e4e: b082 sub sp, #8 8005e50: af00 add r7, sp, #0 8005e52: 4603 mov r3, r0 8005e54: 80fb strh r3, [r7, #6] if(GPIO_Pin == GPIO_PIN_2) 8005e56: 88fb ldrh r3, [r7, #6] 8005e58: 2b04 cmp r3, #4 8005e5a: d114 bne.n 8005e86 { __HAL_GPIO_EXTI_CLEAR_FLAG(GPIO_PIN_2); 8005e5c: 4b0c ldr r3, [pc, #48] ; (8005e90 ) 8005e5e: 2204 movs r2, #4 8005e60: 615a str r2, [r3, #20] if((RefreshScreen == false) && (screen == true)) 8005e62: 4b0c ldr r3, [pc, #48] ; (8005e94 ) 8005e64: 781b ldrb r3, [r3, #0] 8005e66: b2db uxtb r3, r3 8005e68: f083 0301 eor.w r3, r3, #1 8005e6c: b2db uxtb r3, r3 8005e6e: 2b00 cmp r3, #0 8005e70: d009 beq.n 8005e86 8005e72: 4b09 ldr r3, [pc, #36] ; (8005e98 ) 8005e74: 781b ldrb r3, [r3, #0] 8005e76: b2db uxtb r3, r3 8005e78: 2b00 cmp r3, #0 8005e7a: d004 beq.n 8005e86 { screen = false; 8005e7c: 4b06 ldr r3, [pc, #24] ; (8005e98 ) 8005e7e: 2200 movs r2, #0 8005e80: 701a strb r2, [r3, #0] Display(); 8005e82: f000 f8b9 bl 8005ff8 } //ReadChannel(Ch1); } } 8005e86: bf00 nop 8005e88: 3708 adds r7, #8 8005e8a: 46bd mov sp, r7 8005e8c: bd80 pop {r7, pc} 8005e8e: bf00 nop 8005e90: 40013c00 .word 0x40013c00 8005e94: 2006ba60 .word 0x2006ba60 8005e98: 20020030 .word 0x20020030 08005e9c : void RedrawScreen(void) { 8005e9c: b480 push {r7} 8005e9e: af00 add r7, sp, #0 __HAL_GPIO_EXTI_GENERATE_SWIT(GPIO_PIN_2); 8005ea0: 4a05 ldr r2, [pc, #20] ; (8005eb8 ) 8005ea2: 4b05 ldr r3, [pc, #20] ; (8005eb8 ) 8005ea4: 691b ldr r3, [r3, #16] 8005ea6: f043 0304 orr.w r3, r3, #4 8005eaa: 6113 str r3, [r2, #16] { screen = false; Display(); }*/ } 8005eac: bf00 nop 8005eae: 46bd mov sp, r7 8005eb0: f85d 7b04 ldr.w r7, [sp], #4 8005eb4: 4770 bx lr 8005eb6: bf00 nop 8005eb8: 40013c00 .word 0x40013c00 08005ebc : void Logo(void) { 8005ebc: b580 push {r7, lr} 8005ebe: b082 sub sp, #8 8005ec0: af00 add r7, sp, #0 uint32_t i; uint32_t color = LCD_COLOR_BLACK; //0xFF212829; 8005ec2: f04f 437f mov.w r3, #4278190080 ; 0xff000000 8005ec6: 603b str r3, [r7, #0] #ifdef DRAW_LOGO BSP_LCD_DisplayOn(); 8005ec8: f7fe fdc4 bl 8004a54 HAL_NVIC_DisableIRQ(EXTI2_IRQn); 8005ecc: 2008 movs r0, #8 8005ece: f00b fc9c bl 801180a //********************************************************* BSP_LCD_SetFont(&Font12); 8005ed2: 4843 ldr r0, [pc, #268] ; (8005fe0 ) 8005ed4: f7fe ff78 bl 8004dc8 for(i = 0; i < 3; i++) 8005ed8: 2300 movs r3, #0 8005eda: 607b str r3, [r7, #4] 8005edc: e032 b.n 8005f44 { BSP_LCD_Clear(color); 8005ede: 6838 ldr r0, [r7, #0] 8005ee0: f7fe ff90 bl 8004e04 DrawImage(&bmLOGO_NEW, 0, 54); 8005ee4: 2236 movs r2, #54 ; 0x36 8005ee6: 2100 movs r1, #0 8005ee8: 483e ldr r0, [pc, #248] ; (8005fe4 ) 8005eea: f7ff fd11 bl 8005910 RefreshScreen = true; 8005eee: 4b3e ldr r3, [pc, #248] ; (8005fe8 ) 8005ef0: 2201 movs r2, #1 8005ef2: 701a strb r2, [r3, #0] HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0); 8005ef4: 2100 movs r1, #0 8005ef6: 483d ldr r0, [pc, #244] ; (8005fec ) 8005ef8: f00d f864 bl 8012fc4 while(RefreshScreen); 8005efc: bf00 nop 8005efe: 4b3a ldr r3, [pc, #232] ; (8005fe8 ) 8005f00: 781b ldrb r3, [r3, #0] 8005f02: b2db uxtb r3, r3 8005f04: 2b00 cmp r3, #0 8005f06: d1fa bne.n 8005efe HAL_Delay(50); 8005f08: 2032 movs r0, #50 ; 0x32 8005f0a: f00b fb37 bl 801157c BSP_LCD_Clear(color); 8005f0e: 6838 ldr r0, [r7, #0] 8005f10: f7fe ff78 bl 8004e04 DrawImage(&bmLOGO_NEW, 0, 54); 8005f14: 2236 movs r2, #54 ; 0x36 8005f16: 2100 movs r1, #0 8005f18: 4832 ldr r0, [pc, #200] ; (8005fe4 ) 8005f1a: f7ff fcf9 bl 8005910 RefreshScreen = true; 8005f1e: 4b32 ldr r3, [pc, #200] ; (8005fe8 ) 8005f20: 2201 movs r2, #1 8005f22: 701a strb r2, [r3, #0] HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0); 8005f24: 2100 movs r1, #0 8005f26: 4831 ldr r0, [pc, #196] ; (8005fec ) 8005f28: f00d f84c bl 8012fc4 while(RefreshScreen); 8005f2c: bf00 nop 8005f2e: 4b2e ldr r3, [pc, #184] ; (8005fe8 ) 8005f30: 781b ldrb r3, [r3, #0] 8005f32: b2db uxtb r3, r3 8005f34: 2b00 cmp r3, #0 8005f36: d1fa bne.n 8005f2e HAL_Delay(50); 8005f38: 2032 movs r0, #50 ; 0x32 8005f3a: f00b fb1f bl 801157c for(i = 0; i < 3; i++) 8005f3e: 687b ldr r3, [r7, #4] 8005f40: 3301 adds r3, #1 8005f42: 607b str r3, [r7, #4] 8005f44: 687b ldr r3, [r7, #4] 8005f46: 2b02 cmp r3, #2 8005f48: d9c9 bls.n 8005ede } HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_RESET); // BACKLIGHT_ON 8005f4a: 2200 movs r2, #0 8005f4c: f44f 7180 mov.w r1, #256 ; 0x100 8005f50: 4827 ldr r0, [pc, #156] ; (8005ff0 ) 8005f52: f00c fe3f bl 8012bd4 //********************************************************* BSP_LCD_Clear(color); 8005f56: 6838 ldr r0, [r7, #0] 8005f58: f7fe ff54 bl 8004e04 DrawImage(&bmLOGO_NEW, 0, 54); 8005f5c: 2236 movs r2, #54 ; 0x36 8005f5e: 2100 movs r1, #0 8005f60: 4820 ldr r0, [pc, #128] ; (8005fe4 ) 8005f62: f7ff fcd5 bl 8005910 RefreshScreen = true; 8005f66: 4b20 ldr r3, [pc, #128] ; (8005fe8 ) 8005f68: 2201 movs r2, #1 8005f6a: 701a strb r2, [r3, #0] HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0); 8005f6c: 2100 movs r1, #0 8005f6e: 481f ldr r0, [pc, #124] ; (8005fec ) 8005f70: f00d f828 bl 8012fc4 while(RefreshScreen); 8005f74: bf00 nop 8005f76: 4b1c ldr r3, [pc, #112] ; (8005fe8 ) 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 fafb bl 801157c BSP_LCD_Clear(color); 8005f86: 6838 ldr r0, [r7, #0] 8005f88: f7fe ff3c bl 8004e04 DrawImage(&bmLOGO_NEW, 0, 54); 8005f8c: 2236 movs r2, #54 ; 0x36 8005f8e: 2100 movs r1, #0 8005f90: 4814 ldr r0, [pc, #80] ; (8005fe4 ) 8005f92: f7ff fcbd bl 8005910 RefreshScreen = true; 8005f96: 4b14 ldr r3, [pc, #80] ; (8005fe8 ) 8005f98: 2201 movs r2, #1 8005f9a: 701a strb r2, [r3, #0] HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0); 8005f9c: 2100 movs r1, #0 8005f9e: 4813 ldr r0, [pc, #76] ; (8005fec ) 8005fa0: f00d f810 bl 8012fc4 while(RefreshScreen); 8005fa4: bf00 nop 8005fa6: 4b10 ldr r3, [pc, #64] ; (8005fe8 ) 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 fae3 bl 801157c HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_RESET); // BACKLIGHT_ON 8005fb6: 2200 movs r2, #0 8005fb8: f44f 7180 mov.w r1, #256 ; 0x100 8005fbc: 480c ldr r0, [pc, #48] ; (8005ff0 ) 8005fbe: f00c fe09 bl 8012bd4 HAL_Delay(500); 8005fc2: f44f 70fa mov.w r0, #500 ; 0x1f4 8005fc6: f00b fad9 bl 801157c menu = LOGO; 8005fca: 4b0a ldr r3, [pc, #40] ; (8005ff4 ) 8005fcc: 221e movs r2, #30 8005fce: 701a strb r2, [r3, #0] HAL_NVIC_EnableIRQ(EXTI2_IRQn); 8005fd0: 2008 movs r0, #8 8005fd2: f00b fc0c bl 80117ee #endif } 8005fd6: bf00 nop 8005fd8: 3708 adds r7, #8 8005fda: 46bd mov sp, r7 8005fdc: bd80 pop {r7, pc} 8005fde: bf00 nop 8005fe0: 20020000 .word 0x20020000 8005fe4: 0802fc98 .word 0x0802fc98 8005fe8: 2006ba60 .word 0x2006ba60 8005fec: 2006c174 .word 0x2006c174 8005ff0: 40020000 .word 0x40020000 8005ff4: 200209d9 .word 0x200209d9 08005ff8 : void Display(void) { 8005ff8: b580 push {r7, lr} 8005ffa: f5ad 7d52 sub.w sp, sp, #840 ; 0x348 8005ffe: af00 add r7, sp, #0 char *p8; TimeDate_TypeDef FatTime; float32_t f, fs; uint32_t cl1, cl2; static uint32_t blink = 0; bool bl = false; 8006000: 2300 movs r3, #0 8006002: f887 333f strb.w r3, [r7, #831] ; 0x33f static uint32_t blk = 0; static uint8_t tt = 0; static uint32_t tme = 0; bool bll = false; 8006006: 2300 movs r3, #0 8006008: f887 333e strb.w r3, [r7, #830] ; 0x33e uint32_t old_DateTime; uint32_t lx, ly; uint32_t Year, Month, Day, Hour, Min, Sec; blk++; 800600c: 4bbd ldr r3, [pc, #756] ; (8006304 ) 800600e: 681b ldr r3, [r3, #0] 8006010: 3301 adds r3, #1 8006012: 4abc ldr r2, [pc, #752] ; (8006304 ) 8006014: 6013 str r3, [r2, #0] if(blk > 1) 8006016: 4bbb ldr r3, [pc, #748] ; (8006304 ) 8006018: 681b ldr r3, [r3, #0] 800601a: 2b01 cmp r3, #1 800601c: d905 bls.n 800602a { blk = 0; 800601e: 4bb9 ldr r3, [pc, #740] ; (8006304 ) 8006020: 2200 movs r2, #0 8006022: 601a str r2, [r3, #0] bll = true; 8006024: 2301 movs r3, #1 8006026: f887 333e strb.w r3, [r7, #830] ; 0x33e } blink++; 800602a: 4bb7 ldr r3, [pc, #732] ; (8006308 ) 800602c: 681b ldr r3, [r3, #0] 800602e: 3301 adds r3, #1 8006030: 4ab5 ldr r2, [pc, #724] ; (8006308 ) 8006032: 6013 str r3, [r2, #0] if(blink > 8) 8006034: 4bb4 ldr r3, [pc, #720] ; (8006308 ) 8006036: 681b ldr r3, [r3, #0] 8006038: 2b08 cmp r3, #8 800603a: d905 bls.n 8006048 { blink = 0; 800603c: 4bb2 ldr r3, [pc, #712] ; (8006308 ) 800603e: 2200 movs r2, #0 8006040: 601a str r2, [r3, #0] bl = true; 8006042: 2301 movs r3, #1 8006044: f887 333f strb.w r3, [r7, #831] ; 0x33f } Redrawing = true; 8006048: 4bb0 ldr r3, [pc, #704] ; (800630c ) 800604a: 2201 movs r2, #1 800604c: 701a strb r2, [r3, #0] BSP_LCD_Clear(LCD_COLOR_BLACK); 800604e: f04f 407f mov.w r0, #4278190080 ; 0xff000000 8006052: f7fe fed7 bl 8004e04 //*************************************************** ОТРИСОВКА СТРОКИ СТАТУСА (ВЕРХ ДИСПЛЕЯ С ЧАСАМИ И БАТАРЕЕЙ) **************************************************************// //==========================================================================================================================// //--------------------------------------------------------------------------------------------------------------------------// //==========================================================================================================================// switch(menu) 8006056: 4bae ldr r3, [pc, #696] ; (8006310 ) 8006058: 781b ldrb r3, [r3, #0] 800605a: b2db uxtb r3, r3 800605c: 2b4e cmp r3, #78 ; 0x4e 800605e: f207 8480 bhi.w 800d962 8006062: a201 add r2, pc, #4 ; (adr r2, 8006068 ) 8006064: f852 f023 ldr.w pc, [r2, r3, lsl #2] 8006068: 0800cf49 .word 0x0800cf49 800606c: 0800d325 .word 0x0800d325 8006070: 0800d435 .word 0x0800d435 8006074: 0800d465 .word 0x0800d465 8006078: 0800d4f1 .word 0x0800d4f1 800607c: 0800d521 .word 0x0800d521 8006080: 0800d551 .word 0x0800d551 8006084: 0800d581 .word 0x0800d581 8006088: 0800d5b1 .word 0x0800d5b1 800608c: 0800d5e1 .word 0x0800d5e1 8006090: 0800d611 .word 0x0800d611 8006094: 0800d641 .word 0x0800d641 8006098: 0800d671 .word 0x0800d671 800609c: 0800d6a1 .word 0x0800d6a1 80060a0: 0800d6d1 .word 0x0800d6d1 80060a4: 0800d701 .word 0x0800d701 80060a8: 0800d731 .word 0x0800d731 80060ac: 0800d761 .word 0x0800d761 80060b0: 0800d791 .word 0x0800d791 80060b4: 0800d7c1 .word 0x0800d7c1 80060b8: 0800d7f1 .word 0x0800d7f1 80060bc: 0800d821 .word 0x0800d821 80060c0: 0800d8c5 .word 0x0800d8c5 80060c4: 0800d8f5 .word 0x0800d8f5 80060c8: 0800d925 .word 0x0800d925 80060cc: 08006491 .word 0x08006491 80060d0: 0800d963 .word 0x0800d963 80060d4: 0800d963 .word 0x0800d963 80060d8: 0800d963 .word 0x0800d963 80060dc: 0800d963 .word 0x0800d963 80060e0: 080061a5 .word 0x080061a5 80060e4: 0800d963 .word 0x0800d963 80060e8: 0800d963 .word 0x0800d963 80060ec: 0800d963 .word 0x0800d963 80060f0: 0800d963 .word 0x0800d963 80060f4: 0800d963 .word 0x0800d963 80060f8: 0800d963 .word 0x0800d963 80060fc: 0800d963 .word 0x0800d963 8006100: 0800d963 .word 0x0800d963 8006104: 0800d963 .word 0x0800d963 8006108: 0800d963 .word 0x0800d963 800610c: 0800d963 .word 0x0800d963 8006110: 0800d963 .word 0x0800d963 8006114: 08006797 .word 0x08006797 8006118: 0800d963 .word 0x0800d963 800611c: 0800d963 .word 0x0800d963 8006120: 0800d963 .word 0x0800d963 8006124: 0800d963 .word 0x0800d963 8006128: 0800d963 .word 0x0800d963 800612c: 0800d963 .word 0x0800d963 8006130: 0800d963 .word 0x0800d963 8006134: 0800d963 .word 0x0800d963 8006138: 0800d963 .word 0x0800d963 800613c: 0800d963 .word 0x0800d963 8006140: 0800d963 .word 0x0800d963 8006144: 0800d963 .word 0x0800d963 8006148: 0800d963 .word 0x0800d963 800614c: 0800d963 .word 0x0800d963 8006150: 0800d963 .word 0x0800d963 8006154: 0800d963 .word 0x0800d963 8006158: 0800d963 .word 0x0800d963 800615c: 0800d963 .word 0x0800d963 8006160: 0800d963 .word 0x0800d963 8006164: 0800d963 .word 0x0800d963 8006168: 0800d963 .word 0x0800d963 800616c: 0800d963 .word 0x0800d963 8006170: 0800d963 .word 0x0800d963 8006174: 0800d963 .word 0x0800d963 8006178: 0800d963 .word 0x0800d963 800617c: 0800d963 .word 0x0800d963 8006180: 0800d963 .word 0x0800d963 8006184: 0800d963 .word 0x0800d963 8006188: 0800d963 .word 0x0800d963 800618c: 0800d963 .word 0x0800d963 8006190: 0800d963 .word 0x0800d963 8006194: 0800d963 .word 0x0800d963 8006198: 0800d963 .word 0x0800d963 800619c: 0800d963 .word 0x0800d963 80061a0: 0800d963 .word 0x0800d963 { case LOGO: //********************************************************* DrawImage(&bmLOGO_NEW, 0, 54); 80061a4: 2236 movs r2, #54 ; 0x36 80061a6: 2100 movs r1, #0 80061a8: 485a ldr r0, [pc, #360] ; (8006314 ) 80061aa: f7ff fbb1 bl 8005910 timesLOGO++; 80061ae: 4b5a ldr r3, [pc, #360] ; (8006318 ) 80061b0: 681b ldr r3, [r3, #0] 80061b2: 3301 adds r3, #1 80061b4: 4a58 ldr r2, [pc, #352] ; (8006318 ) 80061b6: 6013 str r3, [r2, #0] if(timesLOGO >= 2) 80061b8: 4b57 ldr r3, [pc, #348] ; (8006318 ) 80061ba: 681b ldr r3, [r3, #0] 80061bc: 2b01 cmp r3, #1 80061be: f247 83c9 bls.w 800d954 { LCD_SetColors(0xFFFFFFFF, 0); 80061c2: 2100 movs r1, #0 80061c4: f04f 30ff mov.w r0, #4294967295 80061c8: f7fe fdc2 bl 8004d50 BSP_LCD_SetFont(&Font12); 80061cc: 4853 ldr r0, [pc, #332] ; (800631c ) 80061ce: f7fe fdfb bl 8004dc8 #ifdef A142 if(pardata.LANG == RUS) 80061d2: 4b53 ldr r3, [pc, #332] ; (8006320 ) 80061d4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80061d8: b29b uxth r3, r3 80061da: 2b00 cmp r3, #0 80061dc: d10c bne.n 80061f8 { BSP_LCD_DisplayStringAt(165, 195, "А142", CENTER_MODE); 80061de: 2301 movs r3, #1 80061e0: 4a50 ldr r2, [pc, #320] ; (8006324 ) 80061e2: 21c3 movs r1, #195 ; 0xc3 80061e4: 20a5 movs r0, #165 ; 0xa5 80061e6: f7fe fe79 bl 8004edc BSP_LCD_DisplayStringAt(165, 206, "Усилитель заряда и напряжения", CENTER_MODE); 80061ea: 2301 movs r3, #1 80061ec: 4a4e ldr r2, [pc, #312] ; (8006328 ) 80061ee: 21ce movs r1, #206 ; 0xce 80061f0: 20a5 movs r0, #165 ; 0xa5 80061f2: f7fe fe73 bl 8004edc 80061f6: e005 b.n 8006204 } else BSP_LCD_DisplayStringAt(165, 206, "Amplifier A142", CENTER_MODE); 80061f8: 2301 movs r3, #1 80061fa: 4a4c ldr r2, [pc, #304] ; (800632c ) 80061fc: 21ce movs r1, #206 ; 0xce 80061fe: 20a5 movs r0, #165 ; 0xa5 8006200: f7fe fe6c bl 8004edc else BSP_LCD_DisplayStringAt(165, 206, "Amplifier A148", CENTER_MODE); #endif #endif BSP_LCD_DisplayStringAt(160, 224, (char *) _VERSION, CENTER_MODE); 8006204: 2301 movs r3, #1 8006206: 4a4a ldr r2, [pc, #296] ; (8006330 ) 8006208: 21e0 movs r1, #224 ; 0xe0 800620a: 20a0 movs r0, #160 ; 0xa0 800620c: f7fe fe66 bl 8004edc BSP_LCD_DisplayStringAt(160, 4, (char *) _SERIAL_DRAW, CENTER_MODE); 8006210: 2301 movs r3, #1 8006212: 4a48 ldr r2, [pc, #288] ; (8006334 ) 8006214: 2104 movs r1, #4 8006216: 20a0 movs r0, #160 ; 0xa0 8006218: f7fe fe60 bl 8004edc memset(str, 0, sizeof(str)); 800621c: f507 7307 add.w r3, r7, #540 ; 0x21c 8006220: 223c movs r2, #60 ; 0x3c 8006222: 2100 movs r1, #0 8006224: 4618 mov r0, r3 8006226: f010 f91c bl 8016462 l = 0; 800622a: 2300 movs r3, #0 800622c: f8c7 3324 str.w r3, [r7, #804] ; 0x324 if(ip_assigned) 8006230: 4b41 ldr r3, [pc, #260] ; (8006338 ) 8006232: 781b ldrb r3, [r3, #0] 8006234: b2db uxtb r3, r3 8006236: 2b00 cmp r3, #0 8006238: f000 80f9 beq.w 800642e { for(j = 0; j < 4; j++) 800623c: 2300 movs r3, #0 800623e: f8c7 332c str.w r3, [r7, #812] ; 0x32c 8006242: e0d9 b.n 80063f8 { k = ip[j]; 8006244: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c 8006248: 4a3c ldr r2, [pc, #240] ; (800633c ) 800624a: 5cd3 ldrb r3, [r2, r3] 800624c: f8c7 3328 str.w r3, [r7, #808] ; 0x328 if(k < 10) 8006250: f8d7 3328 ldr.w r3, [r7, #808] ; 0x328 8006254: 2b09 cmp r3, #9 8006256: d81b bhi.n 8006290 { str[l++] = (uint8_t) (k + 48); 8006258: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324 800625c: 1c5a adds r2, r3, #1 800625e: f8c7 2324 str.w r2, [r7, #804] ; 0x324 8006262: f8d7 2328 ldr.w r2, [r7, #808] ; 0x328 8006266: b2d2 uxtb r2, r2 8006268: 3230 adds r2, #48 ; 0x30 800626a: b2d1 uxtb r1, r2 800626c: f507 7207 add.w r2, r7, #540 ; 0x21c 8006270: 54d1 strb r1, [r2, r3] if(j < 3) { 8006272: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c 8006276: 2b02 cmp r3, #2 8006278: f200 80b9 bhi.w 80063ee str[l++] = '.'; 800627c: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324 8006280: 1c5a adds r2, r3, #1 8006282: f8c7 2324 str.w r2, [r7, #804] ; 0x324 8006286: f507 7207 add.w r2, r7, #540 ; 0x21c 800628a: 212e movs r1, #46 ; 0x2e 800628c: 54d1 strb r1, [r2, r3] 800628e: e0ae b.n 80063ee } } else if(k < 100) 8006290: f8d7 3328 ldr.w r3, [r7, #808] ; 0x328 8006294: 2b63 cmp r3, #99 ; 0x63 8006296: d855 bhi.n 8006344 { str[l++] = (uint8_t) ((k / 10) + 48); 8006298: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324 800629c: 1c5a adds r2, r3, #1 800629e: f8c7 2324 str.w r2, [r7, #804] ; 0x324 80062a2: f8d7 2328 ldr.w r2, [r7, #808] ; 0x328 80062a6: 4926 ldr r1, [pc, #152] ; (8006340 ) 80062a8: fba1 1202 umull r1, r2, r1, r2 80062ac: 08d2 lsrs r2, r2, #3 80062ae: b2d2 uxtb r2, r2 80062b0: 3230 adds r2, #48 ; 0x30 80062b2: b2d1 uxtb r1, r2 80062b4: f507 7207 add.w r2, r7, #540 ; 0x21c 80062b8: 54d1 strb r1, [r2, r3] str[l++] = (uint8_t) ((k % 10) + 48); 80062ba: f8d7 1324 ldr.w r1, [r7, #804] ; 0x324 80062be: 1c4b adds r3, r1, #1 80062c0: f8c7 3324 str.w r3, [r7, #804] ; 0x324 80062c4: f8d7 0328 ldr.w r0, [r7, #808] ; 0x328 80062c8: 4b1d ldr r3, [pc, #116] ; (8006340 ) 80062ca: fba3 2300 umull r2, r3, r3, r0 80062ce: 08da lsrs r2, r3, #3 80062d0: 4613 mov r3, r2 80062d2: 009b lsls r3, r3, #2 80062d4: 4413 add r3, r2 80062d6: 005b lsls r3, r3, #1 80062d8: 1ac2 subs r2, r0, r3 80062da: b2d3 uxtb r3, r2 80062dc: 3330 adds r3, #48 ; 0x30 80062de: b2da uxtb r2, r3 80062e0: f507 7307 add.w r3, r7, #540 ; 0x21c 80062e4: 545a strb r2, [r3, r1] if(j < 3) { 80062e6: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c 80062ea: 2b02 cmp r3, #2 80062ec: d87f bhi.n 80063ee str[l++] = '.'; 80062ee: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324 80062f2: 1c5a adds r2, r3, #1 80062f4: f8c7 2324 str.w r2, [r7, #804] ; 0x324 80062f8: f507 7207 add.w r2, r7, #540 ; 0x21c 80062fc: 212e movs r1, #46 ; 0x2e 80062fe: 54d1 strb r1, [r2, r3] 8006300: e075 b.n 80063ee 8006302: bf00 nop 8006304: 2006ba78 .word 0x2006ba78 8006308: 2006ba7c .word 0x2006ba7c 800630c: 2006ba74 .word 0x2006ba74 8006310: 200209d9 .word 0x200209d9 8006314: 0802fc98 .word 0x0802fc98 8006318: 2006ba70 .word 0x2006ba70 800631c: 20020000 .word 0x20020000 8006320: 2006bca8 .word 0x2006bca8 8006324: 0801807c .word 0x0801807c 8006328: 08018084 .word 0x08018084 800632c: 080180a4 .word 0x080180a4 8006330: 0801ad88 .word 0x0801ad88 8006334: 20020020 .word 0x20020020 8006338: 2006ba94 .word 0x2006ba94 800633c: 2006ba8c .word 0x2006ba8c 8006340: cccccccd .word 0xcccccccd } } else { str[l++] = (uint8_t) ((k / 100) + 48); 8006344: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324 8006348: 1c5a adds r2, r3, #1 800634a: f8c7 2324 str.w r2, [r7, #804] ; 0x324 800634e: f8d7 2328 ldr.w r2, [r7, #808] ; 0x328 8006352: 49ba ldr r1, [pc, #744] ; (800663c ) 8006354: fba1 1202 umull r1, r2, r1, r2 8006358: 0952 lsrs r2, r2, #5 800635a: b2d2 uxtb r2, r2 800635c: 3230 adds r2, #48 ; 0x30 800635e: b2d1 uxtb r1, r2 8006360: f507 7207 add.w r2, r7, #540 ; 0x21c 8006364: 54d1 strb r1, [r2, r3] str[l++] = (uint8_t) ((k % 100 / 10) + 48); 8006366: f8d7 2324 ldr.w r2, [r7, #804] ; 0x324 800636a: 1c53 adds r3, r2, #1 800636c: f8c7 3324 str.w r3, [r7, #804] ; 0x324 8006370: f8d7 1328 ldr.w r1, [r7, #808] ; 0x328 8006374: 4bb1 ldr r3, [pc, #708] ; (800663c ) 8006376: fba3 0301 umull r0, r3, r3, r1 800637a: 095b lsrs r3, r3, #5 800637c: 2064 movs r0, #100 ; 0x64 800637e: fb00 f303 mul.w r3, r0, r3 8006382: 1acb subs r3, r1, r3 8006384: 49ae ldr r1, [pc, #696] ; (8006640 ) 8006386: fba1 1303 umull r1, r3, r1, r3 800638a: 08db lsrs r3, r3, #3 800638c: b2db uxtb r3, r3 800638e: 3330 adds r3, #48 ; 0x30 8006390: b2d9 uxtb r1, r3 8006392: f507 7307 add.w r3, r7, #540 ; 0x21c 8006396: 5499 strb r1, [r3, r2] str[l++] = (uint8_t) ((k % 100 % 10) + 48); 8006398: f8d7 0324 ldr.w r0, [r7, #804] ; 0x324 800639c: 1c43 adds r3, r0, #1 800639e: f8c7 3324 str.w r3, [r7, #804] ; 0x324 80063a2: f8d7 3328 ldr.w r3, [r7, #808] ; 0x328 80063a6: 4aa5 ldr r2, [pc, #660] ; (800663c ) 80063a8: fba2 1203 umull r1, r2, r2, r3 80063ac: 0952 lsrs r2, r2, #5 80063ae: 2164 movs r1, #100 ; 0x64 80063b0: fb01 f202 mul.w r2, r1, r2 80063b4: 1a9a subs r2, r3, r2 80063b6: 4ba2 ldr r3, [pc, #648] ; (8006640 ) 80063b8: fba3 1302 umull r1, r3, r3, r2 80063bc: 08d9 lsrs r1, r3, #3 80063be: 460b mov r3, r1 80063c0: 009b lsls r3, r3, #2 80063c2: 440b add r3, r1 80063c4: 005b lsls r3, r3, #1 80063c6: 1ad1 subs r1, r2, r3 80063c8: b2cb uxtb r3, r1 80063ca: 3330 adds r3, #48 ; 0x30 80063cc: b2da uxtb r2, r3 80063ce: f507 7307 add.w r3, r7, #540 ; 0x21c 80063d2: 541a strb r2, [r3, r0] if(j < 3) { 80063d4: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c 80063d8: 2b02 cmp r3, #2 80063da: d808 bhi.n 80063ee str[l++] = '.'; 80063dc: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324 80063e0: 1c5a adds r2, r3, #1 80063e2: f8c7 2324 str.w r2, [r7, #804] ; 0x324 80063e6: f507 7207 add.w r2, r7, #540 ; 0x21c 80063ea: 212e movs r1, #46 ; 0x2e 80063ec: 54d1 strb r1, [r2, r3] for(j = 0; j < 4; j++) 80063ee: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c 80063f2: 3301 adds r3, #1 80063f4: f8c7 332c str.w r3, [r7, #812] ; 0x32c 80063f8: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c 80063fc: 2b03 cmp r3, #3 80063fe: f67f af21 bls.w 8006244 } } } strcat(str, ":7000"); 8006402: f507 7307 add.w r3, r7, #540 ; 0x21c 8006406: 4618 mov r0, r3 8006408: f7f9 ff16 bl 8000238 800640c: 4603 mov r3, r0 800640e: 461a mov r2, r3 8006410: f507 7307 add.w r3, r7, #540 ; 0x21c 8006414: 4413 add r3, r2 8006416: 4a8b ldr r2, [pc, #556] ; (8006644 ) 8006418: 6810 ldr r0, [r2, #0] 800641a: 6018 str r0, [r3, #0] 800641c: 8892 ldrh r2, [r2, #4] 800641e: 809a strh r2, [r3, #4] BSP_LCD_DisplayStringAt(160, 24, str, CENTER_MODE); 8006420: f507 7207 add.w r2, r7, #540 ; 0x21c 8006424: 2301 movs r3, #1 8006426: 2118 movs r1, #24 8006428: 20a0 movs r0, #160 ; 0xa0 800642a: f7fe fd57 bl 8004edc /*if(CORRECTION == false) { BSP_LCD_DisplayStringAt(0, 4, ".", LEFT_MODE); }*/ DrawSpinner(300, 20); 800642e: 2114 movs r1, #20 8006430: f44f 7096 mov.w r0, #300 ; 0x12c 8006434: f007 fdee bl 800e014 if(clbr) 8006438: 4b83 ldr r3, [pc, #524] ; (8006648 ) 800643a: 781b ldrb r3, [r3, #0] 800643c: b2db uxtb r3, r3 800643e: 2b00 cmp r3, #0 8006440: d00b beq.n 800645a { LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 8006442: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006446: f04f 30ff mov.w r0, #4294967295 800644a: f7fe fc81 bl 8004d50 BSP_LCD_DisplayStringAt(160, 18, "ЗАПУСК КАЛИБРОВКИ", CENTER_MODE); 800644e: 2301 movs r3, #1 8006450: 4a7e ldr r2, [pc, #504] ; (800664c ) 8006452: 2112 movs r1, #18 8006454: 20a0 movs r0, #160 ; 0xa0 8006456: f7fe fd41 bl 8004edc } if(ASK_COMPLETE) 800645a: 4b7d ldr r3, [pc, #500] ; (8006650 ) 800645c: 781b ldrb r3, [r3, #0] 800645e: b2db uxtb r3, r3 8006460: 2b00 cmp r3, #0 8006462: f007 8277 beq.w 800d954 { timesLOGO = 0; 8006466: 4b7b ldr r3, [pc, #492] ; (8006654 ) 8006468: 2200 movs r2, #0 800646a: 601a str r2, [r3, #0] if(clbr) 800646c: 4b76 ldr r3, [pc, #472] ; (8006648 ) 800646e: 781b ldrb r3, [r3, #0] 8006470: b2db uxtb r3, r3 8006472: 2b00 cmp r3, #0 8006474: d007 beq.n 8006486 { menu = CALIBR_00; 8006476: 4b78 ldr r3, [pc, #480] ; (8006658 ) 8006478: 2201 movs r2, #1 800647a: 701a strb r2, [r3, #0] menupos = Ch1; 800647c: 4b77 ldr r3, [pc, #476] ; (800665c ) 800647e: 2200 movs r2, #0 8006480: 701a strb r2, [r3, #0] } else menu = MAIN; } } break; 8006482: f007 ba67 b.w 800d954 menu = MAIN; 8006486: 4b74 ldr r3, [pc, #464] ; (8006658 ) 8006488: 2200 movs r2, #0 800648a: 701a strb r2, [r3, #0] break; 800648c: f007 ba62 b.w 800d954 case OPTIONS: BSP_LCD_SetFont(&Font12); 8006490: 4873 ldr r0, [pc, #460] ; (8006660 ) 8006492: f7fe fc99 bl 8004dc8 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 8006496: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800649a: f04f 30ff mov.w r0, #4294967295 800649e: f7fe fc57 bl 8004d50 BSP_LCD_DisplayStringAt(55, 120, (char *) pOPTIONS[pardata.LANG][2], LEFT_MODE); //Язык 80064a2: 4b70 ldr r3, [pc, #448] ; (8006664 ) 80064a4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80064a8: b29b uxth r3, r3 80064aa: 4a6f ldr r2, [pc, #444] ; (8006668 ) 80064ac: 011b lsls r3, r3, #4 80064ae: 4413 add r3, r2 80064b0: 3308 adds r3, #8 80064b2: 681a ldr r2, [r3, #0] 80064b4: 2303 movs r3, #3 80064b6: 2178 movs r1, #120 ; 0x78 80064b8: 2037 movs r0, #55 ; 0x37 80064ba: f7fe fd0f bl 8004edc if(menupos == Back) 80064be: 4b67 ldr r3, [pc, #412] ; (800665c ) 80064c0: 781b ldrb r3, [r3, #0] 80064c2: b2db uxtb r3, r3 80064c4: 2bff cmp r3, #255 ; 0xff 80064c6: d148 bne.n 800655a { LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 80064c8: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80064cc: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 80064d0: f7fe fc3e bl 8004d50 BSP_LCD_DisplayStringAt(55, 80, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //Назад 80064d4: 4b63 ldr r3, [pc, #396] ; (8006664 ) 80064d6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80064da: b29b uxth r3, r3 80064dc: 4a62 ldr r2, [pc, #392] ; (8006668 ) 80064de: 011b lsls r3, r3, #4 80064e0: 4413 add r3, r2 80064e2: 681a ldr r2, [r3, #0] 80064e4: 2303 movs r3, #3 80064e6: 2150 movs r1, #80 ; 0x50 80064e8: 2037 movs r0, #55 ; 0x37 80064ea: f7fe fcf7 bl 8004edc LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 80064ee: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80064f2: f04f 30ff mov.w r0, #4294967295 80064f6: f7fe fc2b bl 8004d50 BSP_LCD_DisplayStringAt(55, 100, (char *) pOPTIONS[pardata.LANG][1], LEFT_MODE); //Настройка каналов 80064fa: 4b5a ldr r3, [pc, #360] ; (8006664 ) 80064fc: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8006500: b29b uxth r3, r3 8006502: 4a59 ldr r2, [pc, #356] ; (8006668 ) 8006504: 011b lsls r3, r3, #4 8006506: 4413 add r3, r2 8006508: 3304 adds r3, #4 800650a: 681a ldr r2, [r3, #0] 800650c: 2303 movs r3, #3 800650e: 2164 movs r1, #100 ; 0x64 8006510: 2037 movs r0, #55 ; 0x37 8006512: f7fe fce3 bl 8004edc BSP_LCD_DisplayStringAt(55, 140, (char *) pOPTIONS[pardata.LANG][3], LEFT_MODE); //Off 8006516: 4b53 ldr r3, [pc, #332] ; (8006664 ) 8006518: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800651c: b29b uxth r3, r3 800651e: 4a52 ldr r2, [pc, #328] ; (8006668 ) 8006520: 011b lsls r3, r3, #4 8006522: 4413 add r3, r2 8006524: 330c adds r3, #12 8006526: 681a ldr r2, [r3, #0] 8006528: 2303 movs r3, #3 800652a: 218c movs r1, #140 ; 0x8c 800652c: 2037 movs r0, #55 ; 0x37 800652e: f7fe fcd5 bl 8004edc LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8006532: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006536: 484d ldr r0, [pc, #308] ; (800666c ) 8006538: f7fe fc0a bl 8004d50 BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //Язык 800653c: 4b49 ldr r3, [pc, #292] ; (8006664 ) 800653e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8006542: b29b uxth r3, r3 8006544: 461a mov r2, r3 8006546: 4b4a ldr r3, [pc, #296] ; (8006670 ) 8006548: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800654c: 2301 movs r3, #1 800654e: 2178 movs r1, #120 ; 0x78 8006550: 20f0 movs r0, #240 ; 0xf0 8006552: f7fe fcc3 bl 8004edc BSP_LCD_DisplayStringAt(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; 8006556: f007 b9ff b.w 800d958 if(menupos == Inputs) 800655a: 4b40 ldr r3, [pc, #256] ; (800665c ) 800655c: 781b ldrb r3, [r3, #0] 800655e: b2db uxtb r3, r3 8006560: 2b00 cmp r3, #0 8006562: d148 bne.n 80065f6 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8006564: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006568: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800656c: f7fe fbf0 bl 8004d50 BSP_LCD_DisplayStringAt(55, 100, (char *) pOPTIONS[pardata.LANG][1], LEFT_MODE); //Настройка каналов 8006570: 4b3c ldr r3, [pc, #240] ; (8006664 ) 8006572: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8006576: b29b uxth r3, r3 8006578: 4a3b ldr r2, [pc, #236] ; (8006668 ) 800657a: 011b lsls r3, r3, #4 800657c: 4413 add r3, r2 800657e: 3304 adds r3, #4 8006580: 681a ldr r2, [r3, #0] 8006582: 2303 movs r3, #3 8006584: 2164 movs r1, #100 ; 0x64 8006586: 2037 movs r0, #55 ; 0x37 8006588: f7fe fca8 bl 8004edc LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800658c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006590: f04f 30ff mov.w r0, #4294967295 8006594: f7fe fbdc bl 8004d50 BSP_LCD_DisplayStringAt(55, 80, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //Назад 8006598: 4b32 ldr r3, [pc, #200] ; (8006664 ) 800659a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800659e: b29b uxth r3, r3 80065a0: 4a31 ldr r2, [pc, #196] ; (8006668 ) 80065a2: 011b lsls r3, r3, #4 80065a4: 4413 add r3, r2 80065a6: 681a ldr r2, [r3, #0] 80065a8: 2303 movs r3, #3 80065aa: 2150 movs r1, #80 ; 0x50 80065ac: 2037 movs r0, #55 ; 0x37 80065ae: f7fe fc95 bl 8004edc BSP_LCD_DisplayStringAt(55, 140, (char *) pOPTIONS[pardata.LANG][3], LEFT_MODE); //Off 80065b2: 4b2c ldr r3, [pc, #176] ; (8006664 ) 80065b4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80065b8: b29b uxth r3, r3 80065ba: 4a2b ldr r2, [pc, #172] ; (8006668 ) 80065bc: 011b lsls r3, r3, #4 80065be: 4413 add r3, r2 80065c0: 330c adds r3, #12 80065c2: 681a ldr r2, [r3, #0] 80065c4: 2303 movs r3, #3 80065c6: 218c movs r1, #140 ; 0x8c 80065c8: 2037 movs r0, #55 ; 0x37 80065ca: f7fe fc87 bl 8004edc LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 80065ce: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80065d2: 4826 ldr r0, [pc, #152] ; (800666c ) 80065d4: f7fe fbbc bl 8004d50 BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //Язык 80065d8: 4b22 ldr r3, [pc, #136] ; (8006664 ) 80065da: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80065de: b29b uxth r3, r3 80065e0: 461a mov r2, r3 80065e2: 4b23 ldr r3, [pc, #140] ; (8006670 ) 80065e4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80065e8: 2301 movs r3, #1 80065ea: 2178 movs r1, #120 ; 0x78 80065ec: 20f0 movs r0, #240 ; 0xf0 80065ee: f7fe fc75 bl 8004edc break; 80065f2: f007 b9b1 b.w 800d958 if(menupos == Lang) 80065f6: 4b19 ldr r3, [pc, #100] ; (800665c ) 80065f8: 781b ldrb r3, [r3, #0] 80065fa: b2db uxtb r3, r3 80065fc: 2b01 cmp r3, #1 80065fe: d17b bne.n 80066f8 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8006600: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006604: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8006608: f7fe fba2 bl 8004d50 if(focused) 800660c: 4b19 ldr r3, [pc, #100] ; (8006674 ) 800660e: 781b ldrb r3, [r3, #0] 8006610: b2db uxtb r3, r3 8006612: 2b00 cmp r3, #0 8006614: d032 beq.n 800667c if(blk) 8006616: 4b18 ldr r3, [pc, #96] ; (8006678 ) 8006618: 681b ldr r3, [r3, #0] 800661a: 2b00 cmp r3, #0 800661c: d03b beq.n 8006696 BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //Язык 800661e: 4b11 ldr r3, [pc, #68] ; (8006664 ) 8006620: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8006624: b29b uxth r3, r3 8006626: 461a mov r2, r3 8006628: 4b11 ldr r3, [pc, #68] ; (8006670 ) 800662a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800662e: 2301 movs r3, #1 8006630: 2178 movs r1, #120 ; 0x78 8006632: 20f0 movs r0, #240 ; 0xf0 8006634: f7fe fc52 bl 8004edc 8006638: e02d b.n 8006696 800663a: bf00 nop 800663c: 51eb851f .word 0x51eb851f 8006640: cccccccd .word 0xcccccccd 8006644: 080180b4 .word 0x080180b4 8006648: 2006c21c .word 0x2006c21c 800664c: 080180bc .word 0x080180bc 8006650: 2006ba90 .word 0x2006ba90 8006654: 2006ba70 .word 0x2006ba70 8006658: 200209d9 .word 0x200209d9 800665c: 20020010 .word 0x20020010 8006660: 20020000 .word 0x20020000 8006664: 2006bca8 .word 0x2006bca8 8006668: 20020034 .word 0x20020034 800666c: ffd8aa57 .word 0xffd8aa57 8006670: 20020964 .word 0x20020964 8006674: 200209e4 .word 0x200209e4 8006678: 2006ba78 .word 0x2006ba78 BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //Язык 800667c: 4b99 ldr r3, [pc, #612] ; (80068e4 ) 800667e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8006682: b29b uxth r3, r3 8006684: 461a mov r2, r3 8006686: 4b98 ldr r3, [pc, #608] ; (80068e8 ) 8006688: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800668c: 2301 movs r3, #1 800668e: 2178 movs r1, #120 ; 0x78 8006690: 20f0 movs r0, #240 ; 0xf0 8006692: f7fe fc23 bl 8004edc LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 8006696: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800669a: f04f 30ff mov.w r0, #4294967295 800669e: f7fe fb57 bl 8004d50 BSP_LCD_DisplayStringAt(55, 80, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //Назад 80066a2: 4b90 ldr r3, [pc, #576] ; (80068e4 ) 80066a4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80066a8: b29b uxth r3, r3 80066aa: 4a90 ldr r2, [pc, #576] ; (80068ec ) 80066ac: 011b lsls r3, r3, #4 80066ae: 4413 add r3, r2 80066b0: 681a ldr r2, [r3, #0] 80066b2: 2303 movs r3, #3 80066b4: 2150 movs r1, #80 ; 0x50 80066b6: 2037 movs r0, #55 ; 0x37 80066b8: f7fe fc10 bl 8004edc BSP_LCD_DisplayStringAt(55, 100, (char *) pOPTIONS[pardata.LANG][1], LEFT_MODE); //Настройка каналов 80066bc: 4b89 ldr r3, [pc, #548] ; (80068e4 ) 80066be: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80066c2: b29b uxth r3, r3 80066c4: 4a89 ldr r2, [pc, #548] ; (80068ec ) 80066c6: 011b lsls r3, r3, #4 80066c8: 4413 add r3, r2 80066ca: 3304 adds r3, #4 80066cc: 681a ldr r2, [r3, #0] 80066ce: 2303 movs r3, #3 80066d0: 2164 movs r1, #100 ; 0x64 80066d2: 2037 movs r0, #55 ; 0x37 80066d4: f7fe fc02 bl 8004edc BSP_LCD_DisplayStringAt(55, 140, (char *) pOPTIONS[pardata.LANG][3], LEFT_MODE); //Off 80066d8: 4b82 ldr r3, [pc, #520] ; (80068e4 ) 80066da: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80066de: b29b uxth r3, r3 80066e0: 4a82 ldr r2, [pc, #520] ; (80068ec ) 80066e2: 011b lsls r3, r3, #4 80066e4: 4413 add r3, r2 80066e6: 330c adds r3, #12 80066e8: 681a ldr r2, [r3, #0] 80066ea: 2303 movs r3, #3 80066ec: 218c movs r1, #140 ; 0x8c 80066ee: 2037 movs r0, #55 ; 0x37 80066f0: f7fe fbf4 bl 8004edc break; 80066f4: f007 b930 b.w 800d958 if(menupos == PowerOff) 80066f8: 4b7d ldr r3, [pc, #500] ; (80068f0 ) 80066fa: 781b ldrb r3, [r3, #0] 80066fc: b2db uxtb r3, r3 80066fe: 2b02 cmp r3, #2 8006700: f047 812a bne.w 800d958 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8006704: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006708: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800670c: f7fe fb20 bl 8004d50 BSP_LCD_DisplayStringAt(55, 140, (char *) pOPTIONS[pardata.LANG][3], LEFT_MODE); //Off 8006710: 4b74 ldr r3, [pc, #464] ; (80068e4 ) 8006712: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8006716: b29b uxth r3, r3 8006718: 4a74 ldr r2, [pc, #464] ; (80068ec ) 800671a: 011b lsls r3, r3, #4 800671c: 4413 add r3, r2 800671e: 330c adds r3, #12 8006720: 681a ldr r2, [r3, #0] 8006722: 2303 movs r3, #3 8006724: 218c movs r1, #140 ; 0x8c 8006726: 2037 movs r0, #55 ; 0x37 8006728: f7fe fbd8 bl 8004edc LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800672c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006730: f04f 30ff mov.w r0, #4294967295 8006734: f7fe fb0c bl 8004d50 BSP_LCD_DisplayStringAt(55, 80, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //Назад 8006738: 4b6a ldr r3, [pc, #424] ; (80068e4 ) 800673a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800673e: b29b uxth r3, r3 8006740: 4a6a ldr r2, [pc, #424] ; (80068ec ) 8006742: 011b lsls r3, r3, #4 8006744: 4413 add r3, r2 8006746: 681a ldr r2, [r3, #0] 8006748: 2303 movs r3, #3 800674a: 2150 movs r1, #80 ; 0x50 800674c: 2037 movs r0, #55 ; 0x37 800674e: f7fe fbc5 bl 8004edc BSP_LCD_DisplayStringAt(55, 100, (char *) pOPTIONS[pardata.LANG][1], LEFT_MODE); //Настройка каналов 8006752: 4b64 ldr r3, [pc, #400] ; (80068e4 ) 8006754: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8006758: b29b uxth r3, r3 800675a: 4a64 ldr r2, [pc, #400] ; (80068ec ) 800675c: 011b lsls r3, r3, #4 800675e: 4413 add r3, r2 8006760: 3304 adds r3, #4 8006762: 681a ldr r2, [r3, #0] 8006764: 2303 movs r3, #3 8006766: 2164 movs r1, #100 ; 0x64 8006768: 2037 movs r0, #55 ; 0x37 800676a: f7fe fbb7 bl 8004edc LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800676e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006772: 4860 ldr r0, [pc, #384] ; (80068f4 ) 8006774: f7fe faec bl 8004d50 BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //Язык 8006778: 4b5a ldr r3, [pc, #360] ; (80068e4 ) 800677a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800677e: b29b uxth r3, r3 8006780: 461a mov r2, r3 8006782: 4b59 ldr r3, [pc, #356] ; (80068e8 ) 8006784: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8006788: 2301 movs r3, #1 800678a: 2178 movs r1, #120 ; 0x78 800678c: 20f0 movs r0, #240 ; 0xf0 800678e: f7fe fba5 bl 8004edc break; 8006792: f007 b8e1 b.w 800d958 case SETTINGS: //todo ////////////////////////////////////////////////////////////////////////////// if(pardata.amplif[Ch1].SENS <= 0.0f) { 8006796: 4b53 ldr r3, [pc, #332] ; (80068e4 ) 8006798: edd3 7a06 vldr s15, [r3, #24] 800679c: eef5 7ac0 vcmpe.f32 s15, #0.0 80067a0: eef1 fa10 vmrs APSR_nzcv, fpscr 80067a4: d807 bhi.n 80067b6 pardata.amplif[Ch1].SENS = 1.0f; 80067a6: 4b4f ldr r3, [pc, #316] ; (80068e4 ) 80067a8: f04f 527e mov.w r2, #1065353216 ; 0x3f800000 80067ac: 619a str r2, [r3, #24] s = 10000; 80067ae: f242 7310 movw r3, #10000 ; 0x2710 80067b2: f8c7 3344 str.w r3, [r7, #836] ; 0x344 } if(pardata.amplif[Ch1].SENS < 10.0f) { 80067b6: 4b4b ldr r3, [pc, #300] ; (80068e4 ) 80067b8: edd3 7a06 vldr s15, [r3, #24] 80067bc: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 80067c0: eef4 7ac7 vcmpe.f32 s15, s14 80067c4: eef1 fa10 vmrs APSR_nzcv, fpscr 80067c8: d514 bpl.n 80067f4 s = (uint32_t) ((pardata.amplif[Ch1].SENS * 10000.0f) + 0.5f); 80067ca: 4b46 ldr r3, [pc, #280] ; (80068e4 ) 80067cc: edd3 7a06 vldr s15, [r3, #24] 80067d0: ed9f 7a49 vldr s14, [pc, #292] ; 80068f8 80067d4: ee67 7a87 vmul.f32 s15, s15, s14 80067d8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 80067dc: ee77 7a87 vadd.f32 s15, s15, s14 80067e0: eefc 7ae7 vcvt.u32.f32 s15, s15 80067e4: ee17 3a90 vmov r3, s15 80067e8: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt1 = 4; 80067ec: 2304 movs r3, #4 80067ee: f887 3318 strb.w r3, [r7, #792] ; 0x318 80067f2: e09c b.n 800692e } else if(pardata.amplif[Ch1].SENS < 100.0f) { 80067f4: 4b3b ldr r3, [pc, #236] ; (80068e4 ) 80067f6: edd3 7a06 vldr s15, [r3, #24] 80067fa: ed9f 7a40 vldr s14, [pc, #256] ; 80068fc 80067fe: eef4 7ac7 vcmpe.f32 s15, s14 8006802: eef1 fa10 vmrs APSR_nzcv, fpscr 8006806: d514 bpl.n 8006832 s = (uint32_t) ((pardata.amplif[Ch1].SENS * 1000.0f) + 0.5f); 8006808: 4b36 ldr r3, [pc, #216] ; (80068e4 ) 800680a: edd3 7a06 vldr s15, [r3, #24] 800680e: ed9f 7a3c vldr s14, [pc, #240] ; 8006900 8006812: ee67 7a87 vmul.f32 s15, s15, s14 8006816: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 800681a: ee77 7a87 vadd.f32 s15, s15, s14 800681e: eefc 7ae7 vcvt.u32.f32 s15, s15 8006822: ee17 3a90 vmov r3, s15 8006826: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt1 = 3; 800682a: 2303 movs r3, #3 800682c: f887 3318 strb.w r3, [r7, #792] ; 0x318 8006830: e07d b.n 800692e } else if(pardata.amplif[Ch1].SENS < 1000.0f) { 8006832: 4b2c ldr r3, [pc, #176] ; (80068e4 ) 8006834: edd3 7a06 vldr s15, [r3, #24] 8006838: ed9f 7a31 vldr s14, [pc, #196] ; 8006900 800683c: eef4 7ac7 vcmpe.f32 s15, s14 8006840: eef1 fa10 vmrs APSR_nzcv, fpscr 8006844: d514 bpl.n 8006870 s = (uint32_t) ((pardata.amplif[Ch1].SENS * 100.0f) + 0.5f); 8006846: 4b27 ldr r3, [pc, #156] ; (80068e4 ) 8006848: edd3 7a06 vldr s15, [r3, #24] 800684c: ed9f 7a2b vldr s14, [pc, #172] ; 80068fc 8006850: ee67 7a87 vmul.f32 s15, s15, s14 8006854: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006858: ee77 7a87 vadd.f32 s15, s15, s14 800685c: eefc 7ae7 vcvt.u32.f32 s15, s15 8006860: ee17 3a90 vmov r3, s15 8006864: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt1 = 2; 8006868: 2302 movs r3, #2 800686a: f887 3318 strb.w r3, [r7, #792] ; 0x318 800686e: e05e b.n 800692e } else if(pardata.amplif[Ch1].SENS < 10000.0f) { 8006870: 4b1c ldr r3, [pc, #112] ; (80068e4 ) 8006872: edd3 7a06 vldr s15, [r3, #24] 8006876: ed9f 7a20 vldr s14, [pc, #128] ; 80068f8 800687a: eef4 7ac7 vcmpe.f32 s15, s14 800687e: eef1 fa10 vmrs APSR_nzcv, fpscr 8006882: d514 bpl.n 80068ae s = (uint32_t) ((pardata.amplif[Ch1].SENS * 10.0f) + 0.5f); 8006884: 4b17 ldr r3, [pc, #92] ; (80068e4 ) 8006886: edd3 7a06 vldr s15, [r3, #24] 800688a: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 800688e: ee67 7a87 vmul.f32 s15, s15, s14 8006892: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006896: ee77 7a87 vadd.f32 s15, s15, s14 800689a: eefc 7ae7 vcvt.u32.f32 s15, s15 800689e: ee17 3a90 vmov r3, s15 80068a2: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt1 = 1; 80068a6: 2301 movs r3, #1 80068a8: f887 3318 strb.w r3, [r7, #792] ; 0x318 80068ac: e03f b.n 800692e } else if(pardata.amplif[Ch1].SENS < 100000.0f) { 80068ae: 4b0d ldr r3, [pc, #52] ; (80068e4 ) 80068b0: edd3 7a06 vldr s15, [r3, #24] 80068b4: ed9f 7a13 vldr s14, [pc, #76] ; 8006904 80068b8: eef4 7ac7 vcmpe.f32 s15, s14 80068bc: eef1 fa10 vmrs APSR_nzcv, fpscr 80068c0: d522 bpl.n 8006908 s = (uint32_t) ((pardata.amplif[Ch1].SENS) + 0.5f); 80068c2: 4b08 ldr r3, [pc, #32] ; (80068e4 ) 80068c4: edd3 7a06 vldr s15, [r3, #24] 80068c8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 80068cc: ee77 7a87 vadd.f32 s15, s15, s14 80068d0: eefc 7ae7 vcvt.u32.f32 s15, s15 80068d4: ee17 3a90 vmov r3, s15 80068d8: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt1 = 0; 80068dc: 2300 movs r3, #0 80068de: f887 3318 strb.w r3, [r7, #792] ; 0x318 80068e2: e024 b.n 800692e 80068e4: 2006bca8 .word 0x2006bca8 80068e8: 20020964 .word 0x20020964 80068ec: 20020034 .word 0x20020034 80068f0: 20020010 .word 0x20020010 80068f4: ffd8aa57 .word 0xffd8aa57 80068f8: 461c4000 .word 0x461c4000 80068fc: 42c80000 .word 0x42c80000 8006900: 447a0000 .word 0x447a0000 8006904: 47c35000 .word 0x47c35000 } else if(pardata.amplif[Ch1].SENS >= 100000.0f) { 8006908: 4bd8 ldr r3, [pc, #864] ; (8006c6c ) 800690a: edd3 7a06 vldr s15, [r3, #24] 800690e: ed9f 7ad8 vldr s14, [pc, #864] ; 8006c70 8006912: eef4 7ac7 vcmpe.f32 s15, s14 8006916: eef1 fa10 vmrs APSR_nzcv, fpscr 800691a: db08 blt.n 800692e pardata.amplif[Ch1].SENS = 99999.0f; 800691c: 4bd3 ldr r3, [pc, #844] ; (8006c6c ) 800691e: 4ad5 ldr r2, [pc, #852] ; (8006c74 ) 8006920: 619a str r2, [r3, #24] s = 99999; 8006922: 4bd5 ldr r3, [pc, #852] ; (8006c78 ) 8006924: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt1 = 0; 8006928: 2300 movs r3, #0 800692a: f887 3318 strb.w r3, [r7, #792] ; 0x318 } idt1 = (s / 10000); 800692e: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 8006932: 4ad2 ldr r2, [pc, #840] ; (8006c7c ) 8006934: fba2 2303 umull r2, r3, r2, r3 8006938: 0b5b lsrs r3, r3, #13 800693a: b2db uxtb r3, r3 800693c: f887 331f strb.w r3, [r7, #799] ; 0x31f iet1 = (s % 10000 / 1000); 8006940: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344 8006944: 4bcd ldr r3, [pc, #820] ; (8006c7c ) 8006946: fba3 1302 umull r1, r3, r3, r2 800694a: 0b5b lsrs r3, r3, #13 800694c: f242 7110 movw r1, #10000 ; 0x2710 8006950: fb01 f303 mul.w r3, r1, r3 8006954: 1ad3 subs r3, r2, r3 8006956: 4aca ldr r2, [pc, #808] ; (8006c80 ) 8006958: fba2 2303 umull r2, r3, r2, r3 800695c: 099b lsrs r3, r3, #6 800695e: b2db uxtb r3, r3 8006960: f887 331e strb.w r3, [r7, #798] ; 0x31e ies1 = (s % 10000 % 1000 / 100); 8006964: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344 8006968: 4bc4 ldr r3, [pc, #784] ; (8006c7c ) 800696a: fba3 1302 umull r1, r3, r3, r2 800696e: 0b5b lsrs r3, r3, #13 8006970: f242 7110 movw r1, #10000 ; 0x2710 8006974: fb01 f303 mul.w r3, r1, r3 8006978: 1ad3 subs r3, r2, r3 800697a: 4ac1 ldr r2, [pc, #772] ; (8006c80 ) 800697c: fba2 1203 umull r1, r2, r2, r3 8006980: 0992 lsrs r2, r2, #6 8006982: f44f 717a mov.w r1, #1000 ; 0x3e8 8006986: fb01 f202 mul.w r2, r1, r2 800698a: 1a9a subs r2, r3, r2 800698c: 4bbd ldr r3, [pc, #756] ; (8006c84 ) 800698e: fba3 2302 umull r2, r3, r3, r2 8006992: 095b lsrs r3, r3, #5 8006994: b2db uxtb r3, r3 8006996: f887 331d strb.w r3, [r7, #797] ; 0x31d ied1 = (s % 10000 % 1000 % 100 / 10); 800699a: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 800699e: 4ab7 ldr r2, [pc, #732] ; (8006c7c ) 80069a0: fba2 1203 umull r1, r2, r2, r3 80069a4: 0b52 lsrs r2, r2, #13 80069a6: f242 7110 movw r1, #10000 ; 0x2710 80069aa: fb01 f202 mul.w r2, r1, r2 80069ae: 1a9a subs r2, r3, r2 80069b0: 4bb3 ldr r3, [pc, #716] ; (8006c80 ) 80069b2: fba3 1302 umull r1, r3, r3, r2 80069b6: 099b lsrs r3, r3, #6 80069b8: f44f 717a mov.w r1, #1000 ; 0x3e8 80069bc: fb01 f303 mul.w r3, r1, r3 80069c0: 1ad3 subs r3, r2, r3 80069c2: 4ab0 ldr r2, [pc, #704] ; (8006c84 ) 80069c4: fba2 1203 umull r1, r2, r2, r3 80069c8: 0952 lsrs r2, r2, #5 80069ca: 2164 movs r1, #100 ; 0x64 80069cc: fb01 f202 mul.w r2, r1, r2 80069d0: 1a9a subs r2, r3, r2 80069d2: 4bad ldr r3, [pc, #692] ; (8006c88 ) 80069d4: fba3 2302 umull r2, r3, r3, r2 80069d8: 08db lsrs r3, r3, #3 80069da: b2db uxtb r3, r3 80069dc: f887 331c strb.w r3, [r7, #796] ; 0x31c iee1 = (s % 10000 % 1000 % 100 % 10); 80069e0: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 80069e4: 4aa5 ldr r2, [pc, #660] ; (8006c7c ) 80069e6: fba2 1203 umull r1, r2, r2, r3 80069ea: 0b52 lsrs r2, r2, #13 80069ec: f242 7110 movw r1, #10000 ; 0x2710 80069f0: fb01 f202 mul.w r2, r1, r2 80069f4: 1a9a subs r2, r3, r2 80069f6: 4ba2 ldr r3, [pc, #648] ; (8006c80 ) 80069f8: fba3 1302 umull r1, r3, r3, r2 80069fc: 099b lsrs r3, r3, #6 80069fe: f44f 717a mov.w r1, #1000 ; 0x3e8 8006a02: fb01 f303 mul.w r3, r1, r3 8006a06: 1ad3 subs r3, r2, r3 8006a08: 4a9e ldr r2, [pc, #632] ; (8006c84 ) 8006a0a: fba2 1203 umull r1, r2, r2, r3 8006a0e: 0952 lsrs r2, r2, #5 8006a10: 2164 movs r1, #100 ; 0x64 8006a12: fb01 f202 mul.w r2, r1, r2 8006a16: 1a9a subs r2, r3, r2 8006a18: 4b9b ldr r3, [pc, #620] ; (8006c88 ) 8006a1a: fba3 1302 umull r1, r3, r3, r2 8006a1e: 08d9 lsrs r1, r3, #3 8006a20: 460b mov r3, r1 8006a22: 009b lsls r3, r3, #2 8006a24: 440b add r3, r1 8006a26: 005b lsls r3, r3, #1 8006a28: 1ad1 subs r1, r2, r3 8006a2a: b2cb uxtb r3, r1 8006a2c: f887 331b strb.w r3, [r7, #795] ; 0x31b p8 = str1; 8006a30: f507 738e add.w r3, r7, #284 ; 0x11c 8006a34: f8c7 3340 str.w r3, [r7, #832] ; 0x340 if(pardata.amplif[Ch1].SENS < 10.0f) { 8006a38: 4b8c ldr r3, [pc, #560] ; (8006c6c ) 8006a3a: edd3 7a06 vldr s15, [r3, #24] 8006a3e: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8006a42: eef4 7ac7 vcmpe.f32 s15, s14 8006a46: eef1 fa10 vmrs APSR_nzcv, fpscr 8006a4a: d50b bpl.n 8006a64 p8 = FloatToASCII(pardata.amplif[Ch1].SENS, -4); 8006a4c: 4b87 ldr r3, [pc, #540] ; (8006c6c ) 8006a4e: edd3 7a06 vldr s15, [r3, #24] 8006a52: f06f 0003 mvn.w r0, #3 8006a56: eeb0 0a67 vmov.f32 s0, s15 8006a5a: f008 fce5 bl 800f428 8006a5e: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8006a62: e055 b.n 8006b10 } else if(pardata.amplif[Ch1].SENS < 100.0f) { 8006a64: 4b81 ldr r3, [pc, #516] ; (8006c6c ) 8006a66: edd3 7a06 vldr s15, [r3, #24] 8006a6a: ed9f 7a88 vldr s14, [pc, #544] ; 8006c8c 8006a6e: eef4 7ac7 vcmpe.f32 s15, s14 8006a72: eef1 fa10 vmrs APSR_nzcv, fpscr 8006a76: d50b bpl.n 8006a90 p8 = FloatToASCII(pardata.amplif[Ch1].SENS, -3); 8006a78: 4b7c ldr r3, [pc, #496] ; (8006c6c ) 8006a7a: edd3 7a06 vldr s15, [r3, #24] 8006a7e: f06f 0002 mvn.w r0, #2 8006a82: eeb0 0a67 vmov.f32 s0, s15 8006a86: f008 fccf bl 800f428 8006a8a: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8006a8e: e03f b.n 8006b10 } else if(pardata.amplif[Ch1].SENS < 1000.0f) { 8006a90: 4b76 ldr r3, [pc, #472] ; (8006c6c ) 8006a92: edd3 7a06 vldr s15, [r3, #24] 8006a96: ed9f 7a7e vldr s14, [pc, #504] ; 8006c90 8006a9a: eef4 7ac7 vcmpe.f32 s15, s14 8006a9e: eef1 fa10 vmrs APSR_nzcv, fpscr 8006aa2: d50b bpl.n 8006abc p8 = FloatToASCII(pardata.amplif[Ch1].SENS, -2); 8006aa4: 4b71 ldr r3, [pc, #452] ; (8006c6c ) 8006aa6: edd3 7a06 vldr s15, [r3, #24] 8006aaa: f06f 0001 mvn.w r0, #1 8006aae: eeb0 0a67 vmov.f32 s0, s15 8006ab2: f008 fcb9 bl 800f428 8006ab6: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8006aba: e029 b.n 8006b10 } else if(pardata.amplif[Ch1].SENS < 10000.0f) { 8006abc: 4b6b ldr r3, [pc, #428] ; (8006c6c ) 8006abe: edd3 7a06 vldr s15, [r3, #24] 8006ac2: ed9f 7a74 vldr s14, [pc, #464] ; 8006c94 8006ac6: eef4 7ac7 vcmpe.f32 s15, s14 8006aca: eef1 fa10 vmrs APSR_nzcv, fpscr 8006ace: d50b bpl.n 8006ae8 p8 = FloatToASCII(pardata.amplif[Ch1].SENS, -1); 8006ad0: 4b66 ldr r3, [pc, #408] ; (8006c6c ) 8006ad2: edd3 7a06 vldr s15, [r3, #24] 8006ad6: f04f 30ff mov.w r0, #4294967295 8006ada: eeb0 0a67 vmov.f32 s0, s15 8006ade: f008 fca3 bl 800f428 8006ae2: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8006ae6: e013 b.n 8006b10 } else if(pardata.amplif[Ch1].SENS < 100000.0f) { 8006ae8: 4b60 ldr r3, [pc, #384] ; (8006c6c ) 8006aea: edd3 7a06 vldr s15, [r3, #24] 8006aee: ed9f 7a60 vldr s14, [pc, #384] ; 8006c70 8006af2: eef4 7ac7 vcmpe.f32 s15, s14 8006af6: eef1 fa10 vmrs APSR_nzcv, fpscr 8006afa: d509 bpl.n 8006b10 p8 = FloatToASCII(pardata.amplif[Ch1].SENS, 0); 8006afc: 4b5b ldr r3, [pc, #364] ; (8006c6c ) 8006afe: edd3 7a06 vldr s15, [r3, #24] 8006b02: 2000 movs r0, #0 8006b04: eeb0 0a67 vmov.f32 s0, s15 8006b08: f008 fc8e bl 800f428 8006b0c: f8c7 0340 str.w r0, [r7, #832] ; 0x340 } strcpy((void *) str1, (void *) p8); 8006b10: f507 738e add.w r3, r7, #284 ; 0x11c 8006b14: f8d7 1340 ldr.w r1, [r7, #832] ; 0x340 8006b18: 4618 mov r0, r3 8006b1a: f00f fcaa bl 8016472 ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// if(pardata.amplif[Ch2].SENS <= 0.0f) { 8006b1e: 4b53 ldr r3, [pc, #332] ; (8006c6c ) 8006b20: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006b24: eef5 7ac0 vcmpe.f32 s15, #0.0 8006b28: eef1 fa10 vmrs APSR_nzcv, fpscr 8006b2c: d807 bhi.n 8006b3e pardata.amplif[Ch2].SENS = 1.0f; 8006b2e: 4b4f ldr r3, [pc, #316] ; (8006c6c ) 8006b30: f04f 527e mov.w r2, #1065353216 ; 0x3f800000 8006b34: 639a str r2, [r3, #56] ; 0x38 s = 10000; 8006b36: f242 7310 movw r3, #10000 ; 0x2710 8006b3a: f8c7 3344 str.w r3, [r7, #836] ; 0x344 } if(pardata.amplif[Ch2].SENS < 10.0f) { 8006b3e: 4b4b ldr r3, [pc, #300] ; (8006c6c ) 8006b40: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006b44: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8006b48: eef4 7ac7 vcmpe.f32 s15, s14 8006b4c: eef1 fa10 vmrs APSR_nzcv, fpscr 8006b50: d514 bpl.n 8006b7c s = (uint32_t) ((pardata.amplif[Ch2].SENS * 10000.0f) + 0.5f); 8006b52: 4b46 ldr r3, [pc, #280] ; (8006c6c ) 8006b54: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006b58: ed9f 7a4e vldr s14, [pc, #312] ; 8006c94 8006b5c: ee67 7a87 vmul.f32 s15, s15, s14 8006b60: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006b64: ee77 7a87 vadd.f32 s15, s15, s14 8006b68: eefc 7ae7 vcvt.u32.f32 s15, s15 8006b6c: ee17 3a90 vmov r3, s15 8006b70: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt2 = 4; 8006b74: 2304 movs r3, #4 8006b76: f887 3310 strb.w r3, [r7, #784] ; 0x310 8006b7a: e0a0 b.n 8006cbe } else if(pardata.amplif[Ch2].SENS < 100.0f) { 8006b7c: 4b3b ldr r3, [pc, #236] ; (8006c6c ) 8006b7e: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006b82: ed9f 7a42 vldr s14, [pc, #264] ; 8006c8c 8006b86: eef4 7ac7 vcmpe.f32 s15, s14 8006b8a: eef1 fa10 vmrs APSR_nzcv, fpscr 8006b8e: d514 bpl.n 8006bba s = (uint32_t) ((pardata.amplif[Ch2].SENS * 1000.0f) + 0.5f); 8006b90: 4b36 ldr r3, [pc, #216] ; (8006c6c ) 8006b92: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006b96: ed9f 7a3e vldr s14, [pc, #248] ; 8006c90 8006b9a: ee67 7a87 vmul.f32 s15, s15, s14 8006b9e: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006ba2: ee77 7a87 vadd.f32 s15, s15, s14 8006ba6: eefc 7ae7 vcvt.u32.f32 s15, s15 8006baa: ee17 3a90 vmov r3, s15 8006bae: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt2 = 3; 8006bb2: 2303 movs r3, #3 8006bb4: f887 3310 strb.w r3, [r7, #784] ; 0x310 8006bb8: e081 b.n 8006cbe } else if(pardata.amplif[Ch2].SENS < 1000.0f) { 8006bba: 4b2c ldr r3, [pc, #176] ; (8006c6c ) 8006bbc: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006bc0: ed9f 7a33 vldr s14, [pc, #204] ; 8006c90 8006bc4: eef4 7ac7 vcmpe.f32 s15, s14 8006bc8: eef1 fa10 vmrs APSR_nzcv, fpscr 8006bcc: d514 bpl.n 8006bf8 s = (uint32_t) ((pardata.amplif[Ch2].SENS * 100.0f) + 0.5f); 8006bce: 4b27 ldr r3, [pc, #156] ; (8006c6c ) 8006bd0: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006bd4: ed9f 7a2d vldr s14, [pc, #180] ; 8006c8c 8006bd8: ee67 7a87 vmul.f32 s15, s15, s14 8006bdc: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006be0: ee77 7a87 vadd.f32 s15, s15, s14 8006be4: eefc 7ae7 vcvt.u32.f32 s15, s15 8006be8: ee17 3a90 vmov r3, s15 8006bec: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt2 = 2; 8006bf0: 2302 movs r3, #2 8006bf2: f887 3310 strb.w r3, [r7, #784] ; 0x310 8006bf6: e062 b.n 8006cbe } else if(pardata.amplif[Ch2].SENS < 10000.0f) { 8006bf8: 4b1c ldr r3, [pc, #112] ; (8006c6c ) 8006bfa: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006bfe: ed9f 7a25 vldr s14, [pc, #148] ; 8006c94 8006c02: eef4 7ac7 vcmpe.f32 s15, s14 8006c06: eef1 fa10 vmrs APSR_nzcv, fpscr 8006c0a: d514 bpl.n 8006c36 s = (uint32_t) ((pardata.amplif[Ch2].SENS * 10.0f) + 0.5f); 8006c0c: 4b17 ldr r3, [pc, #92] ; (8006c6c ) 8006c0e: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006c12: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8006c16: ee67 7a87 vmul.f32 s15, s15, s14 8006c1a: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006c1e: ee77 7a87 vadd.f32 s15, s15, s14 8006c22: eefc 7ae7 vcvt.u32.f32 s15, s15 8006c26: ee17 3a90 vmov r3, s15 8006c2a: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt2 = 1; 8006c2e: 2301 movs r3, #1 8006c30: f887 3310 strb.w r3, [r7, #784] ; 0x310 8006c34: e043 b.n 8006cbe } else if(pardata.amplif[Ch2].SENS < 100000.0f) { 8006c36: 4b0d ldr r3, [pc, #52] ; (8006c6c ) 8006c38: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006c3c: ed9f 7a0c vldr s14, [pc, #48] ; 8006c70 8006c40: eef4 7ac7 vcmpe.f32 s15, s14 8006c44: eef1 fa10 vmrs APSR_nzcv, fpscr 8006c48: d526 bpl.n 8006c98 s = (uint32_t) ((pardata.amplif[Ch2].SENS) + 0.5f); 8006c4a: 4b08 ldr r3, [pc, #32] ; (8006c6c ) 8006c4c: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006c50: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006c54: ee77 7a87 vadd.f32 s15, s15, s14 8006c58: eefc 7ae7 vcvt.u32.f32 s15, s15 8006c5c: ee17 3a90 vmov r3, s15 8006c60: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt2 = 0; 8006c64: 2300 movs r3, #0 8006c66: f887 3310 strb.w r3, [r7, #784] ; 0x310 8006c6a: e028 b.n 8006cbe 8006c6c: 2006bca8 .word 0x2006bca8 8006c70: 47c35000 .word 0x47c35000 8006c74: 47c34f80 .word 0x47c34f80 8006c78: 0001869f .word 0x0001869f 8006c7c: d1b71759 .word 0xd1b71759 8006c80: 10624dd3 .word 0x10624dd3 8006c84: 51eb851f .word 0x51eb851f 8006c88: cccccccd .word 0xcccccccd 8006c8c: 42c80000 .word 0x42c80000 8006c90: 447a0000 .word 0x447a0000 8006c94: 461c4000 .word 0x461c4000 } else if(pardata.amplif[Ch2].SENS >= 100000.0f) { 8006c98: 4bd8 ldr r3, [pc, #864] ; (8006ffc ) 8006c9a: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006c9e: ed9f 7ad8 vldr s14, [pc, #864] ; 8007000 8006ca2: eef4 7ac7 vcmpe.f32 s15, s14 8006ca6: eef1 fa10 vmrs APSR_nzcv, fpscr 8006caa: db08 blt.n 8006cbe pardata.amplif[Ch2].SENS = 99999.0f; 8006cac: 4bd3 ldr r3, [pc, #844] ; (8006ffc ) 8006cae: 4ad5 ldr r2, [pc, #852] ; (8007004 ) 8006cb0: 639a str r2, [r3, #56] ; 0x38 s = 99999; 8006cb2: 4bd5 ldr r3, [pc, #852] ; (8007008 ) 8006cb4: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt2 = 0; 8006cb8: 2300 movs r3, #0 8006cba: f887 3310 strb.w r3, [r7, #784] ; 0x310 } idt2 = (s / 10000); 8006cbe: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 8006cc2: 4ad2 ldr r2, [pc, #840] ; (800700c ) 8006cc4: fba2 2303 umull r2, r3, r2, r3 8006cc8: 0b5b lsrs r3, r3, #13 8006cca: b2db uxtb r3, r3 8006ccc: f887 3317 strb.w r3, [r7, #791] ; 0x317 iet2 = (s % 10000 / 1000); 8006cd0: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344 8006cd4: 4bcd ldr r3, [pc, #820] ; (800700c ) 8006cd6: fba3 1302 umull r1, r3, r3, r2 8006cda: 0b5b lsrs r3, r3, #13 8006cdc: f242 7110 movw r1, #10000 ; 0x2710 8006ce0: fb01 f303 mul.w r3, r1, r3 8006ce4: 1ad3 subs r3, r2, r3 8006ce6: 4aca ldr r2, [pc, #808] ; (8007010 ) 8006ce8: fba2 2303 umull r2, r3, r2, r3 8006cec: 099b lsrs r3, r3, #6 8006cee: b2db uxtb r3, r3 8006cf0: f887 3316 strb.w r3, [r7, #790] ; 0x316 ies2 = (s % 10000 % 1000 / 100); 8006cf4: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344 8006cf8: 4bc4 ldr r3, [pc, #784] ; (800700c ) 8006cfa: fba3 1302 umull r1, r3, r3, r2 8006cfe: 0b5b lsrs r3, r3, #13 8006d00: f242 7110 movw r1, #10000 ; 0x2710 8006d04: fb01 f303 mul.w r3, r1, r3 8006d08: 1ad3 subs r3, r2, r3 8006d0a: 4ac1 ldr r2, [pc, #772] ; (8007010 ) 8006d0c: fba2 1203 umull r1, r2, r2, r3 8006d10: 0992 lsrs r2, r2, #6 8006d12: f44f 717a mov.w r1, #1000 ; 0x3e8 8006d16: fb01 f202 mul.w r2, r1, r2 8006d1a: 1a9a subs r2, r3, r2 8006d1c: 4bbd ldr r3, [pc, #756] ; (8007014 ) 8006d1e: fba3 2302 umull r2, r3, r3, r2 8006d22: 095b lsrs r3, r3, #5 8006d24: b2db uxtb r3, r3 8006d26: f887 3315 strb.w r3, [r7, #789] ; 0x315 ied2 = (s % 10000 % 1000 % 100 / 10); 8006d2a: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 8006d2e: 4ab7 ldr r2, [pc, #732] ; (800700c ) 8006d30: fba2 1203 umull r1, r2, r2, r3 8006d34: 0b52 lsrs r2, r2, #13 8006d36: f242 7110 movw r1, #10000 ; 0x2710 8006d3a: fb01 f202 mul.w r2, r1, r2 8006d3e: 1a9a subs r2, r3, r2 8006d40: 4bb3 ldr r3, [pc, #716] ; (8007010 ) 8006d42: fba3 1302 umull r1, r3, r3, r2 8006d46: 099b lsrs r3, r3, #6 8006d48: f44f 717a mov.w r1, #1000 ; 0x3e8 8006d4c: fb01 f303 mul.w r3, r1, r3 8006d50: 1ad3 subs r3, r2, r3 8006d52: 4ab0 ldr r2, [pc, #704] ; (8007014 ) 8006d54: fba2 1203 umull r1, r2, r2, r3 8006d58: 0952 lsrs r2, r2, #5 8006d5a: 2164 movs r1, #100 ; 0x64 8006d5c: fb01 f202 mul.w r2, r1, r2 8006d60: 1a9a subs r2, r3, r2 8006d62: 4bad ldr r3, [pc, #692] ; (8007018 ) 8006d64: fba3 2302 umull r2, r3, r3, r2 8006d68: 08db lsrs r3, r3, #3 8006d6a: b2db uxtb r3, r3 8006d6c: f887 3314 strb.w r3, [r7, #788] ; 0x314 iee2 = (s % 10000 % 1000 % 100 % 10); 8006d70: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 8006d74: 4aa5 ldr r2, [pc, #660] ; (800700c ) 8006d76: fba2 1203 umull r1, r2, r2, r3 8006d7a: 0b52 lsrs r2, r2, #13 8006d7c: f242 7110 movw r1, #10000 ; 0x2710 8006d80: fb01 f202 mul.w r2, r1, r2 8006d84: 1a9a subs r2, r3, r2 8006d86: 4ba2 ldr r3, [pc, #648] ; (8007010 ) 8006d88: fba3 1302 umull r1, r3, r3, r2 8006d8c: 099b lsrs r3, r3, #6 8006d8e: f44f 717a mov.w r1, #1000 ; 0x3e8 8006d92: fb01 f303 mul.w r3, r1, r3 8006d96: 1ad3 subs r3, r2, r3 8006d98: 4a9e ldr r2, [pc, #632] ; (8007014 ) 8006d9a: fba2 1203 umull r1, r2, r2, r3 8006d9e: 0952 lsrs r2, r2, #5 8006da0: 2164 movs r1, #100 ; 0x64 8006da2: fb01 f202 mul.w r2, r1, r2 8006da6: 1a9a subs r2, r3, r2 8006da8: 4b9b ldr r3, [pc, #620] ; (8007018 ) 8006daa: fba3 1302 umull r1, r3, r3, r2 8006dae: 08d9 lsrs r1, r3, #3 8006db0: 460b mov r3, r1 8006db2: 009b lsls r3, r3, #2 8006db4: 440b add r3, r1 8006db6: 005b lsls r3, r3, #1 8006db8: 1ad1 subs r1, r2, r3 8006dba: b2cb uxtb r3, r1 8006dbc: f887 3313 strb.w r3, [r7, #787] ; 0x313 p8 = str2; 8006dc0: f107 03e0 add.w r3, r7, #224 ; 0xe0 8006dc4: f8c7 3340 str.w r3, [r7, #832] ; 0x340 if(pardata.amplif[Ch2].SENS < 10.0f) { 8006dc8: 4b8c ldr r3, [pc, #560] ; (8006ffc ) 8006dca: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006dce: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8006dd2: eef4 7ac7 vcmpe.f32 s15, s14 8006dd6: eef1 fa10 vmrs APSR_nzcv, fpscr 8006dda: d50b bpl.n 8006df4 p8 = FloatToASCII(pardata.amplif[Ch2].SENS, -4); 8006ddc: 4b87 ldr r3, [pc, #540] ; (8006ffc ) 8006dde: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006de2: f06f 0003 mvn.w r0, #3 8006de6: eeb0 0a67 vmov.f32 s0, s15 8006dea: f008 fb1d bl 800f428 8006dee: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8006df2: e055 b.n 8006ea0 } else if(pardata.amplif[Ch2].SENS < 100.0f) { 8006df4: 4b81 ldr r3, [pc, #516] ; (8006ffc ) 8006df6: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006dfa: ed9f 7a88 vldr s14, [pc, #544] ; 800701c 8006dfe: eef4 7ac7 vcmpe.f32 s15, s14 8006e02: eef1 fa10 vmrs APSR_nzcv, fpscr 8006e06: d50b bpl.n 8006e20 p8 = FloatToASCII(pardata.amplif[Ch2].SENS, -3); 8006e08: 4b7c ldr r3, [pc, #496] ; (8006ffc ) 8006e0a: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006e0e: f06f 0002 mvn.w r0, #2 8006e12: eeb0 0a67 vmov.f32 s0, s15 8006e16: f008 fb07 bl 800f428 8006e1a: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8006e1e: e03f b.n 8006ea0 } else if(pardata.amplif[Ch2].SENS < 1000.0f) { 8006e20: 4b76 ldr r3, [pc, #472] ; (8006ffc ) 8006e22: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006e26: ed9f 7a7e vldr s14, [pc, #504] ; 8007020 8006e2a: eef4 7ac7 vcmpe.f32 s15, s14 8006e2e: eef1 fa10 vmrs APSR_nzcv, fpscr 8006e32: d50b bpl.n 8006e4c p8 = FloatToASCII(pardata.amplif[Ch2].SENS, -2); 8006e34: 4b71 ldr r3, [pc, #452] ; (8006ffc ) 8006e36: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006e3a: f06f 0001 mvn.w r0, #1 8006e3e: eeb0 0a67 vmov.f32 s0, s15 8006e42: f008 faf1 bl 800f428 8006e46: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8006e4a: e029 b.n 8006ea0 } else if(pardata.amplif[Ch2].SENS < 10000.0f) { 8006e4c: 4b6b ldr r3, [pc, #428] ; (8006ffc ) 8006e4e: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006e52: ed9f 7a74 vldr s14, [pc, #464] ; 8007024 8006e56: eef4 7ac7 vcmpe.f32 s15, s14 8006e5a: eef1 fa10 vmrs APSR_nzcv, fpscr 8006e5e: d50b bpl.n 8006e78 p8 = FloatToASCII(pardata.amplif[Ch2].SENS, -1); 8006e60: 4b66 ldr r3, [pc, #408] ; (8006ffc ) 8006e62: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006e66: f04f 30ff mov.w r0, #4294967295 8006e6a: eeb0 0a67 vmov.f32 s0, s15 8006e6e: f008 fadb bl 800f428 8006e72: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8006e76: e013 b.n 8006ea0 } else if(pardata.amplif[Ch2].SENS < 100000.0f) { 8006e78: 4b60 ldr r3, [pc, #384] ; (8006ffc ) 8006e7a: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006e7e: ed9f 7a60 vldr s14, [pc, #384] ; 8007000 8006e82: eef4 7ac7 vcmpe.f32 s15, s14 8006e86: eef1 fa10 vmrs APSR_nzcv, fpscr 8006e8a: d509 bpl.n 8006ea0 p8 = FloatToASCII(pardata.amplif[Ch2].SENS, 0); 8006e8c: 4b5b ldr r3, [pc, #364] ; (8006ffc ) 8006e8e: edd3 7a0e vldr s15, [r3, #56] ; 0x38 8006e92: 2000 movs r0, #0 8006e94: eeb0 0a67 vmov.f32 s0, s15 8006e98: f008 fac6 bl 800f428 8006e9c: f8c7 0340 str.w r0, [r7, #832] ; 0x340 } strcpy((void *) str2, (void *) p8); 8006ea0: f107 03e0 add.w r3, r7, #224 ; 0xe0 8006ea4: f8d7 1340 ldr.w r1, [r7, #832] ; 0x340 8006ea8: 4618 mov r0, r3 8006eaa: f00f fae2 bl 8016472 ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// if(pardata.amplif[Ch3].SENS <= 0.0f) { 8006eae: 4b53 ldr r3, [pc, #332] ; (8006ffc ) 8006eb0: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8006eb4: eef5 7ac0 vcmpe.f32 s15, #0.0 8006eb8: eef1 fa10 vmrs APSR_nzcv, fpscr 8006ebc: d807 bhi.n 8006ece pardata.amplif[Ch3].SENS = 1.0f; 8006ebe: 4b4f ldr r3, [pc, #316] ; (8006ffc ) 8006ec0: f04f 527e mov.w r2, #1065353216 ; 0x3f800000 8006ec4: 659a str r2, [r3, #88] ; 0x58 s = 10000; 8006ec6: f242 7310 movw r3, #10000 ; 0x2710 8006eca: f8c7 3344 str.w r3, [r7, #836] ; 0x344 } if(pardata.amplif[Ch3].SENS < 10.0f) { 8006ece: 4b4b ldr r3, [pc, #300] ; (8006ffc ) 8006ed0: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8006ed4: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8006ed8: eef4 7ac7 vcmpe.f32 s15, s14 8006edc: eef1 fa10 vmrs APSR_nzcv, fpscr 8006ee0: d514 bpl.n 8006f0c s = (uint32_t) ((pardata.amplif[Ch3].SENS * 10000.0f) + 0.5f); 8006ee2: 4b46 ldr r3, [pc, #280] ; (8006ffc ) 8006ee4: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8006ee8: ed9f 7a4e vldr s14, [pc, #312] ; 8007024 8006eec: ee67 7a87 vmul.f32 s15, s15, s14 8006ef0: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006ef4: ee77 7a87 vadd.f32 s15, s15, s14 8006ef8: eefc 7ae7 vcvt.u32.f32 s15, s15 8006efc: ee17 3a90 vmov r3, s15 8006f00: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt3 = 4; 8006f04: 2304 movs r3, #4 8006f06: f887 3308 strb.w r3, [r7, #776] ; 0x308 8006f0a: e0a0 b.n 800704e } else if(pardata.amplif[Ch3].SENS < 100.0f) { 8006f0c: 4b3b ldr r3, [pc, #236] ; (8006ffc ) 8006f0e: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8006f12: ed9f 7a42 vldr s14, [pc, #264] ; 800701c 8006f16: eef4 7ac7 vcmpe.f32 s15, s14 8006f1a: eef1 fa10 vmrs APSR_nzcv, fpscr 8006f1e: d514 bpl.n 8006f4a s = (uint32_t) ((pardata.amplif[Ch3].SENS * 1000.0f) + 0.5f); 8006f20: 4b36 ldr r3, [pc, #216] ; (8006ffc ) 8006f22: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8006f26: ed9f 7a3e vldr s14, [pc, #248] ; 8007020 8006f2a: ee67 7a87 vmul.f32 s15, s15, s14 8006f2e: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006f32: ee77 7a87 vadd.f32 s15, s15, s14 8006f36: eefc 7ae7 vcvt.u32.f32 s15, s15 8006f3a: ee17 3a90 vmov r3, s15 8006f3e: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt3 = 3; 8006f42: 2303 movs r3, #3 8006f44: f887 3308 strb.w r3, [r7, #776] ; 0x308 8006f48: e081 b.n 800704e } else if(pardata.amplif[Ch3].SENS < 1000.0f) { 8006f4a: 4b2c ldr r3, [pc, #176] ; (8006ffc ) 8006f4c: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8006f50: ed9f 7a33 vldr s14, [pc, #204] ; 8007020 8006f54: eef4 7ac7 vcmpe.f32 s15, s14 8006f58: eef1 fa10 vmrs APSR_nzcv, fpscr 8006f5c: d514 bpl.n 8006f88 s = (uint32_t) ((pardata.amplif[Ch3].SENS * 100.0f) + 0.5f); 8006f5e: 4b27 ldr r3, [pc, #156] ; (8006ffc ) 8006f60: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8006f64: ed9f 7a2d vldr s14, [pc, #180] ; 800701c 8006f68: ee67 7a87 vmul.f32 s15, s15, s14 8006f6c: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006f70: ee77 7a87 vadd.f32 s15, s15, s14 8006f74: eefc 7ae7 vcvt.u32.f32 s15, s15 8006f78: ee17 3a90 vmov r3, s15 8006f7c: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt3 = 2; 8006f80: 2302 movs r3, #2 8006f82: f887 3308 strb.w r3, [r7, #776] ; 0x308 8006f86: e062 b.n 800704e } else if(pardata.amplif[Ch3].SENS < 10000.0f) { 8006f88: 4b1c ldr r3, [pc, #112] ; (8006ffc ) 8006f8a: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8006f8e: ed9f 7a25 vldr s14, [pc, #148] ; 8007024 8006f92: eef4 7ac7 vcmpe.f32 s15, s14 8006f96: eef1 fa10 vmrs APSR_nzcv, fpscr 8006f9a: d514 bpl.n 8006fc6 s = (uint32_t) ((pardata.amplif[Ch3].SENS * 10.0f) + 0.5f); 8006f9c: 4b17 ldr r3, [pc, #92] ; (8006ffc ) 8006f9e: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8006fa2: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8006fa6: ee67 7a87 vmul.f32 s15, s15, s14 8006faa: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006fae: ee77 7a87 vadd.f32 s15, s15, s14 8006fb2: eefc 7ae7 vcvt.u32.f32 s15, s15 8006fb6: ee17 3a90 vmov r3, s15 8006fba: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt3 = 1; 8006fbe: 2301 movs r3, #1 8006fc0: f887 3308 strb.w r3, [r7, #776] ; 0x308 8006fc4: e043 b.n 800704e } else if(pardata.amplif[Ch3].SENS < 100000.0f) { 8006fc6: 4b0d ldr r3, [pc, #52] ; (8006ffc ) 8006fc8: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8006fcc: ed9f 7a0c vldr s14, [pc, #48] ; 8007000 8006fd0: eef4 7ac7 vcmpe.f32 s15, s14 8006fd4: eef1 fa10 vmrs APSR_nzcv, fpscr 8006fd8: d526 bpl.n 8007028 s = (uint32_t) ((pardata.amplif[Ch3].SENS) + 0.5f); 8006fda: 4b08 ldr r3, [pc, #32] ; (8006ffc ) 8006fdc: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8006fe0: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006fe4: ee77 7a87 vadd.f32 s15, s15, s14 8006fe8: eefc 7ae7 vcvt.u32.f32 s15, s15 8006fec: ee17 3a90 vmov r3, s15 8006ff0: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt3 = 0; 8006ff4: 2300 movs r3, #0 8006ff6: f887 3308 strb.w r3, [r7, #776] ; 0x308 8006ffa: e028 b.n 800704e 8006ffc: 2006bca8 .word 0x2006bca8 8007000: 47c35000 .word 0x47c35000 8007004: 47c34f80 .word 0x47c34f80 8007008: 0001869f .word 0x0001869f 800700c: d1b71759 .word 0xd1b71759 8007010: 10624dd3 .word 0x10624dd3 8007014: 51eb851f .word 0x51eb851f 8007018: cccccccd .word 0xcccccccd 800701c: 42c80000 .word 0x42c80000 8007020: 447a0000 .word 0x447a0000 8007024: 461c4000 .word 0x461c4000 } else if(pardata.amplif[Ch3].SENS >= 100000.0f) { 8007028: 4bd8 ldr r3, [pc, #864] ; (800738c ) 800702a: edd3 7a16 vldr s15, [r3, #88] ; 0x58 800702e: ed9f 7ad8 vldr s14, [pc, #864] ; 8007390 8007032: eef4 7ac7 vcmpe.f32 s15, s14 8007036: eef1 fa10 vmrs APSR_nzcv, fpscr 800703a: db08 blt.n 800704e pardata.amplif[Ch3].SENS = 99999.0f; 800703c: 4bd3 ldr r3, [pc, #844] ; (800738c ) 800703e: 4ad5 ldr r2, [pc, #852] ; (8007394 ) 8007040: 659a str r2, [r3, #88] ; 0x58 s = 99999; 8007042: 4bd5 ldr r3, [pc, #852] ; (8007398 ) 8007044: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt3 = 0; 8007048: 2300 movs r3, #0 800704a: f887 3308 strb.w r3, [r7, #776] ; 0x308 } idt3 = (s / 10000); 800704e: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 8007052: 4ad2 ldr r2, [pc, #840] ; (800739c ) 8007054: fba2 2303 umull r2, r3, r2, r3 8007058: 0b5b lsrs r3, r3, #13 800705a: b2db uxtb r3, r3 800705c: f887 330f strb.w r3, [r7, #783] ; 0x30f iet3 = (s % 10000 / 1000); 8007060: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344 8007064: 4bcd ldr r3, [pc, #820] ; (800739c ) 8007066: fba3 1302 umull r1, r3, r3, r2 800706a: 0b5b lsrs r3, r3, #13 800706c: f242 7110 movw r1, #10000 ; 0x2710 8007070: fb01 f303 mul.w r3, r1, r3 8007074: 1ad3 subs r3, r2, r3 8007076: 4aca ldr r2, [pc, #808] ; (80073a0 ) 8007078: fba2 2303 umull r2, r3, r2, r3 800707c: 099b lsrs r3, r3, #6 800707e: b2db uxtb r3, r3 8007080: f887 330e strb.w r3, [r7, #782] ; 0x30e ies3 = (s % 10000 % 1000 / 100); 8007084: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344 8007088: 4bc4 ldr r3, [pc, #784] ; (800739c ) 800708a: fba3 1302 umull r1, r3, r3, r2 800708e: 0b5b lsrs r3, r3, #13 8007090: f242 7110 movw r1, #10000 ; 0x2710 8007094: fb01 f303 mul.w r3, r1, r3 8007098: 1ad3 subs r3, r2, r3 800709a: 4ac1 ldr r2, [pc, #772] ; (80073a0 ) 800709c: fba2 1203 umull r1, r2, r2, r3 80070a0: 0992 lsrs r2, r2, #6 80070a2: f44f 717a mov.w r1, #1000 ; 0x3e8 80070a6: fb01 f202 mul.w r2, r1, r2 80070aa: 1a9a subs r2, r3, r2 80070ac: 4bbd ldr r3, [pc, #756] ; (80073a4 ) 80070ae: fba3 2302 umull r2, r3, r3, r2 80070b2: 095b lsrs r3, r3, #5 80070b4: b2db uxtb r3, r3 80070b6: f887 330d strb.w r3, [r7, #781] ; 0x30d ied3 = (s % 10000 % 1000 % 100 / 10); 80070ba: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 80070be: 4ab7 ldr r2, [pc, #732] ; (800739c ) 80070c0: fba2 1203 umull r1, r2, r2, r3 80070c4: 0b52 lsrs r2, r2, #13 80070c6: f242 7110 movw r1, #10000 ; 0x2710 80070ca: fb01 f202 mul.w r2, r1, r2 80070ce: 1a9a subs r2, r3, r2 80070d0: 4bb3 ldr r3, [pc, #716] ; (80073a0 ) 80070d2: fba3 1302 umull r1, r3, r3, r2 80070d6: 099b lsrs r3, r3, #6 80070d8: f44f 717a mov.w r1, #1000 ; 0x3e8 80070dc: fb01 f303 mul.w r3, r1, r3 80070e0: 1ad3 subs r3, r2, r3 80070e2: 4ab0 ldr r2, [pc, #704] ; (80073a4 ) 80070e4: fba2 1203 umull r1, r2, r2, r3 80070e8: 0952 lsrs r2, r2, #5 80070ea: 2164 movs r1, #100 ; 0x64 80070ec: fb01 f202 mul.w r2, r1, r2 80070f0: 1a9a subs r2, r3, r2 80070f2: 4bad ldr r3, [pc, #692] ; (80073a8 ) 80070f4: fba3 2302 umull r2, r3, r3, r2 80070f8: 08db lsrs r3, r3, #3 80070fa: b2db uxtb r3, r3 80070fc: f887 330c strb.w r3, [r7, #780] ; 0x30c iee3 = (s % 10000 % 1000 % 100 % 10); 8007100: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 8007104: 4aa5 ldr r2, [pc, #660] ; (800739c ) 8007106: fba2 1203 umull r1, r2, r2, r3 800710a: 0b52 lsrs r2, r2, #13 800710c: f242 7110 movw r1, #10000 ; 0x2710 8007110: fb01 f202 mul.w r2, r1, r2 8007114: 1a9a subs r2, r3, r2 8007116: 4ba2 ldr r3, [pc, #648] ; (80073a0 ) 8007118: fba3 1302 umull r1, r3, r3, r2 800711c: 099b lsrs r3, r3, #6 800711e: f44f 717a mov.w r1, #1000 ; 0x3e8 8007122: fb01 f303 mul.w r3, r1, r3 8007126: 1ad3 subs r3, r2, r3 8007128: 4a9e ldr r2, [pc, #632] ; (80073a4 ) 800712a: fba2 1203 umull r1, r2, r2, r3 800712e: 0952 lsrs r2, r2, #5 8007130: 2164 movs r1, #100 ; 0x64 8007132: fb01 f202 mul.w r2, r1, r2 8007136: 1a9a subs r2, r3, r2 8007138: 4b9b ldr r3, [pc, #620] ; (80073a8 ) 800713a: fba3 1302 umull r1, r3, r3, r2 800713e: 08d9 lsrs r1, r3, #3 8007140: 460b mov r3, r1 8007142: 009b lsls r3, r3, #2 8007144: 440b add r3, r1 8007146: 005b lsls r3, r3, #1 8007148: 1ad1 subs r1, r2, r3 800714a: b2cb uxtb r3, r1 800714c: f887 330b strb.w r3, [r7, #779] ; 0x30b p8 = str3; 8007150: f107 03a4 add.w r3, r7, #164 ; 0xa4 8007154: f8c7 3340 str.w r3, [r7, #832] ; 0x340 if(pardata.amplif[Ch3].SENS < 10.0f) { 8007158: 4b8c ldr r3, [pc, #560] ; (800738c ) 800715a: edd3 7a16 vldr s15, [r3, #88] ; 0x58 800715e: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8007162: eef4 7ac7 vcmpe.f32 s15, s14 8007166: eef1 fa10 vmrs APSR_nzcv, fpscr 800716a: d50b bpl.n 8007184 p8 = FloatToASCII(pardata.amplif[Ch3].SENS, -4); 800716c: 4b87 ldr r3, [pc, #540] ; (800738c ) 800716e: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8007172: f06f 0003 mvn.w r0, #3 8007176: eeb0 0a67 vmov.f32 s0, s15 800717a: f008 f955 bl 800f428 800717e: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8007182: e055 b.n 8007230 } else if(pardata.amplif[Ch3].SENS < 100.0f) { 8007184: 4b81 ldr r3, [pc, #516] ; (800738c ) 8007186: edd3 7a16 vldr s15, [r3, #88] ; 0x58 800718a: ed9f 7a88 vldr s14, [pc, #544] ; 80073ac 800718e: eef4 7ac7 vcmpe.f32 s15, s14 8007192: eef1 fa10 vmrs APSR_nzcv, fpscr 8007196: d50b bpl.n 80071b0 p8 = FloatToASCII(pardata.amplif[Ch3].SENS, -3); 8007198: 4b7c ldr r3, [pc, #496] ; (800738c ) 800719a: edd3 7a16 vldr s15, [r3, #88] ; 0x58 800719e: f06f 0002 mvn.w r0, #2 80071a2: eeb0 0a67 vmov.f32 s0, s15 80071a6: f008 f93f bl 800f428 80071aa: f8c7 0340 str.w r0, [r7, #832] ; 0x340 80071ae: e03f b.n 8007230 } else if(pardata.amplif[Ch3].SENS < 1000.0f) { 80071b0: 4b76 ldr r3, [pc, #472] ; (800738c ) 80071b2: edd3 7a16 vldr s15, [r3, #88] ; 0x58 80071b6: ed9f 7a7e vldr s14, [pc, #504] ; 80073b0 80071ba: eef4 7ac7 vcmpe.f32 s15, s14 80071be: eef1 fa10 vmrs APSR_nzcv, fpscr 80071c2: d50b bpl.n 80071dc p8 = FloatToASCII(pardata.amplif[Ch3].SENS, -2); 80071c4: 4b71 ldr r3, [pc, #452] ; (800738c ) 80071c6: edd3 7a16 vldr s15, [r3, #88] ; 0x58 80071ca: f06f 0001 mvn.w r0, #1 80071ce: eeb0 0a67 vmov.f32 s0, s15 80071d2: f008 f929 bl 800f428 80071d6: f8c7 0340 str.w r0, [r7, #832] ; 0x340 80071da: e029 b.n 8007230 } else if(pardata.amplif[Ch3].SENS < 10000.0f) { 80071dc: 4b6b ldr r3, [pc, #428] ; (800738c ) 80071de: edd3 7a16 vldr s15, [r3, #88] ; 0x58 80071e2: ed9f 7a74 vldr s14, [pc, #464] ; 80073b4 80071e6: eef4 7ac7 vcmpe.f32 s15, s14 80071ea: eef1 fa10 vmrs APSR_nzcv, fpscr 80071ee: d50b bpl.n 8007208 p8 = FloatToASCII(pardata.amplif[Ch3].SENS, -1); 80071f0: 4b66 ldr r3, [pc, #408] ; (800738c ) 80071f2: edd3 7a16 vldr s15, [r3, #88] ; 0x58 80071f6: f04f 30ff mov.w r0, #4294967295 80071fa: eeb0 0a67 vmov.f32 s0, s15 80071fe: f008 f913 bl 800f428 8007202: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8007206: e013 b.n 8007230 } else if(pardata.amplif[Ch3].SENS < 100000.0f) { 8007208: 4b60 ldr r3, [pc, #384] ; (800738c ) 800720a: edd3 7a16 vldr s15, [r3, #88] ; 0x58 800720e: ed9f 7a60 vldr s14, [pc, #384] ; 8007390 8007212: eef4 7ac7 vcmpe.f32 s15, s14 8007216: eef1 fa10 vmrs APSR_nzcv, fpscr 800721a: d509 bpl.n 8007230 p8 = FloatToASCII(pardata.amplif[Ch3].SENS, 0); 800721c: 4b5b ldr r3, [pc, #364] ; (800738c ) 800721e: edd3 7a16 vldr s15, [r3, #88] ; 0x58 8007222: 2000 movs r0, #0 8007224: eeb0 0a67 vmov.f32 s0, s15 8007228: f008 f8fe bl 800f428 800722c: f8c7 0340 str.w r0, [r7, #832] ; 0x340 } strcpy((void *) str3, (void *) p8); 8007230: f107 03a4 add.w r3, r7, #164 ; 0xa4 8007234: f8d7 1340 ldr.w r1, [r7, #832] ; 0x340 8007238: 4618 mov r0, r3 800723a: f00f f91a bl 8016472 ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// if(pardata.amplif[Ch4].SENS <= 0.0f) { 800723e: 4b53 ldr r3, [pc, #332] ; (800738c ) 8007240: edd3 7a1e vldr s15, [r3, #120] ; 0x78 8007244: eef5 7ac0 vcmpe.f32 s15, #0.0 8007248: eef1 fa10 vmrs APSR_nzcv, fpscr 800724c: d807 bhi.n 800725e pardata.amplif[Ch4].SENS = 1.0f; 800724e: 4b4f ldr r3, [pc, #316] ; (800738c ) 8007250: f04f 527e mov.w r2, #1065353216 ; 0x3f800000 8007254: 679a str r2, [r3, #120] ; 0x78 s = 10000; 8007256: f242 7310 movw r3, #10000 ; 0x2710 800725a: f8c7 3344 str.w r3, [r7, #836] ; 0x344 } if(pardata.amplif[Ch4].SENS < 10.0f) { 800725e: 4b4b ldr r3, [pc, #300] ; (800738c ) 8007260: edd3 7a1e vldr s15, [r3, #120] ; 0x78 8007264: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8007268: eef4 7ac7 vcmpe.f32 s15, s14 800726c: eef1 fa10 vmrs APSR_nzcv, fpscr 8007270: d514 bpl.n 800729c s = (uint32_t) ((pardata.amplif[Ch4].SENS * 10000.0f) + 0.5f); 8007272: 4b46 ldr r3, [pc, #280] ; (800738c ) 8007274: edd3 7a1e vldr s15, [r3, #120] ; 0x78 8007278: ed9f 7a4e vldr s14, [pc, #312] ; 80073b4 800727c: ee67 7a87 vmul.f32 s15, s15, s14 8007280: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8007284: ee77 7a87 vadd.f32 s15, s15, s14 8007288: eefc 7ae7 vcvt.u32.f32 s15, s15 800728c: ee17 3a90 vmov r3, s15 8007290: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt4 = 4; 8007294: 2304 movs r3, #4 8007296: f887 3300 strb.w r3, [r7, #768] ; 0x300 800729a: e0a0 b.n 80073de } else if(pardata.amplif[Ch4].SENS < 100.0f) { 800729c: 4b3b ldr r3, [pc, #236] ; (800738c ) 800729e: edd3 7a1e vldr s15, [r3, #120] ; 0x78 80072a2: ed9f 7a42 vldr s14, [pc, #264] ; 80073ac 80072a6: eef4 7ac7 vcmpe.f32 s15, s14 80072aa: eef1 fa10 vmrs APSR_nzcv, fpscr 80072ae: d514 bpl.n 80072da s = (uint32_t) ((pardata.amplif[Ch4].SENS * 1000.0f) + 0.5f); 80072b0: 4b36 ldr r3, [pc, #216] ; (800738c ) 80072b2: edd3 7a1e vldr s15, [r3, #120] ; 0x78 80072b6: ed9f 7a3e vldr s14, [pc, #248] ; 80073b0 80072ba: ee67 7a87 vmul.f32 s15, s15, s14 80072be: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 80072c2: ee77 7a87 vadd.f32 s15, s15, s14 80072c6: eefc 7ae7 vcvt.u32.f32 s15, s15 80072ca: ee17 3a90 vmov r3, s15 80072ce: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt4 = 3; 80072d2: 2303 movs r3, #3 80072d4: f887 3300 strb.w r3, [r7, #768] ; 0x300 80072d8: e081 b.n 80073de } else if(pardata.amplif[Ch4].SENS < 1000.0f) { 80072da: 4b2c ldr r3, [pc, #176] ; (800738c ) 80072dc: edd3 7a1e vldr s15, [r3, #120] ; 0x78 80072e0: ed9f 7a33 vldr s14, [pc, #204] ; 80073b0 80072e4: eef4 7ac7 vcmpe.f32 s15, s14 80072e8: eef1 fa10 vmrs APSR_nzcv, fpscr 80072ec: d514 bpl.n 8007318 s = (uint32_t) ((pardata.amplif[Ch4].SENS * 100.0f) + 0.5f); 80072ee: 4b27 ldr r3, [pc, #156] ; (800738c ) 80072f0: edd3 7a1e vldr s15, [r3, #120] ; 0x78 80072f4: ed9f 7a2d vldr s14, [pc, #180] ; 80073ac 80072f8: ee67 7a87 vmul.f32 s15, s15, s14 80072fc: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8007300: ee77 7a87 vadd.f32 s15, s15, s14 8007304: eefc 7ae7 vcvt.u32.f32 s15, s15 8007308: ee17 3a90 vmov r3, s15 800730c: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt4 = 2; 8007310: 2302 movs r3, #2 8007312: f887 3300 strb.w r3, [r7, #768] ; 0x300 8007316: e062 b.n 80073de } else if(pardata.amplif[Ch4].SENS < 10000.0f) { 8007318: 4b1c ldr r3, [pc, #112] ; (800738c ) 800731a: edd3 7a1e vldr s15, [r3, #120] ; 0x78 800731e: ed9f 7a25 vldr s14, [pc, #148] ; 80073b4 8007322: eef4 7ac7 vcmpe.f32 s15, s14 8007326: eef1 fa10 vmrs APSR_nzcv, fpscr 800732a: d514 bpl.n 8007356 s = (uint32_t) ((pardata.amplif[Ch4].SENS * 10.0f) + 0.5f); 800732c: 4b17 ldr r3, [pc, #92] ; (800738c ) 800732e: edd3 7a1e vldr s15, [r3, #120] ; 0x78 8007332: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8007336: ee67 7a87 vmul.f32 s15, s15, s14 800733a: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 800733e: ee77 7a87 vadd.f32 s15, s15, s14 8007342: eefc 7ae7 vcvt.u32.f32 s15, s15 8007346: ee17 3a90 vmov r3, s15 800734a: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt4 = 1; 800734e: 2301 movs r3, #1 8007350: f887 3300 strb.w r3, [r7, #768] ; 0x300 8007354: e043 b.n 80073de } else if(pardata.amplif[Ch4].SENS < 100000.0f) { 8007356: 4b0d ldr r3, [pc, #52] ; (800738c ) 8007358: edd3 7a1e vldr s15, [r3, #120] ; 0x78 800735c: ed9f 7a0c vldr s14, [pc, #48] ; 8007390 8007360: eef4 7ac7 vcmpe.f32 s15, s14 8007364: eef1 fa10 vmrs APSR_nzcv, fpscr 8007368: d526 bpl.n 80073b8 s = (uint32_t) ((pardata.amplif[Ch4].SENS) + 0.5f); 800736a: 4b08 ldr r3, [pc, #32] ; (800738c ) 800736c: edd3 7a1e vldr s15, [r3, #120] ; 0x78 8007370: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8007374: ee77 7a87 vadd.f32 s15, s15, s14 8007378: eefc 7ae7 vcvt.u32.f32 s15, s15 800737c: ee17 3a90 vmov r3, s15 8007380: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt4 = 0; 8007384: 2300 movs r3, #0 8007386: f887 3300 strb.w r3, [r7, #768] ; 0x300 800738a: e028 b.n 80073de 800738c: 2006bca8 .word 0x2006bca8 8007390: 47c35000 .word 0x47c35000 8007394: 47c34f80 .word 0x47c34f80 8007398: 0001869f .word 0x0001869f 800739c: d1b71759 .word 0xd1b71759 80073a0: 10624dd3 .word 0x10624dd3 80073a4: 51eb851f .word 0x51eb851f 80073a8: cccccccd .word 0xcccccccd 80073ac: 42c80000 .word 0x42c80000 80073b0: 447a0000 .word 0x447a0000 80073b4: 461c4000 .word 0x461c4000 } else if(pardata.amplif[Ch4].SENS >= 100000.0f) { 80073b8: 4bc9 ldr r3, [pc, #804] ; (80076e0 ) 80073ba: edd3 7a1e vldr s15, [r3, #120] ; 0x78 80073be: ed9f 7ac9 vldr s14, [pc, #804] ; 80076e4 80073c2: eef4 7ac7 vcmpe.f32 s15, s14 80073c6: eef1 fa10 vmrs APSR_nzcv, fpscr 80073ca: db08 blt.n 80073de pardata.amplif[Ch4].SENS = 99999.0f; 80073cc: 4bc4 ldr r3, [pc, #784] ; (80076e0 ) 80073ce: 4ac6 ldr r2, [pc, #792] ; (80076e8 ) 80073d0: 679a str r2, [r3, #120] ; 0x78 s = 99999; 80073d2: 4bc6 ldr r3, [pc, #792] ; (80076ec ) 80073d4: f8c7 3344 str.w r3, [r7, #836] ; 0x344 ipt4 = 0; 80073d8: 2300 movs r3, #0 80073da: f887 3300 strb.w r3, [r7, #768] ; 0x300 } idt4 = (s / 10000); 80073de: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 80073e2: 4ac3 ldr r2, [pc, #780] ; (80076f0 ) 80073e4: fba2 2303 umull r2, r3, r2, r3 80073e8: 0b5b lsrs r3, r3, #13 80073ea: b2db uxtb r3, r3 80073ec: f887 3307 strb.w r3, [r7, #775] ; 0x307 iet4 = (s % 10000 / 1000); 80073f0: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344 80073f4: 4bbe ldr r3, [pc, #760] ; (80076f0 ) 80073f6: fba3 1302 umull r1, r3, r3, r2 80073fa: 0b5b lsrs r3, r3, #13 80073fc: f242 7110 movw r1, #10000 ; 0x2710 8007400: fb01 f303 mul.w r3, r1, r3 8007404: 1ad3 subs r3, r2, r3 8007406: 4abb ldr r2, [pc, #748] ; (80076f4 ) 8007408: fba2 2303 umull r2, r3, r2, r3 800740c: 099b lsrs r3, r3, #6 800740e: b2db uxtb r3, r3 8007410: f887 3306 strb.w r3, [r7, #774] ; 0x306 ies4 = (s % 10000 % 1000 / 100); 8007414: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344 8007418: 4bb5 ldr r3, [pc, #724] ; (80076f0 ) 800741a: fba3 1302 umull r1, r3, r3, r2 800741e: 0b5b lsrs r3, r3, #13 8007420: f242 7110 movw r1, #10000 ; 0x2710 8007424: fb01 f303 mul.w r3, r1, r3 8007428: 1ad3 subs r3, r2, r3 800742a: 4ab2 ldr r2, [pc, #712] ; (80076f4 ) 800742c: fba2 1203 umull r1, r2, r2, r3 8007430: 0992 lsrs r2, r2, #6 8007432: f44f 717a mov.w r1, #1000 ; 0x3e8 8007436: fb01 f202 mul.w r2, r1, r2 800743a: 1a9a subs r2, r3, r2 800743c: 4bae ldr r3, [pc, #696] ; (80076f8 ) 800743e: fba3 2302 umull r2, r3, r3, r2 8007442: 095b lsrs r3, r3, #5 8007444: b2db uxtb r3, r3 8007446: f887 3305 strb.w r3, [r7, #773] ; 0x305 ied4 = (s % 10000 % 1000 % 100 / 10); 800744a: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 800744e: 4aa8 ldr r2, [pc, #672] ; (80076f0 ) 8007450: fba2 1203 umull r1, r2, r2, r3 8007454: 0b52 lsrs r2, r2, #13 8007456: f242 7110 movw r1, #10000 ; 0x2710 800745a: fb01 f202 mul.w r2, r1, r2 800745e: 1a9a subs r2, r3, r2 8007460: 4ba4 ldr r3, [pc, #656] ; (80076f4 ) 8007462: fba3 1302 umull r1, r3, r3, r2 8007466: 099b lsrs r3, r3, #6 8007468: f44f 717a mov.w r1, #1000 ; 0x3e8 800746c: fb01 f303 mul.w r3, r1, r3 8007470: 1ad3 subs r3, r2, r3 8007472: 4aa1 ldr r2, [pc, #644] ; (80076f8 ) 8007474: fba2 1203 umull r1, r2, r2, r3 8007478: 0952 lsrs r2, r2, #5 800747a: 2164 movs r1, #100 ; 0x64 800747c: fb01 f202 mul.w r2, r1, r2 8007480: 1a9a subs r2, r3, r2 8007482: 4b9e ldr r3, [pc, #632] ; (80076fc ) 8007484: fba3 2302 umull r2, r3, r3, r2 8007488: 08db lsrs r3, r3, #3 800748a: b2db uxtb r3, r3 800748c: f887 3304 strb.w r3, [r7, #772] ; 0x304 iee4 = (s % 10000 % 1000 % 100 % 10); 8007490: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344 8007494: 4a96 ldr r2, [pc, #600] ; (80076f0 ) 8007496: fba2 1203 umull r1, r2, r2, r3 800749a: 0b52 lsrs r2, r2, #13 800749c: f242 7110 movw r1, #10000 ; 0x2710 80074a0: fb01 f202 mul.w r2, r1, r2 80074a4: 1a9a subs r2, r3, r2 80074a6: 4b93 ldr r3, [pc, #588] ; (80076f4 ) 80074a8: fba3 1302 umull r1, r3, r3, r2 80074ac: 099b lsrs r3, r3, #6 80074ae: f44f 717a mov.w r1, #1000 ; 0x3e8 80074b2: fb01 f303 mul.w r3, r1, r3 80074b6: 1ad3 subs r3, r2, r3 80074b8: 4a8f ldr r2, [pc, #572] ; (80076f8 ) 80074ba: fba2 1203 umull r1, r2, r2, r3 80074be: 0952 lsrs r2, r2, #5 80074c0: 2164 movs r1, #100 ; 0x64 80074c2: fb01 f202 mul.w r2, r1, r2 80074c6: 1a9a subs r2, r3, r2 80074c8: 4b8c ldr r3, [pc, #560] ; (80076fc ) 80074ca: fba3 1302 umull r1, r3, r3, r2 80074ce: 08d9 lsrs r1, r3, #3 80074d0: 460b mov r3, r1 80074d2: 009b lsls r3, r3, #2 80074d4: 440b add r3, r1 80074d6: 005b lsls r3, r3, #1 80074d8: 1ad1 subs r1, r2, r3 80074da: b2cb uxtb r3, r1 80074dc: f887 3303 strb.w r3, [r7, #771] ; 0x303 p8 = str4; 80074e0: f107 0368 add.w r3, r7, #104 ; 0x68 80074e4: f8c7 3340 str.w r3, [r7, #832] ; 0x340 if(pardata.amplif[Ch4].SENS < 10.0f) { 80074e8: 4b7d ldr r3, [pc, #500] ; (80076e0 ) 80074ea: edd3 7a1e vldr s15, [r3, #120] ; 0x78 80074ee: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 80074f2: eef4 7ac7 vcmpe.f32 s15, s14 80074f6: eef1 fa10 vmrs APSR_nzcv, fpscr 80074fa: d50b bpl.n 8007514 p8 = FloatToASCII(pardata.amplif[Ch4].SENS, -4); 80074fc: 4b78 ldr r3, [pc, #480] ; (80076e0 ) 80074fe: edd3 7a1e vldr s15, [r3, #120] ; 0x78 8007502: f06f 0003 mvn.w r0, #3 8007506: eeb0 0a67 vmov.f32 s0, s15 800750a: f007 ff8d bl 800f428 800750e: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8007512: e055 b.n 80075c0 } else if(pardata.amplif[Ch4].SENS < 100.0f) { 8007514: 4b72 ldr r3, [pc, #456] ; (80076e0 ) 8007516: edd3 7a1e vldr s15, [r3, #120] ; 0x78 800751a: ed9f 7a79 vldr s14, [pc, #484] ; 8007700 800751e: eef4 7ac7 vcmpe.f32 s15, s14 8007522: eef1 fa10 vmrs APSR_nzcv, fpscr 8007526: d50b bpl.n 8007540 p8 = FloatToASCII(pardata.amplif[Ch4].SENS, -3); 8007528: 4b6d ldr r3, [pc, #436] ; (80076e0 ) 800752a: edd3 7a1e vldr s15, [r3, #120] ; 0x78 800752e: f06f 0002 mvn.w r0, #2 8007532: eeb0 0a67 vmov.f32 s0, s15 8007536: f007 ff77 bl 800f428 800753a: f8c7 0340 str.w r0, [r7, #832] ; 0x340 800753e: e03f b.n 80075c0 } else if(pardata.amplif[Ch4].SENS < 1000.0f) { 8007540: 4b67 ldr r3, [pc, #412] ; (80076e0 ) 8007542: edd3 7a1e vldr s15, [r3, #120] ; 0x78 8007546: ed9f 7a6f vldr s14, [pc, #444] ; 8007704 800754a: eef4 7ac7 vcmpe.f32 s15, s14 800754e: eef1 fa10 vmrs APSR_nzcv, fpscr 8007552: d50b bpl.n 800756c p8 = FloatToASCII(pardata.amplif[Ch4].SENS, -2); 8007554: 4b62 ldr r3, [pc, #392] ; (80076e0 ) 8007556: edd3 7a1e vldr s15, [r3, #120] ; 0x78 800755a: f06f 0001 mvn.w r0, #1 800755e: eeb0 0a67 vmov.f32 s0, s15 8007562: f007 ff61 bl 800f428 8007566: f8c7 0340 str.w r0, [r7, #832] ; 0x340 800756a: e029 b.n 80075c0 } else if(pardata.amplif[Ch4].SENS < 10000.0f) { 800756c: 4b5c ldr r3, [pc, #368] ; (80076e0 ) 800756e: edd3 7a1e vldr s15, [r3, #120] ; 0x78 8007572: ed9f 7a65 vldr s14, [pc, #404] ; 8007708 8007576: eef4 7ac7 vcmpe.f32 s15, s14 800757a: eef1 fa10 vmrs APSR_nzcv, fpscr 800757e: d50b bpl.n 8007598 p8 = FloatToASCII(pardata.amplif[Ch4].SENS, -1); 8007580: 4b57 ldr r3, [pc, #348] ; (80076e0 ) 8007582: edd3 7a1e vldr s15, [r3, #120] ; 0x78 8007586: f04f 30ff mov.w r0, #4294967295 800758a: eeb0 0a67 vmov.f32 s0, s15 800758e: f007 ff4b bl 800f428 8007592: f8c7 0340 str.w r0, [r7, #832] ; 0x340 8007596: e013 b.n 80075c0 } else if(pardata.amplif[Ch4].SENS < 100000.0f) { 8007598: 4b51 ldr r3, [pc, #324] ; (80076e0 ) 800759a: edd3 7a1e vldr s15, [r3, #120] ; 0x78 800759e: ed9f 7a51 vldr s14, [pc, #324] ; 80076e4 80075a2: eef4 7ac7 vcmpe.f32 s15, s14 80075a6: eef1 fa10 vmrs APSR_nzcv, fpscr 80075aa: d509 bpl.n 80075c0 p8 = FloatToASCII(pardata.amplif[Ch4].SENS, 0); 80075ac: 4b4c ldr r3, [pc, #304] ; (80076e0 ) 80075ae: edd3 7a1e vldr s15, [r3, #120] ; 0x78 80075b2: 2000 movs r0, #0 80075b4: eeb0 0a67 vmov.f32 s0, s15 80075b8: f007 ff36 bl 800f428 80075bc: f8c7 0340 str.w r0, [r7, #832] ; 0x340 } strcpy((void *) str4, (void *) p8); 80075c0: f107 0368 add.w r3, r7, #104 ; 0x68 80075c4: f8d7 1340 ldr.w r1, [r7, #832] ; 0x340 80075c8: 4618 mov r0, r3 80075ca: f00e ff52 bl 8016472 ////////////////////////////////////////////////////////////////////////////// BSP_LCD_SetFont(&Font12); 80075ce: 484f ldr r0, [pc, #316] ; (800770c ) 80075d0: f7fd fbfa bl 8004dc8 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 80075d4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80075d8: 484d ldr r0, [pc, #308] ; (8007710 ) 80075da: f7fd fbb9 bl 8004d50 BSP_LCD_DisplayStringAt(160, 5, "Sensetivity", CENTER_MODE); 80075de: 2301 movs r3, #1 80075e0: 4a4c ldr r2, [pc, #304] ; (8007714 ) 80075e2: 2105 movs r1, #5 80075e4: 20a0 movs r0, #160 ; 0xa0 80075e6: f7fd fc79 bl 8004edc BSP_LCD_DisplayStringAt(240, 5, "Units", CENTER_MODE); 80075ea: 2301 movs r3, #1 80075ec: 4a4a ldr r2, [pc, #296] ; (8007718 ) 80075ee: 2105 movs r1, #5 80075f0: 20f0 movs r0, #240 ; 0xf0 80075f2: f7fd fc73 bl 8004edc LCD_SetColors(LCD_COLOR_ORANGE, LCD_COLOR_BLACK); 80075f6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80075fa: 4848 ldr r0, [pc, #288] ; (800771c ) 80075fc: f7fd fba8 bl 8004d50 if(pardata.amplif[Ch1].IIN == CHARGE) 8007600: 4b37 ldr r3, [pc, #220] ; (80076e0 ) 8007602: 881b ldrh r3, [r3, #0] 8007604: b29b uxth r3, r3 8007606: 2b00 cmp r3, #0 8007608: d106 bne.n 8007618 BSP_LCD_DisplayStringAt(95, 60, "PE", LEFT_MODE); 800760a: 2303 movs r3, #3 800760c: 4a44 ldr r2, [pc, #272] ; (8007720 ) 800760e: 213c movs r1, #60 ; 0x3c 8007610: 205f movs r0, #95 ; 0x5f 8007612: f7fd fc63 bl 8004edc 8007616: e005 b.n 8007624 else BSP_LCD_DisplayStringAt(95, 60, "IEPE", LEFT_MODE); 8007618: 2303 movs r3, #3 800761a: 4a42 ldr r2, [pc, #264] ; (8007724 ) 800761c: 213c movs r1, #60 ; 0x3c 800761e: 205f movs r0, #95 ; 0x5f 8007620: f7fd fc5c bl 8004edc if(pardata.amplif[Ch2].IIN == CHARGE) 8007624: 4b2e ldr r3, [pc, #184] ; (80076e0 ) 8007626: 8c1b ldrh r3, [r3, #32] 8007628: b29b uxth r3, r3 800762a: 2b00 cmp r3, #0 800762c: d106 bne.n 800763c BSP_LCD_DisplayStringAt(95, 80, "PE", LEFT_MODE); 800762e: 2303 movs r3, #3 8007630: 4a3b ldr r2, [pc, #236] ; (8007720 ) 8007632: 2150 movs r1, #80 ; 0x50 8007634: 205f movs r0, #95 ; 0x5f 8007636: f7fd fc51 bl 8004edc 800763a: e005 b.n 8007648 else BSP_LCD_DisplayStringAt(95, 80, "IEPE", LEFT_MODE); 800763c: 2303 movs r3, #3 800763e: 4a39 ldr r2, [pc, #228] ; (8007724 ) 8007640: 2150 movs r1, #80 ; 0x50 8007642: 205f movs r0, #95 ; 0x5f 8007644: f7fd fc4a bl 8004edc if(pardata.amplif[Ch3].IIN == CHARGE) 8007648: 4b25 ldr r3, [pc, #148] ; (80076e0 ) 800764a: f8b3 3040 ldrh.w r3, [r3, #64] ; 0x40 800764e: b29b uxth r3, r3 8007650: 2b00 cmp r3, #0 8007652: d106 bne.n 8007662 BSP_LCD_DisplayStringAt(95, 100, "PE", LEFT_MODE); 8007654: 2303 movs r3, #3 8007656: 4a32 ldr r2, [pc, #200] ; (8007720 ) 8007658: 2164 movs r1, #100 ; 0x64 800765a: 205f movs r0, #95 ; 0x5f 800765c: f7fd fc3e bl 8004edc 8007660: e005 b.n 800766e else BSP_LCD_DisplayStringAt(95, 100, "IEPE", LEFT_MODE); 8007662: 2303 movs r3, #3 8007664: 4a2f ldr r2, [pc, #188] ; (8007724 ) 8007666: 2164 movs r1, #100 ; 0x64 8007668: 205f movs r0, #95 ; 0x5f 800766a: f7fd fc37 bl 8004edc if(pardata.amplif[Ch4].IIN == CHARGE) 800766e: 4b1c ldr r3, [pc, #112] ; (80076e0 ) 8007670: f8b3 3060 ldrh.w r3, [r3, #96] ; 0x60 8007674: b29b uxth r3, r3 8007676: 2b00 cmp r3, #0 8007678: d106 bne.n 8007688 BSP_LCD_DisplayStringAt(95, 120, "PE", LEFT_MODE); 800767a: 2303 movs r3, #3 800767c: 4a28 ldr r2, [pc, #160] ; (8007720 ) 800767e: 2178 movs r1, #120 ; 0x78 8007680: 205f movs r0, #95 ; 0x5f 8007682: f7fd fc2b bl 8004edc 8007686: e005 b.n 8007694 else BSP_LCD_DisplayStringAt(95, 120, "IEPE", LEFT_MODE); 8007688: 2303 movs r3, #3 800768a: 4a26 ldr r2, [pc, #152] ; (8007724 ) 800768c: 2178 movs r1, #120 ; 0x78 800768e: 205f movs r0, #95 ; 0x5f 8007690: f7fd fc24 bl 8004edc LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 8007694: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007698: f04f 30ff mov.w r0, #4294967295 800769c: f7fd fb58 bl 8004d50 if(pardata.LANG == RUS) 80076a0: 4b0f ldr r3, [pc, #60] ; (80076e0 ) 80076a2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80076a6: b29b uxth r3, r3 80076a8: 2b00 cmp r3, #0 80076aa: d145 bne.n 8007738 { BSP_LCD_DisplayStringAt(20, 60, "КАНАЛ 1:", LEFT_MODE); 80076ac: 2303 movs r3, #3 80076ae: 4a1e ldr r2, [pc, #120] ; (8007728 ) 80076b0: 213c movs r1, #60 ; 0x3c 80076b2: 2014 movs r0, #20 80076b4: f7fd fc12 bl 8004edc BSP_LCD_DisplayStringAt(20, 80, "КАНАЛ 2:", LEFT_MODE); 80076b8: 2303 movs r3, #3 80076ba: 4a1c ldr r2, [pc, #112] ; (800772c ) 80076bc: 2150 movs r1, #80 ; 0x50 80076be: 2014 movs r0, #20 80076c0: f7fd fc0c bl 8004edc BSP_LCD_DisplayStringAt(20, 100, "КАНАЛ 3:", LEFT_MODE); 80076c4: 2303 movs r3, #3 80076c6: 4a1a ldr r2, [pc, #104] ; (8007730 ) 80076c8: 2164 movs r1, #100 ; 0x64 80076ca: 2014 movs r0, #20 80076cc: f7fd fc06 bl 8004edc BSP_LCD_DisplayStringAt(20, 120, "КАНАЛ 4:", LEFT_MODE); 80076d0: 2303 movs r3, #3 80076d2: 4a18 ldr r2, [pc, #96] ; (8007734 ) 80076d4: 2178 movs r1, #120 ; 0x78 80076d6: 2014 movs r0, #20 80076d8: f7fd fc00 bl 8004edc 80076dc: e044 b.n 8007768 80076de: bf00 nop 80076e0: 2006bca8 .word 0x2006bca8 80076e4: 47c35000 .word 0x47c35000 80076e8: 47c34f80 .word 0x47c34f80 80076ec: 0001869f .word 0x0001869f 80076f0: d1b71759 .word 0xd1b71759 80076f4: 10624dd3 .word 0x10624dd3 80076f8: 51eb851f .word 0x51eb851f 80076fc: cccccccd .word 0xcccccccd 8007700: 42c80000 .word 0x42c80000 8007704: 447a0000 .word 0x447a0000 8007708: 461c4000 .word 0x461c4000 800770c: 20020000 .word 0x20020000 8007710: ff808080 .word 0xff808080 8007714: 080180d0 .word 0x080180d0 8007718: 080180dc .word 0x080180dc 800771c: ffffa500 .word 0xffffa500 8007720: 080180e4 .word 0x080180e4 8007724: 080180e8 .word 0x080180e8 8007728: 080180f0 .word 0x080180f0 800772c: 080180fc .word 0x080180fc 8007730: 08018108 .word 0x08018108 8007734: 08018114 .word 0x08018114 } else { BSP_LCD_DisplayStringAt(20, 60, "CHANNEL 1:", LEFT_MODE); 8007738: 2303 movs r3, #3 800773a: 4abe ldr r2, [pc, #760] ; (8007a34 ) 800773c: 213c movs r1, #60 ; 0x3c 800773e: 2014 movs r0, #20 8007740: f7fd fbcc bl 8004edc BSP_LCD_DisplayStringAt(20, 80, "CHANNEL 2:", LEFT_MODE); 8007744: 2303 movs r3, #3 8007746: 4abc ldr r2, [pc, #752] ; (8007a38 ) 8007748: 2150 movs r1, #80 ; 0x50 800774a: 2014 movs r0, #20 800774c: f7fd fbc6 bl 8004edc BSP_LCD_DisplayStringAt(20, 100, "CHANNEL 3:", LEFT_MODE); 8007750: 2303 movs r3, #3 8007752: 4aba ldr r2, [pc, #744] ; (8007a3c ) 8007754: 2164 movs r1, #100 ; 0x64 8007756: 2014 movs r0, #20 8007758: f7fd fbc0 bl 8004edc BSP_LCD_DisplayStringAt(20, 120, "CHANNEL 4:", LEFT_MODE); 800775c: 2303 movs r3, #3 800775e: 4ab8 ldr r2, [pc, #736] ; (8007a40 ) 8007760: 2178 movs r1, #120 ; 0x78 8007762: 2014 movs r0, #20 8007764: f7fd fbba bl 8004edc } if(menupos != Back) 8007768: 4bb6 ldr r3, [pc, #728] ; (8007a44 ) 800776a: 781b ldrb r3, [r3, #0] 800776c: b2db uxtb r3, r3 800776e: 2bff cmp r3, #255 ; 0xff 8007770: d006 beq.n 8007780 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 8007772: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007776: f04f 30ff mov.w r0, #4294967295 800777a: f7fd fae9 bl 8004d50 800777e: e005 b.n 800778c else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8007780: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007784: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8007788: f7fd fae2 bl 8004d50 BSP_LCD_DisplayStringAt(20, 40, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //Назад 800778c: 4bae ldr r3, [pc, #696] ; (8007a48 ) 800778e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007792: b29b uxth r3, r3 8007794: 4aad ldr r2, [pc, #692] ; (8007a4c ) 8007796: 011b lsls r3, r3, #4 8007798: 4413 add r3, r2 800779a: 681a ldr r2, [r3, #0] 800779c: 2303 movs r3, #3 800779e: 2128 movs r1, #40 ; 0x28 80077a0: 2014 movs r0, #20 80077a2: f7fd fb9b bl 8004edc //todo if(menupos == Back) 80077a6: 4ba7 ldr r3, [pc, #668] ; (8007a44 ) 80077a8: 781b ldrb r3, [r3, #0] 80077aa: b2db uxtb r3, r3 80077ac: 2bff cmp r3, #255 ; 0xff 80077ae: f040 8083 bne.w 80078b8 { LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 80077b2: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80077b6: 48a6 ldr r0, [pc, #664] ; (8007a50 ) 80077b8: f7fd faca bl 8004d50 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 80077bc: f507 728e add.w r2, r7, #284 ; 0x11c 80077c0: 2303 movs r3, #3 80077c2: 213c movs r1, #60 ; 0x3c 80077c4: 208c movs r0, #140 ; 0x8c 80077c6: f7fd fb89 bl 8004edc BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 80077ca: f107 02e0 add.w r2, r7, #224 ; 0xe0 80077ce: 2303 movs r3, #3 80077d0: 2150 movs r1, #80 ; 0x50 80077d2: 208c movs r0, #140 ; 0x8c 80077d4: f7fd fb82 bl 8004edc BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 80077d8: f107 02a4 add.w r2, r7, #164 ; 0xa4 80077dc: 2303 movs r3, #3 80077de: 2164 movs r1, #100 ; 0x64 80077e0: 208c movs r0, #140 ; 0x8c 80077e2: f7fd fb7b bl 8004edc BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 80077e6: f107 0268 add.w r2, r7, #104 ; 0x68 80077ea: 2303 movs r3, #3 80077ec: 2178 movs r1, #120 ; 0x78 80077ee: 208c movs r0, #140 ; 0x8c 80077f0: f7fd fb74 bl 8004edc BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 80077f4: 4b94 ldr r3, [pc, #592] ; (8007a48 ) 80077f6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80077fa: b29b uxth r3, r3 80077fc: 4618 mov r0, r3 80077fe: 4b92 ldr r3, [pc, #584] ; (8007a48 ) 8007800: 8a5b ldrh r3, [r3, #18] 8007802: b29b uxth r3, r3 8007804: 005b lsls r3, r3, #1 8007806: 4a90 ldr r2, [pc, #576] ; (8007a48 ) 8007808: 8812 ldrh r2, [r2, #0] 800780a: b292 uxth r2, r2 800780c: 4413 add r3, r2 800780e: 4991 ldr r1, [pc, #580] ; (8007a54 ) 8007810: 0102 lsls r2, r0, #4 8007812: 4413 add r3, r2 8007814: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007818: 2303 movs r3, #3 800781a: 213c movs r1, #60 ; 0x3c 800781c: 20dc movs r0, #220 ; 0xdc 800781e: f7fd fb5d bl 8004edc BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 8007822: 4b89 ldr r3, [pc, #548] ; (8007a48 ) 8007824: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007828: b29b uxth r3, r3 800782a: 4618 mov r0, r3 800782c: 4b86 ldr r3, [pc, #536] ; (8007a48 ) 800782e: 8e5b ldrh r3, [r3, #50] ; 0x32 8007830: b29b uxth r3, r3 8007832: 005b lsls r3, r3, #1 8007834: 4a84 ldr r2, [pc, #528] ; (8007a48 ) 8007836: 8c12 ldrh r2, [r2, #32] 8007838: b292 uxth r2, r2 800783a: 4413 add r3, r2 800783c: 4985 ldr r1, [pc, #532] ; (8007a54 ) 800783e: 0102 lsls r2, r0, #4 8007840: 4413 add r3, r2 8007842: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007846: 2303 movs r3, #3 8007848: 2150 movs r1, #80 ; 0x50 800784a: 20dc movs r0, #220 ; 0xdc 800784c: f7fd fb46 bl 8004edc BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 8007850: 4b7d ldr r3, [pc, #500] ; (8007a48 ) 8007852: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007856: b29b uxth r3, r3 8007858: 4618 mov r0, r3 800785a: 4b7b ldr r3, [pc, #492] ; (8007a48 ) 800785c: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8007860: b29b uxth r3, r3 8007862: 005b lsls r3, r3, #1 8007864: 4a78 ldr r2, [pc, #480] ; (8007a48 ) 8007866: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 800786a: b292 uxth r2, r2 800786c: 4413 add r3, r2 800786e: 4979 ldr r1, [pc, #484] ; (8007a54 ) 8007870: 0102 lsls r2, r0, #4 8007872: 4413 add r3, r2 8007874: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007878: 2303 movs r3, #3 800787a: 2164 movs r1, #100 ; 0x64 800787c: 20dc movs r0, #220 ; 0xdc 800787e: f7fd fb2d bl 8004edc BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 8007882: 4b71 ldr r3, [pc, #452] ; (8007a48 ) 8007884: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007888: b29b uxth r3, r3 800788a: 4618 mov r0, r3 800788c: 4b6e ldr r3, [pc, #440] ; (8007a48 ) 800788e: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 8007892: b29b uxth r3, r3 8007894: 005b lsls r3, r3, #1 8007896: 4a6c ldr r2, [pc, #432] ; (8007a48 ) 8007898: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 800789c: b292 uxth r2, r2 800789e: 4413 add r3, r2 80078a0: 496c ldr r1, [pc, #432] ; (8007a54 ) 80078a2: 0102 lsls r2, r0, #4 80078a4: 4413 add r3, r2 80078a6: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80078aa: 2303 movs r3, #3 80078ac: 2178 movs r1, #120 ; 0x78 80078ae: 20dc movs r0, #220 ; 0xdc 80078b0: f7fd fb14 bl 8004edc } } } } break; 80078b4: f006 b852 b.w 800d95c if(menupos == Sens_1) 80078b8: 4b62 ldr r3, [pc, #392] ; (8007a44 ) 80078ba: 781b ldrb r3, [r3, #0] 80078bc: b2db uxtb r3, r3 80078be: 2b00 cmp r3, #0 80078c0: f040 809a bne.w 80079f8 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 80078c4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80078c8: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 80078cc: f7fd fa40 bl 8004d50 if(focused) 80078d0: 4b61 ldr r3, [pc, #388] ; (8007a58 ) 80078d2: 781b ldrb r3, [r3, #0] 80078d4: b2db uxtb r3, r3 80078d6: 2b00 cmp r3, #0 80078d8: d00b beq.n 80078f2 if(blk) 80078da: 4b60 ldr r3, [pc, #384] ; (8007a5c ) 80078dc: 681b ldr r3, [r3, #0] 80078de: 2b00 cmp r3, #0 80078e0: d00e beq.n 8007900 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 80078e2: f507 728e add.w r2, r7, #284 ; 0x11c 80078e6: 2303 movs r3, #3 80078e8: 213c movs r1, #60 ; 0x3c 80078ea: 208c movs r0, #140 ; 0x8c 80078ec: f7fd faf6 bl 8004edc 80078f0: e006 b.n 8007900 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 80078f2: f507 728e add.w r2, r7, #284 ; 0x11c 80078f6: 2303 movs r3, #3 80078f8: 213c movs r1, #60 ; 0x3c 80078fa: 208c movs r0, #140 ; 0x8c 80078fc: f7fd faee bl 8004edc LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8007900: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007904: 4852 ldr r0, [pc, #328] ; (8007a50 ) 8007906: f7fd fa23 bl 8004d50 BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 800790a: f107 02e0 add.w r2, r7, #224 ; 0xe0 800790e: 2303 movs r3, #3 8007910: 2150 movs r1, #80 ; 0x50 8007912: 208c movs r0, #140 ; 0x8c 8007914: f7fd fae2 bl 8004edc BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 8007918: f107 02a4 add.w r2, r7, #164 ; 0xa4 800791c: 2303 movs r3, #3 800791e: 2164 movs r1, #100 ; 0x64 8007920: 208c movs r0, #140 ; 0x8c 8007922: f7fd fadb bl 8004edc BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 8007926: f107 0268 add.w r2, r7, #104 ; 0x68 800792a: 2303 movs r3, #3 800792c: 2178 movs r1, #120 ; 0x78 800792e: 208c movs r0, #140 ; 0x8c 8007930: f7fd fad4 bl 8004edc BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 8007934: 4b44 ldr r3, [pc, #272] ; (8007a48 ) 8007936: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800793a: b29b uxth r3, r3 800793c: 4618 mov r0, r3 800793e: 4b42 ldr r3, [pc, #264] ; (8007a48 ) 8007940: 8a5b ldrh r3, [r3, #18] 8007942: b29b uxth r3, r3 8007944: 005b lsls r3, r3, #1 8007946: 4a40 ldr r2, [pc, #256] ; (8007a48 ) 8007948: 8812 ldrh r2, [r2, #0] 800794a: b292 uxth r2, r2 800794c: 4413 add r3, r2 800794e: 4941 ldr r1, [pc, #260] ; (8007a54 ) 8007950: 0102 lsls r2, r0, #4 8007952: 4413 add r3, r2 8007954: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007958: 2303 movs r3, #3 800795a: 213c movs r1, #60 ; 0x3c 800795c: 20dc movs r0, #220 ; 0xdc 800795e: f7fd fabd bl 8004edc BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 8007962: 4b39 ldr r3, [pc, #228] ; (8007a48 ) 8007964: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007968: b29b uxth r3, r3 800796a: 4618 mov r0, r3 800796c: 4b36 ldr r3, [pc, #216] ; (8007a48 ) 800796e: 8e5b ldrh r3, [r3, #50] ; 0x32 8007970: b29b uxth r3, r3 8007972: 005b lsls r3, r3, #1 8007974: 4a34 ldr r2, [pc, #208] ; (8007a48 ) 8007976: 8c12 ldrh r2, [r2, #32] 8007978: b292 uxth r2, r2 800797a: 4413 add r3, r2 800797c: 4935 ldr r1, [pc, #212] ; (8007a54 ) 800797e: 0102 lsls r2, r0, #4 8007980: 4413 add r3, r2 8007982: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007986: 2303 movs r3, #3 8007988: 2150 movs r1, #80 ; 0x50 800798a: 20dc movs r0, #220 ; 0xdc 800798c: f7fd faa6 bl 8004edc BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 8007990: 4b2d ldr r3, [pc, #180] ; (8007a48 ) 8007992: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007996: b29b uxth r3, r3 8007998: 4618 mov r0, r3 800799a: 4b2b ldr r3, [pc, #172] ; (8007a48 ) 800799c: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 80079a0: b29b uxth r3, r3 80079a2: 005b lsls r3, r3, #1 80079a4: 4a28 ldr r2, [pc, #160] ; (8007a48 ) 80079a6: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 80079aa: b292 uxth r2, r2 80079ac: 4413 add r3, r2 80079ae: 4929 ldr r1, [pc, #164] ; (8007a54 ) 80079b0: 0102 lsls r2, r0, #4 80079b2: 4413 add r3, r2 80079b4: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80079b8: 2303 movs r3, #3 80079ba: 2164 movs r1, #100 ; 0x64 80079bc: 20dc movs r0, #220 ; 0xdc 80079be: f7fd fa8d bl 8004edc BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 80079c2: 4b21 ldr r3, [pc, #132] ; (8007a48 ) 80079c4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80079c8: b29b uxth r3, r3 80079ca: 4618 mov r0, r3 80079cc: 4b1e ldr r3, [pc, #120] ; (8007a48 ) 80079ce: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 80079d2: b29b uxth r3, r3 80079d4: 005b lsls r3, r3, #1 80079d6: 4a1c ldr r2, [pc, #112] ; (8007a48 ) 80079d8: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 80079dc: b292 uxth r2, r2 80079de: 4413 add r3, r2 80079e0: 491c ldr r1, [pc, #112] ; (8007a54 ) 80079e2: 0102 lsls r2, r0, #4 80079e4: 4413 add r3, r2 80079e6: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80079ea: 2303 movs r3, #3 80079ec: 2178 movs r1, #120 ; 0x78 80079ee: 20dc movs r0, #220 ; 0xdc 80079f0: f7fd fa74 bl 8004edc break; 80079f4: f005 bfb2 b.w 800d95c if(menupos == Sens_2) 80079f8: 4b12 ldr r3, [pc, #72] ; (8007a44 ) 80079fa: 781b ldrb r3, [r3, #0] 80079fc: b2db uxtb r3, r3 80079fe: 2b08 cmp r3, #8 8007a00: f040 80b1 bne.w 8007b66 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8007a04: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007a08: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8007a0c: f7fd f9a0 bl 8004d50 if(focused) 8007a10: 4b11 ldr r3, [pc, #68] ; (8007a58 ) 8007a12: 781b ldrb r3, [r3, #0] 8007a14: b2db uxtb r3, r3 8007a16: 2b00 cmp r3, #0 8007a18: d022 beq.n 8007a60 if(blk) 8007a1a: 4b10 ldr r3, [pc, #64] ; (8007a5c ) 8007a1c: 681b ldr r3, [r3, #0] 8007a1e: 2b00 cmp r3, #0 8007a20: d025 beq.n 8007a6e BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 8007a22: f107 02e0 add.w r2, r7, #224 ; 0xe0 8007a26: 2303 movs r3, #3 8007a28: 2150 movs r1, #80 ; 0x50 8007a2a: 208c movs r0, #140 ; 0x8c 8007a2c: f7fd fa56 bl 8004edc 8007a30: e01d b.n 8007a6e 8007a32: bf00 nop 8007a34: 08018120 .word 0x08018120 8007a38: 0801812c .word 0x0801812c 8007a3c: 08018138 .word 0x08018138 8007a40: 08018144 .word 0x08018144 8007a44: 20020010 .word 0x20020010 8007a48: 2006bca8 .word 0x2006bca8 8007a4c: 20020034 .word 0x20020034 8007a50: ffd8aa57 .word 0xffd8aa57 8007a54: 200200bc .word 0x200200bc 8007a58: 200209e4 .word 0x200209e4 8007a5c: 2006ba78 .word 0x2006ba78 BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 8007a60: f107 02e0 add.w r2, r7, #224 ; 0xe0 8007a64: 2303 movs r3, #3 8007a66: 2150 movs r1, #80 ; 0x50 8007a68: 208c movs r0, #140 ; 0x8c 8007a6a: f7fd fa37 bl 8004edc LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8007a6e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007a72: 489b ldr r0, [pc, #620] ; (8007ce0 ) 8007a74: f7fd f96c bl 8004d50 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 8007a78: f507 728e add.w r2, r7, #284 ; 0x11c 8007a7c: 2303 movs r3, #3 8007a7e: 213c movs r1, #60 ; 0x3c 8007a80: 208c movs r0, #140 ; 0x8c 8007a82: f7fd fa2b bl 8004edc BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 8007a86: f107 02a4 add.w r2, r7, #164 ; 0xa4 8007a8a: 2303 movs r3, #3 8007a8c: 2164 movs r1, #100 ; 0x64 8007a8e: 208c movs r0, #140 ; 0x8c 8007a90: f7fd fa24 bl 8004edc BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 8007a94: f107 0268 add.w r2, r7, #104 ; 0x68 8007a98: 2303 movs r3, #3 8007a9a: 2178 movs r1, #120 ; 0x78 8007a9c: 208c movs r0, #140 ; 0x8c 8007a9e: f7fd fa1d bl 8004edc BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 8007aa2: 4b90 ldr r3, [pc, #576] ; (8007ce4 ) 8007aa4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007aa8: b29b uxth r3, r3 8007aaa: 4618 mov r0, r3 8007aac: 4b8d ldr r3, [pc, #564] ; (8007ce4 ) 8007aae: 8a5b ldrh r3, [r3, #18] 8007ab0: b29b uxth r3, r3 8007ab2: 005b lsls r3, r3, #1 8007ab4: 4a8b ldr r2, [pc, #556] ; (8007ce4 ) 8007ab6: 8812 ldrh r2, [r2, #0] 8007ab8: b292 uxth r2, r2 8007aba: 4413 add r3, r2 8007abc: 498a ldr r1, [pc, #552] ; (8007ce8 ) 8007abe: 0102 lsls r2, r0, #4 8007ac0: 4413 add r3, r2 8007ac2: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007ac6: 2303 movs r3, #3 8007ac8: 213c movs r1, #60 ; 0x3c 8007aca: 20dc movs r0, #220 ; 0xdc 8007acc: f7fd fa06 bl 8004edc BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 8007ad0: 4b84 ldr r3, [pc, #528] ; (8007ce4 ) 8007ad2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007ad6: b29b uxth r3, r3 8007ad8: 4618 mov r0, r3 8007ada: 4b82 ldr r3, [pc, #520] ; (8007ce4 ) 8007adc: 8e5b ldrh r3, [r3, #50] ; 0x32 8007ade: b29b uxth r3, r3 8007ae0: 005b lsls r3, r3, #1 8007ae2: 4a80 ldr r2, [pc, #512] ; (8007ce4 ) 8007ae4: 8c12 ldrh r2, [r2, #32] 8007ae6: b292 uxth r2, r2 8007ae8: 4413 add r3, r2 8007aea: 497f ldr r1, [pc, #508] ; (8007ce8 ) 8007aec: 0102 lsls r2, r0, #4 8007aee: 4413 add r3, r2 8007af0: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007af4: 2303 movs r3, #3 8007af6: 2150 movs r1, #80 ; 0x50 8007af8: 20dc movs r0, #220 ; 0xdc 8007afa: f7fd f9ef bl 8004edc BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 8007afe: 4b79 ldr r3, [pc, #484] ; (8007ce4 ) 8007b00: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007b04: b29b uxth r3, r3 8007b06: 4618 mov r0, r3 8007b08: 4b76 ldr r3, [pc, #472] ; (8007ce4 ) 8007b0a: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8007b0e: b29b uxth r3, r3 8007b10: 005b lsls r3, r3, #1 8007b12: 4a74 ldr r2, [pc, #464] ; (8007ce4 ) 8007b14: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 8007b18: b292 uxth r2, r2 8007b1a: 4413 add r3, r2 8007b1c: 4972 ldr r1, [pc, #456] ; (8007ce8 ) 8007b1e: 0102 lsls r2, r0, #4 8007b20: 4413 add r3, r2 8007b22: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007b26: 2303 movs r3, #3 8007b28: 2164 movs r1, #100 ; 0x64 8007b2a: 20dc movs r0, #220 ; 0xdc 8007b2c: f7fd f9d6 bl 8004edc BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 8007b30: 4b6c ldr r3, [pc, #432] ; (8007ce4 ) 8007b32: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007b36: b29b uxth r3, r3 8007b38: 4618 mov r0, r3 8007b3a: 4b6a ldr r3, [pc, #424] ; (8007ce4 ) 8007b3c: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 8007b40: b29b uxth r3, r3 8007b42: 005b lsls r3, r3, #1 8007b44: 4a67 ldr r2, [pc, #412] ; (8007ce4 ) 8007b46: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 8007b4a: b292 uxth r2, r2 8007b4c: 4413 add r3, r2 8007b4e: 4966 ldr r1, [pc, #408] ; (8007ce8 ) 8007b50: 0102 lsls r2, r0, #4 8007b52: 4413 add r3, r2 8007b54: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007b58: 2303 movs r3, #3 8007b5a: 2178 movs r1, #120 ; 0x78 8007b5c: 20dc movs r0, #220 ; 0xdc 8007b5e: f7fd f9bd bl 8004edc break; 8007b62: f005 befb b.w 800d95c if(menupos == Sens_3) 8007b66: 4b61 ldr r3, [pc, #388] ; (8007cec ) 8007b68: 781b ldrb r3, [r3, #0] 8007b6a: b2db uxtb r3, r3 8007b6c: 2b10 cmp r3, #16 8007b6e: f040 809a bne.w 8007ca6 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8007b72: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007b76: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8007b7a: f7fd f8e9 bl 8004d50 if(focused) 8007b7e: 4b5c ldr r3, [pc, #368] ; (8007cf0 ) 8007b80: 781b ldrb r3, [r3, #0] 8007b82: b2db uxtb r3, r3 8007b84: 2b00 cmp r3, #0 8007b86: d00b beq.n 8007ba0 if(blk) 8007b88: 4b5a ldr r3, [pc, #360] ; (8007cf4 ) 8007b8a: 681b ldr r3, [r3, #0] 8007b8c: 2b00 cmp r3, #0 8007b8e: d00e beq.n 8007bae BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 8007b90: f107 02a4 add.w r2, r7, #164 ; 0xa4 8007b94: 2303 movs r3, #3 8007b96: 2164 movs r1, #100 ; 0x64 8007b98: 208c movs r0, #140 ; 0x8c 8007b9a: f7fd f99f bl 8004edc 8007b9e: e006 b.n 8007bae BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 8007ba0: f107 02a4 add.w r2, r7, #164 ; 0xa4 8007ba4: 2303 movs r3, #3 8007ba6: 2164 movs r1, #100 ; 0x64 8007ba8: 208c movs r0, #140 ; 0x8c 8007baa: f7fd f997 bl 8004edc LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8007bae: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007bb2: 484b ldr r0, [pc, #300] ; (8007ce0 ) 8007bb4: f7fd f8cc bl 8004d50 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 8007bb8: f507 728e add.w r2, r7, #284 ; 0x11c 8007bbc: 2303 movs r3, #3 8007bbe: 213c movs r1, #60 ; 0x3c 8007bc0: 208c movs r0, #140 ; 0x8c 8007bc2: f7fd f98b bl 8004edc BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 8007bc6: f107 02e0 add.w r2, r7, #224 ; 0xe0 8007bca: 2303 movs r3, #3 8007bcc: 2150 movs r1, #80 ; 0x50 8007bce: 208c movs r0, #140 ; 0x8c 8007bd0: f7fd f984 bl 8004edc BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 8007bd4: f107 0268 add.w r2, r7, #104 ; 0x68 8007bd8: 2303 movs r3, #3 8007bda: 2178 movs r1, #120 ; 0x78 8007bdc: 208c movs r0, #140 ; 0x8c 8007bde: f7fd f97d bl 8004edc BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 8007be2: 4b40 ldr r3, [pc, #256] ; (8007ce4 ) 8007be4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007be8: b29b uxth r3, r3 8007bea: 4618 mov r0, r3 8007bec: 4b3d ldr r3, [pc, #244] ; (8007ce4 ) 8007bee: 8a5b ldrh r3, [r3, #18] 8007bf0: b29b uxth r3, r3 8007bf2: 005b lsls r3, r3, #1 8007bf4: 4a3b ldr r2, [pc, #236] ; (8007ce4 ) 8007bf6: 8812 ldrh r2, [r2, #0] 8007bf8: b292 uxth r2, r2 8007bfa: 4413 add r3, r2 8007bfc: 493a ldr r1, [pc, #232] ; (8007ce8 ) 8007bfe: 0102 lsls r2, r0, #4 8007c00: 4413 add r3, r2 8007c02: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007c06: 2303 movs r3, #3 8007c08: 213c movs r1, #60 ; 0x3c 8007c0a: 20dc movs r0, #220 ; 0xdc 8007c0c: f7fd f966 bl 8004edc BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 8007c10: 4b34 ldr r3, [pc, #208] ; (8007ce4 ) 8007c12: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007c16: b29b uxth r3, r3 8007c18: 4618 mov r0, r3 8007c1a: 4b32 ldr r3, [pc, #200] ; (8007ce4 ) 8007c1c: 8e5b ldrh r3, [r3, #50] ; 0x32 8007c1e: b29b uxth r3, r3 8007c20: 005b lsls r3, r3, #1 8007c22: 4a30 ldr r2, [pc, #192] ; (8007ce4 ) 8007c24: 8c12 ldrh r2, [r2, #32] 8007c26: b292 uxth r2, r2 8007c28: 4413 add r3, r2 8007c2a: 492f ldr r1, [pc, #188] ; (8007ce8 ) 8007c2c: 0102 lsls r2, r0, #4 8007c2e: 4413 add r3, r2 8007c30: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007c34: 2303 movs r3, #3 8007c36: 2150 movs r1, #80 ; 0x50 8007c38: 20dc movs r0, #220 ; 0xdc 8007c3a: f7fd f94f bl 8004edc BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 8007c3e: 4b29 ldr r3, [pc, #164] ; (8007ce4 ) 8007c40: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007c44: b29b uxth r3, r3 8007c46: 4618 mov r0, r3 8007c48: 4b26 ldr r3, [pc, #152] ; (8007ce4 ) 8007c4a: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8007c4e: b29b uxth r3, r3 8007c50: 005b lsls r3, r3, #1 8007c52: 4a24 ldr r2, [pc, #144] ; (8007ce4 ) 8007c54: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 8007c58: b292 uxth r2, r2 8007c5a: 4413 add r3, r2 8007c5c: 4922 ldr r1, [pc, #136] ; (8007ce8 ) 8007c5e: 0102 lsls r2, r0, #4 8007c60: 4413 add r3, r2 8007c62: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007c66: 2303 movs r3, #3 8007c68: 2164 movs r1, #100 ; 0x64 8007c6a: 20dc movs r0, #220 ; 0xdc 8007c6c: f7fd f936 bl 8004edc BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 8007c70: 4b1c ldr r3, [pc, #112] ; (8007ce4 ) 8007c72: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007c76: b29b uxth r3, r3 8007c78: 4618 mov r0, r3 8007c7a: 4b1a ldr r3, [pc, #104] ; (8007ce4 ) 8007c7c: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 8007c80: b29b uxth r3, r3 8007c82: 005b lsls r3, r3, #1 8007c84: 4a17 ldr r2, [pc, #92] ; (8007ce4 ) 8007c86: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 8007c8a: b292 uxth r2, r2 8007c8c: 4413 add r3, r2 8007c8e: 4916 ldr r1, [pc, #88] ; (8007ce8 ) 8007c90: 0102 lsls r2, r0, #4 8007c92: 4413 add r3, r2 8007c94: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007c98: 2303 movs r3, #3 8007c9a: 2178 movs r1, #120 ; 0x78 8007c9c: 20dc movs r0, #220 ; 0xdc 8007c9e: f7fd f91d bl 8004edc break; 8007ca2: f005 be5b b.w 800d95c if(menupos == Sens_4) 8007ca6: 4b11 ldr r3, [pc, #68] ; (8007cec ) 8007ca8: 781b ldrb r3, [r3, #0] 8007caa: b2db uxtb r3, r3 8007cac: 2b18 cmp r3, #24 8007cae: f040 80a6 bne.w 8007dfe LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8007cb2: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007cb6: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8007cba: f7fd f849 bl 8004d50 if(focused) 8007cbe: 4b0c ldr r3, [pc, #48] ; (8007cf0 ) 8007cc0: 781b ldrb r3, [r3, #0] 8007cc2: b2db uxtb r3, r3 8007cc4: 2b00 cmp r3, #0 8007cc6: d017 beq.n 8007cf8 if(blk) 8007cc8: 4b0a ldr r3, [pc, #40] ; (8007cf4 ) 8007cca: 681b ldr r3, [r3, #0] 8007ccc: 2b00 cmp r3, #0 8007cce: d01a beq.n 8007d06 BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 8007cd0: f107 0268 add.w r2, r7, #104 ; 0x68 8007cd4: 2303 movs r3, #3 8007cd6: 2178 movs r1, #120 ; 0x78 8007cd8: 208c movs r0, #140 ; 0x8c 8007cda: f7fd f8ff bl 8004edc 8007cde: e012 b.n 8007d06 8007ce0: ffd8aa57 .word 0xffd8aa57 8007ce4: 2006bca8 .word 0x2006bca8 8007ce8: 200200bc .word 0x200200bc 8007cec: 20020010 .word 0x20020010 8007cf0: 200209e4 .word 0x200209e4 8007cf4: 2006ba78 .word 0x2006ba78 BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 8007cf8: f107 0268 add.w r2, r7, #104 ; 0x68 8007cfc: 2303 movs r3, #3 8007cfe: 2178 movs r1, #120 ; 0x78 8007d00: 208c movs r0, #140 ; 0x8c 8007d02: f7fd f8eb bl 8004edc LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8007d06: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007d0a: 48ab ldr r0, [pc, #684] ; (8007fb8 ) 8007d0c: f7fd f820 bl 8004d50 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 8007d10: f507 728e add.w r2, r7, #284 ; 0x11c 8007d14: 2303 movs r3, #3 8007d16: 213c movs r1, #60 ; 0x3c 8007d18: 208c movs r0, #140 ; 0x8c 8007d1a: f7fd f8df bl 8004edc BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 8007d1e: f107 02e0 add.w r2, r7, #224 ; 0xe0 8007d22: 2303 movs r3, #3 8007d24: 2150 movs r1, #80 ; 0x50 8007d26: 208c movs r0, #140 ; 0x8c 8007d28: f7fd f8d8 bl 8004edc BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 8007d2c: f107 02a4 add.w r2, r7, #164 ; 0xa4 8007d30: 2303 movs r3, #3 8007d32: 2164 movs r1, #100 ; 0x64 8007d34: 208c movs r0, #140 ; 0x8c 8007d36: f7fd f8d1 bl 8004edc BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 8007d3a: 4ba0 ldr r3, [pc, #640] ; (8007fbc ) 8007d3c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007d40: b29b uxth r3, r3 8007d42: 4618 mov r0, r3 8007d44: 4b9d ldr r3, [pc, #628] ; (8007fbc ) 8007d46: 8a5b ldrh r3, [r3, #18] 8007d48: b29b uxth r3, r3 8007d4a: 005b lsls r3, r3, #1 8007d4c: 4a9b ldr r2, [pc, #620] ; (8007fbc ) 8007d4e: 8812 ldrh r2, [r2, #0] 8007d50: b292 uxth r2, r2 8007d52: 4413 add r3, r2 8007d54: 499a ldr r1, [pc, #616] ; (8007fc0 ) 8007d56: 0102 lsls r2, r0, #4 8007d58: 4413 add r3, r2 8007d5a: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007d5e: 2303 movs r3, #3 8007d60: 213c movs r1, #60 ; 0x3c 8007d62: 20dc movs r0, #220 ; 0xdc 8007d64: f7fd f8ba bl 8004edc BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 8007d68: 4b94 ldr r3, [pc, #592] ; (8007fbc ) 8007d6a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007d6e: b29b uxth r3, r3 8007d70: 4618 mov r0, r3 8007d72: 4b92 ldr r3, [pc, #584] ; (8007fbc ) 8007d74: 8e5b ldrh r3, [r3, #50] ; 0x32 8007d76: b29b uxth r3, r3 8007d78: 005b lsls r3, r3, #1 8007d7a: 4a90 ldr r2, [pc, #576] ; (8007fbc ) 8007d7c: 8c12 ldrh r2, [r2, #32] 8007d7e: b292 uxth r2, r2 8007d80: 4413 add r3, r2 8007d82: 498f ldr r1, [pc, #572] ; (8007fc0 ) 8007d84: 0102 lsls r2, r0, #4 8007d86: 4413 add r3, r2 8007d88: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007d8c: 2303 movs r3, #3 8007d8e: 2150 movs r1, #80 ; 0x50 8007d90: 20dc movs r0, #220 ; 0xdc 8007d92: f7fd f8a3 bl 8004edc BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 8007d96: 4b89 ldr r3, [pc, #548] ; (8007fbc ) 8007d98: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007d9c: b29b uxth r3, r3 8007d9e: 4618 mov r0, r3 8007da0: 4b86 ldr r3, [pc, #536] ; (8007fbc ) 8007da2: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8007da6: b29b uxth r3, r3 8007da8: 005b lsls r3, r3, #1 8007daa: 4a84 ldr r2, [pc, #528] ; (8007fbc ) 8007dac: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 8007db0: b292 uxth r2, r2 8007db2: 4413 add r3, r2 8007db4: 4982 ldr r1, [pc, #520] ; (8007fc0 ) 8007db6: 0102 lsls r2, r0, #4 8007db8: 4413 add r3, r2 8007dba: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007dbe: 2303 movs r3, #3 8007dc0: 2164 movs r1, #100 ; 0x64 8007dc2: 20dc movs r0, #220 ; 0xdc 8007dc4: f7fd f88a bl 8004edc BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 8007dc8: 4b7c ldr r3, [pc, #496] ; (8007fbc ) 8007dca: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007dce: b29b uxth r3, r3 8007dd0: 4618 mov r0, r3 8007dd2: 4b7a ldr r3, [pc, #488] ; (8007fbc ) 8007dd4: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 8007dd8: b29b uxth r3, r3 8007dda: 005b lsls r3, r3, #1 8007ddc: 4a77 ldr r2, [pc, #476] ; (8007fbc ) 8007dde: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 8007de2: b292 uxth r2, r2 8007de4: 4413 add r3, r2 8007de6: 4976 ldr r1, [pc, #472] ; (8007fc0 ) 8007de8: 0102 lsls r2, r0, #4 8007dea: 4413 add r3, r2 8007dec: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007df0: 2303 movs r3, #3 8007df2: 2178 movs r1, #120 ; 0x78 8007df4: 20dc movs r0, #220 ; 0xdc 8007df6: f7fd f871 bl 8004edc break; 8007dfa: f005 bdaf b.w 800d95c if(menupos == Val_1) 8007dfe: 4b71 ldr r3, [pc, #452] ; (8007fc4 ) 8007e00: 781b ldrb r3, [r3, #0] 8007e02: b2db uxtb r3, r3 8007e04: 2b01 cmp r3, #1 8007e06: f040 80aa bne.w 8007f5e LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8007e0a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007e0e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8007e12: f7fc ff9d bl 8004d50 if(focused) 8007e16: 4b6c ldr r3, [pc, #432] ; (8007fc8 ) 8007e18: 781b ldrb r3, [r3, #0] 8007e1a: b2db uxtb r3, r3 8007e1c: 2b00 cmp r3, #0 8007e1e: d01b beq.n 8007e58 if(blk) 8007e20: 4b6a ldr r3, [pc, #424] ; (8007fcc ) 8007e22: 681b ldr r3, [r3, #0] 8007e24: 2b00 cmp r3, #0 8007e26: d02e beq.n 8007e86 BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 8007e28: 4b64 ldr r3, [pc, #400] ; (8007fbc ) 8007e2a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007e2e: b29b uxth r3, r3 8007e30: 4618 mov r0, r3 8007e32: 4b62 ldr r3, [pc, #392] ; (8007fbc ) 8007e34: 8a5b ldrh r3, [r3, #18] 8007e36: b29b uxth r3, r3 8007e38: 005b lsls r3, r3, #1 8007e3a: 4a60 ldr r2, [pc, #384] ; (8007fbc ) 8007e3c: 8812 ldrh r2, [r2, #0] 8007e3e: b292 uxth r2, r2 8007e40: 4413 add r3, r2 8007e42: 495f ldr r1, [pc, #380] ; (8007fc0 ) 8007e44: 0102 lsls r2, r0, #4 8007e46: 4413 add r3, r2 8007e48: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007e4c: 2303 movs r3, #3 8007e4e: 213c movs r1, #60 ; 0x3c 8007e50: 20dc movs r0, #220 ; 0xdc 8007e52: f7fd f843 bl 8004edc 8007e56: e016 b.n 8007e86 BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 8007e58: 4b58 ldr r3, [pc, #352] ; (8007fbc ) 8007e5a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007e5e: b29b uxth r3, r3 8007e60: 4618 mov r0, r3 8007e62: 4b56 ldr r3, [pc, #344] ; (8007fbc ) 8007e64: 8a5b ldrh r3, [r3, #18] 8007e66: b29b uxth r3, r3 8007e68: 005b lsls r3, r3, #1 8007e6a: 4a54 ldr r2, [pc, #336] ; (8007fbc ) 8007e6c: 8812 ldrh r2, [r2, #0] 8007e6e: b292 uxth r2, r2 8007e70: 4413 add r3, r2 8007e72: 4953 ldr r1, [pc, #332] ; (8007fc0 ) 8007e74: 0102 lsls r2, r0, #4 8007e76: 4413 add r3, r2 8007e78: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007e7c: 2303 movs r3, #3 8007e7e: 213c movs r1, #60 ; 0x3c 8007e80: 20dc movs r0, #220 ; 0xdc 8007e82: f7fd f82b bl 8004edc LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8007e86: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007e8a: 484b ldr r0, [pc, #300] ; (8007fb8 ) 8007e8c: f7fc ff60 bl 8004d50 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 8007e90: f507 728e add.w r2, r7, #284 ; 0x11c 8007e94: 2303 movs r3, #3 8007e96: 213c movs r1, #60 ; 0x3c 8007e98: 208c movs r0, #140 ; 0x8c 8007e9a: f7fd f81f bl 8004edc BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 8007e9e: f107 02e0 add.w r2, r7, #224 ; 0xe0 8007ea2: 2303 movs r3, #3 8007ea4: 2150 movs r1, #80 ; 0x50 8007ea6: 208c movs r0, #140 ; 0x8c 8007ea8: f7fd f818 bl 8004edc BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 8007eac: f107 02a4 add.w r2, r7, #164 ; 0xa4 8007eb0: 2303 movs r3, #3 8007eb2: 2164 movs r1, #100 ; 0x64 8007eb4: 208c movs r0, #140 ; 0x8c 8007eb6: f7fd f811 bl 8004edc BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 8007eba: f107 0268 add.w r2, r7, #104 ; 0x68 8007ebe: 2303 movs r3, #3 8007ec0: 2178 movs r1, #120 ; 0x78 8007ec2: 208c movs r0, #140 ; 0x8c 8007ec4: f7fd f80a bl 8004edc BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 8007ec8: 4b3c ldr r3, [pc, #240] ; (8007fbc ) 8007eca: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007ece: b29b uxth r3, r3 8007ed0: 4618 mov r0, r3 8007ed2: 4b3a ldr r3, [pc, #232] ; (8007fbc ) 8007ed4: 8e5b ldrh r3, [r3, #50] ; 0x32 8007ed6: b29b uxth r3, r3 8007ed8: 005b lsls r3, r3, #1 8007eda: 4a38 ldr r2, [pc, #224] ; (8007fbc ) 8007edc: 8c12 ldrh r2, [r2, #32] 8007ede: b292 uxth r2, r2 8007ee0: 4413 add r3, r2 8007ee2: 4937 ldr r1, [pc, #220] ; (8007fc0 ) 8007ee4: 0102 lsls r2, r0, #4 8007ee6: 4413 add r3, r2 8007ee8: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007eec: 2303 movs r3, #3 8007eee: 2150 movs r1, #80 ; 0x50 8007ef0: 20dc movs r0, #220 ; 0xdc 8007ef2: f7fc fff3 bl 8004edc BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 8007ef6: 4b31 ldr r3, [pc, #196] ; (8007fbc ) 8007ef8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007efc: b29b uxth r3, r3 8007efe: 4618 mov r0, r3 8007f00: 4b2e ldr r3, [pc, #184] ; (8007fbc ) 8007f02: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8007f06: b29b uxth r3, r3 8007f08: 005b lsls r3, r3, #1 8007f0a: 4a2c ldr r2, [pc, #176] ; (8007fbc ) 8007f0c: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 8007f10: b292 uxth r2, r2 8007f12: 4413 add r3, r2 8007f14: 492a ldr r1, [pc, #168] ; (8007fc0 ) 8007f16: 0102 lsls r2, r0, #4 8007f18: 4413 add r3, r2 8007f1a: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007f1e: 2303 movs r3, #3 8007f20: 2164 movs r1, #100 ; 0x64 8007f22: 20dc movs r0, #220 ; 0xdc 8007f24: f7fc ffda bl 8004edc BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 8007f28: 4b24 ldr r3, [pc, #144] ; (8007fbc ) 8007f2a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007f2e: b29b uxth r3, r3 8007f30: 4618 mov r0, r3 8007f32: 4b22 ldr r3, [pc, #136] ; (8007fbc ) 8007f34: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 8007f38: b29b uxth r3, r3 8007f3a: 005b lsls r3, r3, #1 8007f3c: 4a1f ldr r2, [pc, #124] ; (8007fbc ) 8007f3e: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 8007f42: b292 uxth r2, r2 8007f44: 4413 add r3, r2 8007f46: 491e ldr r1, [pc, #120] ; (8007fc0 ) 8007f48: 0102 lsls r2, r0, #4 8007f4a: 4413 add r3, r2 8007f4c: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007f50: 2303 movs r3, #3 8007f52: 2178 movs r1, #120 ; 0x78 8007f54: 20dc movs r0, #220 ; 0xdc 8007f56: f7fc ffc1 bl 8004edc break; 8007f5a: f005 bcff b.w 800d95c if(menupos == Val_2) 8007f5e: 4b19 ldr r3, [pc, #100] ; (8007fc4 ) 8007f60: 781b ldrb r3, [r3, #0] 8007f62: b2db uxtb r3, r3 8007f64: 2b09 cmp r3, #9 8007f66: f040 80b6 bne.w 80080d6 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8007f6a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007f6e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8007f72: f7fc feed bl 8004d50 if(focused) 8007f76: 4b14 ldr r3, [pc, #80] ; (8007fc8 ) 8007f78: 781b ldrb r3, [r3, #0] 8007f7a: b2db uxtb r3, r3 8007f7c: 2b00 cmp r3, #0 8007f7e: d027 beq.n 8007fd0 if(blk) 8007f80: 4b12 ldr r3, [pc, #72] ; (8007fcc ) 8007f82: 681b ldr r3, [r3, #0] 8007f84: 2b00 cmp r3, #0 8007f86: d03a beq.n 8007ffe BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 8007f88: 4b0c ldr r3, [pc, #48] ; (8007fbc ) 8007f8a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007f8e: b29b uxth r3, r3 8007f90: 4618 mov r0, r3 8007f92: 4b0a ldr r3, [pc, #40] ; (8007fbc ) 8007f94: 8e5b ldrh r3, [r3, #50] ; 0x32 8007f96: b29b uxth r3, r3 8007f98: 005b lsls r3, r3, #1 8007f9a: 4a08 ldr r2, [pc, #32] ; (8007fbc ) 8007f9c: 8c12 ldrh r2, [r2, #32] 8007f9e: b292 uxth r2, r2 8007fa0: 4413 add r3, r2 8007fa2: 4907 ldr r1, [pc, #28] ; (8007fc0 ) 8007fa4: 0102 lsls r2, r0, #4 8007fa6: 4413 add r3, r2 8007fa8: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007fac: 2303 movs r3, #3 8007fae: 2150 movs r1, #80 ; 0x50 8007fb0: 20dc movs r0, #220 ; 0xdc 8007fb2: f7fc ff93 bl 8004edc 8007fb6: e022 b.n 8007ffe 8007fb8: ffd8aa57 .word 0xffd8aa57 8007fbc: 2006bca8 .word 0x2006bca8 8007fc0: 200200bc .word 0x200200bc 8007fc4: 20020010 .word 0x20020010 8007fc8: 200209e4 .word 0x200209e4 8007fcc: 2006ba78 .word 0x2006ba78 BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 8007fd0: 4bb1 ldr r3, [pc, #708] ; (8008298 ) 8007fd2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007fd6: b29b uxth r3, r3 8007fd8: 4618 mov r0, r3 8007fda: 4baf ldr r3, [pc, #700] ; (8008298 ) 8007fdc: 8e5b ldrh r3, [r3, #50] ; 0x32 8007fde: b29b uxth r3, r3 8007fe0: 005b lsls r3, r3, #1 8007fe2: 4aad ldr r2, [pc, #692] ; (8008298 ) 8007fe4: 8c12 ldrh r2, [r2, #32] 8007fe6: b292 uxth r2, r2 8007fe8: 4413 add r3, r2 8007fea: 49ac ldr r1, [pc, #688] ; (800829c ) 8007fec: 0102 lsls r2, r0, #4 8007fee: 4413 add r3, r2 8007ff0: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007ff4: 2303 movs r3, #3 8007ff6: 2150 movs r1, #80 ; 0x50 8007ff8: 20dc movs r0, #220 ; 0xdc 8007ffa: f7fc ff6f bl 8004edc LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8007ffe: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8008002: 48a7 ldr r0, [pc, #668] ; (80082a0 ) 8008004: f7fc fea4 bl 8004d50 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 8008008: f507 728e add.w r2, r7, #284 ; 0x11c 800800c: 2303 movs r3, #3 800800e: 213c movs r1, #60 ; 0x3c 8008010: 208c movs r0, #140 ; 0x8c 8008012: f7fc ff63 bl 8004edc BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 8008016: f107 02e0 add.w r2, r7, #224 ; 0xe0 800801a: 2303 movs r3, #3 800801c: 2150 movs r1, #80 ; 0x50 800801e: 208c movs r0, #140 ; 0x8c 8008020: f7fc ff5c bl 8004edc BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 8008024: f107 02a4 add.w r2, r7, #164 ; 0xa4 8008028: 2303 movs r3, #3 800802a: 2164 movs r1, #100 ; 0x64 800802c: 208c movs r0, #140 ; 0x8c 800802e: f7fc ff55 bl 8004edc BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 8008032: f107 0268 add.w r2, r7, #104 ; 0x68 8008036: 2303 movs r3, #3 8008038: 2178 movs r1, #120 ; 0x78 800803a: 208c movs r0, #140 ; 0x8c 800803c: f7fc ff4e bl 8004edc BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 8008040: 4b95 ldr r3, [pc, #596] ; (8008298 ) 8008042: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8008046: b29b uxth r3, r3 8008048: 4618 mov r0, r3 800804a: 4b93 ldr r3, [pc, #588] ; (8008298 ) 800804c: 8a5b ldrh r3, [r3, #18] 800804e: b29b uxth r3, r3 8008050: 005b lsls r3, r3, #1 8008052: 4a91 ldr r2, [pc, #580] ; (8008298 ) 8008054: 8812 ldrh r2, [r2, #0] 8008056: b292 uxth r2, r2 8008058: 4413 add r3, r2 800805a: 4990 ldr r1, [pc, #576] ; (800829c ) 800805c: 0102 lsls r2, r0, #4 800805e: 4413 add r3, r2 8008060: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8008064: 2303 movs r3, #3 8008066: 213c movs r1, #60 ; 0x3c 8008068: 20dc movs r0, #220 ; 0xdc 800806a: f7fc ff37 bl 8004edc BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 800806e: 4b8a ldr r3, [pc, #552] ; (8008298 ) 8008070: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8008074: b29b uxth r3, r3 8008076: 4618 mov r0, r3 8008078: 4b87 ldr r3, [pc, #540] ; (8008298 ) 800807a: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 800807e: b29b uxth r3, r3 8008080: 005b lsls r3, r3, #1 8008082: 4a85 ldr r2, [pc, #532] ; (8008298 ) 8008084: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 8008088: b292 uxth r2, r2 800808a: 4413 add r3, r2 800808c: 4983 ldr r1, [pc, #524] ; (800829c ) 800808e: 0102 lsls r2, r0, #4 8008090: 4413 add r3, r2 8008092: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8008096: 2303 movs r3, #3 8008098: 2164 movs r1, #100 ; 0x64 800809a: 20dc movs r0, #220 ; 0xdc 800809c: f7fc ff1e bl 8004edc BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 80080a0: 4b7d ldr r3, [pc, #500] ; (8008298 ) 80080a2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80080a6: b29b uxth r3, r3 80080a8: 4618 mov r0, r3 80080aa: 4b7b ldr r3, [pc, #492] ; (8008298 ) 80080ac: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 80080b0: b29b uxth r3, r3 80080b2: 005b lsls r3, r3, #1 80080b4: 4a78 ldr r2, [pc, #480] ; (8008298 ) 80080b6: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 80080ba: b292 uxth r2, r2 80080bc: 4413 add r3, r2 80080be: 4977 ldr r1, [pc, #476] ; (800829c ) 80080c0: 0102 lsls r2, r0, #4 80080c2: 4413 add r3, r2 80080c4: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80080c8: 2303 movs r3, #3 80080ca: 2178 movs r1, #120 ; 0x78 80080cc: 20dc movs r0, #220 ; 0xdc 80080ce: f7fc ff05 bl 8004edc break; 80080d2: f005 bc43 b.w 800d95c if(menupos == Val_3) 80080d6: 4b73 ldr r3, [pc, #460] ; (80082a4 ) 80080d8: 781b ldrb r3, [r3, #0] 80080da: b2db uxtb r3, r3 80080dc: 2b11 cmp r3, #17 80080de: f040 80ac bne.w 800823a LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 80080e2: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80080e6: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 80080ea: f7fc fe31 bl 8004d50 if(focused) 80080ee: 4b6e ldr r3, [pc, #440] ; (80082a8 ) 80080f0: 781b ldrb r3, [r3, #0] 80080f2: b2db uxtb r3, r3 80080f4: 2b00 cmp r3, #0 80080f6: d01d beq.n 8008134 if(blk) 80080f8: 4b6c ldr r3, [pc, #432] ; (80082ac ) 80080fa: 681b ldr r3, [r3, #0] 80080fc: 2b00 cmp r3, #0 80080fe: d032 beq.n 8008166 BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 8008100: 4b65 ldr r3, [pc, #404] ; (8008298 ) 8008102: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8008106: b29b uxth r3, r3 8008108: 4618 mov r0, r3 800810a: 4b63 ldr r3, [pc, #396] ; (8008298 ) 800810c: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8008110: b29b uxth r3, r3 8008112: 005b lsls r3, r3, #1 8008114: 4a60 ldr r2, [pc, #384] ; (8008298 ) 8008116: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 800811a: b292 uxth r2, r2 800811c: 4413 add r3, r2 800811e: 495f ldr r1, [pc, #380] ; (800829c ) 8008120: 0102 lsls r2, r0, #4 8008122: 4413 add r3, r2 8008124: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8008128: 2303 movs r3, #3 800812a: 2164 movs r1, #100 ; 0x64 800812c: 20dc movs r0, #220 ; 0xdc 800812e: f7fc fed5 bl 8004edc 8008132: e018 b.n 8008166 BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 8008134: 4b58 ldr r3, [pc, #352] ; (8008298 ) 8008136: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800813a: b29b uxth r3, r3 800813c: 4618 mov r0, r3 800813e: 4b56 ldr r3, [pc, #344] ; (8008298 ) 8008140: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8008144: b29b uxth r3, r3 8008146: 005b lsls r3, r3, #1 8008148: 4a53 ldr r2, [pc, #332] ; (8008298 ) 800814a: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 800814e: b292 uxth r2, r2 8008150: 4413 add r3, r2 8008152: 4952 ldr r1, [pc, #328] ; (800829c ) 8008154: 0102 lsls r2, r0, #4 8008156: 4413 add r3, r2 8008158: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800815c: 2303 movs r3, #3 800815e: 2164 movs r1, #100 ; 0x64 8008160: 20dc movs r0, #220 ; 0xdc 8008162: f7fc febb bl 8004edc LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8008166: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800816a: 484d ldr r0, [pc, #308] ; (80082a0 ) 800816c: f7fc fdf0 bl 8004d50 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 8008170: f507 728e add.w r2, r7, #284 ; 0x11c 8008174: 2303 movs r3, #3 8008176: 213c movs r1, #60 ; 0x3c 8008178: 208c movs r0, #140 ; 0x8c 800817a: f7fc feaf bl 8004edc BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 800817e: f107 02e0 add.w r2, r7, #224 ; 0xe0 8008182: 2303 movs r3, #3 8008184: 2150 movs r1, #80 ; 0x50 8008186: 208c movs r0, #140 ; 0x8c 8008188: f7fc fea8 bl 8004edc BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 800818c: f107 02a4 add.w r2, r7, #164 ; 0xa4 8008190: 2303 movs r3, #3 8008192: 2164 movs r1, #100 ; 0x64 8008194: 208c movs r0, #140 ; 0x8c 8008196: f7fc fea1 bl 8004edc BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 800819a: f107 0268 add.w r2, r7, #104 ; 0x68 800819e: 2303 movs r3, #3 80081a0: 2178 movs r1, #120 ; 0x78 80081a2: 208c movs r0, #140 ; 0x8c 80081a4: f7fc fe9a bl 8004edc BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 80081a8: 4b3b ldr r3, [pc, #236] ; (8008298 ) 80081aa: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80081ae: b29b uxth r3, r3 80081b0: 4618 mov r0, r3 80081b2: 4b39 ldr r3, [pc, #228] ; (8008298 ) 80081b4: 8a5b ldrh r3, [r3, #18] 80081b6: b29b uxth r3, r3 80081b8: 005b lsls r3, r3, #1 80081ba: 4a37 ldr r2, [pc, #220] ; (8008298 ) 80081bc: 8812 ldrh r2, [r2, #0] 80081be: b292 uxth r2, r2 80081c0: 4413 add r3, r2 80081c2: 4936 ldr r1, [pc, #216] ; (800829c ) 80081c4: 0102 lsls r2, r0, #4 80081c6: 4413 add r3, r2 80081c8: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80081cc: 2303 movs r3, #3 80081ce: 213c movs r1, #60 ; 0x3c 80081d0: 20dc movs r0, #220 ; 0xdc 80081d2: f7fc fe83 bl 8004edc BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 80081d6: 4b30 ldr r3, [pc, #192] ; (8008298 ) 80081d8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80081dc: b29b uxth r3, r3 80081de: 4618 mov r0, r3 80081e0: 4b2d ldr r3, [pc, #180] ; (8008298 ) 80081e2: 8e5b ldrh r3, [r3, #50] ; 0x32 80081e4: b29b uxth r3, r3 80081e6: 005b lsls r3, r3, #1 80081e8: 4a2b ldr r2, [pc, #172] ; (8008298 ) 80081ea: 8c12 ldrh r2, [r2, #32] 80081ec: b292 uxth r2, r2 80081ee: 4413 add r3, r2 80081f0: 492a ldr r1, [pc, #168] ; (800829c ) 80081f2: 0102 lsls r2, r0, #4 80081f4: 4413 add r3, r2 80081f6: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80081fa: 2303 movs r3, #3 80081fc: 2150 movs r1, #80 ; 0x50 80081fe: 20dc movs r0, #220 ; 0xdc 8008200: f7fc fe6c bl 8004edc BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 8008204: 4b24 ldr r3, [pc, #144] ; (8008298 ) 8008206: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800820a: b29b uxth r3, r3 800820c: 4618 mov r0, r3 800820e: 4b22 ldr r3, [pc, #136] ; (8008298 ) 8008210: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 8008214: b29b uxth r3, r3 8008216: 005b lsls r3, r3, #1 8008218: 4a1f ldr r2, [pc, #124] ; (8008298 ) 800821a: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 800821e: b292 uxth r2, r2 8008220: 4413 add r3, r2 8008222: 491e ldr r1, [pc, #120] ; (800829c ) 8008224: 0102 lsls r2, r0, #4 8008226: 4413 add r3, r2 8008228: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800822c: 2303 movs r3, #3 800822e: 2178 movs r1, #120 ; 0x78 8008230: 20dc movs r0, #220 ; 0xdc 8008232: f7fc fe53 bl 8004edc break; 8008236: f005 bb91 b.w 800d95c if(menupos == Val_4) 800823a: 4b1a ldr r3, [pc, #104] ; (80082a4 ) 800823c: 781b ldrb r3, [r3, #0] 800823e: b2db uxtb r3, r3 8008240: 2b19 cmp r3, #25 8008242: f040 80b8 bne.w 80083b6 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8008246: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800824a: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800824e: f7fc fd7f bl 8004d50 if(focused) 8008252: 4b15 ldr r3, [pc, #84] ; (80082a8 ) 8008254: 781b ldrb r3, [r3, #0] 8008256: b2db uxtb r3, r3 8008258: 2b00 cmp r3, #0 800825a: d029 beq.n 80082b0 if(blk) 800825c: 4b13 ldr r3, [pc, #76] ; (80082ac ) 800825e: 681b ldr r3, [r3, #0] 8008260: 2b00 cmp r3, #0 8008262: d03e beq.n 80082e2 BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 8008264: 4b0c ldr r3, [pc, #48] ; (8008298 ) 8008266: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800826a: b29b uxth r3, r3 800826c: 4618 mov r0, r3 800826e: 4b0a ldr r3, [pc, #40] ; (8008298 ) 8008270: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 8008274: b29b uxth r3, r3 8008276: 005b lsls r3, r3, #1 8008278: 4a07 ldr r2, [pc, #28] ; (8008298 ) 800827a: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 800827e: b292 uxth r2, r2 8008280: 4413 add r3, r2 8008282: 4906 ldr r1, [pc, #24] ; (800829c ) 8008284: 0102 lsls r2, r0, #4 8008286: 4413 add r3, r2 8008288: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800828c: 2303 movs r3, #3 800828e: 2178 movs r1, #120 ; 0x78 8008290: 20dc movs r0, #220 ; 0xdc 8008292: f7fc fe23 bl 8004edc 8008296: e024 b.n 80082e2 8008298: 2006bca8 .word 0x2006bca8 800829c: 200200bc .word 0x200200bc 80082a0: ffd8aa57 .word 0xffd8aa57 80082a4: 20020010 .word 0x20020010 80082a8: 200209e4 .word 0x200209e4 80082ac: 2006ba78 .word 0x2006ba78 BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 80082b0: 4bb0 ldr r3, [pc, #704] ; (8008574 ) 80082b2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80082b6: b29b uxth r3, r3 80082b8: 4618 mov r0, r3 80082ba: 4bae ldr r3, [pc, #696] ; (8008574 ) 80082bc: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 80082c0: b29b uxth r3, r3 80082c2: 005b lsls r3, r3, #1 80082c4: 4aab ldr r2, [pc, #684] ; (8008574 ) 80082c6: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 80082ca: b292 uxth r2, r2 80082cc: 4413 add r3, r2 80082ce: 49aa ldr r1, [pc, #680] ; (8008578 ) 80082d0: 0102 lsls r2, r0, #4 80082d2: 4413 add r3, r2 80082d4: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80082d8: 2303 movs r3, #3 80082da: 2178 movs r1, #120 ; 0x78 80082dc: 20dc movs r0, #220 ; 0xdc 80082de: f7fc fdfd bl 8004edc LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 80082e2: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80082e6: 48a5 ldr r0, [pc, #660] ; (800857c ) 80082e8: f7fc fd32 bl 8004d50 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 80082ec: f507 728e add.w r2, r7, #284 ; 0x11c 80082f0: 2303 movs r3, #3 80082f2: 213c movs r1, #60 ; 0x3c 80082f4: 208c movs r0, #140 ; 0x8c 80082f6: f7fc fdf1 bl 8004edc BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 80082fa: f107 02e0 add.w r2, r7, #224 ; 0xe0 80082fe: 2303 movs r3, #3 8008300: 2150 movs r1, #80 ; 0x50 8008302: 208c movs r0, #140 ; 0x8c 8008304: f7fc fdea bl 8004edc BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 8008308: f107 02a4 add.w r2, r7, #164 ; 0xa4 800830c: 2303 movs r3, #3 800830e: 2164 movs r1, #100 ; 0x64 8008310: 208c movs r0, #140 ; 0x8c 8008312: f7fc fde3 bl 8004edc BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 8008316: f107 0268 add.w r2, r7, #104 ; 0x68 800831a: 2303 movs r3, #3 800831c: 2178 movs r1, #120 ; 0x78 800831e: 208c movs r0, #140 ; 0x8c 8008320: f7fc fddc bl 8004edc BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 8008324: 4b93 ldr r3, [pc, #588] ; (8008574 ) 8008326: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800832a: b29b uxth r3, r3 800832c: 4618 mov r0, r3 800832e: 4b91 ldr r3, [pc, #580] ; (8008574 ) 8008330: 8a5b ldrh r3, [r3, #18] 8008332: b29b uxth r3, r3 8008334: 005b lsls r3, r3, #1 8008336: 4a8f ldr r2, [pc, #572] ; (8008574 ) 8008338: 8812 ldrh r2, [r2, #0] 800833a: b292 uxth r2, r2 800833c: 4413 add r3, r2 800833e: 498e ldr r1, [pc, #568] ; (8008578 ) 8008340: 0102 lsls r2, r0, #4 8008342: 4413 add r3, r2 8008344: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8008348: 2303 movs r3, #3 800834a: 213c movs r1, #60 ; 0x3c 800834c: 20dc movs r0, #220 ; 0xdc 800834e: f7fc fdc5 bl 8004edc BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 8008352: 4b88 ldr r3, [pc, #544] ; (8008574 ) 8008354: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8008358: b29b uxth r3, r3 800835a: 4618 mov r0, r3 800835c: 4b85 ldr r3, [pc, #532] ; (8008574 ) 800835e: 8e5b ldrh r3, [r3, #50] ; 0x32 8008360: b29b uxth r3, r3 8008362: 005b lsls r3, r3, #1 8008364: 4a83 ldr r2, [pc, #524] ; (8008574 ) 8008366: 8c12 ldrh r2, [r2, #32] 8008368: b292 uxth r2, r2 800836a: 4413 add r3, r2 800836c: 4982 ldr r1, [pc, #520] ; (8008578 ) 800836e: 0102 lsls r2, r0, #4 8008370: 4413 add r3, r2 8008372: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8008376: 2303 movs r3, #3 8008378: 2150 movs r1, #80 ; 0x50 800837a: 20dc movs r0, #220 ; 0xdc 800837c: f7fc fdae bl 8004edc BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 8008380: 4b7c ldr r3, [pc, #496] ; (8008574 ) 8008382: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8008386: b29b uxth r3, r3 8008388: 4618 mov r0, r3 800838a: 4b7a ldr r3, [pc, #488] ; (8008574 ) 800838c: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8008390: b29b uxth r3, r3 8008392: 005b lsls r3, r3, #1 8008394: 4a77 ldr r2, [pc, #476] ; (8008574 ) 8008396: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 800839a: b292 uxth r2, r2 800839c: 4413 add r3, r2 800839e: 4976 ldr r1, [pc, #472] ; (8008578 ) 80083a0: 0102 lsls r2, r0, #4 80083a2: 4413 add r3, r2 80083a4: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80083a8: 2303 movs r3, #3 80083aa: 2164 movs r1, #100 ; 0x64 80083ac: 20dc movs r0, #220 ; 0xdc 80083ae: f7fc fd95 bl 8004edc break; 80083b2: f005 bad3 b.w 800d95c LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 80083b6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80083ba: 4870 ldr r0, [pc, #448] ; (800857c ) 80083bc: f7fc fcc8 bl 8004d50 BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE); 80083c0: 4b6c ldr r3, [pc, #432] ; (8008574 ) 80083c2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80083c6: b29b uxth r3, r3 80083c8: 4618 mov r0, r3 80083ca: 4b6a ldr r3, [pc, #424] ; (8008574 ) 80083cc: 8a5b ldrh r3, [r3, #18] 80083ce: b29b uxth r3, r3 80083d0: 005b lsls r3, r3, #1 80083d2: 4a68 ldr r2, [pc, #416] ; (8008574 ) 80083d4: 8812 ldrh r2, [r2, #0] 80083d6: b292 uxth r2, r2 80083d8: 4413 add r3, r2 80083da: 4967 ldr r1, [pc, #412] ; (8008578 ) 80083dc: 0102 lsls r2, r0, #4 80083de: 4413 add r3, r2 80083e0: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80083e4: 2303 movs r3, #3 80083e6: 213c movs r1, #60 ; 0x3c 80083e8: 20dc movs r0, #220 ; 0xdc 80083ea: f7fc fd77 bl 8004edc BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE); 80083ee: 4b61 ldr r3, [pc, #388] ; (8008574 ) 80083f0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80083f4: b29b uxth r3, r3 80083f6: 4618 mov r0, r3 80083f8: 4b5e ldr r3, [pc, #376] ; (8008574 ) 80083fa: 8e5b ldrh r3, [r3, #50] ; 0x32 80083fc: b29b uxth r3, r3 80083fe: 005b lsls r3, r3, #1 8008400: 4a5c ldr r2, [pc, #368] ; (8008574 ) 8008402: 8c12 ldrh r2, [r2, #32] 8008404: b292 uxth r2, r2 8008406: 4413 add r3, r2 8008408: 495b ldr r1, [pc, #364] ; (8008578 ) 800840a: 0102 lsls r2, r0, #4 800840c: 4413 add r3, r2 800840e: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8008412: 2303 movs r3, #3 8008414: 2150 movs r1, #80 ; 0x50 8008416: 20dc movs r0, #220 ; 0xdc 8008418: f7fc fd60 bl 8004edc BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE); 800841c: 4b55 ldr r3, [pc, #340] ; (8008574 ) 800841e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8008422: b29b uxth r3, r3 8008424: 4618 mov r0, r3 8008426: 4b53 ldr r3, [pc, #332] ; (8008574 ) 8008428: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 800842c: b29b uxth r3, r3 800842e: 005b lsls r3, r3, #1 8008430: 4a50 ldr r2, [pc, #320] ; (8008574 ) 8008432: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40 8008436: b292 uxth r2, r2 8008438: 4413 add r3, r2 800843a: 494f ldr r1, [pc, #316] ; (8008578 ) 800843c: 0102 lsls r2, r0, #4 800843e: 4413 add r3, r2 8008440: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8008444: 2303 movs r3, #3 8008446: 2164 movs r1, #100 ; 0x64 8008448: 20dc movs r0, #220 ; 0xdc 800844a: f7fc fd47 bl 8004edc BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE); 800844e: 4b49 ldr r3, [pc, #292] ; (8008574 ) 8008450: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8008454: b29b uxth r3, r3 8008456: 4618 mov r0, r3 8008458: 4b46 ldr r3, [pc, #280] ; (8008574 ) 800845a: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72 800845e: b29b uxth r3, r3 8008460: 005b lsls r3, r3, #1 8008462: 4a44 ldr r2, [pc, #272] ; (8008574 ) 8008464: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60 8008468: b292 uxth r2, r2 800846a: 4413 add r3, r2 800846c: 4942 ldr r1, [pc, #264] ; (8008578 ) 800846e: 0102 lsls r2, r0, #4 8008470: 4413 add r3, r2 8008472: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8008476: 2303 movs r3, #3 8008478: 2178 movs r1, #120 ; 0x78 800847a: 20dc movs r0, #220 ; 0xdc 800847c: f7fc fd2e bl 8004edc if(menupos >= Kikdt_1 && menupos <= Kpt_1) 8008480: 4b3f ldr r3, [pc, #252] ; (8008580 ) 8008482: 781b ldrb r3, [r3, #0] 8008484: b2db uxtb r3, r3 8008486: 2b01 cmp r3, #1 8008488: f241 8152 bls.w 8009730 800848c: 4b3c ldr r3, [pc, #240] ; (8008580 ) 800848e: 781b ldrb r3, [r3, #0] 8008490: b2db uxtb r3, r3 8008492: 2b07 cmp r3, #7 8008494: f201 814c bhi.w 8009730 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8008498: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800849c: 4837 ldr r0, [pc, #220] ; (800857c ) 800849e: f7fc fc57 bl 8004d50 BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 80084a2: f107 02e0 add.w r2, r7, #224 ; 0xe0 80084a6: 2303 movs r3, #3 80084a8: 2150 movs r1, #80 ; 0x50 80084aa: 208c movs r0, #140 ; 0x8c 80084ac: f7fc fd16 bl 8004edc BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 80084b0: f107 02a4 add.w r2, r7, #164 ; 0xa4 80084b4: 2303 movs r3, #3 80084b6: 2164 movs r1, #100 ; 0x64 80084b8: 208c movs r0, #140 ; 0x8c 80084ba: f7fc fd0f bl 8004edc BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 80084be: f107 0268 add.w r2, r7, #104 ; 0x68 80084c2: 2303 movs r3, #3 80084c4: 2178 movs r1, #120 ; 0x78 80084c6: 208c movs r0, #140 ; 0x8c 80084c8: f7fc fd08 bl 8004edc if(menupos == Kikdt_1) 80084cc: 4b2c ldr r3, [pc, #176] ; (8008580 ) 80084ce: 781b ldrb r3, [r3, #0] 80084d0: b2db uxtb r3, r3 80084d2: 2b02 cmp r3, #2 80084d4: f040 814f bne.w 8008776 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 80084d8: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80084dc: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 80084e0: f7fc fc36 bl 8004d50 if(blk) 80084e4: 4b27 ldr r3, [pc, #156] ; (8008584 ) 80084e6: 681b ldr r3, [r3, #0] 80084e8: 2b00 cmp r3, #0 80084ea: d00b beq.n 8008504 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 80084ec: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 80084f0: b2db uxtb r3, r3 80084f2: 461a mov r2, r3 80084f4: 4b24 ldr r3, [pc, #144] ; (8008588 ) 80084f6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80084fa: 2303 movs r3, #3 80084fc: 213c movs r1, #60 ; 0x3c 80084fe: 208c movs r0, #140 ; 0x8c 8008500: f7fc fcec bl 8004edc if(!ipt1) 8008504: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008508: b2db uxtb r3, r3 800850a: 2b00 cmp r3, #0 800850c: d13e bne.n 800858c BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 800850e: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008512: b2db uxtb r3, r3 8008514: 461a mov r2, r3 8008516: 4b1c ldr r3, [pc, #112] ; (8008588 ) 8008518: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800851c: 2303 movs r3, #3 800851e: 213c movs r1, #60 ; 0x3c 8008520: 2093 movs r0, #147 ; 0x93 8008522: f7fc fcdb bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008526: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 800852a: b2db uxtb r3, r3 800852c: 461a mov r2, r3 800852e: 4b16 ldr r3, [pc, #88] ; (8008588 ) 8008530: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008534: 2303 movs r3, #3 8008536: 213c movs r1, #60 ; 0x3c 8008538: 209a movs r0, #154 ; 0x9a 800853a: f7fc fccf bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 800853e: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008542: b2db uxtb r3, r3 8008544: 461a mov r2, r3 8008546: 4b10 ldr r3, [pc, #64] ; (8008588 ) 8008548: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800854c: 2303 movs r3, #3 800854e: 213c movs r1, #60 ; 0x3c 8008550: 20a1 movs r0, #161 ; 0xa1 8008552: f7fc fcc3 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008556: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 800855a: b2db uxtb r3, r3 800855c: 461a mov r2, r3 800855e: 4b0a ldr r3, [pc, #40] ; (8008588 ) 8008560: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008564: 2303 movs r3, #3 8008566: 213c movs r1, #60 ; 0x3c 8008568: 20a8 movs r0, #168 ; 0xa8 800856a: f7fc fcb7 bl 8004edc if(menupos == Kikdt_1) 800856e: f004 bce2 b.w 800cf36 8008572: bf00 nop 8008574: 2006bca8 .word 0x2006bca8 8008578: 200200bc .word 0x200200bc 800857c: ffd8aa57 .word 0xffd8aa57 8008580: 20020010 .word 0x20020010 8008584: 2006ba78 .word 0x2006ba78 8008588: 2002096c .word 0x2002096c if(ipt1 == 1) 800858c: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008590: b2db uxtb r3, r3 8008592: 2b01 cmp r3, #1 8008594: d137 bne.n 8008606 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008596: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 800859a: b2db uxtb r3, r3 800859c: 461a mov r2, r3 800859e: 4bc6 ldr r3, [pc, #792] ; (80088b8 ) 80085a0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80085a4: 2303 movs r3, #3 80085a6: 213c movs r1, #60 ; 0x3c 80085a8: 2093 movs r0, #147 ; 0x93 80085aa: f7fc fc97 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 80085ae: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 80085b2: b2db uxtb r3, r3 80085b4: 461a mov r2, r3 80085b6: 4bc0 ldr r3, [pc, #768] ; (80088b8 ) 80085b8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80085bc: 2303 movs r3, #3 80085be: 213c movs r1, #60 ; 0x3c 80085c0: 209a movs r0, #154 ; 0x9a 80085c2: f7fc fc8b bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 80085c6: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 80085ca: b2db uxtb r3, r3 80085cc: 461a mov r2, r3 80085ce: 4bba ldr r3, [pc, #744] ; (80088b8 ) 80085d0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80085d4: 2303 movs r3, #3 80085d6: 213c movs r1, #60 ; 0x3c 80085d8: 20a1 movs r0, #161 ; 0xa1 80085da: f7fc fc7f bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE); 80085de: 2303 movs r3, #3 80085e0: 4ab6 ldr r2, [pc, #728] ; (80088bc ) 80085e2: 213c movs r1, #60 ; 0x3c 80085e4: 20a8 movs r0, #168 ; 0xa8 80085e6: f7fc fc79 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 80085ea: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 80085ee: b2db uxtb r3, r3 80085f0: 461a mov r2, r3 80085f2: 4bb1 ldr r3, [pc, #708] ; (80088b8 ) 80085f4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80085f8: 2303 movs r3, #3 80085fa: 213c movs r1, #60 ; 0x3c 80085fc: 20af movs r0, #175 ; 0xaf 80085fe: f7fc fc6d bl 8004edc if(menupos == Kikdt_1) 8008602: f004 bc98 b.w 800cf36 if(ipt1 == 2) 8008606: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 800860a: b2db uxtb r3, r3 800860c: 2b02 cmp r3, #2 800860e: d137 bne.n 8008680 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008610: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008614: b2db uxtb r3, r3 8008616: 461a mov r2, r3 8008618: 4ba7 ldr r3, [pc, #668] ; (80088b8 ) 800861a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800861e: 2303 movs r3, #3 8008620: 213c movs r1, #60 ; 0x3c 8008622: 2093 movs r0, #147 ; 0x93 8008624: f7fc fc5a bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008628: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 800862c: b2db uxtb r3, r3 800862e: 461a mov r2, r3 8008630: 4ba1 ldr r3, [pc, #644] ; (80088b8 ) 8008632: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008636: 2303 movs r3, #3 8008638: 213c movs r1, #60 ; 0x3c 800863a: 209a movs r0, #154 ; 0x9a 800863c: f7fc fc4e bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE); 8008640: 2303 movs r3, #3 8008642: 4a9e ldr r2, [pc, #632] ; (80088bc ) 8008644: 213c movs r1, #60 ; 0x3c 8008646: 20a1 movs r0, #161 ; 0xa1 8008648: f7fc fc48 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 800864c: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008650: b2db uxtb r3, r3 8008652: 461a mov r2, r3 8008654: 4b98 ldr r3, [pc, #608] ; (80088b8 ) 8008656: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800865a: 2303 movs r3, #3 800865c: 213c movs r1, #60 ; 0x3c 800865e: 20a8 movs r0, #168 ; 0xa8 8008660: f7fc fc3c bl 8004edc BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008664: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008668: b2db uxtb r3, r3 800866a: 461a mov r2, r3 800866c: 4b92 ldr r3, [pc, #584] ; (80088b8 ) 800866e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008672: 2303 movs r3, #3 8008674: 213c movs r1, #60 ; 0x3c 8008676: 20af movs r0, #175 ; 0xaf 8008678: f7fc fc30 bl 8004edc if(menupos == Kikdt_1) 800867c: f004 bc5b b.w 800cf36 if(ipt1 == 3) 8008680: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008684: b2db uxtb r3, r3 8008686: 2b03 cmp r3, #3 8008688: d137 bne.n 80086fa BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 800868a: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 800868e: b2db uxtb r3, r3 8008690: 461a mov r2, r3 8008692: 4b89 ldr r3, [pc, #548] ; (80088b8 ) 8008694: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008698: 2303 movs r3, #3 800869a: 213c movs r1, #60 ; 0x3c 800869c: 2093 movs r0, #147 ; 0x93 800869e: f7fc fc1d bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE); 80086a2: 2303 movs r3, #3 80086a4: 4a85 ldr r2, [pc, #532] ; (80088bc ) 80086a6: 213c movs r1, #60 ; 0x3c 80086a8: 209a movs r0, #154 ; 0x9a 80086aa: f7fc fc17 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 80086ae: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 80086b2: b2db uxtb r3, r3 80086b4: 461a mov r2, r3 80086b6: 4b80 ldr r3, [pc, #512] ; (80088b8 ) 80086b8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80086bc: 2303 movs r3, #3 80086be: 213c movs r1, #60 ; 0x3c 80086c0: 20a1 movs r0, #161 ; 0xa1 80086c2: f7fc fc0b bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 80086c6: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 80086ca: b2db uxtb r3, r3 80086cc: 461a mov r2, r3 80086ce: 4b7a ldr r3, [pc, #488] ; (80088b8 ) 80086d0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80086d4: 2303 movs r3, #3 80086d6: 213c movs r1, #60 ; 0x3c 80086d8: 20a8 movs r0, #168 ; 0xa8 80086da: f7fc fbff bl 8004edc BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 80086de: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 80086e2: b2db uxtb r3, r3 80086e4: 461a mov r2, r3 80086e6: 4b74 ldr r3, [pc, #464] ; (80088b8 ) 80086e8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80086ec: 2303 movs r3, #3 80086ee: 213c movs r1, #60 ; 0x3c 80086f0: 20af movs r0, #175 ; 0xaf 80086f2: f7fc fbf3 bl 8004edc if(menupos == Kikdt_1) 80086f6: f004 bc1e b.w 800cf36 if(ipt1 == 4) 80086fa: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 80086fe: b2db uxtb r3, r3 8008700: 2b04 cmp r3, #4 8008702: f044 8418 bne.w 800cf36 BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE); 8008706: 2303 movs r3, #3 8008708: 4a6c ldr r2, [pc, #432] ; (80088bc ) 800870a: 213c movs r1, #60 ; 0x3c 800870c: 2093 movs r0, #147 ; 0x93 800870e: f7fc fbe5 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008712: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008716: b2db uxtb r3, r3 8008718: 461a mov r2, r3 800871a: 4b67 ldr r3, [pc, #412] ; (80088b8 ) 800871c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008720: 2303 movs r3, #3 8008722: 213c movs r1, #60 ; 0x3c 8008724: 209a movs r0, #154 ; 0x9a 8008726: f7fc fbd9 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 800872a: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 800872e: b2db uxtb r3, r3 8008730: 461a mov r2, r3 8008732: 4b61 ldr r3, [pc, #388] ; (80088b8 ) 8008734: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008738: 2303 movs r3, #3 800873a: 213c movs r1, #60 ; 0x3c 800873c: 20a1 movs r0, #161 ; 0xa1 800873e: f7fc fbcd bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008742: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008746: b2db uxtb r3, r3 8008748: 461a mov r2, r3 800874a: 4b5b ldr r3, [pc, #364] ; (80088b8 ) 800874c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008750: 2303 movs r3, #3 8008752: 213c movs r1, #60 ; 0x3c 8008754: 20a8 movs r0, #168 ; 0xa8 8008756: f7fc fbc1 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 800875a: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 800875e: b2db uxtb r3, r3 8008760: 461a mov r2, r3 8008762: 4b55 ldr r3, [pc, #340] ; (80088b8 ) 8008764: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008768: 2303 movs r3, #3 800876a: 213c movs r1, #60 ; 0x3c 800876c: 20af movs r0, #175 ; 0xaf 800876e: f7fc fbb5 bl 8004edc if(menupos == Kikdt_1) 8008772: f004 bbe0 b.w 800cf36 if(menupos == Kikt_1) 8008776: 4b52 ldr r3, [pc, #328] ; (80088c0 ) 8008778: 781b ldrb r3, [r3, #0] 800877a: b2db uxtb r3, r3 800877c: 2b03 cmp r3, #3 800877e: f040 818b bne.w 8008a98 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8008782: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8008786: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800878a: f7fc fae1 bl 8004d50 if(!ipt1) 800878e: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008792: b2db uxtb r3, r3 8008794: 2b00 cmp r3, #0 8008796: d141 bne.n 800881c BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008798: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 800879c: b2db uxtb r3, r3 800879e: 461a mov r2, r3 80087a0: 4b45 ldr r3, [pc, #276] ; (80088b8 ) 80087a2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80087a6: 2303 movs r3, #3 80087a8: 213c movs r1, #60 ; 0x3c 80087aa: 208c movs r0, #140 ; 0x8c 80087ac: f7fc fb96 bl 8004edc if(blk) 80087b0: 4b44 ldr r3, [pc, #272] ; (80088c4 ) 80087b2: 681b ldr r3, [r3, #0] 80087b4: 2b00 cmp r3, #0 80087b6: d00b beq.n 80087d0 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 80087b8: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 80087bc: b2db uxtb r3, r3 80087be: 461a mov r2, r3 80087c0: 4b3d ldr r3, [pc, #244] ; (80088b8 ) 80087c2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80087c6: 2303 movs r3, #3 80087c8: 213c movs r1, #60 ; 0x3c 80087ca: 2093 movs r0, #147 ; 0x93 80087cc: f7fc fb86 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 80087d0: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 80087d4: b2db uxtb r3, r3 80087d6: 461a mov r2, r3 80087d8: 4b37 ldr r3, [pc, #220] ; (80088b8 ) 80087da: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80087de: 2303 movs r3, #3 80087e0: 213c movs r1, #60 ; 0x3c 80087e2: 209a movs r0, #154 ; 0x9a 80087e4: f7fc fb7a bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 80087e8: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 80087ec: b2db uxtb r3, r3 80087ee: 461a mov r2, r3 80087f0: 4b31 ldr r3, [pc, #196] ; (80088b8 ) 80087f2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80087f6: 2303 movs r3, #3 80087f8: 213c movs r1, #60 ; 0x3c 80087fa: 20a1 movs r0, #161 ; 0xa1 80087fc: f7fc fb6e bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008800: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008804: b2db uxtb r3, r3 8008806: 461a mov r2, r3 8008808: 4b2b ldr r3, [pc, #172] ; (80088b8 ) 800880a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800880e: 2303 movs r3, #3 8008810: 213c movs r1, #60 ; 0x3c 8008812: 20a8 movs r0, #168 ; 0xa8 8008814: f7fc fb62 bl 8004edc if(menupos == Kikdt_1) 8008818: f004 bb8d b.w 800cf36 if(ipt1 == 1) 800881c: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008820: b2db uxtb r3, r3 8008822: 2b01 cmp r3, #1 8008824: d150 bne.n 80088c8 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008826: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 800882a: b2db uxtb r3, r3 800882c: 461a mov r2, r3 800882e: 4b22 ldr r3, [pc, #136] ; (80088b8 ) 8008830: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008834: 2303 movs r3, #3 8008836: 213c movs r1, #60 ; 0x3c 8008838: 208c movs r0, #140 ; 0x8c 800883a: f7fc fb4f bl 8004edc if(blk) 800883e: 4b21 ldr r3, [pc, #132] ; (80088c4 ) 8008840: 681b ldr r3, [r3, #0] 8008842: 2b00 cmp r3, #0 8008844: d00b beq.n 800885e BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008846: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 800884a: b2db uxtb r3, r3 800884c: 461a mov r2, r3 800884e: 4b1a ldr r3, [pc, #104] ; (80088b8 ) 8008850: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008854: 2303 movs r3, #3 8008856: 213c movs r1, #60 ; 0x3c 8008858: 2093 movs r0, #147 ; 0x93 800885a: f7fc fb3f bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 800885e: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008862: b2db uxtb r3, r3 8008864: 461a mov r2, r3 8008866: 4b14 ldr r3, [pc, #80] ; (80088b8 ) 8008868: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800886c: 2303 movs r3, #3 800886e: 213c movs r1, #60 ; 0x3c 8008870: 209a movs r0, #154 ; 0x9a 8008872: f7fc fb33 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008876: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 800887a: b2db uxtb r3, r3 800887c: 461a mov r2, r3 800887e: 4b0e ldr r3, [pc, #56] ; (80088b8 ) 8008880: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008884: 2303 movs r3, #3 8008886: 213c movs r1, #60 ; 0x3c 8008888: 20a1 movs r0, #161 ; 0xa1 800888a: f7fc fb27 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE); 800888e: 2303 movs r3, #3 8008890: 4a0a ldr r2, [pc, #40] ; (80088bc ) 8008892: 213c movs r1, #60 ; 0x3c 8008894: 20a8 movs r0, #168 ; 0xa8 8008896: f7fc fb21 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 800889a: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 800889e: b2db uxtb r3, r3 80088a0: 461a mov r2, r3 80088a2: 4b05 ldr r3, [pc, #20] ; (80088b8 ) 80088a4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80088a8: 2303 movs r3, #3 80088aa: 213c movs r1, #60 ; 0x3c 80088ac: 20af movs r0, #175 ; 0xaf 80088ae: f7fc fb15 bl 8004edc if(menupos == Kikdt_1) 80088b2: f004 bb40 b.w 800cf36 80088b6: bf00 nop 80088b8: 2002096c .word 0x2002096c 80088bc: 08018150 .word 0x08018150 80088c0: 20020010 .word 0x20020010 80088c4: 2006ba78 .word 0x2006ba78 if(ipt1 == 2) 80088c8: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 80088cc: b2db uxtb r3, r3 80088ce: 2b02 cmp r3, #2 80088d0: d147 bne.n 8008962 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 80088d2: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 80088d6: b2db uxtb r3, r3 80088d8: 461a mov r2, r3 80088da: 4bbf ldr r3, [pc, #764] ; (8008bd8 ) 80088dc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80088e0: 2303 movs r3, #3 80088e2: 213c movs r1, #60 ; 0x3c 80088e4: 208c movs r0, #140 ; 0x8c 80088e6: f7fc faf9 bl 8004edc if(blk) 80088ea: 4bbc ldr r3, [pc, #752] ; (8008bdc ) 80088ec: 681b ldr r3, [r3, #0] 80088ee: 2b00 cmp r3, #0 80088f0: d00b beq.n 800890a BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 80088f2: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 80088f6: b2db uxtb r3, r3 80088f8: 461a mov r2, r3 80088fa: 4bb7 ldr r3, [pc, #732] ; (8008bd8 ) 80088fc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008900: 2303 movs r3, #3 8008902: 213c movs r1, #60 ; 0x3c 8008904: 2093 movs r0, #147 ; 0x93 8008906: f7fc fae9 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 800890a: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 800890e: b2db uxtb r3, r3 8008910: 461a mov r2, r3 8008912: 4bb1 ldr r3, [pc, #708] ; (8008bd8 ) 8008914: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008918: 2303 movs r3, #3 800891a: 213c movs r1, #60 ; 0x3c 800891c: 209a movs r0, #154 ; 0x9a 800891e: f7fc fadd bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE); 8008922: 2303 movs r3, #3 8008924: 4aae ldr r2, [pc, #696] ; (8008be0 ) 8008926: 213c movs r1, #60 ; 0x3c 8008928: 20a1 movs r0, #161 ; 0xa1 800892a: f7fc fad7 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 800892e: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008932: b2db uxtb r3, r3 8008934: 461a mov r2, r3 8008936: 4ba8 ldr r3, [pc, #672] ; (8008bd8 ) 8008938: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800893c: 2303 movs r3, #3 800893e: 213c movs r1, #60 ; 0x3c 8008940: 20a8 movs r0, #168 ; 0xa8 8008942: f7fc facb bl 8004edc BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008946: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 800894a: b2db uxtb r3, r3 800894c: 461a mov r2, r3 800894e: 4ba2 ldr r3, [pc, #648] ; (8008bd8 ) 8008950: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008954: 2303 movs r3, #3 8008956: 213c movs r1, #60 ; 0x3c 8008958: 20af movs r0, #175 ; 0xaf 800895a: f7fc fabf bl 8004edc if(menupos == Kikdt_1) 800895e: f004 baea b.w 800cf36 if(ipt1 == 3) 8008962: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008966: b2db uxtb r3, r3 8008968: 2b03 cmp r3, #3 800896a: d147 bne.n 80089fc BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 800896c: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008970: b2db uxtb r3, r3 8008972: 461a mov r2, r3 8008974: 4b98 ldr r3, [pc, #608] ; (8008bd8 ) 8008976: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800897a: 2303 movs r3, #3 800897c: 213c movs r1, #60 ; 0x3c 800897e: 208c movs r0, #140 ; 0x8c 8008980: f7fc faac bl 8004edc if(blk) 8008984: 4b95 ldr r3, [pc, #596] ; (8008bdc ) 8008986: 681b ldr r3, [r3, #0] 8008988: 2b00 cmp r3, #0 800898a: d00b beq.n 80089a4 BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 800898c: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008990: b2db uxtb r3, r3 8008992: 461a mov r2, r3 8008994: 4b90 ldr r3, [pc, #576] ; (8008bd8 ) 8008996: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800899a: 2303 movs r3, #3 800899c: 213c movs r1, #60 ; 0x3c 800899e: 2093 movs r0, #147 ; 0x93 80089a0: f7fc fa9c bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE); 80089a4: 2303 movs r3, #3 80089a6: 4a8e ldr r2, [pc, #568] ; (8008be0 ) 80089a8: 213c movs r1, #60 ; 0x3c 80089aa: 209a movs r0, #154 ; 0x9a 80089ac: f7fc fa96 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 80089b0: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 80089b4: b2db uxtb r3, r3 80089b6: 461a mov r2, r3 80089b8: 4b87 ldr r3, [pc, #540] ; (8008bd8 ) 80089ba: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80089be: 2303 movs r3, #3 80089c0: 213c movs r1, #60 ; 0x3c 80089c2: 20a1 movs r0, #161 ; 0xa1 80089c4: f7fc fa8a bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 80089c8: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 80089cc: b2db uxtb r3, r3 80089ce: 461a mov r2, r3 80089d0: 4b81 ldr r3, [pc, #516] ; (8008bd8 ) 80089d2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80089d6: 2303 movs r3, #3 80089d8: 213c movs r1, #60 ; 0x3c 80089da: 20a8 movs r0, #168 ; 0xa8 80089dc: f7fc fa7e bl 8004edc BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 80089e0: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 80089e4: b2db uxtb r3, r3 80089e6: 461a mov r2, r3 80089e8: 4b7b ldr r3, [pc, #492] ; (8008bd8 ) 80089ea: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80089ee: 2303 movs r3, #3 80089f0: 213c movs r1, #60 ; 0x3c 80089f2: 20af movs r0, #175 ; 0xaf 80089f4: f7fc fa72 bl 8004edc if(menupos == Kikdt_1) 80089f8: f004 ba9d b.w 800cf36 if(ipt1 == 4) 80089fc: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008a00: b2db uxtb r3, r3 8008a02: 2b04 cmp r3, #4 8008a04: f044 8297 bne.w 800cf36 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008a08: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008a0c: b2db uxtb r3, r3 8008a0e: 461a mov r2, r3 8008a10: 4b71 ldr r3, [pc, #452] ; (8008bd8 ) 8008a12: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008a16: 2303 movs r3, #3 8008a18: 213c movs r1, #60 ; 0x3c 8008a1a: 208c movs r0, #140 ; 0x8c 8008a1c: f7fc fa5e bl 8004edc BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE); 8008a20: 2303 movs r3, #3 8008a22: 4a6f ldr r2, [pc, #444] ; (8008be0 ) 8008a24: 213c movs r1, #60 ; 0x3c 8008a26: 2093 movs r0, #147 ; 0x93 8008a28: f7fc fa58 bl 8004edc if(blk) 8008a2c: 4b6b ldr r3, [pc, #428] ; (8008bdc ) 8008a2e: 681b ldr r3, [r3, #0] 8008a30: 2b00 cmp r3, #0 8008a32: d00b beq.n 8008a4c BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008a34: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008a38: b2db uxtb r3, r3 8008a3a: 461a mov r2, r3 8008a3c: 4b66 ldr r3, [pc, #408] ; (8008bd8 ) 8008a3e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008a42: 2303 movs r3, #3 8008a44: 213c movs r1, #60 ; 0x3c 8008a46: 209a movs r0, #154 ; 0x9a 8008a48: f7fc fa48 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008a4c: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008a50: b2db uxtb r3, r3 8008a52: 461a mov r2, r3 8008a54: 4b60 ldr r3, [pc, #384] ; (8008bd8 ) 8008a56: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008a5a: 2303 movs r3, #3 8008a5c: 213c movs r1, #60 ; 0x3c 8008a5e: 20a1 movs r0, #161 ; 0xa1 8008a60: f7fc fa3c bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008a64: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008a68: b2db uxtb r3, r3 8008a6a: 461a mov r2, r3 8008a6c: 4b5a ldr r3, [pc, #360] ; (8008bd8 ) 8008a6e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008a72: 2303 movs r3, #3 8008a74: 213c movs r1, #60 ; 0x3c 8008a76: 20a8 movs r0, #168 ; 0xa8 8008a78: f7fc fa30 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008a7c: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008a80: b2db uxtb r3, r3 8008a82: 461a mov r2, r3 8008a84: 4b54 ldr r3, [pc, #336] ; (8008bd8 ) 8008a86: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008a8a: 2303 movs r3, #3 8008a8c: 213c movs r1, #60 ; 0x3c 8008a8e: 20af movs r0, #175 ; 0xaf 8008a90: f7fc fa24 bl 8004edc if(menupos == Kikdt_1) 8008a94: f004 ba4f b.w 800cf36 if(menupos == Kiks_1) 8008a98: 4b52 ldr r3, [pc, #328] ; (8008be4 ) 8008a9a: 781b ldrb r3, [r3, #0] 8008a9c: b2db uxtb r3, r3 8008a9e: 2b04 cmp r3, #4 8008aa0: f040 818a bne.w 8008db8 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8008aa4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8008aa8: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8008aac: f7fc f950 bl 8004d50 if(!ipt1) 8008ab0: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008ab4: b2db uxtb r3, r3 8008ab6: 2b00 cmp r3, #0 8008ab8: d141 bne.n 8008b3e BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008aba: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008abe: b2db uxtb r3, r3 8008ac0: 461a mov r2, r3 8008ac2: 4b45 ldr r3, [pc, #276] ; (8008bd8 ) 8008ac4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008ac8: 2303 movs r3, #3 8008aca: 213c movs r1, #60 ; 0x3c 8008acc: 208c movs r0, #140 ; 0x8c 8008ace: f7fc fa05 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008ad2: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008ad6: b2db uxtb r3, r3 8008ad8: 461a mov r2, r3 8008ada: 4b3f ldr r3, [pc, #252] ; (8008bd8 ) 8008adc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008ae0: 2303 movs r3, #3 8008ae2: 213c movs r1, #60 ; 0x3c 8008ae4: 2093 movs r0, #147 ; 0x93 8008ae6: f7fc f9f9 bl 8004edc if(blk) 8008aea: 4b3c ldr r3, [pc, #240] ; (8008bdc ) 8008aec: 681b ldr r3, [r3, #0] 8008aee: 2b00 cmp r3, #0 8008af0: d00b beq.n 8008b0a BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008af2: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008af6: b2db uxtb r3, r3 8008af8: 461a mov r2, r3 8008afa: 4b37 ldr r3, [pc, #220] ; (8008bd8 ) 8008afc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008b00: 2303 movs r3, #3 8008b02: 213c movs r1, #60 ; 0x3c 8008b04: 209a movs r0, #154 ; 0x9a 8008b06: f7fc f9e9 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008b0a: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008b0e: b2db uxtb r3, r3 8008b10: 461a mov r2, r3 8008b12: 4b31 ldr r3, [pc, #196] ; (8008bd8 ) 8008b14: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008b18: 2303 movs r3, #3 8008b1a: 213c movs r1, #60 ; 0x3c 8008b1c: 20a1 movs r0, #161 ; 0xa1 8008b1e: f7fc f9dd bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008b22: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008b26: b2db uxtb r3, r3 8008b28: 461a mov r2, r3 8008b2a: 4b2b ldr r3, [pc, #172] ; (8008bd8 ) 8008b2c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008b30: 2303 movs r3, #3 8008b32: 213c movs r1, #60 ; 0x3c 8008b34: 20a8 movs r0, #168 ; 0xa8 8008b36: f7fc f9d1 bl 8004edc if(menupos == Kikdt_1) 8008b3a: f004 b9fc b.w 800cf36 if(ipt1 == 1) 8008b3e: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008b42: b2db uxtb r3, r3 8008b44: 2b01 cmp r3, #1 8008b46: d14f bne.n 8008be8 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008b48: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008b4c: b2db uxtb r3, r3 8008b4e: 461a mov r2, r3 8008b50: 4b21 ldr r3, [pc, #132] ; (8008bd8 ) 8008b52: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008b56: 2303 movs r3, #3 8008b58: 213c movs r1, #60 ; 0x3c 8008b5a: 208c movs r0, #140 ; 0x8c 8008b5c: f7fc f9be bl 8004edc BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008b60: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008b64: b2db uxtb r3, r3 8008b66: 461a mov r2, r3 8008b68: 4b1b ldr r3, [pc, #108] ; (8008bd8 ) 8008b6a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008b6e: 2303 movs r3, #3 8008b70: 213c movs r1, #60 ; 0x3c 8008b72: 2093 movs r0, #147 ; 0x93 8008b74: f7fc f9b2 bl 8004edc if(blk) 8008b78: 4b18 ldr r3, [pc, #96] ; (8008bdc ) 8008b7a: 681b ldr r3, [r3, #0] 8008b7c: 2b00 cmp r3, #0 8008b7e: d00b beq.n 8008b98 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008b80: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008b84: b2db uxtb r3, r3 8008b86: 461a mov r2, r3 8008b88: 4b13 ldr r3, [pc, #76] ; (8008bd8 ) 8008b8a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008b8e: 2303 movs r3, #3 8008b90: 213c movs r1, #60 ; 0x3c 8008b92: 209a movs r0, #154 ; 0x9a 8008b94: f7fc f9a2 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008b98: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008b9c: b2db uxtb r3, r3 8008b9e: 461a mov r2, r3 8008ba0: 4b0d ldr r3, [pc, #52] ; (8008bd8 ) 8008ba2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008ba6: 2303 movs r3, #3 8008ba8: 213c movs r1, #60 ; 0x3c 8008baa: 20a1 movs r0, #161 ; 0xa1 8008bac: f7fc f996 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE); 8008bb0: 2303 movs r3, #3 8008bb2: 4a0b ldr r2, [pc, #44] ; (8008be0 ) 8008bb4: 213c movs r1, #60 ; 0x3c 8008bb6: 20a8 movs r0, #168 ; 0xa8 8008bb8: f7fc f990 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008bbc: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008bc0: b2db uxtb r3, r3 8008bc2: 461a mov r2, r3 8008bc4: 4b04 ldr r3, [pc, #16] ; (8008bd8 ) 8008bc6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008bca: 2303 movs r3, #3 8008bcc: 213c movs r1, #60 ; 0x3c 8008bce: 20af movs r0, #175 ; 0xaf 8008bd0: f7fc f984 bl 8004edc if(menupos == Kikdt_1) 8008bd4: f004 b9af b.w 800cf36 8008bd8: 2002096c .word 0x2002096c 8008bdc: 2006ba78 .word 0x2006ba78 8008be0: 08018150 .word 0x08018150 8008be4: 20020010 .word 0x20020010 if(ipt1 == 2) 8008be8: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008bec: b2db uxtb r3, r3 8008bee: 2b02 cmp r3, #2 8008bf0: d147 bne.n 8008c82 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008bf2: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008bf6: b2db uxtb r3, r3 8008bf8: 461a mov r2, r3 8008bfa: 4bbf ldr r3, [pc, #764] ; (8008ef8 ) 8008bfc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008c00: 2303 movs r3, #3 8008c02: 213c movs r1, #60 ; 0x3c 8008c04: 208c movs r0, #140 ; 0x8c 8008c06: f7fc f969 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008c0a: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008c0e: b2db uxtb r3, r3 8008c10: 461a mov r2, r3 8008c12: 4bb9 ldr r3, [pc, #740] ; (8008ef8 ) 8008c14: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008c18: 2303 movs r3, #3 8008c1a: 213c movs r1, #60 ; 0x3c 8008c1c: 2093 movs r0, #147 ; 0x93 8008c1e: f7fc f95d bl 8004edc if(blk) 8008c22: 4bb6 ldr r3, [pc, #728] ; (8008efc ) 8008c24: 681b ldr r3, [r3, #0] 8008c26: 2b00 cmp r3, #0 8008c28: d00b beq.n 8008c42 BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008c2a: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008c2e: b2db uxtb r3, r3 8008c30: 461a mov r2, r3 8008c32: 4bb1 ldr r3, [pc, #708] ; (8008ef8 ) 8008c34: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008c38: 2303 movs r3, #3 8008c3a: 213c movs r1, #60 ; 0x3c 8008c3c: 209a movs r0, #154 ; 0x9a 8008c3e: f7fc f94d bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE); 8008c42: 2303 movs r3, #3 8008c44: 4aae ldr r2, [pc, #696] ; (8008f00 ) 8008c46: 213c movs r1, #60 ; 0x3c 8008c48: 20a1 movs r0, #161 ; 0xa1 8008c4a: f7fc f947 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008c4e: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008c52: b2db uxtb r3, r3 8008c54: 461a mov r2, r3 8008c56: 4ba8 ldr r3, [pc, #672] ; (8008ef8 ) 8008c58: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008c5c: 2303 movs r3, #3 8008c5e: 213c movs r1, #60 ; 0x3c 8008c60: 20a8 movs r0, #168 ; 0xa8 8008c62: f7fc f93b bl 8004edc BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008c66: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008c6a: b2db uxtb r3, r3 8008c6c: 461a mov r2, r3 8008c6e: 4ba2 ldr r3, [pc, #648] ; (8008ef8 ) 8008c70: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008c74: 2303 movs r3, #3 8008c76: 213c movs r1, #60 ; 0x3c 8008c78: 20af movs r0, #175 ; 0xaf 8008c7a: f7fc f92f bl 8004edc if(menupos == Kikdt_1) 8008c7e: f004 b95a b.w 800cf36 if(ipt1 == 3) 8008c82: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008c86: b2db uxtb r3, r3 8008c88: 2b03 cmp r3, #3 8008c8a: d147 bne.n 8008d1c BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008c8c: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008c90: b2db uxtb r3, r3 8008c92: 461a mov r2, r3 8008c94: 4b98 ldr r3, [pc, #608] ; (8008ef8 ) 8008c96: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008c9a: 2303 movs r3, #3 8008c9c: 213c movs r1, #60 ; 0x3c 8008c9e: 208c movs r0, #140 ; 0x8c 8008ca0: f7fc f91c bl 8004edc BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008ca4: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008ca8: b2db uxtb r3, r3 8008caa: 461a mov r2, r3 8008cac: 4b92 ldr r3, [pc, #584] ; (8008ef8 ) 8008cae: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008cb2: 2303 movs r3, #3 8008cb4: 213c movs r1, #60 ; 0x3c 8008cb6: 2093 movs r0, #147 ; 0x93 8008cb8: f7fc f910 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE); 8008cbc: 2303 movs r3, #3 8008cbe: 4a90 ldr r2, [pc, #576] ; (8008f00 ) 8008cc0: 213c movs r1, #60 ; 0x3c 8008cc2: 209a movs r0, #154 ; 0x9a 8008cc4: f7fc f90a bl 8004edc if(blk) 8008cc8: 4b8c ldr r3, [pc, #560] ; (8008efc ) 8008cca: 681b ldr r3, [r3, #0] 8008ccc: 2b00 cmp r3, #0 8008cce: d00b beq.n 8008ce8 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008cd0: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008cd4: b2db uxtb r3, r3 8008cd6: 461a mov r2, r3 8008cd8: 4b87 ldr r3, [pc, #540] ; (8008ef8 ) 8008cda: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008cde: 2303 movs r3, #3 8008ce0: 213c movs r1, #60 ; 0x3c 8008ce2: 20a1 movs r0, #161 ; 0xa1 8008ce4: f7fc f8fa bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008ce8: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008cec: b2db uxtb r3, r3 8008cee: 461a mov r2, r3 8008cf0: 4b81 ldr r3, [pc, #516] ; (8008ef8 ) 8008cf2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008cf6: 2303 movs r3, #3 8008cf8: 213c movs r1, #60 ; 0x3c 8008cfa: 20a8 movs r0, #168 ; 0xa8 8008cfc: f7fc f8ee bl 8004edc BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008d00: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008d04: b2db uxtb r3, r3 8008d06: 461a mov r2, r3 8008d08: 4b7b ldr r3, [pc, #492] ; (8008ef8 ) 8008d0a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008d0e: 2303 movs r3, #3 8008d10: 213c movs r1, #60 ; 0x3c 8008d12: 20af movs r0, #175 ; 0xaf 8008d14: f7fc f8e2 bl 8004edc if(menupos == Kikdt_1) 8008d18: f004 b90d b.w 800cf36 if(ipt1 == 4) 8008d1c: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008d20: b2db uxtb r3, r3 8008d22: 2b04 cmp r3, #4 8008d24: f044 8107 bne.w 800cf36 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008d28: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008d2c: b2db uxtb r3, r3 8008d2e: 461a mov r2, r3 8008d30: 4b71 ldr r3, [pc, #452] ; (8008ef8 ) 8008d32: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008d36: 2303 movs r3, #3 8008d38: 213c movs r1, #60 ; 0x3c 8008d3a: 208c movs r0, #140 ; 0x8c 8008d3c: f7fc f8ce bl 8004edc BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE); 8008d40: 2303 movs r3, #3 8008d42: 4a6f ldr r2, [pc, #444] ; (8008f00 ) 8008d44: 213c movs r1, #60 ; 0x3c 8008d46: 2093 movs r0, #147 ; 0x93 8008d48: f7fc f8c8 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008d4c: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008d50: b2db uxtb r3, r3 8008d52: 461a mov r2, r3 8008d54: 4b68 ldr r3, [pc, #416] ; (8008ef8 ) 8008d56: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008d5a: 2303 movs r3, #3 8008d5c: 213c movs r1, #60 ; 0x3c 8008d5e: 209a movs r0, #154 ; 0x9a 8008d60: f7fc f8bc bl 8004edc if(blk) 8008d64: 4b65 ldr r3, [pc, #404] ; (8008efc ) 8008d66: 681b ldr r3, [r3, #0] 8008d68: 2b00 cmp r3, #0 8008d6a: d00b beq.n 8008d84 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008d6c: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008d70: b2db uxtb r3, r3 8008d72: 461a mov r2, r3 8008d74: 4b60 ldr r3, [pc, #384] ; (8008ef8 ) 8008d76: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008d7a: 2303 movs r3, #3 8008d7c: 213c movs r1, #60 ; 0x3c 8008d7e: 20a1 movs r0, #161 ; 0xa1 8008d80: f7fc f8ac bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008d84: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008d88: b2db uxtb r3, r3 8008d8a: 461a mov r2, r3 8008d8c: 4b5a ldr r3, [pc, #360] ; (8008ef8 ) 8008d8e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008d92: 2303 movs r3, #3 8008d94: 213c movs r1, #60 ; 0x3c 8008d96: 20a8 movs r0, #168 ; 0xa8 8008d98: f7fc f8a0 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008d9c: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008da0: b2db uxtb r3, r3 8008da2: 461a mov r2, r3 8008da4: 4b54 ldr r3, [pc, #336] ; (8008ef8 ) 8008da6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008daa: 2303 movs r3, #3 8008dac: 213c movs r1, #60 ; 0x3c 8008dae: 20af movs r0, #175 ; 0xaf 8008db0: f7fc f894 bl 8004edc if(menupos == Kikdt_1) 8008db4: f004 b8bf b.w 800cf36 if(menupos == Kikd_1) 8008db8: 4b52 ldr r3, [pc, #328] ; (8008f04 ) 8008dba: 781b ldrb r3, [r3, #0] 8008dbc: b2db uxtb r3, r3 8008dbe: 2b05 cmp r3, #5 8008dc0: f040 818a bne.w 80090d8 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8008dc4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8008dc8: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8008dcc: f7fb ffc0 bl 8004d50 if(!ipt1) 8008dd0: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008dd4: b2db uxtb r3, r3 8008dd6: 2b00 cmp r3, #0 8008dd8: d141 bne.n 8008e5e BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008dda: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008dde: b2db uxtb r3, r3 8008de0: 461a mov r2, r3 8008de2: 4b45 ldr r3, [pc, #276] ; (8008ef8 ) 8008de4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008de8: 2303 movs r3, #3 8008dea: 213c movs r1, #60 ; 0x3c 8008dec: 208c movs r0, #140 ; 0x8c 8008dee: f7fc f875 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008df2: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008df6: b2db uxtb r3, r3 8008df8: 461a mov r2, r3 8008dfa: 4b3f ldr r3, [pc, #252] ; (8008ef8 ) 8008dfc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008e00: 2303 movs r3, #3 8008e02: 213c movs r1, #60 ; 0x3c 8008e04: 2093 movs r0, #147 ; 0x93 8008e06: f7fc f869 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008e0a: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008e0e: b2db uxtb r3, r3 8008e10: 461a mov r2, r3 8008e12: 4b39 ldr r3, [pc, #228] ; (8008ef8 ) 8008e14: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008e18: 2303 movs r3, #3 8008e1a: 213c movs r1, #60 ; 0x3c 8008e1c: 209a movs r0, #154 ; 0x9a 8008e1e: f7fc f85d bl 8004edc if(blk) 8008e22: 4b36 ldr r3, [pc, #216] ; (8008efc ) 8008e24: 681b ldr r3, [r3, #0] 8008e26: 2b00 cmp r3, #0 8008e28: d00b beq.n 8008e42 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008e2a: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008e2e: b2db uxtb r3, r3 8008e30: 461a mov r2, r3 8008e32: 4b31 ldr r3, [pc, #196] ; (8008ef8 ) 8008e34: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008e38: 2303 movs r3, #3 8008e3a: 213c movs r1, #60 ; 0x3c 8008e3c: 20a1 movs r0, #161 ; 0xa1 8008e3e: f7fc f84d bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008e42: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008e46: b2db uxtb r3, r3 8008e48: 461a mov r2, r3 8008e4a: 4b2b ldr r3, [pc, #172] ; (8008ef8 ) 8008e4c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008e50: 2303 movs r3, #3 8008e52: 213c movs r1, #60 ; 0x3c 8008e54: 20a8 movs r0, #168 ; 0xa8 8008e56: f7fc f841 bl 8004edc if(menupos == Kikdt_1) 8008e5a: f004 b86c b.w 800cf36 if(ipt1 == 1) 8008e5e: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008e62: b2db uxtb r3, r3 8008e64: 2b01 cmp r3, #1 8008e66: d14f bne.n 8008f08 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008e68: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008e6c: b2db uxtb r3, r3 8008e6e: 461a mov r2, r3 8008e70: 4b21 ldr r3, [pc, #132] ; (8008ef8 ) 8008e72: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008e76: 2303 movs r3, #3 8008e78: 213c movs r1, #60 ; 0x3c 8008e7a: 208c movs r0, #140 ; 0x8c 8008e7c: f7fc f82e bl 8004edc BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008e80: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008e84: b2db uxtb r3, r3 8008e86: 461a mov r2, r3 8008e88: 4b1b ldr r3, [pc, #108] ; (8008ef8 ) 8008e8a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008e8e: 2303 movs r3, #3 8008e90: 213c movs r1, #60 ; 0x3c 8008e92: 2093 movs r0, #147 ; 0x93 8008e94: f7fc f822 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008e98: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008e9c: b2db uxtb r3, r3 8008e9e: 461a mov r2, r3 8008ea0: 4b15 ldr r3, [pc, #84] ; (8008ef8 ) 8008ea2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008ea6: 2303 movs r3, #3 8008ea8: 213c movs r1, #60 ; 0x3c 8008eaa: 209a movs r0, #154 ; 0x9a 8008eac: f7fc f816 bl 8004edc if(blk) 8008eb0: 4b12 ldr r3, [pc, #72] ; (8008efc ) 8008eb2: 681b ldr r3, [r3, #0] 8008eb4: 2b00 cmp r3, #0 8008eb6: d00b beq.n 8008ed0 BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008eb8: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008ebc: b2db uxtb r3, r3 8008ebe: 461a mov r2, r3 8008ec0: 4b0d ldr r3, [pc, #52] ; (8008ef8 ) 8008ec2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008ec6: 2303 movs r3, #3 8008ec8: 213c movs r1, #60 ; 0x3c 8008eca: 20a1 movs r0, #161 ; 0xa1 8008ecc: f7fc f806 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE); 8008ed0: 2303 movs r3, #3 8008ed2: 4a0b ldr r2, [pc, #44] ; (8008f00 ) 8008ed4: 213c movs r1, #60 ; 0x3c 8008ed6: 20a8 movs r0, #168 ; 0xa8 8008ed8: f7fc f800 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008edc: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008ee0: b2db uxtb r3, r3 8008ee2: 461a mov r2, r3 8008ee4: 4b04 ldr r3, [pc, #16] ; (8008ef8 ) 8008ee6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008eea: 2303 movs r3, #3 8008eec: 213c movs r1, #60 ; 0x3c 8008eee: 20af movs r0, #175 ; 0xaf 8008ef0: f7fb fff4 bl 8004edc if(menupos == Kikdt_1) 8008ef4: f004 b81f b.w 800cf36 8008ef8: 2002096c .word 0x2002096c 8008efc: 2006ba78 .word 0x2006ba78 8008f00: 08018150 .word 0x08018150 8008f04: 20020010 .word 0x20020010 if(ipt1 == 2) 8008f08: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008f0c: b2db uxtb r3, r3 8008f0e: 2b02 cmp r3, #2 8008f10: d147 bne.n 8008fa2 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008f12: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008f16: b2db uxtb r3, r3 8008f18: 461a mov r2, r3 8008f1a: 4bc0 ldr r3, [pc, #768] ; (800921c ) 8008f1c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008f20: 2303 movs r3, #3 8008f22: 213c movs r1, #60 ; 0x3c 8008f24: 208c movs r0, #140 ; 0x8c 8008f26: f7fb ffd9 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008f2a: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008f2e: b2db uxtb r3, r3 8008f30: 461a mov r2, r3 8008f32: 4bba ldr r3, [pc, #744] ; (800921c ) 8008f34: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008f38: 2303 movs r3, #3 8008f3a: 213c movs r1, #60 ; 0x3c 8008f3c: 2093 movs r0, #147 ; 0x93 8008f3e: f7fb ffcd bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008f42: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008f46: b2db uxtb r3, r3 8008f48: 461a mov r2, r3 8008f4a: 4bb4 ldr r3, [pc, #720] ; (800921c ) 8008f4c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008f50: 2303 movs r3, #3 8008f52: 213c movs r1, #60 ; 0x3c 8008f54: 209a movs r0, #154 ; 0x9a 8008f56: f7fb ffc1 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE); 8008f5a: 2303 movs r3, #3 8008f5c: 4ab0 ldr r2, [pc, #704] ; (8009220 ) 8008f5e: 213c movs r1, #60 ; 0x3c 8008f60: 20a1 movs r0, #161 ; 0xa1 8008f62: f7fb ffbb bl 8004edc if(blk) 8008f66: 4baf ldr r3, [pc, #700] ; (8009224 ) 8008f68: 681b ldr r3, [r3, #0] 8008f6a: 2b00 cmp r3, #0 8008f6c: d00b beq.n 8008f86 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 8008f6e: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8008f72: b2db uxtb r3, r3 8008f74: 461a mov r2, r3 8008f76: 4ba9 ldr r3, [pc, #676] ; (800921c ) 8008f78: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008f7c: 2303 movs r3, #3 8008f7e: 213c movs r1, #60 ; 0x3c 8008f80: 20a8 movs r0, #168 ; 0xa8 8008f82: f7fb ffab bl 8004edc BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8008f86: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8008f8a: b2db uxtb r3, r3 8008f8c: 461a mov r2, r3 8008f8e: 4ba3 ldr r3, [pc, #652] ; (800921c ) 8008f90: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008f94: 2303 movs r3, #3 8008f96: 213c movs r1, #60 ; 0x3c 8008f98: 20af movs r0, #175 ; 0xaf 8008f9a: f7fb ff9f bl 8004edc if(menupos == Kikdt_1) 8008f9e: f003 bfca b.w 800cf36 if(ipt1 == 3) 8008fa2: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8008fa6: b2db uxtb r3, r3 8008fa8: 2b03 cmp r3, #3 8008faa: d147 bne.n 800903c BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8008fac: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8008fb0: b2db uxtb r3, r3 8008fb2: 461a mov r2, r3 8008fb4: 4b99 ldr r3, [pc, #612] ; (800921c ) 8008fb6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008fba: 2303 movs r3, #3 8008fbc: 213c movs r1, #60 ; 0x3c 8008fbe: 208c movs r0, #140 ; 0x8c 8008fc0: f7fb ff8c bl 8004edc BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8008fc4: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8008fc8: b2db uxtb r3, r3 8008fca: 461a mov r2, r3 8008fcc: 4b93 ldr r3, [pc, #588] ; (800921c ) 8008fce: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008fd2: 2303 movs r3, #3 8008fd4: 213c movs r1, #60 ; 0x3c 8008fd6: 2093 movs r0, #147 ; 0x93 8008fd8: f7fb ff80 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE); 8008fdc: 2303 movs r3, #3 8008fde: 4a90 ldr r2, [pc, #576] ; (8009220 ) 8008fe0: 213c movs r1, #60 ; 0x3c 8008fe2: 209a movs r0, #154 ; 0x9a 8008fe4: f7fb ff7a bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 8008fe8: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8008fec: b2db uxtb r3, r3 8008fee: 461a mov r2, r3 8008ff0: 4b8a ldr r3, [pc, #552] ; (800921c ) 8008ff2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8008ff6: 2303 movs r3, #3 8008ff8: 213c movs r1, #60 ; 0x3c 8008ffa: 20a1 movs r0, #161 ; 0xa1 8008ffc: f7fb ff6e bl 8004edc if(blk) 8009000: 4b88 ldr r3, [pc, #544] ; (8009224 ) 8009002: 681b ldr r3, [r3, #0] 8009004: 2b00 cmp r3, #0 8009006: d00b beq.n 8009020 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 8009008: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 800900c: b2db uxtb r3, r3 800900e: 461a mov r2, r3 8009010: 4b82 ldr r3, [pc, #520] ; (800921c ) 8009012: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009016: 2303 movs r3, #3 8009018: 213c movs r1, #60 ; 0x3c 800901a: 20a8 movs r0, #168 ; 0xa8 800901c: f7fb ff5e bl 8004edc BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8009020: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8009024: b2db uxtb r3, r3 8009026: 461a mov r2, r3 8009028: 4b7c ldr r3, [pc, #496] ; (800921c ) 800902a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800902e: 2303 movs r3, #3 8009030: 213c movs r1, #60 ; 0x3c 8009032: 20af movs r0, #175 ; 0xaf 8009034: f7fb ff52 bl 8004edc if(menupos == Kikdt_1) 8009038: f003 bf7d b.w 800cf36 if(ipt1 == 4) 800903c: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8009040: b2db uxtb r3, r3 8009042: 2b04 cmp r3, #4 8009044: f043 8777 bne.w 800cf36 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8009048: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 800904c: b2db uxtb r3, r3 800904e: 461a mov r2, r3 8009050: 4b72 ldr r3, [pc, #456] ; (800921c ) 8009052: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009056: 2303 movs r3, #3 8009058: 213c movs r1, #60 ; 0x3c 800905a: 208c movs r0, #140 ; 0x8c 800905c: f7fb ff3e bl 8004edc BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE); 8009060: 2303 movs r3, #3 8009062: 4a6f ldr r2, [pc, #444] ; (8009220 ) 8009064: 213c movs r1, #60 ; 0x3c 8009066: 2093 movs r0, #147 ; 0x93 8009068: f7fb ff38 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE); 800906c: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8009070: b2db uxtb r3, r3 8009072: 461a mov r2, r3 8009074: 4b69 ldr r3, [pc, #420] ; (800921c ) 8009076: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800907a: 2303 movs r3, #3 800907c: 213c movs r1, #60 ; 0x3c 800907e: 209a movs r0, #154 ; 0x9a 8009080: f7fb ff2c bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 8009084: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8009088: b2db uxtb r3, r3 800908a: 461a mov r2, r3 800908c: 4b63 ldr r3, [pc, #396] ; (800921c ) 800908e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009092: 2303 movs r3, #3 8009094: 213c movs r1, #60 ; 0x3c 8009096: 20a1 movs r0, #161 ; 0xa1 8009098: f7fb ff20 bl 8004edc if(blk) 800909c: 4b61 ldr r3, [pc, #388] ; (8009224 ) 800909e: 681b ldr r3, [r3, #0] 80090a0: 2b00 cmp r3, #0 80090a2: d00b beq.n 80090bc BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 80090a4: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 80090a8: b2db uxtb r3, r3 80090aa: 461a mov r2, r3 80090ac: 4b5b ldr r3, [pc, #364] ; (800921c ) 80090ae: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80090b2: 2303 movs r3, #3 80090b4: 213c movs r1, #60 ; 0x3c 80090b6: 20a8 movs r0, #168 ; 0xa8 80090b8: f7fb ff10 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 80090bc: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 80090c0: b2db uxtb r3, r3 80090c2: 461a mov r2, r3 80090c4: 4b55 ldr r3, [pc, #340] ; (800921c ) 80090c6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80090ca: 2303 movs r3, #3 80090cc: 213c movs r1, #60 ; 0x3c 80090ce: 20af movs r0, #175 ; 0xaf 80090d0: f7fb ff04 bl 8004edc if(menupos == Kikdt_1) 80090d4: f003 bf2f b.w 800cf36 if(menupos == Kike_1) 80090d8: 4b53 ldr r3, [pc, #332] ; (8009228 ) 80090da: 781b ldrb r3, [r3, #0] 80090dc: b2db uxtb r3, r3 80090de: 2b06 cmp r3, #6 80090e0: f040 818f bne.w 8009402 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 80090e4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80090e8: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 80090ec: f7fb fe30 bl 8004d50 if(!ipt1) 80090f0: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 80090f4: b2db uxtb r3, r3 80090f6: 2b00 cmp r3, #0 80090f8: d142 bne.n 8009180 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 80090fa: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 80090fe: b2db uxtb r3, r3 8009100: 461a mov r2, r3 8009102: 4b46 ldr r3, [pc, #280] ; (800921c ) 8009104: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009108: 2303 movs r3, #3 800910a: 213c movs r1, #60 ; 0x3c 800910c: 208c movs r0, #140 ; 0x8c 800910e: f7fb fee5 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8009112: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8009116: b2db uxtb r3, r3 8009118: 461a mov r2, r3 800911a: 4b40 ldr r3, [pc, #256] ; (800921c ) 800911c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009120: 2303 movs r3, #3 8009122: 213c movs r1, #60 ; 0x3c 8009124: 2093 movs r0, #147 ; 0x93 8009126: f7fb fed9 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 800912a: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 800912e: b2db uxtb r3, r3 8009130: 461a mov r2, r3 8009132: 4b3a ldr r3, [pc, #232] ; (800921c ) 8009134: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009138: 2303 movs r3, #3 800913a: 213c movs r1, #60 ; 0x3c 800913c: 209a movs r0, #154 ; 0x9a 800913e: f7fb fecd bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 8009142: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8009146: b2db uxtb r3, r3 8009148: 461a mov r2, r3 800914a: 4b34 ldr r3, [pc, #208] ; (800921c ) 800914c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009150: 2303 movs r3, #3 8009152: 213c movs r1, #60 ; 0x3c 8009154: 20a1 movs r0, #161 ; 0xa1 8009156: f7fb fec1 bl 8004edc if(blk) 800915a: 4b32 ldr r3, [pc, #200] ; (8009224 ) 800915c: 681b ldr r3, [r3, #0] 800915e: 2b00 cmp r3, #0 8009160: f003 86e9 beq.w 800cf36 BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE); 8009164: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8009168: b2db uxtb r3, r3 800916a: 461a mov r2, r3 800916c: 4b2b ldr r3, [pc, #172] ; (800921c ) 800916e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009172: 2303 movs r3, #3 8009174: 213c movs r1, #60 ; 0x3c 8009176: 20a8 movs r0, #168 ; 0xa8 8009178: f7fb feb0 bl 8004edc if(menupos == Kikdt_1) 800917c: f003 bedb b.w 800cf36 if(ipt1 == 1) 8009180: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8009184: b2db uxtb r3, r3 8009186: 2b01 cmp r3, #1 8009188: d150 bne.n 800922c BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 800918a: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 800918e: b2db uxtb r3, r3 8009190: 461a mov r2, r3 8009192: 4b22 ldr r3, [pc, #136] ; (800921c ) 8009194: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009198: 2303 movs r3, #3 800919a: 213c movs r1, #60 ; 0x3c 800919c: 208c movs r0, #140 ; 0x8c 800919e: f7fb fe9d bl 8004edc BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 80091a2: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 80091a6: b2db uxtb r3, r3 80091a8: 461a mov r2, r3 80091aa: 4b1c ldr r3, [pc, #112] ; (800921c ) 80091ac: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80091b0: 2303 movs r3, #3 80091b2: 213c movs r1, #60 ; 0x3c 80091b4: 2093 movs r0, #147 ; 0x93 80091b6: f7fb fe91 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 80091ba: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 80091be: b2db uxtb r3, r3 80091c0: 461a mov r2, r3 80091c2: 4b16 ldr r3, [pc, #88] ; (800921c ) 80091c4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80091c8: 2303 movs r3, #3 80091ca: 213c movs r1, #60 ; 0x3c 80091cc: 209a movs r0, #154 ; 0x9a 80091ce: f7fb fe85 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 80091d2: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 80091d6: b2db uxtb r3, r3 80091d8: 461a mov r2, r3 80091da: 4b10 ldr r3, [pc, #64] ; (800921c ) 80091dc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80091e0: 2303 movs r3, #3 80091e2: 213c movs r1, #60 ; 0x3c 80091e4: 20a1 movs r0, #161 ; 0xa1 80091e6: f7fb fe79 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE); 80091ea: 2303 movs r3, #3 80091ec: 4a0c ldr r2, [pc, #48] ; (8009220 ) 80091ee: 213c movs r1, #60 ; 0x3c 80091f0: 20a8 movs r0, #168 ; 0xa8 80091f2: f7fb fe73 bl 8004edc if(blk) 80091f6: 4b0b ldr r3, [pc, #44] ; (8009224 ) 80091f8: 681b ldr r3, [r3, #0] 80091fa: 2b00 cmp r3, #0 80091fc: f003 869b beq.w 800cf36 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8009200: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8009204: b2db uxtb r3, r3 8009206: 461a mov r2, r3 8009208: 4b04 ldr r3, [pc, #16] ; (800921c ) 800920a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800920e: 2303 movs r3, #3 8009210: 213c movs r1, #60 ; 0x3c 8009212: 20af movs r0, #175 ; 0xaf 8009214: f7fb fe62 bl 8004edc if(menupos == Kikdt_1) 8009218: f003 be8d b.w 800cf36 800921c: 2002096c .word 0x2002096c 8009220: 08018150 .word 0x08018150 8009224: 2006ba78 .word 0x2006ba78 8009228: 20020010 .word 0x20020010 if(ipt1 == 2) 800922c: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8009230: b2db uxtb r3, r3 8009232: 2b02 cmp r3, #2 8009234: d148 bne.n 80092c8 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8009236: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 800923a: b2db uxtb r3, r3 800923c: 461a mov r2, r3 800923e: 4bc4 ldr r3, [pc, #784] ; (8009550 ) 8009240: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009244: 2303 movs r3, #3 8009246: 213c movs r1, #60 ; 0x3c 8009248: 208c movs r0, #140 ; 0x8c 800924a: f7fb fe47 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 800924e: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8009252: b2db uxtb r3, r3 8009254: 461a mov r2, r3 8009256: 4bbe ldr r3, [pc, #760] ; (8009550 ) 8009258: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800925c: 2303 movs r3, #3 800925e: 213c movs r1, #60 ; 0x3c 8009260: 2093 movs r0, #147 ; 0x93 8009262: f7fb fe3b bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8009266: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 800926a: b2db uxtb r3, r3 800926c: 461a mov r2, r3 800926e: 4bb8 ldr r3, [pc, #736] ; (8009550 ) 8009270: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009274: 2303 movs r3, #3 8009276: 213c movs r1, #60 ; 0x3c 8009278: 209a movs r0, #154 ; 0x9a 800927a: f7fb fe2f bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE); 800927e: 2303 movs r3, #3 8009280: 4ab4 ldr r2, [pc, #720] ; (8009554 ) 8009282: 213c movs r1, #60 ; 0x3c 8009284: 20a1 movs r0, #161 ; 0xa1 8009286: f7fb fe29 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 800928a: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 800928e: b2db uxtb r3, r3 8009290: 461a mov r2, r3 8009292: 4baf ldr r3, [pc, #700] ; (8009550 ) 8009294: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009298: 2303 movs r3, #3 800929a: 213c movs r1, #60 ; 0x3c 800929c: 20a8 movs r0, #168 ; 0xa8 800929e: f7fb fe1d bl 8004edc if(blk) 80092a2: 4bad ldr r3, [pc, #692] ; (8009558 ) 80092a4: 681b ldr r3, [r3, #0] 80092a6: 2b00 cmp r3, #0 80092a8: f003 8645 beq.w 800cf36 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 80092ac: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 80092b0: b2db uxtb r3, r3 80092b2: 461a mov r2, r3 80092b4: 4ba6 ldr r3, [pc, #664] ; (8009550 ) 80092b6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80092ba: 2303 movs r3, #3 80092bc: 213c movs r1, #60 ; 0x3c 80092be: 20af movs r0, #175 ; 0xaf 80092c0: f7fb fe0c bl 8004edc if(menupos == Kikdt_1) 80092c4: f003 be37 b.w 800cf36 if(ipt1 == 3) 80092c8: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 80092cc: b2db uxtb r3, r3 80092ce: 2b03 cmp r3, #3 80092d0: d148 bne.n 8009364 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 80092d2: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 80092d6: b2db uxtb r3, r3 80092d8: 461a mov r2, r3 80092da: 4b9d ldr r3, [pc, #628] ; (8009550 ) 80092dc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80092e0: 2303 movs r3, #3 80092e2: 213c movs r1, #60 ; 0x3c 80092e4: 208c movs r0, #140 ; 0x8c 80092e6: f7fb fdf9 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 80092ea: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 80092ee: b2db uxtb r3, r3 80092f0: 461a mov r2, r3 80092f2: 4b97 ldr r3, [pc, #604] ; (8009550 ) 80092f4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80092f8: 2303 movs r3, #3 80092fa: 213c movs r1, #60 ; 0x3c 80092fc: 2093 movs r0, #147 ; 0x93 80092fe: f7fb fded bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE); 8009302: 2303 movs r3, #3 8009304: 4a93 ldr r2, [pc, #588] ; (8009554 ) 8009306: 213c movs r1, #60 ; 0x3c 8009308: 209a movs r0, #154 ; 0x9a 800930a: f7fb fde7 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 800930e: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8009312: b2db uxtb r3, r3 8009314: 461a mov r2, r3 8009316: 4b8e ldr r3, [pc, #568] ; (8009550 ) 8009318: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800931c: 2303 movs r3, #3 800931e: 213c movs r1, #60 ; 0x3c 8009320: 20a1 movs r0, #161 ; 0xa1 8009322: f7fb fddb bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 8009326: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 800932a: b2db uxtb r3, r3 800932c: 461a mov r2, r3 800932e: 4b88 ldr r3, [pc, #544] ; (8009550 ) 8009330: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009334: 2303 movs r3, #3 8009336: 213c movs r1, #60 ; 0x3c 8009338: 20a8 movs r0, #168 ; 0xa8 800933a: f7fb fdcf bl 8004edc if(blk) 800933e: 4b86 ldr r3, [pc, #536] ; (8009558 ) 8009340: 681b ldr r3, [r3, #0] 8009342: 2b00 cmp r3, #0 8009344: f003 85f7 beq.w 800cf36 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8009348: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 800934c: b2db uxtb r3, r3 800934e: 461a mov r2, r3 8009350: 4b7f ldr r3, [pc, #508] ; (8009550 ) 8009352: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009356: 2303 movs r3, #3 8009358: 213c movs r1, #60 ; 0x3c 800935a: 20af movs r0, #175 ; 0xaf 800935c: f7fb fdbe bl 8004edc if(menupos == Kikdt_1) 8009360: f003 bde9 b.w 800cf36 if(ipt1 == 4) 8009364: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8009368: b2db uxtb r3, r3 800936a: 2b04 cmp r3, #4 800936c: f043 85e3 bne.w 800cf36 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8009370: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8009374: b2db uxtb r3, r3 8009376: 461a mov r2, r3 8009378: 4b75 ldr r3, [pc, #468] ; (8009550 ) 800937a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800937e: 2303 movs r3, #3 8009380: 213c movs r1, #60 ; 0x3c 8009382: 208c movs r0, #140 ; 0x8c 8009384: f7fb fdaa bl 8004edc BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE); 8009388: 2303 movs r3, #3 800938a: 4a72 ldr r2, [pc, #456] ; (8009554 ) 800938c: 213c movs r1, #60 ; 0x3c 800938e: 2093 movs r0, #147 ; 0x93 8009390: f7fb fda4 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE); 8009394: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8009398: b2db uxtb r3, r3 800939a: 461a mov r2, r3 800939c: 4b6c ldr r3, [pc, #432] ; (8009550 ) 800939e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80093a2: 2303 movs r3, #3 80093a4: 213c movs r1, #60 ; 0x3c 80093a6: 209a movs r0, #154 ; 0x9a 80093a8: f7fb fd98 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 80093ac: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 80093b0: b2db uxtb r3, r3 80093b2: 461a mov r2, r3 80093b4: 4b66 ldr r3, [pc, #408] ; (8009550 ) 80093b6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80093ba: 2303 movs r3, #3 80093bc: 213c movs r1, #60 ; 0x3c 80093be: 20a1 movs r0, #161 ; 0xa1 80093c0: f7fb fd8c bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 80093c4: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 80093c8: b2db uxtb r3, r3 80093ca: 461a mov r2, r3 80093cc: 4b60 ldr r3, [pc, #384] ; (8009550 ) 80093ce: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80093d2: 2303 movs r3, #3 80093d4: 213c movs r1, #60 ; 0x3c 80093d6: 20a8 movs r0, #168 ; 0xa8 80093d8: f7fb fd80 bl 8004edc if(blk) 80093dc: 4b5e ldr r3, [pc, #376] ; (8009558 ) 80093de: 681b ldr r3, [r3, #0] 80093e0: 2b00 cmp r3, #0 80093e2: f003 85a8 beq.w 800cf36 BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 80093e6: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 80093ea: b2db uxtb r3, r3 80093ec: 461a mov r2, r3 80093ee: 4b58 ldr r3, [pc, #352] ; (8009550 ) 80093f0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80093f4: 2303 movs r3, #3 80093f6: 213c movs r1, #60 ; 0x3c 80093f8: 20af movs r0, #175 ; 0xaf 80093fa: f7fb fd6f bl 8004edc if(menupos == Kikdt_1) 80093fe: f003 bd9a b.w 800cf36 if(menupos == Kpt_1) 8009402: 4b56 ldr r3, [pc, #344] ; (800955c ) 8009404: 781b ldrb r3, [r3, #0] 8009406: b2db uxtb r3, r3 8009408: 2b07 cmp r3, #7 800940a: f043 8594 bne.w 800cf36 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800940e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8009412: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8009416: f7fb fc9b bl 8004d50 if(!ipt1) 800941a: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 800941e: b2db uxtb r3, r3 8009420: 2b00 cmp r3, #0 8009422: d148 bne.n 80094b6 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8009424: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8009428: b2db uxtb r3, r3 800942a: 461a mov r2, r3 800942c: 4b48 ldr r3, [pc, #288] ; (8009550 ) 800942e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009432: 2303 movs r3, #3 8009434: 213c movs r1, #60 ; 0x3c 8009436: 208c movs r0, #140 ; 0x8c 8009438: f7fb fd50 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 800943c: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8009440: b2db uxtb r3, r3 8009442: 461a mov r2, r3 8009444: 4b42 ldr r3, [pc, #264] ; (8009550 ) 8009446: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800944a: 2303 movs r3, #3 800944c: 213c movs r1, #60 ; 0x3c 800944e: 2093 movs r0, #147 ; 0x93 8009450: f7fb fd44 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 8009454: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 8009458: b2db uxtb r3, r3 800945a: 461a mov r2, r3 800945c: 4b3c ldr r3, [pc, #240] ; (8009550 ) 800945e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009462: 2303 movs r3, #3 8009464: 213c movs r1, #60 ; 0x3c 8009466: 209a movs r0, #154 ; 0x9a 8009468: f7fb fd38 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 800946c: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8009470: b2db uxtb r3, r3 8009472: 461a mov r2, r3 8009474: 4b36 ldr r3, [pc, #216] ; (8009550 ) 8009476: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800947a: 2303 movs r3, #3 800947c: 213c movs r1, #60 ; 0x3c 800947e: 20a1 movs r0, #161 ; 0xa1 8009480: f7fb fd2c bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE); 8009484: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8009488: b2db uxtb r3, r3 800948a: 461a mov r2, r3 800948c: 4b30 ldr r3, [pc, #192] ; (8009550 ) 800948e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009492: 2303 movs r3, #3 8009494: 213c movs r1, #60 ; 0x3c 8009496: 20a8 movs r0, #168 ; 0xa8 8009498: f7fb fd20 bl 8004edc if(blk) 800949c: 4b2e ldr r3, [pc, #184] ; (8009558 ) 800949e: 681b ldr r3, [r3, #0] 80094a0: 2b00 cmp r3, #0 80094a2: f003 8548 beq.w 800cf36 BSP_LCD_DisplayStringAt(140+35, 60, ".", LEFT_MODE); 80094a6: 2303 movs r3, #3 80094a8: 4a2a ldr r2, [pc, #168] ; (8009554 ) 80094aa: 213c movs r1, #60 ; 0x3c 80094ac: 20af movs r0, #175 ; 0xaf 80094ae: f7fb fd15 bl 8004edc if(menupos == Kikdt_1) 80094b2: f003 bd40 b.w 800cf36 if(ipt1 == 1) 80094b6: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 80094ba: b2db uxtb r3, r3 80094bc: 2b01 cmp r3, #1 80094be: d14f bne.n 8009560 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 80094c0: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 80094c4: b2db uxtb r3, r3 80094c6: 461a mov r2, r3 80094c8: 4b21 ldr r3, [pc, #132] ; (8009550 ) 80094ca: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80094ce: 2303 movs r3, #3 80094d0: 213c movs r1, #60 ; 0x3c 80094d2: 208c movs r0, #140 ; 0x8c 80094d4: f7fb fd02 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 80094d8: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 80094dc: b2db uxtb r3, r3 80094de: 461a mov r2, r3 80094e0: 4b1b ldr r3, [pc, #108] ; (8009550 ) 80094e2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80094e6: 2303 movs r3, #3 80094e8: 213c movs r1, #60 ; 0x3c 80094ea: 2093 movs r0, #147 ; 0x93 80094ec: f7fb fcf6 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 80094f0: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 80094f4: b2db uxtb r3, r3 80094f6: 461a mov r2, r3 80094f8: 4b15 ldr r3, [pc, #84] ; (8009550 ) 80094fa: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80094fe: 2303 movs r3, #3 8009500: 213c movs r1, #60 ; 0x3c 8009502: 209a movs r0, #154 ; 0x9a 8009504: f7fb fcea bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE); 8009508: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 800950c: b2db uxtb r3, r3 800950e: 461a mov r2, r3 8009510: 4b0f ldr r3, [pc, #60] ; (8009550 ) 8009512: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009516: 2303 movs r3, #3 8009518: 213c movs r1, #60 ; 0x3c 800951a: 20a1 movs r0, #161 ; 0xa1 800951c: f7fb fcde bl 8004edc if(blk) 8009520: 4b0d ldr r3, [pc, #52] ; (8009558 ) 8009522: 681b ldr r3, [r3, #0] 8009524: 2b00 cmp r3, #0 8009526: d005 beq.n 8009534 BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE); 8009528: 2303 movs r3, #3 800952a: 4a0a ldr r2, [pc, #40] ; (8009554 ) 800952c: 213c movs r1, #60 ; 0x3c 800952e: 20a8 movs r0, #168 ; 0xa8 8009530: f7fb fcd4 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8009534: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8009538: b2db uxtb r3, r3 800953a: 461a mov r2, r3 800953c: 4b04 ldr r3, [pc, #16] ; (8009550 ) 800953e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009542: 2303 movs r3, #3 8009544: 213c movs r1, #60 ; 0x3c 8009546: 20af movs r0, #175 ; 0xaf 8009548: f7fb fcc8 bl 8004edc if(menupos == Kikdt_1) 800954c: f003 bcf3 b.w 800cf36 8009550: 2002096c .word 0x2002096c 8009554: 08018150 .word 0x08018150 8009558: 2006ba78 .word 0x2006ba78 800955c: 20020010 .word 0x20020010 if(ipt1 == 2) 8009560: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8009564: b2db uxtb r3, r3 8009566: 2b02 cmp r3, #2 8009568: d147 bne.n 80095fa BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 800956a: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 800956e: b2db uxtb r3, r3 8009570: 461a mov r2, r3 8009572: 4bca ldr r3, [pc, #808] ; (800989c ) 8009574: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009578: 2303 movs r3, #3 800957a: 213c movs r1, #60 ; 0x3c 800957c: 208c movs r0, #140 ; 0x8c 800957e: f7fb fcad bl 8004edc BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 8009582: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8009586: b2db uxtb r3, r3 8009588: 461a mov r2, r3 800958a: 4bc4 ldr r3, [pc, #784] ; (800989c ) 800958c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009590: 2303 movs r3, #3 8009592: 213c movs r1, #60 ; 0x3c 8009594: 2093 movs r0, #147 ; 0x93 8009596: f7fb fca1 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE); 800959a: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 800959e: b2db uxtb r3, r3 80095a0: 461a mov r2, r3 80095a2: 4bbe ldr r3, [pc, #760] ; (800989c ) 80095a4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80095a8: 2303 movs r3, #3 80095aa: 213c movs r1, #60 ; 0x3c 80095ac: 209a movs r0, #154 ; 0x9a 80095ae: f7fb fc95 bl 8004edc if(blk) 80095b2: 4bbb ldr r3, [pc, #748] ; (80098a0 ) 80095b4: 681b ldr r3, [r3, #0] 80095b6: 2b00 cmp r3, #0 80095b8: d005 beq.n 80095c6 BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE); 80095ba: 2303 movs r3, #3 80095bc: 4ab9 ldr r2, [pc, #740] ; (80098a4 ) 80095be: 213c movs r1, #60 ; 0x3c 80095c0: 20a1 movs r0, #161 ; 0xa1 80095c2: f7fb fc8b bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 80095c6: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 80095ca: b2db uxtb r3, r3 80095cc: 461a mov r2, r3 80095ce: 4bb3 ldr r3, [pc, #716] ; (800989c ) 80095d0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80095d4: 2303 movs r3, #3 80095d6: 213c movs r1, #60 ; 0x3c 80095d8: 20a8 movs r0, #168 ; 0xa8 80095da: f7fb fc7f bl 8004edc BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 80095de: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 80095e2: b2db uxtb r3, r3 80095e4: 461a mov r2, r3 80095e6: 4bad ldr r3, [pc, #692] ; (800989c ) 80095e8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80095ec: 2303 movs r3, #3 80095ee: 213c movs r1, #60 ; 0x3c 80095f0: 20af movs r0, #175 ; 0xaf 80095f2: f7fb fc73 bl 8004edc if(menupos == Kikdt_1) 80095f6: f003 bc9e b.w 800cf36 if(ipt1 == 3) 80095fa: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 80095fe: b2db uxtb r3, r3 8009600: 2b03 cmp r3, #3 8009602: d147 bne.n 8009694 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 8009604: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 8009608: b2db uxtb r3, r3 800960a: 461a mov r2, r3 800960c: 4ba3 ldr r3, [pc, #652] ; (800989c ) 800960e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009612: 2303 movs r3, #3 8009614: 213c movs r1, #60 ; 0x3c 8009616: 208c movs r0, #140 ; 0x8c 8009618: f7fb fc60 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE); 800961c: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 8009620: b2db uxtb r3, r3 8009622: 461a mov r2, r3 8009624: 4b9d ldr r3, [pc, #628] ; (800989c ) 8009626: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800962a: 2303 movs r3, #3 800962c: 213c movs r1, #60 ; 0x3c 800962e: 2093 movs r0, #147 ; 0x93 8009630: f7fb fc54 bl 8004edc if(blk) 8009634: 4b9a ldr r3, [pc, #616] ; (80098a0 ) 8009636: 681b ldr r3, [r3, #0] 8009638: 2b00 cmp r3, #0 800963a: d005 beq.n 8009648 BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE); 800963c: 2303 movs r3, #3 800963e: 4a99 ldr r2, [pc, #612] ; (80098a4 ) 8009640: 213c movs r1, #60 ; 0x3c 8009642: 209a movs r0, #154 ; 0x9a 8009644: f7fb fc4a bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 8009648: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 800964c: b2db uxtb r3, r3 800964e: 461a mov r2, r3 8009650: 4b92 ldr r3, [pc, #584] ; (800989c ) 8009652: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009656: 2303 movs r3, #3 8009658: 213c movs r1, #60 ; 0x3c 800965a: 20a1 movs r0, #161 ; 0xa1 800965c: f7fb fc3e bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 8009660: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8009664: b2db uxtb r3, r3 8009666: 461a mov r2, r3 8009668: 4b8c ldr r3, [pc, #560] ; (800989c ) 800966a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800966e: 2303 movs r3, #3 8009670: 213c movs r1, #60 ; 0x3c 8009672: 20a8 movs r0, #168 ; 0xa8 8009674: f7fb fc32 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8009678: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 800967c: b2db uxtb r3, r3 800967e: 461a mov r2, r3 8009680: 4b86 ldr r3, [pc, #536] ; (800989c ) 8009682: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009686: 2303 movs r3, #3 8009688: 213c movs r1, #60 ; 0x3c 800968a: 20af movs r0, #175 ; 0xaf 800968c: f7fb fc26 bl 8004edc if(menupos == Kikdt_1) 8009690: f003 bc51 b.w 800cf36 if(ipt1 == 4) 8009694: f897 3318 ldrb.w r3, [r7, #792] ; 0x318 8009698: b2db uxtb r3, r3 800969a: 2b04 cmp r3, #4 800969c: f043 844b bne.w 800cf36 BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE); 80096a0: f897 331f ldrb.w r3, [r7, #799] ; 0x31f 80096a4: b2db uxtb r3, r3 80096a6: 461a mov r2, r3 80096a8: 4b7c ldr r3, [pc, #496] ; (800989c ) 80096aa: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80096ae: 2303 movs r3, #3 80096b0: 213c movs r1, #60 ; 0x3c 80096b2: 208c movs r0, #140 ; 0x8c 80096b4: f7fb fc12 bl 8004edc if(blk) 80096b8: 4b79 ldr r3, [pc, #484] ; (80098a0 ) 80096ba: 681b ldr r3, [r3, #0] 80096bc: 2b00 cmp r3, #0 80096be: d005 beq.n 80096cc BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE); 80096c0: 2303 movs r3, #3 80096c2: 4a78 ldr r2, [pc, #480] ; (80098a4 ) 80096c4: 213c movs r1, #60 ; 0x3c 80096c6: 2093 movs r0, #147 ; 0x93 80096c8: f7fb fc08 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE); 80096cc: f897 331e ldrb.w r3, [r7, #798] ; 0x31e 80096d0: b2db uxtb r3, r3 80096d2: 461a mov r2, r3 80096d4: 4b71 ldr r3, [pc, #452] ; (800989c ) 80096d6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80096da: 2303 movs r3, #3 80096dc: 213c movs r1, #60 ; 0x3c 80096de: 209a movs r0, #154 ; 0x9a 80096e0: f7fb fbfc bl 8004edc BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE); 80096e4: f897 331d ldrb.w r3, [r7, #797] ; 0x31d 80096e8: b2db uxtb r3, r3 80096ea: 461a mov r2, r3 80096ec: 4b6b ldr r3, [pc, #428] ; (800989c ) 80096ee: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80096f2: 2303 movs r3, #3 80096f4: 213c movs r1, #60 ; 0x3c 80096f6: 20a1 movs r0, #161 ; 0xa1 80096f8: f7fb fbf0 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE); 80096fc: f897 331c ldrb.w r3, [r7, #796] ; 0x31c 8009700: b2db uxtb r3, r3 8009702: 461a mov r2, r3 8009704: 4b65 ldr r3, [pc, #404] ; (800989c ) 8009706: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800970a: 2303 movs r3, #3 800970c: 213c movs r1, #60 ; 0x3c 800970e: 20a8 movs r0, #168 ; 0xa8 8009710: f7fb fbe4 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE); 8009714: f897 331b ldrb.w r3, [r7, #795] ; 0x31b 8009718: b2db uxtb r3, r3 800971a: 461a mov r2, r3 800971c: 4b5f ldr r3, [pc, #380] ; (800989c ) 800971e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009722: 2303 movs r3, #3 8009724: 213c movs r1, #60 ; 0x3c 8009726: 20af movs r0, #175 ; 0xaf 8009728: f7fb fbd8 bl 8004edc if(menupos == Kikdt_1) 800972c: f003 bc03 b.w 800cf36 if(menupos >= Kikdt_2 && menupos <= Kpt_2) 8009730: 4b5d ldr r3, [pc, #372] ; (80098a8 ) 8009732: 781b ldrb r3, [r3, #0] 8009734: b2db uxtb r3, r3 8009736: 2b09 cmp r3, #9 8009738: f241 8151 bls.w 800a9de 800973c: 4b5a ldr r3, [pc, #360] ; (80098a8 ) 800973e: 781b ldrb r3, [r3, #0] 8009740: b2db uxtb r3, r3 8009742: 2b0f cmp r3, #15 8009744: f201 814b bhi.w 800a9de LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8009748: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800974c: 4857 ldr r0, [pc, #348] ; (80098ac ) 800974e: f7fb faff bl 8004d50 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 8009752: f507 728e add.w r2, r7, #284 ; 0x11c 8009756: 2303 movs r3, #3 8009758: 213c movs r1, #60 ; 0x3c 800975a: 208c movs r0, #140 ; 0x8c 800975c: f7fb fbbe bl 8004edc BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 8009760: f107 02a4 add.w r2, r7, #164 ; 0xa4 8009764: 2303 movs r3, #3 8009766: 2164 movs r1, #100 ; 0x64 8009768: 208c movs r0, #140 ; 0x8c 800976a: f7fb fbb7 bl 8004edc BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 800976e: f107 0268 add.w r2, r7, #104 ; 0x68 8009772: 2303 movs r3, #3 8009774: 2178 movs r1, #120 ; 0x78 8009776: 208c movs r0, #140 ; 0x8c 8009778: f7fb fbb0 bl 8004edc if(menupos == Kikdt_2) 800977c: 4b4a ldr r3, [pc, #296] ; (80098a8 ) 800977e: 781b ldrb r3, [r3, #0] 8009780: b2db uxtb r3, r3 8009782: 2b0a cmp r3, #10 8009784: f040 814c bne.w 8009a20 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8009788: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800978c: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8009790: f7fb fade bl 8004d50 if(blk) 8009794: 4b42 ldr r3, [pc, #264] ; (80098a0 ) 8009796: 681b ldr r3, [r3, #0] 8009798: 2b00 cmp r3, #0 800979a: d00b beq.n 80097b4 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800979c: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 80097a0: b2db uxtb r3, r3 80097a2: 461a mov r2, r3 80097a4: 4b3d ldr r3, [pc, #244] ; (800989c ) 80097a6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80097aa: 2303 movs r3, #3 80097ac: 2150 movs r1, #80 ; 0x50 80097ae: 208c movs r0, #140 ; 0x8c 80097b0: f7fb fb94 bl 8004edc if(!ipt2) 80097b4: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 80097b8: b2db uxtb r3, r3 80097ba: 2b00 cmp r3, #0 80097bc: d131 bne.n 8009822 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 80097be: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 80097c2: b2db uxtb r3, r3 80097c4: 461a mov r2, r3 80097c6: 4b35 ldr r3, [pc, #212] ; (800989c ) 80097c8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80097cc: 2303 movs r3, #3 80097ce: 2150 movs r1, #80 ; 0x50 80097d0: 2093 movs r0, #147 ; 0x93 80097d2: f7fb fb83 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 80097d6: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 80097da: b2db uxtb r3, r3 80097dc: 461a mov r2, r3 80097de: 4b2f ldr r3, [pc, #188] ; (800989c ) 80097e0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80097e4: 2303 movs r3, #3 80097e6: 2150 movs r1, #80 ; 0x50 80097e8: 209a movs r0, #154 ; 0x9a 80097ea: f7fb fb77 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 80097ee: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 80097f2: b2db uxtb r3, r3 80097f4: 461a mov r2, r3 80097f6: 4b29 ldr r3, [pc, #164] ; (800989c ) 80097f8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80097fc: 2303 movs r3, #3 80097fe: 2150 movs r1, #80 ; 0x50 8009800: 20a1 movs r0, #161 ; 0xa1 8009802: f7fb fb6b bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009806: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800980a: b2db uxtb r3, r3 800980c: 461a mov r2, r3 800980e: 4b23 ldr r3, [pc, #140] ; (800989c ) 8009810: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009814: 2303 movs r3, #3 8009816: 2150 movs r1, #80 ; 0x50 8009818: 20a8 movs r0, #168 ; 0xa8 800981a: f7fb fb5f bl 8004edc if(menupos == Kikdt_2) 800981e: f003 bb8d b.w 800cf3c if(ipt2 == 1) 8009822: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009826: b2db uxtb r3, r3 8009828: 2b01 cmp r3, #1 800982a: d141 bne.n 80098b0 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800982c: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009830: b2db uxtb r3, r3 8009832: 461a mov r2, r3 8009834: 4b19 ldr r3, [pc, #100] ; (800989c ) 8009836: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800983a: 2303 movs r3, #3 800983c: 2150 movs r1, #80 ; 0x50 800983e: 2093 movs r0, #147 ; 0x93 8009840: f7fb fb4c bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 8009844: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 8009848: b2db uxtb r3, r3 800984a: 461a mov r2, r3 800984c: 4b13 ldr r3, [pc, #76] ; (800989c ) 800984e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009852: 2303 movs r3, #3 8009854: 2150 movs r1, #80 ; 0x50 8009856: 209a movs r0, #154 ; 0x9a 8009858: f7fb fb40 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 800985c: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 8009860: b2db uxtb r3, r3 8009862: 461a mov r2, r3 8009864: 4b0d ldr r3, [pc, #52] ; (800989c ) 8009866: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800986a: 2303 movs r3, #3 800986c: 2150 movs r1, #80 ; 0x50 800986e: 20a1 movs r0, #161 ; 0xa1 8009870: f7fb fb34 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE); 8009874: 2303 movs r3, #3 8009876: 4a0b ldr r2, [pc, #44] ; (80098a4 ) 8009878: 2150 movs r1, #80 ; 0x50 800987a: 20a8 movs r0, #168 ; 0xa8 800987c: f7fb fb2e bl 8004edc BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009880: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009884: b2db uxtb r3, r3 8009886: 461a mov r2, r3 8009888: 4b04 ldr r3, [pc, #16] ; (800989c ) 800988a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800988e: 2303 movs r3, #3 8009890: 2150 movs r1, #80 ; 0x50 8009892: 20af movs r0, #175 ; 0xaf 8009894: f7fb fb22 bl 8004edc if(menupos == Kikdt_2) 8009898: f003 bb50 b.w 800cf3c 800989c: 2002096c .word 0x2002096c 80098a0: 2006ba78 .word 0x2006ba78 80098a4: 08018150 .word 0x08018150 80098a8: 20020010 .word 0x20020010 80098ac: ffd8aa57 .word 0xffd8aa57 if(ipt2 == 2) 80098b0: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 80098b4: b2db uxtb r3, r3 80098b6: 2b02 cmp r3, #2 80098b8: d137 bne.n 800992a BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 80098ba: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 80098be: b2db uxtb r3, r3 80098c0: 461a mov r2, r3 80098c2: 4bce ldr r3, [pc, #824] ; (8009bfc ) 80098c4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80098c8: 2303 movs r3, #3 80098ca: 2150 movs r1, #80 ; 0x50 80098cc: 2093 movs r0, #147 ; 0x93 80098ce: f7fb fb05 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 80098d2: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 80098d6: b2db uxtb r3, r3 80098d8: 461a mov r2, r3 80098da: 4bc8 ldr r3, [pc, #800] ; (8009bfc ) 80098dc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80098e0: 2303 movs r3, #3 80098e2: 2150 movs r1, #80 ; 0x50 80098e4: 209a movs r0, #154 ; 0x9a 80098e6: f7fb faf9 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE); 80098ea: 2303 movs r3, #3 80098ec: 4ac4 ldr r2, [pc, #784] ; (8009c00 ) 80098ee: 2150 movs r1, #80 ; 0x50 80098f0: 20a1 movs r0, #161 ; 0xa1 80098f2: f7fb faf3 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 80098f6: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 80098fa: b2db uxtb r3, r3 80098fc: 461a mov r2, r3 80098fe: 4bbf ldr r3, [pc, #764] ; (8009bfc ) 8009900: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009904: 2303 movs r3, #3 8009906: 2150 movs r1, #80 ; 0x50 8009908: 20a8 movs r0, #168 ; 0xa8 800990a: f7fb fae7 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800990e: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009912: b2db uxtb r3, r3 8009914: 461a mov r2, r3 8009916: 4bb9 ldr r3, [pc, #740] ; (8009bfc ) 8009918: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800991c: 2303 movs r3, #3 800991e: 2150 movs r1, #80 ; 0x50 8009920: 20af movs r0, #175 ; 0xaf 8009922: f7fb fadb bl 8004edc if(menupos == Kikdt_2) 8009926: f003 bb09 b.w 800cf3c if(ipt2 == 3) 800992a: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800992e: b2db uxtb r3, r3 8009930: 2b03 cmp r3, #3 8009932: d137 bne.n 80099a4 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009934: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009938: b2db uxtb r3, r3 800993a: 461a mov r2, r3 800993c: 4baf ldr r3, [pc, #700] ; (8009bfc ) 800993e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009942: 2303 movs r3, #3 8009944: 2150 movs r1, #80 ; 0x50 8009946: 2093 movs r0, #147 ; 0x93 8009948: f7fb fac8 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE); 800994c: 2303 movs r3, #3 800994e: 4aac ldr r2, [pc, #688] ; (8009c00 ) 8009950: 2150 movs r1, #80 ; 0x50 8009952: 209a movs r0, #154 ; 0x9a 8009954: f7fb fac2 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 8009958: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800995c: b2db uxtb r3, r3 800995e: 461a mov r2, r3 8009960: 4ba6 ldr r3, [pc, #664] ; (8009bfc ) 8009962: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009966: 2303 movs r3, #3 8009968: 2150 movs r1, #80 ; 0x50 800996a: 20a1 movs r0, #161 ; 0xa1 800996c: f7fb fab6 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 8009970: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 8009974: b2db uxtb r3, r3 8009976: 461a mov r2, r3 8009978: 4ba0 ldr r3, [pc, #640] ; (8009bfc ) 800997a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800997e: 2303 movs r3, #3 8009980: 2150 movs r1, #80 ; 0x50 8009982: 20a8 movs r0, #168 ; 0xa8 8009984: f7fb faaa bl 8004edc BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009988: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800998c: b2db uxtb r3, r3 800998e: 461a mov r2, r3 8009990: 4b9a ldr r3, [pc, #616] ; (8009bfc ) 8009992: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009996: 2303 movs r3, #3 8009998: 2150 movs r1, #80 ; 0x50 800999a: 20af movs r0, #175 ; 0xaf 800999c: f7fb fa9e bl 8004edc if(menupos == Kikdt_2) 80099a0: f003 bacc b.w 800cf3c if(ipt2 == 4) 80099a4: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 80099a8: b2db uxtb r3, r3 80099aa: 2b04 cmp r3, #4 80099ac: f043 82c6 bne.w 800cf3c BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE); 80099b0: 2303 movs r3, #3 80099b2: 4a93 ldr r2, [pc, #588] ; (8009c00 ) 80099b4: 2150 movs r1, #80 ; 0x50 80099b6: 2093 movs r0, #147 ; 0x93 80099b8: f7fb fa90 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE); 80099bc: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 80099c0: b2db uxtb r3, r3 80099c2: 461a mov r2, r3 80099c4: 4b8d ldr r3, [pc, #564] ; (8009bfc ) 80099c6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80099ca: 2303 movs r3, #3 80099cc: 2150 movs r1, #80 ; 0x50 80099ce: 209a movs r0, #154 ; 0x9a 80099d0: f7fb fa84 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 80099d4: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 80099d8: b2db uxtb r3, r3 80099da: 461a mov r2, r3 80099dc: 4b87 ldr r3, [pc, #540] ; (8009bfc ) 80099de: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80099e2: 2303 movs r3, #3 80099e4: 2150 movs r1, #80 ; 0x50 80099e6: 20a1 movs r0, #161 ; 0xa1 80099e8: f7fb fa78 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 80099ec: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 80099f0: b2db uxtb r3, r3 80099f2: 461a mov r2, r3 80099f4: 4b81 ldr r3, [pc, #516] ; (8009bfc ) 80099f6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 80099fa: 2303 movs r3, #3 80099fc: 2150 movs r1, #80 ; 0x50 80099fe: 20a8 movs r0, #168 ; 0xa8 8009a00: f7fb fa6c bl 8004edc BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009a04: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009a08: b2db uxtb r3, r3 8009a0a: 461a mov r2, r3 8009a0c: 4b7b ldr r3, [pc, #492] ; (8009bfc ) 8009a0e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009a12: 2303 movs r3, #3 8009a14: 2150 movs r1, #80 ; 0x50 8009a16: 20af movs r0, #175 ; 0xaf 8009a18: f7fb fa60 bl 8004edc if(menupos == Kikdt_2) 8009a1c: f003 ba8e b.w 800cf3c if(menupos == Kikt_2) 8009a20: 4b78 ldr r3, [pc, #480] ; (8009c04 ) 8009a22: 781b ldrb r3, [r3, #0] 8009a24: b2db uxtb r3, r3 8009a26: 2b0b cmp r3, #11 8009a28: f040 818b bne.w 8009d42 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8009a2c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8009a30: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8009a34: f7fb f98c bl 8004d50 if(!ipt2) 8009a38: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009a3c: b2db uxtb r3, r3 8009a3e: 2b00 cmp r3, #0 8009a40: d141 bne.n 8009ac6 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 8009a42: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 8009a46: b2db uxtb r3, r3 8009a48: 461a mov r2, r3 8009a4a: 4b6c ldr r3, [pc, #432] ; (8009bfc ) 8009a4c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009a50: 2303 movs r3, #3 8009a52: 2150 movs r1, #80 ; 0x50 8009a54: 208c movs r0, #140 ; 0x8c 8009a56: f7fb fa41 bl 8004edc if(blk) 8009a5a: 4b6b ldr r3, [pc, #428] ; (8009c08 ) 8009a5c: 681b ldr r3, [r3, #0] 8009a5e: 2b00 cmp r3, #0 8009a60: d00b beq.n 8009a7a BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009a62: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009a66: b2db uxtb r3, r3 8009a68: 461a mov r2, r3 8009a6a: 4b64 ldr r3, [pc, #400] ; (8009bfc ) 8009a6c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009a70: 2303 movs r3, #3 8009a72: 2150 movs r1, #80 ; 0x50 8009a74: 2093 movs r0, #147 ; 0x93 8009a76: f7fb fa31 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 8009a7a: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 8009a7e: b2db uxtb r3, r3 8009a80: 461a mov r2, r3 8009a82: 4b5e ldr r3, [pc, #376] ; (8009bfc ) 8009a84: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009a88: 2303 movs r3, #3 8009a8a: 2150 movs r1, #80 ; 0x50 8009a8c: 209a movs r0, #154 ; 0x9a 8009a8e: f7fb fa25 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 8009a92: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 8009a96: b2db uxtb r3, r3 8009a98: 461a mov r2, r3 8009a9a: 4b58 ldr r3, [pc, #352] ; (8009bfc ) 8009a9c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009aa0: 2303 movs r3, #3 8009aa2: 2150 movs r1, #80 ; 0x50 8009aa4: 20a1 movs r0, #161 ; 0xa1 8009aa6: f7fb fa19 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009aaa: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009aae: b2db uxtb r3, r3 8009ab0: 461a mov r2, r3 8009ab2: 4b52 ldr r3, [pc, #328] ; (8009bfc ) 8009ab4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009ab8: 2303 movs r3, #3 8009aba: 2150 movs r1, #80 ; 0x50 8009abc: 20a8 movs r0, #168 ; 0xa8 8009abe: f7fb fa0d bl 8004edc if(menupos == Kikdt_2) 8009ac2: f003 ba3b b.w 800cf3c if(ipt2 == 1) 8009ac6: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009aca: b2db uxtb r3, r3 8009acc: 2b01 cmp r3, #1 8009ace: d147 bne.n 8009b60 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 8009ad0: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 8009ad4: b2db uxtb r3, r3 8009ad6: 461a mov r2, r3 8009ad8: 4b48 ldr r3, [pc, #288] ; (8009bfc ) 8009ada: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009ade: 2303 movs r3, #3 8009ae0: 2150 movs r1, #80 ; 0x50 8009ae2: 208c movs r0, #140 ; 0x8c 8009ae4: f7fb f9fa bl 8004edc if(blk) 8009ae8: 4b47 ldr r3, [pc, #284] ; (8009c08 ) 8009aea: 681b ldr r3, [r3, #0] 8009aec: 2b00 cmp r3, #0 8009aee: d00b beq.n 8009b08 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009af0: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009af4: b2db uxtb r3, r3 8009af6: 461a mov r2, r3 8009af8: 4b40 ldr r3, [pc, #256] ; (8009bfc ) 8009afa: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009afe: 2303 movs r3, #3 8009b00: 2150 movs r1, #80 ; 0x50 8009b02: 2093 movs r0, #147 ; 0x93 8009b04: f7fb f9ea bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 8009b08: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 8009b0c: b2db uxtb r3, r3 8009b0e: 461a mov r2, r3 8009b10: 4b3a ldr r3, [pc, #232] ; (8009bfc ) 8009b12: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009b16: 2303 movs r3, #3 8009b18: 2150 movs r1, #80 ; 0x50 8009b1a: 209a movs r0, #154 ; 0x9a 8009b1c: f7fb f9de bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 8009b20: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 8009b24: b2db uxtb r3, r3 8009b26: 461a mov r2, r3 8009b28: 4b34 ldr r3, [pc, #208] ; (8009bfc ) 8009b2a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009b2e: 2303 movs r3, #3 8009b30: 2150 movs r1, #80 ; 0x50 8009b32: 20a1 movs r0, #161 ; 0xa1 8009b34: f7fb f9d2 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE); 8009b38: 2303 movs r3, #3 8009b3a: 4a31 ldr r2, [pc, #196] ; (8009c00 ) 8009b3c: 2150 movs r1, #80 ; 0x50 8009b3e: 20a8 movs r0, #168 ; 0xa8 8009b40: f7fb f9cc bl 8004edc BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009b44: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009b48: b2db uxtb r3, r3 8009b4a: 461a mov r2, r3 8009b4c: 4b2b ldr r3, [pc, #172] ; (8009bfc ) 8009b4e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009b52: 2303 movs r3, #3 8009b54: 2150 movs r1, #80 ; 0x50 8009b56: 20af movs r0, #175 ; 0xaf 8009b58: f7fb f9c0 bl 8004edc if(menupos == Kikdt_2) 8009b5c: f003 b9ee b.w 800cf3c if(ipt2 == 2) 8009b60: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009b64: b2db uxtb r3, r3 8009b66: 2b02 cmp r3, #2 8009b68: d150 bne.n 8009c0c BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 8009b6a: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 8009b6e: b2db uxtb r3, r3 8009b70: 461a mov r2, r3 8009b72: 4b22 ldr r3, [pc, #136] ; (8009bfc ) 8009b74: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009b78: 2303 movs r3, #3 8009b7a: 2150 movs r1, #80 ; 0x50 8009b7c: 208c movs r0, #140 ; 0x8c 8009b7e: f7fb f9ad bl 8004edc if(blk) 8009b82: 4b21 ldr r3, [pc, #132] ; (8009c08 ) 8009b84: 681b ldr r3, [r3, #0] 8009b86: 2b00 cmp r3, #0 8009b88: d00b beq.n 8009ba2 BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009b8a: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009b8e: b2db uxtb r3, r3 8009b90: 461a mov r2, r3 8009b92: 4b1a ldr r3, [pc, #104] ; (8009bfc ) 8009b94: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009b98: 2303 movs r3, #3 8009b9a: 2150 movs r1, #80 ; 0x50 8009b9c: 2093 movs r0, #147 ; 0x93 8009b9e: f7fb f99d bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 8009ba2: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 8009ba6: b2db uxtb r3, r3 8009ba8: 461a mov r2, r3 8009baa: 4b14 ldr r3, [pc, #80] ; (8009bfc ) 8009bac: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009bb0: 2303 movs r3, #3 8009bb2: 2150 movs r1, #80 ; 0x50 8009bb4: 209a movs r0, #154 ; 0x9a 8009bb6: f7fb f991 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE); 8009bba: 2303 movs r3, #3 8009bbc: 4a10 ldr r2, [pc, #64] ; (8009c00 ) 8009bbe: 2150 movs r1, #80 ; 0x50 8009bc0: 20a1 movs r0, #161 ; 0xa1 8009bc2: f7fb f98b bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 8009bc6: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 8009bca: b2db uxtb r3, r3 8009bcc: 461a mov r2, r3 8009bce: 4b0b ldr r3, [pc, #44] ; (8009bfc ) 8009bd0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009bd4: 2303 movs r3, #3 8009bd6: 2150 movs r1, #80 ; 0x50 8009bd8: 20a8 movs r0, #168 ; 0xa8 8009bda: f7fb f97f bl 8004edc BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009bde: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009be2: b2db uxtb r3, r3 8009be4: 461a mov r2, r3 8009be6: 4b05 ldr r3, [pc, #20] ; (8009bfc ) 8009be8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009bec: 2303 movs r3, #3 8009bee: 2150 movs r1, #80 ; 0x50 8009bf0: 20af movs r0, #175 ; 0xaf 8009bf2: f7fb f973 bl 8004edc if(menupos == Kikdt_2) 8009bf6: f003 b9a1 b.w 800cf3c 8009bfa: bf00 nop 8009bfc: 2002096c .word 0x2002096c 8009c00: 08018150 .word 0x08018150 8009c04: 20020010 .word 0x20020010 8009c08: 2006ba78 .word 0x2006ba78 if(ipt2 == 3) 8009c0c: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009c10: b2db uxtb r3, r3 8009c12: 2b03 cmp r3, #3 8009c14: d147 bne.n 8009ca6 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 8009c16: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 8009c1a: b2db uxtb r3, r3 8009c1c: 461a mov r2, r3 8009c1e: 4bbf ldr r3, [pc, #764] ; (8009f1c ) 8009c20: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009c24: 2303 movs r3, #3 8009c26: 2150 movs r1, #80 ; 0x50 8009c28: 208c movs r0, #140 ; 0x8c 8009c2a: f7fb f957 bl 8004edc if(blk) 8009c2e: 4bbc ldr r3, [pc, #752] ; (8009f20 ) 8009c30: 681b ldr r3, [r3, #0] 8009c32: 2b00 cmp r3, #0 8009c34: d00b beq.n 8009c4e BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009c36: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009c3a: b2db uxtb r3, r3 8009c3c: 461a mov r2, r3 8009c3e: 4bb7 ldr r3, [pc, #732] ; (8009f1c ) 8009c40: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009c44: 2303 movs r3, #3 8009c46: 2150 movs r1, #80 ; 0x50 8009c48: 2093 movs r0, #147 ; 0x93 8009c4a: f7fb f947 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE); 8009c4e: 2303 movs r3, #3 8009c50: 4ab4 ldr r2, [pc, #720] ; (8009f24 ) 8009c52: 2150 movs r1, #80 ; 0x50 8009c54: 209a movs r0, #154 ; 0x9a 8009c56: f7fb f941 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 8009c5a: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 8009c5e: b2db uxtb r3, r3 8009c60: 461a mov r2, r3 8009c62: 4bae ldr r3, [pc, #696] ; (8009f1c ) 8009c64: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009c68: 2303 movs r3, #3 8009c6a: 2150 movs r1, #80 ; 0x50 8009c6c: 20a1 movs r0, #161 ; 0xa1 8009c6e: f7fb f935 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 8009c72: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 8009c76: b2db uxtb r3, r3 8009c78: 461a mov r2, r3 8009c7a: 4ba8 ldr r3, [pc, #672] ; (8009f1c ) 8009c7c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009c80: 2303 movs r3, #3 8009c82: 2150 movs r1, #80 ; 0x50 8009c84: 20a8 movs r0, #168 ; 0xa8 8009c86: f7fb f929 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009c8a: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009c8e: b2db uxtb r3, r3 8009c90: 461a mov r2, r3 8009c92: 4ba2 ldr r3, [pc, #648] ; (8009f1c ) 8009c94: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009c98: 2303 movs r3, #3 8009c9a: 2150 movs r1, #80 ; 0x50 8009c9c: 20af movs r0, #175 ; 0xaf 8009c9e: f7fb f91d bl 8004edc if(menupos == Kikdt_2) 8009ca2: f003 b94b b.w 800cf3c if(ipt2 == 4) 8009ca6: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009caa: b2db uxtb r3, r3 8009cac: 2b04 cmp r3, #4 8009cae: f043 8145 bne.w 800cf3c BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 8009cb2: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 8009cb6: b2db uxtb r3, r3 8009cb8: 461a mov r2, r3 8009cba: 4b98 ldr r3, [pc, #608] ; (8009f1c ) 8009cbc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009cc0: 2303 movs r3, #3 8009cc2: 2150 movs r1, #80 ; 0x50 8009cc4: 208c movs r0, #140 ; 0x8c 8009cc6: f7fb f909 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE); 8009cca: 2303 movs r3, #3 8009ccc: 4a95 ldr r2, [pc, #596] ; (8009f24 ) 8009cce: 2150 movs r1, #80 ; 0x50 8009cd0: 2093 movs r0, #147 ; 0x93 8009cd2: f7fb f903 bl 8004edc if(blk) 8009cd6: 4b92 ldr r3, [pc, #584] ; (8009f20 ) 8009cd8: 681b ldr r3, [r3, #0] 8009cda: 2b00 cmp r3, #0 8009cdc: d00b beq.n 8009cf6 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009cde: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009ce2: b2db uxtb r3, r3 8009ce4: 461a mov r2, r3 8009ce6: 4b8d ldr r3, [pc, #564] ; (8009f1c ) 8009ce8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009cec: 2303 movs r3, #3 8009cee: 2150 movs r1, #80 ; 0x50 8009cf0: 209a movs r0, #154 ; 0x9a 8009cf2: f7fb f8f3 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 8009cf6: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 8009cfa: b2db uxtb r3, r3 8009cfc: 461a mov r2, r3 8009cfe: 4b87 ldr r3, [pc, #540] ; (8009f1c ) 8009d00: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009d04: 2303 movs r3, #3 8009d06: 2150 movs r1, #80 ; 0x50 8009d08: 20a1 movs r0, #161 ; 0xa1 8009d0a: f7fb f8e7 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 8009d0e: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 8009d12: b2db uxtb r3, r3 8009d14: 461a mov r2, r3 8009d16: 4b81 ldr r3, [pc, #516] ; (8009f1c ) 8009d18: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009d1c: 2303 movs r3, #3 8009d1e: 2150 movs r1, #80 ; 0x50 8009d20: 20a8 movs r0, #168 ; 0xa8 8009d22: f7fb f8db bl 8004edc BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009d26: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009d2a: b2db uxtb r3, r3 8009d2c: 461a mov r2, r3 8009d2e: 4b7b ldr r3, [pc, #492] ; (8009f1c ) 8009d30: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009d34: 2303 movs r3, #3 8009d36: 2150 movs r1, #80 ; 0x50 8009d38: 20af movs r0, #175 ; 0xaf 8009d3a: f7fb f8cf bl 8004edc if(menupos == Kikdt_2) 8009d3e: f003 b8fd b.w 800cf3c if(menupos == Kiks_2) 8009d42: 4b79 ldr r3, [pc, #484] ; (8009f28 ) 8009d44: 781b ldrb r3, [r3, #0] 8009d46: b2db uxtb r3, r3 8009d48: 2b0c cmp r3, #12 8009d4a: f040 818a bne.w 800a062 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8009d4e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8009d52: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8009d56: f7fa fffb bl 8004d50 if(!ipt2) 8009d5a: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009d5e: b2db uxtb r3, r3 8009d60: 2b00 cmp r3, #0 8009d62: d141 bne.n 8009de8 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 8009d64: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 8009d68: b2db uxtb r3, r3 8009d6a: 461a mov r2, r3 8009d6c: 4b6b ldr r3, [pc, #428] ; (8009f1c ) 8009d6e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009d72: 2303 movs r3, #3 8009d74: 2150 movs r1, #80 ; 0x50 8009d76: 208c movs r0, #140 ; 0x8c 8009d78: f7fb f8b0 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009d7c: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009d80: b2db uxtb r3, r3 8009d82: 461a mov r2, r3 8009d84: 4b65 ldr r3, [pc, #404] ; (8009f1c ) 8009d86: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009d8a: 2303 movs r3, #3 8009d8c: 2150 movs r1, #80 ; 0x50 8009d8e: 2093 movs r0, #147 ; 0x93 8009d90: f7fb f8a4 bl 8004edc if(blk) 8009d94: 4b62 ldr r3, [pc, #392] ; (8009f20 ) 8009d96: 681b ldr r3, [r3, #0] 8009d98: 2b00 cmp r3, #0 8009d9a: d00b beq.n 8009db4 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 8009d9c: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 8009da0: b2db uxtb r3, r3 8009da2: 461a mov r2, r3 8009da4: 4b5d ldr r3, [pc, #372] ; (8009f1c ) 8009da6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009daa: 2303 movs r3, #3 8009dac: 2150 movs r1, #80 ; 0x50 8009dae: 209a movs r0, #154 ; 0x9a 8009db0: f7fb f894 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 8009db4: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 8009db8: b2db uxtb r3, r3 8009dba: 461a mov r2, r3 8009dbc: 4b57 ldr r3, [pc, #348] ; (8009f1c ) 8009dbe: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009dc2: 2303 movs r3, #3 8009dc4: 2150 movs r1, #80 ; 0x50 8009dc6: 20a1 movs r0, #161 ; 0xa1 8009dc8: f7fb f888 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009dcc: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009dd0: b2db uxtb r3, r3 8009dd2: 461a mov r2, r3 8009dd4: 4b51 ldr r3, [pc, #324] ; (8009f1c ) 8009dd6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009dda: 2303 movs r3, #3 8009ddc: 2150 movs r1, #80 ; 0x50 8009dde: 20a8 movs r0, #168 ; 0xa8 8009de0: f7fb f87c bl 8004edc if(menupos == Kikdt_2) 8009de4: f003 b8aa b.w 800cf3c if(ipt2 == 1) 8009de8: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009dec: b2db uxtb r3, r3 8009dee: 2b01 cmp r3, #1 8009df0: d147 bne.n 8009e82 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 8009df2: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 8009df6: b2db uxtb r3, r3 8009df8: 461a mov r2, r3 8009dfa: 4b48 ldr r3, [pc, #288] ; (8009f1c ) 8009dfc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009e00: 2303 movs r3, #3 8009e02: 2150 movs r1, #80 ; 0x50 8009e04: 208c movs r0, #140 ; 0x8c 8009e06: f7fb f869 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009e0a: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009e0e: b2db uxtb r3, r3 8009e10: 461a mov r2, r3 8009e12: 4b42 ldr r3, [pc, #264] ; (8009f1c ) 8009e14: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009e18: 2303 movs r3, #3 8009e1a: 2150 movs r1, #80 ; 0x50 8009e1c: 2093 movs r0, #147 ; 0x93 8009e1e: f7fb f85d bl 8004edc if(blk) 8009e22: 4b3f ldr r3, [pc, #252] ; (8009f20 ) 8009e24: 681b ldr r3, [r3, #0] 8009e26: 2b00 cmp r3, #0 8009e28: d00b beq.n 8009e42 BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 8009e2a: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 8009e2e: b2db uxtb r3, r3 8009e30: 461a mov r2, r3 8009e32: 4b3a ldr r3, [pc, #232] ; (8009f1c ) 8009e34: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009e38: 2303 movs r3, #3 8009e3a: 2150 movs r1, #80 ; 0x50 8009e3c: 209a movs r0, #154 ; 0x9a 8009e3e: f7fb f84d bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 8009e42: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 8009e46: b2db uxtb r3, r3 8009e48: 461a mov r2, r3 8009e4a: 4b34 ldr r3, [pc, #208] ; (8009f1c ) 8009e4c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009e50: 2303 movs r3, #3 8009e52: 2150 movs r1, #80 ; 0x50 8009e54: 20a1 movs r0, #161 ; 0xa1 8009e56: f7fb f841 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE); 8009e5a: 2303 movs r3, #3 8009e5c: 4a31 ldr r2, [pc, #196] ; (8009f24 ) 8009e5e: 2150 movs r1, #80 ; 0x50 8009e60: 20a8 movs r0, #168 ; 0xa8 8009e62: f7fb f83b bl 8004edc BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009e66: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009e6a: b2db uxtb r3, r3 8009e6c: 461a mov r2, r3 8009e6e: 4b2b ldr r3, [pc, #172] ; (8009f1c ) 8009e70: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009e74: 2303 movs r3, #3 8009e76: 2150 movs r1, #80 ; 0x50 8009e78: 20af movs r0, #175 ; 0xaf 8009e7a: f7fb f82f bl 8004edc if(menupos == Kikdt_2) 8009e7e: f003 b85d b.w 800cf3c if(ipt2 == 2) 8009e82: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009e86: b2db uxtb r3, r3 8009e88: 2b02 cmp r3, #2 8009e8a: d14f bne.n 8009f2c BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 8009e8c: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 8009e90: b2db uxtb r3, r3 8009e92: 461a mov r2, r3 8009e94: 4b21 ldr r3, [pc, #132] ; (8009f1c ) 8009e96: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009e9a: 2303 movs r3, #3 8009e9c: 2150 movs r1, #80 ; 0x50 8009e9e: 208c movs r0, #140 ; 0x8c 8009ea0: f7fb f81c bl 8004edc BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009ea4: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009ea8: b2db uxtb r3, r3 8009eaa: 461a mov r2, r3 8009eac: 4b1b ldr r3, [pc, #108] ; (8009f1c ) 8009eae: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009eb2: 2303 movs r3, #3 8009eb4: 2150 movs r1, #80 ; 0x50 8009eb6: 2093 movs r0, #147 ; 0x93 8009eb8: f7fb f810 bl 8004edc if(blk) 8009ebc: 4b18 ldr r3, [pc, #96] ; (8009f20 ) 8009ebe: 681b ldr r3, [r3, #0] 8009ec0: 2b00 cmp r3, #0 8009ec2: d00b beq.n 8009edc BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 8009ec4: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 8009ec8: b2db uxtb r3, r3 8009eca: 461a mov r2, r3 8009ecc: 4b13 ldr r3, [pc, #76] ; (8009f1c ) 8009ece: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009ed2: 2303 movs r3, #3 8009ed4: 2150 movs r1, #80 ; 0x50 8009ed6: 209a movs r0, #154 ; 0x9a 8009ed8: f7fb f800 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE); 8009edc: 2303 movs r3, #3 8009ede: 4a11 ldr r2, [pc, #68] ; (8009f24 ) 8009ee0: 2150 movs r1, #80 ; 0x50 8009ee2: 20a1 movs r0, #161 ; 0xa1 8009ee4: f7fa fffa bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 8009ee8: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 8009eec: b2db uxtb r3, r3 8009eee: 461a mov r2, r3 8009ef0: 4b0a ldr r3, [pc, #40] ; (8009f1c ) 8009ef2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009ef6: 2303 movs r3, #3 8009ef8: 2150 movs r1, #80 ; 0x50 8009efa: 20a8 movs r0, #168 ; 0xa8 8009efc: f7fa ffee bl 8004edc BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009f00: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009f04: b2db uxtb r3, r3 8009f06: 461a mov r2, r3 8009f08: 4b04 ldr r3, [pc, #16] ; (8009f1c ) 8009f0a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009f0e: 2303 movs r3, #3 8009f10: 2150 movs r1, #80 ; 0x50 8009f12: 20af movs r0, #175 ; 0xaf 8009f14: f7fa ffe2 bl 8004edc if(menupos == Kikdt_2) 8009f18: f003 b810 b.w 800cf3c 8009f1c: 2002096c .word 0x2002096c 8009f20: 2006ba78 .word 0x2006ba78 8009f24: 08018150 .word 0x08018150 8009f28: 20020010 .word 0x20020010 if(ipt2 == 3) 8009f2c: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009f30: b2db uxtb r3, r3 8009f32: 2b03 cmp r3, #3 8009f34: d147 bne.n 8009fc6 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 8009f36: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 8009f3a: b2db uxtb r3, r3 8009f3c: 461a mov r2, r3 8009f3e: 4bbf ldr r3, [pc, #764] ; (800a23c ) 8009f40: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009f44: 2303 movs r3, #3 8009f46: 2150 movs r1, #80 ; 0x50 8009f48: 208c movs r0, #140 ; 0x8c 8009f4a: f7fa ffc7 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009f4e: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009f52: b2db uxtb r3, r3 8009f54: 461a mov r2, r3 8009f56: 4bb9 ldr r3, [pc, #740] ; (800a23c ) 8009f58: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009f5c: 2303 movs r3, #3 8009f5e: 2150 movs r1, #80 ; 0x50 8009f60: 2093 movs r0, #147 ; 0x93 8009f62: f7fa ffbb bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE); 8009f66: 2303 movs r3, #3 8009f68: 4ab5 ldr r2, [pc, #724] ; (800a240 ) 8009f6a: 2150 movs r1, #80 ; 0x50 8009f6c: 209a movs r0, #154 ; 0x9a 8009f6e: f7fa ffb5 bl 8004edc if(blk) 8009f72: 4bb4 ldr r3, [pc, #720] ; (800a244 ) 8009f74: 681b ldr r3, [r3, #0] 8009f76: 2b00 cmp r3, #0 8009f78: d00b beq.n 8009f92 BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 8009f7a: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 8009f7e: b2db uxtb r3, r3 8009f80: 461a mov r2, r3 8009f82: 4bae ldr r3, [pc, #696] ; (800a23c ) 8009f84: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009f88: 2303 movs r3, #3 8009f8a: 2150 movs r1, #80 ; 0x50 8009f8c: 20a1 movs r0, #161 ; 0xa1 8009f8e: f7fa ffa5 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 8009f92: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 8009f96: b2db uxtb r3, r3 8009f98: 461a mov r2, r3 8009f9a: 4ba8 ldr r3, [pc, #672] ; (800a23c ) 8009f9c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009fa0: 2303 movs r3, #3 8009fa2: 2150 movs r1, #80 ; 0x50 8009fa4: 20a8 movs r0, #168 ; 0xa8 8009fa6: f7fa ff99 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 8009faa: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 8009fae: b2db uxtb r3, r3 8009fb0: 461a mov r2, r3 8009fb2: 4ba2 ldr r3, [pc, #648] ; (800a23c ) 8009fb4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009fb8: 2303 movs r3, #3 8009fba: 2150 movs r1, #80 ; 0x50 8009fbc: 20af movs r0, #175 ; 0xaf 8009fbe: f7fa ff8d bl 8004edc if(menupos == Kikdt_2) 8009fc2: f002 bfbb b.w 800cf3c if(ipt2 == 4) 8009fc6: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 8009fca: b2db uxtb r3, r3 8009fcc: 2b04 cmp r3, #4 8009fce: f042 87b5 bne.w 800cf3c BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 8009fd2: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 8009fd6: b2db uxtb r3, r3 8009fd8: 461a mov r2, r3 8009fda: 4b98 ldr r3, [pc, #608] ; (800a23c ) 8009fdc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 8009fe0: 2303 movs r3, #3 8009fe2: 2150 movs r1, #80 ; 0x50 8009fe4: 208c movs r0, #140 ; 0x8c 8009fe6: f7fa ff79 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE); 8009fea: 2303 movs r3, #3 8009fec: 4a94 ldr r2, [pc, #592] ; (800a240 ) 8009fee: 2150 movs r1, #80 ; 0x50 8009ff0: 2093 movs r0, #147 ; 0x93 8009ff2: f7fa ff73 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE); 8009ff6: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 8009ffa: b2db uxtb r3, r3 8009ffc: 461a mov r2, r3 8009ffe: 4b8f ldr r3, [pc, #572] ; (800a23c ) 800a000: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a004: 2303 movs r3, #3 800a006: 2150 movs r1, #80 ; 0x50 800a008: 209a movs r0, #154 ; 0x9a 800a00a: f7fa ff67 bl 8004edc if(blk) 800a00e: 4b8d ldr r3, [pc, #564] ; (800a244 ) 800a010: 681b ldr r3, [r3, #0] 800a012: 2b00 cmp r3, #0 800a014: d00b beq.n 800a02e BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a016: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a01a: b2db uxtb r3, r3 800a01c: 461a mov r2, r3 800a01e: 4b87 ldr r3, [pc, #540] ; (800a23c ) 800a020: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a024: 2303 movs r3, #3 800a026: 2150 movs r1, #80 ; 0x50 800a028: 20a1 movs r0, #161 ; 0xa1 800a02a: f7fa ff57 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a02e: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a032: b2db uxtb r3, r3 800a034: 461a mov r2, r3 800a036: 4b81 ldr r3, [pc, #516] ; (800a23c ) 800a038: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a03c: 2303 movs r3, #3 800a03e: 2150 movs r1, #80 ; 0x50 800a040: 20a8 movs r0, #168 ; 0xa8 800a042: f7fa ff4b bl 8004edc BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a046: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a04a: b2db uxtb r3, r3 800a04c: 461a mov r2, r3 800a04e: 4b7b ldr r3, [pc, #492] ; (800a23c ) 800a050: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a054: 2303 movs r3, #3 800a056: 2150 movs r1, #80 ; 0x50 800a058: 20af movs r0, #175 ; 0xaf 800a05a: f7fa ff3f bl 8004edc if(menupos == Kikdt_2) 800a05e: f002 bf6d b.w 800cf3c if(menupos == Kikd_2) 800a062: 4b79 ldr r3, [pc, #484] ; (800a248 ) 800a064: 781b ldrb r3, [r3, #0] 800a066: b2db uxtb r3, r3 800a068: 2b0d cmp r3, #13 800a06a: f040 818a bne.w 800a382 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800a06e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800a072: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800a076: f7fa fe6b bl 8004d50 if(!ipt2) 800a07a: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a07e: b2db uxtb r3, r3 800a080: 2b00 cmp r3, #0 800a082: d141 bne.n 800a108 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a084: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a088: b2db uxtb r3, r3 800a08a: 461a mov r2, r3 800a08c: 4b6b ldr r3, [pc, #428] ; (800a23c ) 800a08e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a092: 2303 movs r3, #3 800a094: 2150 movs r1, #80 ; 0x50 800a096: 208c movs r0, #140 ; 0x8c 800a098: f7fa ff20 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a09c: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a0a0: b2db uxtb r3, r3 800a0a2: 461a mov r2, r3 800a0a4: 4b65 ldr r3, [pc, #404] ; (800a23c ) 800a0a6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a0aa: 2303 movs r3, #3 800a0ac: 2150 movs r1, #80 ; 0x50 800a0ae: 2093 movs r0, #147 ; 0x93 800a0b0: f7fa ff14 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a0b4: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a0b8: b2db uxtb r3, r3 800a0ba: 461a mov r2, r3 800a0bc: 4b5f ldr r3, [pc, #380] ; (800a23c ) 800a0be: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a0c2: 2303 movs r3, #3 800a0c4: 2150 movs r1, #80 ; 0x50 800a0c6: 209a movs r0, #154 ; 0x9a 800a0c8: f7fa ff08 bl 8004edc if(blk) 800a0cc: 4b5d ldr r3, [pc, #372] ; (800a244 ) 800a0ce: 681b ldr r3, [r3, #0] 800a0d0: 2b00 cmp r3, #0 800a0d2: d00b beq.n 800a0ec BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a0d4: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a0d8: b2db uxtb r3, r3 800a0da: 461a mov r2, r3 800a0dc: 4b57 ldr r3, [pc, #348] ; (800a23c ) 800a0de: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a0e2: 2303 movs r3, #3 800a0e4: 2150 movs r1, #80 ; 0x50 800a0e6: 20a1 movs r0, #161 ; 0xa1 800a0e8: f7fa fef8 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a0ec: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a0f0: b2db uxtb r3, r3 800a0f2: 461a mov r2, r3 800a0f4: 4b51 ldr r3, [pc, #324] ; (800a23c ) 800a0f6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a0fa: 2303 movs r3, #3 800a0fc: 2150 movs r1, #80 ; 0x50 800a0fe: 20a8 movs r0, #168 ; 0xa8 800a100: f7fa feec bl 8004edc if(menupos == Kikdt_2) 800a104: f002 bf1a b.w 800cf3c if(ipt2 == 1) 800a108: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a10c: b2db uxtb r3, r3 800a10e: 2b01 cmp r3, #1 800a110: d147 bne.n 800a1a2 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a112: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a116: b2db uxtb r3, r3 800a118: 461a mov r2, r3 800a11a: 4b48 ldr r3, [pc, #288] ; (800a23c ) 800a11c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a120: 2303 movs r3, #3 800a122: 2150 movs r1, #80 ; 0x50 800a124: 208c movs r0, #140 ; 0x8c 800a126: f7fa fed9 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a12a: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a12e: b2db uxtb r3, r3 800a130: 461a mov r2, r3 800a132: 4b42 ldr r3, [pc, #264] ; (800a23c ) 800a134: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a138: 2303 movs r3, #3 800a13a: 2150 movs r1, #80 ; 0x50 800a13c: 2093 movs r0, #147 ; 0x93 800a13e: f7fa fecd bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a142: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a146: b2db uxtb r3, r3 800a148: 461a mov r2, r3 800a14a: 4b3c ldr r3, [pc, #240] ; (800a23c ) 800a14c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a150: 2303 movs r3, #3 800a152: 2150 movs r1, #80 ; 0x50 800a154: 209a movs r0, #154 ; 0x9a 800a156: f7fa fec1 bl 8004edc if(blk) 800a15a: 4b3a ldr r3, [pc, #232] ; (800a244 ) 800a15c: 681b ldr r3, [r3, #0] 800a15e: 2b00 cmp r3, #0 800a160: d00b beq.n 800a17a BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a162: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a166: b2db uxtb r3, r3 800a168: 461a mov r2, r3 800a16a: 4b34 ldr r3, [pc, #208] ; (800a23c ) 800a16c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a170: 2303 movs r3, #3 800a172: 2150 movs r1, #80 ; 0x50 800a174: 20a1 movs r0, #161 ; 0xa1 800a176: f7fa feb1 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE); 800a17a: 2303 movs r3, #3 800a17c: 4a30 ldr r2, [pc, #192] ; (800a240 ) 800a17e: 2150 movs r1, #80 ; 0x50 800a180: 20a8 movs r0, #168 ; 0xa8 800a182: f7fa feab bl 8004edc BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a186: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a18a: b2db uxtb r3, r3 800a18c: 461a mov r2, r3 800a18e: 4b2b ldr r3, [pc, #172] ; (800a23c ) 800a190: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a194: 2303 movs r3, #3 800a196: 2150 movs r1, #80 ; 0x50 800a198: 20af movs r0, #175 ; 0xaf 800a19a: f7fa fe9f bl 8004edc if(menupos == Kikdt_2) 800a19e: f002 becd b.w 800cf3c if(ipt2 == 2) 800a1a2: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a1a6: b2db uxtb r3, r3 800a1a8: 2b02 cmp r3, #2 800a1aa: d14f bne.n 800a24c BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a1ac: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a1b0: b2db uxtb r3, r3 800a1b2: 461a mov r2, r3 800a1b4: 4b21 ldr r3, [pc, #132] ; (800a23c ) 800a1b6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a1ba: 2303 movs r3, #3 800a1bc: 2150 movs r1, #80 ; 0x50 800a1be: 208c movs r0, #140 ; 0x8c 800a1c0: f7fa fe8c bl 8004edc BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a1c4: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a1c8: b2db uxtb r3, r3 800a1ca: 461a mov r2, r3 800a1cc: 4b1b ldr r3, [pc, #108] ; (800a23c ) 800a1ce: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a1d2: 2303 movs r3, #3 800a1d4: 2150 movs r1, #80 ; 0x50 800a1d6: 2093 movs r0, #147 ; 0x93 800a1d8: f7fa fe80 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a1dc: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a1e0: b2db uxtb r3, r3 800a1e2: 461a mov r2, r3 800a1e4: 4b15 ldr r3, [pc, #84] ; (800a23c ) 800a1e6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a1ea: 2303 movs r3, #3 800a1ec: 2150 movs r1, #80 ; 0x50 800a1ee: 209a movs r0, #154 ; 0x9a 800a1f0: f7fa fe74 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE); 800a1f4: 2303 movs r3, #3 800a1f6: 4a12 ldr r2, [pc, #72] ; (800a240 ) 800a1f8: 2150 movs r1, #80 ; 0x50 800a1fa: 20a1 movs r0, #161 ; 0xa1 800a1fc: f7fa fe6e bl 8004edc if(blk) 800a200: 4b10 ldr r3, [pc, #64] ; (800a244 ) 800a202: 681b ldr r3, [r3, #0] 800a204: 2b00 cmp r3, #0 800a206: d00b beq.n 800a220 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a208: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a20c: b2db uxtb r3, r3 800a20e: 461a mov r2, r3 800a210: 4b0a ldr r3, [pc, #40] ; (800a23c ) 800a212: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a216: 2303 movs r3, #3 800a218: 2150 movs r1, #80 ; 0x50 800a21a: 20a8 movs r0, #168 ; 0xa8 800a21c: f7fa fe5e bl 8004edc BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a220: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a224: b2db uxtb r3, r3 800a226: 461a mov r2, r3 800a228: 4b04 ldr r3, [pc, #16] ; (800a23c ) 800a22a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a22e: 2303 movs r3, #3 800a230: 2150 movs r1, #80 ; 0x50 800a232: 20af movs r0, #175 ; 0xaf 800a234: f7fa fe52 bl 8004edc if(menupos == Kikdt_2) 800a238: f002 be80 b.w 800cf3c 800a23c: 2002096c .word 0x2002096c 800a240: 08018150 .word 0x08018150 800a244: 2006ba78 .word 0x2006ba78 800a248: 20020010 .word 0x20020010 if(ipt2 == 3) 800a24c: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a250: b2db uxtb r3, r3 800a252: 2b03 cmp r3, #3 800a254: d147 bne.n 800a2e6 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a256: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a25a: b2db uxtb r3, r3 800a25c: 461a mov r2, r3 800a25e: 4bc1 ldr r3, [pc, #772] ; (800a564 ) 800a260: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a264: 2303 movs r3, #3 800a266: 2150 movs r1, #80 ; 0x50 800a268: 208c movs r0, #140 ; 0x8c 800a26a: f7fa fe37 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a26e: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a272: b2db uxtb r3, r3 800a274: 461a mov r2, r3 800a276: 4bbb ldr r3, [pc, #748] ; (800a564 ) 800a278: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a27c: 2303 movs r3, #3 800a27e: 2150 movs r1, #80 ; 0x50 800a280: 2093 movs r0, #147 ; 0x93 800a282: f7fa fe2b bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE); 800a286: 2303 movs r3, #3 800a288: 4ab7 ldr r2, [pc, #732] ; (800a568 ) 800a28a: 2150 movs r1, #80 ; 0x50 800a28c: 209a movs r0, #154 ; 0x9a 800a28e: f7fa fe25 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a292: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a296: b2db uxtb r3, r3 800a298: 461a mov r2, r3 800a29a: 4bb2 ldr r3, [pc, #712] ; (800a564 ) 800a29c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a2a0: 2303 movs r3, #3 800a2a2: 2150 movs r1, #80 ; 0x50 800a2a4: 20a1 movs r0, #161 ; 0xa1 800a2a6: f7fa fe19 bl 8004edc if(blk) 800a2aa: 4bb0 ldr r3, [pc, #704] ; (800a56c ) 800a2ac: 681b ldr r3, [r3, #0] 800a2ae: 2b00 cmp r3, #0 800a2b0: d00b beq.n 800a2ca BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a2b2: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a2b6: b2db uxtb r3, r3 800a2b8: 461a mov r2, r3 800a2ba: 4baa ldr r3, [pc, #680] ; (800a564 ) 800a2bc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a2c0: 2303 movs r3, #3 800a2c2: 2150 movs r1, #80 ; 0x50 800a2c4: 20a8 movs r0, #168 ; 0xa8 800a2c6: f7fa fe09 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a2ca: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a2ce: b2db uxtb r3, r3 800a2d0: 461a mov r2, r3 800a2d2: 4ba4 ldr r3, [pc, #656] ; (800a564 ) 800a2d4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a2d8: 2303 movs r3, #3 800a2da: 2150 movs r1, #80 ; 0x50 800a2dc: 20af movs r0, #175 ; 0xaf 800a2de: f7fa fdfd bl 8004edc if(menupos == Kikdt_2) 800a2e2: f002 be2b b.w 800cf3c if(ipt2 == 4) 800a2e6: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a2ea: b2db uxtb r3, r3 800a2ec: 2b04 cmp r3, #4 800a2ee: f042 8625 bne.w 800cf3c BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a2f2: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a2f6: b2db uxtb r3, r3 800a2f8: 461a mov r2, r3 800a2fa: 4b9a ldr r3, [pc, #616] ; (800a564 ) 800a2fc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a300: 2303 movs r3, #3 800a302: 2150 movs r1, #80 ; 0x50 800a304: 208c movs r0, #140 ; 0x8c 800a306: f7fa fde9 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE); 800a30a: 2303 movs r3, #3 800a30c: 4a96 ldr r2, [pc, #600] ; (800a568 ) 800a30e: 2150 movs r1, #80 ; 0x50 800a310: 2093 movs r0, #147 ; 0x93 800a312: f7fa fde3 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a316: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a31a: b2db uxtb r3, r3 800a31c: 461a mov r2, r3 800a31e: 4b91 ldr r3, [pc, #580] ; (800a564 ) 800a320: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a324: 2303 movs r3, #3 800a326: 2150 movs r1, #80 ; 0x50 800a328: 209a movs r0, #154 ; 0x9a 800a32a: f7fa fdd7 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a32e: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a332: b2db uxtb r3, r3 800a334: 461a mov r2, r3 800a336: 4b8b ldr r3, [pc, #556] ; (800a564 ) 800a338: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a33c: 2303 movs r3, #3 800a33e: 2150 movs r1, #80 ; 0x50 800a340: 20a1 movs r0, #161 ; 0xa1 800a342: f7fa fdcb bl 8004edc if(blk) 800a346: 4b89 ldr r3, [pc, #548] ; (800a56c ) 800a348: 681b ldr r3, [r3, #0] 800a34a: 2b00 cmp r3, #0 800a34c: d00b beq.n 800a366 BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a34e: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a352: b2db uxtb r3, r3 800a354: 461a mov r2, r3 800a356: 4b83 ldr r3, [pc, #524] ; (800a564 ) 800a358: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a35c: 2303 movs r3, #3 800a35e: 2150 movs r1, #80 ; 0x50 800a360: 20a8 movs r0, #168 ; 0xa8 800a362: f7fa fdbb bl 8004edc BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a366: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a36a: b2db uxtb r3, r3 800a36c: 461a mov r2, r3 800a36e: 4b7d ldr r3, [pc, #500] ; (800a564 ) 800a370: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a374: 2303 movs r3, #3 800a376: 2150 movs r1, #80 ; 0x50 800a378: 20af movs r0, #175 ; 0xaf 800a37a: f7fa fdaf bl 8004edc if(menupos == Kikdt_2) 800a37e: f002 bddd b.w 800cf3c if(menupos == Kike_2) 800a382: 4b7b ldr r3, [pc, #492] ; (800a570 ) 800a384: 781b ldrb r3, [r3, #0] 800a386: b2db uxtb r3, r3 800a388: 2b0e cmp r3, #14 800a38a: f040 8190 bne.w 800a6ae LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800a38e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800a392: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800a396: f7fa fcdb bl 8004d50 if(!ipt2) 800a39a: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a39e: b2db uxtb r3, r3 800a3a0: 2b00 cmp r3, #0 800a3a2: d142 bne.n 800a42a BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a3a4: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a3a8: b2db uxtb r3, r3 800a3aa: 461a mov r2, r3 800a3ac: 4b6d ldr r3, [pc, #436] ; (800a564 ) 800a3ae: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a3b2: 2303 movs r3, #3 800a3b4: 2150 movs r1, #80 ; 0x50 800a3b6: 208c movs r0, #140 ; 0x8c 800a3b8: f7fa fd90 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a3bc: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a3c0: b2db uxtb r3, r3 800a3c2: 461a mov r2, r3 800a3c4: 4b67 ldr r3, [pc, #412] ; (800a564 ) 800a3c6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a3ca: 2303 movs r3, #3 800a3cc: 2150 movs r1, #80 ; 0x50 800a3ce: 2093 movs r0, #147 ; 0x93 800a3d0: f7fa fd84 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a3d4: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a3d8: b2db uxtb r3, r3 800a3da: 461a mov r2, r3 800a3dc: 4b61 ldr r3, [pc, #388] ; (800a564 ) 800a3de: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a3e2: 2303 movs r3, #3 800a3e4: 2150 movs r1, #80 ; 0x50 800a3e6: 209a movs r0, #154 ; 0x9a 800a3e8: f7fa fd78 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a3ec: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a3f0: b2db uxtb r3, r3 800a3f2: 461a mov r2, r3 800a3f4: 4b5b ldr r3, [pc, #364] ; (800a564 ) 800a3f6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a3fa: 2303 movs r3, #3 800a3fc: 2150 movs r1, #80 ; 0x50 800a3fe: 20a1 movs r0, #161 ; 0xa1 800a400: f7fa fd6c bl 8004edc if(blk) 800a404: 4b59 ldr r3, [pc, #356] ; (800a56c ) 800a406: 681b ldr r3, [r3, #0] 800a408: 2b00 cmp r3, #0 800a40a: f002 8597 beq.w 800cf3c BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a40e: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a412: b2db uxtb r3, r3 800a414: 461a mov r2, r3 800a416: 4b53 ldr r3, [pc, #332] ; (800a564 ) 800a418: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a41c: 2303 movs r3, #3 800a41e: 2150 movs r1, #80 ; 0x50 800a420: 20a8 movs r0, #168 ; 0xa8 800a422: f7fa fd5b bl 8004edc if(menupos == Kikdt_2) 800a426: f002 bd89 b.w 800cf3c if(ipt2 == 1) 800a42a: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a42e: b2db uxtb r3, r3 800a430: 2b01 cmp r3, #1 800a432: d148 bne.n 800a4c6 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a434: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a438: b2db uxtb r3, r3 800a43a: 461a mov r2, r3 800a43c: 4b49 ldr r3, [pc, #292] ; (800a564 ) 800a43e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a442: 2303 movs r3, #3 800a444: 2150 movs r1, #80 ; 0x50 800a446: 208c movs r0, #140 ; 0x8c 800a448: f7fa fd48 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a44c: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a450: b2db uxtb r3, r3 800a452: 461a mov r2, r3 800a454: 4b43 ldr r3, [pc, #268] ; (800a564 ) 800a456: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a45a: 2303 movs r3, #3 800a45c: 2150 movs r1, #80 ; 0x50 800a45e: 2093 movs r0, #147 ; 0x93 800a460: f7fa fd3c bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a464: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a468: b2db uxtb r3, r3 800a46a: 461a mov r2, r3 800a46c: 4b3d ldr r3, [pc, #244] ; (800a564 ) 800a46e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a472: 2303 movs r3, #3 800a474: 2150 movs r1, #80 ; 0x50 800a476: 209a movs r0, #154 ; 0x9a 800a478: f7fa fd30 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a47c: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a480: b2db uxtb r3, r3 800a482: 461a mov r2, r3 800a484: 4b37 ldr r3, [pc, #220] ; (800a564 ) 800a486: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a48a: 2303 movs r3, #3 800a48c: 2150 movs r1, #80 ; 0x50 800a48e: 20a1 movs r0, #161 ; 0xa1 800a490: f7fa fd24 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE); 800a494: 2303 movs r3, #3 800a496: 4a34 ldr r2, [pc, #208] ; (800a568 ) 800a498: 2150 movs r1, #80 ; 0x50 800a49a: 20a8 movs r0, #168 ; 0xa8 800a49c: f7fa fd1e bl 8004edc if(blk) 800a4a0: 4b32 ldr r3, [pc, #200] ; (800a56c ) 800a4a2: 681b ldr r3, [r3, #0] 800a4a4: 2b00 cmp r3, #0 800a4a6: f002 8549 beq.w 800cf3c BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a4aa: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a4ae: b2db uxtb r3, r3 800a4b0: 461a mov r2, r3 800a4b2: 4b2c ldr r3, [pc, #176] ; (800a564 ) 800a4b4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a4b8: 2303 movs r3, #3 800a4ba: 2150 movs r1, #80 ; 0x50 800a4bc: 20af movs r0, #175 ; 0xaf 800a4be: f7fa fd0d bl 8004edc if(menupos == Kikdt_2) 800a4c2: f002 bd3b b.w 800cf3c if(ipt2 == 2) 800a4c6: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a4ca: b2db uxtb r3, r3 800a4cc: 2b02 cmp r3, #2 800a4ce: d151 bne.n 800a574 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a4d0: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a4d4: b2db uxtb r3, r3 800a4d6: 461a mov r2, r3 800a4d8: 4b22 ldr r3, [pc, #136] ; (800a564 ) 800a4da: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a4de: 2303 movs r3, #3 800a4e0: 2150 movs r1, #80 ; 0x50 800a4e2: 208c movs r0, #140 ; 0x8c 800a4e4: f7fa fcfa bl 8004edc BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a4e8: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a4ec: b2db uxtb r3, r3 800a4ee: 461a mov r2, r3 800a4f0: 4b1c ldr r3, [pc, #112] ; (800a564 ) 800a4f2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a4f6: 2303 movs r3, #3 800a4f8: 2150 movs r1, #80 ; 0x50 800a4fa: 2093 movs r0, #147 ; 0x93 800a4fc: f7fa fcee bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a500: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a504: b2db uxtb r3, r3 800a506: 461a mov r2, r3 800a508: 4b16 ldr r3, [pc, #88] ; (800a564 ) 800a50a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a50e: 2303 movs r3, #3 800a510: 2150 movs r1, #80 ; 0x50 800a512: 209a movs r0, #154 ; 0x9a 800a514: f7fa fce2 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE); 800a518: 2303 movs r3, #3 800a51a: 4a13 ldr r2, [pc, #76] ; (800a568 ) 800a51c: 2150 movs r1, #80 ; 0x50 800a51e: 20a1 movs r0, #161 ; 0xa1 800a520: f7fa fcdc bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a524: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a528: b2db uxtb r3, r3 800a52a: 461a mov r2, r3 800a52c: 4b0d ldr r3, [pc, #52] ; (800a564 ) 800a52e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a532: 2303 movs r3, #3 800a534: 2150 movs r1, #80 ; 0x50 800a536: 20a8 movs r0, #168 ; 0xa8 800a538: f7fa fcd0 bl 8004edc if(blk) 800a53c: 4b0b ldr r3, [pc, #44] ; (800a56c ) 800a53e: 681b ldr r3, [r3, #0] 800a540: 2b00 cmp r3, #0 800a542: f002 84fb beq.w 800cf3c BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a546: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a54a: b2db uxtb r3, r3 800a54c: 461a mov r2, r3 800a54e: 4b05 ldr r3, [pc, #20] ; (800a564 ) 800a550: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a554: 2303 movs r3, #3 800a556: 2150 movs r1, #80 ; 0x50 800a558: 20af movs r0, #175 ; 0xaf 800a55a: f7fa fcbf bl 8004edc if(menupos == Kikdt_2) 800a55e: f002 bced b.w 800cf3c 800a562: bf00 nop 800a564: 2002096c .word 0x2002096c 800a568: 08018150 .word 0x08018150 800a56c: 2006ba78 .word 0x2006ba78 800a570: 20020010 .word 0x20020010 if(ipt2 == 3) 800a574: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a578: b2db uxtb r3, r3 800a57a: 2b03 cmp r3, #3 800a57c: d148 bne.n 800a610 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a57e: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a582: b2db uxtb r3, r3 800a584: 461a mov r2, r3 800a586: 4bc4 ldr r3, [pc, #784] ; (800a898 ) 800a588: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a58c: 2303 movs r3, #3 800a58e: 2150 movs r1, #80 ; 0x50 800a590: 208c movs r0, #140 ; 0x8c 800a592: f7fa fca3 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a596: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a59a: b2db uxtb r3, r3 800a59c: 461a mov r2, r3 800a59e: 4bbe ldr r3, [pc, #760] ; (800a898 ) 800a5a0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a5a4: 2303 movs r3, #3 800a5a6: 2150 movs r1, #80 ; 0x50 800a5a8: 2093 movs r0, #147 ; 0x93 800a5aa: f7fa fc97 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE); 800a5ae: 2303 movs r3, #3 800a5b0: 4aba ldr r2, [pc, #744] ; (800a89c ) 800a5b2: 2150 movs r1, #80 ; 0x50 800a5b4: 209a movs r0, #154 ; 0x9a 800a5b6: f7fa fc91 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a5ba: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a5be: b2db uxtb r3, r3 800a5c0: 461a mov r2, r3 800a5c2: 4bb5 ldr r3, [pc, #724] ; (800a898 ) 800a5c4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a5c8: 2303 movs r3, #3 800a5ca: 2150 movs r1, #80 ; 0x50 800a5cc: 20a1 movs r0, #161 ; 0xa1 800a5ce: f7fa fc85 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a5d2: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a5d6: b2db uxtb r3, r3 800a5d8: 461a mov r2, r3 800a5da: 4baf ldr r3, [pc, #700] ; (800a898 ) 800a5dc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a5e0: 2303 movs r3, #3 800a5e2: 2150 movs r1, #80 ; 0x50 800a5e4: 20a8 movs r0, #168 ; 0xa8 800a5e6: f7fa fc79 bl 8004edc if(blk) 800a5ea: 4bad ldr r3, [pc, #692] ; (800a8a0 ) 800a5ec: 681b ldr r3, [r3, #0] 800a5ee: 2b00 cmp r3, #0 800a5f0: f002 84a4 beq.w 800cf3c BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a5f4: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a5f8: b2db uxtb r3, r3 800a5fa: 461a mov r2, r3 800a5fc: 4ba6 ldr r3, [pc, #664] ; (800a898 ) 800a5fe: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a602: 2303 movs r3, #3 800a604: 2150 movs r1, #80 ; 0x50 800a606: 20af movs r0, #175 ; 0xaf 800a608: f7fa fc68 bl 8004edc if(menupos == Kikdt_2) 800a60c: f002 bc96 b.w 800cf3c if(ipt2 == 4) 800a610: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a614: b2db uxtb r3, r3 800a616: 2b04 cmp r3, #4 800a618: f042 8490 bne.w 800cf3c BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a61c: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a620: b2db uxtb r3, r3 800a622: 461a mov r2, r3 800a624: 4b9c ldr r3, [pc, #624] ; (800a898 ) 800a626: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a62a: 2303 movs r3, #3 800a62c: 2150 movs r1, #80 ; 0x50 800a62e: 208c movs r0, #140 ; 0x8c 800a630: f7fa fc54 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE); 800a634: 2303 movs r3, #3 800a636: 4a99 ldr r2, [pc, #612] ; (800a89c ) 800a638: 2150 movs r1, #80 ; 0x50 800a63a: 2093 movs r0, #147 ; 0x93 800a63c: f7fa fc4e bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a640: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a644: b2db uxtb r3, r3 800a646: 461a mov r2, r3 800a648: 4b93 ldr r3, [pc, #588] ; (800a898 ) 800a64a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a64e: 2303 movs r3, #3 800a650: 2150 movs r1, #80 ; 0x50 800a652: 209a movs r0, #154 ; 0x9a 800a654: f7fa fc42 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a658: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a65c: b2db uxtb r3, r3 800a65e: 461a mov r2, r3 800a660: 4b8d ldr r3, [pc, #564] ; (800a898 ) 800a662: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a666: 2303 movs r3, #3 800a668: 2150 movs r1, #80 ; 0x50 800a66a: 20a1 movs r0, #161 ; 0xa1 800a66c: f7fa fc36 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a670: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a674: b2db uxtb r3, r3 800a676: 461a mov r2, r3 800a678: 4b87 ldr r3, [pc, #540] ; (800a898 ) 800a67a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a67e: 2303 movs r3, #3 800a680: 2150 movs r1, #80 ; 0x50 800a682: 20a8 movs r0, #168 ; 0xa8 800a684: f7fa fc2a bl 8004edc if(blk) 800a688: 4b85 ldr r3, [pc, #532] ; (800a8a0 ) 800a68a: 681b ldr r3, [r3, #0] 800a68c: 2b00 cmp r3, #0 800a68e: f002 8455 beq.w 800cf3c BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a692: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a696: b2db uxtb r3, r3 800a698: 461a mov r2, r3 800a69a: 4b7f ldr r3, [pc, #508] ; (800a898 ) 800a69c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a6a0: 2303 movs r3, #3 800a6a2: 2150 movs r1, #80 ; 0x50 800a6a4: 20af movs r0, #175 ; 0xaf 800a6a6: f7fa fc19 bl 8004edc if(menupos == Kikdt_2) 800a6aa: f002 bc47 b.w 800cf3c if(menupos == Kpt_2) 800a6ae: 4b7d ldr r3, [pc, #500] ; (800a8a4 ) 800a6b0: 781b ldrb r3, [r3, #0] 800a6b2: b2db uxtb r3, r3 800a6b4: 2b0f cmp r3, #15 800a6b6: f042 8441 bne.w 800cf3c LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800a6ba: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800a6be: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800a6c2: f7fa fb45 bl 8004d50 if(!ipt2) 800a6c6: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a6ca: b2db uxtb r3, r3 800a6cc: 2b00 cmp r3, #0 800a6ce: d148 bne.n 800a762 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a6d0: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a6d4: b2db uxtb r3, r3 800a6d6: 461a mov r2, r3 800a6d8: 4b6f ldr r3, [pc, #444] ; (800a898 ) 800a6da: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a6de: 2303 movs r3, #3 800a6e0: 2150 movs r1, #80 ; 0x50 800a6e2: 208c movs r0, #140 ; 0x8c 800a6e4: f7fa fbfa bl 8004edc BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a6e8: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a6ec: b2db uxtb r3, r3 800a6ee: 461a mov r2, r3 800a6f0: 4b69 ldr r3, [pc, #420] ; (800a898 ) 800a6f2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a6f6: 2303 movs r3, #3 800a6f8: 2150 movs r1, #80 ; 0x50 800a6fa: 2093 movs r0, #147 ; 0x93 800a6fc: f7fa fbee bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a700: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a704: b2db uxtb r3, r3 800a706: 461a mov r2, r3 800a708: 4b63 ldr r3, [pc, #396] ; (800a898 ) 800a70a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a70e: 2303 movs r3, #3 800a710: 2150 movs r1, #80 ; 0x50 800a712: 209a movs r0, #154 ; 0x9a 800a714: f7fa fbe2 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a718: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a71c: b2db uxtb r3, r3 800a71e: 461a mov r2, r3 800a720: 4b5d ldr r3, [pc, #372] ; (800a898 ) 800a722: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a726: 2303 movs r3, #3 800a728: 2150 movs r1, #80 ; 0x50 800a72a: 20a1 movs r0, #161 ; 0xa1 800a72c: f7fa fbd6 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a730: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a734: b2db uxtb r3, r3 800a736: 461a mov r2, r3 800a738: 4b57 ldr r3, [pc, #348] ; (800a898 ) 800a73a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a73e: 2303 movs r3, #3 800a740: 2150 movs r1, #80 ; 0x50 800a742: 20a8 movs r0, #168 ; 0xa8 800a744: f7fa fbca bl 8004edc if(blk) 800a748: 4b55 ldr r3, [pc, #340] ; (800a8a0 ) 800a74a: 681b ldr r3, [r3, #0] 800a74c: 2b00 cmp r3, #0 800a74e: f002 83f5 beq.w 800cf3c BSP_LCD_DisplayStringAt(140+35, 80, ".", LEFT_MODE); 800a752: 2303 movs r3, #3 800a754: 4a51 ldr r2, [pc, #324] ; (800a89c ) 800a756: 2150 movs r1, #80 ; 0x50 800a758: 20af movs r0, #175 ; 0xaf 800a75a: f7fa fbbf bl 8004edc if(menupos == Kikdt_2) 800a75e: f002 bbed b.w 800cf3c if(ipt2 == 1) 800a762: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a766: b2db uxtb r3, r3 800a768: 2b01 cmp r3, #1 800a76a: d147 bne.n 800a7fc BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a76c: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a770: b2db uxtb r3, r3 800a772: 461a mov r2, r3 800a774: 4b48 ldr r3, [pc, #288] ; (800a898 ) 800a776: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a77a: 2303 movs r3, #3 800a77c: 2150 movs r1, #80 ; 0x50 800a77e: 208c movs r0, #140 ; 0x8c 800a780: f7fa fbac bl 8004edc BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a784: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a788: b2db uxtb r3, r3 800a78a: 461a mov r2, r3 800a78c: 4b42 ldr r3, [pc, #264] ; (800a898 ) 800a78e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a792: 2303 movs r3, #3 800a794: 2150 movs r1, #80 ; 0x50 800a796: 2093 movs r0, #147 ; 0x93 800a798: f7fa fba0 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a79c: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a7a0: b2db uxtb r3, r3 800a7a2: 461a mov r2, r3 800a7a4: 4b3c ldr r3, [pc, #240] ; (800a898 ) 800a7a6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a7aa: 2303 movs r3, #3 800a7ac: 2150 movs r1, #80 ; 0x50 800a7ae: 209a movs r0, #154 ; 0x9a 800a7b0: f7fa fb94 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a7b4: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a7b8: b2db uxtb r3, r3 800a7ba: 461a mov r2, r3 800a7bc: 4b36 ldr r3, [pc, #216] ; (800a898 ) 800a7be: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a7c2: 2303 movs r3, #3 800a7c4: 2150 movs r1, #80 ; 0x50 800a7c6: 20a1 movs r0, #161 ; 0xa1 800a7c8: f7fa fb88 bl 8004edc if(blk) 800a7cc: 4b34 ldr r3, [pc, #208] ; (800a8a0 ) 800a7ce: 681b ldr r3, [r3, #0] 800a7d0: 2b00 cmp r3, #0 800a7d2: d005 beq.n 800a7e0 BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE); 800a7d4: 2303 movs r3, #3 800a7d6: 4a31 ldr r2, [pc, #196] ; (800a89c ) 800a7d8: 2150 movs r1, #80 ; 0x50 800a7da: 20a8 movs r0, #168 ; 0xa8 800a7dc: f7fa fb7e bl 8004edc BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a7e0: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a7e4: b2db uxtb r3, r3 800a7e6: 461a mov r2, r3 800a7e8: 4b2b ldr r3, [pc, #172] ; (800a898 ) 800a7ea: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a7ee: 2303 movs r3, #3 800a7f0: 2150 movs r1, #80 ; 0x50 800a7f2: 20af movs r0, #175 ; 0xaf 800a7f4: f7fa fb72 bl 8004edc if(menupos == Kikdt_2) 800a7f8: f002 bba0 b.w 800cf3c if(ipt2 == 2) 800a7fc: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a800: b2db uxtb r3, r3 800a802: 2b02 cmp r3, #2 800a804: d150 bne.n 800a8a8 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a806: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a80a: b2db uxtb r3, r3 800a80c: 461a mov r2, r3 800a80e: 4b22 ldr r3, [pc, #136] ; (800a898 ) 800a810: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a814: 2303 movs r3, #3 800a816: 2150 movs r1, #80 ; 0x50 800a818: 208c movs r0, #140 ; 0x8c 800a81a: f7fa fb5f bl 8004edc BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a81e: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a822: b2db uxtb r3, r3 800a824: 461a mov r2, r3 800a826: 4b1c ldr r3, [pc, #112] ; (800a898 ) 800a828: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a82c: 2303 movs r3, #3 800a82e: 2150 movs r1, #80 ; 0x50 800a830: 2093 movs r0, #147 ; 0x93 800a832: f7fa fb53 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a836: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a83a: b2db uxtb r3, r3 800a83c: 461a mov r2, r3 800a83e: 4b16 ldr r3, [pc, #88] ; (800a898 ) 800a840: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a844: 2303 movs r3, #3 800a846: 2150 movs r1, #80 ; 0x50 800a848: 209a movs r0, #154 ; 0x9a 800a84a: f7fa fb47 bl 8004edc if(blk) 800a84e: 4b14 ldr r3, [pc, #80] ; (800a8a0 ) 800a850: 681b ldr r3, [r3, #0] 800a852: 2b00 cmp r3, #0 800a854: d005 beq.n 800a862 BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE); 800a856: 2303 movs r3, #3 800a858: 4a10 ldr r2, [pc, #64] ; (800a89c ) 800a85a: 2150 movs r1, #80 ; 0x50 800a85c: 20a1 movs r0, #161 ; 0xa1 800a85e: f7fa fb3d bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a862: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a866: b2db uxtb r3, r3 800a868: 461a mov r2, r3 800a86a: 4b0b ldr r3, [pc, #44] ; (800a898 ) 800a86c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a870: 2303 movs r3, #3 800a872: 2150 movs r1, #80 ; 0x50 800a874: 20a8 movs r0, #168 ; 0xa8 800a876: f7fa fb31 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a87a: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a87e: b2db uxtb r3, r3 800a880: 461a mov r2, r3 800a882: 4b05 ldr r3, [pc, #20] ; (800a898 ) 800a884: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a888: 2303 movs r3, #3 800a88a: 2150 movs r1, #80 ; 0x50 800a88c: 20af movs r0, #175 ; 0xaf 800a88e: f7fa fb25 bl 8004edc if(menupos == Kikdt_2) 800a892: f002 bb53 b.w 800cf3c 800a896: bf00 nop 800a898: 2002096c .word 0x2002096c 800a89c: 08018150 .word 0x08018150 800a8a0: 2006ba78 .word 0x2006ba78 800a8a4: 20020010 .word 0x20020010 if(ipt2 == 3) 800a8a8: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a8ac: b2db uxtb r3, r3 800a8ae: 2b03 cmp r3, #3 800a8b0: d147 bne.n 800a942 BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a8b2: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a8b6: b2db uxtb r3, r3 800a8b8: 461a mov r2, r3 800a8ba: 4bc2 ldr r3, [pc, #776] ; (800abc4 ) 800a8bc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a8c0: 2303 movs r3, #3 800a8c2: 2150 movs r1, #80 ; 0x50 800a8c4: 208c movs r0, #140 ; 0x8c 800a8c6: f7fa fb09 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a8ca: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a8ce: b2db uxtb r3, r3 800a8d0: 461a mov r2, r3 800a8d2: 4bbc ldr r3, [pc, #752] ; (800abc4 ) 800a8d4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a8d8: 2303 movs r3, #3 800a8da: 2150 movs r1, #80 ; 0x50 800a8dc: 2093 movs r0, #147 ; 0x93 800a8de: f7fa fafd bl 8004edc if(blk) 800a8e2: 4bb9 ldr r3, [pc, #740] ; (800abc8 ) 800a8e4: 681b ldr r3, [r3, #0] 800a8e6: 2b00 cmp r3, #0 800a8e8: d005 beq.n 800a8f6 BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE); 800a8ea: 2303 movs r3, #3 800a8ec: 4ab7 ldr r2, [pc, #732] ; (800abcc ) 800a8ee: 2150 movs r1, #80 ; 0x50 800a8f0: 209a movs r0, #154 ; 0x9a 800a8f2: f7fa faf3 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a8f6: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a8fa: b2db uxtb r3, r3 800a8fc: 461a mov r2, r3 800a8fe: 4bb1 ldr r3, [pc, #708] ; (800abc4 ) 800a900: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a904: 2303 movs r3, #3 800a906: 2150 movs r1, #80 ; 0x50 800a908: 20a1 movs r0, #161 ; 0xa1 800a90a: f7fa fae7 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a90e: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a912: b2db uxtb r3, r3 800a914: 461a mov r2, r3 800a916: 4bab ldr r3, [pc, #684] ; (800abc4 ) 800a918: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a91c: 2303 movs r3, #3 800a91e: 2150 movs r1, #80 ; 0x50 800a920: 20a8 movs r0, #168 ; 0xa8 800a922: f7fa fadb bl 8004edc BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a926: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a92a: b2db uxtb r3, r3 800a92c: 461a mov r2, r3 800a92e: 4ba5 ldr r3, [pc, #660] ; (800abc4 ) 800a930: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a934: 2303 movs r3, #3 800a936: 2150 movs r1, #80 ; 0x50 800a938: 20af movs r0, #175 ; 0xaf 800a93a: f7fa facf bl 8004edc if(menupos == Kikdt_2) 800a93e: f002 bafd b.w 800cf3c if(ipt2 == 4) 800a942: f897 3310 ldrb.w r3, [r7, #784] ; 0x310 800a946: b2db uxtb r3, r3 800a948: 2b04 cmp r3, #4 800a94a: f042 82f7 bne.w 800cf3c BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE); 800a94e: f897 3317 ldrb.w r3, [r7, #791] ; 0x317 800a952: b2db uxtb r3, r3 800a954: 461a mov r2, r3 800a956: 4b9b ldr r3, [pc, #620] ; (800abc4 ) 800a958: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a95c: 2303 movs r3, #3 800a95e: 2150 movs r1, #80 ; 0x50 800a960: 208c movs r0, #140 ; 0x8c 800a962: f7fa fabb bl 8004edc if(blk) 800a966: 4b98 ldr r3, [pc, #608] ; (800abc8 ) 800a968: 681b ldr r3, [r3, #0] 800a96a: 2b00 cmp r3, #0 800a96c: d005 beq.n 800a97a BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE); 800a96e: 2303 movs r3, #3 800a970: 4a96 ldr r2, [pc, #600] ; (800abcc ) 800a972: 2150 movs r1, #80 ; 0x50 800a974: 2093 movs r0, #147 ; 0x93 800a976: f7fa fab1 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE); 800a97a: f897 3316 ldrb.w r3, [r7, #790] ; 0x316 800a97e: b2db uxtb r3, r3 800a980: 461a mov r2, r3 800a982: 4b90 ldr r3, [pc, #576] ; (800abc4 ) 800a984: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a988: 2303 movs r3, #3 800a98a: 2150 movs r1, #80 ; 0x50 800a98c: 209a movs r0, #154 ; 0x9a 800a98e: f7fa faa5 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE); 800a992: f897 3315 ldrb.w r3, [r7, #789] ; 0x315 800a996: b2db uxtb r3, r3 800a998: 461a mov r2, r3 800a99a: 4b8a ldr r3, [pc, #552] ; (800abc4 ) 800a99c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a9a0: 2303 movs r3, #3 800a9a2: 2150 movs r1, #80 ; 0x50 800a9a4: 20a1 movs r0, #161 ; 0xa1 800a9a6: f7fa fa99 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE); 800a9aa: f897 3314 ldrb.w r3, [r7, #788] ; 0x314 800a9ae: b2db uxtb r3, r3 800a9b0: 461a mov r2, r3 800a9b2: 4b84 ldr r3, [pc, #528] ; (800abc4 ) 800a9b4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a9b8: 2303 movs r3, #3 800a9ba: 2150 movs r1, #80 ; 0x50 800a9bc: 20a8 movs r0, #168 ; 0xa8 800a9be: f7fa fa8d bl 8004edc BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE); 800a9c2: f897 3313 ldrb.w r3, [r7, #787] ; 0x313 800a9c6: b2db uxtb r3, r3 800a9c8: 461a mov r2, r3 800a9ca: 4b7e ldr r3, [pc, #504] ; (800abc4 ) 800a9cc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800a9d0: 2303 movs r3, #3 800a9d2: 2150 movs r1, #80 ; 0x50 800a9d4: 20af movs r0, #175 ; 0xaf 800a9d6: f7fa fa81 bl 8004edc if(menupos == Kikdt_2) 800a9da: f002 baaf b.w 800cf3c if(menupos >= Kikdt_3 && menupos <= Kpt_3) 800a9de: 4b7c ldr r3, [pc, #496] ; (800abd0 ) 800a9e0: 781b ldrb r3, [r3, #0] 800a9e2: b2db uxtb r3, r3 800a9e4: 2b11 cmp r3, #17 800a9e6: f241 8150 bls.w 800bc8a 800a9ea: 4b79 ldr r3, [pc, #484] ; (800abd0 ) 800a9ec: 781b ldrb r3, [r3, #0] 800a9ee: b2db uxtb r3, r3 800a9f0: 2b17 cmp r3, #23 800a9f2: f201 814a bhi.w 800bc8a LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800a9f6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800a9fa: 4876 ldr r0, [pc, #472] ; (800abd4 ) 800a9fc: f7fa f9a8 bl 8004d50 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 800aa00: f507 728e add.w r2, r7, #284 ; 0x11c 800aa04: 2303 movs r3, #3 800aa06: 213c movs r1, #60 ; 0x3c 800aa08: 208c movs r0, #140 ; 0x8c 800aa0a: f7fa fa67 bl 8004edc BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 800aa0e: f107 02e0 add.w r2, r7, #224 ; 0xe0 800aa12: 2303 movs r3, #3 800aa14: 2150 movs r1, #80 ; 0x50 800aa16: 208c movs r0, #140 ; 0x8c 800aa18: f7fa fa60 bl 8004edc BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE); 800aa1c: f107 0268 add.w r2, r7, #104 ; 0x68 800aa20: 2303 movs r3, #3 800aa22: 2178 movs r1, #120 ; 0x78 800aa24: 208c movs r0, #140 ; 0x8c 800aa26: f7fa fa59 bl 8004edc if(menupos == Kikdt_3) 800aa2a: 4b69 ldr r3, [pc, #420] ; (800abd0 ) 800aa2c: 781b ldrb r3, [r3, #0] 800aa2e: b2db uxtb r3, r3 800aa30: 2b12 cmp r3, #18 800aa32: f040 814c bne.w 800acce LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800aa36: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800aa3a: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800aa3e: f7fa f987 bl 8004d50 if(blk) 800aa42: 4b61 ldr r3, [pc, #388] ; (800abc8 ) 800aa44: 681b ldr r3, [r3, #0] 800aa46: 2b00 cmp r3, #0 800aa48: d00b beq.n 800aa62 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800aa4a: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800aa4e: b2db uxtb r3, r3 800aa50: 461a mov r2, r3 800aa52: 4b5c ldr r3, [pc, #368] ; (800abc4 ) 800aa54: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800aa58: 2303 movs r3, #3 800aa5a: 2164 movs r1, #100 ; 0x64 800aa5c: 208c movs r0, #140 ; 0x8c 800aa5e: f7fa fa3d bl 8004edc if(!ipt3) 800aa62: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800aa66: b2db uxtb r3, r3 800aa68: 2b00 cmp r3, #0 800aa6a: d131 bne.n 800aad0 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800aa6c: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800aa70: b2db uxtb r3, r3 800aa72: 461a mov r2, r3 800aa74: 4b53 ldr r3, [pc, #332] ; (800abc4 ) 800aa76: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800aa7a: 2303 movs r3, #3 800aa7c: 2164 movs r1, #100 ; 0x64 800aa7e: 2093 movs r0, #147 ; 0x93 800aa80: f7fa fa2c bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800aa84: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800aa88: b2db uxtb r3, r3 800aa8a: 461a mov r2, r3 800aa8c: 4b4d ldr r3, [pc, #308] ; (800abc4 ) 800aa8e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800aa92: 2303 movs r3, #3 800aa94: 2164 movs r1, #100 ; 0x64 800aa96: 209a movs r0, #154 ; 0x9a 800aa98: f7fa fa20 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800aa9c: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800aaa0: b2db uxtb r3, r3 800aaa2: 461a mov r2, r3 800aaa4: 4b47 ldr r3, [pc, #284] ; (800abc4 ) 800aaa6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800aaaa: 2303 movs r3, #3 800aaac: 2164 movs r1, #100 ; 0x64 800aaae: 20a1 movs r0, #161 ; 0xa1 800aab0: f7fa fa14 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE); 800aab4: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800aab8: b2db uxtb r3, r3 800aaba: 461a mov r2, r3 800aabc: 4b41 ldr r3, [pc, #260] ; (800abc4 ) 800aabe: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800aac2: 2303 movs r3, #3 800aac4: 2164 movs r1, #100 ; 0x64 800aac6: 20a8 movs r0, #168 ; 0xa8 800aac8: f7fa fa08 bl 8004edc if(menupos == Kikdt_3) 800aacc: f002 ba39 b.w 800cf42 if(ipt3 == 1) 800aad0: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800aad4: b2db uxtb r3, r3 800aad6: 2b01 cmp r3, #1 800aad8: d137 bne.n 800ab4a BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800aada: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800aade: b2db uxtb r3, r3 800aae0: 461a mov r2, r3 800aae2: 4b38 ldr r3, [pc, #224] ; (800abc4 ) 800aae4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800aae8: 2303 movs r3, #3 800aaea: 2164 movs r1, #100 ; 0x64 800aaec: 2093 movs r0, #147 ; 0x93 800aaee: f7fa f9f5 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800aaf2: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800aaf6: b2db uxtb r3, r3 800aaf8: 461a mov r2, r3 800aafa: 4b32 ldr r3, [pc, #200] ; (800abc4 ) 800aafc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ab00: 2303 movs r3, #3 800ab02: 2164 movs r1, #100 ; 0x64 800ab04: 209a movs r0, #154 ; 0x9a 800ab06: f7fa f9e9 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800ab0a: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800ab0e: b2db uxtb r3, r3 800ab10: 461a mov r2, r3 800ab12: 4b2c ldr r3, [pc, #176] ; (800abc4 ) 800ab14: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ab18: 2303 movs r3, #3 800ab1a: 2164 movs r1, #100 ; 0x64 800ab1c: 20a1 movs r0, #161 ; 0xa1 800ab1e: f7fa f9dd bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE); 800ab22: 2303 movs r3, #3 800ab24: 4a29 ldr r2, [pc, #164] ; (800abcc ) 800ab26: 2164 movs r1, #100 ; 0x64 800ab28: 20a8 movs r0, #168 ; 0xa8 800ab2a: f7fa f9d7 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800ab2e: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800ab32: b2db uxtb r3, r3 800ab34: 461a mov r2, r3 800ab36: 4b23 ldr r3, [pc, #140] ; (800abc4 ) 800ab38: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ab3c: 2303 movs r3, #3 800ab3e: 2164 movs r1, #100 ; 0x64 800ab40: 20af movs r0, #175 ; 0xaf 800ab42: f7fa f9cb bl 8004edc if(menupos == Kikdt_3) 800ab46: f002 b9fc b.w 800cf42 if(ipt3 == 2) 800ab4a: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800ab4e: b2db uxtb r3, r3 800ab50: 2b02 cmp r3, #2 800ab52: d141 bne.n 800abd8 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800ab54: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800ab58: b2db uxtb r3, r3 800ab5a: 461a mov r2, r3 800ab5c: 4b19 ldr r3, [pc, #100] ; (800abc4 ) 800ab5e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ab62: 2303 movs r3, #3 800ab64: 2164 movs r1, #100 ; 0x64 800ab66: 2093 movs r0, #147 ; 0x93 800ab68: f7fa f9b8 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800ab6c: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800ab70: b2db uxtb r3, r3 800ab72: 461a mov r2, r3 800ab74: 4b13 ldr r3, [pc, #76] ; (800abc4 ) 800ab76: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ab7a: 2303 movs r3, #3 800ab7c: 2164 movs r1, #100 ; 0x64 800ab7e: 209a movs r0, #154 ; 0x9a 800ab80: f7fa f9ac bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE); 800ab84: 2303 movs r3, #3 800ab86: 4a11 ldr r2, [pc, #68] ; (800abcc ) 800ab88: 2164 movs r1, #100 ; 0x64 800ab8a: 20a1 movs r0, #161 ; 0xa1 800ab8c: f7fa f9a6 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800ab90: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800ab94: b2db uxtb r3, r3 800ab96: 461a mov r2, r3 800ab98: 4b0a ldr r3, [pc, #40] ; (800abc4 ) 800ab9a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ab9e: 2303 movs r3, #3 800aba0: 2164 movs r1, #100 ; 0x64 800aba2: 20a8 movs r0, #168 ; 0xa8 800aba4: f7fa f99a bl 8004edc BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800aba8: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800abac: b2db uxtb r3, r3 800abae: 461a mov r2, r3 800abb0: 4b04 ldr r3, [pc, #16] ; (800abc4 ) 800abb2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800abb6: 2303 movs r3, #3 800abb8: 2164 movs r1, #100 ; 0x64 800abba: 20af movs r0, #175 ; 0xaf 800abbc: f7fa f98e bl 8004edc if(menupos == Kikdt_3) 800abc0: f002 b9bf b.w 800cf42 800abc4: 2002096c .word 0x2002096c 800abc8: 2006ba78 .word 0x2006ba78 800abcc: 08018150 .word 0x08018150 800abd0: 20020010 .word 0x20020010 800abd4: ffd8aa57 .word 0xffd8aa57 if(ipt3 == 3) 800abd8: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800abdc: b2db uxtb r3, r3 800abde: 2b03 cmp r3, #3 800abe0: d137 bne.n 800ac52 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800abe2: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800abe6: b2db uxtb r3, r3 800abe8: 461a mov r2, r3 800abea: 4baf ldr r3, [pc, #700] ; (800aea8 ) 800abec: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800abf0: 2303 movs r3, #3 800abf2: 2164 movs r1, #100 ; 0x64 800abf4: 2093 movs r0, #147 ; 0x93 800abf6: f7fa f971 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE); 800abfa: 2303 movs r3, #3 800abfc: 4aab ldr r2, [pc, #684] ; (800aeac ) 800abfe: 2164 movs r1, #100 ; 0x64 800ac00: 209a movs r0, #154 ; 0x9a 800ac02: f7fa f96b bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800ac06: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800ac0a: b2db uxtb r3, r3 800ac0c: 461a mov r2, r3 800ac0e: 4ba6 ldr r3, [pc, #664] ; (800aea8 ) 800ac10: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ac14: 2303 movs r3, #3 800ac16: 2164 movs r1, #100 ; 0x64 800ac18: 20a1 movs r0, #161 ; 0xa1 800ac1a: f7fa f95f bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800ac1e: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800ac22: b2db uxtb r3, r3 800ac24: 461a mov r2, r3 800ac26: 4ba0 ldr r3, [pc, #640] ; (800aea8 ) 800ac28: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ac2c: 2303 movs r3, #3 800ac2e: 2164 movs r1, #100 ; 0x64 800ac30: 20a8 movs r0, #168 ; 0xa8 800ac32: f7fa f953 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800ac36: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800ac3a: b2db uxtb r3, r3 800ac3c: 461a mov r2, r3 800ac3e: 4b9a ldr r3, [pc, #616] ; (800aea8 ) 800ac40: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ac44: 2303 movs r3, #3 800ac46: 2164 movs r1, #100 ; 0x64 800ac48: 20af movs r0, #175 ; 0xaf 800ac4a: f7fa f947 bl 8004edc if(menupos == Kikdt_3) 800ac4e: f002 b978 b.w 800cf42 if(ipt3 == 4) 800ac52: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800ac56: b2db uxtb r3, r3 800ac58: 2b04 cmp r3, #4 800ac5a: f042 8172 bne.w 800cf42 BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE); 800ac5e: 2303 movs r3, #3 800ac60: 4a92 ldr r2, [pc, #584] ; (800aeac ) 800ac62: 2164 movs r1, #100 ; 0x64 800ac64: 2093 movs r0, #147 ; 0x93 800ac66: f7fa f939 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE); 800ac6a: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800ac6e: b2db uxtb r3, r3 800ac70: 461a mov r2, r3 800ac72: 4b8d ldr r3, [pc, #564] ; (800aea8 ) 800ac74: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ac78: 2303 movs r3, #3 800ac7a: 2164 movs r1, #100 ; 0x64 800ac7c: 209a movs r0, #154 ; 0x9a 800ac7e: f7fa f92d bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800ac82: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800ac86: b2db uxtb r3, r3 800ac88: 461a mov r2, r3 800ac8a: 4b87 ldr r3, [pc, #540] ; (800aea8 ) 800ac8c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ac90: 2303 movs r3, #3 800ac92: 2164 movs r1, #100 ; 0x64 800ac94: 20a1 movs r0, #161 ; 0xa1 800ac96: f7fa f921 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800ac9a: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800ac9e: b2db uxtb r3, r3 800aca0: 461a mov r2, r3 800aca2: 4b81 ldr r3, [pc, #516] ; (800aea8 ) 800aca4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800aca8: 2303 movs r3, #3 800acaa: 2164 movs r1, #100 ; 0x64 800acac: 20a8 movs r0, #168 ; 0xa8 800acae: f7fa f915 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800acb2: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800acb6: b2db uxtb r3, r3 800acb8: 461a mov r2, r3 800acba: 4b7b ldr r3, [pc, #492] ; (800aea8 ) 800acbc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800acc0: 2303 movs r3, #3 800acc2: 2164 movs r1, #100 ; 0x64 800acc4: 20af movs r0, #175 ; 0xaf 800acc6: f7fa f909 bl 8004edc if(menupos == Kikdt_3) 800acca: f002 b93a b.w 800cf42 if(menupos == Kikt_3) 800acce: 4b78 ldr r3, [pc, #480] ; (800aeb0 ) 800acd0: 781b ldrb r3, [r3, #0] 800acd2: b2db uxtb r3, r3 800acd4: 2b13 cmp r3, #19 800acd6: f040 818a bne.w 800afee LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800acda: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800acde: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800ace2: f7fa f835 bl 8004d50 if(!ipt3) 800ace6: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800acea: b2db uxtb r3, r3 800acec: 2b00 cmp r3, #0 800acee: d141 bne.n 800ad74 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800acf0: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800acf4: b2db uxtb r3, r3 800acf6: 461a mov r2, r3 800acf8: 4b6b ldr r3, [pc, #428] ; (800aea8 ) 800acfa: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800acfe: 2303 movs r3, #3 800ad00: 2164 movs r1, #100 ; 0x64 800ad02: 208c movs r0, #140 ; 0x8c 800ad04: f7fa f8ea bl 8004edc if(blk) 800ad08: 4b6a ldr r3, [pc, #424] ; (800aeb4 ) 800ad0a: 681b ldr r3, [r3, #0] 800ad0c: 2b00 cmp r3, #0 800ad0e: d00b beq.n 800ad28 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800ad10: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800ad14: b2db uxtb r3, r3 800ad16: 461a mov r2, r3 800ad18: 4b63 ldr r3, [pc, #396] ; (800aea8 ) 800ad1a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ad1e: 2303 movs r3, #3 800ad20: 2164 movs r1, #100 ; 0x64 800ad22: 2093 movs r0, #147 ; 0x93 800ad24: f7fa f8da bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800ad28: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800ad2c: b2db uxtb r3, r3 800ad2e: 461a mov r2, r3 800ad30: 4b5d ldr r3, [pc, #372] ; (800aea8 ) 800ad32: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ad36: 2303 movs r3, #3 800ad38: 2164 movs r1, #100 ; 0x64 800ad3a: 209a movs r0, #154 ; 0x9a 800ad3c: f7fa f8ce bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800ad40: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800ad44: b2db uxtb r3, r3 800ad46: 461a mov r2, r3 800ad48: 4b57 ldr r3, [pc, #348] ; (800aea8 ) 800ad4a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ad4e: 2303 movs r3, #3 800ad50: 2164 movs r1, #100 ; 0x64 800ad52: 20a1 movs r0, #161 ; 0xa1 800ad54: f7fa f8c2 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE); 800ad58: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800ad5c: b2db uxtb r3, r3 800ad5e: 461a mov r2, r3 800ad60: 4b51 ldr r3, [pc, #324] ; (800aea8 ) 800ad62: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ad66: 2303 movs r3, #3 800ad68: 2164 movs r1, #100 ; 0x64 800ad6a: 20a8 movs r0, #168 ; 0xa8 800ad6c: f7fa f8b6 bl 8004edc if(menupos == Kikdt_3) 800ad70: f002 b8e7 b.w 800cf42 if(ipt3 == 1) 800ad74: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800ad78: b2db uxtb r3, r3 800ad7a: 2b01 cmp r3, #1 800ad7c: d147 bne.n 800ae0e BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800ad7e: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800ad82: b2db uxtb r3, r3 800ad84: 461a mov r2, r3 800ad86: 4b48 ldr r3, [pc, #288] ; (800aea8 ) 800ad88: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ad8c: 2303 movs r3, #3 800ad8e: 2164 movs r1, #100 ; 0x64 800ad90: 208c movs r0, #140 ; 0x8c 800ad92: f7fa f8a3 bl 8004edc if(blk) 800ad96: 4b47 ldr r3, [pc, #284] ; (800aeb4 ) 800ad98: 681b ldr r3, [r3, #0] 800ad9a: 2b00 cmp r3, #0 800ad9c: d00b beq.n 800adb6 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800ad9e: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800ada2: b2db uxtb r3, r3 800ada4: 461a mov r2, r3 800ada6: 4b40 ldr r3, [pc, #256] ; (800aea8 ) 800ada8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800adac: 2303 movs r3, #3 800adae: 2164 movs r1, #100 ; 0x64 800adb0: 2093 movs r0, #147 ; 0x93 800adb2: f7fa f893 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800adb6: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800adba: b2db uxtb r3, r3 800adbc: 461a mov r2, r3 800adbe: 4b3a ldr r3, [pc, #232] ; (800aea8 ) 800adc0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800adc4: 2303 movs r3, #3 800adc6: 2164 movs r1, #100 ; 0x64 800adc8: 209a movs r0, #154 ; 0x9a 800adca: f7fa f887 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800adce: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800add2: b2db uxtb r3, r3 800add4: 461a mov r2, r3 800add6: 4b34 ldr r3, [pc, #208] ; (800aea8 ) 800add8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800addc: 2303 movs r3, #3 800adde: 2164 movs r1, #100 ; 0x64 800ade0: 20a1 movs r0, #161 ; 0xa1 800ade2: f7fa f87b bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE); 800ade6: 2303 movs r3, #3 800ade8: 4a30 ldr r2, [pc, #192] ; (800aeac ) 800adea: 2164 movs r1, #100 ; 0x64 800adec: 20a8 movs r0, #168 ; 0xa8 800adee: f7fa f875 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800adf2: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800adf6: b2db uxtb r3, r3 800adf8: 461a mov r2, r3 800adfa: 4b2b ldr r3, [pc, #172] ; (800aea8 ) 800adfc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ae00: 2303 movs r3, #3 800ae02: 2164 movs r1, #100 ; 0x64 800ae04: 20af movs r0, #175 ; 0xaf 800ae06: f7fa f869 bl 8004edc if(menupos == Kikdt_3) 800ae0a: f002 b89a b.w 800cf42 if(ipt3 == 2) 800ae0e: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800ae12: b2db uxtb r3, r3 800ae14: 2b02 cmp r3, #2 800ae16: d14f bne.n 800aeb8 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800ae18: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800ae1c: b2db uxtb r3, r3 800ae1e: 461a mov r2, r3 800ae20: 4b21 ldr r3, [pc, #132] ; (800aea8 ) 800ae22: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ae26: 2303 movs r3, #3 800ae28: 2164 movs r1, #100 ; 0x64 800ae2a: 208c movs r0, #140 ; 0x8c 800ae2c: f7fa f856 bl 8004edc if(blk) 800ae30: 4b20 ldr r3, [pc, #128] ; (800aeb4 ) 800ae32: 681b ldr r3, [r3, #0] 800ae34: 2b00 cmp r3, #0 800ae36: d00b beq.n 800ae50 BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800ae38: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800ae3c: b2db uxtb r3, r3 800ae3e: 461a mov r2, r3 800ae40: 4b19 ldr r3, [pc, #100] ; (800aea8 ) 800ae42: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ae46: 2303 movs r3, #3 800ae48: 2164 movs r1, #100 ; 0x64 800ae4a: 2093 movs r0, #147 ; 0x93 800ae4c: f7fa f846 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800ae50: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800ae54: b2db uxtb r3, r3 800ae56: 461a mov r2, r3 800ae58: 4b13 ldr r3, [pc, #76] ; (800aea8 ) 800ae5a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ae5e: 2303 movs r3, #3 800ae60: 2164 movs r1, #100 ; 0x64 800ae62: 209a movs r0, #154 ; 0x9a 800ae64: f7fa f83a bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE); 800ae68: 2303 movs r3, #3 800ae6a: 4a10 ldr r2, [pc, #64] ; (800aeac ) 800ae6c: 2164 movs r1, #100 ; 0x64 800ae6e: 20a1 movs r0, #161 ; 0xa1 800ae70: f7fa f834 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800ae74: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800ae78: b2db uxtb r3, r3 800ae7a: 461a mov r2, r3 800ae7c: 4b0a ldr r3, [pc, #40] ; (800aea8 ) 800ae7e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ae82: 2303 movs r3, #3 800ae84: 2164 movs r1, #100 ; 0x64 800ae86: 20a8 movs r0, #168 ; 0xa8 800ae88: f7fa f828 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800ae8c: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800ae90: b2db uxtb r3, r3 800ae92: 461a mov r2, r3 800ae94: 4b04 ldr r3, [pc, #16] ; (800aea8 ) 800ae96: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ae9a: 2303 movs r3, #3 800ae9c: 2164 movs r1, #100 ; 0x64 800ae9e: 20af movs r0, #175 ; 0xaf 800aea0: f7fa f81c bl 8004edc if(menupos == Kikdt_3) 800aea4: f002 b84d b.w 800cf42 800aea8: 2002096c .word 0x2002096c 800aeac: 08018150 .word 0x08018150 800aeb0: 20020010 .word 0x20020010 800aeb4: 2006ba78 .word 0x2006ba78 if(ipt3 == 3) 800aeb8: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800aebc: b2db uxtb r3, r3 800aebe: 2b03 cmp r3, #3 800aec0: d147 bne.n 800af52 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800aec2: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800aec6: b2db uxtb r3, r3 800aec8: 461a mov r2, r3 800aeca: 4bbf ldr r3, [pc, #764] ; (800b1c8 ) 800aecc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800aed0: 2303 movs r3, #3 800aed2: 2164 movs r1, #100 ; 0x64 800aed4: 208c movs r0, #140 ; 0x8c 800aed6: f7fa f801 bl 8004edc if(blk) 800aeda: 4bbc ldr r3, [pc, #752] ; (800b1cc ) 800aedc: 681b ldr r3, [r3, #0] 800aede: 2b00 cmp r3, #0 800aee0: d00b beq.n 800aefa BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800aee2: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800aee6: b2db uxtb r3, r3 800aee8: 461a mov r2, r3 800aeea: 4bb7 ldr r3, [pc, #732] ; (800b1c8 ) 800aeec: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800aef0: 2303 movs r3, #3 800aef2: 2164 movs r1, #100 ; 0x64 800aef4: 2093 movs r0, #147 ; 0x93 800aef6: f7f9 fff1 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE); 800aefa: 2303 movs r3, #3 800aefc: 4ab4 ldr r2, [pc, #720] ; (800b1d0 ) 800aefe: 2164 movs r1, #100 ; 0x64 800af00: 209a movs r0, #154 ; 0x9a 800af02: f7f9 ffeb bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800af06: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800af0a: b2db uxtb r3, r3 800af0c: 461a mov r2, r3 800af0e: 4bae ldr r3, [pc, #696] ; (800b1c8 ) 800af10: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800af14: 2303 movs r3, #3 800af16: 2164 movs r1, #100 ; 0x64 800af18: 20a1 movs r0, #161 ; 0xa1 800af1a: f7f9 ffdf bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800af1e: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800af22: b2db uxtb r3, r3 800af24: 461a mov r2, r3 800af26: 4ba8 ldr r3, [pc, #672] ; (800b1c8 ) 800af28: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800af2c: 2303 movs r3, #3 800af2e: 2164 movs r1, #100 ; 0x64 800af30: 20a8 movs r0, #168 ; 0xa8 800af32: f7f9 ffd3 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800af36: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800af3a: b2db uxtb r3, r3 800af3c: 461a mov r2, r3 800af3e: 4ba2 ldr r3, [pc, #648] ; (800b1c8 ) 800af40: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800af44: 2303 movs r3, #3 800af46: 2164 movs r1, #100 ; 0x64 800af48: 20af movs r0, #175 ; 0xaf 800af4a: f7f9 ffc7 bl 8004edc if(menupos == Kikdt_3) 800af4e: f001 bff8 b.w 800cf42 if(ipt3 == 4) 800af52: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800af56: b2db uxtb r3, r3 800af58: 2b04 cmp r3, #4 800af5a: f041 87f2 bne.w 800cf42 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800af5e: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800af62: b2db uxtb r3, r3 800af64: 461a mov r2, r3 800af66: 4b98 ldr r3, [pc, #608] ; (800b1c8 ) 800af68: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800af6c: 2303 movs r3, #3 800af6e: 2164 movs r1, #100 ; 0x64 800af70: 208c movs r0, #140 ; 0x8c 800af72: f7f9 ffb3 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE); 800af76: 2303 movs r3, #3 800af78: 4a95 ldr r2, [pc, #596] ; (800b1d0 ) 800af7a: 2164 movs r1, #100 ; 0x64 800af7c: 2093 movs r0, #147 ; 0x93 800af7e: f7f9 ffad bl 8004edc if(blk) 800af82: 4b92 ldr r3, [pc, #584] ; (800b1cc ) 800af84: 681b ldr r3, [r3, #0] 800af86: 2b00 cmp r3, #0 800af88: d00b beq.n 800afa2 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE); 800af8a: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800af8e: b2db uxtb r3, r3 800af90: 461a mov r2, r3 800af92: 4b8d ldr r3, [pc, #564] ; (800b1c8 ) 800af94: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800af98: 2303 movs r3, #3 800af9a: 2164 movs r1, #100 ; 0x64 800af9c: 209a movs r0, #154 ; 0x9a 800af9e: f7f9 ff9d bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800afa2: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800afa6: b2db uxtb r3, r3 800afa8: 461a mov r2, r3 800afaa: 4b87 ldr r3, [pc, #540] ; (800b1c8 ) 800afac: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800afb0: 2303 movs r3, #3 800afb2: 2164 movs r1, #100 ; 0x64 800afb4: 20a1 movs r0, #161 ; 0xa1 800afb6: f7f9 ff91 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800afba: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800afbe: b2db uxtb r3, r3 800afc0: 461a mov r2, r3 800afc2: 4b81 ldr r3, [pc, #516] ; (800b1c8 ) 800afc4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800afc8: 2303 movs r3, #3 800afca: 2164 movs r1, #100 ; 0x64 800afcc: 20a8 movs r0, #168 ; 0xa8 800afce: f7f9 ff85 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800afd2: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800afd6: b2db uxtb r3, r3 800afd8: 461a mov r2, r3 800afda: 4b7b ldr r3, [pc, #492] ; (800b1c8 ) 800afdc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800afe0: 2303 movs r3, #3 800afe2: 2164 movs r1, #100 ; 0x64 800afe4: 20af movs r0, #175 ; 0xaf 800afe6: f7f9 ff79 bl 8004edc if(menupos == Kikdt_3) 800afea: f001 bfaa b.w 800cf42 if(menupos == Kiks_3) 800afee: 4b79 ldr r3, [pc, #484] ; (800b1d4 ) 800aff0: 781b ldrb r3, [r3, #0] 800aff2: b2db uxtb r3, r3 800aff4: 2b14 cmp r3, #20 800aff6: f040 818a bne.w 800b30e LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800affa: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800affe: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800b002: f7f9 fea5 bl 8004d50 if(!ipt3) 800b006: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b00a: b2db uxtb r3, r3 800b00c: 2b00 cmp r3, #0 800b00e: d141 bne.n 800b094 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b010: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b014: b2db uxtb r3, r3 800b016: 461a mov r2, r3 800b018: 4b6b ldr r3, [pc, #428] ; (800b1c8 ) 800b01a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b01e: 2303 movs r3, #3 800b020: 2164 movs r1, #100 ; 0x64 800b022: 208c movs r0, #140 ; 0x8c 800b024: f7f9 ff5a bl 8004edc BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b028: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b02c: b2db uxtb r3, r3 800b02e: 461a mov r2, r3 800b030: 4b65 ldr r3, [pc, #404] ; (800b1c8 ) 800b032: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b036: 2303 movs r3, #3 800b038: 2164 movs r1, #100 ; 0x64 800b03a: 2093 movs r0, #147 ; 0x93 800b03c: f7f9 ff4e bl 8004edc if(blk) 800b040: 4b62 ldr r3, [pc, #392] ; (800b1cc ) 800b042: 681b ldr r3, [r3, #0] 800b044: 2b00 cmp r3, #0 800b046: d00b beq.n 800b060 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b048: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b04c: b2db uxtb r3, r3 800b04e: 461a mov r2, r3 800b050: 4b5d ldr r3, [pc, #372] ; (800b1c8 ) 800b052: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b056: 2303 movs r3, #3 800b058: 2164 movs r1, #100 ; 0x64 800b05a: 209a movs r0, #154 ; 0x9a 800b05c: f7f9 ff3e bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b060: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b064: b2db uxtb r3, r3 800b066: 461a mov r2, r3 800b068: 4b57 ldr r3, [pc, #348] ; (800b1c8 ) 800b06a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b06e: 2303 movs r3, #3 800b070: 2164 movs r1, #100 ; 0x64 800b072: 20a1 movs r0, #161 ; 0xa1 800b074: f7f9 ff32 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b078: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b07c: b2db uxtb r3, r3 800b07e: 461a mov r2, r3 800b080: 4b51 ldr r3, [pc, #324] ; (800b1c8 ) 800b082: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b086: 2303 movs r3, #3 800b088: 2164 movs r1, #100 ; 0x64 800b08a: 20a8 movs r0, #168 ; 0xa8 800b08c: f7f9 ff26 bl 8004edc if(menupos == Kikdt_3) 800b090: f001 bf57 b.w 800cf42 if(ipt3 == 1) 800b094: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b098: b2db uxtb r3, r3 800b09a: 2b01 cmp r3, #1 800b09c: d147 bne.n 800b12e BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b09e: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b0a2: b2db uxtb r3, r3 800b0a4: 461a mov r2, r3 800b0a6: 4b48 ldr r3, [pc, #288] ; (800b1c8 ) 800b0a8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b0ac: 2303 movs r3, #3 800b0ae: 2164 movs r1, #100 ; 0x64 800b0b0: 208c movs r0, #140 ; 0x8c 800b0b2: f7f9 ff13 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b0b6: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b0ba: b2db uxtb r3, r3 800b0bc: 461a mov r2, r3 800b0be: 4b42 ldr r3, [pc, #264] ; (800b1c8 ) 800b0c0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b0c4: 2303 movs r3, #3 800b0c6: 2164 movs r1, #100 ; 0x64 800b0c8: 2093 movs r0, #147 ; 0x93 800b0ca: f7f9 ff07 bl 8004edc if(blk) 800b0ce: 4b3f ldr r3, [pc, #252] ; (800b1cc ) 800b0d0: 681b ldr r3, [r3, #0] 800b0d2: 2b00 cmp r3, #0 800b0d4: d00b beq.n 800b0ee BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b0d6: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b0da: b2db uxtb r3, r3 800b0dc: 461a mov r2, r3 800b0de: 4b3a ldr r3, [pc, #232] ; (800b1c8 ) 800b0e0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b0e4: 2303 movs r3, #3 800b0e6: 2164 movs r1, #100 ; 0x64 800b0e8: 209a movs r0, #154 ; 0x9a 800b0ea: f7f9 fef7 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b0ee: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b0f2: b2db uxtb r3, r3 800b0f4: 461a mov r2, r3 800b0f6: 4b34 ldr r3, [pc, #208] ; (800b1c8 ) 800b0f8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b0fc: 2303 movs r3, #3 800b0fe: 2164 movs r1, #100 ; 0x64 800b100: 20a1 movs r0, #161 ; 0xa1 800b102: f7f9 feeb bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE); 800b106: 2303 movs r3, #3 800b108: 4a31 ldr r2, [pc, #196] ; (800b1d0 ) 800b10a: 2164 movs r1, #100 ; 0x64 800b10c: 20a8 movs r0, #168 ; 0xa8 800b10e: f7f9 fee5 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b112: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b116: b2db uxtb r3, r3 800b118: 461a mov r2, r3 800b11a: 4b2b ldr r3, [pc, #172] ; (800b1c8 ) 800b11c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b120: 2303 movs r3, #3 800b122: 2164 movs r1, #100 ; 0x64 800b124: 20af movs r0, #175 ; 0xaf 800b126: f7f9 fed9 bl 8004edc if(menupos == Kikdt_3) 800b12a: f001 bf0a b.w 800cf42 if(ipt3 == 2) 800b12e: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b132: b2db uxtb r3, r3 800b134: 2b02 cmp r3, #2 800b136: d14f bne.n 800b1d8 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b138: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b13c: b2db uxtb r3, r3 800b13e: 461a mov r2, r3 800b140: 4b21 ldr r3, [pc, #132] ; (800b1c8 ) 800b142: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b146: 2303 movs r3, #3 800b148: 2164 movs r1, #100 ; 0x64 800b14a: 208c movs r0, #140 ; 0x8c 800b14c: f7f9 fec6 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b150: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b154: b2db uxtb r3, r3 800b156: 461a mov r2, r3 800b158: 4b1b ldr r3, [pc, #108] ; (800b1c8 ) 800b15a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b15e: 2303 movs r3, #3 800b160: 2164 movs r1, #100 ; 0x64 800b162: 2093 movs r0, #147 ; 0x93 800b164: f7f9 feba bl 8004edc if(blk) 800b168: 4b18 ldr r3, [pc, #96] ; (800b1cc ) 800b16a: 681b ldr r3, [r3, #0] 800b16c: 2b00 cmp r3, #0 800b16e: d00b beq.n 800b188 BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b170: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b174: b2db uxtb r3, r3 800b176: 461a mov r2, r3 800b178: 4b13 ldr r3, [pc, #76] ; (800b1c8 ) 800b17a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b17e: 2303 movs r3, #3 800b180: 2164 movs r1, #100 ; 0x64 800b182: 209a movs r0, #154 ; 0x9a 800b184: f7f9 feaa bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE); 800b188: 2303 movs r3, #3 800b18a: 4a11 ldr r2, [pc, #68] ; (800b1d0 ) 800b18c: 2164 movs r1, #100 ; 0x64 800b18e: 20a1 movs r0, #161 ; 0xa1 800b190: f7f9 fea4 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b194: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b198: b2db uxtb r3, r3 800b19a: 461a mov r2, r3 800b19c: 4b0a ldr r3, [pc, #40] ; (800b1c8 ) 800b19e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b1a2: 2303 movs r3, #3 800b1a4: 2164 movs r1, #100 ; 0x64 800b1a6: 20a8 movs r0, #168 ; 0xa8 800b1a8: f7f9 fe98 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b1ac: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b1b0: b2db uxtb r3, r3 800b1b2: 461a mov r2, r3 800b1b4: 4b04 ldr r3, [pc, #16] ; (800b1c8 ) 800b1b6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b1ba: 2303 movs r3, #3 800b1bc: 2164 movs r1, #100 ; 0x64 800b1be: 20af movs r0, #175 ; 0xaf 800b1c0: f7f9 fe8c bl 8004edc if(menupos == Kikdt_3) 800b1c4: f001 bebd b.w 800cf42 800b1c8: 2002096c .word 0x2002096c 800b1cc: 2006ba78 .word 0x2006ba78 800b1d0: 08018150 .word 0x08018150 800b1d4: 20020010 .word 0x20020010 if(ipt3 == 3) 800b1d8: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b1dc: b2db uxtb r3, r3 800b1de: 2b03 cmp r3, #3 800b1e0: d147 bne.n 800b272 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b1e2: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b1e6: b2db uxtb r3, r3 800b1e8: 461a mov r2, r3 800b1ea: 4bbf ldr r3, [pc, #764] ; (800b4e8 ) 800b1ec: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b1f0: 2303 movs r3, #3 800b1f2: 2164 movs r1, #100 ; 0x64 800b1f4: 208c movs r0, #140 ; 0x8c 800b1f6: f7f9 fe71 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b1fa: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b1fe: b2db uxtb r3, r3 800b200: 461a mov r2, r3 800b202: 4bb9 ldr r3, [pc, #740] ; (800b4e8 ) 800b204: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b208: 2303 movs r3, #3 800b20a: 2164 movs r1, #100 ; 0x64 800b20c: 2093 movs r0, #147 ; 0x93 800b20e: f7f9 fe65 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE); 800b212: 2303 movs r3, #3 800b214: 4ab5 ldr r2, [pc, #724] ; (800b4ec ) 800b216: 2164 movs r1, #100 ; 0x64 800b218: 209a movs r0, #154 ; 0x9a 800b21a: f7f9 fe5f bl 8004edc if(blk) 800b21e: 4bb4 ldr r3, [pc, #720] ; (800b4f0 ) 800b220: 681b ldr r3, [r3, #0] 800b222: 2b00 cmp r3, #0 800b224: d00b beq.n 800b23e BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b226: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b22a: b2db uxtb r3, r3 800b22c: 461a mov r2, r3 800b22e: 4bae ldr r3, [pc, #696] ; (800b4e8 ) 800b230: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b234: 2303 movs r3, #3 800b236: 2164 movs r1, #100 ; 0x64 800b238: 20a1 movs r0, #161 ; 0xa1 800b23a: f7f9 fe4f bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b23e: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b242: b2db uxtb r3, r3 800b244: 461a mov r2, r3 800b246: 4ba8 ldr r3, [pc, #672] ; (800b4e8 ) 800b248: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b24c: 2303 movs r3, #3 800b24e: 2164 movs r1, #100 ; 0x64 800b250: 20a8 movs r0, #168 ; 0xa8 800b252: f7f9 fe43 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b256: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b25a: b2db uxtb r3, r3 800b25c: 461a mov r2, r3 800b25e: 4ba2 ldr r3, [pc, #648] ; (800b4e8 ) 800b260: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b264: 2303 movs r3, #3 800b266: 2164 movs r1, #100 ; 0x64 800b268: 20af movs r0, #175 ; 0xaf 800b26a: f7f9 fe37 bl 8004edc if(menupos == Kikdt_3) 800b26e: f001 be68 b.w 800cf42 if(ipt3 == 4) 800b272: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b276: b2db uxtb r3, r3 800b278: 2b04 cmp r3, #4 800b27a: f041 8662 bne.w 800cf42 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b27e: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b282: b2db uxtb r3, r3 800b284: 461a mov r2, r3 800b286: 4b98 ldr r3, [pc, #608] ; (800b4e8 ) 800b288: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b28c: 2303 movs r3, #3 800b28e: 2164 movs r1, #100 ; 0x64 800b290: 208c movs r0, #140 ; 0x8c 800b292: f7f9 fe23 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE); 800b296: 2303 movs r3, #3 800b298: 4a94 ldr r2, [pc, #592] ; (800b4ec ) 800b29a: 2164 movs r1, #100 ; 0x64 800b29c: 2093 movs r0, #147 ; 0x93 800b29e: f7f9 fe1d bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b2a2: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b2a6: b2db uxtb r3, r3 800b2a8: 461a mov r2, r3 800b2aa: 4b8f ldr r3, [pc, #572] ; (800b4e8 ) 800b2ac: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b2b0: 2303 movs r3, #3 800b2b2: 2164 movs r1, #100 ; 0x64 800b2b4: 209a movs r0, #154 ; 0x9a 800b2b6: f7f9 fe11 bl 8004edc if(blk) 800b2ba: 4b8d ldr r3, [pc, #564] ; (800b4f0 ) 800b2bc: 681b ldr r3, [r3, #0] 800b2be: 2b00 cmp r3, #0 800b2c0: d00b beq.n 800b2da BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b2c2: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b2c6: b2db uxtb r3, r3 800b2c8: 461a mov r2, r3 800b2ca: 4b87 ldr r3, [pc, #540] ; (800b4e8 ) 800b2cc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b2d0: 2303 movs r3, #3 800b2d2: 2164 movs r1, #100 ; 0x64 800b2d4: 20a1 movs r0, #161 ; 0xa1 800b2d6: f7f9 fe01 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b2da: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b2de: b2db uxtb r3, r3 800b2e0: 461a mov r2, r3 800b2e2: 4b81 ldr r3, [pc, #516] ; (800b4e8 ) 800b2e4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b2e8: 2303 movs r3, #3 800b2ea: 2164 movs r1, #100 ; 0x64 800b2ec: 20a8 movs r0, #168 ; 0xa8 800b2ee: f7f9 fdf5 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b2f2: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b2f6: b2db uxtb r3, r3 800b2f8: 461a mov r2, r3 800b2fa: 4b7b ldr r3, [pc, #492] ; (800b4e8 ) 800b2fc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b300: 2303 movs r3, #3 800b302: 2164 movs r1, #100 ; 0x64 800b304: 20af movs r0, #175 ; 0xaf 800b306: f7f9 fde9 bl 8004edc if(menupos == Kikdt_3) 800b30a: f001 be1a b.w 800cf42 if(menupos == Kikd_3) 800b30e: 4b79 ldr r3, [pc, #484] ; (800b4f4 ) 800b310: 781b ldrb r3, [r3, #0] 800b312: b2db uxtb r3, r3 800b314: 2b15 cmp r3, #21 800b316: f040 818a bne.w 800b62e LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800b31a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b31e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800b322: f7f9 fd15 bl 8004d50 if(!ipt3) 800b326: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b32a: b2db uxtb r3, r3 800b32c: 2b00 cmp r3, #0 800b32e: d141 bne.n 800b3b4 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b330: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b334: b2db uxtb r3, r3 800b336: 461a mov r2, r3 800b338: 4b6b ldr r3, [pc, #428] ; (800b4e8 ) 800b33a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b33e: 2303 movs r3, #3 800b340: 2164 movs r1, #100 ; 0x64 800b342: 208c movs r0, #140 ; 0x8c 800b344: f7f9 fdca bl 8004edc BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b348: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b34c: b2db uxtb r3, r3 800b34e: 461a mov r2, r3 800b350: 4b65 ldr r3, [pc, #404] ; (800b4e8 ) 800b352: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b356: 2303 movs r3, #3 800b358: 2164 movs r1, #100 ; 0x64 800b35a: 2093 movs r0, #147 ; 0x93 800b35c: f7f9 fdbe bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b360: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b364: b2db uxtb r3, r3 800b366: 461a mov r2, r3 800b368: 4b5f ldr r3, [pc, #380] ; (800b4e8 ) 800b36a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b36e: 2303 movs r3, #3 800b370: 2164 movs r1, #100 ; 0x64 800b372: 209a movs r0, #154 ; 0x9a 800b374: f7f9 fdb2 bl 8004edc if(blk) 800b378: 4b5d ldr r3, [pc, #372] ; (800b4f0 ) 800b37a: 681b ldr r3, [r3, #0] 800b37c: 2b00 cmp r3, #0 800b37e: d00b beq.n 800b398 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b380: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b384: b2db uxtb r3, r3 800b386: 461a mov r2, r3 800b388: 4b57 ldr r3, [pc, #348] ; (800b4e8 ) 800b38a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b38e: 2303 movs r3, #3 800b390: 2164 movs r1, #100 ; 0x64 800b392: 20a1 movs r0, #161 ; 0xa1 800b394: f7f9 fda2 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b398: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b39c: b2db uxtb r3, r3 800b39e: 461a mov r2, r3 800b3a0: 4b51 ldr r3, [pc, #324] ; (800b4e8 ) 800b3a2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b3a6: 2303 movs r3, #3 800b3a8: 2164 movs r1, #100 ; 0x64 800b3aa: 20a8 movs r0, #168 ; 0xa8 800b3ac: f7f9 fd96 bl 8004edc if(menupos == Kikdt_3) 800b3b0: f001 bdc7 b.w 800cf42 if(ipt3 == 1) 800b3b4: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b3b8: b2db uxtb r3, r3 800b3ba: 2b01 cmp r3, #1 800b3bc: d147 bne.n 800b44e BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b3be: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b3c2: b2db uxtb r3, r3 800b3c4: 461a mov r2, r3 800b3c6: 4b48 ldr r3, [pc, #288] ; (800b4e8 ) 800b3c8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b3cc: 2303 movs r3, #3 800b3ce: 2164 movs r1, #100 ; 0x64 800b3d0: 208c movs r0, #140 ; 0x8c 800b3d2: f7f9 fd83 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b3d6: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b3da: b2db uxtb r3, r3 800b3dc: 461a mov r2, r3 800b3de: 4b42 ldr r3, [pc, #264] ; (800b4e8 ) 800b3e0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b3e4: 2303 movs r3, #3 800b3e6: 2164 movs r1, #100 ; 0x64 800b3e8: 2093 movs r0, #147 ; 0x93 800b3ea: f7f9 fd77 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b3ee: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b3f2: b2db uxtb r3, r3 800b3f4: 461a mov r2, r3 800b3f6: 4b3c ldr r3, [pc, #240] ; (800b4e8 ) 800b3f8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b3fc: 2303 movs r3, #3 800b3fe: 2164 movs r1, #100 ; 0x64 800b400: 209a movs r0, #154 ; 0x9a 800b402: f7f9 fd6b bl 8004edc if(blk) 800b406: 4b3a ldr r3, [pc, #232] ; (800b4f0 ) 800b408: 681b ldr r3, [r3, #0] 800b40a: 2b00 cmp r3, #0 800b40c: d00b beq.n 800b426 BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b40e: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b412: b2db uxtb r3, r3 800b414: 461a mov r2, r3 800b416: 4b34 ldr r3, [pc, #208] ; (800b4e8 ) 800b418: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b41c: 2303 movs r3, #3 800b41e: 2164 movs r1, #100 ; 0x64 800b420: 20a1 movs r0, #161 ; 0xa1 800b422: f7f9 fd5b bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE); 800b426: 2303 movs r3, #3 800b428: 4a30 ldr r2, [pc, #192] ; (800b4ec ) 800b42a: 2164 movs r1, #100 ; 0x64 800b42c: 20a8 movs r0, #168 ; 0xa8 800b42e: f7f9 fd55 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b432: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b436: b2db uxtb r3, r3 800b438: 461a mov r2, r3 800b43a: 4b2b ldr r3, [pc, #172] ; (800b4e8 ) 800b43c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b440: 2303 movs r3, #3 800b442: 2164 movs r1, #100 ; 0x64 800b444: 20af movs r0, #175 ; 0xaf 800b446: f7f9 fd49 bl 8004edc if(menupos == Kikdt_3) 800b44a: f001 bd7a b.w 800cf42 if(ipt3 == 2) 800b44e: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b452: b2db uxtb r3, r3 800b454: 2b02 cmp r3, #2 800b456: d14f bne.n 800b4f8 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b458: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b45c: b2db uxtb r3, r3 800b45e: 461a mov r2, r3 800b460: 4b21 ldr r3, [pc, #132] ; (800b4e8 ) 800b462: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b466: 2303 movs r3, #3 800b468: 2164 movs r1, #100 ; 0x64 800b46a: 208c movs r0, #140 ; 0x8c 800b46c: f7f9 fd36 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b470: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b474: b2db uxtb r3, r3 800b476: 461a mov r2, r3 800b478: 4b1b ldr r3, [pc, #108] ; (800b4e8 ) 800b47a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b47e: 2303 movs r3, #3 800b480: 2164 movs r1, #100 ; 0x64 800b482: 2093 movs r0, #147 ; 0x93 800b484: f7f9 fd2a bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b488: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b48c: b2db uxtb r3, r3 800b48e: 461a mov r2, r3 800b490: 4b15 ldr r3, [pc, #84] ; (800b4e8 ) 800b492: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b496: 2303 movs r3, #3 800b498: 2164 movs r1, #100 ; 0x64 800b49a: 209a movs r0, #154 ; 0x9a 800b49c: f7f9 fd1e bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE); 800b4a0: 2303 movs r3, #3 800b4a2: 4a12 ldr r2, [pc, #72] ; (800b4ec ) 800b4a4: 2164 movs r1, #100 ; 0x64 800b4a6: 20a1 movs r0, #161 ; 0xa1 800b4a8: f7f9 fd18 bl 8004edc if(blk) 800b4ac: 4b10 ldr r3, [pc, #64] ; (800b4f0 ) 800b4ae: 681b ldr r3, [r3, #0] 800b4b0: 2b00 cmp r3, #0 800b4b2: d00b beq.n 800b4cc BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b4b4: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b4b8: b2db uxtb r3, r3 800b4ba: 461a mov r2, r3 800b4bc: 4b0a ldr r3, [pc, #40] ; (800b4e8 ) 800b4be: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b4c2: 2303 movs r3, #3 800b4c4: 2164 movs r1, #100 ; 0x64 800b4c6: 20a8 movs r0, #168 ; 0xa8 800b4c8: f7f9 fd08 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b4cc: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b4d0: b2db uxtb r3, r3 800b4d2: 461a mov r2, r3 800b4d4: 4b04 ldr r3, [pc, #16] ; (800b4e8 ) 800b4d6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b4da: 2303 movs r3, #3 800b4dc: 2164 movs r1, #100 ; 0x64 800b4de: 20af movs r0, #175 ; 0xaf 800b4e0: f7f9 fcfc bl 8004edc if(menupos == Kikdt_3) 800b4e4: f001 bd2d b.w 800cf42 800b4e8: 2002096c .word 0x2002096c 800b4ec: 08018150 .word 0x08018150 800b4f0: 2006ba78 .word 0x2006ba78 800b4f4: 20020010 .word 0x20020010 if(ipt3 == 3) 800b4f8: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b4fc: b2db uxtb r3, r3 800b4fe: 2b03 cmp r3, #3 800b500: d147 bne.n 800b592 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b502: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b506: b2db uxtb r3, r3 800b508: 461a mov r2, r3 800b50a: 4bc1 ldr r3, [pc, #772] ; (800b810 ) 800b50c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b510: 2303 movs r3, #3 800b512: 2164 movs r1, #100 ; 0x64 800b514: 208c movs r0, #140 ; 0x8c 800b516: f7f9 fce1 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b51a: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b51e: b2db uxtb r3, r3 800b520: 461a mov r2, r3 800b522: 4bbb ldr r3, [pc, #748] ; (800b810 ) 800b524: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b528: 2303 movs r3, #3 800b52a: 2164 movs r1, #100 ; 0x64 800b52c: 2093 movs r0, #147 ; 0x93 800b52e: f7f9 fcd5 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE); 800b532: 2303 movs r3, #3 800b534: 4ab7 ldr r2, [pc, #732] ; (800b814 ) 800b536: 2164 movs r1, #100 ; 0x64 800b538: 209a movs r0, #154 ; 0x9a 800b53a: f7f9 fccf bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b53e: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b542: b2db uxtb r3, r3 800b544: 461a mov r2, r3 800b546: 4bb2 ldr r3, [pc, #712] ; (800b810 ) 800b548: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b54c: 2303 movs r3, #3 800b54e: 2164 movs r1, #100 ; 0x64 800b550: 20a1 movs r0, #161 ; 0xa1 800b552: f7f9 fcc3 bl 8004edc if(blk) 800b556: 4bb0 ldr r3, [pc, #704] ; (800b818 ) 800b558: 681b ldr r3, [r3, #0] 800b55a: 2b00 cmp r3, #0 800b55c: d00b beq.n 800b576 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b55e: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b562: b2db uxtb r3, r3 800b564: 461a mov r2, r3 800b566: 4baa ldr r3, [pc, #680] ; (800b810 ) 800b568: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b56c: 2303 movs r3, #3 800b56e: 2164 movs r1, #100 ; 0x64 800b570: 20a8 movs r0, #168 ; 0xa8 800b572: f7f9 fcb3 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b576: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b57a: b2db uxtb r3, r3 800b57c: 461a mov r2, r3 800b57e: 4ba4 ldr r3, [pc, #656] ; (800b810 ) 800b580: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b584: 2303 movs r3, #3 800b586: 2164 movs r1, #100 ; 0x64 800b588: 20af movs r0, #175 ; 0xaf 800b58a: f7f9 fca7 bl 8004edc if(menupos == Kikdt_3) 800b58e: f001 bcd8 b.w 800cf42 if(ipt3 == 4) 800b592: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b596: b2db uxtb r3, r3 800b598: 2b04 cmp r3, #4 800b59a: f041 84d2 bne.w 800cf42 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b59e: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b5a2: b2db uxtb r3, r3 800b5a4: 461a mov r2, r3 800b5a6: 4b9a ldr r3, [pc, #616] ; (800b810 ) 800b5a8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b5ac: 2303 movs r3, #3 800b5ae: 2164 movs r1, #100 ; 0x64 800b5b0: 208c movs r0, #140 ; 0x8c 800b5b2: f7f9 fc93 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE); 800b5b6: 2303 movs r3, #3 800b5b8: 4a96 ldr r2, [pc, #600] ; (800b814 ) 800b5ba: 2164 movs r1, #100 ; 0x64 800b5bc: 2093 movs r0, #147 ; 0x93 800b5be: f7f9 fc8d bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b5c2: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b5c6: b2db uxtb r3, r3 800b5c8: 461a mov r2, r3 800b5ca: 4b91 ldr r3, [pc, #580] ; (800b810 ) 800b5cc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b5d0: 2303 movs r3, #3 800b5d2: 2164 movs r1, #100 ; 0x64 800b5d4: 209a movs r0, #154 ; 0x9a 800b5d6: f7f9 fc81 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b5da: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b5de: b2db uxtb r3, r3 800b5e0: 461a mov r2, r3 800b5e2: 4b8b ldr r3, [pc, #556] ; (800b810 ) 800b5e4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b5e8: 2303 movs r3, #3 800b5ea: 2164 movs r1, #100 ; 0x64 800b5ec: 20a1 movs r0, #161 ; 0xa1 800b5ee: f7f9 fc75 bl 8004edc if(blk) 800b5f2: 4b89 ldr r3, [pc, #548] ; (800b818 ) 800b5f4: 681b ldr r3, [r3, #0] 800b5f6: 2b00 cmp r3, #0 800b5f8: d00b beq.n 800b612 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b5fa: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b5fe: b2db uxtb r3, r3 800b600: 461a mov r2, r3 800b602: 4b83 ldr r3, [pc, #524] ; (800b810 ) 800b604: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b608: 2303 movs r3, #3 800b60a: 2164 movs r1, #100 ; 0x64 800b60c: 20a8 movs r0, #168 ; 0xa8 800b60e: f7f9 fc65 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b612: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b616: b2db uxtb r3, r3 800b618: 461a mov r2, r3 800b61a: 4b7d ldr r3, [pc, #500] ; (800b810 ) 800b61c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b620: 2303 movs r3, #3 800b622: 2164 movs r1, #100 ; 0x64 800b624: 20af movs r0, #175 ; 0xaf 800b626: f7f9 fc59 bl 8004edc if(menupos == Kikdt_3) 800b62a: f001 bc8a b.w 800cf42 if(menupos == Kike_3) 800b62e: 4b7b ldr r3, [pc, #492] ; (800b81c ) 800b630: 781b ldrb r3, [r3, #0] 800b632: b2db uxtb r3, r3 800b634: 2b16 cmp r3, #22 800b636: f040 8190 bne.w 800b95a LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800b63a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b63e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800b642: f7f9 fb85 bl 8004d50 if(!ipt3) 800b646: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b64a: b2db uxtb r3, r3 800b64c: 2b00 cmp r3, #0 800b64e: d142 bne.n 800b6d6 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b650: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b654: b2db uxtb r3, r3 800b656: 461a mov r2, r3 800b658: 4b6d ldr r3, [pc, #436] ; (800b810 ) 800b65a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b65e: 2303 movs r3, #3 800b660: 2164 movs r1, #100 ; 0x64 800b662: 208c movs r0, #140 ; 0x8c 800b664: f7f9 fc3a bl 8004edc BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b668: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b66c: b2db uxtb r3, r3 800b66e: 461a mov r2, r3 800b670: 4b67 ldr r3, [pc, #412] ; (800b810 ) 800b672: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b676: 2303 movs r3, #3 800b678: 2164 movs r1, #100 ; 0x64 800b67a: 2093 movs r0, #147 ; 0x93 800b67c: f7f9 fc2e bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b680: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b684: b2db uxtb r3, r3 800b686: 461a mov r2, r3 800b688: 4b61 ldr r3, [pc, #388] ; (800b810 ) 800b68a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b68e: 2303 movs r3, #3 800b690: 2164 movs r1, #100 ; 0x64 800b692: 209a movs r0, #154 ; 0x9a 800b694: f7f9 fc22 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b698: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b69c: b2db uxtb r3, r3 800b69e: 461a mov r2, r3 800b6a0: 4b5b ldr r3, [pc, #364] ; (800b810 ) 800b6a2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b6a6: 2303 movs r3, #3 800b6a8: 2164 movs r1, #100 ; 0x64 800b6aa: 20a1 movs r0, #161 ; 0xa1 800b6ac: f7f9 fc16 bl 8004edc if(blk) 800b6b0: 4b59 ldr r3, [pc, #356] ; (800b818 ) 800b6b2: 681b ldr r3, [r3, #0] 800b6b4: 2b00 cmp r3, #0 800b6b6: f001 8444 beq.w 800cf42 BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b6ba: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b6be: b2db uxtb r3, r3 800b6c0: 461a mov r2, r3 800b6c2: 4b53 ldr r3, [pc, #332] ; (800b810 ) 800b6c4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b6c8: 2303 movs r3, #3 800b6ca: 2164 movs r1, #100 ; 0x64 800b6cc: 20a8 movs r0, #168 ; 0xa8 800b6ce: f7f9 fc05 bl 8004edc if(menupos == Kikdt_3) 800b6d2: f001 bc36 b.w 800cf42 if(ipt3 == 1) 800b6d6: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b6da: b2db uxtb r3, r3 800b6dc: 2b01 cmp r3, #1 800b6de: d148 bne.n 800b772 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b6e0: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b6e4: b2db uxtb r3, r3 800b6e6: 461a mov r2, r3 800b6e8: 4b49 ldr r3, [pc, #292] ; (800b810 ) 800b6ea: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b6ee: 2303 movs r3, #3 800b6f0: 2164 movs r1, #100 ; 0x64 800b6f2: 208c movs r0, #140 ; 0x8c 800b6f4: f7f9 fbf2 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b6f8: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b6fc: b2db uxtb r3, r3 800b6fe: 461a mov r2, r3 800b700: 4b43 ldr r3, [pc, #268] ; (800b810 ) 800b702: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b706: 2303 movs r3, #3 800b708: 2164 movs r1, #100 ; 0x64 800b70a: 2093 movs r0, #147 ; 0x93 800b70c: f7f9 fbe6 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b710: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b714: b2db uxtb r3, r3 800b716: 461a mov r2, r3 800b718: 4b3d ldr r3, [pc, #244] ; (800b810 ) 800b71a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b71e: 2303 movs r3, #3 800b720: 2164 movs r1, #100 ; 0x64 800b722: 209a movs r0, #154 ; 0x9a 800b724: f7f9 fbda bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b728: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b72c: b2db uxtb r3, r3 800b72e: 461a mov r2, r3 800b730: 4b37 ldr r3, [pc, #220] ; (800b810 ) 800b732: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b736: 2303 movs r3, #3 800b738: 2164 movs r1, #100 ; 0x64 800b73a: 20a1 movs r0, #161 ; 0xa1 800b73c: f7f9 fbce bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE); 800b740: 2303 movs r3, #3 800b742: 4a34 ldr r2, [pc, #208] ; (800b814 ) 800b744: 2164 movs r1, #100 ; 0x64 800b746: 20a8 movs r0, #168 ; 0xa8 800b748: f7f9 fbc8 bl 8004edc if(blk) 800b74c: 4b32 ldr r3, [pc, #200] ; (800b818 ) 800b74e: 681b ldr r3, [r3, #0] 800b750: 2b00 cmp r3, #0 800b752: f001 83f6 beq.w 800cf42 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b756: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b75a: b2db uxtb r3, r3 800b75c: 461a mov r2, r3 800b75e: 4b2c ldr r3, [pc, #176] ; (800b810 ) 800b760: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b764: 2303 movs r3, #3 800b766: 2164 movs r1, #100 ; 0x64 800b768: 20af movs r0, #175 ; 0xaf 800b76a: f7f9 fbb7 bl 8004edc if(menupos == Kikdt_3) 800b76e: f001 bbe8 b.w 800cf42 if(ipt3 == 2) 800b772: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b776: b2db uxtb r3, r3 800b778: 2b02 cmp r3, #2 800b77a: d151 bne.n 800b820 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b77c: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b780: b2db uxtb r3, r3 800b782: 461a mov r2, r3 800b784: 4b22 ldr r3, [pc, #136] ; (800b810 ) 800b786: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b78a: 2303 movs r3, #3 800b78c: 2164 movs r1, #100 ; 0x64 800b78e: 208c movs r0, #140 ; 0x8c 800b790: f7f9 fba4 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b794: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b798: b2db uxtb r3, r3 800b79a: 461a mov r2, r3 800b79c: 4b1c ldr r3, [pc, #112] ; (800b810 ) 800b79e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b7a2: 2303 movs r3, #3 800b7a4: 2164 movs r1, #100 ; 0x64 800b7a6: 2093 movs r0, #147 ; 0x93 800b7a8: f7f9 fb98 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b7ac: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b7b0: b2db uxtb r3, r3 800b7b2: 461a mov r2, r3 800b7b4: 4b16 ldr r3, [pc, #88] ; (800b810 ) 800b7b6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b7ba: 2303 movs r3, #3 800b7bc: 2164 movs r1, #100 ; 0x64 800b7be: 209a movs r0, #154 ; 0x9a 800b7c0: f7f9 fb8c bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE); 800b7c4: 2303 movs r3, #3 800b7c6: 4a13 ldr r2, [pc, #76] ; (800b814 ) 800b7c8: 2164 movs r1, #100 ; 0x64 800b7ca: 20a1 movs r0, #161 ; 0xa1 800b7cc: f7f9 fb86 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b7d0: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b7d4: b2db uxtb r3, r3 800b7d6: 461a mov r2, r3 800b7d8: 4b0d ldr r3, [pc, #52] ; (800b810 ) 800b7da: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b7de: 2303 movs r3, #3 800b7e0: 2164 movs r1, #100 ; 0x64 800b7e2: 20a8 movs r0, #168 ; 0xa8 800b7e4: f7f9 fb7a bl 8004edc if(blk) 800b7e8: 4b0b ldr r3, [pc, #44] ; (800b818 ) 800b7ea: 681b ldr r3, [r3, #0] 800b7ec: 2b00 cmp r3, #0 800b7ee: f001 83a8 beq.w 800cf42 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b7f2: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b7f6: b2db uxtb r3, r3 800b7f8: 461a mov r2, r3 800b7fa: 4b05 ldr r3, [pc, #20] ; (800b810 ) 800b7fc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b800: 2303 movs r3, #3 800b802: 2164 movs r1, #100 ; 0x64 800b804: 20af movs r0, #175 ; 0xaf 800b806: f7f9 fb69 bl 8004edc if(menupos == Kikdt_3) 800b80a: f001 bb9a b.w 800cf42 800b80e: bf00 nop 800b810: 2002096c .word 0x2002096c 800b814: 08018150 .word 0x08018150 800b818: 2006ba78 .word 0x2006ba78 800b81c: 20020010 .word 0x20020010 if(ipt3 == 3) 800b820: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b824: b2db uxtb r3, r3 800b826: 2b03 cmp r3, #3 800b828: d148 bne.n 800b8bc BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b82a: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b82e: b2db uxtb r3, r3 800b830: 461a mov r2, r3 800b832: 4bc4 ldr r3, [pc, #784] ; (800bb44 ) 800b834: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b838: 2303 movs r3, #3 800b83a: 2164 movs r1, #100 ; 0x64 800b83c: 208c movs r0, #140 ; 0x8c 800b83e: f7f9 fb4d bl 8004edc BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b842: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b846: b2db uxtb r3, r3 800b848: 461a mov r2, r3 800b84a: 4bbe ldr r3, [pc, #760] ; (800bb44 ) 800b84c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b850: 2303 movs r3, #3 800b852: 2164 movs r1, #100 ; 0x64 800b854: 2093 movs r0, #147 ; 0x93 800b856: f7f9 fb41 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE); 800b85a: 2303 movs r3, #3 800b85c: 4aba ldr r2, [pc, #744] ; (800bb48 ) 800b85e: 2164 movs r1, #100 ; 0x64 800b860: 209a movs r0, #154 ; 0x9a 800b862: f7f9 fb3b bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b866: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b86a: b2db uxtb r3, r3 800b86c: 461a mov r2, r3 800b86e: 4bb5 ldr r3, [pc, #724] ; (800bb44 ) 800b870: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b874: 2303 movs r3, #3 800b876: 2164 movs r1, #100 ; 0x64 800b878: 20a1 movs r0, #161 ; 0xa1 800b87a: f7f9 fb2f bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b87e: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b882: b2db uxtb r3, r3 800b884: 461a mov r2, r3 800b886: 4baf ldr r3, [pc, #700] ; (800bb44 ) 800b888: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b88c: 2303 movs r3, #3 800b88e: 2164 movs r1, #100 ; 0x64 800b890: 20a8 movs r0, #168 ; 0xa8 800b892: f7f9 fb23 bl 8004edc if(blk) 800b896: 4bad ldr r3, [pc, #692] ; (800bb4c ) 800b898: 681b ldr r3, [r3, #0] 800b89a: 2b00 cmp r3, #0 800b89c: f001 8351 beq.w 800cf42 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b8a0: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b8a4: b2db uxtb r3, r3 800b8a6: 461a mov r2, r3 800b8a8: 4ba6 ldr r3, [pc, #664] ; (800bb44 ) 800b8aa: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b8ae: 2303 movs r3, #3 800b8b0: 2164 movs r1, #100 ; 0x64 800b8b2: 20af movs r0, #175 ; 0xaf 800b8b4: f7f9 fb12 bl 8004edc if(menupos == Kikdt_3) 800b8b8: f001 bb43 b.w 800cf42 if(ipt3 == 4) 800b8bc: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b8c0: b2db uxtb r3, r3 800b8c2: 2b04 cmp r3, #4 800b8c4: f041 833d bne.w 800cf42 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b8c8: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b8cc: b2db uxtb r3, r3 800b8ce: 461a mov r2, r3 800b8d0: 4b9c ldr r3, [pc, #624] ; (800bb44 ) 800b8d2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b8d6: 2303 movs r3, #3 800b8d8: 2164 movs r1, #100 ; 0x64 800b8da: 208c movs r0, #140 ; 0x8c 800b8dc: f7f9 fafe bl 8004edc BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE); 800b8e0: 2303 movs r3, #3 800b8e2: 4a99 ldr r2, [pc, #612] ; (800bb48 ) 800b8e4: 2164 movs r1, #100 ; 0x64 800b8e6: 2093 movs r0, #147 ; 0x93 800b8e8: f7f9 faf8 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b8ec: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b8f0: b2db uxtb r3, r3 800b8f2: 461a mov r2, r3 800b8f4: 4b93 ldr r3, [pc, #588] ; (800bb44 ) 800b8f6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b8fa: 2303 movs r3, #3 800b8fc: 2164 movs r1, #100 ; 0x64 800b8fe: 209a movs r0, #154 ; 0x9a 800b900: f7f9 faec bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b904: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b908: b2db uxtb r3, r3 800b90a: 461a mov r2, r3 800b90c: 4b8d ldr r3, [pc, #564] ; (800bb44 ) 800b90e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b912: 2303 movs r3, #3 800b914: 2164 movs r1, #100 ; 0x64 800b916: 20a1 movs r0, #161 ; 0xa1 800b918: f7f9 fae0 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b91c: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b920: b2db uxtb r3, r3 800b922: 461a mov r2, r3 800b924: 4b87 ldr r3, [pc, #540] ; (800bb44 ) 800b926: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b92a: 2303 movs r3, #3 800b92c: 2164 movs r1, #100 ; 0x64 800b92e: 20a8 movs r0, #168 ; 0xa8 800b930: f7f9 fad4 bl 8004edc if(blk) 800b934: 4b85 ldr r3, [pc, #532] ; (800bb4c ) 800b936: 681b ldr r3, [r3, #0] 800b938: 2b00 cmp r3, #0 800b93a: f001 8302 beq.w 800cf42 BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b93e: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b942: b2db uxtb r3, r3 800b944: 461a mov r2, r3 800b946: 4b7f ldr r3, [pc, #508] ; (800bb44 ) 800b948: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b94c: 2303 movs r3, #3 800b94e: 2164 movs r1, #100 ; 0x64 800b950: 20af movs r0, #175 ; 0xaf 800b952: f7f9 fac3 bl 8004edc if(menupos == Kikdt_3) 800b956: f001 baf4 b.w 800cf42 if(menupos == Kpt_3) 800b95a: 4b7d ldr r3, [pc, #500] ; (800bb50 ) 800b95c: 781b ldrb r3, [r3, #0] 800b95e: b2db uxtb r3, r3 800b960: 2b17 cmp r3, #23 800b962: f041 82ee bne.w 800cf42 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800b966: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b96a: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800b96e: f7f9 f9ef bl 8004d50 if(!ipt3) 800b972: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800b976: b2db uxtb r3, r3 800b978: 2b00 cmp r3, #0 800b97a: d148 bne.n 800ba0e BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800b97c: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800b980: b2db uxtb r3, r3 800b982: 461a mov r2, r3 800b984: 4b6f ldr r3, [pc, #444] ; (800bb44 ) 800b986: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b98a: 2303 movs r3, #3 800b98c: 2164 movs r1, #100 ; 0x64 800b98e: 208c movs r0, #140 ; 0x8c 800b990: f7f9 faa4 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800b994: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800b998: b2db uxtb r3, r3 800b99a: 461a mov r2, r3 800b99c: 4b69 ldr r3, [pc, #420] ; (800bb44 ) 800b99e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b9a2: 2303 movs r3, #3 800b9a4: 2164 movs r1, #100 ; 0x64 800b9a6: 2093 movs r0, #147 ; 0x93 800b9a8: f7f9 fa98 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800b9ac: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800b9b0: b2db uxtb r3, r3 800b9b2: 461a mov r2, r3 800b9b4: 4b63 ldr r3, [pc, #396] ; (800bb44 ) 800b9b6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b9ba: 2303 movs r3, #3 800b9bc: 2164 movs r1, #100 ; 0x64 800b9be: 209a movs r0, #154 ; 0x9a 800b9c0: f7f9 fa8c bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800b9c4: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800b9c8: b2db uxtb r3, r3 800b9ca: 461a mov r2, r3 800b9cc: 4b5d ldr r3, [pc, #372] ; (800bb44 ) 800b9ce: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b9d2: 2303 movs r3, #3 800b9d4: 2164 movs r1, #100 ; 0x64 800b9d6: 20a1 movs r0, #161 ; 0xa1 800b9d8: f7f9 fa80 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE); 800b9dc: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800b9e0: b2db uxtb r3, r3 800b9e2: 461a mov r2, r3 800b9e4: 4b57 ldr r3, [pc, #348] ; (800bb44 ) 800b9e6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800b9ea: 2303 movs r3, #3 800b9ec: 2164 movs r1, #100 ; 0x64 800b9ee: 20a8 movs r0, #168 ; 0xa8 800b9f0: f7f9 fa74 bl 8004edc if(blk) 800b9f4: 4b55 ldr r3, [pc, #340] ; (800bb4c ) 800b9f6: 681b ldr r3, [r3, #0] 800b9f8: 2b00 cmp r3, #0 800b9fa: f001 82a2 beq.w 800cf42 BSP_LCD_DisplayStringAt(140+35, 100, ".", LEFT_MODE); 800b9fe: 2303 movs r3, #3 800ba00: 4a51 ldr r2, [pc, #324] ; (800bb48 ) 800ba02: 2164 movs r1, #100 ; 0x64 800ba04: 20af movs r0, #175 ; 0xaf 800ba06: f7f9 fa69 bl 8004edc if(menupos == Kikdt_3) 800ba0a: f001 ba9a b.w 800cf42 if(ipt3 == 1) 800ba0e: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800ba12: b2db uxtb r3, r3 800ba14: 2b01 cmp r3, #1 800ba16: d147 bne.n 800baa8 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800ba18: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800ba1c: b2db uxtb r3, r3 800ba1e: 461a mov r2, r3 800ba20: 4b48 ldr r3, [pc, #288] ; (800bb44 ) 800ba22: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ba26: 2303 movs r3, #3 800ba28: 2164 movs r1, #100 ; 0x64 800ba2a: 208c movs r0, #140 ; 0x8c 800ba2c: f7f9 fa56 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800ba30: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800ba34: b2db uxtb r3, r3 800ba36: 461a mov r2, r3 800ba38: 4b42 ldr r3, [pc, #264] ; (800bb44 ) 800ba3a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ba3e: 2303 movs r3, #3 800ba40: 2164 movs r1, #100 ; 0x64 800ba42: 2093 movs r0, #147 ; 0x93 800ba44: f7f9 fa4a bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800ba48: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800ba4c: b2db uxtb r3, r3 800ba4e: 461a mov r2, r3 800ba50: 4b3c ldr r3, [pc, #240] ; (800bb44 ) 800ba52: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ba56: 2303 movs r3, #3 800ba58: 2164 movs r1, #100 ; 0x64 800ba5a: 209a movs r0, #154 ; 0x9a 800ba5c: f7f9 fa3e bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE); 800ba60: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800ba64: b2db uxtb r3, r3 800ba66: 461a mov r2, r3 800ba68: 4b36 ldr r3, [pc, #216] ; (800bb44 ) 800ba6a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ba6e: 2303 movs r3, #3 800ba70: 2164 movs r1, #100 ; 0x64 800ba72: 20a1 movs r0, #161 ; 0xa1 800ba74: f7f9 fa32 bl 8004edc if(blk) 800ba78: 4b34 ldr r3, [pc, #208] ; (800bb4c ) 800ba7a: 681b ldr r3, [r3, #0] 800ba7c: 2b00 cmp r3, #0 800ba7e: d005 beq.n 800ba8c BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE); 800ba80: 2303 movs r3, #3 800ba82: 4a31 ldr r2, [pc, #196] ; (800bb48 ) 800ba84: 2164 movs r1, #100 ; 0x64 800ba86: 20a8 movs r0, #168 ; 0xa8 800ba88: f7f9 fa28 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800ba8c: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800ba90: b2db uxtb r3, r3 800ba92: 461a mov r2, r3 800ba94: 4b2b ldr r3, [pc, #172] ; (800bb44 ) 800ba96: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ba9a: 2303 movs r3, #3 800ba9c: 2164 movs r1, #100 ; 0x64 800ba9e: 20af movs r0, #175 ; 0xaf 800baa0: f7f9 fa1c bl 8004edc if(menupos == Kikdt_3) 800baa4: f001 ba4d b.w 800cf42 if(ipt3 == 2) 800baa8: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800baac: b2db uxtb r3, r3 800baae: 2b02 cmp r3, #2 800bab0: d150 bne.n 800bb54 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800bab2: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800bab6: b2db uxtb r3, r3 800bab8: 461a mov r2, r3 800baba: 4b22 ldr r3, [pc, #136] ; (800bb44 ) 800babc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bac0: 2303 movs r3, #3 800bac2: 2164 movs r1, #100 ; 0x64 800bac4: 208c movs r0, #140 ; 0x8c 800bac6: f7f9 fa09 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800baca: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800bace: b2db uxtb r3, r3 800bad0: 461a mov r2, r3 800bad2: 4b1c ldr r3, [pc, #112] ; (800bb44 ) 800bad4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bad8: 2303 movs r3, #3 800bada: 2164 movs r1, #100 ; 0x64 800badc: 2093 movs r0, #147 ; 0x93 800bade: f7f9 f9fd bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE); 800bae2: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800bae6: b2db uxtb r3, r3 800bae8: 461a mov r2, r3 800baea: 4b16 ldr r3, [pc, #88] ; (800bb44 ) 800baec: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800baf0: 2303 movs r3, #3 800baf2: 2164 movs r1, #100 ; 0x64 800baf4: 209a movs r0, #154 ; 0x9a 800baf6: f7f9 f9f1 bl 8004edc if(blk) 800bafa: 4b14 ldr r3, [pc, #80] ; (800bb4c ) 800bafc: 681b ldr r3, [r3, #0] 800bafe: 2b00 cmp r3, #0 800bb00: d005 beq.n 800bb0e BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE); 800bb02: 2303 movs r3, #3 800bb04: 4a10 ldr r2, [pc, #64] ; (800bb48 ) 800bb06: 2164 movs r1, #100 ; 0x64 800bb08: 20a1 movs r0, #161 ; 0xa1 800bb0a: f7f9 f9e7 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800bb0e: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800bb12: b2db uxtb r3, r3 800bb14: 461a mov r2, r3 800bb16: 4b0b ldr r3, [pc, #44] ; (800bb44 ) 800bb18: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bb1c: 2303 movs r3, #3 800bb1e: 2164 movs r1, #100 ; 0x64 800bb20: 20a8 movs r0, #168 ; 0xa8 800bb22: f7f9 f9db bl 8004edc BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800bb26: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800bb2a: b2db uxtb r3, r3 800bb2c: 461a mov r2, r3 800bb2e: 4b05 ldr r3, [pc, #20] ; (800bb44 ) 800bb30: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bb34: 2303 movs r3, #3 800bb36: 2164 movs r1, #100 ; 0x64 800bb38: 20af movs r0, #175 ; 0xaf 800bb3a: f7f9 f9cf bl 8004edc if(menupos == Kikdt_3) 800bb3e: f001 ba00 b.w 800cf42 800bb42: bf00 nop 800bb44: 2002096c .word 0x2002096c 800bb48: 08018150 .word 0x08018150 800bb4c: 2006ba78 .word 0x2006ba78 800bb50: 20020010 .word 0x20020010 if(ipt3 == 3) 800bb54: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800bb58: b2db uxtb r3, r3 800bb5a: 2b03 cmp r3, #3 800bb5c: d147 bne.n 800bbee BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800bb5e: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800bb62: b2db uxtb r3, r3 800bb64: 461a mov r2, r3 800bb66: 4bc2 ldr r3, [pc, #776] ; (800be70 ) 800bb68: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bb6c: 2303 movs r3, #3 800bb6e: 2164 movs r1, #100 ; 0x64 800bb70: 208c movs r0, #140 ; 0x8c 800bb72: f7f9 f9b3 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE); 800bb76: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800bb7a: b2db uxtb r3, r3 800bb7c: 461a mov r2, r3 800bb7e: 4bbc ldr r3, [pc, #752] ; (800be70 ) 800bb80: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bb84: 2303 movs r3, #3 800bb86: 2164 movs r1, #100 ; 0x64 800bb88: 2093 movs r0, #147 ; 0x93 800bb8a: f7f9 f9a7 bl 8004edc if(blk) 800bb8e: 4bb9 ldr r3, [pc, #740] ; (800be74 ) 800bb90: 681b ldr r3, [r3, #0] 800bb92: 2b00 cmp r3, #0 800bb94: d005 beq.n 800bba2 BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE); 800bb96: 2303 movs r3, #3 800bb98: 4ab7 ldr r2, [pc, #732] ; (800be78 ) 800bb9a: 2164 movs r1, #100 ; 0x64 800bb9c: 209a movs r0, #154 ; 0x9a 800bb9e: f7f9 f99d bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800bba2: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800bba6: b2db uxtb r3, r3 800bba8: 461a mov r2, r3 800bbaa: 4bb1 ldr r3, [pc, #708] ; (800be70 ) 800bbac: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bbb0: 2303 movs r3, #3 800bbb2: 2164 movs r1, #100 ; 0x64 800bbb4: 20a1 movs r0, #161 ; 0xa1 800bbb6: f7f9 f991 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800bbba: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800bbbe: b2db uxtb r3, r3 800bbc0: 461a mov r2, r3 800bbc2: 4bab ldr r3, [pc, #684] ; (800be70 ) 800bbc4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bbc8: 2303 movs r3, #3 800bbca: 2164 movs r1, #100 ; 0x64 800bbcc: 20a8 movs r0, #168 ; 0xa8 800bbce: f7f9 f985 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800bbd2: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800bbd6: b2db uxtb r3, r3 800bbd8: 461a mov r2, r3 800bbda: 4ba5 ldr r3, [pc, #660] ; (800be70 ) 800bbdc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bbe0: 2303 movs r3, #3 800bbe2: 2164 movs r1, #100 ; 0x64 800bbe4: 20af movs r0, #175 ; 0xaf 800bbe6: f7f9 f979 bl 8004edc if(menupos == Kikdt_3) 800bbea: f001 b9aa b.w 800cf42 if(ipt3 == 4) 800bbee: f897 3308 ldrb.w r3, [r7, #776] ; 0x308 800bbf2: b2db uxtb r3, r3 800bbf4: 2b04 cmp r3, #4 800bbf6: f041 81a4 bne.w 800cf42 BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE); 800bbfa: f897 330f ldrb.w r3, [r7, #783] ; 0x30f 800bbfe: b2db uxtb r3, r3 800bc00: 461a mov r2, r3 800bc02: 4b9b ldr r3, [pc, #620] ; (800be70 ) 800bc04: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bc08: 2303 movs r3, #3 800bc0a: 2164 movs r1, #100 ; 0x64 800bc0c: 208c movs r0, #140 ; 0x8c 800bc0e: f7f9 f965 bl 8004edc if(blk) 800bc12: 4b98 ldr r3, [pc, #608] ; (800be74 ) 800bc14: 681b ldr r3, [r3, #0] 800bc16: 2b00 cmp r3, #0 800bc18: d005 beq.n 800bc26 BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE); 800bc1a: 2303 movs r3, #3 800bc1c: 4a96 ldr r2, [pc, #600] ; (800be78 ) 800bc1e: 2164 movs r1, #100 ; 0x64 800bc20: 2093 movs r0, #147 ; 0x93 800bc22: f7f9 f95b bl 8004edc BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE); 800bc26: f897 330e ldrb.w r3, [r7, #782] ; 0x30e 800bc2a: b2db uxtb r3, r3 800bc2c: 461a mov r2, r3 800bc2e: 4b90 ldr r3, [pc, #576] ; (800be70 ) 800bc30: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bc34: 2303 movs r3, #3 800bc36: 2164 movs r1, #100 ; 0x64 800bc38: 209a movs r0, #154 ; 0x9a 800bc3a: f7f9 f94f bl 8004edc BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE); 800bc3e: f897 330d ldrb.w r3, [r7, #781] ; 0x30d 800bc42: b2db uxtb r3, r3 800bc44: 461a mov r2, r3 800bc46: 4b8a ldr r3, [pc, #552] ; (800be70 ) 800bc48: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bc4c: 2303 movs r3, #3 800bc4e: 2164 movs r1, #100 ; 0x64 800bc50: 20a1 movs r0, #161 ; 0xa1 800bc52: f7f9 f943 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE); 800bc56: f897 330c ldrb.w r3, [r7, #780] ; 0x30c 800bc5a: b2db uxtb r3, r3 800bc5c: 461a mov r2, r3 800bc5e: 4b84 ldr r3, [pc, #528] ; (800be70 ) 800bc60: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bc64: 2303 movs r3, #3 800bc66: 2164 movs r1, #100 ; 0x64 800bc68: 20a8 movs r0, #168 ; 0xa8 800bc6a: f7f9 f937 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE); 800bc6e: f897 330b ldrb.w r3, [r7, #779] ; 0x30b 800bc72: b2db uxtb r3, r3 800bc74: 461a mov r2, r3 800bc76: 4b7e ldr r3, [pc, #504] ; (800be70 ) 800bc78: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bc7c: 2303 movs r3, #3 800bc7e: 2164 movs r1, #100 ; 0x64 800bc80: 20af movs r0, #175 ; 0xaf 800bc82: f7f9 f92b bl 8004edc if(menupos == Kikdt_3) 800bc86: f001 b95c b.w 800cf42 if(menupos >= Kikdt_4 && menupos <= Kpt_4) 800bc8a: 4b7c ldr r3, [pc, #496] ; (800be7c ) 800bc8c: 781b ldrb r3, [r3, #0] 800bc8e: b2db uxtb r3, r3 800bc90: 2b19 cmp r3, #25 800bc92: f241 8663 bls.w 800d95c 800bc96: 4b79 ldr r3, [pc, #484] ; (800be7c ) 800bc98: 781b ldrb r3, [r3, #0] 800bc9a: b2db uxtb r3, r3 800bc9c: 2b1f cmp r3, #31 800bc9e: f201 865d bhi.w 800d95c LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800bca2: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800bca6: 4876 ldr r0, [pc, #472] ; (800be80 ) 800bca8: f7f9 f852 bl 8004d50 BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE); 800bcac: f507 728e add.w r2, r7, #284 ; 0x11c 800bcb0: 2303 movs r3, #3 800bcb2: 213c movs r1, #60 ; 0x3c 800bcb4: 208c movs r0, #140 ; 0x8c 800bcb6: f7f9 f911 bl 8004edc BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE); 800bcba: f107 02e0 add.w r2, r7, #224 ; 0xe0 800bcbe: 2303 movs r3, #3 800bcc0: 2150 movs r1, #80 ; 0x50 800bcc2: 208c movs r0, #140 ; 0x8c 800bcc4: f7f9 f90a bl 8004edc BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE); 800bcc8: f107 02a4 add.w r2, r7, #164 ; 0xa4 800bccc: 2303 movs r3, #3 800bcce: 2164 movs r1, #100 ; 0x64 800bcd0: 208c movs r0, #140 ; 0x8c 800bcd2: f7f9 f903 bl 8004edc if(menupos == Kikdt_4) 800bcd6: 4b69 ldr r3, [pc, #420] ; (800be7c ) 800bcd8: 781b ldrb r3, [r3, #0] 800bcda: b2db uxtb r3, r3 800bcdc: 2b1a cmp r3, #26 800bcde: f040 814c bne.w 800bf7a LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800bce2: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800bce6: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800bcea: f7f9 f831 bl 8004d50 if(blk) 800bcee: 4b61 ldr r3, [pc, #388] ; (800be74 ) 800bcf0: 681b ldr r3, [r3, #0] 800bcf2: 2b00 cmp r3, #0 800bcf4: d00b beq.n 800bd0e BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800bcf6: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800bcfa: b2db uxtb r3, r3 800bcfc: 461a mov r2, r3 800bcfe: 4b5c ldr r3, [pc, #368] ; (800be70 ) 800bd00: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bd04: 2303 movs r3, #3 800bd06: 2178 movs r1, #120 ; 0x78 800bd08: 208c movs r0, #140 ; 0x8c 800bd0a: f7f9 f8e7 bl 8004edc if(!ipt4) 800bd0e: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800bd12: b2db uxtb r3, r3 800bd14: 2b00 cmp r3, #0 800bd16: d131 bne.n 800bd7c BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800bd18: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800bd1c: b2db uxtb r3, r3 800bd1e: 461a mov r2, r3 800bd20: 4b53 ldr r3, [pc, #332] ; (800be70 ) 800bd22: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bd26: 2303 movs r3, #3 800bd28: 2178 movs r1, #120 ; 0x78 800bd2a: 2093 movs r0, #147 ; 0x93 800bd2c: f7f9 f8d6 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800bd30: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800bd34: b2db uxtb r3, r3 800bd36: 461a mov r2, r3 800bd38: 4b4d ldr r3, [pc, #308] ; (800be70 ) 800bd3a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bd3e: 2303 movs r3, #3 800bd40: 2178 movs r1, #120 ; 0x78 800bd42: 209a movs r0, #154 ; 0x9a 800bd44: f7f9 f8ca bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800bd48: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800bd4c: b2db uxtb r3, r3 800bd4e: 461a mov r2, r3 800bd50: 4b47 ldr r3, [pc, #284] ; (800be70 ) 800bd52: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bd56: 2303 movs r3, #3 800bd58: 2178 movs r1, #120 ; 0x78 800bd5a: 20a1 movs r0, #161 ; 0xa1 800bd5c: f7f9 f8be bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE); 800bd60: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800bd64: b2db uxtb r3, r3 800bd66: 461a mov r2, r3 800bd68: 4b41 ldr r3, [pc, #260] ; (800be70 ) 800bd6a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bd6e: 2303 movs r3, #3 800bd70: 2178 movs r1, #120 ; 0x78 800bd72: 20a8 movs r0, #168 ; 0xa8 800bd74: f7f9 f8b2 bl 8004edc break; 800bd78: f001 bdf0 b.w 800d95c if(ipt4 == 1) 800bd7c: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800bd80: b2db uxtb r3, r3 800bd82: 2b01 cmp r3, #1 800bd84: d137 bne.n 800bdf6 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800bd86: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800bd8a: b2db uxtb r3, r3 800bd8c: 461a mov r2, r3 800bd8e: 4b38 ldr r3, [pc, #224] ; (800be70 ) 800bd90: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bd94: 2303 movs r3, #3 800bd96: 2178 movs r1, #120 ; 0x78 800bd98: 2093 movs r0, #147 ; 0x93 800bd9a: f7f9 f89f bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800bd9e: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800bda2: b2db uxtb r3, r3 800bda4: 461a mov r2, r3 800bda6: 4b32 ldr r3, [pc, #200] ; (800be70 ) 800bda8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bdac: 2303 movs r3, #3 800bdae: 2178 movs r1, #120 ; 0x78 800bdb0: 209a movs r0, #154 ; 0x9a 800bdb2: f7f9 f893 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800bdb6: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800bdba: b2db uxtb r3, r3 800bdbc: 461a mov r2, r3 800bdbe: 4b2c ldr r3, [pc, #176] ; (800be70 ) 800bdc0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bdc4: 2303 movs r3, #3 800bdc6: 2178 movs r1, #120 ; 0x78 800bdc8: 20a1 movs r0, #161 ; 0xa1 800bdca: f7f9 f887 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE); 800bdce: 2303 movs r3, #3 800bdd0: 4a29 ldr r2, [pc, #164] ; (800be78 ) 800bdd2: 2178 movs r1, #120 ; 0x78 800bdd4: 20a8 movs r0, #168 ; 0xa8 800bdd6: f7f9 f881 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800bdda: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800bdde: b2db uxtb r3, r3 800bde0: 461a mov r2, r3 800bde2: 4b23 ldr r3, [pc, #140] ; (800be70 ) 800bde4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bde8: 2303 movs r3, #3 800bdea: 2178 movs r1, #120 ; 0x78 800bdec: 20af movs r0, #175 ; 0xaf 800bdee: f7f9 f875 bl 8004edc break; 800bdf2: f001 bdb3 b.w 800d95c if(ipt4 == 2) 800bdf6: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800bdfa: b2db uxtb r3, r3 800bdfc: 2b02 cmp r3, #2 800bdfe: d141 bne.n 800be84 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800be00: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800be04: b2db uxtb r3, r3 800be06: 461a mov r2, r3 800be08: 4b19 ldr r3, [pc, #100] ; (800be70 ) 800be0a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800be0e: 2303 movs r3, #3 800be10: 2178 movs r1, #120 ; 0x78 800be12: 2093 movs r0, #147 ; 0x93 800be14: f7f9 f862 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800be18: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800be1c: b2db uxtb r3, r3 800be1e: 461a mov r2, r3 800be20: 4b13 ldr r3, [pc, #76] ; (800be70 ) 800be22: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800be26: 2303 movs r3, #3 800be28: 2178 movs r1, #120 ; 0x78 800be2a: 209a movs r0, #154 ; 0x9a 800be2c: f7f9 f856 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE); 800be30: 2303 movs r3, #3 800be32: 4a11 ldr r2, [pc, #68] ; (800be78 ) 800be34: 2178 movs r1, #120 ; 0x78 800be36: 20a1 movs r0, #161 ; 0xa1 800be38: f7f9 f850 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800be3c: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800be40: b2db uxtb r3, r3 800be42: 461a mov r2, r3 800be44: 4b0a ldr r3, [pc, #40] ; (800be70 ) 800be46: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800be4a: 2303 movs r3, #3 800be4c: 2178 movs r1, #120 ; 0x78 800be4e: 20a8 movs r0, #168 ; 0xa8 800be50: f7f9 f844 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800be54: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800be58: b2db uxtb r3, r3 800be5a: 461a mov r2, r3 800be5c: 4b04 ldr r3, [pc, #16] ; (800be70 ) 800be5e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800be62: 2303 movs r3, #3 800be64: 2178 movs r1, #120 ; 0x78 800be66: 20af movs r0, #175 ; 0xaf 800be68: f7f9 f838 bl 8004edc break; 800be6c: f001 bd76 b.w 800d95c 800be70: 2002096c .word 0x2002096c 800be74: 2006ba78 .word 0x2006ba78 800be78: 08018150 .word 0x08018150 800be7c: 20020010 .word 0x20020010 800be80: ffd8aa57 .word 0xffd8aa57 if(ipt4 == 3) 800be84: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800be88: b2db uxtb r3, r3 800be8a: 2b03 cmp r3, #3 800be8c: d137 bne.n 800befe BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800be8e: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800be92: b2db uxtb r3, r3 800be94: 461a mov r2, r3 800be96: 4baf ldr r3, [pc, #700] ; (800c154 ) 800be98: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800be9c: 2303 movs r3, #3 800be9e: 2178 movs r1, #120 ; 0x78 800bea0: 2093 movs r0, #147 ; 0x93 800bea2: f7f9 f81b bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE); 800bea6: 2303 movs r3, #3 800bea8: 4aab ldr r2, [pc, #684] ; (800c158 ) 800beaa: 2178 movs r1, #120 ; 0x78 800beac: 209a movs r0, #154 ; 0x9a 800beae: f7f9 f815 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800beb2: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800beb6: b2db uxtb r3, r3 800beb8: 461a mov r2, r3 800beba: 4ba6 ldr r3, [pc, #664] ; (800c154 ) 800bebc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bec0: 2303 movs r3, #3 800bec2: 2178 movs r1, #120 ; 0x78 800bec4: 20a1 movs r0, #161 ; 0xa1 800bec6: f7f9 f809 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800beca: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800bece: b2db uxtb r3, r3 800bed0: 461a mov r2, r3 800bed2: 4ba0 ldr r3, [pc, #640] ; (800c154 ) 800bed4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bed8: 2303 movs r3, #3 800beda: 2178 movs r1, #120 ; 0x78 800bedc: 20a8 movs r0, #168 ; 0xa8 800bede: f7f8 fffd bl 8004edc BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800bee2: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800bee6: b2db uxtb r3, r3 800bee8: 461a mov r2, r3 800beea: 4b9a ldr r3, [pc, #616] ; (800c154 ) 800beec: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bef0: 2303 movs r3, #3 800bef2: 2178 movs r1, #120 ; 0x78 800bef4: 20af movs r0, #175 ; 0xaf 800bef6: f7f8 fff1 bl 8004edc break; 800befa: f001 bd2f b.w 800d95c if(ipt4 == 4) 800befe: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800bf02: b2db uxtb r3, r3 800bf04: 2b04 cmp r3, #4 800bf06: f041 8529 bne.w 800d95c BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE); 800bf0a: 2303 movs r3, #3 800bf0c: 4a92 ldr r2, [pc, #584] ; (800c158 ) 800bf0e: 2178 movs r1, #120 ; 0x78 800bf10: 2093 movs r0, #147 ; 0x93 800bf12: f7f8 ffe3 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE); 800bf16: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800bf1a: b2db uxtb r3, r3 800bf1c: 461a mov r2, r3 800bf1e: 4b8d ldr r3, [pc, #564] ; (800c154 ) 800bf20: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bf24: 2303 movs r3, #3 800bf26: 2178 movs r1, #120 ; 0x78 800bf28: 209a movs r0, #154 ; 0x9a 800bf2a: f7f8 ffd7 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800bf2e: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800bf32: b2db uxtb r3, r3 800bf34: 461a mov r2, r3 800bf36: 4b87 ldr r3, [pc, #540] ; (800c154 ) 800bf38: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bf3c: 2303 movs r3, #3 800bf3e: 2178 movs r1, #120 ; 0x78 800bf40: 20a1 movs r0, #161 ; 0xa1 800bf42: f7f8 ffcb bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800bf46: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800bf4a: b2db uxtb r3, r3 800bf4c: 461a mov r2, r3 800bf4e: 4b81 ldr r3, [pc, #516] ; (800c154 ) 800bf50: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bf54: 2303 movs r3, #3 800bf56: 2178 movs r1, #120 ; 0x78 800bf58: 20a8 movs r0, #168 ; 0xa8 800bf5a: f7f8 ffbf bl 8004edc BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800bf5e: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800bf62: b2db uxtb r3, r3 800bf64: 461a mov r2, r3 800bf66: 4b7b ldr r3, [pc, #492] ; (800c154 ) 800bf68: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bf6c: 2303 movs r3, #3 800bf6e: 2178 movs r1, #120 ; 0x78 800bf70: 20af movs r0, #175 ; 0xaf 800bf72: f7f8 ffb3 bl 8004edc break; 800bf76: f001 bcf1 b.w 800d95c if(menupos == Kikt_4) 800bf7a: 4b78 ldr r3, [pc, #480] ; (800c15c ) 800bf7c: 781b ldrb r3, [r3, #0] 800bf7e: b2db uxtb r3, r3 800bf80: 2b1b cmp r3, #27 800bf82: f040 818a bne.w 800c29a LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800bf86: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800bf8a: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800bf8e: f7f8 fedf bl 8004d50 if(!ipt4) 800bf92: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800bf96: b2db uxtb r3, r3 800bf98: 2b00 cmp r3, #0 800bf9a: d141 bne.n 800c020 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800bf9c: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800bfa0: b2db uxtb r3, r3 800bfa2: 461a mov r2, r3 800bfa4: 4b6b ldr r3, [pc, #428] ; (800c154 ) 800bfa6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bfaa: 2303 movs r3, #3 800bfac: 2178 movs r1, #120 ; 0x78 800bfae: 208c movs r0, #140 ; 0x8c 800bfb0: f7f8 ff94 bl 8004edc if(blk) 800bfb4: 4b6a ldr r3, [pc, #424] ; (800c160 ) 800bfb6: 681b ldr r3, [r3, #0] 800bfb8: 2b00 cmp r3, #0 800bfba: d00b beq.n 800bfd4 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800bfbc: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800bfc0: b2db uxtb r3, r3 800bfc2: 461a mov r2, r3 800bfc4: 4b63 ldr r3, [pc, #396] ; (800c154 ) 800bfc6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bfca: 2303 movs r3, #3 800bfcc: 2178 movs r1, #120 ; 0x78 800bfce: 2093 movs r0, #147 ; 0x93 800bfd0: f7f8 ff84 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800bfd4: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800bfd8: b2db uxtb r3, r3 800bfda: 461a mov r2, r3 800bfdc: 4b5d ldr r3, [pc, #372] ; (800c154 ) 800bfde: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bfe2: 2303 movs r3, #3 800bfe4: 2178 movs r1, #120 ; 0x78 800bfe6: 209a movs r0, #154 ; 0x9a 800bfe8: f7f8 ff78 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800bfec: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800bff0: b2db uxtb r3, r3 800bff2: 461a mov r2, r3 800bff4: 4b57 ldr r3, [pc, #348] ; (800c154 ) 800bff6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800bffa: 2303 movs r3, #3 800bffc: 2178 movs r1, #120 ; 0x78 800bffe: 20a1 movs r0, #161 ; 0xa1 800c000: f7f8 ff6c bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c004: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c008: b2db uxtb r3, r3 800c00a: 461a mov r2, r3 800c00c: 4b51 ldr r3, [pc, #324] ; (800c154 ) 800c00e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c012: 2303 movs r3, #3 800c014: 2178 movs r1, #120 ; 0x78 800c016: 20a8 movs r0, #168 ; 0xa8 800c018: f7f8 ff60 bl 8004edc break; 800c01c: f001 bc9e b.w 800d95c if(ipt4 == 1) 800c020: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c024: b2db uxtb r3, r3 800c026: 2b01 cmp r3, #1 800c028: d147 bne.n 800c0ba BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c02a: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c02e: b2db uxtb r3, r3 800c030: 461a mov r2, r3 800c032: 4b48 ldr r3, [pc, #288] ; (800c154 ) 800c034: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c038: 2303 movs r3, #3 800c03a: 2178 movs r1, #120 ; 0x78 800c03c: 208c movs r0, #140 ; 0x8c 800c03e: f7f8 ff4d bl 8004edc if(blk) 800c042: 4b47 ldr r3, [pc, #284] ; (800c160 ) 800c044: 681b ldr r3, [r3, #0] 800c046: 2b00 cmp r3, #0 800c048: d00b beq.n 800c062 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c04a: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c04e: b2db uxtb r3, r3 800c050: 461a mov r2, r3 800c052: 4b40 ldr r3, [pc, #256] ; (800c154 ) 800c054: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c058: 2303 movs r3, #3 800c05a: 2178 movs r1, #120 ; 0x78 800c05c: 2093 movs r0, #147 ; 0x93 800c05e: f7f8 ff3d bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c062: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c066: b2db uxtb r3, r3 800c068: 461a mov r2, r3 800c06a: 4b3a ldr r3, [pc, #232] ; (800c154 ) 800c06c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c070: 2303 movs r3, #3 800c072: 2178 movs r1, #120 ; 0x78 800c074: 209a movs r0, #154 ; 0x9a 800c076: f7f8 ff31 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c07a: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c07e: b2db uxtb r3, r3 800c080: 461a mov r2, r3 800c082: 4b34 ldr r3, [pc, #208] ; (800c154 ) 800c084: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c088: 2303 movs r3, #3 800c08a: 2178 movs r1, #120 ; 0x78 800c08c: 20a1 movs r0, #161 ; 0xa1 800c08e: f7f8 ff25 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE); 800c092: 2303 movs r3, #3 800c094: 4a30 ldr r2, [pc, #192] ; (800c158 ) 800c096: 2178 movs r1, #120 ; 0x78 800c098: 20a8 movs r0, #168 ; 0xa8 800c09a: f7f8 ff1f bl 8004edc BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c09e: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c0a2: b2db uxtb r3, r3 800c0a4: 461a mov r2, r3 800c0a6: 4b2b ldr r3, [pc, #172] ; (800c154 ) 800c0a8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c0ac: 2303 movs r3, #3 800c0ae: 2178 movs r1, #120 ; 0x78 800c0b0: 20af movs r0, #175 ; 0xaf 800c0b2: f7f8 ff13 bl 8004edc break; 800c0b6: f001 bc51 b.w 800d95c if(ipt4 == 2) 800c0ba: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c0be: b2db uxtb r3, r3 800c0c0: 2b02 cmp r3, #2 800c0c2: d14f bne.n 800c164 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c0c4: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c0c8: b2db uxtb r3, r3 800c0ca: 461a mov r2, r3 800c0cc: 4b21 ldr r3, [pc, #132] ; (800c154 ) 800c0ce: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c0d2: 2303 movs r3, #3 800c0d4: 2178 movs r1, #120 ; 0x78 800c0d6: 208c movs r0, #140 ; 0x8c 800c0d8: f7f8 ff00 bl 8004edc if(blk) 800c0dc: 4b20 ldr r3, [pc, #128] ; (800c160 ) 800c0de: 681b ldr r3, [r3, #0] 800c0e0: 2b00 cmp r3, #0 800c0e2: d00b beq.n 800c0fc BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c0e4: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c0e8: b2db uxtb r3, r3 800c0ea: 461a mov r2, r3 800c0ec: 4b19 ldr r3, [pc, #100] ; (800c154 ) 800c0ee: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c0f2: 2303 movs r3, #3 800c0f4: 2178 movs r1, #120 ; 0x78 800c0f6: 2093 movs r0, #147 ; 0x93 800c0f8: f7f8 fef0 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c0fc: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c100: b2db uxtb r3, r3 800c102: 461a mov r2, r3 800c104: 4b13 ldr r3, [pc, #76] ; (800c154 ) 800c106: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c10a: 2303 movs r3, #3 800c10c: 2178 movs r1, #120 ; 0x78 800c10e: 209a movs r0, #154 ; 0x9a 800c110: f7f8 fee4 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE); 800c114: 2303 movs r3, #3 800c116: 4a10 ldr r2, [pc, #64] ; (800c158 ) 800c118: 2178 movs r1, #120 ; 0x78 800c11a: 20a1 movs r0, #161 ; 0xa1 800c11c: f7f8 fede bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c120: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c124: b2db uxtb r3, r3 800c126: 461a mov r2, r3 800c128: 4b0a ldr r3, [pc, #40] ; (800c154 ) 800c12a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c12e: 2303 movs r3, #3 800c130: 2178 movs r1, #120 ; 0x78 800c132: 20a8 movs r0, #168 ; 0xa8 800c134: f7f8 fed2 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c138: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c13c: b2db uxtb r3, r3 800c13e: 461a mov r2, r3 800c140: 4b04 ldr r3, [pc, #16] ; (800c154 ) 800c142: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c146: 2303 movs r3, #3 800c148: 2178 movs r1, #120 ; 0x78 800c14a: 20af movs r0, #175 ; 0xaf 800c14c: f7f8 fec6 bl 8004edc break; 800c150: f001 bc04 b.w 800d95c 800c154: 2002096c .word 0x2002096c 800c158: 08018150 .word 0x08018150 800c15c: 20020010 .word 0x20020010 800c160: 2006ba78 .word 0x2006ba78 if(ipt4 == 3) 800c164: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c168: b2db uxtb r3, r3 800c16a: 2b03 cmp r3, #3 800c16c: d147 bne.n 800c1fe BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c16e: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c172: b2db uxtb r3, r3 800c174: 461a mov r2, r3 800c176: 4bbf ldr r3, [pc, #764] ; (800c474 ) 800c178: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c17c: 2303 movs r3, #3 800c17e: 2178 movs r1, #120 ; 0x78 800c180: 208c movs r0, #140 ; 0x8c 800c182: f7f8 feab bl 8004edc if(blk) 800c186: 4bbc ldr r3, [pc, #752] ; (800c478 ) 800c188: 681b ldr r3, [r3, #0] 800c18a: 2b00 cmp r3, #0 800c18c: d00b beq.n 800c1a6 BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c18e: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c192: b2db uxtb r3, r3 800c194: 461a mov r2, r3 800c196: 4bb7 ldr r3, [pc, #732] ; (800c474 ) 800c198: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c19c: 2303 movs r3, #3 800c19e: 2178 movs r1, #120 ; 0x78 800c1a0: 2093 movs r0, #147 ; 0x93 800c1a2: f7f8 fe9b bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE); 800c1a6: 2303 movs r3, #3 800c1a8: 4ab4 ldr r2, [pc, #720] ; (800c47c ) 800c1aa: 2178 movs r1, #120 ; 0x78 800c1ac: 209a movs r0, #154 ; 0x9a 800c1ae: f7f8 fe95 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c1b2: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c1b6: b2db uxtb r3, r3 800c1b8: 461a mov r2, r3 800c1ba: 4bae ldr r3, [pc, #696] ; (800c474 ) 800c1bc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c1c0: 2303 movs r3, #3 800c1c2: 2178 movs r1, #120 ; 0x78 800c1c4: 20a1 movs r0, #161 ; 0xa1 800c1c6: f7f8 fe89 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c1ca: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c1ce: b2db uxtb r3, r3 800c1d0: 461a mov r2, r3 800c1d2: 4ba8 ldr r3, [pc, #672] ; (800c474 ) 800c1d4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c1d8: 2303 movs r3, #3 800c1da: 2178 movs r1, #120 ; 0x78 800c1dc: 20a8 movs r0, #168 ; 0xa8 800c1de: f7f8 fe7d bl 8004edc BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c1e2: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c1e6: b2db uxtb r3, r3 800c1e8: 461a mov r2, r3 800c1ea: 4ba2 ldr r3, [pc, #648] ; (800c474 ) 800c1ec: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c1f0: 2303 movs r3, #3 800c1f2: 2178 movs r1, #120 ; 0x78 800c1f4: 20af movs r0, #175 ; 0xaf 800c1f6: f7f8 fe71 bl 8004edc break; 800c1fa: f001 bbaf b.w 800d95c if(ipt4 == 4) 800c1fe: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c202: b2db uxtb r3, r3 800c204: 2b04 cmp r3, #4 800c206: f041 83a9 bne.w 800d95c BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c20a: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c20e: b2db uxtb r3, r3 800c210: 461a mov r2, r3 800c212: 4b98 ldr r3, [pc, #608] ; (800c474 ) 800c214: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c218: 2303 movs r3, #3 800c21a: 2178 movs r1, #120 ; 0x78 800c21c: 208c movs r0, #140 ; 0x8c 800c21e: f7f8 fe5d bl 8004edc BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE); 800c222: 2303 movs r3, #3 800c224: 4a95 ldr r2, [pc, #596] ; (800c47c ) 800c226: 2178 movs r1, #120 ; 0x78 800c228: 2093 movs r0, #147 ; 0x93 800c22a: f7f8 fe57 bl 8004edc if(blk) 800c22e: 4b92 ldr r3, [pc, #584] ; (800c478 ) 800c230: 681b ldr r3, [r3, #0] 800c232: 2b00 cmp r3, #0 800c234: d00b beq.n 800c24e BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c236: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c23a: b2db uxtb r3, r3 800c23c: 461a mov r2, r3 800c23e: 4b8d ldr r3, [pc, #564] ; (800c474 ) 800c240: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c244: 2303 movs r3, #3 800c246: 2178 movs r1, #120 ; 0x78 800c248: 209a movs r0, #154 ; 0x9a 800c24a: f7f8 fe47 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c24e: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c252: b2db uxtb r3, r3 800c254: 461a mov r2, r3 800c256: 4b87 ldr r3, [pc, #540] ; (800c474 ) 800c258: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c25c: 2303 movs r3, #3 800c25e: 2178 movs r1, #120 ; 0x78 800c260: 20a1 movs r0, #161 ; 0xa1 800c262: f7f8 fe3b bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c266: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c26a: b2db uxtb r3, r3 800c26c: 461a mov r2, r3 800c26e: 4b81 ldr r3, [pc, #516] ; (800c474 ) 800c270: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c274: 2303 movs r3, #3 800c276: 2178 movs r1, #120 ; 0x78 800c278: 20a8 movs r0, #168 ; 0xa8 800c27a: f7f8 fe2f bl 8004edc BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c27e: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c282: b2db uxtb r3, r3 800c284: 461a mov r2, r3 800c286: 4b7b ldr r3, [pc, #492] ; (800c474 ) 800c288: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c28c: 2303 movs r3, #3 800c28e: 2178 movs r1, #120 ; 0x78 800c290: 20af movs r0, #175 ; 0xaf 800c292: f7f8 fe23 bl 8004edc break; 800c296: f001 bb61 b.w 800d95c if(menupos == Kiks_4) 800c29a: 4b79 ldr r3, [pc, #484] ; (800c480 ) 800c29c: 781b ldrb r3, [r3, #0] 800c29e: b2db uxtb r3, r3 800c2a0: 2b1c cmp r3, #28 800c2a2: f040 818a bne.w 800c5ba LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800c2a6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800c2aa: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800c2ae: f7f8 fd4f bl 8004d50 if(!ipt4) 800c2b2: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c2b6: b2db uxtb r3, r3 800c2b8: 2b00 cmp r3, #0 800c2ba: d141 bne.n 800c340 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c2bc: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c2c0: b2db uxtb r3, r3 800c2c2: 461a mov r2, r3 800c2c4: 4b6b ldr r3, [pc, #428] ; (800c474 ) 800c2c6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c2ca: 2303 movs r3, #3 800c2cc: 2178 movs r1, #120 ; 0x78 800c2ce: 208c movs r0, #140 ; 0x8c 800c2d0: f7f8 fe04 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c2d4: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c2d8: b2db uxtb r3, r3 800c2da: 461a mov r2, r3 800c2dc: 4b65 ldr r3, [pc, #404] ; (800c474 ) 800c2de: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c2e2: 2303 movs r3, #3 800c2e4: 2178 movs r1, #120 ; 0x78 800c2e6: 2093 movs r0, #147 ; 0x93 800c2e8: f7f8 fdf8 bl 8004edc if(blk) 800c2ec: 4b62 ldr r3, [pc, #392] ; (800c478 ) 800c2ee: 681b ldr r3, [r3, #0] 800c2f0: 2b00 cmp r3, #0 800c2f2: d00b beq.n 800c30c BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c2f4: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c2f8: b2db uxtb r3, r3 800c2fa: 461a mov r2, r3 800c2fc: 4b5d ldr r3, [pc, #372] ; (800c474 ) 800c2fe: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c302: 2303 movs r3, #3 800c304: 2178 movs r1, #120 ; 0x78 800c306: 209a movs r0, #154 ; 0x9a 800c308: f7f8 fde8 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c30c: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c310: b2db uxtb r3, r3 800c312: 461a mov r2, r3 800c314: 4b57 ldr r3, [pc, #348] ; (800c474 ) 800c316: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c31a: 2303 movs r3, #3 800c31c: 2178 movs r1, #120 ; 0x78 800c31e: 20a1 movs r0, #161 ; 0xa1 800c320: f7f8 fddc bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c324: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c328: b2db uxtb r3, r3 800c32a: 461a mov r2, r3 800c32c: 4b51 ldr r3, [pc, #324] ; (800c474 ) 800c32e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c332: 2303 movs r3, #3 800c334: 2178 movs r1, #120 ; 0x78 800c336: 20a8 movs r0, #168 ; 0xa8 800c338: f7f8 fdd0 bl 8004edc break; 800c33c: f001 bb0e b.w 800d95c if(ipt4 == 1) 800c340: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c344: b2db uxtb r3, r3 800c346: 2b01 cmp r3, #1 800c348: d147 bne.n 800c3da BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c34a: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c34e: b2db uxtb r3, r3 800c350: 461a mov r2, r3 800c352: 4b48 ldr r3, [pc, #288] ; (800c474 ) 800c354: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c358: 2303 movs r3, #3 800c35a: 2178 movs r1, #120 ; 0x78 800c35c: 208c movs r0, #140 ; 0x8c 800c35e: f7f8 fdbd bl 8004edc BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c362: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c366: b2db uxtb r3, r3 800c368: 461a mov r2, r3 800c36a: 4b42 ldr r3, [pc, #264] ; (800c474 ) 800c36c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c370: 2303 movs r3, #3 800c372: 2178 movs r1, #120 ; 0x78 800c374: 2093 movs r0, #147 ; 0x93 800c376: f7f8 fdb1 bl 8004edc if(blk) 800c37a: 4b3f ldr r3, [pc, #252] ; (800c478 ) 800c37c: 681b ldr r3, [r3, #0] 800c37e: 2b00 cmp r3, #0 800c380: d00b beq.n 800c39a BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c382: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c386: b2db uxtb r3, r3 800c388: 461a mov r2, r3 800c38a: 4b3a ldr r3, [pc, #232] ; (800c474 ) 800c38c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c390: 2303 movs r3, #3 800c392: 2178 movs r1, #120 ; 0x78 800c394: 209a movs r0, #154 ; 0x9a 800c396: f7f8 fda1 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c39a: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c39e: b2db uxtb r3, r3 800c3a0: 461a mov r2, r3 800c3a2: 4b34 ldr r3, [pc, #208] ; (800c474 ) 800c3a4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c3a8: 2303 movs r3, #3 800c3aa: 2178 movs r1, #120 ; 0x78 800c3ac: 20a1 movs r0, #161 ; 0xa1 800c3ae: f7f8 fd95 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE); 800c3b2: 2303 movs r3, #3 800c3b4: 4a31 ldr r2, [pc, #196] ; (800c47c ) 800c3b6: 2178 movs r1, #120 ; 0x78 800c3b8: 20a8 movs r0, #168 ; 0xa8 800c3ba: f7f8 fd8f bl 8004edc BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c3be: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c3c2: b2db uxtb r3, r3 800c3c4: 461a mov r2, r3 800c3c6: 4b2b ldr r3, [pc, #172] ; (800c474 ) 800c3c8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c3cc: 2303 movs r3, #3 800c3ce: 2178 movs r1, #120 ; 0x78 800c3d0: 20af movs r0, #175 ; 0xaf 800c3d2: f7f8 fd83 bl 8004edc break; 800c3d6: f001 bac1 b.w 800d95c if(ipt4 == 2) 800c3da: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c3de: b2db uxtb r3, r3 800c3e0: 2b02 cmp r3, #2 800c3e2: d14f bne.n 800c484 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c3e4: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c3e8: b2db uxtb r3, r3 800c3ea: 461a mov r2, r3 800c3ec: 4b21 ldr r3, [pc, #132] ; (800c474 ) 800c3ee: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c3f2: 2303 movs r3, #3 800c3f4: 2178 movs r1, #120 ; 0x78 800c3f6: 208c movs r0, #140 ; 0x8c 800c3f8: f7f8 fd70 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c3fc: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c400: b2db uxtb r3, r3 800c402: 461a mov r2, r3 800c404: 4b1b ldr r3, [pc, #108] ; (800c474 ) 800c406: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c40a: 2303 movs r3, #3 800c40c: 2178 movs r1, #120 ; 0x78 800c40e: 2093 movs r0, #147 ; 0x93 800c410: f7f8 fd64 bl 8004edc if(blk) 800c414: 4b18 ldr r3, [pc, #96] ; (800c478 ) 800c416: 681b ldr r3, [r3, #0] 800c418: 2b00 cmp r3, #0 800c41a: d00b beq.n 800c434 BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c41c: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c420: b2db uxtb r3, r3 800c422: 461a mov r2, r3 800c424: 4b13 ldr r3, [pc, #76] ; (800c474 ) 800c426: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c42a: 2303 movs r3, #3 800c42c: 2178 movs r1, #120 ; 0x78 800c42e: 209a movs r0, #154 ; 0x9a 800c430: f7f8 fd54 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE); 800c434: 2303 movs r3, #3 800c436: 4a11 ldr r2, [pc, #68] ; (800c47c ) 800c438: 2178 movs r1, #120 ; 0x78 800c43a: 20a1 movs r0, #161 ; 0xa1 800c43c: f7f8 fd4e bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c440: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c444: b2db uxtb r3, r3 800c446: 461a mov r2, r3 800c448: 4b0a ldr r3, [pc, #40] ; (800c474 ) 800c44a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c44e: 2303 movs r3, #3 800c450: 2178 movs r1, #120 ; 0x78 800c452: 20a8 movs r0, #168 ; 0xa8 800c454: f7f8 fd42 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c458: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c45c: b2db uxtb r3, r3 800c45e: 461a mov r2, r3 800c460: 4b04 ldr r3, [pc, #16] ; (800c474 ) 800c462: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c466: 2303 movs r3, #3 800c468: 2178 movs r1, #120 ; 0x78 800c46a: 20af movs r0, #175 ; 0xaf 800c46c: f7f8 fd36 bl 8004edc break; 800c470: f001 ba74 b.w 800d95c 800c474: 2002096c .word 0x2002096c 800c478: 2006ba78 .word 0x2006ba78 800c47c: 08018150 .word 0x08018150 800c480: 20020010 .word 0x20020010 if(ipt4 == 3) 800c484: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c488: b2db uxtb r3, r3 800c48a: 2b03 cmp r3, #3 800c48c: d147 bne.n 800c51e BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c48e: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c492: b2db uxtb r3, r3 800c494: 461a mov r2, r3 800c496: 4bbf ldr r3, [pc, #764] ; (800c794 ) 800c498: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c49c: 2303 movs r3, #3 800c49e: 2178 movs r1, #120 ; 0x78 800c4a0: 208c movs r0, #140 ; 0x8c 800c4a2: f7f8 fd1b bl 8004edc BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c4a6: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c4aa: b2db uxtb r3, r3 800c4ac: 461a mov r2, r3 800c4ae: 4bb9 ldr r3, [pc, #740] ; (800c794 ) 800c4b0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c4b4: 2303 movs r3, #3 800c4b6: 2178 movs r1, #120 ; 0x78 800c4b8: 2093 movs r0, #147 ; 0x93 800c4ba: f7f8 fd0f bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE); 800c4be: 2303 movs r3, #3 800c4c0: 4ab5 ldr r2, [pc, #724] ; (800c798 ) 800c4c2: 2178 movs r1, #120 ; 0x78 800c4c4: 209a movs r0, #154 ; 0x9a 800c4c6: f7f8 fd09 bl 8004edc if(blk) 800c4ca: 4bb4 ldr r3, [pc, #720] ; (800c79c ) 800c4cc: 681b ldr r3, [r3, #0] 800c4ce: 2b00 cmp r3, #0 800c4d0: d00b beq.n 800c4ea BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c4d2: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c4d6: b2db uxtb r3, r3 800c4d8: 461a mov r2, r3 800c4da: 4bae ldr r3, [pc, #696] ; (800c794 ) 800c4dc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c4e0: 2303 movs r3, #3 800c4e2: 2178 movs r1, #120 ; 0x78 800c4e4: 20a1 movs r0, #161 ; 0xa1 800c4e6: f7f8 fcf9 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c4ea: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c4ee: b2db uxtb r3, r3 800c4f0: 461a mov r2, r3 800c4f2: 4ba8 ldr r3, [pc, #672] ; (800c794 ) 800c4f4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c4f8: 2303 movs r3, #3 800c4fa: 2178 movs r1, #120 ; 0x78 800c4fc: 20a8 movs r0, #168 ; 0xa8 800c4fe: f7f8 fced bl 8004edc BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c502: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c506: b2db uxtb r3, r3 800c508: 461a mov r2, r3 800c50a: 4ba2 ldr r3, [pc, #648] ; (800c794 ) 800c50c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c510: 2303 movs r3, #3 800c512: 2178 movs r1, #120 ; 0x78 800c514: 20af movs r0, #175 ; 0xaf 800c516: f7f8 fce1 bl 8004edc break; 800c51a: f001 ba1f b.w 800d95c if(ipt4 == 4) 800c51e: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c522: b2db uxtb r3, r3 800c524: 2b04 cmp r3, #4 800c526: f041 8219 bne.w 800d95c BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c52a: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c52e: b2db uxtb r3, r3 800c530: 461a mov r2, r3 800c532: 4b98 ldr r3, [pc, #608] ; (800c794 ) 800c534: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c538: 2303 movs r3, #3 800c53a: 2178 movs r1, #120 ; 0x78 800c53c: 208c movs r0, #140 ; 0x8c 800c53e: f7f8 fccd bl 8004edc BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE); 800c542: 2303 movs r3, #3 800c544: 4a94 ldr r2, [pc, #592] ; (800c798 ) 800c546: 2178 movs r1, #120 ; 0x78 800c548: 2093 movs r0, #147 ; 0x93 800c54a: f7f8 fcc7 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c54e: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c552: b2db uxtb r3, r3 800c554: 461a mov r2, r3 800c556: 4b8f ldr r3, [pc, #572] ; (800c794 ) 800c558: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c55c: 2303 movs r3, #3 800c55e: 2178 movs r1, #120 ; 0x78 800c560: 209a movs r0, #154 ; 0x9a 800c562: f7f8 fcbb bl 8004edc if(blk) 800c566: 4b8d ldr r3, [pc, #564] ; (800c79c ) 800c568: 681b ldr r3, [r3, #0] 800c56a: 2b00 cmp r3, #0 800c56c: d00b beq.n 800c586 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c56e: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c572: b2db uxtb r3, r3 800c574: 461a mov r2, r3 800c576: 4b87 ldr r3, [pc, #540] ; (800c794 ) 800c578: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c57c: 2303 movs r3, #3 800c57e: 2178 movs r1, #120 ; 0x78 800c580: 20a1 movs r0, #161 ; 0xa1 800c582: f7f8 fcab bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c586: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c58a: b2db uxtb r3, r3 800c58c: 461a mov r2, r3 800c58e: 4b81 ldr r3, [pc, #516] ; (800c794 ) 800c590: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c594: 2303 movs r3, #3 800c596: 2178 movs r1, #120 ; 0x78 800c598: 20a8 movs r0, #168 ; 0xa8 800c59a: f7f8 fc9f bl 8004edc BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c59e: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c5a2: b2db uxtb r3, r3 800c5a4: 461a mov r2, r3 800c5a6: 4b7b ldr r3, [pc, #492] ; (800c794 ) 800c5a8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c5ac: 2303 movs r3, #3 800c5ae: 2178 movs r1, #120 ; 0x78 800c5b0: 20af movs r0, #175 ; 0xaf 800c5b2: f7f8 fc93 bl 8004edc break; 800c5b6: f001 b9d1 b.w 800d95c if(menupos == Kikd_4) 800c5ba: 4b79 ldr r3, [pc, #484] ; (800c7a0 ) 800c5bc: 781b ldrb r3, [r3, #0] 800c5be: b2db uxtb r3, r3 800c5c0: 2b1d cmp r3, #29 800c5c2: f040 818a bne.w 800c8da LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800c5c6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800c5ca: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800c5ce: f7f8 fbbf bl 8004d50 if(!ipt4) 800c5d2: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c5d6: b2db uxtb r3, r3 800c5d8: 2b00 cmp r3, #0 800c5da: d141 bne.n 800c660 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c5dc: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c5e0: b2db uxtb r3, r3 800c5e2: 461a mov r2, r3 800c5e4: 4b6b ldr r3, [pc, #428] ; (800c794 ) 800c5e6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c5ea: 2303 movs r3, #3 800c5ec: 2178 movs r1, #120 ; 0x78 800c5ee: 208c movs r0, #140 ; 0x8c 800c5f0: f7f8 fc74 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c5f4: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c5f8: b2db uxtb r3, r3 800c5fa: 461a mov r2, r3 800c5fc: 4b65 ldr r3, [pc, #404] ; (800c794 ) 800c5fe: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c602: 2303 movs r3, #3 800c604: 2178 movs r1, #120 ; 0x78 800c606: 2093 movs r0, #147 ; 0x93 800c608: f7f8 fc68 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c60c: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c610: b2db uxtb r3, r3 800c612: 461a mov r2, r3 800c614: 4b5f ldr r3, [pc, #380] ; (800c794 ) 800c616: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c61a: 2303 movs r3, #3 800c61c: 2178 movs r1, #120 ; 0x78 800c61e: 209a movs r0, #154 ; 0x9a 800c620: f7f8 fc5c bl 8004edc if(blk) 800c624: 4b5d ldr r3, [pc, #372] ; (800c79c ) 800c626: 681b ldr r3, [r3, #0] 800c628: 2b00 cmp r3, #0 800c62a: d00b beq.n 800c644 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c62c: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c630: b2db uxtb r3, r3 800c632: 461a mov r2, r3 800c634: 4b57 ldr r3, [pc, #348] ; (800c794 ) 800c636: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c63a: 2303 movs r3, #3 800c63c: 2178 movs r1, #120 ; 0x78 800c63e: 20a1 movs r0, #161 ; 0xa1 800c640: f7f8 fc4c bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c644: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c648: b2db uxtb r3, r3 800c64a: 461a mov r2, r3 800c64c: 4b51 ldr r3, [pc, #324] ; (800c794 ) 800c64e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c652: 2303 movs r3, #3 800c654: 2178 movs r1, #120 ; 0x78 800c656: 20a8 movs r0, #168 ; 0xa8 800c658: f7f8 fc40 bl 8004edc break; 800c65c: f001 b97e b.w 800d95c if(ipt4 == 1) 800c660: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c664: b2db uxtb r3, r3 800c666: 2b01 cmp r3, #1 800c668: d147 bne.n 800c6fa BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c66a: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c66e: b2db uxtb r3, r3 800c670: 461a mov r2, r3 800c672: 4b48 ldr r3, [pc, #288] ; (800c794 ) 800c674: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c678: 2303 movs r3, #3 800c67a: 2178 movs r1, #120 ; 0x78 800c67c: 208c movs r0, #140 ; 0x8c 800c67e: f7f8 fc2d bl 8004edc BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c682: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c686: b2db uxtb r3, r3 800c688: 461a mov r2, r3 800c68a: 4b42 ldr r3, [pc, #264] ; (800c794 ) 800c68c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c690: 2303 movs r3, #3 800c692: 2178 movs r1, #120 ; 0x78 800c694: 2093 movs r0, #147 ; 0x93 800c696: f7f8 fc21 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c69a: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c69e: b2db uxtb r3, r3 800c6a0: 461a mov r2, r3 800c6a2: 4b3c ldr r3, [pc, #240] ; (800c794 ) 800c6a4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c6a8: 2303 movs r3, #3 800c6aa: 2178 movs r1, #120 ; 0x78 800c6ac: 209a movs r0, #154 ; 0x9a 800c6ae: f7f8 fc15 bl 8004edc if(blk) 800c6b2: 4b3a ldr r3, [pc, #232] ; (800c79c ) 800c6b4: 681b ldr r3, [r3, #0] 800c6b6: 2b00 cmp r3, #0 800c6b8: d00b beq.n 800c6d2 BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c6ba: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c6be: b2db uxtb r3, r3 800c6c0: 461a mov r2, r3 800c6c2: 4b34 ldr r3, [pc, #208] ; (800c794 ) 800c6c4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c6c8: 2303 movs r3, #3 800c6ca: 2178 movs r1, #120 ; 0x78 800c6cc: 20a1 movs r0, #161 ; 0xa1 800c6ce: f7f8 fc05 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE); 800c6d2: 2303 movs r3, #3 800c6d4: 4a30 ldr r2, [pc, #192] ; (800c798 ) 800c6d6: 2178 movs r1, #120 ; 0x78 800c6d8: 20a8 movs r0, #168 ; 0xa8 800c6da: f7f8 fbff bl 8004edc BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c6de: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c6e2: b2db uxtb r3, r3 800c6e4: 461a mov r2, r3 800c6e6: 4b2b ldr r3, [pc, #172] ; (800c794 ) 800c6e8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c6ec: 2303 movs r3, #3 800c6ee: 2178 movs r1, #120 ; 0x78 800c6f0: 20af movs r0, #175 ; 0xaf 800c6f2: f7f8 fbf3 bl 8004edc break; 800c6f6: f001 b931 b.w 800d95c if(ipt4 == 2) 800c6fa: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c6fe: b2db uxtb r3, r3 800c700: 2b02 cmp r3, #2 800c702: d14f bne.n 800c7a4 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c704: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c708: b2db uxtb r3, r3 800c70a: 461a mov r2, r3 800c70c: 4b21 ldr r3, [pc, #132] ; (800c794 ) 800c70e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c712: 2303 movs r3, #3 800c714: 2178 movs r1, #120 ; 0x78 800c716: 208c movs r0, #140 ; 0x8c 800c718: f7f8 fbe0 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c71c: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c720: b2db uxtb r3, r3 800c722: 461a mov r2, r3 800c724: 4b1b ldr r3, [pc, #108] ; (800c794 ) 800c726: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c72a: 2303 movs r3, #3 800c72c: 2178 movs r1, #120 ; 0x78 800c72e: 2093 movs r0, #147 ; 0x93 800c730: f7f8 fbd4 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c734: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c738: b2db uxtb r3, r3 800c73a: 461a mov r2, r3 800c73c: 4b15 ldr r3, [pc, #84] ; (800c794 ) 800c73e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c742: 2303 movs r3, #3 800c744: 2178 movs r1, #120 ; 0x78 800c746: 209a movs r0, #154 ; 0x9a 800c748: f7f8 fbc8 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE); 800c74c: 2303 movs r3, #3 800c74e: 4a12 ldr r2, [pc, #72] ; (800c798 ) 800c750: 2178 movs r1, #120 ; 0x78 800c752: 20a1 movs r0, #161 ; 0xa1 800c754: f7f8 fbc2 bl 8004edc if(blk) 800c758: 4b10 ldr r3, [pc, #64] ; (800c79c ) 800c75a: 681b ldr r3, [r3, #0] 800c75c: 2b00 cmp r3, #0 800c75e: d00b beq.n 800c778 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c760: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c764: b2db uxtb r3, r3 800c766: 461a mov r2, r3 800c768: 4b0a ldr r3, [pc, #40] ; (800c794 ) 800c76a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c76e: 2303 movs r3, #3 800c770: 2178 movs r1, #120 ; 0x78 800c772: 20a8 movs r0, #168 ; 0xa8 800c774: f7f8 fbb2 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c778: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c77c: b2db uxtb r3, r3 800c77e: 461a mov r2, r3 800c780: 4b04 ldr r3, [pc, #16] ; (800c794 ) 800c782: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c786: 2303 movs r3, #3 800c788: 2178 movs r1, #120 ; 0x78 800c78a: 20af movs r0, #175 ; 0xaf 800c78c: f7f8 fba6 bl 8004edc break; 800c790: f001 b8e4 b.w 800d95c 800c794: 2002096c .word 0x2002096c 800c798: 08018150 .word 0x08018150 800c79c: 2006ba78 .word 0x2006ba78 800c7a0: 20020010 .word 0x20020010 if(ipt4 == 3) 800c7a4: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c7a8: b2db uxtb r3, r3 800c7aa: 2b03 cmp r3, #3 800c7ac: d147 bne.n 800c83e BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c7ae: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c7b2: b2db uxtb r3, r3 800c7b4: 461a mov r2, r3 800c7b6: 4bc1 ldr r3, [pc, #772] ; (800cabc ) 800c7b8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c7bc: 2303 movs r3, #3 800c7be: 2178 movs r1, #120 ; 0x78 800c7c0: 208c movs r0, #140 ; 0x8c 800c7c2: f7f8 fb8b bl 8004edc BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c7c6: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c7ca: b2db uxtb r3, r3 800c7cc: 461a mov r2, r3 800c7ce: 4bbb ldr r3, [pc, #748] ; (800cabc ) 800c7d0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c7d4: 2303 movs r3, #3 800c7d6: 2178 movs r1, #120 ; 0x78 800c7d8: 2093 movs r0, #147 ; 0x93 800c7da: f7f8 fb7f bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE); 800c7de: 2303 movs r3, #3 800c7e0: 4ab7 ldr r2, [pc, #732] ; (800cac0 ) 800c7e2: 2178 movs r1, #120 ; 0x78 800c7e4: 209a movs r0, #154 ; 0x9a 800c7e6: f7f8 fb79 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c7ea: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c7ee: b2db uxtb r3, r3 800c7f0: 461a mov r2, r3 800c7f2: 4bb2 ldr r3, [pc, #712] ; (800cabc ) 800c7f4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c7f8: 2303 movs r3, #3 800c7fa: 2178 movs r1, #120 ; 0x78 800c7fc: 20a1 movs r0, #161 ; 0xa1 800c7fe: f7f8 fb6d bl 8004edc if(blk) 800c802: 4bb0 ldr r3, [pc, #704] ; (800cac4 ) 800c804: 681b ldr r3, [r3, #0] 800c806: 2b00 cmp r3, #0 800c808: d00b beq.n 800c822 BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c80a: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c80e: b2db uxtb r3, r3 800c810: 461a mov r2, r3 800c812: 4baa ldr r3, [pc, #680] ; (800cabc ) 800c814: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c818: 2303 movs r3, #3 800c81a: 2178 movs r1, #120 ; 0x78 800c81c: 20a8 movs r0, #168 ; 0xa8 800c81e: f7f8 fb5d bl 8004edc BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c822: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c826: b2db uxtb r3, r3 800c828: 461a mov r2, r3 800c82a: 4ba4 ldr r3, [pc, #656] ; (800cabc ) 800c82c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c830: 2303 movs r3, #3 800c832: 2178 movs r1, #120 ; 0x78 800c834: 20af movs r0, #175 ; 0xaf 800c836: f7f8 fb51 bl 8004edc break; 800c83a: f001 b88f b.w 800d95c if(ipt4 == 4) 800c83e: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c842: b2db uxtb r3, r3 800c844: 2b04 cmp r3, #4 800c846: f041 8089 bne.w 800d95c BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c84a: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c84e: b2db uxtb r3, r3 800c850: 461a mov r2, r3 800c852: 4b9a ldr r3, [pc, #616] ; (800cabc ) 800c854: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c858: 2303 movs r3, #3 800c85a: 2178 movs r1, #120 ; 0x78 800c85c: 208c movs r0, #140 ; 0x8c 800c85e: f7f8 fb3d bl 8004edc BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE); 800c862: 2303 movs r3, #3 800c864: 4a96 ldr r2, [pc, #600] ; (800cac0 ) 800c866: 2178 movs r1, #120 ; 0x78 800c868: 2093 movs r0, #147 ; 0x93 800c86a: f7f8 fb37 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c86e: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c872: b2db uxtb r3, r3 800c874: 461a mov r2, r3 800c876: 4b91 ldr r3, [pc, #580] ; (800cabc ) 800c878: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c87c: 2303 movs r3, #3 800c87e: 2178 movs r1, #120 ; 0x78 800c880: 209a movs r0, #154 ; 0x9a 800c882: f7f8 fb2b bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c886: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c88a: b2db uxtb r3, r3 800c88c: 461a mov r2, r3 800c88e: 4b8b ldr r3, [pc, #556] ; (800cabc ) 800c890: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c894: 2303 movs r3, #3 800c896: 2178 movs r1, #120 ; 0x78 800c898: 20a1 movs r0, #161 ; 0xa1 800c89a: f7f8 fb1f bl 8004edc if(blk) 800c89e: 4b89 ldr r3, [pc, #548] ; (800cac4 ) 800c8a0: 681b ldr r3, [r3, #0] 800c8a2: 2b00 cmp r3, #0 800c8a4: d00b beq.n 800c8be BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c8a6: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c8aa: b2db uxtb r3, r3 800c8ac: 461a mov r2, r3 800c8ae: 4b83 ldr r3, [pc, #524] ; (800cabc ) 800c8b0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c8b4: 2303 movs r3, #3 800c8b6: 2178 movs r1, #120 ; 0x78 800c8b8: 20a8 movs r0, #168 ; 0xa8 800c8ba: f7f8 fb0f bl 8004edc BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c8be: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c8c2: b2db uxtb r3, r3 800c8c4: 461a mov r2, r3 800c8c6: 4b7d ldr r3, [pc, #500] ; (800cabc ) 800c8c8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c8cc: 2303 movs r3, #3 800c8ce: 2178 movs r1, #120 ; 0x78 800c8d0: 20af movs r0, #175 ; 0xaf 800c8d2: f7f8 fb03 bl 8004edc break; 800c8d6: f001 b841 b.w 800d95c if(menupos == Kike_4) 800c8da: 4b7b ldr r3, [pc, #492] ; (800cac8 ) 800c8dc: 781b ldrb r3, [r3, #0] 800c8de: b2db uxtb r3, r3 800c8e0: 2b1e cmp r3, #30 800c8e2: f040 8190 bne.w 800cc06 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800c8e6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800c8ea: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800c8ee: f7f8 fa2f bl 8004d50 if(!ipt4) 800c8f2: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c8f6: b2db uxtb r3, r3 800c8f8: 2b00 cmp r3, #0 800c8fa: d142 bne.n 800c982 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c8fc: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c900: b2db uxtb r3, r3 800c902: 461a mov r2, r3 800c904: 4b6d ldr r3, [pc, #436] ; (800cabc ) 800c906: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c90a: 2303 movs r3, #3 800c90c: 2178 movs r1, #120 ; 0x78 800c90e: 208c movs r0, #140 ; 0x8c 800c910: f7f8 fae4 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c914: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c918: b2db uxtb r3, r3 800c91a: 461a mov r2, r3 800c91c: 4b67 ldr r3, [pc, #412] ; (800cabc ) 800c91e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c922: 2303 movs r3, #3 800c924: 2178 movs r1, #120 ; 0x78 800c926: 2093 movs r0, #147 ; 0x93 800c928: f7f8 fad8 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c92c: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c930: b2db uxtb r3, r3 800c932: 461a mov r2, r3 800c934: 4b61 ldr r3, [pc, #388] ; (800cabc ) 800c936: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c93a: 2303 movs r3, #3 800c93c: 2178 movs r1, #120 ; 0x78 800c93e: 209a movs r0, #154 ; 0x9a 800c940: f7f8 facc bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c944: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c948: b2db uxtb r3, r3 800c94a: 461a mov r2, r3 800c94c: 4b5b ldr r3, [pc, #364] ; (800cabc ) 800c94e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c952: 2303 movs r3, #3 800c954: 2178 movs r1, #120 ; 0x78 800c956: 20a1 movs r0, #161 ; 0xa1 800c958: f7f8 fac0 bl 8004edc if(blk) 800c95c: 4b59 ldr r3, [pc, #356] ; (800cac4 ) 800c95e: 681b ldr r3, [r3, #0] 800c960: 2b00 cmp r3, #0 800c962: f000 87fb beq.w 800d95c BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE); 800c966: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800c96a: b2db uxtb r3, r3 800c96c: 461a mov r2, r3 800c96e: 4b53 ldr r3, [pc, #332] ; (800cabc ) 800c970: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c974: 2303 movs r3, #3 800c976: 2178 movs r1, #120 ; 0x78 800c978: 20a8 movs r0, #168 ; 0xa8 800c97a: f7f8 faaf bl 8004edc break; 800c97e: f000 bfed b.w 800d95c if(ipt4 == 1) 800c982: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800c986: b2db uxtb r3, r3 800c988: 2b01 cmp r3, #1 800c98a: d148 bne.n 800ca1e BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800c98c: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800c990: b2db uxtb r3, r3 800c992: 461a mov r2, r3 800c994: 4b49 ldr r3, [pc, #292] ; (800cabc ) 800c996: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c99a: 2303 movs r3, #3 800c99c: 2178 movs r1, #120 ; 0x78 800c99e: 208c movs r0, #140 ; 0x8c 800c9a0: f7f8 fa9c bl 8004edc BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800c9a4: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800c9a8: b2db uxtb r3, r3 800c9aa: 461a mov r2, r3 800c9ac: 4b43 ldr r3, [pc, #268] ; (800cabc ) 800c9ae: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c9b2: 2303 movs r3, #3 800c9b4: 2178 movs r1, #120 ; 0x78 800c9b6: 2093 movs r0, #147 ; 0x93 800c9b8: f7f8 fa90 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800c9bc: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800c9c0: b2db uxtb r3, r3 800c9c2: 461a mov r2, r3 800c9c4: 4b3d ldr r3, [pc, #244] ; (800cabc ) 800c9c6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c9ca: 2303 movs r3, #3 800c9cc: 2178 movs r1, #120 ; 0x78 800c9ce: 209a movs r0, #154 ; 0x9a 800c9d0: f7f8 fa84 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800c9d4: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800c9d8: b2db uxtb r3, r3 800c9da: 461a mov r2, r3 800c9dc: 4b37 ldr r3, [pc, #220] ; (800cabc ) 800c9de: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800c9e2: 2303 movs r3, #3 800c9e4: 2178 movs r1, #120 ; 0x78 800c9e6: 20a1 movs r0, #161 ; 0xa1 800c9e8: f7f8 fa78 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE); 800c9ec: 2303 movs r3, #3 800c9ee: 4a34 ldr r2, [pc, #208] ; (800cac0 ) 800c9f0: 2178 movs r1, #120 ; 0x78 800c9f2: 20a8 movs r0, #168 ; 0xa8 800c9f4: f7f8 fa72 bl 8004edc if(blk) 800c9f8: 4b32 ldr r3, [pc, #200] ; (800cac4 ) 800c9fa: 681b ldr r3, [r3, #0] 800c9fc: 2b00 cmp r3, #0 800c9fe: f000 87ad beq.w 800d95c BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800ca02: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800ca06: b2db uxtb r3, r3 800ca08: 461a mov r2, r3 800ca0a: 4b2c ldr r3, [pc, #176] ; (800cabc ) 800ca0c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ca10: 2303 movs r3, #3 800ca12: 2178 movs r1, #120 ; 0x78 800ca14: 20af movs r0, #175 ; 0xaf 800ca16: f7f8 fa61 bl 8004edc break; 800ca1a: f000 bf9f b.w 800d95c if(ipt4 == 2) 800ca1e: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800ca22: b2db uxtb r3, r3 800ca24: 2b02 cmp r3, #2 800ca26: d151 bne.n 800cacc BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800ca28: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800ca2c: b2db uxtb r3, r3 800ca2e: 461a mov r2, r3 800ca30: 4b22 ldr r3, [pc, #136] ; (800cabc ) 800ca32: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ca36: 2303 movs r3, #3 800ca38: 2178 movs r1, #120 ; 0x78 800ca3a: 208c movs r0, #140 ; 0x8c 800ca3c: f7f8 fa4e bl 8004edc BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800ca40: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800ca44: b2db uxtb r3, r3 800ca46: 461a mov r2, r3 800ca48: 4b1c ldr r3, [pc, #112] ; (800cabc ) 800ca4a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ca4e: 2303 movs r3, #3 800ca50: 2178 movs r1, #120 ; 0x78 800ca52: 2093 movs r0, #147 ; 0x93 800ca54: f7f8 fa42 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800ca58: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800ca5c: b2db uxtb r3, r3 800ca5e: 461a mov r2, r3 800ca60: 4b16 ldr r3, [pc, #88] ; (800cabc ) 800ca62: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ca66: 2303 movs r3, #3 800ca68: 2178 movs r1, #120 ; 0x78 800ca6a: 209a movs r0, #154 ; 0x9a 800ca6c: f7f8 fa36 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE); 800ca70: 2303 movs r3, #3 800ca72: 4a13 ldr r2, [pc, #76] ; (800cac0 ) 800ca74: 2178 movs r1, #120 ; 0x78 800ca76: 20a1 movs r0, #161 ; 0xa1 800ca78: f7f8 fa30 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800ca7c: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800ca80: b2db uxtb r3, r3 800ca82: 461a mov r2, r3 800ca84: 4b0d ldr r3, [pc, #52] ; (800cabc ) 800ca86: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ca8a: 2303 movs r3, #3 800ca8c: 2178 movs r1, #120 ; 0x78 800ca8e: 20a8 movs r0, #168 ; 0xa8 800ca90: f7f8 fa24 bl 8004edc if(blk) 800ca94: 4b0b ldr r3, [pc, #44] ; (800cac4 ) 800ca96: 681b ldr r3, [r3, #0] 800ca98: 2b00 cmp r3, #0 800ca9a: f000 875f beq.w 800d95c BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800ca9e: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800caa2: b2db uxtb r3, r3 800caa4: 461a mov r2, r3 800caa6: 4b05 ldr r3, [pc, #20] ; (800cabc ) 800caa8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800caac: 2303 movs r3, #3 800caae: 2178 movs r1, #120 ; 0x78 800cab0: 20af movs r0, #175 ; 0xaf 800cab2: f7f8 fa13 bl 8004edc break; 800cab6: f000 bf51 b.w 800d95c 800caba: bf00 nop 800cabc: 2002096c .word 0x2002096c 800cac0: 08018150 .word 0x08018150 800cac4: 2006ba78 .word 0x2006ba78 800cac8: 20020010 .word 0x20020010 if(ipt4 == 3) 800cacc: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800cad0: b2db uxtb r3, r3 800cad2: 2b03 cmp r3, #3 800cad4: d148 bne.n 800cb68 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800cad6: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800cada: b2db uxtb r3, r3 800cadc: 461a mov r2, r3 800cade: 4bc4 ldr r3, [pc, #784] ; (800cdf0 ) 800cae0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cae4: 2303 movs r3, #3 800cae6: 2178 movs r1, #120 ; 0x78 800cae8: 208c movs r0, #140 ; 0x8c 800caea: f7f8 f9f7 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800caee: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800caf2: b2db uxtb r3, r3 800caf4: 461a mov r2, r3 800caf6: 4bbe ldr r3, [pc, #760] ; (800cdf0 ) 800caf8: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cafc: 2303 movs r3, #3 800cafe: 2178 movs r1, #120 ; 0x78 800cb00: 2093 movs r0, #147 ; 0x93 800cb02: f7f8 f9eb bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE); 800cb06: 2303 movs r3, #3 800cb08: 4aba ldr r2, [pc, #744] ; (800cdf4 ) 800cb0a: 2178 movs r1, #120 ; 0x78 800cb0c: 209a movs r0, #154 ; 0x9a 800cb0e: f7f8 f9e5 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800cb12: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800cb16: b2db uxtb r3, r3 800cb18: 461a mov r2, r3 800cb1a: 4bb5 ldr r3, [pc, #724] ; (800cdf0 ) 800cb1c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cb20: 2303 movs r3, #3 800cb22: 2178 movs r1, #120 ; 0x78 800cb24: 20a1 movs r0, #161 ; 0xa1 800cb26: f7f8 f9d9 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800cb2a: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800cb2e: b2db uxtb r3, r3 800cb30: 461a mov r2, r3 800cb32: 4baf ldr r3, [pc, #700] ; (800cdf0 ) 800cb34: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cb38: 2303 movs r3, #3 800cb3a: 2178 movs r1, #120 ; 0x78 800cb3c: 20a8 movs r0, #168 ; 0xa8 800cb3e: f7f8 f9cd bl 8004edc if(blk) 800cb42: 4bad ldr r3, [pc, #692] ; (800cdf8 ) 800cb44: 681b ldr r3, [r3, #0] 800cb46: 2b00 cmp r3, #0 800cb48: f000 8708 beq.w 800d95c BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800cb4c: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800cb50: b2db uxtb r3, r3 800cb52: 461a mov r2, r3 800cb54: 4ba6 ldr r3, [pc, #664] ; (800cdf0 ) 800cb56: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cb5a: 2303 movs r3, #3 800cb5c: 2178 movs r1, #120 ; 0x78 800cb5e: 20af movs r0, #175 ; 0xaf 800cb60: f7f8 f9bc bl 8004edc break; 800cb64: f000 befa b.w 800d95c if(ipt4 == 4) 800cb68: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800cb6c: b2db uxtb r3, r3 800cb6e: 2b04 cmp r3, #4 800cb70: f040 86f4 bne.w 800d95c BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800cb74: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800cb78: b2db uxtb r3, r3 800cb7a: 461a mov r2, r3 800cb7c: 4b9c ldr r3, [pc, #624] ; (800cdf0 ) 800cb7e: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cb82: 2303 movs r3, #3 800cb84: 2178 movs r1, #120 ; 0x78 800cb86: 208c movs r0, #140 ; 0x8c 800cb88: f7f8 f9a8 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE); 800cb8c: 2303 movs r3, #3 800cb8e: 4a99 ldr r2, [pc, #612] ; (800cdf4 ) 800cb90: 2178 movs r1, #120 ; 0x78 800cb92: 2093 movs r0, #147 ; 0x93 800cb94: f7f8 f9a2 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE); 800cb98: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800cb9c: b2db uxtb r3, r3 800cb9e: 461a mov r2, r3 800cba0: 4b93 ldr r3, [pc, #588] ; (800cdf0 ) 800cba2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cba6: 2303 movs r3, #3 800cba8: 2178 movs r1, #120 ; 0x78 800cbaa: 209a movs r0, #154 ; 0x9a 800cbac: f7f8 f996 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800cbb0: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800cbb4: b2db uxtb r3, r3 800cbb6: 461a mov r2, r3 800cbb8: 4b8d ldr r3, [pc, #564] ; (800cdf0 ) 800cbba: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cbbe: 2303 movs r3, #3 800cbc0: 2178 movs r1, #120 ; 0x78 800cbc2: 20a1 movs r0, #161 ; 0xa1 800cbc4: f7f8 f98a bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800cbc8: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800cbcc: b2db uxtb r3, r3 800cbce: 461a mov r2, r3 800cbd0: 4b87 ldr r3, [pc, #540] ; (800cdf0 ) 800cbd2: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cbd6: 2303 movs r3, #3 800cbd8: 2178 movs r1, #120 ; 0x78 800cbda: 20a8 movs r0, #168 ; 0xa8 800cbdc: f7f8 f97e bl 8004edc if(blk) 800cbe0: 4b85 ldr r3, [pc, #532] ; (800cdf8 ) 800cbe2: 681b ldr r3, [r3, #0] 800cbe4: 2b00 cmp r3, #0 800cbe6: f000 86b9 beq.w 800d95c BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800cbea: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800cbee: b2db uxtb r3, r3 800cbf0: 461a mov r2, r3 800cbf2: 4b7f ldr r3, [pc, #508] ; (800cdf0 ) 800cbf4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cbf8: 2303 movs r3, #3 800cbfa: 2178 movs r1, #120 ; 0x78 800cbfc: 20af movs r0, #175 ; 0xaf 800cbfe: f7f8 f96d bl 8004edc break; 800cc02: f000 beab b.w 800d95c if(menupos == Kpt_4) 800cc06: 4b7d ldr r3, [pc, #500] ; (800cdfc ) 800cc08: 781b ldrb r3, [r3, #0] 800cc0a: b2db uxtb r3, r3 800cc0c: 2b1f cmp r3, #31 800cc0e: f040 86a5 bne.w 800d95c LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800cc12: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800cc16: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800cc1a: f7f8 f899 bl 8004d50 if(!ipt4) 800cc1e: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800cc22: b2db uxtb r3, r3 800cc24: 2b00 cmp r3, #0 800cc26: d148 bne.n 800ccba BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800cc28: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800cc2c: b2db uxtb r3, r3 800cc2e: 461a mov r2, r3 800cc30: 4b6f ldr r3, [pc, #444] ; (800cdf0 ) 800cc32: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cc36: 2303 movs r3, #3 800cc38: 2178 movs r1, #120 ; 0x78 800cc3a: 208c movs r0, #140 ; 0x8c 800cc3c: f7f8 f94e bl 8004edc BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800cc40: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800cc44: b2db uxtb r3, r3 800cc46: 461a mov r2, r3 800cc48: 4b69 ldr r3, [pc, #420] ; (800cdf0 ) 800cc4a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cc4e: 2303 movs r3, #3 800cc50: 2178 movs r1, #120 ; 0x78 800cc52: 2093 movs r0, #147 ; 0x93 800cc54: f7f8 f942 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800cc58: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800cc5c: b2db uxtb r3, r3 800cc5e: 461a mov r2, r3 800cc60: 4b63 ldr r3, [pc, #396] ; (800cdf0 ) 800cc62: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cc66: 2303 movs r3, #3 800cc68: 2178 movs r1, #120 ; 0x78 800cc6a: 209a movs r0, #154 ; 0x9a 800cc6c: f7f8 f936 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800cc70: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800cc74: b2db uxtb r3, r3 800cc76: 461a mov r2, r3 800cc78: 4b5d ldr r3, [pc, #372] ; (800cdf0 ) 800cc7a: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cc7e: 2303 movs r3, #3 800cc80: 2178 movs r1, #120 ; 0x78 800cc82: 20a1 movs r0, #161 ; 0xa1 800cc84: f7f8 f92a bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE); 800cc88: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800cc8c: b2db uxtb r3, r3 800cc8e: 461a mov r2, r3 800cc90: 4b57 ldr r3, [pc, #348] ; (800cdf0 ) 800cc92: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cc96: 2303 movs r3, #3 800cc98: 2178 movs r1, #120 ; 0x78 800cc9a: 20a8 movs r0, #168 ; 0xa8 800cc9c: f7f8 f91e bl 8004edc if(blk) 800cca0: 4b55 ldr r3, [pc, #340] ; (800cdf8 ) 800cca2: 681b ldr r3, [r3, #0] 800cca4: 2b00 cmp r3, #0 800cca6: f000 8659 beq.w 800d95c BSP_LCD_DisplayStringAt(140+35, 120, ".", LEFT_MODE); 800ccaa: 2303 movs r3, #3 800ccac: 4a51 ldr r2, [pc, #324] ; (800cdf4 ) 800ccae: 2178 movs r1, #120 ; 0x78 800ccb0: 20af movs r0, #175 ; 0xaf 800ccb2: f7f8 f913 bl 8004edc break; 800ccb6: f000 be51 b.w 800d95c if(ipt4 == 1) 800ccba: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800ccbe: b2db uxtb r3, r3 800ccc0: 2b01 cmp r3, #1 800ccc2: d147 bne.n 800cd54 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800ccc4: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800ccc8: b2db uxtb r3, r3 800ccca: 461a mov r2, r3 800cccc: 4b48 ldr r3, [pc, #288] ; (800cdf0 ) 800ccce: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ccd2: 2303 movs r3, #3 800ccd4: 2178 movs r1, #120 ; 0x78 800ccd6: 208c movs r0, #140 ; 0x8c 800ccd8: f7f8 f900 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800ccdc: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800cce0: b2db uxtb r3, r3 800cce2: 461a mov r2, r3 800cce4: 4b42 ldr r3, [pc, #264] ; (800cdf0 ) 800cce6: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ccea: 2303 movs r3, #3 800ccec: 2178 movs r1, #120 ; 0x78 800ccee: 2093 movs r0, #147 ; 0x93 800ccf0: f7f8 f8f4 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800ccf4: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800ccf8: b2db uxtb r3, r3 800ccfa: 461a mov r2, r3 800ccfc: 4b3c ldr r3, [pc, #240] ; (800cdf0 ) 800ccfe: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cd02: 2303 movs r3, #3 800cd04: 2178 movs r1, #120 ; 0x78 800cd06: 209a movs r0, #154 ; 0x9a 800cd08: f7f8 f8e8 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE); 800cd0c: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800cd10: b2db uxtb r3, r3 800cd12: 461a mov r2, r3 800cd14: 4b36 ldr r3, [pc, #216] ; (800cdf0 ) 800cd16: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cd1a: 2303 movs r3, #3 800cd1c: 2178 movs r1, #120 ; 0x78 800cd1e: 20a1 movs r0, #161 ; 0xa1 800cd20: f7f8 f8dc bl 8004edc if(blk) 800cd24: 4b34 ldr r3, [pc, #208] ; (800cdf8 ) 800cd26: 681b ldr r3, [r3, #0] 800cd28: 2b00 cmp r3, #0 800cd2a: d005 beq.n 800cd38 BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE); 800cd2c: 2303 movs r3, #3 800cd2e: 4a31 ldr r2, [pc, #196] ; (800cdf4 ) 800cd30: 2178 movs r1, #120 ; 0x78 800cd32: 20a8 movs r0, #168 ; 0xa8 800cd34: f7f8 f8d2 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800cd38: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800cd3c: b2db uxtb r3, r3 800cd3e: 461a mov r2, r3 800cd40: 4b2b ldr r3, [pc, #172] ; (800cdf0 ) 800cd42: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cd46: 2303 movs r3, #3 800cd48: 2178 movs r1, #120 ; 0x78 800cd4a: 20af movs r0, #175 ; 0xaf 800cd4c: f7f8 f8c6 bl 8004edc break; 800cd50: f000 be04 b.w 800d95c if(ipt4 == 2) 800cd54: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800cd58: b2db uxtb r3, r3 800cd5a: 2b02 cmp r3, #2 800cd5c: d150 bne.n 800ce00 BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800cd5e: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800cd62: b2db uxtb r3, r3 800cd64: 461a mov r2, r3 800cd66: 4b22 ldr r3, [pc, #136] ; (800cdf0 ) 800cd68: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cd6c: 2303 movs r3, #3 800cd6e: 2178 movs r1, #120 ; 0x78 800cd70: 208c movs r0, #140 ; 0x8c 800cd72: f7f8 f8b3 bl 8004edc BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800cd76: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800cd7a: b2db uxtb r3, r3 800cd7c: 461a mov r2, r3 800cd7e: 4b1c ldr r3, [pc, #112] ; (800cdf0 ) 800cd80: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cd84: 2303 movs r3, #3 800cd86: 2178 movs r1, #120 ; 0x78 800cd88: 2093 movs r0, #147 ; 0x93 800cd8a: f7f8 f8a7 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE); 800cd8e: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800cd92: b2db uxtb r3, r3 800cd94: 461a mov r2, r3 800cd96: 4b16 ldr r3, [pc, #88] ; (800cdf0 ) 800cd98: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cd9c: 2303 movs r3, #3 800cd9e: 2178 movs r1, #120 ; 0x78 800cda0: 209a movs r0, #154 ; 0x9a 800cda2: f7f8 f89b bl 8004edc if(blk) 800cda6: 4b14 ldr r3, [pc, #80] ; (800cdf8 ) 800cda8: 681b ldr r3, [r3, #0] 800cdaa: 2b00 cmp r3, #0 800cdac: d005 beq.n 800cdba BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE); 800cdae: 2303 movs r3, #3 800cdb0: 4a10 ldr r2, [pc, #64] ; (800cdf4 ) 800cdb2: 2178 movs r1, #120 ; 0x78 800cdb4: 20a1 movs r0, #161 ; 0xa1 800cdb6: f7f8 f891 bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800cdba: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800cdbe: b2db uxtb r3, r3 800cdc0: 461a mov r2, r3 800cdc2: 4b0b ldr r3, [pc, #44] ; (800cdf0 ) 800cdc4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cdc8: 2303 movs r3, #3 800cdca: 2178 movs r1, #120 ; 0x78 800cdcc: 20a8 movs r0, #168 ; 0xa8 800cdce: f7f8 f885 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800cdd2: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800cdd6: b2db uxtb r3, r3 800cdd8: 461a mov r2, r3 800cdda: 4b05 ldr r3, [pc, #20] ; (800cdf0 ) 800cddc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cde0: 2303 movs r3, #3 800cde2: 2178 movs r1, #120 ; 0x78 800cde4: 20af movs r0, #175 ; 0xaf 800cde6: f7f8 f879 bl 8004edc break; 800cdea: f000 bdb7 b.w 800d95c 800cdee: bf00 nop 800cdf0: 2002096c .word 0x2002096c 800cdf4: 08018150 .word 0x08018150 800cdf8: 2006ba78 .word 0x2006ba78 800cdfc: 20020010 .word 0x20020010 if(ipt4 == 3) 800ce00: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800ce04: b2db uxtb r3, r3 800ce06: 2b03 cmp r3, #3 800ce08: d147 bne.n 800ce9a BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800ce0a: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800ce0e: b2db uxtb r3, r3 800ce10: 461a mov r2, r3 800ce12: 4bc9 ldr r3, [pc, #804] ; (800d138 ) 800ce14: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ce18: 2303 movs r3, #3 800ce1a: 2178 movs r1, #120 ; 0x78 800ce1c: 208c movs r0, #140 ; 0x8c 800ce1e: f7f8 f85d bl 8004edc BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE); 800ce22: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800ce26: b2db uxtb r3, r3 800ce28: 461a mov r2, r3 800ce2a: 4bc3 ldr r3, [pc, #780] ; (800d138 ) 800ce2c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ce30: 2303 movs r3, #3 800ce32: 2178 movs r1, #120 ; 0x78 800ce34: 2093 movs r0, #147 ; 0x93 800ce36: f7f8 f851 bl 8004edc if(blk) 800ce3a: 4bc0 ldr r3, [pc, #768] ; (800d13c ) 800ce3c: 681b ldr r3, [r3, #0] 800ce3e: 2b00 cmp r3, #0 800ce40: d005 beq.n 800ce4e BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE); 800ce42: 2303 movs r3, #3 800ce44: 4abe ldr r2, [pc, #760] ; (800d140 ) 800ce46: 2178 movs r1, #120 ; 0x78 800ce48: 209a movs r0, #154 ; 0x9a 800ce4a: f7f8 f847 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800ce4e: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800ce52: b2db uxtb r3, r3 800ce54: 461a mov r2, r3 800ce56: 4bb8 ldr r3, [pc, #736] ; (800d138 ) 800ce58: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ce5c: 2303 movs r3, #3 800ce5e: 2178 movs r1, #120 ; 0x78 800ce60: 20a1 movs r0, #161 ; 0xa1 800ce62: f7f8 f83b bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800ce66: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800ce6a: b2db uxtb r3, r3 800ce6c: 461a mov r2, r3 800ce6e: 4bb2 ldr r3, [pc, #712] ; (800d138 ) 800ce70: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ce74: 2303 movs r3, #3 800ce76: 2178 movs r1, #120 ; 0x78 800ce78: 20a8 movs r0, #168 ; 0xa8 800ce7a: f7f8 f82f bl 8004edc BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800ce7e: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800ce82: b2db uxtb r3, r3 800ce84: 461a mov r2, r3 800ce86: 4bac ldr r3, [pc, #688] ; (800d138 ) 800ce88: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ce8c: 2303 movs r3, #3 800ce8e: 2178 movs r1, #120 ; 0x78 800ce90: 20af movs r0, #175 ; 0xaf 800ce92: f7f8 f823 bl 8004edc break; 800ce96: f000 bd61 b.w 800d95c if(ipt4 == 4) 800ce9a: f897 3300 ldrb.w r3, [r7, #768] ; 0x300 800ce9e: b2db uxtb r3, r3 800cea0: 2b04 cmp r3, #4 800cea2: f040 855b bne.w 800d95c BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE); 800cea6: f897 3307 ldrb.w r3, [r7, #775] ; 0x307 800ceaa: b2db uxtb r3, r3 800ceac: 461a mov r2, r3 800ceae: 4ba2 ldr r3, [pc, #648] ; (800d138 ) 800ceb0: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800ceb4: 2303 movs r3, #3 800ceb6: 2178 movs r1, #120 ; 0x78 800ceb8: 208c movs r0, #140 ; 0x8c 800ceba: f7f8 f80f bl 8004edc if(blk) 800cebe: 4b9f ldr r3, [pc, #636] ; (800d13c ) 800cec0: 681b ldr r3, [r3, #0] 800cec2: 2b00 cmp r3, #0 800cec4: d005 beq.n 800ced2 BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE); 800cec6: 2303 movs r3, #3 800cec8: 4a9d ldr r2, [pc, #628] ; (800d140 ) 800ceca: 2178 movs r1, #120 ; 0x78 800cecc: 2093 movs r0, #147 ; 0x93 800cece: f7f8 f805 bl 8004edc BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE); 800ced2: f897 3306 ldrb.w r3, [r7, #774] ; 0x306 800ced6: b2db uxtb r3, r3 800ced8: 461a mov r2, r3 800ceda: 4b97 ldr r3, [pc, #604] ; (800d138 ) 800cedc: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cee0: 2303 movs r3, #3 800cee2: 2178 movs r1, #120 ; 0x78 800cee4: 209a movs r0, #154 ; 0x9a 800cee6: f7f7 fff9 bl 8004edc BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE); 800ceea: f897 3305 ldrb.w r3, [r7, #773] ; 0x305 800ceee: b2db uxtb r3, r3 800cef0: 461a mov r2, r3 800cef2: 4b91 ldr r3, [pc, #580] ; (800d138 ) 800cef4: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cef8: 2303 movs r3, #3 800cefa: 2178 movs r1, #120 ; 0x78 800cefc: 20a1 movs r0, #161 ; 0xa1 800cefe: f7f7 ffed bl 8004edc BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE); 800cf02: f897 3304 ldrb.w r3, [r7, #772] ; 0x304 800cf06: b2db uxtb r3, r3 800cf08: 461a mov r2, r3 800cf0a: 4b8b ldr r3, [pc, #556] ; (800d138 ) 800cf0c: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cf10: 2303 movs r3, #3 800cf12: 2178 movs r1, #120 ; 0x78 800cf14: 20a8 movs r0, #168 ; 0xa8 800cf16: f7f7 ffe1 bl 8004edc BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE); 800cf1a: f897 3303 ldrb.w r3, [r7, #771] ; 0x303 800cf1e: b2db uxtb r3, r3 800cf20: 461a mov r2, r3 800cf22: 4b85 ldr r3, [pc, #532] ; (800d138 ) 800cf24: f853 2022 ldr.w r2, [r3, r2, lsl #2] 800cf28: 2303 movs r3, #3 800cf2a: 2178 movs r1, #120 ; 0x78 800cf2c: 20af movs r0, #175 ; 0xaf 800cf2e: f7f7 ffd5 bl 8004edc break; 800cf32: f000 bd13 b.w 800d95c if(menupos == Kikdt_1) 800cf36: bf00 nop 800cf38: f000 bd10 b.w 800d95c if(menupos == Kikdt_2) 800cf3c: bf00 nop 800cf3e: f000 bd0d b.w 800d95c if(menupos == Kikdt_3) 800cf42: bf00 nop break; 800cf44: f000 bd0a b.w 800d95c case MAIN: BSP_LCD_SetFont(&Font12); 800cf48: 487e ldr r0, [pc, #504] ; (800d144 ) 800cf4a: f7f7 ff3d bl 8004dc8 if(CNT_CHANNELS < 5) 800cf4e: 4b7e ldr r3, [pc, #504] ; (800d148 ) 800cf50: 681b ldr r3, [r3, #0] 800cf52: 2b04 cmp r3, #4 800cf54: f200 8504 bhi.w 800d960 { LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800cf58: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800cf5c: f04f 30ff mov.w r0, #4294967295 800cf60: f7f7 fef6 bl 8004d50 BSP_LCD_FillRect(0, 0, 158, 24); 800cf64: 2318 movs r3, #24 800cf66: 229e movs r2, #158 ; 0x9e 800cf68: 2100 movs r1, #0 800cf6a: 2000 movs r0, #0 800cf6c: f7f8 fab2 bl 80054d4 BSP_LCD_FillRect(0, 120, 158, 24); 800cf70: 2318 movs r3, #24 800cf72: 229e movs r2, #158 ; 0x9e 800cf74: 2178 movs r1, #120 ; 0x78 800cf76: 2000 movs r0, #0 800cf78: f7f8 faac bl 80054d4 BSP_LCD_FillRect(161, 0, 158, 24); 800cf7c: 2318 movs r3, #24 800cf7e: 229e movs r2, #158 ; 0x9e 800cf80: 2100 movs r1, #0 800cf82: 20a1 movs r0, #161 ; 0xa1 800cf84: f7f8 faa6 bl 80054d4 BSP_LCD_FillRect(161, 120, 158, 24); 800cf88: 2318 movs r3, #24 800cf8a: 229e movs r2, #158 ; 0x9e 800cf8c: 2178 movs r1, #120 ; 0x78 800cf8e: 20a1 movs r0, #161 ; 0xa1 800cf90: f7f8 faa0 bl 80054d4 BSP_LCD_DrawRect(0, 0, 318, 238); 800cf94: 23ee movs r3, #238 ; 0xee 800cf96: f44f 729f mov.w r2, #318 ; 0x13e 800cf9a: 2100 movs r1, #0 800cf9c: 2000 movs r0, #0 800cf9e: f7f8 f911 bl 80051c4 BSP_LCD_DrawVLine(159, 0, 239); 800cfa2: 22ef movs r2, #239 ; 0xef 800cfa4: 2100 movs r1, #0 800cfa6: 209f movs r0, #159 ; 0x9f 800cfa8: f7f8 f8aa bl 8005100 // 1-2 // if(pardata.LANG == RUS) 800cfac: 4b67 ldr r3, [pc, #412] ; (800d14c ) 800cfae: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800cfb2: b29b uxth r3, r3 800cfb4: 2b00 cmp r3, #0 800cfb6: f040 80bb bne.w 800d130 { for(i = 0; i < 2; i++) 800cfba: 2300 movs r3, #0 800cfbc: f8c7 3330 str.w r3, [r7, #816] ; 0x330 800cfc0: e045 b.n 800d04e { LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800cfc2: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800cfc6: 4862 ldr r0, [pc, #392] ; (800d150 ) 800cfc8: f7f7 fec2 bl 8004d50 BSP_LCD_DisplayStringAt(4, 27 + 120*i, "ВХОД:", LEFT_MODE); 800cfcc: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800cfd0: b29b uxth r3, r3 800cfd2: 461a mov r2, r3 800cfd4: 0112 lsls r2, r2, #4 800cfd6: 1ad3 subs r3, r2, r3 800cfd8: 00db lsls r3, r3, #3 800cfda: b29b uxth r3, r3 800cfdc: 331b adds r3, #27 800cfde: b299 uxth r1, r3 800cfe0: 2303 movs r3, #3 800cfe2: 4a5c ldr r2, [pc, #368] ; (800d154 ) 800cfe4: 2004 movs r0, #4 800cfe6: f7f7 ff79 bl 8004edc BSP_LCD_DisplayStringAt(3, 46+6 + 120*i, "ФВЧ:", LEFT_MODE); 800cfea: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800cfee: b29b uxth r3, r3 800cff0: 461a mov r2, r3 800cff2: 0112 lsls r2, r2, #4 800cff4: 1ad3 subs r3, r2, r3 800cff6: 00db lsls r3, r3, #3 800cff8: b29b uxth r3, r3 800cffa: 3334 adds r3, #52 ; 0x34 800cffc: b299 uxth r1, r3 800cffe: 2303 movs r3, #3 800d000: 4a55 ldr r2, [pc, #340] ; (800d158 ) 800d002: 2003 movs r0, #3 800d004: f7f7 ff6a bl 8004edc BSP_LCD_DisplayStringAt(3, 65+6 + 120*i, "ФНЧ:", LEFT_MODE); 800d008: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d00c: b29b uxth r3, r3 800d00e: 461a mov r2, r3 800d010: 0112 lsls r2, r2, #4 800d012: 1ad3 subs r3, r2, r3 800d014: 00db lsls r3, r3, #3 800d016: b29b uxth r3, r3 800d018: 3347 adds r3, #71 ; 0x47 800d01a: b299 uxth r1, r3 800d01c: 2303 movs r3, #3 800d01e: 4a4f ldr r2, [pc, #316] ; (800d15c ) 800d020: 2003 movs r0, #3 800d022: f7f7 ff5b bl 8004edc BSP_LCD_DisplayStringAt(4, 84+6 + 120*i, "ВЫХОД:", LEFT_MODE); 800d026: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d02a: b29b uxth r3, r3 800d02c: 461a mov r2, r3 800d02e: 0112 lsls r2, r2, #4 800d030: 1ad3 subs r3, r2, r3 800d032: 00db lsls r3, r3, #3 800d034: b29b uxth r3, r3 800d036: 335a adds r3, #90 ; 0x5a 800d038: b299 uxth r1, r3 800d03a: 2303 movs r3, #3 800d03c: 4a48 ldr r2, [pc, #288] ; (800d160 ) 800d03e: 2004 movs r0, #4 800d040: f7f7 ff4c bl 8004edc for(i = 0; i < 2; i++) 800d044: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d048: 3301 adds r3, #1 800d04a: f8c7 3330 str.w r3, [r7, #816] ; 0x330 800d04e: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d052: 2b01 cmp r3, #1 800d054: d9b5 bls.n 800cfc2 } // 3-4 // for(i = 0; i < 2; i++) 800d056: 2300 movs r3, #0 800d058: f8c7 3330 str.w r3, [r7, #816] ; 0x330 800d05c: e045 b.n 800d0ea { LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800d05e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d062: 483b ldr r0, [pc, #236] ; (800d150 ) 800d064: f7f7 fe74 bl 8004d50 BSP_LCD_DisplayStringAt(164, 27 + 120*i, "ВХОД:", LEFT_MODE); 800d068: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d06c: b29b uxth r3, r3 800d06e: 461a mov r2, r3 800d070: 0112 lsls r2, r2, #4 800d072: 1ad3 subs r3, r2, r3 800d074: 00db lsls r3, r3, #3 800d076: b29b uxth r3, r3 800d078: 331b adds r3, #27 800d07a: b299 uxth r1, r3 800d07c: 2303 movs r3, #3 800d07e: 4a35 ldr r2, [pc, #212] ; (800d154 ) 800d080: 20a4 movs r0, #164 ; 0xa4 800d082: f7f7 ff2b bl 8004edc BSP_LCD_DisplayStringAt(163, 46+6 + 120*i, "ФВЧ:", LEFT_MODE); 800d086: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d08a: b29b uxth r3, r3 800d08c: 461a mov r2, r3 800d08e: 0112 lsls r2, r2, #4 800d090: 1ad3 subs r3, r2, r3 800d092: 00db lsls r3, r3, #3 800d094: b29b uxth r3, r3 800d096: 3334 adds r3, #52 ; 0x34 800d098: b299 uxth r1, r3 800d09a: 2303 movs r3, #3 800d09c: 4a2e ldr r2, [pc, #184] ; (800d158 ) 800d09e: 20a3 movs r0, #163 ; 0xa3 800d0a0: f7f7 ff1c bl 8004edc BSP_LCD_DisplayStringAt(163, 65+6 + 120*i, "ФНЧ:", LEFT_MODE); 800d0a4: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d0a8: b29b uxth r3, r3 800d0aa: 461a mov r2, r3 800d0ac: 0112 lsls r2, r2, #4 800d0ae: 1ad3 subs r3, r2, r3 800d0b0: 00db lsls r3, r3, #3 800d0b2: b29b uxth r3, r3 800d0b4: 3347 adds r3, #71 ; 0x47 800d0b6: b299 uxth r1, r3 800d0b8: 2303 movs r3, #3 800d0ba: 4a28 ldr r2, [pc, #160] ; (800d15c ) 800d0bc: 20a3 movs r0, #163 ; 0xa3 800d0be: f7f7 ff0d bl 8004edc BSP_LCD_DisplayStringAt(164, 84+6 + 120*i, "ВЫХОД:", LEFT_MODE); 800d0c2: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d0c6: b29b uxth r3, r3 800d0c8: 461a mov r2, r3 800d0ca: 0112 lsls r2, r2, #4 800d0cc: 1ad3 subs r3, r2, r3 800d0ce: 00db lsls r3, r3, #3 800d0d0: b29b uxth r3, r3 800d0d2: 335a adds r3, #90 ; 0x5a 800d0d4: b299 uxth r1, r3 800d0d6: 2303 movs r3, #3 800d0d8: 4a21 ldr r2, [pc, #132] ; (800d160 ) 800d0da: 20a4 movs r0, #164 ; 0xa4 800d0dc: f7f7 fefe bl 8004edc for(i = 0; i < 2; i++) 800d0e0: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d0e4: 3301 adds r3, #1 800d0e6: f8c7 3330 str.w r3, [r7, #816] ; 0x330 800d0ea: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d0ee: 2b01 cmp r3, #1 800d0f0: d9b5 bls.n 800d05e } LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800d0f2: f04f 31ff mov.w r1, #4294967295 800d0f6: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800d0fa: f7f7 fe29 bl 8004d50 BSP_LCD_DisplayStringAt(79, 8, "КАНАЛ 1", CENTER_MODE); 800d0fe: 2301 movs r3, #1 800d100: 4a18 ldr r2, [pc, #96] ; (800d164 ) 800d102: 2108 movs r1, #8 800d104: 204f movs r0, #79 ; 0x4f 800d106: f7f7 fee9 bl 8004edc BSP_LCD_DisplayStringAt(79, 128, "КАНАЛ 2", CENTER_MODE); 800d10a: 2301 movs r3, #1 800d10c: 4a16 ldr r2, [pc, #88] ; (800d168 ) 800d10e: 2180 movs r1, #128 ; 0x80 800d110: 204f movs r0, #79 ; 0x4f 800d112: f7f7 fee3 bl 8004edc BSP_LCD_DisplayStringAt(239, 8, "КАНАЛ 3", CENTER_MODE); 800d116: 2301 movs r3, #1 800d118: 4a14 ldr r2, [pc, #80] ; (800d16c ) 800d11a: 2108 movs r1, #8 800d11c: 20ef movs r0, #239 ; 0xef 800d11e: f7f7 fedd bl 8004edc BSP_LCD_DisplayStringAt(239, 128, "КАНАЛ 4", CENTER_MODE); 800d122: 2301 movs r3, #1 800d124: 4a12 ldr r2, [pc, #72] ; (800d170 ) 800d126: 2180 movs r1, #128 ; 0x80 800d128: 20ef movs r0, #239 ; 0xef 800d12a: f7f7 fed7 bl 8004edc 800d12e: e0d7 b.n 800d2e0 } else { for(i = 0; i < 2; i++) 800d130: 2300 movs r3, #0 800d132: f8c7 3330 str.w r3, [r7, #816] ; 0x330 800d136: e063 b.n 800d200 800d138: 2002096c .word 0x2002096c 800d13c: 2006ba78 .word 0x2006ba78 800d140: 08018150 .word 0x08018150 800d144: 20020000 .word 0x20020000 800d148: 2006ba6c .word 0x2006ba6c 800d14c: 2006bca8 .word 0x2006bca8 800d150: ffd3d3d3 .word 0xffd3d3d3 800d154: 08018154 .word 0x08018154 800d158: 0801815c .word 0x0801815c 800d15c: 08018164 .word 0x08018164 800d160: 0801816c .word 0x0801816c 800d164: 08018174 .word 0x08018174 800d168: 0801817c .word 0x0801817c 800d16c: 08018184 .word 0x08018184 800d170: 0801818c .word 0x0801818c { LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800d174: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d178: 48c6 ldr r0, [pc, #792] ; (800d494 ) 800d17a: f7f7 fde9 bl 8004d50 BSP_LCD_DisplayStringAt(4, 27 + 120*i, "INPUT:", LEFT_MODE); 800d17e: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d182: b29b uxth r3, r3 800d184: 461a mov r2, r3 800d186: 0112 lsls r2, r2, #4 800d188: 1ad3 subs r3, r2, r3 800d18a: 00db lsls r3, r3, #3 800d18c: b29b uxth r3, r3 800d18e: 331b adds r3, #27 800d190: b299 uxth r1, r3 800d192: 2303 movs r3, #3 800d194: 4ac0 ldr r2, [pc, #768] ; (800d498 ) 800d196: 2004 movs r0, #4 800d198: f7f7 fea0 bl 8004edc BSP_LCD_DisplayStringAt(3, 46+6 + 120*i, "HPF:", LEFT_MODE); 800d19c: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d1a0: b29b uxth r3, r3 800d1a2: 461a mov r2, r3 800d1a4: 0112 lsls r2, r2, #4 800d1a6: 1ad3 subs r3, r2, r3 800d1a8: 00db lsls r3, r3, #3 800d1aa: b29b uxth r3, r3 800d1ac: 3334 adds r3, #52 ; 0x34 800d1ae: b299 uxth r1, r3 800d1b0: 2303 movs r3, #3 800d1b2: 4aba ldr r2, [pc, #744] ; (800d49c ) 800d1b4: 2003 movs r0, #3 800d1b6: f7f7 fe91 bl 8004edc BSP_LCD_DisplayStringAt(3, 65+6 + 120*i, "LPF:", LEFT_MODE); 800d1ba: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d1be: b29b uxth r3, r3 800d1c0: 461a mov r2, r3 800d1c2: 0112 lsls r2, r2, #4 800d1c4: 1ad3 subs r3, r2, r3 800d1c6: 00db lsls r3, r3, #3 800d1c8: b29b uxth r3, r3 800d1ca: 3347 adds r3, #71 ; 0x47 800d1cc: b299 uxth r1, r3 800d1ce: 2303 movs r3, #3 800d1d0: 4ab3 ldr r2, [pc, #716] ; (800d4a0 ) 800d1d2: 2003 movs r0, #3 800d1d4: f7f7 fe82 bl 8004edc BSP_LCD_DisplayStringAt(4, 84+6 + 120*i, "OUT:", LEFT_MODE); 800d1d8: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d1dc: b29b uxth r3, r3 800d1de: 461a mov r2, r3 800d1e0: 0112 lsls r2, r2, #4 800d1e2: 1ad3 subs r3, r2, r3 800d1e4: 00db lsls r3, r3, #3 800d1e6: b29b uxth r3, r3 800d1e8: 335a adds r3, #90 ; 0x5a 800d1ea: b299 uxth r1, r3 800d1ec: 2303 movs r3, #3 800d1ee: 4aad ldr r2, [pc, #692] ; (800d4a4 ) 800d1f0: 2004 movs r0, #4 800d1f2: f7f7 fe73 bl 8004edc for(i = 0; i < 2; i++) 800d1f6: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d1fa: 3301 adds r3, #1 800d1fc: f8c7 3330 str.w r3, [r7, #816] ; 0x330 800d200: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d204: 2b01 cmp r3, #1 800d206: d9b5 bls.n 800d174 } // 3-4 // for(i = 0; i < 2; i++) 800d208: 2300 movs r3, #0 800d20a: f8c7 3330 str.w r3, [r7, #816] ; 0x330 800d20e: e045 b.n 800d29c { LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800d210: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d214: 489f ldr r0, [pc, #636] ; (800d494 ) 800d216: f7f7 fd9b bl 8004d50 BSP_LCD_DisplayStringAt(164, 27 + 120*i, "INPUT:", LEFT_MODE); 800d21a: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d21e: b29b uxth r3, r3 800d220: 461a mov r2, r3 800d222: 0112 lsls r2, r2, #4 800d224: 1ad3 subs r3, r2, r3 800d226: 00db lsls r3, r3, #3 800d228: b29b uxth r3, r3 800d22a: 331b adds r3, #27 800d22c: b299 uxth r1, r3 800d22e: 2303 movs r3, #3 800d230: 4a99 ldr r2, [pc, #612] ; (800d498 ) 800d232: 20a4 movs r0, #164 ; 0xa4 800d234: f7f7 fe52 bl 8004edc BSP_LCD_DisplayStringAt(163, 46+6 + 120*i, "HPF:", LEFT_MODE); 800d238: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d23c: b29b uxth r3, r3 800d23e: 461a mov r2, r3 800d240: 0112 lsls r2, r2, #4 800d242: 1ad3 subs r3, r2, r3 800d244: 00db lsls r3, r3, #3 800d246: b29b uxth r3, r3 800d248: 3334 adds r3, #52 ; 0x34 800d24a: b299 uxth r1, r3 800d24c: 2303 movs r3, #3 800d24e: 4a93 ldr r2, [pc, #588] ; (800d49c ) 800d250: 20a3 movs r0, #163 ; 0xa3 800d252: f7f7 fe43 bl 8004edc BSP_LCD_DisplayStringAt(163, 65+6 + 120*i, "LPF:", LEFT_MODE); 800d256: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d25a: b29b uxth r3, r3 800d25c: 461a mov r2, r3 800d25e: 0112 lsls r2, r2, #4 800d260: 1ad3 subs r3, r2, r3 800d262: 00db lsls r3, r3, #3 800d264: b29b uxth r3, r3 800d266: 3347 adds r3, #71 ; 0x47 800d268: b299 uxth r1, r3 800d26a: 2303 movs r3, #3 800d26c: 4a8c ldr r2, [pc, #560] ; (800d4a0 ) 800d26e: 20a3 movs r0, #163 ; 0xa3 800d270: f7f7 fe34 bl 8004edc BSP_LCD_DisplayStringAt(164, 84+6 + 120*i, "OUT::", LEFT_MODE); 800d274: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d278: b29b uxth r3, r3 800d27a: 461a mov r2, r3 800d27c: 0112 lsls r2, r2, #4 800d27e: 1ad3 subs r3, r2, r3 800d280: 00db lsls r3, r3, #3 800d282: b29b uxth r3, r3 800d284: 335a adds r3, #90 ; 0x5a 800d286: b299 uxth r1, r3 800d288: 2303 movs r3, #3 800d28a: 4a87 ldr r2, [pc, #540] ; (800d4a8 ) 800d28c: 20a4 movs r0, #164 ; 0xa4 800d28e: f7f7 fe25 bl 8004edc for(i = 0; i < 2; i++) 800d292: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d296: 3301 adds r3, #1 800d298: f8c7 3330 str.w r3, [r7, #816] ; 0x330 800d29c: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d2a0: 2b01 cmp r3, #1 800d2a2: d9b5 bls.n 800d210 } LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800d2a4: f04f 31ff mov.w r1, #4294967295 800d2a8: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800d2ac: f7f7 fd50 bl 8004d50 BSP_LCD_DisplayStringAt(79, 8, "CHANNEL 1", CENTER_MODE); 800d2b0: 2301 movs r3, #1 800d2b2: 4a7e ldr r2, [pc, #504] ; (800d4ac ) 800d2b4: 2108 movs r1, #8 800d2b6: 204f movs r0, #79 ; 0x4f 800d2b8: f7f7 fe10 bl 8004edc BSP_LCD_DisplayStringAt(79, 128, "CHANNEL 2", CENTER_MODE); 800d2bc: 2301 movs r3, #1 800d2be: 4a7c ldr r2, [pc, #496] ; (800d4b0 ) 800d2c0: 2180 movs r1, #128 ; 0x80 800d2c2: 204f movs r0, #79 ; 0x4f 800d2c4: f7f7 fe0a bl 8004edc BSP_LCD_DisplayStringAt(239, 8, "CHANNEL 3", CENTER_MODE); 800d2c8: 2301 movs r3, #1 800d2ca: 4a7a ldr r2, [pc, #488] ; (800d4b4 ) 800d2cc: 2108 movs r1, #8 800d2ce: 20ef movs r0, #239 ; 0xef 800d2d0: f7f7 fe04 bl 8004edc BSP_LCD_DisplayStringAt(239, 128, "CHANNEL 4", CENTER_MODE); 800d2d4: 2301 movs r3, #1 800d2d6: 4a78 ldr r2, [pc, #480] ; (800d4b8 ) 800d2d8: 2180 movs r1, #128 ; 0x80 800d2da: 20ef movs r0, #239 ; 0xef 800d2dc: f7f7 fdfe bl 8004edc } for(i = 0; i < 4; i++) 800d2e0: 2300 movs r3, #0 800d2e2: f8c7 3330 str.w r3, [r7, #816] ; 0x330 800d2e6: e018 b.n 800d31a { if(MASK_CHANNELS & (1 << i)) { 800d2e8: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d2ec: 2201 movs r2, #1 800d2ee: fa02 f303 lsl.w r3, r2, r3 800d2f2: 461a mov r2, r3 800d2f4: 4b71 ldr r3, [pc, #452] ; (800d4bc ) 800d2f6: 681b ldr r3, [r3, #0] 800d2f8: 4013 ands r3, r2 800d2fa: 2b00 cmp r3, #0 800d2fc: d008 beq.n 800d310 DrawChannel_4(i, blk); 800d2fe: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d302: b2da uxtb r2, r3 800d304: 4b6e ldr r3, [pc, #440] ; (800d4c0 ) 800d306: 681b ldr r3, [r3, #0] 800d308: 4619 mov r1, r3 800d30a: 4610 mov r0, r2 800d30c: f000 fea4 bl 800e058 for(i = 0; i < 4; i++) 800d310: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d314: 3301 adds r3, #1 800d316: f8c7 3330 str.w r3, [r7, #816] ; 0x330 800d31a: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330 800d31e: 2b03 cmp r3, #3 800d320: d9e2 bls.n 800d2e8 } else { } break; 800d322: e31d b.n 800d960 case CALIBR_00: BSP_LCD_SetFont(&Font12); 800d324: 4867 ldr r0, [pc, #412] ; (800d4c4 ) 800d326: f7f7 fd4f bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d32a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d32e: f06f 00ff mvn.w r0, #255 ; 0xff 800d332: f7f7 fd0d bl 8004d50 BSP_LCD_DisplayStringAt(160, 24, "Выберите канал для калибровки:", CENTER_MODE); 800d336: 2301 movs r3, #1 800d338: 4a63 ldr r2, [pc, #396] ; (800d4c8 ) 800d33a: 2118 movs r1, #24 800d33c: 20a0 movs r0, #160 ; 0xa0 800d33e: f7f7 fdcd bl 8004edc if(menupos != Ch1) 800d342: 4b62 ldr r3, [pc, #392] ; (800d4cc ) 800d344: 781b ldrb r3, [r3, #0] 800d346: b2db uxtb r3, r3 800d348: 2b00 cmp r3, #0 800d34a: d006 beq.n 800d35a LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800d34c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d350: f04f 30ff mov.w r0, #4294967295 800d354: f7f7 fcfc bl 8004d50 800d358: e005 b.n 800d366 else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800d35a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d35e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800d362: f7f7 fcf5 bl 8004d50 BSP_LCD_DisplayStringAt(160, 48+64, "КАНАЛ 1", CENTER_MODE); 800d366: 2301 movs r3, #1 800d368: 4a59 ldr r2, [pc, #356] ; (800d4d0 ) 800d36a: 2170 movs r1, #112 ; 0x70 800d36c: 20a0 movs r0, #160 ; 0xa0 800d36e: f7f7 fdb5 bl 8004edc if(menupos != Ch2) 800d372: 4b56 ldr r3, [pc, #344] ; (800d4cc ) 800d374: 781b ldrb r3, [r3, #0] 800d376: b2db uxtb r3, r3 800d378: 2b01 cmp r3, #1 800d37a: d006 beq.n 800d38a LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800d37c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d380: f04f 30ff mov.w r0, #4294967295 800d384: f7f7 fce4 bl 8004d50 800d388: e005 b.n 800d396 else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800d38a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d38e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800d392: f7f7 fcdd bl 8004d50 BSP_LCD_DisplayStringAt(160, 72+64, "КАНАЛ 2", CENTER_MODE); 800d396: 2301 movs r3, #1 800d398: 4a4e ldr r2, [pc, #312] ; (800d4d4 ) 800d39a: 2188 movs r1, #136 ; 0x88 800d39c: 20a0 movs r0, #160 ; 0xa0 800d39e: f7f7 fd9d bl 8004edc if(menupos != Ch3) 800d3a2: 4b4a ldr r3, [pc, #296] ; (800d4cc ) 800d3a4: 781b ldrb r3, [r3, #0] 800d3a6: b2db uxtb r3, r3 800d3a8: 2b02 cmp r3, #2 800d3aa: d006 beq.n 800d3ba LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800d3ac: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d3b0: f04f 30ff mov.w r0, #4294967295 800d3b4: f7f7 fccc bl 8004d50 800d3b8: e005 b.n 800d3c6 else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800d3ba: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d3be: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800d3c2: f7f7 fcc5 bl 8004d50 BSP_LCD_DisplayStringAt(160, 96+64, "КАНАЛ 3", CENTER_MODE); 800d3c6: 2301 movs r3, #1 800d3c8: 4a43 ldr r2, [pc, #268] ; (800d4d8 ) 800d3ca: 21a0 movs r1, #160 ; 0xa0 800d3cc: 20a0 movs r0, #160 ; 0xa0 800d3ce: f7f7 fd85 bl 8004edc if(menupos != Ch4) 800d3d2: 4b3e ldr r3, [pc, #248] ; (800d4cc ) 800d3d4: 781b ldrb r3, [r3, #0] 800d3d6: b2db uxtb r3, r3 800d3d8: 2b03 cmp r3, #3 800d3da: d006 beq.n 800d3ea LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800d3dc: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d3e0: f04f 30ff mov.w r0, #4294967295 800d3e4: f7f7 fcb4 bl 8004d50 800d3e8: e005 b.n 800d3f6 else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800d3ea: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d3ee: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800d3f2: f7f7 fcad bl 8004d50 BSP_LCD_DisplayStringAt(160, 120+64, "КАНАЛ 4", CENTER_MODE); 800d3f6: 2301 movs r3, #1 800d3f8: 4a38 ldr r2, [pc, #224] ; (800d4dc ) 800d3fa: 21b8 movs r1, #184 ; 0xb8 800d3fc: 20a0 movs r0, #160 ; 0xa0 800d3fe: f7f7 fd6d bl 8004edc if(menupos != Ch5) 800d402: 4b32 ldr r3, [pc, #200] ; (800d4cc ) 800d404: 781b ldrb r3, [r3, #0] 800d406: b2db uxtb r3, r3 800d408: 2b04 cmp r3, #4 800d40a: d006 beq.n 800d41a LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800d40c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d410: f04f 30ff mov.w r0, #4294967295 800d414: f7f7 fc9c bl 8004d50 800d418: e005 b.n 800d426 else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800d41a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d41e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800d422: f7f7 fc95 bl 8004d50 BSP_LCD_DisplayStringAt(160, 144+64, "ВЫХОД", CENTER_MODE); 800d426: 2301 movs r3, #1 800d428: 4a2d ldr r2, [pc, #180] ; (800d4e0 ) 800d42a: 21d0 movs r1, #208 ; 0xd0 800d42c: 20a0 movs r0, #160 ; 0xa0 800d42e: f7f7 fd55 bl 8004edc break; 800d432: e296 b.n 800d962 case CALIBR_0: // [CHARGE x1] + KU_1 BSP_LCD_SetFont(&Font12); 800d434: 4823 ldr r0, [pc, #140] ; (800d4c4 ) 800d436: f7f7 fcc7 bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d43a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d43e: f06f 00ff mvn.w r0, #255 ; 0xff 800d442: f7f7 fc85 bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx0.1]:", CENTER_MODE); 800d446: 2301 movs r3, #1 800d448: 4a26 ldr r2, [pc, #152] ; (800d4e4 ) 800d44a: 210a movs r1, #10 800d44c: 20a0 movs r0, #160 ; 0xa0 800d44e: f7f7 fd45 bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 5000мВ", CENTER_MODE); 800d452: 2301 movs r3, #1 800d454: 4a24 ldr r2, [pc, #144] ; (800d4e8 ) 800d456: 2118 movs r1, #24 800d458: 20a0 movs r0, #160 ; 0xa0 800d45a: f7f7 fd3f bl 8004edc DrawButtons(); 800d45e: f001 fe8b bl 800f178 break; 800d462: e27e b.n 800d962 case CALIBR_1: // CHARGE x1 + [KU_2] BSP_LCD_SetFont(&Font12); 800d464: 4817 ldr r0, [pc, #92] ; (800d4c4 ) 800d466: f7f7 fcaf bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d46a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d46e: f06f 00ff mvn.w r0, #255 ; 0xff 800d472: f7f7 fc6d bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx0.2]:", CENTER_MODE); 800d476: 2301 movs r3, #1 800d478: 4a1c ldr r2, [pc, #112] ; (800d4ec ) 800d47a: 210a movs r1, #10 800d47c: 20a0 movs r0, #160 ; 0xa0 800d47e: f7f7 fd2d bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 5000мВ", CENTER_MODE); 800d482: 2301 movs r3, #1 800d484: 4a18 ldr r2, [pc, #96] ; (800d4e8 ) 800d486: 2118 movs r1, #24 800d488: 20a0 movs r0, #160 ; 0xa0 800d48a: f7f7 fd27 bl 8004edc DrawButtons(); 800d48e: f001 fe73 bl 800f178 break; 800d492: e266 b.n 800d962 800d494: ffd3d3d3 .word 0xffd3d3d3 800d498: 08018194 .word 0x08018194 800d49c: 0801819c .word 0x0801819c 800d4a0: 080181a4 .word 0x080181a4 800d4a4: 080181ac .word 0x080181ac 800d4a8: 080181b4 .word 0x080181b4 800d4ac: 080181bc .word 0x080181bc 800d4b0: 080181c8 .word 0x080181c8 800d4b4: 080181d4 .word 0x080181d4 800d4b8: 080181e0 .word 0x080181e0 800d4bc: 2002002c .word 0x2002002c 800d4c0: 2006ba78 .word 0x2006ba78 800d4c4: 20020000 .word 0x20020000 800d4c8: 080181ec .word 0x080181ec 800d4cc: 20020010 .word 0x20020010 800d4d0: 08018174 .word 0x08018174 800d4d4: 0801817c .word 0x0801817c 800d4d8: 08018184 .word 0x08018184 800d4dc: 0801818c .word 0x0801818c 800d4e0: 0801820c .word 0x0801820c 800d4e4: 08018214 .word 0x08018214 800d4e8: 0801822c .word 0x0801822c 800d4ec: 08018244 .word 0x08018244 case CALIBR_2: // CHARGE x1 + [KU_5] BSP_LCD_SetFont(&Font12); 800d4f0: 48d7 ldr r0, [pc, #860] ; (800d850 ) 800d4f2: f7f7 fc69 bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d4f6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d4fa: f06f 00ff mvn.w r0, #255 ; 0xff 800d4fe: f7f7 fc27 bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx0.5]:", CENTER_MODE); 800d502: 2301 movs r3, #1 800d504: 4ad3 ldr r2, [pc, #844] ; (800d854 ) 800d506: 210a movs r1, #10 800d508: 20a0 movs r0, #160 ; 0xa0 800d50a: f7f7 fce7 bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 5000мВ", CENTER_MODE); 800d50e: 2301 movs r3, #1 800d510: 4ad1 ldr r2, [pc, #836] ; (800d858 ) 800d512: 2118 movs r1, #24 800d514: 20a0 movs r0, #160 ; 0xa0 800d516: f7f7 fce1 bl 8004edc DrawButtons(); 800d51a: f001 fe2d bl 800f178 break; 800d51e: e220 b.n 800d962 case CALIBR_3: // CHARGE x1 + [KU_10] BSP_LCD_SetFont(&Font12); 800d520: 48cb ldr r0, [pc, #812] ; (800d850 ) 800d522: f7f7 fc51 bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d526: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d52a: f06f 00ff mvn.w r0, #255 ; 0xff 800d52e: f7f7 fc0f bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx1]:", CENTER_MODE); 800d532: 2301 movs r3, #1 800d534: 4ac9 ldr r2, [pc, #804] ; (800d85c ) 800d536: 210a movs r1, #10 800d538: 20a0 movs r0, #160 ; 0xa0 800d53a: f7f7 fccf bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 5000мВ", CENTER_MODE); 800d53e: 2301 movs r3, #1 800d540: 4ac5 ldr r2, [pc, #788] ; (800d858 ) 800d542: 2118 movs r1, #24 800d544: 20a0 movs r0, #160 ; 0xa0 800d546: f7f7 fcc9 bl 8004edc DrawButtons(); 800d54a: f001 fe15 bl 800f178 break; 800d54e: e208 b.n 800d962 case CALIBR_4: // CHARGE x1 + [KU_x10] BSP_LCD_SetFont(&Font12); 800d550: 48bf ldr r0, [pc, #764] ; (800d850 ) 800d552: f7f7 fc39 bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d556: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d55a: f06f 00ff mvn.w r0, #255 ; 0xff 800d55e: f7f7 fbf7 bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx2]:", CENTER_MODE); 800d562: 2301 movs r3, #1 800d564: 4abe ldr r2, [pc, #760] ; (800d860 ) 800d566: 210a movs r1, #10 800d568: 20a0 movs r0, #160 ; 0xa0 800d56a: f7f7 fcb7 bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 2500мВ", CENTER_MODE); 800d56e: 2301 movs r3, #1 800d570: 4abc ldr r2, [pc, #752] ; (800d864 ) 800d572: 2118 movs r1, #24 800d574: 20a0 movs r0, #160 ; 0xa0 800d576: f7f7 fcb1 bl 8004edc DrawButtons(); 800d57a: f001 fdfd bl 800f178 break; 800d57e: e1f0 b.n 800d962 case CALIBR_5: // [CHARGE x10] + KU_1 BSP_LCD_SetFont(&Font12); 800d580: 48b3 ldr r0, [pc, #716] ; (800d850 ) 800d582: f7f7 fc21 bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d586: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d58a: f06f 00ff mvn.w r0, #255 ; 0xff 800d58e: f7f7 fbdf bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx5]:", CENTER_MODE); 800d592: 2301 movs r3, #1 800d594: 4ab4 ldr r2, [pc, #720] ; (800d868 ) 800d596: 210a movs r1, #10 800d598: 20a0 movs r0, #160 ; 0xa0 800d59a: f7f7 fc9f bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 1000мВ", CENTER_MODE); 800d59e: 2301 movs r3, #1 800d5a0: 4ab2 ldr r2, [pc, #712] ; (800d86c ) 800d5a2: 2118 movs r1, #24 800d5a4: 20a0 movs r0, #160 ; 0xa0 800d5a6: f7f7 fc99 bl 8004edc DrawButtons(); 800d5aa: f001 fde5 bl 800f178 break; 800d5ae: e1d8 b.n 800d962 case CALIBR_6: // [CHARGE x0.1] + KU_1 BSP_LCD_SetFont(&Font12); 800d5b0: 48a7 ldr r0, [pc, #668] ; (800d850 ) 800d5b2: f7f7 fc09 bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d5b6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d5ba: f06f 00ff mvn.w r0, #255 ; 0xff 800d5be: f7f7 fbc7 bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx10]:", CENTER_MODE); 800d5c2: 2301 movs r3, #1 800d5c4: 4aaa ldr r2, [pc, #680] ; (800d870 ) 800d5c6: 210a movs r1, #10 800d5c8: 20a0 movs r0, #160 ; 0xa0 800d5ca: f7f7 fc87 bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 500мВ", CENTER_MODE); 800d5ce: 2301 movs r3, #1 800d5d0: 4aa8 ldr r2, [pc, #672] ; (800d874 ) 800d5d2: 2118 movs r1, #24 800d5d4: 20a0 movs r0, #160 ; 0xa0 800d5d6: f7f7 fc81 bl 8004edc DrawButtons(); 800d5da: f001 fdcd bl 800f178 break; 800d5de: e1c0 b.n 800d962 case CALIBR_7: // [ICP x1] + KU_1 BSP_LCD_SetFont(&Font12); 800d5e0: 489b ldr r0, [pc, #620] ; (800d850 ) 800d5e2: f7f7 fbf1 bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d5e6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d5ea: f06f 00ff mvn.w r0, #255 ; 0xff 800d5ee: f7f7 fbaf bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx20]:", CENTER_MODE); 800d5f2: 2301 movs r3, #1 800d5f4: 4aa0 ldr r2, [pc, #640] ; (800d878 ) 800d5f6: 210a movs r1, #10 800d5f8: 20a0 movs r0, #160 ; 0xa0 800d5fa: f7f7 fc6f bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 250мВ", CENTER_MODE); 800d5fe: 2301 movs r3, #1 800d600: 4a9e ldr r2, [pc, #632] ; (800d87c ) 800d602: 2118 movs r1, #24 800d604: 20a0 movs r0, #160 ; 0xa0 800d606: f7f7 fc69 bl 8004edc DrawButtons(); 800d60a: f001 fdb5 bl 800f178 break; 800d60e: e1a8 b.n 800d962 case CALIBR_8: // [ICP x10] + KU_1 BSP_LCD_SetFont(&Font12); 800d610: 488f ldr r0, [pc, #572] ; (800d850 ) 800d612: f7f7 fbd9 bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d616: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d61a: f06f 00ff mvn.w r0, #255 ; 0xff 800d61e: f7f7 fb97 bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx50]:", CENTER_MODE); 800d622: 2301 movs r3, #1 800d624: 4a96 ldr r2, [pc, #600] ; (800d880 ) 800d626: 210a movs r1, #10 800d628: 20a0 movs r0, #160 ; 0xa0 800d62a: f7f7 fc57 bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 100мВ", CENTER_MODE); 800d62e: 2301 movs r3, #1 800d630: 4a94 ldr r2, [pc, #592] ; (800d884 ) 800d632: 2118 movs r1, #24 800d634: 20a0 movs r0, #160 ; 0xa0 800d636: f7f7 fc51 bl 8004edc DrawButtons(); 800d63a: f001 fd9d bl 800f178 break; 800d63e: e190 b.n 800d962 case CALIBR_9: // [CHARGE x10 + KU_2 + KU_x10] BSP_LCD_SetFont(&Font12); 800d640: 4883 ldr r0, [pc, #524] ; (800d850 ) 800d642: f7f7 fbc1 bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d646: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d64a: f06f 00ff mvn.w r0, #255 ; 0xff 800d64e: f7f7 fb7f bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx100]:", CENTER_MODE); 800d652: 2301 movs r3, #1 800d654: 4a8c ldr r2, [pc, #560] ; (800d888 ) 800d656: 210a movs r1, #10 800d658: 20a0 movs r0, #160 ; 0xa0 800d65a: f7f7 fc3f bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 50мВ", CENTER_MODE); 800d65e: 2301 movs r3, #1 800d660: 4a8a ldr r2, [pc, #552] ; (800d88c ) 800d662: 2118 movs r1, #24 800d664: 20a0 movs r0, #160 ; 0xa0 800d666: f7f7 fc39 bl 8004edc DrawButtons(); 800d66a: f001 fd85 bl 800f178 break; 800d66e: e178 b.n 800d962 case CALIBR_10: // [CHARGE x10 + KU_5 + KU_x10] BSP_LCD_SetFont(&Font12); 800d670: 4877 ldr r0, [pc, #476] ; (800d850 ) 800d672: f7f7 fba9 bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d676: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d67a: f06f 00ff mvn.w r0, #255 ; 0xff 800d67e: f7f7 fb67 bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx200]:", CENTER_MODE); 800d682: 2301 movs r3, #1 800d684: 4a82 ldr r2, [pc, #520] ; (800d890 ) 800d686: 210a movs r1, #10 800d688: 20a0 movs r0, #160 ; 0xa0 800d68a: f7f7 fc27 bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 25мВ", CENTER_MODE); 800d68e: 2301 movs r3, #1 800d690: 4a80 ldr r2, [pc, #512] ; (800d894 ) 800d692: 2118 movs r1, #24 800d694: 20a0 movs r0, #160 ; 0xa0 800d696: f7f7 fc21 bl 8004edc DrawButtons(); 800d69a: f001 fd6d bl 800f178 break; 800d69e: e160 b.n 800d962 case CALIBR_11: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d6a0: 486b ldr r0, [pc, #428] ; (800d850 ) 800d6a2: f7f7 fb91 bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d6a6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d6aa: f06f 00ff mvn.w r0, #255 ; 0xff 800d6ae: f7f7 fb4f bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx500]:", CENTER_MODE); 800d6b2: 2301 movs r3, #1 800d6b4: 4a78 ldr r2, [pc, #480] ; (800d898 ) 800d6b6: 210a movs r1, #10 800d6b8: 20a0 movs r0, #160 ; 0xa0 800d6ba: f7f7 fc0f bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 10мВ", CENTER_MODE); 800d6be: 2301 movs r3, #1 800d6c0: 4a76 ldr r2, [pc, #472] ; (800d89c ) 800d6c2: 2118 movs r1, #24 800d6c4: 20a0 movs r0, #160 ; 0xa0 800d6c6: f7f7 fc09 bl 8004edc DrawButtons(); 800d6ca: f001 fd55 bl 800f178 break; 800d6ce: e148 b.n 800d962 case CALIBR_12: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d6d0: 485f ldr r0, [pc, #380] ; (800d850 ) 800d6d2: f7f7 fb79 bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d6d6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d6da: f06f 00ff mvn.w r0, #255 ; 0xff 800d6de: f7f7 fb37 bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx1000]:", CENTER_MODE); 800d6e2: 2301 movs r3, #1 800d6e4: 4a6e ldr r2, [pc, #440] ; (800d8a0 ) 800d6e6: 210a movs r1, #10 800d6e8: 20a0 movs r0, #160 ; 0xa0 800d6ea: f7f7 fbf7 bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 5мВ", CENTER_MODE); 800d6ee: 2301 movs r3, #1 800d6f0: 4a6c ldr r2, [pc, #432] ; (800d8a4 ) 800d6f2: 2118 movs r1, #24 800d6f4: 20a0 movs r0, #160 ; 0xa0 800d6f6: f7f7 fbf1 bl 8004edc DrawButtons(); 800d6fa: f001 fd3d bl 800f178 break; 800d6fe: e130 b.n 800d962 case CALIBR_13: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d700: 4853 ldr r0, [pc, #332] ; (800d850 ) 800d702: f7f7 fb61 bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d706: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d70a: f06f 00ff mvn.w r0, #255 ; 0xff 800d70e: f7f7 fb1f bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx1]:", CENTER_MODE); 800d712: 2301 movs r3, #1 800d714: 4a64 ldr r2, [pc, #400] ; (800d8a8 ) 800d716: 210a movs r1, #10 800d718: 20a0 movs r0, #160 ; 0xa0 800d71a: f7f7 fbdf bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 5000мВ", CENTER_MODE); 800d71e: 2301 movs r3, #1 800d720: 4a4d ldr r2, [pc, #308] ; (800d858 ) 800d722: 2118 movs r1, #24 800d724: 20a0 movs r0, #160 ; 0xa0 800d726: f7f7 fbd9 bl 8004edc DrawButtons(); 800d72a: f001 fd25 bl 800f178 break; 800d72e: e118 b.n 800d962 case CALIBR_14: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d730: 4847 ldr r0, [pc, #284] ; (800d850 ) 800d732: f7f7 fb49 bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d736: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d73a: f06f 00ff mvn.w r0, #255 ; 0xff 800d73e: f7f7 fb07 bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx2]:", CENTER_MODE); 800d742: 2301 movs r3, #1 800d744: 4a59 ldr r2, [pc, #356] ; (800d8ac ) 800d746: 210a movs r1, #10 800d748: 20a0 movs r0, #160 ; 0xa0 800d74a: f7f7 fbc7 bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 2500мВ", CENTER_MODE); 800d74e: 2301 movs r3, #1 800d750: 4a44 ldr r2, [pc, #272] ; (800d864 ) 800d752: 2118 movs r1, #24 800d754: 20a0 movs r0, #160 ; 0xa0 800d756: f7f7 fbc1 bl 8004edc DrawButtons(); 800d75a: f001 fd0d bl 800f178 break; 800d75e: e100 b.n 800d962 case CALIBR_15: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d760: 483b ldr r0, [pc, #236] ; (800d850 ) 800d762: f7f7 fb31 bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d766: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d76a: f06f 00ff mvn.w r0, #255 ; 0xff 800d76e: f7f7 faef bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx5]:", CENTER_MODE); 800d772: 2301 movs r3, #1 800d774: 4a4e ldr r2, [pc, #312] ; (800d8b0 ) 800d776: 210a movs r1, #10 800d778: 20a0 movs r0, #160 ; 0xa0 800d77a: f7f7 fbaf bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 1000мВ", CENTER_MODE); 800d77e: 2301 movs r3, #1 800d780: 4a3a ldr r2, [pc, #232] ; (800d86c ) 800d782: 2118 movs r1, #24 800d784: 20a0 movs r0, #160 ; 0xa0 800d786: f7f7 fba9 bl 8004edc DrawButtons(); 800d78a: f001 fcf5 bl 800f178 break; 800d78e: e0e8 b.n 800d962 case CALIBR_16: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d790: 482f ldr r0, [pc, #188] ; (800d850 ) 800d792: f7f7 fb19 bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d796: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d79a: f06f 00ff mvn.w r0, #255 ; 0xff 800d79e: f7f7 fad7 bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx10]:", CENTER_MODE); 800d7a2: 2301 movs r3, #1 800d7a4: 4a43 ldr r2, [pc, #268] ; (800d8b4 ) 800d7a6: 210a movs r1, #10 800d7a8: 20a0 movs r0, #160 ; 0xa0 800d7aa: f7f7 fb97 bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 500мВ", CENTER_MODE); 800d7ae: 2301 movs r3, #1 800d7b0: 4a30 ldr r2, [pc, #192] ; (800d874 ) 800d7b2: 2118 movs r1, #24 800d7b4: 20a0 movs r0, #160 ; 0xa0 800d7b6: f7f7 fb91 bl 8004edc DrawButtons(); 800d7ba: f001 fcdd bl 800f178 break; 800d7be: e0d0 b.n 800d962 case CALIBR_17: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d7c0: 4823 ldr r0, [pc, #140] ; (800d850 ) 800d7c2: f7f7 fb01 bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d7c6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d7ca: f06f 00ff mvn.w r0, #255 ; 0xff 800d7ce: f7f7 fabf bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx20]:", CENTER_MODE); 800d7d2: 2301 movs r3, #1 800d7d4: 4a38 ldr r2, [pc, #224] ; (800d8b8 ) 800d7d6: 210a movs r1, #10 800d7d8: 20a0 movs r0, #160 ; 0xa0 800d7da: f7f7 fb7f bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 250мВ", CENTER_MODE); 800d7de: 2301 movs r3, #1 800d7e0: 4a26 ldr r2, [pc, #152] ; (800d87c ) 800d7e2: 2118 movs r1, #24 800d7e4: 20a0 movs r0, #160 ; 0xa0 800d7e6: f7f7 fb79 bl 8004edc DrawButtons(); 800d7ea: f001 fcc5 bl 800f178 break; 800d7ee: e0b8 b.n 800d962 case CALIBR_18: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d7f0: 4817 ldr r0, [pc, #92] ; (800d850 ) 800d7f2: f7f7 fae9 bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d7f6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d7fa: f06f 00ff mvn.w r0, #255 ; 0xff 800d7fe: f7f7 faa7 bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx50]:", CENTER_MODE); 800d802: 2301 movs r3, #1 800d804: 4a2d ldr r2, [pc, #180] ; (800d8bc ) 800d806: 210a movs r1, #10 800d808: 20a0 movs r0, #160 ; 0xa0 800d80a: f7f7 fb67 bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 100мВ", CENTER_MODE); 800d80e: 2301 movs r3, #1 800d810: 4a1c ldr r2, [pc, #112] ; (800d884 ) 800d812: 2118 movs r1, #24 800d814: 20a0 movs r0, #160 ; 0xa0 800d816: f7f7 fb61 bl 8004edc DrawButtons(); 800d81a: f001 fcad bl 800f178 break; 800d81e: e0a0 b.n 800d962 case CALIBR_19: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d820: 480b ldr r0, [pc, #44] ; (800d850 ) 800d822: f7f7 fad1 bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d826: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d82a: f06f 00ff mvn.w r0, #255 ; 0xff 800d82e: f7f7 fa8f bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx100]:", CENTER_MODE); 800d832: 2301 movs r3, #1 800d834: 4a22 ldr r2, [pc, #136] ; (800d8c0 ) 800d836: 210a movs r1, #10 800d838: 20a0 movs r0, #160 ; 0xa0 800d83a: f7f7 fb4f bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 50мВ", CENTER_MODE); 800d83e: 2301 movs r3, #1 800d840: 4a12 ldr r2, [pc, #72] ; (800d88c ) 800d842: 2118 movs r1, #24 800d844: 20a0 movs r0, #160 ; 0xa0 800d846: f7f7 fb49 bl 8004edc DrawButtons(); 800d84a: f001 fc95 bl 800f178 break; 800d84e: e088 b.n 800d962 800d850: 20020000 .word 0x20020000 800d854: 0801825c .word 0x0801825c 800d858: 0801822c .word 0x0801822c 800d85c: 08018274 .word 0x08018274 800d860: 0801828c .word 0x0801828c 800d864: 080182a4 .word 0x080182a4 800d868: 080182bc .word 0x080182bc 800d86c: 080182d4 .word 0x080182d4 800d870: 080182ec .word 0x080182ec 800d874: 08018304 .word 0x08018304 800d878: 0801831c .word 0x0801831c 800d87c: 08018334 .word 0x08018334 800d880: 0801834c .word 0x0801834c 800d884: 08018364 .word 0x08018364 800d888: 0801837c .word 0x0801837c 800d88c: 08018394 .word 0x08018394 800d890: 080183ac .word 0x080183ac 800d894: 080183c4 .word 0x080183c4 800d898: 080183dc .word 0x080183dc 800d89c: 080183f4 .word 0x080183f4 800d8a0: 0801840c .word 0x0801840c 800d8a4: 08018424 .word 0x08018424 800d8a8: 0801843c .word 0x0801843c 800d8ac: 08018450 .word 0x08018450 800d8b0: 08018464 .word 0x08018464 800d8b4: 08018478 .word 0x08018478 800d8b8: 08018490 .word 0x08018490 800d8bc: 080184a8 .word 0x080184a8 800d8c0: 080184c0 .word 0x080184c0 case CALIBR_20: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d8c4: 482e ldr r0, [pc, #184] ; (800d980 ) 800d8c6: f7f7 fa7f bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d8ca: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d8ce: f06f 00ff mvn.w r0, #255 ; 0xff 800d8d2: f7f7 fa3d bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx200]:", CENTER_MODE); 800d8d6: 2301 movs r3, #1 800d8d8: 4a2a ldr r2, [pc, #168] ; (800d984 ) 800d8da: 210a movs r1, #10 800d8dc: 20a0 movs r0, #160 ; 0xa0 800d8de: f7f7 fafd bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 25мВ", CENTER_MODE); 800d8e2: 2301 movs r3, #1 800d8e4: 4a28 ldr r2, [pc, #160] ; (800d988 ) 800d8e6: 2118 movs r1, #24 800d8e8: 20a0 movs r0, #160 ; 0xa0 800d8ea: f7f7 faf7 bl 8004edc DrawButtons(); 800d8ee: f001 fc43 bl 800f178 break; 800d8f2: e036 b.n 800d962 case CALIBR_21: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d8f4: 4822 ldr r0, [pc, #136] ; (800d980 ) 800d8f6: f7f7 fa67 bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d8fa: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d8fe: f06f 00ff mvn.w r0, #255 ; 0xff 800d902: f7f7 fa25 bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx500]:", CENTER_MODE); 800d906: 2301 movs r3, #1 800d908: 4a20 ldr r2, [pc, #128] ; (800d98c ) 800d90a: 210a movs r1, #10 800d90c: 20a0 movs r0, #160 ; 0xa0 800d90e: f7f7 fae5 bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 10мВ", CENTER_MODE); 800d912: 2301 movs r3, #1 800d914: 4a1e ldr r2, [pc, #120] ; (800d990 ) 800d916: 2118 movs r1, #24 800d918: 20a0 movs r0, #160 ; 0xa0 800d91a: f7f7 fadf bl 8004edc DrawButtons(); 800d91e: f001 fc2b bl 800f178 break; 800d922: e01e b.n 800d962 case CALIBR_22: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 800d924: 4816 ldr r0, [pc, #88] ; (800d980 ) 800d926: f7f7 fa4f bl 8004dc8 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800d92a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d92e: f06f 00ff mvn.w r0, #255 ; 0xff 800d932: f7f7 fa0d bl 8004d50 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx1000]:", CENTER_MODE); 800d936: 2301 movs r3, #1 800d938: 4a16 ldr r2, [pc, #88] ; (800d994 ) 800d93a: 210a movs r1, #10 800d93c: 20a0 movs r0, #160 ; 0xa0 800d93e: f7f7 facd bl 8004edc BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 5мВ", CENTER_MODE); 800d942: 2301 movs r3, #1 800d944: 4a14 ldr r2, [pc, #80] ; (800d998 ) 800d946: 2118 movs r1, #24 800d948: 20a0 movs r0, #160 ; 0xa0 800d94a: f7f7 fac7 bl 8004edc DrawButtons(); 800d94e: f001 fc13 bl 800f178 break; 800d952: e006 b.n 800d962 break; 800d954: bf00 nop 800d956: e004 b.n 800d962 break; 800d958: bf00 nop 800d95a: e002 b.n 800d962 break; 800d95c: bf00 nop 800d95e: e000 b.n 800d962 break; 800d960: bf00 nop Redrawing = false; 800d962: 4b0e ldr r3, [pc, #56] ; (800d99c ) 800d964: 2200 movs r2, #0 800d966: 701a strb r2, [r3, #0] RefreshScreen = true; 800d968: 4b0d ldr r3, [pc, #52] ; (800d9a0 ) 800d96a: 2201 movs r2, #1 800d96c: 701a strb r2, [r3, #0] HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0); 800d96e: 2100 movs r1, #0 800d970: 480c ldr r0, [pc, #48] ; (800d9a4 ) 800d972: f005 fb27 bl 8012fc4 //************************************************************************************************************** //************************************************************************************************************** } 800d976: bf00 nop 800d978: f507 7752 add.w r7, r7, #840 ; 0x348 800d97c: 46bd mov sp, r7 800d97e: bd80 pop {r7, pc} 800d980: 20020000 .word 0x20020000 800d984: 080184d8 .word 0x080184d8 800d988: 080183c4 .word 0x080183c4 800d98c: 080184f0 .word 0x080184f0 800d990: 080183f4 .word 0x080183f4 800d994: 08018508 .word 0x08018508 800d998: 08018424 .word 0x08018424 800d99c: 2006ba74 .word 0x2006ba74 800d9a0: 2006ba60 .word 0x2006ba60 800d9a4: 2006c174 .word 0x2006c174 0800d9a8 : void DrawMySpinner(uint16_t x, uint16_t y) // { 800d9a8: b580 push {r7, lr} 800d9aa: b082 sub sp, #8 800d9ac: af00 add r7, sp, #0 800d9ae: 4603 mov r3, r0 800d9b0: 460a mov r2, r1 800d9b2: 80fb strh r3, [r7, #6] 800d9b4: 4613 mov r3, r2 800d9b6: 80bb strh r3, [r7, #4] static uint32_t rotate = 0; switch(rotate) 800d9b8: 4b98 ldr r3, [pc, #608] ; (800dc1c ) 800d9ba: 681b ldr r3, [r3, #0] 800d9bc: 2b07 cmp r3, #7 800d9be: f200 8311 bhi.w 800dfe4 800d9c2: a201 add r2, pc, #4 ; (adr r2, 800d9c8 ) 800d9c4: f852 f023 ldr.w pc, [r2, r3, lsl #2] 800d9c8: 0800d9e9 .word 0x0800d9e9 800d9cc: 0800daa5 .word 0x0800daa5 800d9d0: 0800db61 .word 0x0800db61 800d9d4: 0800dc2d .word 0x0800dc2d 800d9d8: 0800dce9 .word 0x0800dce9 800d9dc: 0800dda5 .word 0x0800dda5 800d9e0: 0800de61 .word 0x0800de61 800d9e4: 0800df29 .word 0x0800df29 { case 0: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800d9e8: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800d9ec: f04f 30ff mov.w r0, #4294967295 800d9f0: f7f7 f9ae bl 8004d50 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 800d9f4: 88bb ldrh r3, [r7, #4] 800d9f6: 330a adds r3, #10 800d9f8: b299 uxth r1, r3 800d9fa: 88fb ldrh r3, [r7, #6] 800d9fc: 2203 movs r2, #3 800d9fe: 4618 mov r0, r3 800da00: f7f7 fde2 bl 80055c8 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800da04: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800da08: 4885 ldr r0, [pc, #532] ; (800dc20 ) 800da0a: f7f7 f9a1 bl 8004d50 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 800da0e: 88fb ldrh r3, [r7, #6] 800da10: 3307 adds r3, #7 800da12: b298 uxth r0, r3 800da14: 88bb ldrh r3, [r7, #4] 800da16: 3307 adds r3, #7 800da18: b29b uxth r3, r3 800da1a: 2203 movs r2, #3 800da1c: 4619 mov r1, r3 800da1e: f7f7 fdd3 bl 80055c8 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800da22: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800da26: 487f ldr r0, [pc, #508] ; (800dc24 ) 800da28: f7f7 f992 bl 8004d50 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 800da2c: 88fb ldrh r3, [r7, #6] 800da2e: 330a adds r3, #10 800da30: b29b uxth r3, r3 800da32: 88b9 ldrh r1, [r7, #4] 800da34: 2203 movs r2, #3 800da36: 4618 mov r0, r3 800da38: f7f7 fdc6 bl 80055c8 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 800da3c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800da40: 4879 ldr r0, [pc, #484] ; (800dc28 ) 800da42: f7f7 f985 bl 8004d50 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 800da46: 88fb ldrh r3, [r7, #6] 800da48: 3b07 subs r3, #7 800da4a: b298 uxth r0, r3 800da4c: 88bb ldrh r3, [r7, #4] 800da4e: 3307 adds r3, #7 800da50: b29b uxth r3, r3 800da52: 2203 movs r2, #3 800da54: 4619 mov r1, r3 800da56: f7f7 fdb7 bl 80055c8 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 800da5a: 88fb ldrh r3, [r7, #6] 800da5c: 3b0a subs r3, #10 800da5e: b29b uxth r3, r3 800da60: 88b9 ldrh r1, [r7, #4] 800da62: 2203 movs r2, #3 800da64: 4618 mov r0, r3 800da66: f7f7 fdaf bl 80055c8 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 800da6a: 88fb ldrh r3, [r7, #6] 800da6c: 3b07 subs r3, #7 800da6e: b298 uxth r0, r3 800da70: 88bb ldrh r3, [r7, #4] 800da72: 3b07 subs r3, #7 800da74: b29b uxth r3, r3 800da76: 2203 movs r2, #3 800da78: 4619 mov r1, r3 800da7a: f7f7 fda5 bl 80055c8 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 800da7e: 88bb ldrh r3, [r7, #4] 800da80: 3b0a subs r3, #10 800da82: b299 uxth r1, r3 800da84: 88fb ldrh r3, [r7, #6] 800da86: 2203 movs r2, #3 800da88: 4618 mov r0, r3 800da8a: f7f7 fd9d bl 80055c8 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 800da8e: 88fb ldrh r3, [r7, #6] 800da90: 3307 adds r3, #7 800da92: b298 uxth r0, r3 800da94: 88bb ldrh r3, [r7, #4] 800da96: 3b07 subs r3, #7 800da98: b29b uxth r3, r3 800da9a: 2203 movs r2, #3 800da9c: 4619 mov r1, r3 800da9e: f7f7 fd93 bl 80055c8 break; 800daa2: e29f b.n 800dfe4 case 1: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800daa4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800daa8: f04f 30ff mov.w r0, #4294967295 800daac: f7f7 f950 bl 8004d50 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 800dab0: 88fb ldrh r3, [r7, #6] 800dab2: 3b07 subs r3, #7 800dab4: b298 uxth r0, r3 800dab6: 88bb ldrh r3, [r7, #4] 800dab8: 3307 adds r3, #7 800daba: b29b uxth r3, r3 800dabc: 2203 movs r2, #3 800dabe: 4619 mov r1, r3 800dac0: f7f7 fd82 bl 80055c8 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800dac4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dac8: 4855 ldr r0, [pc, #340] ; (800dc20 ) 800daca: f7f7 f941 bl 8004d50 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 800dace: 88bb ldrh r3, [r7, #4] 800dad0: 330a adds r3, #10 800dad2: b299 uxth r1, r3 800dad4: 88fb ldrh r3, [r7, #6] 800dad6: 2203 movs r2, #3 800dad8: 4618 mov r0, r3 800dada: f7f7 fd75 bl 80055c8 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800dade: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dae2: 4850 ldr r0, [pc, #320] ; (800dc24 ) 800dae4: f7f7 f934 bl 8004d50 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 800dae8: 88fb ldrh r3, [r7, #6] 800daea: 3307 adds r3, #7 800daec: b298 uxth r0, r3 800daee: 88bb ldrh r3, [r7, #4] 800daf0: 3307 adds r3, #7 800daf2: b29b uxth r3, r3 800daf4: 2203 movs r2, #3 800daf6: 4619 mov r1, r3 800daf8: f7f7 fd66 bl 80055c8 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 800dafc: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800db00: 4849 ldr r0, [pc, #292] ; (800dc28 ) 800db02: f7f7 f925 bl 8004d50 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 800db06: 88fb ldrh r3, [r7, #6] 800db08: 3b0a subs r3, #10 800db0a: b29b uxth r3, r3 800db0c: 88b9 ldrh r1, [r7, #4] 800db0e: 2203 movs r2, #3 800db10: 4618 mov r0, r3 800db12: f7f7 fd59 bl 80055c8 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 800db16: 88fb ldrh r3, [r7, #6] 800db18: 3b07 subs r3, #7 800db1a: b298 uxth r0, r3 800db1c: 88bb ldrh r3, [r7, #4] 800db1e: 3b07 subs r3, #7 800db20: b29b uxth r3, r3 800db22: 2203 movs r2, #3 800db24: 4619 mov r1, r3 800db26: f7f7 fd4f bl 80055c8 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 800db2a: 88bb ldrh r3, [r7, #4] 800db2c: 3b0a subs r3, #10 800db2e: b299 uxth r1, r3 800db30: 88fb ldrh r3, [r7, #6] 800db32: 2203 movs r2, #3 800db34: 4618 mov r0, r3 800db36: f7f7 fd47 bl 80055c8 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 800db3a: 88fb ldrh r3, [r7, #6] 800db3c: 3307 adds r3, #7 800db3e: b298 uxth r0, r3 800db40: 88bb ldrh r3, [r7, #4] 800db42: 3b07 subs r3, #7 800db44: b29b uxth r3, r3 800db46: 2203 movs r2, #3 800db48: 4619 mov r1, r3 800db4a: f7f7 fd3d bl 80055c8 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 800db4e: 88fb ldrh r3, [r7, #6] 800db50: 330a adds r3, #10 800db52: b29b uxth r3, r3 800db54: 88b9 ldrh r1, [r7, #4] 800db56: 2203 movs r2, #3 800db58: 4618 mov r0, r3 800db5a: f7f7 fd35 bl 80055c8 break; 800db5e: e241 b.n 800dfe4 case 2: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800db60: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800db64: f04f 30ff mov.w r0, #4294967295 800db68: f7f7 f8f2 bl 8004d50 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 800db6c: 88fb ldrh r3, [r7, #6] 800db6e: 3b0a subs r3, #10 800db70: b29b uxth r3, r3 800db72: 88b9 ldrh r1, [r7, #4] 800db74: 2203 movs r2, #3 800db76: 4618 mov r0, r3 800db78: f7f7 fd26 bl 80055c8 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800db7c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800db80: 4827 ldr r0, [pc, #156] ; (800dc20 ) 800db82: f7f7 f8e5 bl 8004d50 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 800db86: 88fb ldrh r3, [r7, #6] 800db88: 3b07 subs r3, #7 800db8a: b298 uxth r0, r3 800db8c: 88bb ldrh r3, [r7, #4] 800db8e: 3307 adds r3, #7 800db90: b29b uxth r3, r3 800db92: 2203 movs r2, #3 800db94: 4619 mov r1, r3 800db96: f7f7 fd17 bl 80055c8 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800db9a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800db9e: 4821 ldr r0, [pc, #132] ; (800dc24 ) 800dba0: f7f7 f8d6 bl 8004d50 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 800dba4: 88bb ldrh r3, [r7, #4] 800dba6: 330a adds r3, #10 800dba8: b299 uxth r1, r3 800dbaa: 88fb ldrh r3, [r7, #6] 800dbac: 2203 movs r2, #3 800dbae: 4618 mov r0, r3 800dbb0: f7f7 fd0a bl 80055c8 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 800dbb4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dbb8: 481b ldr r0, [pc, #108] ; (800dc28 ) 800dbba: f7f7 f8c9 bl 8004d50 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 800dbbe: 88fb ldrh r3, [r7, #6] 800dbc0: 3b07 subs r3, #7 800dbc2: b298 uxth r0, r3 800dbc4: 88bb ldrh r3, [r7, #4] 800dbc6: 3b07 subs r3, #7 800dbc8: b29b uxth r3, r3 800dbca: 2203 movs r2, #3 800dbcc: 4619 mov r1, r3 800dbce: f7f7 fcfb bl 80055c8 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 800dbd2: 88bb ldrh r3, [r7, #4] 800dbd4: 3b0a subs r3, #10 800dbd6: b299 uxth r1, r3 800dbd8: 88fb ldrh r3, [r7, #6] 800dbda: 2203 movs r2, #3 800dbdc: 4618 mov r0, r3 800dbde: f7f7 fcf3 bl 80055c8 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 800dbe2: 88fb ldrh r3, [r7, #6] 800dbe4: 3307 adds r3, #7 800dbe6: b298 uxth r0, r3 800dbe8: 88bb ldrh r3, [r7, #4] 800dbea: 3b07 subs r3, #7 800dbec: b29b uxth r3, r3 800dbee: 2203 movs r2, #3 800dbf0: 4619 mov r1, r3 800dbf2: f7f7 fce9 bl 80055c8 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 800dbf6: 88fb ldrh r3, [r7, #6] 800dbf8: 330a adds r3, #10 800dbfa: b29b uxth r3, r3 800dbfc: 88b9 ldrh r1, [r7, #4] 800dbfe: 2203 movs r2, #3 800dc00: 4618 mov r0, r3 800dc02: f7f7 fce1 bl 80055c8 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 800dc06: 88fb ldrh r3, [r7, #6] 800dc08: 3307 adds r3, #7 800dc0a: b298 uxth r0, r3 800dc0c: 88bb ldrh r3, [r7, #4] 800dc0e: 3307 adds r3, #7 800dc10: b29b uxth r3, r3 800dc12: 2203 movs r2, #3 800dc14: 4619 mov r1, r3 800dc16: f7f7 fcd7 bl 80055c8 break; 800dc1a: e1e3 b.n 800dfe4 800dc1c: 2006ba80 .word 0x2006ba80 800dc20: ffd3d3d3 .word 0xffd3d3d3 800dc24: ff808080 .word 0xff808080 800dc28: ff404040 .word 0xff404040 case 3: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800dc2c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dc30: f04f 30ff mov.w r0, #4294967295 800dc34: f7f7 f88c bl 8004d50 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 800dc38: 88fb ldrh r3, [r7, #6] 800dc3a: 3b07 subs r3, #7 800dc3c: b298 uxth r0, r3 800dc3e: 88bb ldrh r3, [r7, #4] 800dc40: 3b07 subs r3, #7 800dc42: b29b uxth r3, r3 800dc44: 2203 movs r2, #3 800dc46: 4619 mov r1, r3 800dc48: f7f7 fcbe bl 80055c8 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800dc4c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dc50: 48b2 ldr r0, [pc, #712] ; (800df1c ) 800dc52: f7f7 f87d bl 8004d50 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 800dc56: 88fb ldrh r3, [r7, #6] 800dc58: 3b0a subs r3, #10 800dc5a: b29b uxth r3, r3 800dc5c: 88b9 ldrh r1, [r7, #4] 800dc5e: 2203 movs r2, #3 800dc60: 4618 mov r0, r3 800dc62: f7f7 fcb1 bl 80055c8 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800dc66: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dc6a: 48ad ldr r0, [pc, #692] ; (800df20 ) 800dc6c: f7f7 f870 bl 8004d50 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 800dc70: 88fb ldrh r3, [r7, #6] 800dc72: 3b07 subs r3, #7 800dc74: b298 uxth r0, r3 800dc76: 88bb ldrh r3, [r7, #4] 800dc78: 3307 adds r3, #7 800dc7a: b29b uxth r3, r3 800dc7c: 2203 movs r2, #3 800dc7e: 4619 mov r1, r3 800dc80: f7f7 fca2 bl 80055c8 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 800dc84: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dc88: 48a6 ldr r0, [pc, #664] ; (800df24 ) 800dc8a: f7f7 f861 bl 8004d50 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 800dc8e: 88bb ldrh r3, [r7, #4] 800dc90: 3b0a subs r3, #10 800dc92: b299 uxth r1, r3 800dc94: 88fb ldrh r3, [r7, #6] 800dc96: 2203 movs r2, #3 800dc98: 4618 mov r0, r3 800dc9a: f7f7 fc95 bl 80055c8 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 800dc9e: 88fb ldrh r3, [r7, #6] 800dca0: 3307 adds r3, #7 800dca2: b298 uxth r0, r3 800dca4: 88bb ldrh r3, [r7, #4] 800dca6: 3b07 subs r3, #7 800dca8: b29b uxth r3, r3 800dcaa: 2203 movs r2, #3 800dcac: 4619 mov r1, r3 800dcae: f7f7 fc8b bl 80055c8 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 800dcb2: 88fb ldrh r3, [r7, #6] 800dcb4: 330a adds r3, #10 800dcb6: b29b uxth r3, r3 800dcb8: 88b9 ldrh r1, [r7, #4] 800dcba: 2203 movs r2, #3 800dcbc: 4618 mov r0, r3 800dcbe: f7f7 fc83 bl 80055c8 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 800dcc2: 88fb ldrh r3, [r7, #6] 800dcc4: 3307 adds r3, #7 800dcc6: b298 uxth r0, r3 800dcc8: 88bb ldrh r3, [r7, #4] 800dcca: 3307 adds r3, #7 800dccc: b29b uxth r3, r3 800dcce: 2203 movs r2, #3 800dcd0: 4619 mov r1, r3 800dcd2: f7f7 fc79 bl 80055c8 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 800dcd6: 88bb ldrh r3, [r7, #4] 800dcd8: 330a adds r3, #10 800dcda: b299 uxth r1, r3 800dcdc: 88fb ldrh r3, [r7, #6] 800dcde: 2203 movs r2, #3 800dce0: 4618 mov r0, r3 800dce2: f7f7 fc71 bl 80055c8 break; 800dce6: e17d b.n 800dfe4 case 4: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800dce8: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dcec: f04f 30ff mov.w r0, #4294967295 800dcf0: f7f7 f82e bl 8004d50 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 800dcf4: 88bb ldrh r3, [r7, #4] 800dcf6: 3b0a subs r3, #10 800dcf8: b299 uxth r1, r3 800dcfa: 88fb ldrh r3, [r7, #6] 800dcfc: 2203 movs r2, #3 800dcfe: 4618 mov r0, r3 800dd00: f7f7 fc62 bl 80055c8 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800dd04: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dd08: 4884 ldr r0, [pc, #528] ; (800df1c ) 800dd0a: f7f7 f821 bl 8004d50 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 800dd0e: 88fb ldrh r3, [r7, #6] 800dd10: 3b07 subs r3, #7 800dd12: b298 uxth r0, r3 800dd14: 88bb ldrh r3, [r7, #4] 800dd16: 3b07 subs r3, #7 800dd18: b29b uxth r3, r3 800dd1a: 2203 movs r2, #3 800dd1c: 4619 mov r1, r3 800dd1e: f7f7 fc53 bl 80055c8 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800dd22: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dd26: 487e ldr r0, [pc, #504] ; (800df20 ) 800dd28: f7f7 f812 bl 8004d50 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 800dd2c: 88fb ldrh r3, [r7, #6] 800dd2e: 3b0a subs r3, #10 800dd30: b29b uxth r3, r3 800dd32: 88b9 ldrh r1, [r7, #4] 800dd34: 2203 movs r2, #3 800dd36: 4618 mov r0, r3 800dd38: f7f7 fc46 bl 80055c8 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 800dd3c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dd40: 4878 ldr r0, [pc, #480] ; (800df24 ) 800dd42: f7f7 f805 bl 8004d50 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 800dd46: 88fb ldrh r3, [r7, #6] 800dd48: 3307 adds r3, #7 800dd4a: b298 uxth r0, r3 800dd4c: 88bb ldrh r3, [r7, #4] 800dd4e: 3b07 subs r3, #7 800dd50: b29b uxth r3, r3 800dd52: 2203 movs r2, #3 800dd54: 4619 mov r1, r3 800dd56: f7f7 fc37 bl 80055c8 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 800dd5a: 88fb ldrh r3, [r7, #6] 800dd5c: 330a adds r3, #10 800dd5e: b29b uxth r3, r3 800dd60: 88b9 ldrh r1, [r7, #4] 800dd62: 2203 movs r2, #3 800dd64: 4618 mov r0, r3 800dd66: f7f7 fc2f bl 80055c8 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 800dd6a: 88fb ldrh r3, [r7, #6] 800dd6c: 3307 adds r3, #7 800dd6e: b298 uxth r0, r3 800dd70: 88bb ldrh r3, [r7, #4] 800dd72: 3307 adds r3, #7 800dd74: b29b uxth r3, r3 800dd76: 2203 movs r2, #3 800dd78: 4619 mov r1, r3 800dd7a: f7f7 fc25 bl 80055c8 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 800dd7e: 88bb ldrh r3, [r7, #4] 800dd80: 330a adds r3, #10 800dd82: b299 uxth r1, r3 800dd84: 88fb ldrh r3, [r7, #6] 800dd86: 2203 movs r2, #3 800dd88: 4618 mov r0, r3 800dd8a: f7f7 fc1d bl 80055c8 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 800dd8e: 88fb ldrh r3, [r7, #6] 800dd90: 3b07 subs r3, #7 800dd92: b298 uxth r0, r3 800dd94: 88bb ldrh r3, [r7, #4] 800dd96: 3307 adds r3, #7 800dd98: b29b uxth r3, r3 800dd9a: 2203 movs r2, #3 800dd9c: 4619 mov r1, r3 800dd9e: f7f7 fc13 bl 80055c8 break; 800dda2: e11f b.n 800dfe4 case 5: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800dda4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dda8: f04f 30ff mov.w r0, #4294967295 800ddac: f7f6 ffd0 bl 8004d50 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 800ddb0: 88fb ldrh r3, [r7, #6] 800ddb2: 3307 adds r3, #7 800ddb4: b298 uxth r0, r3 800ddb6: 88bb ldrh r3, [r7, #4] 800ddb8: 3b07 subs r3, #7 800ddba: b29b uxth r3, r3 800ddbc: 2203 movs r2, #3 800ddbe: 4619 mov r1, r3 800ddc0: f7f7 fc02 bl 80055c8 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800ddc4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800ddc8: 4854 ldr r0, [pc, #336] ; (800df1c ) 800ddca: f7f6 ffc1 bl 8004d50 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 800ddce: 88bb ldrh r3, [r7, #4] 800ddd0: 3b0a subs r3, #10 800ddd2: b299 uxth r1, r3 800ddd4: 88fb ldrh r3, [r7, #6] 800ddd6: 2203 movs r2, #3 800ddd8: 4618 mov r0, r3 800ddda: f7f7 fbf5 bl 80055c8 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800ddde: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800dde2: 484f ldr r0, [pc, #316] ; (800df20 ) 800dde4: f7f6 ffb4 bl 8004d50 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 800dde8: 88fb ldrh r3, [r7, #6] 800ddea: 3b07 subs r3, #7 800ddec: b298 uxth r0, r3 800ddee: 88bb ldrh r3, [r7, #4] 800ddf0: 3b07 subs r3, #7 800ddf2: b29b uxth r3, r3 800ddf4: 2203 movs r2, #3 800ddf6: 4619 mov r1, r3 800ddf8: f7f7 fbe6 bl 80055c8 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 800ddfc: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800de00: 4848 ldr r0, [pc, #288] ; (800df24 ) 800de02: f7f6 ffa5 bl 8004d50 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 800de06: 88fb ldrh r3, [r7, #6] 800de08: 330a adds r3, #10 800de0a: b29b uxth r3, r3 800de0c: 88b9 ldrh r1, [r7, #4] 800de0e: 2203 movs r2, #3 800de10: 4618 mov r0, r3 800de12: f7f7 fbd9 bl 80055c8 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 800de16: 88fb ldrh r3, [r7, #6] 800de18: 3307 adds r3, #7 800de1a: b298 uxth r0, r3 800de1c: 88bb ldrh r3, [r7, #4] 800de1e: 3307 adds r3, #7 800de20: b29b uxth r3, r3 800de22: 2203 movs r2, #3 800de24: 4619 mov r1, r3 800de26: f7f7 fbcf bl 80055c8 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 800de2a: 88bb ldrh r3, [r7, #4] 800de2c: 330a adds r3, #10 800de2e: b299 uxth r1, r3 800de30: 88fb ldrh r3, [r7, #6] 800de32: 2203 movs r2, #3 800de34: 4618 mov r0, r3 800de36: f7f7 fbc7 bl 80055c8 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 800de3a: 88fb ldrh r3, [r7, #6] 800de3c: 3b07 subs r3, #7 800de3e: b298 uxth r0, r3 800de40: 88bb ldrh r3, [r7, #4] 800de42: 3307 adds r3, #7 800de44: b29b uxth r3, r3 800de46: 2203 movs r2, #3 800de48: 4619 mov r1, r3 800de4a: f7f7 fbbd bl 80055c8 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 800de4e: 88fb ldrh r3, [r7, #6] 800de50: 3b0a subs r3, #10 800de52: b29b uxth r3, r3 800de54: 88b9 ldrh r1, [r7, #4] 800de56: 2203 movs r2, #3 800de58: 4618 mov r0, r3 800de5a: f7f7 fbb5 bl 80055c8 break; 800de5e: e0c1 b.n 800dfe4 case 6: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800de60: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800de64: f04f 30ff mov.w r0, #4294967295 800de68: f7f6 ff72 bl 8004d50 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 800de6c: 88fb ldrh r3, [r7, #6] 800de6e: 330a adds r3, #10 800de70: b29b uxth r3, r3 800de72: 88b9 ldrh r1, [r7, #4] 800de74: 2203 movs r2, #3 800de76: 4618 mov r0, r3 800de78: f7f7 fba6 bl 80055c8 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800de7c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800de80: 4826 ldr r0, [pc, #152] ; (800df1c ) 800de82: f7f6 ff65 bl 8004d50 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 800de86: 88fb ldrh r3, [r7, #6] 800de88: 3307 adds r3, #7 800de8a: b298 uxth r0, r3 800de8c: 88bb ldrh r3, [r7, #4] 800de8e: 3b07 subs r3, #7 800de90: b29b uxth r3, r3 800de92: 2203 movs r2, #3 800de94: 4619 mov r1, r3 800de96: f7f7 fb97 bl 80055c8 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800de9a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800de9e: 4820 ldr r0, [pc, #128] ; (800df20 ) 800dea0: f7f6 ff56 bl 8004d50 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 800dea4: 88bb ldrh r3, [r7, #4] 800dea6: 3b0a subs r3, #10 800dea8: b299 uxth r1, r3 800deaa: 88fb ldrh r3, [r7, #6] 800deac: 2203 movs r2, #3 800deae: 4618 mov r0, r3 800deb0: f7f7 fb8a bl 80055c8 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 800deb4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800deb8: 481a ldr r0, [pc, #104] ; (800df24 ) 800deba: f7f6 ff49 bl 8004d50 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 800debe: 88fb ldrh r3, [r7, #6] 800dec0: 3307 adds r3, #7 800dec2: b298 uxth r0, r3 800dec4: 88bb ldrh r3, [r7, #4] 800dec6: 3307 adds r3, #7 800dec8: b29b uxth r3, r3 800deca: 2203 movs r2, #3 800decc: 4619 mov r1, r3 800dece: f7f7 fb7b bl 80055c8 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 800ded2: 88bb ldrh r3, [r7, #4] 800ded4: 330a adds r3, #10 800ded6: b299 uxth r1, r3 800ded8: 88fb ldrh r3, [r7, #6] 800deda: 2203 movs r2, #3 800dedc: 4618 mov r0, r3 800dede: f7f7 fb73 bl 80055c8 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 800dee2: 88fb ldrh r3, [r7, #6] 800dee4: 3b07 subs r3, #7 800dee6: b298 uxth r0, r3 800dee8: 88bb ldrh r3, [r7, #4] 800deea: 3307 adds r3, #7 800deec: b29b uxth r3, r3 800deee: 2203 movs r2, #3 800def0: 4619 mov r1, r3 800def2: f7f7 fb69 bl 80055c8 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 800def6: 88fb ldrh r3, [r7, #6] 800def8: 3b0a subs r3, #10 800defa: b29b uxth r3, r3 800defc: 88b9 ldrh r1, [r7, #4] 800defe: 2203 movs r2, #3 800df00: 4618 mov r0, r3 800df02: f7f7 fb61 bl 80055c8 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 800df06: 88fb ldrh r3, [r7, #6] 800df08: 3b07 subs r3, #7 800df0a: b298 uxth r0, r3 800df0c: 88bb ldrh r3, [r7, #4] 800df0e: 3b07 subs r3, #7 800df10: b29b uxth r3, r3 800df12: 2203 movs r2, #3 800df14: 4619 mov r1, r3 800df16: f7f7 fb57 bl 80055c8 break; 800df1a: e063 b.n 800dfe4 800df1c: ffd3d3d3 .word 0xffd3d3d3 800df20: ff808080 .word 0xff808080 800df24: ff404040 .word 0xff404040 case 7: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800df28: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800df2c: f04f 30ff mov.w r0, #4294967295 800df30: f7f6 ff0e bl 8004d50 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 800df34: 88fb ldrh r3, [r7, #6] 800df36: 3307 adds r3, #7 800df38: b298 uxth r0, r3 800df3a: 88bb ldrh r3, [r7, #4] 800df3c: 3307 adds r3, #7 800df3e: b29b uxth r3, r3 800df40: 2203 movs r2, #3 800df42: 4619 mov r1, r3 800df44: f7f7 fb40 bl 80055c8 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 800df48: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800df4c: 482d ldr r0, [pc, #180] ; (800e004 ) 800df4e: f7f6 feff bl 8004d50 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 800df52: 88fb ldrh r3, [r7, #6] 800df54: 330a adds r3, #10 800df56: b29b uxth r3, r3 800df58: 88b9 ldrh r1, [r7, #4] 800df5a: 2203 movs r2, #3 800df5c: 4618 mov r0, r3 800df5e: f7f7 fb33 bl 80055c8 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800df62: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800df66: 4828 ldr r0, [pc, #160] ; (800e008 ) 800df68: f7f6 fef2 bl 8004d50 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 800df6c: 88fb ldrh r3, [r7, #6] 800df6e: 3307 adds r3, #7 800df70: b298 uxth r0, r3 800df72: 88bb ldrh r3, [r7, #4] 800df74: 3b07 subs r3, #7 800df76: b29b uxth r3, r3 800df78: 2203 movs r2, #3 800df7a: 4619 mov r1, r3 800df7c: f7f7 fb24 bl 80055c8 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 800df80: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800df84: 4821 ldr r0, [pc, #132] ; (800e00c ) 800df86: f7f6 fee3 bl 8004d50 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 800df8a: 88bb ldrh r3, [r7, #4] 800df8c: 330a adds r3, #10 800df8e: b299 uxth r1, r3 800df90: 88fb ldrh r3, [r7, #6] 800df92: 2203 movs r2, #3 800df94: 4618 mov r0, r3 800df96: f7f7 fb17 bl 80055c8 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 800df9a: 88fb ldrh r3, [r7, #6] 800df9c: 3b07 subs r3, #7 800df9e: b298 uxth r0, r3 800dfa0: 88bb ldrh r3, [r7, #4] 800dfa2: 3307 adds r3, #7 800dfa4: b29b uxth r3, r3 800dfa6: 2203 movs r2, #3 800dfa8: 4619 mov r1, r3 800dfaa: f7f7 fb0d bl 80055c8 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 800dfae: 88fb ldrh r3, [r7, #6] 800dfb0: 3b0a subs r3, #10 800dfb2: b29b uxth r3, r3 800dfb4: 88b9 ldrh r1, [r7, #4] 800dfb6: 2203 movs r2, #3 800dfb8: 4618 mov r0, r3 800dfba: f7f7 fb05 bl 80055c8 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 800dfbe: 88fb ldrh r3, [r7, #6] 800dfc0: 3b07 subs r3, #7 800dfc2: b298 uxth r0, r3 800dfc4: 88bb ldrh r3, [r7, #4] 800dfc6: 3b07 subs r3, #7 800dfc8: b29b uxth r3, r3 800dfca: 2203 movs r2, #3 800dfcc: 4619 mov r1, r3 800dfce: f7f7 fafb bl 80055c8 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 800dfd2: 88bb ldrh r3, [r7, #4] 800dfd4: 3b0a subs r3, #10 800dfd6: b299 uxth r1, r3 800dfd8: 88fb ldrh r3, [r7, #6] 800dfda: 2203 movs r2, #3 800dfdc: 4618 mov r0, r3 800dfde: f7f7 faf3 bl 80055c8 break; 800dfe2: bf00 nop } rotate++; 800dfe4: 4b0a ldr r3, [pc, #40] ; (800e010 ) 800dfe6: 681b ldr r3, [r3, #0] 800dfe8: 3301 adds r3, #1 800dfea: 4a09 ldr r2, [pc, #36] ; (800e010 ) 800dfec: 6013 str r3, [r2, #0] if(rotate >= 8) 800dfee: 4b08 ldr r3, [pc, #32] ; (800e010 ) 800dff0: 681b ldr r3, [r3, #0] 800dff2: 2b07 cmp r3, #7 800dff4: d902 bls.n 800dffc rotate = 0; 800dff6: 4b06 ldr r3, [pc, #24] ; (800e010 ) 800dff8: 2200 movs r2, #0 800dffa: 601a str r2, [r3, #0] } 800dffc: bf00 nop 800dffe: 3708 adds r7, #8 800e000: 46bd mov sp, r7 800e002: bd80 pop {r7, pc} 800e004: ffd3d3d3 .word 0xffd3d3d3 800e008: ff808080 .word 0xff808080 800e00c: ff404040 .word 0xff404040 800e010: 2006ba80 .word 0x2006ba80 0800e014 : void DrawSpinner(uint16_t x, uint16_t y) { 800e014: b580 push {r7, lr} 800e016: b082 sub sp, #8 800e018: af00 add r7, sp, #0 800e01a: 4603 mov r3, r0 800e01c: 460a mov r2, r1 800e01e: 80fb strh r3, [r7, #6] 800e020: 4613 mov r3, r2 800e022: 80bb strh r3, [r7, #4] //if(!clbr) //{ spinner++; 800e024: 4b0b ldr r3, [pc, #44] ; (800e054 ) 800e026: 781b ldrb r3, [r3, #0] 800e028: 3301 adds r3, #1 800e02a: b2da uxtb r2, r3 800e02c: 4b09 ldr r3, [pc, #36] ; (800e054 ) 800e02e: 701a strb r2, [r3, #0] if(spinner >= 10) 800e030: 4b08 ldr r3, [pc, #32] ; (800e054 ) 800e032: 781b ldrb r3, [r3, #0] 800e034: 2b09 cmp r3, #9 800e036: d902 bls.n 800e03e spinner = 0; 800e038: 4b06 ldr r3, [pc, #24] ; (800e054 ) 800e03a: 2200 movs r2, #0 800e03c: 701a strb r2, [r3, #0] DrawMySpinner(x, y); 800e03e: 88ba ldrh r2, [r7, #4] 800e040: 88fb ldrh r3, [r7, #6] 800e042: 4611 mov r1, r2 800e044: 4618 mov r0, r3 800e046: f7ff fcaf bl 800d9a8 //} } 800e04a: bf00 nop 800e04c: 3708 adds r7, #8 800e04e: 46bd mov sp, r7 800e050: bd80 pop {r7, pc} 800e052: bf00 nop 800e054: 2006ba75 .word 0x2006ba75 0800e058 : } void DrawChannel_4(uint8_t ch, uint32_t blk) { 800e058: b5b0 push {r4, r5, r7, lr} 800e05a: b08e sub sp, #56 ; 0x38 800e05c: af00 add r7, sp, #0 800e05e: 4603 mov r3, r0 800e060: 6039 str r1, [r7, #0] 800e062: 71fb strb r3, [r7, #7] char *p8; if(pardata.amplif[ch].SENS <= 0.0f) { 800e064: 79fb ldrb r3, [r7, #7] 800e066: 4ac1 ldr r2, [pc, #772] ; (800e36c ) 800e068: 015b lsls r3, r3, #5 800e06a: 4413 add r3, r2 800e06c: 3318 adds r3, #24 800e06e: edd3 7a00 vldr s15, [r3] 800e072: eef5 7ac0 vcmpe.f32 s15, #0.0 800e076: eef1 fa10 vmrs APSR_nzcv, fpscr 800e07a: d80a bhi.n 800e092 pardata.amplif[ch].SENS = 1.0f; 800e07c: 79fb ldrb r3, [r7, #7] 800e07e: 4abb ldr r2, [pc, #748] ; (800e36c ) 800e080: 015b lsls r3, r3, #5 800e082: 4413 add r3, r2 800e084: 3318 adds r3, #24 800e086: f04f 527e mov.w r2, #1065353216 ; 0x3f800000 800e08a: 601a str r2, [r3, #0] s = 10000; 800e08c: f242 7310 movw r3, #10000 ; 0x2710 800e090: 637b str r3, [r7, #52] ; 0x34 } if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10.0f) { 800e092: 4bb7 ldr r3, [pc, #732] ; (800e370 ) 800e094: 681b ldr r3, [r3, #0] 800e096: 4ab5 ldr r2, [pc, #724] ; (800e36c ) 800e098: 015b lsls r3, r3, #5 800e09a: 4413 add r3, r2 800e09c: 3318 adds r3, #24 800e09e: edd3 7a00 vldr s15, [r3] 800e0a2: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 800e0a6: eef4 7ac7 vcmpe.f32 s15, s14 800e0aa: eef1 fa10 vmrs APSR_nzcv, fpscr 800e0ae: d517 bpl.n 800e0e0 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10000.0f) + 0.5f); 800e0b0: 4baf ldr r3, [pc, #700] ; (800e370 ) 800e0b2: 681b ldr r3, [r3, #0] 800e0b4: 4aad ldr r2, [pc, #692] ; (800e36c ) 800e0b6: 015b lsls r3, r3, #5 800e0b8: 4413 add r3, r2 800e0ba: 3318 adds r3, #24 800e0bc: edd3 7a00 vldr s15, [r3] 800e0c0: ed9f 7aac vldr s14, [pc, #688] ; 800e374 800e0c4: ee67 7a87 vmul.f32 s15, s15, s14 800e0c8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 800e0cc: ee77 7a87 vadd.f32 s15, s15, s14 800e0d0: eefc 7ae7 vcvt.u32.f32 s15, s15 800e0d4: ee17 3a90 vmov r3, s15 800e0d8: 637b str r3, [r7, #52] ; 0x34 ipt = 4; 800e0da: 2304 movs r3, #4 800e0dc: 62bb str r3, [r7, #40] ; 0x28 800e0de: e0b2 b.n 800e246 } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100.0f) { 800e0e0: 4ba3 ldr r3, [pc, #652] ; (800e370 ) 800e0e2: 681b ldr r3, [r3, #0] 800e0e4: 4aa1 ldr r2, [pc, #644] ; (800e36c ) 800e0e6: 015b lsls r3, r3, #5 800e0e8: 4413 add r3, r2 800e0ea: 3318 adds r3, #24 800e0ec: edd3 7a00 vldr s15, [r3] 800e0f0: ed9f 7aa1 vldr s14, [pc, #644] ; 800e378 800e0f4: eef4 7ac7 vcmpe.f32 s15, s14 800e0f8: eef1 fa10 vmrs APSR_nzcv, fpscr 800e0fc: d517 bpl.n 800e12e s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 1000.0f) + 0.5f); 800e0fe: 4b9c ldr r3, [pc, #624] ; (800e370 ) 800e100: 681b ldr r3, [r3, #0] 800e102: 4a9a ldr r2, [pc, #616] ; (800e36c ) 800e104: 015b lsls r3, r3, #5 800e106: 4413 add r3, r2 800e108: 3318 adds r3, #24 800e10a: edd3 7a00 vldr s15, [r3] 800e10e: ed9f 7a9b vldr s14, [pc, #620] ; 800e37c 800e112: ee67 7a87 vmul.f32 s15, s15, s14 800e116: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 800e11a: ee77 7a87 vadd.f32 s15, s15, s14 800e11e: eefc 7ae7 vcvt.u32.f32 s15, s15 800e122: ee17 3a90 vmov r3, s15 800e126: 637b str r3, [r7, #52] ; 0x34 ipt = 3; 800e128: 2303 movs r3, #3 800e12a: 62bb str r3, [r7, #40] ; 0x28 800e12c: e08b b.n 800e246 } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 1000.0f) { 800e12e: 4b90 ldr r3, [pc, #576] ; (800e370 ) 800e130: 681b ldr r3, [r3, #0] 800e132: 4a8e ldr r2, [pc, #568] ; (800e36c ) 800e134: 015b lsls r3, r3, #5 800e136: 4413 add r3, r2 800e138: 3318 adds r3, #24 800e13a: edd3 7a00 vldr s15, [r3] 800e13e: ed9f 7a8f vldr s14, [pc, #572] ; 800e37c 800e142: eef4 7ac7 vcmpe.f32 s15, s14 800e146: eef1 fa10 vmrs APSR_nzcv, fpscr 800e14a: d517 bpl.n 800e17c s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 100.0f) + 0.5f); 800e14c: 4b88 ldr r3, [pc, #544] ; (800e370 ) 800e14e: 681b ldr r3, [r3, #0] 800e150: 4a86 ldr r2, [pc, #536] ; (800e36c ) 800e152: 015b lsls r3, r3, #5 800e154: 4413 add r3, r2 800e156: 3318 adds r3, #24 800e158: edd3 7a00 vldr s15, [r3] 800e15c: ed9f 7a86 vldr s14, [pc, #536] ; 800e378 800e160: ee67 7a87 vmul.f32 s15, s15, s14 800e164: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 800e168: ee77 7a87 vadd.f32 s15, s15, s14 800e16c: eefc 7ae7 vcvt.u32.f32 s15, s15 800e170: ee17 3a90 vmov r3, s15 800e174: 637b str r3, [r7, #52] ; 0x34 ipt = 2; 800e176: 2302 movs r3, #2 800e178: 62bb str r3, [r7, #40] ; 0x28 800e17a: e064 b.n 800e246 } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10000.0f) { 800e17c: 4b7c ldr r3, [pc, #496] ; (800e370 ) 800e17e: 681b ldr r3, [r3, #0] 800e180: 4a7a ldr r2, [pc, #488] ; (800e36c ) 800e182: 015b lsls r3, r3, #5 800e184: 4413 add r3, r2 800e186: 3318 adds r3, #24 800e188: edd3 7a00 vldr s15, [r3] 800e18c: ed9f 7a79 vldr s14, [pc, #484] ; 800e374 800e190: eef4 7ac7 vcmpe.f32 s15, s14 800e194: eef1 fa10 vmrs APSR_nzcv, fpscr 800e198: d517 bpl.n 800e1ca s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10.0f) + 0.5f); 800e19a: 4b75 ldr r3, [pc, #468] ; (800e370 ) 800e19c: 681b ldr r3, [r3, #0] 800e19e: 4a73 ldr r2, [pc, #460] ; (800e36c ) 800e1a0: 015b lsls r3, r3, #5 800e1a2: 4413 add r3, r2 800e1a4: 3318 adds r3, #24 800e1a6: edd3 7a00 vldr s15, [r3] 800e1aa: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 800e1ae: ee67 7a87 vmul.f32 s15, s15, s14 800e1b2: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 800e1b6: ee77 7a87 vadd.f32 s15, s15, s14 800e1ba: eefc 7ae7 vcvt.u32.f32 s15, s15 800e1be: ee17 3a90 vmov r3, s15 800e1c2: 637b str r3, [r7, #52] ; 0x34 ipt = 1; 800e1c4: 2301 movs r3, #1 800e1c6: 62bb str r3, [r7, #40] ; 0x28 800e1c8: e03d b.n 800e246 } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) { 800e1ca: 4b69 ldr r3, [pc, #420] ; (800e370 ) 800e1cc: 681b ldr r3, [r3, #0] 800e1ce: 4a67 ldr r2, [pc, #412] ; (800e36c ) 800e1d0: 015b lsls r3, r3, #5 800e1d2: 4413 add r3, r2 800e1d4: 3318 adds r3, #24 800e1d6: edd3 7a00 vldr s15, [r3] 800e1da: ed9f 7a69 vldr s14, [pc, #420] ; 800e380 800e1de: eef4 7ac7 vcmpe.f32 s15, s14 800e1e2: eef1 fa10 vmrs APSR_nzcv, fpscr 800e1e6: d513 bpl.n 800e210 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS) + 0.5f); 800e1e8: 4b61 ldr r3, [pc, #388] ; (800e370 ) 800e1ea: 681b ldr r3, [r3, #0] 800e1ec: 4a5f ldr r2, [pc, #380] ; (800e36c ) 800e1ee: 015b lsls r3, r3, #5 800e1f0: 4413 add r3, r2 800e1f2: 3318 adds r3, #24 800e1f4: edd3 7a00 vldr s15, [r3] 800e1f8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 800e1fc: ee77 7a87 vadd.f32 s15, s15, s14 800e200: eefc 7ae7 vcvt.u32.f32 s15, s15 800e204: ee17 3a90 vmov r3, s15 800e208: 637b str r3, [r7, #52] ; 0x34 ipt = 0; 800e20a: 2300 movs r3, #0 800e20c: 62bb str r3, [r7, #40] ; 0x28 800e20e: e01a b.n 800e246 } else if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 800e210: 4b57 ldr r3, [pc, #348] ; (800e370 ) 800e212: 681b ldr r3, [r3, #0] 800e214: 4a55 ldr r2, [pc, #340] ; (800e36c ) 800e216: 015b lsls r3, r3, #5 800e218: 4413 add r3, r2 800e21a: 3318 adds r3, #24 800e21c: edd3 7a00 vldr s15, [r3] 800e220: ed9f 7a57 vldr s14, [pc, #348] ; 800e380 800e224: eef4 7ac7 vcmpe.f32 s15, s14 800e228: eef1 fa10 vmrs APSR_nzcv, fpscr 800e22c: db0b blt.n 800e246 pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 800e22e: 4b50 ldr r3, [pc, #320] ; (800e370 ) 800e230: 681b ldr r3, [r3, #0] 800e232: 4a4e ldr r2, [pc, #312] ; (800e36c ) 800e234: 015b lsls r3, r3, #5 800e236: 4413 add r3, r2 800e238: 3318 adds r3, #24 800e23a: 4a52 ldr r2, [pc, #328] ; (800e384 ) 800e23c: 601a str r2, [r3, #0] s = 99999; 800e23e: 4b52 ldr r3, [pc, #328] ; (800e388 ) 800e240: 637b str r3, [r7, #52] ; 0x34 ipt = 0; 800e242: 2300 movs r3, #0 800e244: 62bb str r3, [r7, #40] ; 0x28 } ikdt = (s / 10000); 800e246: 6b7b ldr r3, [r7, #52] ; 0x34 800e248: 4a50 ldr r2, [pc, #320] ; (800e38c ) 800e24a: fba2 2303 umull r2, r3, r2, r3 800e24e: 0b5b lsrs r3, r3, #13 800e250: 627b str r3, [r7, #36] ; 0x24 ikt = (s % 10000 / 1000); 800e252: 6b7a ldr r2, [r7, #52] ; 0x34 800e254: 4b4d ldr r3, [pc, #308] ; (800e38c ) 800e256: fba3 1302 umull r1, r3, r3, r2 800e25a: 0b5b lsrs r3, r3, #13 800e25c: f242 7110 movw r1, #10000 ; 0x2710 800e260: fb01 f303 mul.w r3, r1, r3 800e264: 1ad3 subs r3, r2, r3 800e266: 4a4a ldr r2, [pc, #296] ; (800e390 ) 800e268: fba2 2303 umull r2, r3, r2, r3 800e26c: 099b lsrs r3, r3, #6 800e26e: 623b str r3, [r7, #32] iks = (s % 10000 % 1000 / 100); 800e270: 6b7a ldr r2, [r7, #52] ; 0x34 800e272: 4b46 ldr r3, [pc, #280] ; (800e38c ) 800e274: fba3 1302 umull r1, r3, r3, r2 800e278: 0b5b lsrs r3, r3, #13 800e27a: f242 7110 movw r1, #10000 ; 0x2710 800e27e: fb01 f303 mul.w r3, r1, r3 800e282: 1ad3 subs r3, r2, r3 800e284: 4a42 ldr r2, [pc, #264] ; (800e390 ) 800e286: fba2 1203 umull r1, r2, r2, r3 800e28a: 0992 lsrs r2, r2, #6 800e28c: f44f 717a mov.w r1, #1000 ; 0x3e8 800e290: fb01 f202 mul.w r2, r1, r2 800e294: 1a9a subs r2, r3, r2 800e296: 4b3f ldr r3, [pc, #252] ; (800e394 ) 800e298: fba3 2302 umull r2, r3, r3, r2 800e29c: 095b lsrs r3, r3, #5 800e29e: 61fb str r3, [r7, #28] ikd = (s % 10000 % 1000 % 100 / 10); 800e2a0: 6b7b ldr r3, [r7, #52] ; 0x34 800e2a2: 4a3a ldr r2, [pc, #232] ; (800e38c ) 800e2a4: fba2 1203 umull r1, r2, r2, r3 800e2a8: 0b52 lsrs r2, r2, #13 800e2aa: f242 7110 movw r1, #10000 ; 0x2710 800e2ae: fb01 f202 mul.w r2, r1, r2 800e2b2: 1a9a subs r2, r3, r2 800e2b4: 4b36 ldr r3, [pc, #216] ; (800e390 ) 800e2b6: fba3 1302 umull r1, r3, r3, r2 800e2ba: 099b lsrs r3, r3, #6 800e2bc: f44f 717a mov.w r1, #1000 ; 0x3e8 800e2c0: fb01 f303 mul.w r3, r1, r3 800e2c4: 1ad3 subs r3, r2, r3 800e2c6: 4a33 ldr r2, [pc, #204] ; (800e394 ) 800e2c8: fba2 1203 umull r1, r2, r2, r3 800e2cc: 0952 lsrs r2, r2, #5 800e2ce: 2164 movs r1, #100 ; 0x64 800e2d0: fb01 f202 mul.w r2, r1, r2 800e2d4: 1a9a subs r2, r3, r2 800e2d6: 4b30 ldr r3, [pc, #192] ; (800e398 ) 800e2d8: fba3 2302 umull r2, r3, r3, r2 800e2dc: 08db lsrs r3, r3, #3 800e2de: 61bb str r3, [r7, #24] ike = (s % 10000 % 1000 % 100 % 10); 800e2e0: 6b7b ldr r3, [r7, #52] ; 0x34 800e2e2: 4a2a ldr r2, [pc, #168] ; (800e38c ) 800e2e4: fba2 1203 umull r1, r2, r2, r3 800e2e8: 0b52 lsrs r2, r2, #13 800e2ea: f242 7110 movw r1, #10000 ; 0x2710 800e2ee: fb01 f202 mul.w r2, r1, r2 800e2f2: 1a9a subs r2, r3, r2 800e2f4: 4b26 ldr r3, [pc, #152] ; (800e390 ) 800e2f6: fba3 1302 umull r1, r3, r3, r2 800e2fa: 099b lsrs r3, r3, #6 800e2fc: f44f 717a mov.w r1, #1000 ; 0x3e8 800e300: fb01 f303 mul.w r3, r1, r3 800e304: 1ad3 subs r3, r2, r3 800e306: 4a23 ldr r2, [pc, #140] ; (800e394 ) 800e308: fba2 1203 umull r1, r2, r2, r3 800e30c: 0952 lsrs r2, r2, #5 800e30e: 2164 movs r1, #100 ; 0x64 800e310: fb01 f202 mul.w r2, r1, r2 800e314: 1a9a subs r2, r3, r2 800e316: 4b20 ldr r3, [pc, #128] ; (800e398 ) 800e318: fba3 1302 umull r1, r3, r3, r2 800e31c: 08d9 lsrs r1, r3, #3 800e31e: 460b mov r3, r1 800e320: 009b lsls r3, r3, #2 800e322: 440b add r3, r1 800e324: 005b lsls r3, r3, #1 800e326: 1ad3 subs r3, r2, r3 800e328: 617b str r3, [r7, #20] p8 = str; 800e32a: f107 0308 add.w r3, r7, #8 800e32e: 62fb str r3, [r7, #44] ; 0x2c if(pardata.amplif[ch].SENS < 10.0f) { 800e330: 79fb ldrb r3, [r7, #7] 800e332: 4a0e ldr r2, [pc, #56] ; (800e36c ) 800e334: 015b lsls r3, r3, #5 800e336: 4413 add r3, r2 800e338: 3318 adds r3, #24 800e33a: edd3 7a00 vldr s15, [r3] 800e33e: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 800e342: eef4 7ac7 vcmpe.f32 s15, s14 800e346: eef1 fa10 vmrs APSR_nzcv, fpscr 800e34a: d527 bpl.n 800e39c p8 = FloatToASCII(pardata.amplif[ch].SENS, -4); 800e34c: 79fb ldrb r3, [r7, #7] 800e34e: 4a07 ldr r2, [pc, #28] ; (800e36c ) 800e350: 015b lsls r3, r3, #5 800e352: 4413 add r3, r2 800e354: 3318 adds r3, #24 800e356: edd3 7a00 vldr s15, [r3] 800e35a: f06f 0003 mvn.w r0, #3 800e35e: eeb0 0a67 vmov.f32 s0, s15 800e362: f001 f861 bl 800f428 800e366: 62f8 str r0, [r7, #44] ; 0x2c 800e368: e08a b.n 800e480 800e36a: bf00 nop 800e36c: 2006bca8 .word 0x2006bca8 800e370: 2006ba68 .word 0x2006ba68 800e374: 461c4000 .word 0x461c4000 800e378: 42c80000 .word 0x42c80000 800e37c: 447a0000 .word 0x447a0000 800e380: 47c35000 .word 0x47c35000 800e384: 47c34f80 .word 0x47c34f80 800e388: 0001869f .word 0x0001869f 800e38c: d1b71759 .word 0xd1b71759 800e390: 10624dd3 .word 0x10624dd3 800e394: 51eb851f .word 0x51eb851f 800e398: cccccccd .word 0xcccccccd } else if(pardata.amplif[ch].SENS < 100.0f) { 800e39c: 79fb ldrb r3, [r7, #7] 800e39e: 4abf ldr r2, [pc, #764] ; (800e69c ) 800e3a0: 015b lsls r3, r3, #5 800e3a2: 4413 add r3, r2 800e3a4: 3318 adds r3, #24 800e3a6: edd3 7a00 vldr s15, [r3] 800e3aa: ed9f 7abd vldr s14, [pc, #756] ; 800e6a0 800e3ae: eef4 7ac7 vcmpe.f32 s15, s14 800e3b2: eef1 fa10 vmrs APSR_nzcv, fpscr 800e3b6: d50e bpl.n 800e3d6 p8 = FloatToASCII(pardata.amplif[ch].SENS, -3); 800e3b8: 79fb ldrb r3, [r7, #7] 800e3ba: 4ab8 ldr r2, [pc, #736] ; (800e69c ) 800e3bc: 015b lsls r3, r3, #5 800e3be: 4413 add r3, r2 800e3c0: 3318 adds r3, #24 800e3c2: edd3 7a00 vldr s15, [r3] 800e3c6: f06f 0002 mvn.w r0, #2 800e3ca: eeb0 0a67 vmov.f32 s0, s15 800e3ce: f001 f82b bl 800f428 800e3d2: 62f8 str r0, [r7, #44] ; 0x2c 800e3d4: e054 b.n 800e480 } else if(pardata.amplif[ch].SENS < 1000.0f) { 800e3d6: 79fb ldrb r3, [r7, #7] 800e3d8: 4ab0 ldr r2, [pc, #704] ; (800e69c ) 800e3da: 015b lsls r3, r3, #5 800e3dc: 4413 add r3, r2 800e3de: 3318 adds r3, #24 800e3e0: edd3 7a00 vldr s15, [r3] 800e3e4: ed9f 7aaf vldr s14, [pc, #700] ; 800e6a4 800e3e8: eef4 7ac7 vcmpe.f32 s15, s14 800e3ec: eef1 fa10 vmrs APSR_nzcv, fpscr 800e3f0: d50e bpl.n 800e410 p8 = FloatToASCII(pardata.amplif[ch].SENS, -2); 800e3f2: 79fb ldrb r3, [r7, #7] 800e3f4: 4aa9 ldr r2, [pc, #676] ; (800e69c ) 800e3f6: 015b lsls r3, r3, #5 800e3f8: 4413 add r3, r2 800e3fa: 3318 adds r3, #24 800e3fc: edd3 7a00 vldr s15, [r3] 800e400: f06f 0001 mvn.w r0, #1 800e404: eeb0 0a67 vmov.f32 s0, s15 800e408: f001 f80e bl 800f428 800e40c: 62f8 str r0, [r7, #44] ; 0x2c 800e40e: e037 b.n 800e480 } else if(pardata.amplif[ch].SENS < 10000.0f) { 800e410: 79fb ldrb r3, [r7, #7] 800e412: 4aa2 ldr r2, [pc, #648] ; (800e69c ) 800e414: 015b lsls r3, r3, #5 800e416: 4413 add r3, r2 800e418: 3318 adds r3, #24 800e41a: edd3 7a00 vldr s15, [r3] 800e41e: ed9f 7aa2 vldr s14, [pc, #648] ; 800e6a8 800e422: eef4 7ac7 vcmpe.f32 s15, s14 800e426: eef1 fa10 vmrs APSR_nzcv, fpscr 800e42a: d50e bpl.n 800e44a p8 = FloatToASCII(pardata.amplif[ch].SENS, -1); 800e42c: 79fb ldrb r3, [r7, #7] 800e42e: 4a9b ldr r2, [pc, #620] ; (800e69c ) 800e430: 015b lsls r3, r3, #5 800e432: 4413 add r3, r2 800e434: 3318 adds r3, #24 800e436: edd3 7a00 vldr s15, [r3] 800e43a: f04f 30ff mov.w r0, #4294967295 800e43e: eeb0 0a67 vmov.f32 s0, s15 800e442: f000 fff1 bl 800f428 800e446: 62f8 str r0, [r7, #44] ; 0x2c 800e448: e01a b.n 800e480 } else if(pardata.amplif[ch].SENS < 100000.0f) { 800e44a: 79fb ldrb r3, [r7, #7] 800e44c: 4a93 ldr r2, [pc, #588] ; (800e69c ) 800e44e: 015b lsls r3, r3, #5 800e450: 4413 add r3, r2 800e452: 3318 adds r3, #24 800e454: edd3 7a00 vldr s15, [r3] 800e458: ed9f 7a94 vldr s14, [pc, #592] ; 800e6ac 800e45c: eef4 7ac7 vcmpe.f32 s15, s14 800e460: eef1 fa10 vmrs APSR_nzcv, fpscr 800e464: d50c bpl.n 800e480 p8 = FloatToASCII(pardata.amplif[ch].SENS, 0); 800e466: 79fb ldrb r3, [r7, #7] 800e468: 4a8c ldr r2, [pc, #560] ; (800e69c ) 800e46a: 015b lsls r3, r3, #5 800e46c: 4413 add r3, r2 800e46e: 3318 adds r3, #24 800e470: edd3 7a00 vldr s15, [r3] 800e474: 2000 movs r0, #0 800e476: eeb0 0a67 vmov.f32 s0, s15 800e47a: f000 ffd5 bl 800f428 800e47e: 62f8 str r0, [r7, #44] ; 0x2c } strcpy((void *) str, (void *) p8); 800e480: f107 0308 add.w r3, r7, #8 800e484: 6af9 ldr r1, [r7, #44] ; 0x2c 800e486: 4618 mov r0, r3 800e488: f007 fff3 bl 8016472 ////////////////////////////////////////////////////////////////////////////////////// if((pardata.amplif[ch].SENS >= 0.0010f)&&(pardata.amplif[ch].SENS < 0.001f)) //0.001 800e48c: 79fb ldrb r3, [r7, #7] 800e48e: 4a83 ldr r2, [pc, #524] ; (800e69c ) 800e490: 015b lsls r3, r3, #5 800e492: 4413 add r3, r2 800e494: 3318 adds r3, #24 800e496: edd3 7a00 vldr s15, [r3] 800e49a: ed9f 7a85 vldr s14, [pc, #532] ; 800e6b0 800e49e: eef4 7ac7 vcmpe.f32 s15, s14 800e4a2: eef1 fa10 vmrs APSR_nzcv, fpscr 800e4a6: db16 blt.n 800e4d6 800e4a8: 79fb ldrb r3, [r7, #7] 800e4aa: 4a7c ldr r2, [pc, #496] ; (800e69c ) 800e4ac: 015b lsls r3, r3, #5 800e4ae: 4413 add r3, r2 800e4b0: 3318 adds r3, #24 800e4b2: edd3 7a00 vldr s15, [r3] 800e4b6: ed9f 7a7e vldr s14, [pc, #504] ; 800e6b0 800e4ba: eef4 7ac7 vcmpe.f32 s15, s14 800e4be: eef1 fa10 vmrs APSR_nzcv, fpscr 800e4c2: d508 bpl.n 800e4d6 { out = pardata.amplif[ch].IKU; 800e4c4: 79fb ldrb r3, [r7, #7] 800e4c6: 4a75 ldr r2, [pc, #468] ; (800e69c ) 800e4c8: 015b lsls r3, r3, #5 800e4ca: 4413 add r3, r2 800e4cc: 3306 adds r3, #6 800e4ce: 881b ldrh r3, [r3, #0] 800e4d0: b29b uxth r3, r3 800e4d2: 633b str r3, [r7, #48] ; 0x30 800e4d4: e13d b.n 800e752 } else if((pardata.amplif[ch].SENS >= 0.0010f)&&(pardata.amplif[ch].SENS < 0.010f)) //0.001 800e4d6: 79fb ldrb r3, [r7, #7] 800e4d8: 4a70 ldr r2, [pc, #448] ; (800e69c ) 800e4da: 015b lsls r3, r3, #5 800e4dc: 4413 add r3, r2 800e4de: 3318 adds r3, #24 800e4e0: edd3 7a00 vldr s15, [r3] 800e4e4: ed9f 7a72 vldr s14, [pc, #456] ; 800e6b0 800e4e8: eef4 7ac7 vcmpe.f32 s15, s14 800e4ec: eef1 fa10 vmrs APSR_nzcv, fpscr 800e4f0: db16 blt.n 800e520 800e4f2: 79fb ldrb r3, [r7, #7] 800e4f4: 4a69 ldr r2, [pc, #420] ; (800e69c ) 800e4f6: 015b lsls r3, r3, #5 800e4f8: 4413 add r3, r2 800e4fa: 3318 adds r3, #24 800e4fc: edd3 7a00 vldr s15, [r3] 800e500: ed9f 7a6c vldr s14, [pc, #432] ; 800e6b4 800e504: eef4 7ac7 vcmpe.f32 s15, s14 800e508: eef1 fa10 vmrs APSR_nzcv, fpscr 800e50c: d508 bpl.n 800e520 { out = pardata.amplif[ch].IKU; 800e50e: 79fb ldrb r3, [r7, #7] 800e510: 4a62 ldr r2, [pc, #392] ; (800e69c ) 800e512: 015b lsls r3, r3, #5 800e514: 4413 add r3, r2 800e516: 3306 adds r3, #6 800e518: 881b ldrh r3, [r3, #0] 800e51a: b29b uxth r3, r3 800e51c: 633b str r3, [r7, #48] ; 0x30 800e51e: e118 b.n 800e752 } else if((pardata.amplif[ch].SENS>=0.01f)&&(pardata.amplif[ch].SENS<0.1f)) //0.002 800e520: 79fb ldrb r3, [r7, #7] 800e522: 4a5e ldr r2, [pc, #376] ; (800e69c ) 800e524: 015b lsls r3, r3, #5 800e526: 4413 add r3, r2 800e528: 3318 adds r3, #24 800e52a: edd3 7a00 vldr s15, [r3] 800e52e: ed9f 7a61 vldr s14, [pc, #388] ; 800e6b4 800e532: eef4 7ac7 vcmpe.f32 s15, s14 800e536: eef1 fa10 vmrs APSR_nzcv, fpscr 800e53a: db17 blt.n 800e56c 800e53c: 79fb ldrb r3, [r7, #7] 800e53e: 4a57 ldr r2, [pc, #348] ; (800e69c ) 800e540: 015b lsls r3, r3, #5 800e542: 4413 add r3, r2 800e544: 3318 adds r3, #24 800e546: edd3 7a00 vldr s15, [r3] 800e54a: ed9f 7a5b vldr s14, [pc, #364] ; 800e6b8 800e54e: eef4 7ac7 vcmpe.f32 s15, s14 800e552: eef1 fa10 vmrs APSR_nzcv, fpscr 800e556: d509 bpl.n 800e56c { out = pardata.amplif[ch].IKU +3; 800e558: 79fb ldrb r3, [r7, #7] 800e55a: 4a50 ldr r2, [pc, #320] ; (800e69c ) 800e55c: 015b lsls r3, r3, #5 800e55e: 4413 add r3, r2 800e560: 3306 adds r3, #6 800e562: 881b ldrh r3, [r3, #0] 800e564: b29b uxth r3, r3 800e566: 3303 adds r3, #3 800e568: 633b str r3, [r7, #48] ; 0x30 800e56a: e0f2 b.n 800e752 } else if((pardata.amplif[ch].SENS>=0.1f)&&(pardata.amplif[ch].SENS<1.0f)) //0.005 800e56c: 79fb ldrb r3, [r7, #7] 800e56e: 4a4b ldr r2, [pc, #300] ; (800e69c ) 800e570: 015b lsls r3, r3, #5 800e572: 4413 add r3, r2 800e574: 3318 adds r3, #24 800e576: edd3 7a00 vldr s15, [r3] 800e57a: ed9f 7a4f vldr s14, [pc, #316] ; 800e6b8 800e57e: eef4 7ac7 vcmpe.f32 s15, s14 800e582: eef1 fa10 vmrs APSR_nzcv, fpscr 800e586: db17 blt.n 800e5b8 800e588: 79fb ldrb r3, [r7, #7] 800e58a: 4a44 ldr r2, [pc, #272] ; (800e69c ) 800e58c: 015b lsls r3, r3, #5 800e58e: 4413 add r3, r2 800e590: 3318 adds r3, #24 800e592: edd3 7a00 vldr s15, [r3] 800e596: eeb7 7a00 vmov.f32 s14, #112 ; 0x3f800000 1.0 800e59a: eef4 7ac7 vcmpe.f32 s15, s14 800e59e: eef1 fa10 vmrs APSR_nzcv, fpscr 800e5a2: d509 bpl.n 800e5b8 { out = pardata.amplif[ch].IKU + 6; 800e5a4: 79fb ldrb r3, [r7, #7] 800e5a6: 4a3d ldr r2, [pc, #244] ; (800e69c ) 800e5a8: 015b lsls r3, r3, #5 800e5aa: 4413 add r3, r2 800e5ac: 3306 adds r3, #6 800e5ae: 881b ldrh r3, [r3, #0] 800e5b0: b29b uxth r3, r3 800e5b2: 3306 adds r3, #6 800e5b4: 633b str r3, [r7, #48] ; 0x30 800e5b6: e0cc b.n 800e752 } else if((pardata.amplif[ch].SENS>=1.0f)&&(pardata.amplif[ch].SENS<10.0f)) //0.01 800e5b8: 79fb ldrb r3, [r7, #7] 800e5ba: 4a38 ldr r2, [pc, #224] ; (800e69c ) 800e5bc: 015b lsls r3, r3, #5 800e5be: 4413 add r3, r2 800e5c0: 3318 adds r3, #24 800e5c2: edd3 7a00 vldr s15, [r3] 800e5c6: eeb7 7a00 vmov.f32 s14, #112 ; 0x3f800000 1.0 800e5ca: eef4 7ac7 vcmpe.f32 s15, s14 800e5ce: eef1 fa10 vmrs APSR_nzcv, fpscr 800e5d2: db17 blt.n 800e604 800e5d4: 79fb ldrb r3, [r7, #7] 800e5d6: 4a31 ldr r2, [pc, #196] ; (800e69c ) 800e5d8: 015b lsls r3, r3, #5 800e5da: 4413 add r3, r2 800e5dc: 3318 adds r3, #24 800e5de: edd3 7a00 vldr s15, [r3] 800e5e2: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 800e5e6: eef4 7ac7 vcmpe.f32 s15, s14 800e5ea: eef1 fa10 vmrs APSR_nzcv, fpscr 800e5ee: d509 bpl.n 800e604 { out = pardata.amplif[ch].IKU + 9; 800e5f0: 79fb ldrb r3, [r7, #7] 800e5f2: 4a2a ldr r2, [pc, #168] ; (800e69c ) 800e5f4: 015b lsls r3, r3, #5 800e5f6: 4413 add r3, r2 800e5f8: 3306 adds r3, #6 800e5fa: 881b ldrh r3, [r3, #0] 800e5fc: b29b uxth r3, r3 800e5fe: 3309 adds r3, #9 800e600: 633b str r3, [r7, #48] ; 0x30 800e602: e0a6 b.n 800e752 } else if((pardata.amplif[ch].SENS>=10.0f)&&(pardata.amplif[ch].SENS<100.0f)) //0.02 800e604: 79fb ldrb r3, [r7, #7] 800e606: 4a25 ldr r2, [pc, #148] ; (800e69c ) 800e608: 015b lsls r3, r3, #5 800e60a: 4413 add r3, r2 800e60c: 3318 adds r3, #24 800e60e: edd3 7a00 vldr s15, [r3] 800e612: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 800e616: eef4 7ac7 vcmpe.f32 s15, s14 800e61a: eef1 fa10 vmrs APSR_nzcv, fpscr 800e61e: db17 blt.n 800e650 800e620: 79fb ldrb r3, [r7, #7] 800e622: 4a1e ldr r2, [pc, #120] ; (800e69c ) 800e624: 015b lsls r3, r3, #5 800e626: 4413 add r3, r2 800e628: 3318 adds r3, #24 800e62a: edd3 7a00 vldr s15, [r3] 800e62e: ed9f 7a1c vldr s14, [pc, #112] ; 800e6a0 800e632: eef4 7ac7 vcmpe.f32 s15, s14 800e636: eef1 fa10 vmrs APSR_nzcv, fpscr 800e63a: d509 bpl.n 800e650 { out = pardata.amplif[ch].IKU + 12; 800e63c: 79fb ldrb r3, [r7, #7] 800e63e: 4a17 ldr r2, [pc, #92] ; (800e69c ) 800e640: 015b lsls r3, r3, #5 800e642: 4413 add r3, r2 800e644: 3306 adds r3, #6 800e646: 881b ldrh r3, [r3, #0] 800e648: b29b uxth r3, r3 800e64a: 330c adds r3, #12 800e64c: 633b str r3, [r7, #48] ; 0x30 800e64e: e080 b.n 800e752 } else if((pardata.amplif[ch].SENS>=100.0f)&&(pardata.amplif[ch].SENS<1000.0f)) //0.05 800e650: 79fb ldrb r3, [r7, #7] 800e652: 4a12 ldr r2, [pc, #72] ; (800e69c ) 800e654: 015b lsls r3, r3, #5 800e656: 4413 add r3, r2 800e658: 3318 adds r3, #24 800e65a: edd3 7a00 vldr s15, [r3] 800e65e: ed9f 7a10 vldr s14, [pc, #64] ; 800e6a0 800e662: eef4 7ac7 vcmpe.f32 s15, s14 800e666: eef1 fa10 vmrs APSR_nzcv, fpscr 800e66a: db27 blt.n 800e6bc 800e66c: 79fb ldrb r3, [r7, #7] 800e66e: 4a0b ldr r2, [pc, #44] ; (800e69c ) 800e670: 015b lsls r3, r3, #5 800e672: 4413 add r3, r2 800e674: 3318 adds r3, #24 800e676: edd3 7a00 vldr s15, [r3] 800e67a: ed9f 7a0a vldr s14, [pc, #40] ; 800e6a4 800e67e: eef4 7ac7 vcmpe.f32 s15, s14 800e682: eef1 fa10 vmrs APSR_nzcv, fpscr 800e686: d519 bpl.n 800e6bc { out = pardata.amplif[ch].IKU + 15; 800e688: 79fb ldrb r3, [r7, #7] 800e68a: 4a04 ldr r2, [pc, #16] ; (800e69c ) 800e68c: 015b lsls r3, r3, #5 800e68e: 4413 add r3, r2 800e690: 3306 adds r3, #6 800e692: 881b ldrh r3, [r3, #0] 800e694: b29b uxth r3, r3 800e696: 330f adds r3, #15 800e698: 633b str r3, [r7, #48] ; 0x30 800e69a: e05a b.n 800e752 800e69c: 2006bca8 .word 0x2006bca8 800e6a0: 42c80000 .word 0x42c80000 800e6a4: 447a0000 .word 0x447a0000 800e6a8: 461c4000 .word 0x461c4000 800e6ac: 47c35000 .word 0x47c35000 800e6b0: 3a83126f .word 0x3a83126f 800e6b4: 3c23d70a .word 0x3c23d70a 800e6b8: 3dcccccd .word 0x3dcccccd } else if((pardata.amplif[ch].SENS >= 1000.0f)&&(pardata.amplif[ch].SENS<10000.0f)) //0.1 800e6bc: 79fb ldrb r3, [r7, #7] 800e6be: 4ab8 ldr r2, [pc, #736] ; (800e9a0 ) 800e6c0: 015b lsls r3, r3, #5 800e6c2: 4413 add r3, r2 800e6c4: 3318 adds r3, #24 800e6c6: edd3 7a00 vldr s15, [r3] 800e6ca: ed9f 7ab6 vldr s14, [pc, #728] ; 800e9a4 800e6ce: eef4 7ac7 vcmpe.f32 s15, s14 800e6d2: eef1 fa10 vmrs APSR_nzcv, fpscr 800e6d6: db17 blt.n 800e708 800e6d8: 79fb ldrb r3, [r7, #7] 800e6da: 4ab1 ldr r2, [pc, #708] ; (800e9a0 ) 800e6dc: 015b lsls r3, r3, #5 800e6de: 4413 add r3, r2 800e6e0: 3318 adds r3, #24 800e6e2: edd3 7a00 vldr s15, [r3] 800e6e6: ed9f 7ab0 vldr s14, [pc, #704] ; 800e9a8 800e6ea: eef4 7ac7 vcmpe.f32 s15, s14 800e6ee: eef1 fa10 vmrs APSR_nzcv, fpscr 800e6f2: d509 bpl.n 800e708 { out = pardata.amplif[ch].IKU + 18; 800e6f4: 79fb ldrb r3, [r7, #7] 800e6f6: 4aaa ldr r2, [pc, #680] ; (800e9a0 ) 800e6f8: 015b lsls r3, r3, #5 800e6fa: 4413 add r3, r2 800e6fc: 3306 adds r3, #6 800e6fe: 881b ldrh r3, [r3, #0] 800e700: b29b uxth r3, r3 800e702: 3312 adds r3, #18 800e704: 633b str r3, [r7, #48] ; 0x30 800e706: e024 b.n 800e752 } else if((pardata.amplif[ch].SENS >= 10000.0f)&&(pardata.amplif[ch].SENS < 100000.0f)) //0.2 800e708: 79fb ldrb r3, [r7, #7] 800e70a: 4aa5 ldr r2, [pc, #660] ; (800e9a0 ) 800e70c: 015b lsls r3, r3, #5 800e70e: 4413 add r3, r2 800e710: 3318 adds r3, #24 800e712: edd3 7a00 vldr s15, [r3] 800e716: ed9f 7aa4 vldr s14, [pc, #656] ; 800e9a8 800e71a: eef4 7ac7 vcmpe.f32 s15, s14 800e71e: eef1 fa10 vmrs APSR_nzcv, fpscr 800e722: db16 blt.n 800e752 800e724: 79fb ldrb r3, [r7, #7] 800e726: 4a9e ldr r2, [pc, #632] ; (800e9a0 ) 800e728: 015b lsls r3, r3, #5 800e72a: 4413 add r3, r2 800e72c: 3318 adds r3, #24 800e72e: edd3 7a00 vldr s15, [r3] 800e732: ed9f 7a9e vldr s14, [pc, #632] ; 800e9ac 800e736: eef4 7ac7 vcmpe.f32 s15, s14 800e73a: eef1 fa10 vmrs APSR_nzcv, fpscr 800e73e: d508 bpl.n 800e752 { out = pardata.amplif[ch].IKU + 21; 800e740: 79fb ldrb r3, [r7, #7] 800e742: 4a97 ldr r2, [pc, #604] ; (800e9a0 ) 800e744: 015b lsls r3, r3, #5 800e746: 4413 add r3, r2 800e748: 3306 adds r3, #6 800e74a: 881b ldrh r3, [r3, #0] 800e74c: b29b uxth r3, r3 800e74e: 3315 adds r3, #21 800e750: 633b str r3, [r7, #48] ; 0x30 } LCD_SetColors(LCD_COLOR_ORANGE, LCD_COLOR_BLACK); 800e752: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800e756: 4896 ldr r0, [pc, #600] ; (800e9b0 ) 800e758: f7f6 fafa bl 8004d50 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_INPUT_4[ch], str, LEFT_MODE); 800e75c: 79fb ldrb r3, [r7, #7] 800e75e: 4a95 ldr r2, [pc, #596] ; (800e9b4 ) 800e760: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800e764: 3305 adds r3, #5 800e766: b298 uxth r0, r3 800e768: 79fb ldrb r3, [r7, #7] 800e76a: 4a93 ldr r2, [pc, #588] ; (800e9b8 ) 800e76c: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800e770: f107 0208 add.w r2, r7, #8 800e774: 2303 movs r3, #3 800e776: f7f6 fbb1 bl 8004edc BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 50, YPOS_INPUT_4[ch], (char *) pVAL[pardata.LANG][pardata.amplif[ch].VAL * 2 + pardata.amplif[ch].IIN], LEFT_MODE); 800e77a: 79fb ldrb r3, [r7, #7] 800e77c: 4a8d ldr r2, [pc, #564] ; (800e9b4 ) 800e77e: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800e782: 3332 adds r3, #50 ; 0x32 800e784: b298 uxth r0, r3 800e786: 79fb ldrb r3, [r7, #7] 800e788: 4a8b ldr r2, [pc, #556] ; (800e9b8 ) 800e78a: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800e78e: 4b84 ldr r3, [pc, #528] ; (800e9a0 ) 800e790: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800e794: b29b uxth r3, r3 800e796: 461d mov r5, r3 800e798: 79fb ldrb r3, [r7, #7] 800e79a: 4a81 ldr r2, [pc, #516] ; (800e9a0 ) 800e79c: 015b lsls r3, r3, #5 800e79e: 4413 add r3, r2 800e7a0: 3312 adds r3, #18 800e7a2: 881b ldrh r3, [r3, #0] 800e7a4: b29b uxth r3, r3 800e7a6: 005b lsls r3, r3, #1 800e7a8: 79fa ldrb r2, [r7, #7] 800e7aa: 497d ldr r1, [pc, #500] ; (800e9a0 ) 800e7ac: 0152 lsls r2, r2, #5 800e7ae: 440a add r2, r1 800e7b0: 8812 ldrh r2, [r2, #0] 800e7b2: b292 uxth r2, r2 800e7b4: 4413 add r3, r2 800e7b6: 4981 ldr r1, [pc, #516] ; (800e9bc ) 800e7b8: 012a lsls r2, r5, #4 800e7ba: 4413 add r3, r2 800e7bc: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800e7c0: 2303 movs r3, #3 800e7c2: 4621 mov r1, r4 800e7c4: f7f6 fb8a bl 8004edc ////////////////////////////////////////////////////////////////////////////////////////////// LCD_SetColors(LCD_COLOR_DARKCYAN, LCD_COLOR_BLACK); 800e7c8: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800e7cc: 487c ldr r0, [pc, #496] ; (800e9c0 ) 800e7ce: f7f6 fabf bl 8004d50 if(ch < Ch3) 800e7d2: 79fb ldrb r3, [r7, #7] 800e7d4: 2b01 cmp r3, #1 800e7d6: d81f bhi.n 800e818 { if(pardata.amplif[ch].IIN == CHARGE) 800e7d8: 79fb ldrb r3, [r7, #7] 800e7da: 4a71 ldr r2, [pc, #452] ; (800e9a0 ) 800e7dc: 015b lsls r3, r3, #5 800e7de: 4413 add r3, r2 800e7e0: 881b ldrh r3, [r3, #0] 800e7e2: b29b uxth r3, r3 800e7e4: 2b00 cmp r3, #0 800e7e6: d10b bne.n 800e800 BSP_LCD_DisplayStringAt(155, YPOS_KN_4[ch] + 3, "PE", RIGHT_MODE); 800e7e8: 79fb ldrb r3, [r7, #7] 800e7ea: 4a76 ldr r2, [pc, #472] ; (800e9c4 ) 800e7ec: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800e7f0: 3303 adds r3, #3 800e7f2: b299 uxth r1, r3 800e7f4: 2302 movs r3, #2 800e7f6: 4a74 ldr r2, [pc, #464] ; (800e9c8 ) 800e7f8: 209b movs r0, #155 ; 0x9b 800e7fa: f7f6 fb6f bl 8004edc 800e7fe: e02c b.n 800e85a else BSP_LCD_DisplayStringAt(155, YPOS_KN_4[ch] + 3, "IEPE", RIGHT_MODE); 800e800: 79fb ldrb r3, [r7, #7] 800e802: 4a70 ldr r2, [pc, #448] ; (800e9c4 ) 800e804: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800e808: 3303 adds r3, #3 800e80a: b299 uxth r1, r3 800e80c: 2302 movs r3, #2 800e80e: 4a6f ldr r2, [pc, #444] ; (800e9cc ) 800e810: 209b movs r0, #155 ; 0x9b 800e812: f7f6 fb63 bl 8004edc 800e816: e020 b.n 800e85a } else { if(pardata.amplif[ch].IIN == CHARGE) 800e818: 79fb ldrb r3, [r7, #7] 800e81a: 4a61 ldr r2, [pc, #388] ; (800e9a0 ) 800e81c: 015b lsls r3, r3, #5 800e81e: 4413 add r3, r2 800e820: 881b ldrh r3, [r3, #0] 800e822: b29b uxth r3, r3 800e824: 2b00 cmp r3, #0 800e826: d10c bne.n 800e842 BSP_LCD_DisplayStringAt(155 + 160, YPOS_KN_4[ch] + 3, "PE", RIGHT_MODE); 800e828: 79fb ldrb r3, [r7, #7] 800e82a: 4a66 ldr r2, [pc, #408] ; (800e9c4 ) 800e82c: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800e830: 3303 adds r3, #3 800e832: b299 uxth r1, r3 800e834: 2302 movs r3, #2 800e836: 4a64 ldr r2, [pc, #400] ; (800e9c8 ) 800e838: f240 103b movw r0, #315 ; 0x13b 800e83c: f7f6 fb4e bl 8004edc 800e840: e00b b.n 800e85a else BSP_LCD_DisplayStringAt(155 + 160, YPOS_KN_4[ch] + 3, "IEPE", RIGHT_MODE); 800e842: 79fb ldrb r3, [r7, #7] 800e844: 4a5f ldr r2, [pc, #380] ; (800e9c4 ) 800e846: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800e84a: 3303 adds r3, #3 800e84c: b299 uxth r1, r3 800e84e: 2302 movs r3, #2 800e850: 4a5e ldr r2, [pc, #376] ; (800e9cc ) 800e852: f240 103b movw r0, #315 ; 0x13b 800e856: f7f6 fb41 bl 8004edc } if(menupos == Hp) 800e85a: 4b5d ldr r3, [pc, #372] ; (800e9d0 ) 800e85c: 781b ldrb r3, [r3, #0] 800e85e: b2db uxtb r3, r3 800e860: 2b00 cmp r3, #0 800e862: f040 8176 bne.w 800eb52 { if(ACTIVE_CHANNEL == ch) 800e866: 79fa ldrb r2, [r7, #7] 800e868: 4b5a ldr r3, [pc, #360] ; (800e9d4 ) 800e86a: 681b ldr r3, [r3, #0] 800e86c: 429a cmp r2, r3 800e86e: f040 80e8 bne.w 800ea42 { LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800e872: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800e876: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800e87a: f7f6 fa69 bl 8004d50 if(focused) 800e87e: 4b56 ldr r3, [pc, #344] ; (800e9d8 ) 800e880: 781b ldrb r3, [r3, #0] 800e882: b2db uxtb r3, r3 800e884: 2b00 cmp r3, #0 800e886: d023 beq.n 800e8d0 { if(blk) 800e888: 683b ldr r3, [r7, #0] 800e88a: 2b00 cmp r3, #0 800e88c: d040 beq.n 800e910 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800e88e: 79fb ldrb r3, [r7, #7] 800e890: 4a52 ldr r2, [pc, #328] ; (800e9dc ) 800e892: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800e896: 79fb ldrb r3, [r7, #7] 800e898: 4a51 ldr r2, [pc, #324] ; (800e9e0 ) 800e89a: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800e89e: 4b40 ldr r3, [pc, #256] ; (800e9a0 ) 800e8a0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800e8a4: b29b uxth r3, r3 800e8a6: 4619 mov r1, r3 800e8a8: 79fb ldrb r3, [r7, #7] 800e8aa: 4a3d ldr r2, [pc, #244] ; (800e9a0 ) 800e8ac: 015b lsls r3, r3, #5 800e8ae: 4413 add r3, r2 800e8b0: 3302 adds r3, #2 800e8b2: 881b ldrh r3, [r3, #0] 800e8b4: b29b uxth r3, r3 800e8b6: 461d mov r5, r3 800e8b8: 4a4a ldr r2, [pc, #296] ; (800e9e4 ) 800e8ba: 460b mov r3, r1 800e8bc: 009b lsls r3, r3, #2 800e8be: 440b add r3, r1 800e8c0: 442b add r3, r5 800e8c2: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800e8c6: 2303 movs r3, #3 800e8c8: 4621 mov r1, r4 800e8ca: f7f6 fb07 bl 8004edc 800e8ce: e01f b.n 800e910 } else BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800e8d0: 79fb ldrb r3, [r7, #7] 800e8d2: 4a42 ldr r2, [pc, #264] ; (800e9dc ) 800e8d4: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800e8d8: 79fb ldrb r3, [r7, #7] 800e8da: 4a41 ldr r2, [pc, #260] ; (800e9e0 ) 800e8dc: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800e8e0: 4b2f ldr r3, [pc, #188] ; (800e9a0 ) 800e8e2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800e8e6: b29b uxth r3, r3 800e8e8: 4619 mov r1, r3 800e8ea: 79fb ldrb r3, [r7, #7] 800e8ec: 4a2c ldr r2, [pc, #176] ; (800e9a0 ) 800e8ee: 015b lsls r3, r3, #5 800e8f0: 4413 add r3, r2 800e8f2: 3302 adds r3, #2 800e8f4: 881b ldrh r3, [r3, #0] 800e8f6: b29b uxth r3, r3 800e8f8: 461d mov r5, r3 800e8fa: 4a3a ldr r2, [pc, #232] ; (800e9e4 ) 800e8fc: 460b mov r3, r1 800e8fe: 009b lsls r3, r3, #2 800e900: 440b add r3, r1 800e902: 442b add r3, r5 800e904: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800e908: 2303 movs r3, #3 800e90a: 4621 mov r1, r4 800e90c: f7f6 fae6 bl 8004edc LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800e910: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800e914: 4834 ldr r0, [pc, #208] ; (800e9e8 ) 800e916: f7f6 fa1b bl 8004d50 //BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800e91a: 79fb ldrb r3, [r7, #7] 800e91c: 4a33 ldr r2, [pc, #204] ; (800e9ec ) 800e91e: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800e922: 79fb ldrb r3, [r7, #7] 800e924: 4a32 ldr r2, [pc, #200] ; (800e9f0 ) 800e926: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800e92a: 4b1d ldr r3, [pc, #116] ; (800e9a0 ) 800e92c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800e930: b29b uxth r3, r3 800e932: 461d mov r5, r3 800e934: 79fb ldrb r3, [r7, #7] 800e936: 4a1a ldr r2, [pc, #104] ; (800e9a0 ) 800e938: 015b lsls r3, r3, #5 800e93a: 4413 add r3, r2 800e93c: 3304 adds r3, #4 800e93e: 881b ldrh r3, [r3, #0] 800e940: b29b uxth r3, r3 800e942: 461c mov r4, r3 800e944: 4a2b ldr r2, [pc, #172] ; (800e9f4 ) 800e946: 00eb lsls r3, r5, #3 800e948: 4423 add r3, r4 800e94a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800e94e: 2303 movs r3, #3 800e950: f7f6 fac4 bl 8004edc if(pardata.LANG == RUS) 800e954: 4b12 ldr r3, [pc, #72] ; (800e9a0 ) 800e956: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800e95a: b29b uxth r3, r3 800e95c: 2b00 cmp r3, #0 800e95e: d14f bne.n 800ea00 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800e960: 79fb ldrb r3, [r7, #7] 800e962: 4a14 ldr r2, [pc, #80] ; (800e9b4 ) 800e964: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800e968: 3305 adds r3, #5 800e96a: b298 uxth r0, r3 800e96c: 79fb ldrb r3, [r7, #7] 800e96e: 4a22 ldr r2, [pc, #136] ; (800e9f8 ) 800e970: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800e974: 79fb ldrb r3, [r7, #7] 800e976: 4a0a ldr r2, [pc, #40] ; (800e9a0 ) 800e978: 015b lsls r3, r3, #5 800e97a: 4413 add r3, r2 800e97c: 3312 adds r3, #18 800e97e: 881b ldrh r3, [r3, #0] 800e980: b29b uxth r3, r3 800e982: 461a mov r2, r3 800e984: 491d ldr r1, [pc, #116] ; (800e9fc ) 800e986: 4613 mov r3, r2 800e988: 015b lsls r3, r3, #5 800e98a: 4413 add r3, r2 800e98c: 6b3a ldr r2, [r7, #48] ; 0x30 800e98e: 4413 add r3, r2 800e990: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800e994: 2303 movs r3, #3 800e996: 4621 mov r1, r4 800e998: f7f6 faa0 bl 8004edc if(pardata.LANG == RUS) BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE); } } } 800e99c: e3cf b.n 800f13e 800e99e: bf00 nop 800e9a0: 2006bca8 .word 0x2006bca8 800e9a4: 447a0000 .word 0x447a0000 800e9a8: 461c4000 .word 0x461c4000 800e9ac: 47c35000 .word 0x47c35000 800e9b0: ffffa500 .word 0xffffa500 800e9b4: 0801ad98 .word 0x0801ad98 800e9b8: 0801ada0 .word 0x0801ada0 800e9bc: 200200bc .word 0x200200bc 800e9c0: ff008080 .word 0xff008080 800e9c4: 0801add0 .word 0x0801add0 800e9c8: 080180e4 .word 0x080180e4 800e9cc: 080180e8 .word 0x080180e8 800e9d0: 20020010 .word 0x20020010 800e9d4: 2006ba68 .word 0x2006ba68 800e9d8: 200209e4 .word 0x200209e4 800e9dc: 0801ada8 .word 0x0801ada8 800e9e0: 0801adb0 .word 0x0801adb0 800e9e4: 20020054 .word 0x20020054 800e9e8: ffd8aa57 .word 0xffd8aa57 800e9ec: 0801adb8 .word 0x0801adb8 800e9f0: 0801adc0 .word 0x0801adc0 800e9f4: 2002007c .word 0x2002007c 800e9f8: 0801adc8 .word 0x0801adc8 800e9fc: 2002013c .word 0x2002013c else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE); 800ea00: 79fb ldrb r3, [r7, #7] 800ea02: 4ab4 ldr r2, [pc, #720] ; (800ecd4 ) 800ea04: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800ea08: 3b09 subs r3, #9 800ea0a: b298 uxth r0, r3 800ea0c: 79fb ldrb r3, [r7, #7] 800ea0e: 4ab2 ldr r2, [pc, #712] ; (800ecd8 ) 800ea10: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800ea14: 79fb ldrb r3, [r7, #7] 800ea16: 4ab1 ldr r2, [pc, #708] ; (800ecdc ) 800ea18: 015b lsls r3, r3, #5 800ea1a: 4413 add r3, r2 800ea1c: 3312 adds r3, #18 800ea1e: 881b ldrh r3, [r3, #0] 800ea20: b29b uxth r3, r3 800ea22: 461a mov r2, r3 800ea24: 49ae ldr r1, [pc, #696] ; (800ece0 ) 800ea26: 4613 mov r3, r2 800ea28: 009b lsls r3, r3, #2 800ea2a: 4413 add r3, r2 800ea2c: 009a lsls r2, r3, #2 800ea2e: 4413 add r3, r2 800ea30: 6b3a ldr r2, [r7, #48] ; 0x30 800ea32: 4413 add r3, r2 800ea34: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800ea38: 2303 movs r3, #3 800ea3a: 4621 mov r1, r4 800ea3c: f7f6 fa4e bl 8004edc } 800ea40: e37d b.n 800f13e LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800ea42: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800ea46: 48a7 ldr r0, [pc, #668] ; (800ece4 ) 800ea48: f7f6 f982 bl 8004d50 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800ea4c: 79fb ldrb r3, [r7, #7] 800ea4e: 4aa6 ldr r2, [pc, #664] ; (800ece8 ) 800ea50: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800ea54: 79fb ldrb r3, [r7, #7] 800ea56: 4aa5 ldr r2, [pc, #660] ; (800ecec ) 800ea58: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800ea5c: 4b9f ldr r3, [pc, #636] ; (800ecdc ) 800ea5e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800ea62: b29b uxth r3, r3 800ea64: 4619 mov r1, r3 800ea66: 79fb ldrb r3, [r7, #7] 800ea68: 4a9c ldr r2, [pc, #624] ; (800ecdc ) 800ea6a: 015b lsls r3, r3, #5 800ea6c: 4413 add r3, r2 800ea6e: 3302 adds r3, #2 800ea70: 881b ldrh r3, [r3, #0] 800ea72: b29b uxth r3, r3 800ea74: 461d mov r5, r3 800ea76: 4a9e ldr r2, [pc, #632] ; (800ecf0 ) 800ea78: 460b mov r3, r1 800ea7a: 009b lsls r3, r3, #2 800ea7c: 440b add r3, r1 800ea7e: 442b add r3, r5 800ea80: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800ea84: 2303 movs r3, #3 800ea86: 4621 mov r1, r4 800ea88: f7f6 fa28 bl 8004edc BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800ea8c: 79fb ldrb r3, [r7, #7] 800ea8e: 4a99 ldr r2, [pc, #612] ; (800ecf4 ) 800ea90: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800ea94: 79fb ldrb r3, [r7, #7] 800ea96: 4a98 ldr r2, [pc, #608] ; (800ecf8 ) 800ea98: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800ea9c: 4b8f ldr r3, [pc, #572] ; (800ecdc ) 800ea9e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800eaa2: b29b uxth r3, r3 800eaa4: 461d mov r5, r3 800eaa6: 79fb ldrb r3, [r7, #7] 800eaa8: 4a8c ldr r2, [pc, #560] ; (800ecdc ) 800eaaa: 015b lsls r3, r3, #5 800eaac: 4413 add r3, r2 800eaae: 3304 adds r3, #4 800eab0: 881b ldrh r3, [r3, #0] 800eab2: b29b uxth r3, r3 800eab4: 461c mov r4, r3 800eab6: 4a91 ldr r2, [pc, #580] ; (800ecfc ) 800eab8: 00eb lsls r3, r5, #3 800eaba: 4423 add r3, r4 800eabc: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800eac0: 2303 movs r3, #3 800eac2: f7f6 fa0b bl 8004edc if(pardata.LANG == RUS) 800eac6: 4b85 ldr r3, [pc, #532] ; (800ecdc ) 800eac8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800eacc: b29b uxth r3, r3 800eace: 2b00 cmp r3, #0 800ead0: d11e bne.n 800eb10 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800ead2: 79fb ldrb r3, [r7, #7] 800ead4: 4a7f ldr r2, [pc, #508] ; (800ecd4 ) 800ead6: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800eada: 3305 adds r3, #5 800eadc: b298 uxth r0, r3 800eade: 79fb ldrb r3, [r7, #7] 800eae0: 4a7d ldr r2, [pc, #500] ; (800ecd8 ) 800eae2: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800eae6: 79fb ldrb r3, [r7, #7] 800eae8: 4a7c ldr r2, [pc, #496] ; (800ecdc ) 800eaea: 015b lsls r3, r3, #5 800eaec: 4413 add r3, r2 800eaee: 3312 adds r3, #18 800eaf0: 881b ldrh r3, [r3, #0] 800eaf2: b29b uxth r3, r3 800eaf4: 461a mov r2, r3 800eaf6: 4982 ldr r1, [pc, #520] ; (800ed00 ) 800eaf8: 4613 mov r3, r2 800eafa: 015b lsls r3, r3, #5 800eafc: 4413 add r3, r2 800eafe: 6b3a ldr r2, [r7, #48] ; 0x30 800eb00: 4413 add r3, r2 800eb02: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800eb06: 2303 movs r3, #3 800eb08: 4621 mov r1, r4 800eb0a: f7f6 f9e7 bl 8004edc } 800eb0e: e316 b.n 800f13e else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE); 800eb10: 79fb ldrb r3, [r7, #7] 800eb12: 4a70 ldr r2, [pc, #448] ; (800ecd4 ) 800eb14: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800eb18: 3b09 subs r3, #9 800eb1a: b298 uxth r0, r3 800eb1c: 79fb ldrb r3, [r7, #7] 800eb1e: 4a6e ldr r2, [pc, #440] ; (800ecd8 ) 800eb20: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800eb24: 79fb ldrb r3, [r7, #7] 800eb26: 4a6d ldr r2, [pc, #436] ; (800ecdc ) 800eb28: 015b lsls r3, r3, #5 800eb2a: 4413 add r3, r2 800eb2c: 3312 adds r3, #18 800eb2e: 881b ldrh r3, [r3, #0] 800eb30: b29b uxth r3, r3 800eb32: 461a mov r2, r3 800eb34: 496a ldr r1, [pc, #424] ; (800ece0 ) 800eb36: 4613 mov r3, r2 800eb38: 009b lsls r3, r3, #2 800eb3a: 4413 add r3, r2 800eb3c: 009a lsls r2, r3, #2 800eb3e: 4413 add r3, r2 800eb40: 6b3a ldr r2, [r7, #48] ; 0x30 800eb42: 4413 add r3, r2 800eb44: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800eb48: 2303 movs r3, #3 800eb4a: 4621 mov r1, r4 800eb4c: f7f6 f9c6 bl 8004edc } 800eb50: e2f5 b.n 800f13e if(menupos == Lp) 800eb52: 4b6c ldr r3, [pc, #432] ; (800ed04 ) 800eb54: 781b ldrb r3, [r3, #0] 800eb56: b2db uxtb r3, r3 800eb58: 2b01 cmp r3, #1 800eb5a: f040 8161 bne.w 800ee20 if(ACTIVE_CHANNEL == ch) 800eb5e: 79fa ldrb r2, [r7, #7] 800eb60: 4b69 ldr r3, [pc, #420] ; (800ed08 ) 800eb62: 681b ldr r3, [r3, #0] 800eb64: 429a cmp r2, r3 800eb66: f040 80d3 bne.w 800ed10 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800eb6a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800eb6e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800eb72: f7f6 f8ed bl 8004d50 if(focused) 800eb76: 4b65 ldr r3, [pc, #404] ; (800ed0c ) 800eb78: 781b ldrb r3, [r3, #0] 800eb7a: b2db uxtb r3, r3 800eb7c: 2b00 cmp r3, #0 800eb7e: d020 beq.n 800ebc2 if(blk) 800eb80: 683b ldr r3, [r7, #0] 800eb82: 2b00 cmp r3, #0 800eb84: d03a beq.n 800ebfc BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800eb86: 79fb ldrb r3, [r7, #7] 800eb88: 4a5a ldr r2, [pc, #360] ; (800ecf4 ) 800eb8a: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800eb8e: 79fb ldrb r3, [r7, #7] 800eb90: 4a59 ldr r2, [pc, #356] ; (800ecf8 ) 800eb92: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800eb96: 4b51 ldr r3, [pc, #324] ; (800ecdc ) 800eb98: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800eb9c: b29b uxth r3, r3 800eb9e: 461d mov r5, r3 800eba0: 79fb ldrb r3, [r7, #7] 800eba2: 4a4e ldr r2, [pc, #312] ; (800ecdc ) 800eba4: 015b lsls r3, r3, #5 800eba6: 4413 add r3, r2 800eba8: 3304 adds r3, #4 800ebaa: 881b ldrh r3, [r3, #0] 800ebac: b29b uxth r3, r3 800ebae: 461c mov r4, r3 800ebb0: 4a52 ldr r2, [pc, #328] ; (800ecfc ) 800ebb2: 00eb lsls r3, r5, #3 800ebb4: 4423 add r3, r4 800ebb6: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800ebba: 2303 movs r3, #3 800ebbc: f7f6 f98e bl 8004edc 800ebc0: e01c b.n 800ebfc BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800ebc2: 79fb ldrb r3, [r7, #7] 800ebc4: 4a4b ldr r2, [pc, #300] ; (800ecf4 ) 800ebc6: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800ebca: 79fb ldrb r3, [r7, #7] 800ebcc: 4a4a ldr r2, [pc, #296] ; (800ecf8 ) 800ebce: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800ebd2: 4b42 ldr r3, [pc, #264] ; (800ecdc ) 800ebd4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800ebd8: b29b uxth r3, r3 800ebda: 461d mov r5, r3 800ebdc: 79fb ldrb r3, [r7, #7] 800ebde: 4a3f ldr r2, [pc, #252] ; (800ecdc ) 800ebe0: 015b lsls r3, r3, #5 800ebe2: 4413 add r3, r2 800ebe4: 3304 adds r3, #4 800ebe6: 881b ldrh r3, [r3, #0] 800ebe8: b29b uxth r3, r3 800ebea: 461c mov r4, r3 800ebec: 4a43 ldr r2, [pc, #268] ; (800ecfc ) 800ebee: 00eb lsls r3, r5, #3 800ebf0: 4423 add r3, r4 800ebf2: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800ebf6: 2303 movs r3, #3 800ebf8: f7f6 f970 bl 8004edc LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800ebfc: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800ec00: 4838 ldr r0, [pc, #224] ; (800ece4 ) 800ec02: f7f6 f8a5 bl 8004d50 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800ec06: 79fb ldrb r3, [r7, #7] 800ec08: 4a37 ldr r2, [pc, #220] ; (800ece8 ) 800ec0a: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800ec0e: 79fb ldrb r3, [r7, #7] 800ec10: 4a36 ldr r2, [pc, #216] ; (800ecec ) 800ec12: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800ec16: 4b31 ldr r3, [pc, #196] ; (800ecdc ) 800ec18: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800ec1c: b29b uxth r3, r3 800ec1e: 4619 mov r1, r3 800ec20: 79fb ldrb r3, [r7, #7] 800ec22: 4a2e ldr r2, [pc, #184] ; (800ecdc ) 800ec24: 015b lsls r3, r3, #5 800ec26: 4413 add r3, r2 800ec28: 3302 adds r3, #2 800ec2a: 881b ldrh r3, [r3, #0] 800ec2c: b29b uxth r3, r3 800ec2e: 461d mov r5, r3 800ec30: 4a2f ldr r2, [pc, #188] ; (800ecf0 ) 800ec32: 460b mov r3, r1 800ec34: 009b lsls r3, r3, #2 800ec36: 440b add r3, r1 800ec38: 442b add r3, r5 800ec3a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800ec3e: 2303 movs r3, #3 800ec40: 4621 mov r1, r4 800ec42: f7f6 f94b bl 8004edc if(pardata.LANG == RUS) 800ec46: 4b25 ldr r3, [pc, #148] ; (800ecdc ) 800ec48: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800ec4c: b29b uxth r3, r3 800ec4e: 2b00 cmp r3, #0 800ec50: d11e bne.n 800ec90 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800ec52: 79fb ldrb r3, [r7, #7] 800ec54: 4a1f ldr r2, [pc, #124] ; (800ecd4 ) 800ec56: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800ec5a: 3305 adds r3, #5 800ec5c: b298 uxth r0, r3 800ec5e: 79fb ldrb r3, [r7, #7] 800ec60: 4a1d ldr r2, [pc, #116] ; (800ecd8 ) 800ec62: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800ec66: 79fb ldrb r3, [r7, #7] 800ec68: 4a1c ldr r2, [pc, #112] ; (800ecdc ) 800ec6a: 015b lsls r3, r3, #5 800ec6c: 4413 add r3, r2 800ec6e: 3312 adds r3, #18 800ec70: 881b ldrh r3, [r3, #0] 800ec72: b29b uxth r3, r3 800ec74: 461a mov r2, r3 800ec76: 4922 ldr r1, [pc, #136] ; (800ed00 ) 800ec78: 4613 mov r3, r2 800ec7a: 015b lsls r3, r3, #5 800ec7c: 4413 add r3, r2 800ec7e: 6b3a ldr r2, [r7, #48] ; 0x30 800ec80: 4413 add r3, r2 800ec82: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800ec86: 2303 movs r3, #3 800ec88: 4621 mov r1, r4 800ec8a: f7f6 f927 bl 8004edc } 800ec8e: e256 b.n 800f13e else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE); 800ec90: 79fb ldrb r3, [r7, #7] 800ec92: 4a10 ldr r2, [pc, #64] ; (800ecd4 ) 800ec94: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800ec98: 3b09 subs r3, #9 800ec9a: b298 uxth r0, r3 800ec9c: 79fb ldrb r3, [r7, #7] 800ec9e: 4a0e ldr r2, [pc, #56] ; (800ecd8 ) 800eca0: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800eca4: 79fb ldrb r3, [r7, #7] 800eca6: 4a0d ldr r2, [pc, #52] ; (800ecdc ) 800eca8: 015b lsls r3, r3, #5 800ecaa: 4413 add r3, r2 800ecac: 3312 adds r3, #18 800ecae: 881b ldrh r3, [r3, #0] 800ecb0: b29b uxth r3, r3 800ecb2: 461a mov r2, r3 800ecb4: 490a ldr r1, [pc, #40] ; (800ece0 ) 800ecb6: 4613 mov r3, r2 800ecb8: 009b lsls r3, r3, #2 800ecba: 4413 add r3, r2 800ecbc: 009a lsls r2, r3, #2 800ecbe: 4413 add r3, r2 800ecc0: 6b3a ldr r2, [r7, #48] ; 0x30 800ecc2: 4413 add r3, r2 800ecc4: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800ecc8: 2303 movs r3, #3 800ecca: 4621 mov r1, r4 800eccc: f7f6 f906 bl 8004edc } 800ecd0: e235 b.n 800f13e 800ecd2: bf00 nop 800ecd4: 0801ad98 .word 0x0801ad98 800ecd8: 0801adc8 .word 0x0801adc8 800ecdc: 2006bca8 .word 0x2006bca8 800ece0: 200205e0 .word 0x200205e0 800ece4: ffd8aa57 .word 0xffd8aa57 800ece8: 0801ada8 .word 0x0801ada8 800ecec: 0801adb0 .word 0x0801adb0 800ecf0: 20020054 .word 0x20020054 800ecf4: 0801adb8 .word 0x0801adb8 800ecf8: 0801adc0 .word 0x0801adc0 800ecfc: 2002007c .word 0x2002007c 800ed00: 2002013c .word 0x2002013c 800ed04: 20020010 .word 0x20020010 800ed08: 2006ba68 .word 0x2006ba68 800ed0c: 200209e4 .word 0x200209e4 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800ed10: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800ed14: 48b7 ldr r0, [pc, #732] ; (800eff4 ) 800ed16: f7f6 f81b bl 8004d50 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800ed1a: 79fb ldrb r3, [r7, #7] 800ed1c: 4ab6 ldr r2, [pc, #728] ; (800eff8 ) 800ed1e: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800ed22: 79fb ldrb r3, [r7, #7] 800ed24: 4ab5 ldr r2, [pc, #724] ; (800effc ) 800ed26: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800ed2a: 4bb5 ldr r3, [pc, #724] ; (800f000 ) 800ed2c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800ed30: b29b uxth r3, r3 800ed32: 4619 mov r1, r3 800ed34: 79fb ldrb r3, [r7, #7] 800ed36: 4ab2 ldr r2, [pc, #712] ; (800f000 ) 800ed38: 015b lsls r3, r3, #5 800ed3a: 4413 add r3, r2 800ed3c: 3302 adds r3, #2 800ed3e: 881b ldrh r3, [r3, #0] 800ed40: b29b uxth r3, r3 800ed42: 461d mov r5, r3 800ed44: 4aaf ldr r2, [pc, #700] ; (800f004 ) 800ed46: 460b mov r3, r1 800ed48: 009b lsls r3, r3, #2 800ed4a: 440b add r3, r1 800ed4c: 442b add r3, r5 800ed4e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800ed52: 2303 movs r3, #3 800ed54: 4621 mov r1, r4 800ed56: f7f6 f8c1 bl 8004edc BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800ed5a: 79fb ldrb r3, [r7, #7] 800ed5c: 4aaa ldr r2, [pc, #680] ; (800f008 ) 800ed5e: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800ed62: 79fb ldrb r3, [r7, #7] 800ed64: 4aa9 ldr r2, [pc, #676] ; (800f00c ) 800ed66: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800ed6a: 4ba5 ldr r3, [pc, #660] ; (800f000 ) 800ed6c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800ed70: b29b uxth r3, r3 800ed72: 461d mov r5, r3 800ed74: 79fb ldrb r3, [r7, #7] 800ed76: 4aa2 ldr r2, [pc, #648] ; (800f000 ) 800ed78: 015b lsls r3, r3, #5 800ed7a: 4413 add r3, r2 800ed7c: 3304 adds r3, #4 800ed7e: 881b ldrh r3, [r3, #0] 800ed80: b29b uxth r3, r3 800ed82: 461c mov r4, r3 800ed84: 4aa2 ldr r2, [pc, #648] ; (800f010 ) 800ed86: 00eb lsls r3, r5, #3 800ed88: 4423 add r3, r4 800ed8a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800ed8e: 2303 movs r3, #3 800ed90: f7f6 f8a4 bl 8004edc if(pardata.LANG == RUS) 800ed94: 4b9a ldr r3, [pc, #616] ; (800f000 ) 800ed96: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800ed9a: b29b uxth r3, r3 800ed9c: 2b00 cmp r3, #0 800ed9e: d11e bne.n 800edde BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800eda0: 79fb ldrb r3, [r7, #7] 800eda2: 4a9c ldr r2, [pc, #624] ; (800f014 ) 800eda4: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800eda8: 3305 adds r3, #5 800edaa: b298 uxth r0, r3 800edac: 79fb ldrb r3, [r7, #7] 800edae: 4a9a ldr r2, [pc, #616] ; (800f018 ) 800edb0: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800edb4: 79fb ldrb r3, [r7, #7] 800edb6: 4a92 ldr r2, [pc, #584] ; (800f000 ) 800edb8: 015b lsls r3, r3, #5 800edba: 4413 add r3, r2 800edbc: 3312 adds r3, #18 800edbe: 881b ldrh r3, [r3, #0] 800edc0: b29b uxth r3, r3 800edc2: 461a mov r2, r3 800edc4: 4995 ldr r1, [pc, #596] ; (800f01c ) 800edc6: 4613 mov r3, r2 800edc8: 015b lsls r3, r3, #5 800edca: 4413 add r3, r2 800edcc: 6b3a ldr r2, [r7, #48] ; 0x30 800edce: 4413 add r3, r2 800edd0: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800edd4: 2303 movs r3, #3 800edd6: 4621 mov r1, r4 800edd8: f7f6 f880 bl 8004edc } 800eddc: e1af b.n 800f13e else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE); 800edde: 79fb ldrb r3, [r7, #7] 800ede0: 4a8c ldr r2, [pc, #560] ; (800f014 ) 800ede2: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800ede6: 3b09 subs r3, #9 800ede8: b298 uxth r0, r3 800edea: 79fb ldrb r3, [r7, #7] 800edec: 4a8a ldr r2, [pc, #552] ; (800f018 ) 800edee: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800edf2: 79fb ldrb r3, [r7, #7] 800edf4: 4a82 ldr r2, [pc, #520] ; (800f000 ) 800edf6: 015b lsls r3, r3, #5 800edf8: 4413 add r3, r2 800edfa: 3312 adds r3, #18 800edfc: 881b ldrh r3, [r3, #0] 800edfe: b29b uxth r3, r3 800ee00: 461a mov r2, r3 800ee02: 4987 ldr r1, [pc, #540] ; (800f020 ) 800ee04: 4613 mov r3, r2 800ee06: 009b lsls r3, r3, #2 800ee08: 4413 add r3, r2 800ee0a: 009a lsls r2, r3, #2 800ee0c: 4413 add r3, r2 800ee0e: 6b3a ldr r2, [r7, #48] ; 0x30 800ee10: 4413 add r3, r2 800ee12: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800ee16: 2303 movs r3, #3 800ee18: 4621 mov r1, r4 800ee1a: f7f6 f85f bl 8004edc } 800ee1e: e18e b.n 800f13e if(menupos == Out) 800ee20: 4b80 ldr r3, [pc, #512] ; (800f024 ) 800ee22: 781b ldrb r3, [r3, #0] 800ee24: b2db uxtb r3, r3 800ee26: 2b02 cmp r3, #2 800ee28: f040 8189 bne.w 800f13e if(ACTIVE_CHANNEL == ch) 800ee2c: 79fa ldrb r2, [r7, #7] 800ee2e: 4b7e ldr r3, [pc, #504] ; (800f028 ) 800ee30: 681b ldr r3, [r3, #0] 800ee32: 429a cmp r2, r3 800ee34: f040 80fc bne.w 800f030 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800ee38: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800ee3c: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800ee40: f7f5 ff86 bl 8004d50 if(focused) 800ee44: 4b79 ldr r3, [pc, #484] ; (800f02c ) 800ee46: 781b ldrb r3, [r3, #0] 800ee48: b2db uxtb r3, r3 800ee4a: 2b00 cmp r3, #0 800ee4c: d049 beq.n 800eee2 if(blk) 800ee4e: 683b ldr r3, [r7, #0] 800ee50: 2b00 cmp r3, #0 800ee52: f000 808b beq.w 800ef6c if(pardata.LANG == RUS) 800ee56: 4b6a ldr r3, [pc, #424] ; (800f000 ) 800ee58: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800ee5c: b29b uxth r3, r3 800ee5e: 2b00 cmp r3, #0 800ee60: d11e bne.n 800eea0 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800ee62: 79fb ldrb r3, [r7, #7] 800ee64: 4a6b ldr r2, [pc, #428] ; (800f014 ) 800ee66: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800ee6a: 3305 adds r3, #5 800ee6c: b298 uxth r0, r3 800ee6e: 79fb ldrb r3, [r7, #7] 800ee70: 4a69 ldr r2, [pc, #420] ; (800f018 ) 800ee72: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800ee76: 79fb ldrb r3, [r7, #7] 800ee78: 4a61 ldr r2, [pc, #388] ; (800f000 ) 800ee7a: 015b lsls r3, r3, #5 800ee7c: 4413 add r3, r2 800ee7e: 3312 adds r3, #18 800ee80: 881b ldrh r3, [r3, #0] 800ee82: b29b uxth r3, r3 800ee84: 461a mov r2, r3 800ee86: 4965 ldr r1, [pc, #404] ; (800f01c ) 800ee88: 4613 mov r3, r2 800ee8a: 015b lsls r3, r3, #5 800ee8c: 4413 add r3, r2 800ee8e: 6b3a ldr r2, [r7, #48] ; 0x30 800ee90: 4413 add r3, r2 800ee92: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800ee96: 2303 movs r3, #3 800ee98: 4621 mov r1, r4 800ee9a: f7f6 f81f bl 8004edc 800ee9e: e065 b.n 800ef6c else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE); 800eea0: 79fb ldrb r3, [r7, #7] 800eea2: 4a5c ldr r2, [pc, #368] ; (800f014 ) 800eea4: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800eea8: 3b09 subs r3, #9 800eeaa: b298 uxth r0, r3 800eeac: 79fb ldrb r3, [r7, #7] 800eeae: 4a5a ldr r2, [pc, #360] ; (800f018 ) 800eeb0: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800eeb4: 79fb ldrb r3, [r7, #7] 800eeb6: 4a52 ldr r2, [pc, #328] ; (800f000 ) 800eeb8: 015b lsls r3, r3, #5 800eeba: 4413 add r3, r2 800eebc: 3312 adds r3, #18 800eebe: 881b ldrh r3, [r3, #0] 800eec0: b29b uxth r3, r3 800eec2: 461a mov r2, r3 800eec4: 4956 ldr r1, [pc, #344] ; (800f020 ) 800eec6: 4613 mov r3, r2 800eec8: 009b lsls r3, r3, #2 800eeca: 4413 add r3, r2 800eecc: 009a lsls r2, r3, #2 800eece: 4413 add r3, r2 800eed0: 6b3a ldr r2, [r7, #48] ; 0x30 800eed2: 4413 add r3, r2 800eed4: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800eed8: 2303 movs r3, #3 800eeda: 4621 mov r1, r4 800eedc: f7f5 fffe bl 8004edc 800eee0: e044 b.n 800ef6c if(pardata.LANG == RUS) 800eee2: 4b47 ldr r3, [pc, #284] ; (800f000 ) 800eee4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800eee8: b29b uxth r3, r3 800eeea: 2b00 cmp r3, #0 800eeec: d11e bne.n 800ef2c BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800eeee: 79fb ldrb r3, [r7, #7] 800eef0: 4a48 ldr r2, [pc, #288] ; (800f014 ) 800eef2: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800eef6: 3305 adds r3, #5 800eef8: b298 uxth r0, r3 800eefa: 79fb ldrb r3, [r7, #7] 800eefc: 4a46 ldr r2, [pc, #280] ; (800f018 ) 800eefe: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800ef02: 79fb ldrb r3, [r7, #7] 800ef04: 4a3e ldr r2, [pc, #248] ; (800f000 ) 800ef06: 015b lsls r3, r3, #5 800ef08: 4413 add r3, r2 800ef0a: 3312 adds r3, #18 800ef0c: 881b ldrh r3, [r3, #0] 800ef0e: b29b uxth r3, r3 800ef10: 461a mov r2, r3 800ef12: 4942 ldr r1, [pc, #264] ; (800f01c ) 800ef14: 4613 mov r3, r2 800ef16: 015b lsls r3, r3, #5 800ef18: 4413 add r3, r2 800ef1a: 6b3a ldr r2, [r7, #48] ; 0x30 800ef1c: 4413 add r3, r2 800ef1e: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800ef22: 2303 movs r3, #3 800ef24: 4621 mov r1, r4 800ef26: f7f5 ffd9 bl 8004edc 800ef2a: e01f b.n 800ef6c else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE); 800ef2c: 79fb ldrb r3, [r7, #7] 800ef2e: 4a39 ldr r2, [pc, #228] ; (800f014 ) 800ef30: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800ef34: 3b09 subs r3, #9 800ef36: b298 uxth r0, r3 800ef38: 79fb ldrb r3, [r7, #7] 800ef3a: 4a37 ldr r2, [pc, #220] ; (800f018 ) 800ef3c: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800ef40: 79fb ldrb r3, [r7, #7] 800ef42: 4a2f ldr r2, [pc, #188] ; (800f000 ) 800ef44: 015b lsls r3, r3, #5 800ef46: 4413 add r3, r2 800ef48: 3312 adds r3, #18 800ef4a: 881b ldrh r3, [r3, #0] 800ef4c: b29b uxth r3, r3 800ef4e: 461a mov r2, r3 800ef50: 4933 ldr r1, [pc, #204] ; (800f020 ) 800ef52: 4613 mov r3, r2 800ef54: 009b lsls r3, r3, #2 800ef56: 4413 add r3, r2 800ef58: 009a lsls r2, r3, #2 800ef5a: 4413 add r3, r2 800ef5c: 6b3a ldr r2, [r7, #48] ; 0x30 800ef5e: 4413 add r3, r2 800ef60: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800ef64: 2303 movs r3, #3 800ef66: 4621 mov r1, r4 800ef68: f7f5 ffb8 bl 8004edc LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800ef6c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800ef70: 4820 ldr r0, [pc, #128] ; (800eff4 ) 800ef72: f7f5 feed bl 8004d50 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800ef76: 79fb ldrb r3, [r7, #7] 800ef78: 4a1f ldr r2, [pc, #124] ; (800eff8 ) 800ef7a: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800ef7e: 79fb ldrb r3, [r7, #7] 800ef80: 4a1e ldr r2, [pc, #120] ; (800effc ) 800ef82: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800ef86: 4b1e ldr r3, [pc, #120] ; (800f000 ) 800ef88: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800ef8c: b29b uxth r3, r3 800ef8e: 4619 mov r1, r3 800ef90: 79fb ldrb r3, [r7, #7] 800ef92: 4a1b ldr r2, [pc, #108] ; (800f000 ) 800ef94: 015b lsls r3, r3, #5 800ef96: 4413 add r3, r2 800ef98: 3302 adds r3, #2 800ef9a: 881b ldrh r3, [r3, #0] 800ef9c: b29b uxth r3, r3 800ef9e: 461d mov r5, r3 800efa0: 4a18 ldr r2, [pc, #96] ; (800f004 ) 800efa2: 460b mov r3, r1 800efa4: 009b lsls r3, r3, #2 800efa6: 440b add r3, r1 800efa8: 442b add r3, r5 800efaa: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800efae: 2303 movs r3, #3 800efb0: 4621 mov r1, r4 800efb2: f7f5 ff93 bl 8004edc BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800efb6: 79fb ldrb r3, [r7, #7] 800efb8: 4a13 ldr r2, [pc, #76] ; (800f008 ) 800efba: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800efbe: 79fb ldrb r3, [r7, #7] 800efc0: 4a12 ldr r2, [pc, #72] ; (800f00c ) 800efc2: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800efc6: 4b0e ldr r3, [pc, #56] ; (800f000 ) 800efc8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800efcc: b29b uxth r3, r3 800efce: 461d mov r5, r3 800efd0: 79fb ldrb r3, [r7, #7] 800efd2: 4a0b ldr r2, [pc, #44] ; (800f000 ) 800efd4: 015b lsls r3, r3, #5 800efd6: 4413 add r3, r2 800efd8: 3304 adds r3, #4 800efda: 881b ldrh r3, [r3, #0] 800efdc: b29b uxth r3, r3 800efde: 461c mov r4, r3 800efe0: 4a0b ldr r2, [pc, #44] ; (800f010 ) 800efe2: 00eb lsls r3, r5, #3 800efe4: 4423 add r3, r4 800efe6: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800efea: 2303 movs r3, #3 800efec: f7f5 ff76 bl 8004edc } 800eff0: e0a5 b.n 800f13e 800eff2: bf00 nop 800eff4: ffd8aa57 .word 0xffd8aa57 800eff8: 0801ada8 .word 0x0801ada8 800effc: 0801adb0 .word 0x0801adb0 800f000: 2006bca8 .word 0x2006bca8 800f004: 20020054 .word 0x20020054 800f008: 0801adb8 .word 0x0801adb8 800f00c: 0801adc0 .word 0x0801adc0 800f010: 2002007c .word 0x2002007c 800f014: 0801ad98 .word 0x0801ad98 800f018: 0801adc8 .word 0x0801adc8 800f01c: 2002013c .word 0x2002013c 800f020: 200205e0 .word 0x200205e0 800f024: 20020010 .word 0x20020010 800f028: 2006ba68 .word 0x2006ba68 800f02c: 200209e4 .word 0x200209e4 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800f030: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f034: 4844 ldr r0, [pc, #272] ; (800f148 ) 800f036: f7f5 fe8b bl 8004d50 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800f03a: 79fb ldrb r3, [r7, #7] 800f03c: 4a43 ldr r2, [pc, #268] ; (800f14c ) 800f03e: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800f042: 79fb ldrb r3, [r7, #7] 800f044: 4a42 ldr r2, [pc, #264] ; (800f150 ) 800f046: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800f04a: 4b42 ldr r3, [pc, #264] ; (800f154 ) 800f04c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800f050: b29b uxth r3, r3 800f052: 4619 mov r1, r3 800f054: 79fb ldrb r3, [r7, #7] 800f056: 4a3f ldr r2, [pc, #252] ; (800f154 ) 800f058: 015b lsls r3, r3, #5 800f05a: 4413 add r3, r2 800f05c: 3302 adds r3, #2 800f05e: 881b ldrh r3, [r3, #0] 800f060: b29b uxth r3, r3 800f062: 461d mov r5, r3 800f064: 4a3c ldr r2, [pc, #240] ; (800f158 ) 800f066: 460b mov r3, r1 800f068: 009b lsls r3, r3, #2 800f06a: 440b add r3, r1 800f06c: 442b add r3, r5 800f06e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800f072: 2303 movs r3, #3 800f074: 4621 mov r1, r4 800f076: f7f5 ff31 bl 8004edc BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800f07a: 79fb ldrb r3, [r7, #7] 800f07c: 4a37 ldr r2, [pc, #220] ; (800f15c ) 800f07e: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800f082: 79fb ldrb r3, [r7, #7] 800f084: 4a36 ldr r2, [pc, #216] ; (800f160 ) 800f086: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800f08a: 4b32 ldr r3, [pc, #200] ; (800f154 ) 800f08c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800f090: b29b uxth r3, r3 800f092: 461d mov r5, r3 800f094: 79fb ldrb r3, [r7, #7] 800f096: 4a2f ldr r2, [pc, #188] ; (800f154 ) 800f098: 015b lsls r3, r3, #5 800f09a: 4413 add r3, r2 800f09c: 3304 adds r3, #4 800f09e: 881b ldrh r3, [r3, #0] 800f0a0: b29b uxth r3, r3 800f0a2: 461c mov r4, r3 800f0a4: 4a2f ldr r2, [pc, #188] ; (800f164 ) 800f0a6: 00eb lsls r3, r5, #3 800f0a8: 4423 add r3, r4 800f0aa: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800f0ae: 2303 movs r3, #3 800f0b0: f7f5 ff14 bl 8004edc if(pardata.LANG == RUS) 800f0b4: 4b27 ldr r3, [pc, #156] ; (800f154 ) 800f0b6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800f0ba: b29b uxth r3, r3 800f0bc: 2b00 cmp r3, #0 800f0be: d11e bne.n 800f0fe BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800f0c0: 79fb ldrb r3, [r7, #7] 800f0c2: 4a29 ldr r2, [pc, #164] ; (800f168 ) 800f0c4: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800f0c8: 3305 adds r3, #5 800f0ca: b298 uxth r0, r3 800f0cc: 79fb ldrb r3, [r7, #7] 800f0ce: 4a27 ldr r2, [pc, #156] ; (800f16c ) 800f0d0: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800f0d4: 79fb ldrb r3, [r7, #7] 800f0d6: 4a1f ldr r2, [pc, #124] ; (800f154 ) 800f0d8: 015b lsls r3, r3, #5 800f0da: 4413 add r3, r2 800f0dc: 3312 adds r3, #18 800f0de: 881b ldrh r3, [r3, #0] 800f0e0: b29b uxth r3, r3 800f0e2: 461a mov r2, r3 800f0e4: 4922 ldr r1, [pc, #136] ; (800f170 ) 800f0e6: 4613 mov r3, r2 800f0e8: 015b lsls r3, r3, #5 800f0ea: 4413 add r3, r2 800f0ec: 6b3a ldr r2, [r7, #48] ; 0x30 800f0ee: 4413 add r3, r2 800f0f0: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800f0f4: 2303 movs r3, #3 800f0f6: 4621 mov r1, r4 800f0f8: f7f5 fef0 bl 8004edc } 800f0fc: e01f b.n 800f13e else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE); 800f0fe: 79fb ldrb r3, [r7, #7] 800f100: 4a19 ldr r2, [pc, #100] ; (800f168 ) 800f102: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800f106: 3b09 subs r3, #9 800f108: b298 uxth r0, r3 800f10a: 79fb ldrb r3, [r7, #7] 800f10c: 4a17 ldr r2, [pc, #92] ; (800f16c ) 800f10e: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800f112: 79fb ldrb r3, [r7, #7] 800f114: 4a0f ldr r2, [pc, #60] ; (800f154 ) 800f116: 015b lsls r3, r3, #5 800f118: 4413 add r3, r2 800f11a: 3312 adds r3, #18 800f11c: 881b ldrh r3, [r3, #0] 800f11e: b29b uxth r3, r3 800f120: 461a mov r2, r3 800f122: 4914 ldr r1, [pc, #80] ; (800f174 ) 800f124: 4613 mov r3, r2 800f126: 009b lsls r3, r3, #2 800f128: 4413 add r3, r2 800f12a: 009a lsls r2, r3, #2 800f12c: 4413 add r3, r2 800f12e: 6b3a ldr r2, [r7, #48] ; 0x30 800f130: 4413 add r3, r2 800f132: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800f136: 2303 movs r3, #3 800f138: 4621 mov r1, r4 800f13a: f7f5 fecf bl 8004edc } 800f13e: bf00 nop 800f140: 3738 adds r7, #56 ; 0x38 800f142: 46bd mov sp, r7 800f144: bdb0 pop {r4, r5, r7, pc} 800f146: bf00 nop 800f148: ffd8aa57 .word 0xffd8aa57 800f14c: 0801ada8 .word 0x0801ada8 800f150: 0801adb0 .word 0x0801adb0 800f154: 2006bca8 .word 0x2006bca8 800f158: 20020054 .word 0x20020054 800f15c: 0801adb8 .word 0x0801adb8 800f160: 0801adc0 .word 0x0801adc0 800f164: 2002007c .word 0x2002007c 800f168: 0801ad98 .word 0x0801ad98 800f16c: 0801adc8 .word 0x0801adc8 800f170: 2002013c .word 0x2002013c 800f174: 200205e0 .word 0x200205e0 0800f178 : void DrawButtons(void) { 800f178: b580 push {r7, lr} 800f17a: af00 add r7, sp, #0 if(menupos == Set100) 800f17c: 4ba1 ldr r3, [pc, #644] ; (800f404 ) 800f17e: 781b ldrb r3, [r3, #0] 800f180: b2db uxtb r3, r3 800f182: 2b00 cmp r3, #0 800f184: d106 bne.n 800f194 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800f186: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f18a: f04f 30ff mov.w r0, #4294967295 800f18e: f7f5 fddf bl 8004d50 800f192: e004 b.n 800f19e else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800f194: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f198: 489b ldr r0, [pc, #620] ; (800f408 ) 800f19a: f7f5 fdd9 bl 8004d50 BSP_LCD_FillRect(120, 40, 80, 20); //+100 800f19e: 2314 movs r3, #20 800f1a0: 2250 movs r2, #80 ; 0x50 800f1a2: 2128 movs r1, #40 ; 0x28 800f1a4: 2078 movs r0, #120 ; 0x78 800f1a6: f7f6 f995 bl 80054d4 if(menupos == Set_100) 800f1aa: 4b96 ldr r3, [pc, #600] ; (800f404 ) 800f1ac: 781b ldrb r3, [r3, #0] 800f1ae: b2db uxtb r3, r3 800f1b0: 2b01 cmp r3, #1 800f1b2: d106 bne.n 800f1c2 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800f1b4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f1b8: f04f 30ff mov.w r0, #4294967295 800f1bc: f7f5 fdc8 bl 8004d50 800f1c0: e004 b.n 800f1cc else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800f1c2: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f1c6: 4890 ldr r0, [pc, #576] ; (800f408 ) 800f1c8: f7f5 fdc2 bl 8004d50 BSP_LCD_FillRect(120, 65, 80, 20); //-100 800f1cc: 2314 movs r3, #20 800f1ce: 2250 movs r2, #80 ; 0x50 800f1d0: 2141 movs r1, #65 ; 0x41 800f1d2: 2078 movs r0, #120 ; 0x78 800f1d4: f7f6 f97e bl 80054d4 if(menupos == Set10) 800f1d8: 4b8a ldr r3, [pc, #552] ; (800f404 ) 800f1da: 781b ldrb r3, [r3, #0] 800f1dc: b2db uxtb r3, r3 800f1de: 2b02 cmp r3, #2 800f1e0: d106 bne.n 800f1f0 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800f1e2: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f1e6: f04f 30ff mov.w r0, #4294967295 800f1ea: f7f5 fdb1 bl 8004d50 800f1ee: e004 b.n 800f1fa else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800f1f0: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f1f4: 4884 ldr r0, [pc, #528] ; (800f408 ) 800f1f6: f7f5 fdab bl 8004d50 BSP_LCD_FillRect(120, 90, 80, 20); //+10 800f1fa: 2314 movs r3, #20 800f1fc: 2250 movs r2, #80 ; 0x50 800f1fe: 215a movs r1, #90 ; 0x5a 800f200: 2078 movs r0, #120 ; 0x78 800f202: f7f6 f967 bl 80054d4 if(menupos == Set_10) 800f206: 4b7f ldr r3, [pc, #508] ; (800f404 ) 800f208: 781b ldrb r3, [r3, #0] 800f20a: b2db uxtb r3, r3 800f20c: 2b03 cmp r3, #3 800f20e: d106 bne.n 800f21e LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800f210: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f214: f04f 30ff mov.w r0, #4294967295 800f218: f7f5 fd9a bl 8004d50 800f21c: e004 b.n 800f228 else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800f21e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f222: 4879 ldr r0, [pc, #484] ; (800f408 ) 800f224: f7f5 fd94 bl 8004d50 BSP_LCD_FillRect(120, 115, 80, 20); //-10 800f228: 2314 movs r3, #20 800f22a: 2250 movs r2, #80 ; 0x50 800f22c: 2173 movs r1, #115 ; 0x73 800f22e: 2078 movs r0, #120 ; 0x78 800f230: f7f6 f950 bl 80054d4 if(menupos == Set1) 800f234: 4b73 ldr r3, [pc, #460] ; (800f404 ) 800f236: 781b ldrb r3, [r3, #0] 800f238: b2db uxtb r3, r3 800f23a: 2b04 cmp r3, #4 800f23c: d106 bne.n 800f24c LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800f23e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f242: f04f 30ff mov.w r0, #4294967295 800f246: f7f5 fd83 bl 8004d50 800f24a: e004 b.n 800f256 else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800f24c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f250: 486d ldr r0, [pc, #436] ; (800f408 ) 800f252: f7f5 fd7d bl 8004d50 BSP_LCD_FillRect(120, 140, 80, 20); //+1 800f256: 2314 movs r3, #20 800f258: 2250 movs r2, #80 ; 0x50 800f25a: 218c movs r1, #140 ; 0x8c 800f25c: 2078 movs r0, #120 ; 0x78 800f25e: f7f6 f939 bl 80054d4 if(menupos == Set_1) 800f262: 4b68 ldr r3, [pc, #416] ; (800f404 ) 800f264: 781b ldrb r3, [r3, #0] 800f266: b2db uxtb r3, r3 800f268: 2b05 cmp r3, #5 800f26a: d106 bne.n 800f27a LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800f26c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f270: f04f 30ff mov.w r0, #4294967295 800f274: f7f5 fd6c bl 8004d50 800f278: e004 b.n 800f284 else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800f27a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f27e: 4862 ldr r0, [pc, #392] ; (800f408 ) 800f280: f7f5 fd66 bl 8004d50 BSP_LCD_FillRect(120, 165, 80, 20); //-1 800f284: 2314 movs r3, #20 800f286: 2250 movs r2, #80 ; 0x50 800f288: 21a5 movs r1, #165 ; 0xa5 800f28a: 2078 movs r0, #120 ; 0x78 800f28c: f7f6 f922 bl 80054d4 if(menupos == Next) 800f290: 4b5c ldr r3, [pc, #368] ; (800f404 ) 800f292: 781b ldrb r3, [r3, #0] 800f294: b2db uxtb r3, r3 800f296: 2b06 cmp r3, #6 800f298: d106 bne.n 800f2a8 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800f29a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f29e: f04f 30ff mov.w r0, #4294967295 800f2a2: f7f5 fd55 bl 8004d50 800f2a6: e004 b.n 800f2b2 else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800f2a8: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800f2ac: 4856 ldr r0, [pc, #344] ; (800f408 ) 800f2ae: f7f5 fd4f bl 8004d50 BSP_LCD_FillRect(120, 190, 80, 20); //Next 800f2b2: 2314 movs r3, #20 800f2b4: 2250 movs r2, #80 ; 0x50 800f2b6: 21be movs r1, #190 ; 0xbe 800f2b8: 2078 movs r0, #120 ; 0x78 800f2ba: f7f6 f90b bl 80054d4 //////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// if(menupos == Set100) 800f2be: 4b51 ldr r3, [pc, #324] ; (800f404 ) 800f2c0: 781b ldrb r3, [r3, #0] 800f2c2: b2db uxtb r3, r3 800f2c4: 2b00 cmp r3, #0 800f2c6: d106 bne.n 800f2d6 LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800f2c8: f04f 31ff mov.w r1, #4294967295 800f2cc: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f2d0: f7f5 fd3e bl 8004d50 800f2d4: e004 b.n 800f2e0 else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY); 800f2d6: 494c ldr r1, [pc, #304] ; (800f408 ) 800f2d8: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f2dc: f7f5 fd38 bl 8004d50 BSP_LCD_DisplayStringAt(160, 40+5, "+100", CENTER_MODE); 800f2e0: 2301 movs r3, #1 800f2e2: 4a4a ldr r2, [pc, #296] ; (800f40c ) 800f2e4: 212d movs r1, #45 ; 0x2d 800f2e6: 20a0 movs r0, #160 ; 0xa0 800f2e8: f7f5 fdf8 bl 8004edc if(menupos == Set_100) 800f2ec: 4b45 ldr r3, [pc, #276] ; (800f404 ) 800f2ee: 781b ldrb r3, [r3, #0] 800f2f0: b2db uxtb r3, r3 800f2f2: 2b01 cmp r3, #1 800f2f4: d106 bne.n 800f304 LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800f2f6: f04f 31ff mov.w r1, #4294967295 800f2fa: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f2fe: f7f5 fd27 bl 8004d50 800f302: e004 b.n 800f30e else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY); 800f304: 4940 ldr r1, [pc, #256] ; (800f408 ) 800f306: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f30a: f7f5 fd21 bl 8004d50 BSP_LCD_DisplayStringAt(160, 65+5, "-100", CENTER_MODE); 800f30e: 2301 movs r3, #1 800f310: 4a3f ldr r2, [pc, #252] ; (800f410 ) 800f312: 2146 movs r1, #70 ; 0x46 800f314: 20a0 movs r0, #160 ; 0xa0 800f316: f7f5 fde1 bl 8004edc if(menupos == Set10) 800f31a: 4b3a ldr r3, [pc, #232] ; (800f404 ) 800f31c: 781b ldrb r3, [r3, #0] 800f31e: b2db uxtb r3, r3 800f320: 2b02 cmp r3, #2 800f322: d106 bne.n 800f332 LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800f324: f04f 31ff mov.w r1, #4294967295 800f328: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f32c: f7f5 fd10 bl 8004d50 800f330: e004 b.n 800f33c else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY); 800f332: 4935 ldr r1, [pc, #212] ; (800f408 ) 800f334: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f338: f7f5 fd0a bl 8004d50 BSP_LCD_DisplayStringAt(160, 90+5, "+10", CENTER_MODE); 800f33c: 2301 movs r3, #1 800f33e: 4a35 ldr r2, [pc, #212] ; (800f414 ) 800f340: 215f movs r1, #95 ; 0x5f 800f342: 20a0 movs r0, #160 ; 0xa0 800f344: f7f5 fdca bl 8004edc if(menupos == Set_10) 800f348: 4b2e ldr r3, [pc, #184] ; (800f404 ) 800f34a: 781b ldrb r3, [r3, #0] 800f34c: b2db uxtb r3, r3 800f34e: 2b03 cmp r3, #3 800f350: d106 bne.n 800f360 LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800f352: f04f 31ff mov.w r1, #4294967295 800f356: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f35a: f7f5 fcf9 bl 8004d50 800f35e: e004 b.n 800f36a else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY); 800f360: 4929 ldr r1, [pc, #164] ; (800f408 ) 800f362: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f366: f7f5 fcf3 bl 8004d50 BSP_LCD_DisplayStringAt(160, 115+5, "-10", CENTER_MODE); 800f36a: 2301 movs r3, #1 800f36c: 4a2a ldr r2, [pc, #168] ; (800f418 ) 800f36e: 2178 movs r1, #120 ; 0x78 800f370: 20a0 movs r0, #160 ; 0xa0 800f372: f7f5 fdb3 bl 8004edc if(menupos == Set1) 800f376: 4b23 ldr r3, [pc, #140] ; (800f404 ) 800f378: 781b ldrb r3, [r3, #0] 800f37a: b2db uxtb r3, r3 800f37c: 2b04 cmp r3, #4 800f37e: d106 bne.n 800f38e LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800f380: f04f 31ff mov.w r1, #4294967295 800f384: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f388: f7f5 fce2 bl 8004d50 800f38c: e004 b.n 800f398 else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY); 800f38e: 491e ldr r1, [pc, #120] ; (800f408 ) 800f390: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f394: f7f5 fcdc bl 8004d50 BSP_LCD_DisplayStringAt(160, 140+5, "+1", CENTER_MODE); 800f398: 2301 movs r3, #1 800f39a: 4a20 ldr r2, [pc, #128] ; (800f41c ) 800f39c: 2191 movs r1, #145 ; 0x91 800f39e: 20a0 movs r0, #160 ; 0xa0 800f3a0: f7f5 fd9c bl 8004edc if(menupos == Set_1) 800f3a4: 4b17 ldr r3, [pc, #92] ; (800f404 ) 800f3a6: 781b ldrb r3, [r3, #0] 800f3a8: b2db uxtb r3, r3 800f3aa: 2b05 cmp r3, #5 800f3ac: d106 bne.n 800f3bc LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800f3ae: f04f 31ff mov.w r1, #4294967295 800f3b2: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f3b6: f7f5 fccb bl 8004d50 800f3ba: e004 b.n 800f3c6 else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY); 800f3bc: 4912 ldr r1, [pc, #72] ; (800f408 ) 800f3be: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f3c2: f7f5 fcc5 bl 8004d50 BSP_LCD_DisplayStringAt(160, 165+5, "-1", CENTER_MODE); 800f3c6: 2301 movs r3, #1 800f3c8: 4a15 ldr r2, [pc, #84] ; (800f420 ) 800f3ca: 21aa movs r1, #170 ; 0xaa 800f3cc: 20a0 movs r0, #160 ; 0xa0 800f3ce: f7f5 fd85 bl 8004edc if(menupos == Next) 800f3d2: 4b0c ldr r3, [pc, #48] ; (800f404 ) 800f3d4: 781b ldrb r3, [r3, #0] 800f3d6: b2db uxtb r3, r3 800f3d8: 2b06 cmp r3, #6 800f3da: d106 bne.n 800f3ea LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800f3dc: f04f 31ff mov.w r1, #4294967295 800f3e0: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f3e4: f7f5 fcb4 bl 8004d50 800f3e8: e004 b.n 800f3f4 else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY); 800f3ea: 4907 ldr r1, [pc, #28] ; (800f408 ) 800f3ec: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800f3f0: f7f5 fcae bl 8004d50 BSP_LCD_DisplayStringAt(160, 190+5, "Далее", CENTER_MODE); 800f3f4: 2301 movs r3, #1 800f3f6: 4a0b ldr r2, [pc, #44] ; (800f424 ) 800f3f8: 21c3 movs r1, #195 ; 0xc3 800f3fa: 20a0 movs r0, #160 ; 0xa0 800f3fc: f7f5 fd6e bl 8004edc } 800f400: bf00 nop 800f402: bd80 pop {r7, pc} 800f404: 20020010 .word 0x20020010 800f408: ff808080 .word 0xff808080 800f40c: 08018520 .word 0x08018520 800f410: 08018528 .word 0x08018528 800f414: 08018530 .word 0x08018530 800f418: 08018534 .word 0x08018534 800f41c: 08018538 .word 0x08018538 800f420: 0801853c .word 0x0801853c 800f424: 08018540 .word 0x08018540 0800f428 : char * FloatToASCII(float32_t Val, int32_t RoundTo) { 800f428: b580 push {r7, lr} 800f42a: b098 sub sp, #96 ; 0x60 800f42c: af00 add r7, sp, #0 800f42e: ed87 0a01 vstr s0, [r7, #4] 800f432: 6038 str r0, [r7, #0] uint8_t idx = 0; 800f434: 2300 movs r3, #0 800f436: f887 305f strb.w r3, [r7, #95] ; 0x5f int32_t i; float32_t value, F, I; uint32_t rnd = 0; 800f43a: 2300 movs r3, #0 800f43c: 653b str r3, [r7, #80] ; 0x50 uint32_t Tmp32 = 0; 800f43e: 2300 movs r3, #0 800f440: 63fb str r3, [r7, #60] ; 0x3c uint32_t Int32 = 0; 800f442: 2300 movs r3, #0 800f444: 64fb str r3, [r7, #76] ; 0x4c uint32_t Frac32 = 0; 800f446: 2300 movs r3, #0 800f448: 64bb str r3, [r7, #72] ; 0x48 uint32_t _I32 = 0; 800f44a: 2300 movs r3, #0 800f44c: 63bb str r3, [r7, #56] ; 0x38 uint32_t _F32 = 0; 800f44e: 2300 movs r3, #0 800f450: 637b str r3, [r7, #52] ; 0x34 uint32_t d = 0, dd = 0; 800f452: 2300 movs r3, #0 800f454: 647b str r3, [r7, #68] ; 0x44 800f456: 2300 movs r3, #0 800f458: 643b str r3, [r7, #64] ; 0x40 char tmparray[32]; volatile bool minus = false; 800f45a: 2300 movs r3, #0 800f45c: 72fb strb r3, [r7, #11] memset(tmparray, 0, 32); 800f45e: f107 030c add.w r3, r7, #12 800f462: 2220 movs r2, #32 800f464: 2100 movs r1, #0 800f466: 4618 mov r0, r3 800f468: f006 fffb bl 8016462 memset(pString, 0, 16); 800f46c: 2210 movs r2, #16 800f46e: 2100 movs r1, #0 800f470: 48b7 ldr r0, [pc, #732] ; (800f750 ) 800f472: f006 fff6 bl 8016462 value = Val; 800f476: 687b ldr r3, [r7, #4] 800f478: 633b str r3, [r7, #48] ; 0x30 if(value < 0) 800f47a: edd7 7a0c vldr s15, [r7, #48] ; 0x30 800f47e: eef5 7ac0 vcmpe.f32 s15, #0.0 800f482: eef1 fa10 vmrs APSR_nzcv, fpscr 800f486: d501 bpl.n 800f48c minus = true; 800f488: 2301 movs r3, #1 800f48a: 72fb strb r3, [r7, #11] if(Val > 99999.0) 800f48c: edd7 7a01 vldr s15, [r7, #4] 800f490: ed9f 7ab0 vldr s14, [pc, #704] ; 800f754 800f494: eef4 7ac7 vcmpe.f32 s15, s14 800f498: eef1 fa10 vmrs APSR_nzcv, fpscr 800f49c: dd30 ble.n 800f500 { if(Val < 0) 800f49e: edd7 7a01 vldr s15, [r7, #4] 800f4a2: eef5 7ac0 vcmpe.f32 s15, #0.0 800f4a6: eef1 fa10 vmrs APSR_nzcv, fpscr 800f4aa: d515 bpl.n 800f4d8 { pString[0] = '1'; 800f4ac: 4ba8 ldr r3, [pc, #672] ; (800f750 ) 800f4ae: 2231 movs r2, #49 ; 0x31 800f4b0: 701a strb r2, [r3, #0] pString[1] = '.'; 800f4b2: 4ba7 ldr r3, [pc, #668] ; (800f750 ) 800f4b4: 222e movs r2, #46 ; 0x2e 800f4b6: 705a strb r2, [r3, #1] pString[2] = '0'; 800f4b8: 4ba5 ldr r3, [pc, #660] ; (800f750 ) 800f4ba: 2230 movs r2, #48 ; 0x30 800f4bc: 709a strb r2, [r3, #2] pString[3] = '0'; 800f4be: 4ba4 ldr r3, [pc, #656] ; (800f750 ) 800f4c0: 2230 movs r2, #48 ; 0x30 800f4c2: 70da strb r2, [r3, #3] pString[4] = '0'; 800f4c4: 4ba2 ldr r3, [pc, #648] ; (800f750 ) 800f4c6: 2230 movs r2, #48 ; 0x30 800f4c8: 711a strb r2, [r3, #4] pString[5] = '0'; 800f4ca: 4ba1 ldr r3, [pc, #644] ; (800f750 ) 800f4cc: 2230 movs r2, #48 ; 0x30 800f4ce: 715a strb r2, [r3, #5] pString[6] = '\0'; 800f4d0: 4b9f ldr r3, [pc, #636] ; (800f750 ) 800f4d2: 2200 movs r2, #0 800f4d4: 719a strb r2, [r3, #6] 800f4d6: e011 b.n 800f4fc } else { pString[0] = '9'; 800f4d8: 4b9d ldr r3, [pc, #628] ; (800f750 ) 800f4da: 2239 movs r2, #57 ; 0x39 800f4dc: 701a strb r2, [r3, #0] pString[1] = '9'; 800f4de: 4b9c ldr r3, [pc, #624] ; (800f750 ) 800f4e0: 2239 movs r2, #57 ; 0x39 800f4e2: 705a strb r2, [r3, #1] pString[2] = '9'; 800f4e4: 4b9a ldr r3, [pc, #616] ; (800f750 ) 800f4e6: 2239 movs r2, #57 ; 0x39 800f4e8: 709a strb r2, [r3, #2] pString[3] = '9'; 800f4ea: 4b99 ldr r3, [pc, #612] ; (800f750 ) 800f4ec: 2239 movs r2, #57 ; 0x39 800f4ee: 70da strb r2, [r3, #3] pString[4] = '9'; 800f4f0: 4b97 ldr r3, [pc, #604] ; (800f750 ) 800f4f2: 2239 movs r2, #57 ; 0x39 800f4f4: 711a strb r2, [r3, #4] pString[5] = '\0'; 800f4f6: 4b96 ldr r3, [pc, #600] ; (800f750 ) 800f4f8: 2200 movs r2, #0 800f4fa: 715a strb r2, [r3, #5] } return pString; 800f4fc: 4b94 ldr r3, [pc, #592] ; (800f750 ) 800f4fe: e168 b.n 800f7d2 } value = ABS(Val); 800f500: edd7 7a01 vldr s15, [r7, #4] 800f504: eef5 7ac0 vcmpe.f32 s15, #0.0 800f508: eef1 fa10 vmrs APSR_nzcv, fpscr 800f50c: dd02 ble.n 800f514 800f50e: edd7 7a01 vldr s15, [r7, #4] 800f512: e003 b.n 800f51c 800f514: edd7 7a01 vldr s15, [r7, #4] 800f518: eef1 7a67 vneg.f32 s15, s15 800f51c: edc7 7a0c vstr s15, [r7, #48] ; 0x30 rnd = ABS(RoundTo); 800f520: 683b ldr r3, [r7, #0] 800f522: 2b00 cmp r3, #0 800f524: bfb8 it lt 800f526: 425b neglt r3, r3 800f528: 653b str r3, [r7, #80] ; 0x50 if(RoundTo < 0) 800f52a: 683b ldr r3, [r7, #0] 800f52c: 2b00 cmp r3, #0 800f52e: da47 bge.n 800f5c0 { F = modff(value, &I); 800f530: f107 032c add.w r3, r7, #44 ; 0x2c 800f534: 4618 mov r0, r3 800f536: ed97 0a0c vldr s0, [r7, #48] ; 0x30 800f53a: f006 ff15 bl 8016368 800f53e: ed87 0a15 vstr s0, [r7, #84] ; 0x54 while(rnd) 800f542: e00d b.n 800f560 { F *= 10.0f; 800f544: edd7 7a15 vldr s15, [r7, #84] ; 0x54 800f548: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 800f54c: ee67 7a87 vmul.f32 s15, s15, s14 800f550: edc7 7a15 vstr s15, [r7, #84] ; 0x54 rnd--; 800f554: 6d3b ldr r3, [r7, #80] ; 0x50 800f556: 3b01 subs r3, #1 800f558: 653b str r3, [r7, #80] ; 0x50 d++; 800f55a: 6c7b ldr r3, [r7, #68] ; 0x44 800f55c: 3301 adds r3, #1 800f55e: 647b str r3, [r7, #68] ; 0x44 while(rnd) 800f560: 6d3b ldr r3, [r7, #80] ; 0x50 800f562: 2b00 cmp r3, #0 800f564: d1ee bne.n 800f544 } F = roundf(F); 800f566: ed97 0a15 vldr s0, [r7, #84] ; 0x54 800f56a: f006 ff25 bl 80163b8 800f56e: ed87 0a15 vstr s0, [r7, #84] ; 0x54 dd = 1; 800f572: 2301 movs r3, #1 800f574: 643b str r3, [r7, #64] ; 0x40 for(i = 0; i < d; i++) 800f576: 2300 movs r3, #0 800f578: 65bb str r3, [r7, #88] ; 0x58 800f57a: e008 b.n 800f58e dd *= 10; 800f57c: 6c3a ldr r2, [r7, #64] ; 0x40 800f57e: 4613 mov r3, r2 800f580: 009b lsls r3, r3, #2 800f582: 4413 add r3, r2 800f584: 005b lsls r3, r3, #1 800f586: 643b str r3, [r7, #64] ; 0x40 for(i = 0; i < d; i++) 800f588: 6dbb ldr r3, [r7, #88] ; 0x58 800f58a: 3301 adds r3, #1 800f58c: 65bb str r3, [r7, #88] ; 0x58 800f58e: 6dba ldr r2, [r7, #88] ; 0x58 800f590: 6c7b ldr r3, [r7, #68] ; 0x44 800f592: 429a cmp r2, r3 800f594: d3f2 bcc.n 800f57c if((uint32_t) F == dd) 800f596: edd7 7a15 vldr s15, [r7, #84] ; 0x54 800f59a: eefc 7ae7 vcvt.u32.f32 s15, s15 800f59e: ee17 2a90 vmov r2, s15 800f5a2: 6c3b ldr r3, [r7, #64] ; 0x40 800f5a4: 429a cmp r2, r3 800f5a6: d116 bne.n 800f5d6 { F = 0; 800f5a8: f04f 0300 mov.w r3, #0 800f5ac: 657b str r3, [r7, #84] ; 0x54 I += 1; 800f5ae: edd7 7a0b vldr s15, [r7, #44] ; 0x2c 800f5b2: eeb7 7a00 vmov.f32 s14, #112 ; 0x3f800000 1.0 800f5b6: ee77 7a87 vadd.f32 s15, s15, s14 800f5ba: edc7 7a0b vstr s15, [r7, #44] ; 0x2c 800f5be: e00a b.n 800f5d6 } } else { I = roundf(value); 800f5c0: ed97 0a0c vldr s0, [r7, #48] ; 0x30 800f5c4: f006 fef8 bl 80163b8 800f5c8: eef0 7a40 vmov.f32 s15, s0 800f5cc: edc7 7a0b vstr s15, [r7, #44] ; 0x2c F = 0.0f; 800f5d0: f04f 0300 mov.w r3, #0 800f5d4: 657b str r3, [r7, #84] ; 0x54 } Int32 = (uint32_t) I; 800f5d6: edd7 7a0b vldr s15, [r7, #44] ; 0x2c 800f5da: eefc 7ae7 vcvt.u32.f32 s15, s15 800f5de: ee17 3a90 vmov r3, s15 800f5e2: 64fb str r3, [r7, #76] ; 0x4c Frac32 = (uint32_t) F; 800f5e4: edd7 7a15 vldr s15, [r7, #84] ; 0x54 800f5e8: eefc 7ae7 vcvt.u32.f32 s15, s15 800f5ec: ee17 3a90 vmov r3, s15 800f5f0: 64bb str r3, [r7, #72] ; 0x48 _I32 = Int32; 800f5f2: 6cfb ldr r3, [r7, #76] ; 0x4c 800f5f4: 63bb str r3, [r7, #56] ; 0x38 _F32 = Frac32; 800f5f6: 6cbb ldr r3, [r7, #72] ; 0x48 800f5f8: 637b str r3, [r7, #52] ; 0x34 idx = 0; 800f5fa: 2300 movs r3, #0 800f5fc: f887 305f strb.w r3, [r7, #95] ; 0x5f tmparray[idx++] = '\0'; 800f600: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800f604: 1c5a adds r2, r3, #1 800f606: f887 205f strb.w r2, [r7, #95] ; 0x5f 800f60a: f107 0260 add.w r2, r7, #96 ; 0x60 800f60e: 4413 add r3, r2 800f610: 2200 movs r2, #0 800f612: f803 2c54 strb.w r2, [r3, #-84] if((Int32 == 0) && (Frac32 == 0)) 800f616: 6cfb ldr r3, [r7, #76] ; 0x4c 800f618: 2b00 cmp r3, #0 800f61a: d135 bne.n 800f688 800f61c: 6cbb ldr r3, [r7, #72] ; 0x48 800f61e: 2b00 cmp r3, #0 800f620: d132 bne.n 800f688 { if(RoundTo < 0) 800f622: 683b ldr r3, [r7, #0] 800f624: 2b00 cmp r3, #0 800f626: da23 bge.n 800f670 { for(i = 0; i < ABS(RoundTo); i++) 800f628: 2300 movs r3, #0 800f62a: 65bb str r3, [r7, #88] ; 0x58 800f62c: e00d b.n 800f64a tmparray[idx++] = '0'; 800f62e: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800f632: 1c5a adds r2, r3, #1 800f634: f887 205f strb.w r2, [r7, #95] ; 0x5f 800f638: f107 0260 add.w r2, r7, #96 ; 0x60 800f63c: 4413 add r3, r2 800f63e: 2230 movs r2, #48 ; 0x30 800f640: f803 2c54 strb.w r2, [r3, #-84] for(i = 0; i < ABS(RoundTo); i++) 800f644: 6dbb ldr r3, [r7, #88] ; 0x58 800f646: 3301 adds r3, #1 800f648: 65bb str r3, [r7, #88] ; 0x58 800f64a: 683b ldr r3, [r7, #0] 800f64c: ea83 72e3 eor.w r2, r3, r3, asr #31 800f650: eba2 72e3 sub.w r2, r2, r3, asr #31 800f654: 6dbb ldr r3, [r7, #88] ; 0x58 800f656: 429a cmp r2, r3 800f658: dce9 bgt.n 800f62e tmparray[idx++] = '.'; 800f65a: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800f65e: 1c5a adds r2, r3, #1 800f660: f887 205f strb.w r2, [r7, #95] ; 0x5f 800f664: f107 0260 add.w r2, r7, #96 ; 0x60 800f668: 4413 add r3, r2 800f66a: 222e movs r2, #46 ; 0x2e 800f66c: f803 2c54 strb.w r2, [r3, #-84] } tmparray[idx++] = '0'; 800f670: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800f674: 1c5a adds r2, r3, #1 800f676: f887 205f strb.w r2, [r7, #95] ; 0x5f 800f67a: f107 0260 add.w r2, r7, #96 ; 0x60 800f67e: 4413 add r3, r2 800f680: 2230 movs r2, #48 ; 0x30 800f682: f803 2c54 strb.w r2, [r3, #-84] 800f686: e089 b.n 800f79c } else { if(RoundTo < 0) 800f688: 683b ldr r3, [r7, #0] 800f68a: 2b00 cmp r3, #0 800f68c: da38 bge.n 800f700 { for(i = 0; i < ABS(RoundTo); i++) 800f68e: 2300 movs r3, #0 800f690: 65bb str r3, [r7, #88] ; 0x58 800f692: e022 b.n 800f6da { Tmp32 = Frac32; 800f694: 6cbb ldr r3, [r7, #72] ; 0x48 800f696: 63fb str r3, [r7, #60] ; 0x3c Frac32 /= 10; 800f698: 6cbb ldr r3, [r7, #72] ; 0x48 800f69a: 4a2f ldr r2, [pc, #188] ; (800f758 ) 800f69c: fba2 2303 umull r2, r3, r2, r3 800f6a0: 08db lsrs r3, r3, #3 800f6a2: 64bb str r3, [r7, #72] ; 0x48 Tmp32 = Tmp32 - Frac32 * 10; 800f6a4: 6cba ldr r2, [r7, #72] ; 0x48 800f6a6: 4613 mov r3, r2 800f6a8: 009b lsls r3, r3, #2 800f6aa: 4413 add r3, r2 800f6ac: 005b lsls r3, r3, #1 800f6ae: 461a mov r2, r3 800f6b0: 6bfb ldr r3, [r7, #60] ; 0x3c 800f6b2: 1a9b subs r3, r3, r2 800f6b4: 63fb str r3, [r7, #60] ; 0x3c tmparray[idx++] = '0' + Tmp32; 800f6b6: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800f6ba: 1c5a adds r2, r3, #1 800f6bc: f887 205f strb.w r2, [r7, #95] ; 0x5f 800f6c0: 4619 mov r1, r3 800f6c2: 6bfb ldr r3, [r7, #60] ; 0x3c 800f6c4: b2db uxtb r3, r3 800f6c6: 3330 adds r3, #48 ; 0x30 800f6c8: b2da uxtb r2, r3 800f6ca: f107 0360 add.w r3, r7, #96 ; 0x60 800f6ce: 440b add r3, r1 800f6d0: f803 2c54 strb.w r2, [r3, #-84] for(i = 0; i < ABS(RoundTo); i++) 800f6d4: 6dbb ldr r3, [r7, #88] ; 0x58 800f6d6: 3301 adds r3, #1 800f6d8: 65bb str r3, [r7, #88] ; 0x58 800f6da: 683b ldr r3, [r7, #0] 800f6dc: ea83 72e3 eor.w r2, r3, r3, asr #31 800f6e0: eba2 72e3 sub.w r2, r2, r3, asr #31 800f6e4: 6dbb ldr r3, [r7, #88] ; 0x58 800f6e6: 429a cmp r2, r3 800f6e8: dcd4 bgt.n 800f694 } tmparray[idx++] = '.'; 800f6ea: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800f6ee: 1c5a adds r2, r3, #1 800f6f0: f887 205f strb.w r2, [r7, #95] ; 0x5f 800f6f4: f107 0260 add.w r2, r7, #96 ; 0x60 800f6f8: 4413 add r3, r2 800f6fa: 222e movs r2, #46 ; 0x2e 800f6fc: f803 2c54 strb.w r2, [r3, #-84] } if(Int32 != 0) 800f700: 6cfb ldr r3, [r7, #76] ; 0x4c 800f702: 2b00 cmp r3, #0 800f704: d02a beq.n 800f75c { while(Int32) 800f706: e01f b.n 800f748 { Tmp32 = Int32; 800f708: 6cfb ldr r3, [r7, #76] ; 0x4c 800f70a: 63fb str r3, [r7, #60] ; 0x3c Int32 /= 10; 800f70c: 6cfb ldr r3, [r7, #76] ; 0x4c 800f70e: 4a12 ldr r2, [pc, #72] ; (800f758 ) 800f710: fba2 2303 umull r2, r3, r2, r3 800f714: 08db lsrs r3, r3, #3 800f716: 64fb str r3, [r7, #76] ; 0x4c Tmp32 = Tmp32 - Int32 * 10; 800f718: 6cfa ldr r2, [r7, #76] ; 0x4c 800f71a: 4613 mov r3, r2 800f71c: 009b lsls r3, r3, #2 800f71e: 4413 add r3, r2 800f720: 005b lsls r3, r3, #1 800f722: 461a mov r2, r3 800f724: 6bfb ldr r3, [r7, #60] ; 0x3c 800f726: 1a9b subs r3, r3, r2 800f728: 63fb str r3, [r7, #60] ; 0x3c tmparray[idx++] = '0' + Tmp32; 800f72a: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800f72e: 1c5a adds r2, r3, #1 800f730: f887 205f strb.w r2, [r7, #95] ; 0x5f 800f734: 4619 mov r1, r3 800f736: 6bfb ldr r3, [r7, #60] ; 0x3c 800f738: b2db uxtb r3, r3 800f73a: 3330 adds r3, #48 ; 0x30 800f73c: b2da uxtb r2, r3 800f73e: f107 0360 add.w r3, r7, #96 ; 0x60 800f742: 440b add r3, r1 800f744: f803 2c54 strb.w r2, [r3, #-84] while(Int32) 800f748: 6cfb ldr r3, [r7, #76] ; 0x4c 800f74a: 2b00 cmp r3, #0 800f74c: d1dc bne.n 800f708 800f74e: e010 b.n 800f772 800f750: 2006c24c .word 0x2006c24c 800f754: 47c34f80 .word 0x47c34f80 800f758: cccccccd .word 0xcccccccd } } else tmparray[idx++] = '0'; 800f75c: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800f760: 1c5a adds r2, r3, #1 800f762: f887 205f strb.w r2, [r7, #95] ; 0x5f 800f766: f107 0260 add.w r2, r7, #96 ; 0x60 800f76a: 4413 add r3, r2 800f76c: 2230 movs r2, #48 ; 0x30 800f76e: f803 2c54 strb.w r2, [r3, #-84] if(minus) 800f772: 7afb ldrb r3, [r7, #11] 800f774: b2db uxtb r3, r3 800f776: 2b00 cmp r3, #0 800f778: d010 beq.n 800f79c { if((_I32 != 0) || (_F32 != 0)) 800f77a: 6bbb ldr r3, [r7, #56] ; 0x38 800f77c: 2b00 cmp r3, #0 800f77e: d102 bne.n 800f786 800f780: 6b7b ldr r3, [r7, #52] ; 0x34 800f782: 2b00 cmp r3, #0 800f784: d00a beq.n 800f79c tmparray[idx++] = '-'; 800f786: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800f78a: 1c5a adds r2, r3, #1 800f78c: f887 205f strb.w r2, [r7, #95] ; 0x5f 800f790: f107 0260 add.w r2, r7, #96 ; 0x60 800f794: 4413 add r3, r2 800f796: 222d movs r2, #45 ; 0x2d 800f798: f803 2c54 strb.w r2, [r3, #-84] } } for(i = 0; i < idx; i++) 800f79c: 2300 movs r3, #0 800f79e: 65bb str r3, [r7, #88] ; 0x58 800f7a0: e011 b.n 800f7c6 pString[i] = tmparray[idx - i - 1]; 800f7a2: f897 205f ldrb.w r2, [r7, #95] ; 0x5f 800f7a6: 6dbb ldr r3, [r7, #88] ; 0x58 800f7a8: 1ad3 subs r3, r2, r3 800f7aa: 3b01 subs r3, #1 800f7ac: f107 0260 add.w r2, r7, #96 ; 0x60 800f7b0: 4413 add r3, r2 800f7b2: f813 1c54 ldrb.w r1, [r3, #-84] 800f7b6: 4a09 ldr r2, [pc, #36] ; (800f7dc ) 800f7b8: 6dbb ldr r3, [r7, #88] ; 0x58 800f7ba: 4413 add r3, r2 800f7bc: 460a mov r2, r1 800f7be: 701a strb r2, [r3, #0] for(i = 0; i < idx; i++) 800f7c0: 6dbb ldr r3, [r7, #88] ; 0x58 800f7c2: 3301 adds r3, #1 800f7c4: 65bb str r3, [r7, #88] ; 0x58 800f7c6: f897 205f ldrb.w r2, [r7, #95] ; 0x5f 800f7ca: 6dbb ldr r3, [r7, #88] ; 0x58 800f7cc: 429a cmp r2, r3 800f7ce: dce8 bgt.n 800f7a2 return pString; 800f7d0: 4b02 ldr r3, [pc, #8] ; (800f7dc ) } 800f7d2: 4618 mov r0, r3 800f7d4: 3760 adds r7, #96 ; 0x60 800f7d6: 46bd mov sp, r7 800f7d8: bd80 pop {r7, pc} 800f7da: bf00 nop 800f7dc: 2006c24c .word 0x2006c24c 0800f7e0 : /* USER CODE END 0 */ /** * Initializes the Global MSP. */ void HAL_MspInit(void) { 800f7e0: b480 push {r7} 800f7e2: b083 sub sp, #12 800f7e4: af00 add r7, sp, #0 /* USER CODE BEGIN MspInit 0 */ /* USER CODE END MspInit 0 */ __HAL_RCC_PWR_CLK_ENABLE(); 800f7e6: 4a0f ldr r2, [pc, #60] ; (800f824 ) 800f7e8: 4b0e ldr r3, [pc, #56] ; (800f824 ) 800f7ea: 6c1b ldr r3, [r3, #64] ; 0x40 800f7ec: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 800f7f0: 6413 str r3, [r2, #64] ; 0x40 800f7f2: 4b0c ldr r3, [pc, #48] ; (800f824 ) 800f7f4: 6c1b ldr r3, [r3, #64] ; 0x40 800f7f6: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 800f7fa: 607b str r3, [r7, #4] 800f7fc: 687b ldr r3, [r7, #4] __HAL_RCC_SYSCFG_CLK_ENABLE(); 800f7fe: 4a09 ldr r2, [pc, #36] ; (800f824 ) 800f800: 4b08 ldr r3, [pc, #32] ; (800f824 ) 800f802: 6c5b ldr r3, [r3, #68] ; 0x44 800f804: f443 4380 orr.w r3, r3, #16384 ; 0x4000 800f808: 6453 str r3, [r2, #68] ; 0x44 800f80a: 4b06 ldr r3, [pc, #24] ; (800f824 ) 800f80c: 6c5b ldr r3, [r3, #68] ; 0x44 800f80e: f403 4380 and.w r3, r3, #16384 ; 0x4000 800f812: 603b str r3, [r7, #0] 800f814: 683b ldr r3, [r7, #0] /* System interrupt init*/ /* USER CODE BEGIN MspInit 1 */ /* USER CODE END MspInit 1 */ } 800f816: bf00 nop 800f818: 370c adds r7, #12 800f81a: 46bd mov sp, r7 800f81c: f85d 7b04 ldr.w r7, [sp], #4 800f820: 4770 bx lr 800f822: bf00 nop 800f824: 40023800 .word 0x40023800 0800f828 : /******************************************************************************/ /** * @brief This function handles Non maskable interrupt. */ void NMI_Handler(void) { 800f828: b480 push {r7} 800f82a: af00 add r7, sp, #0 /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ /* USER CODE END NonMaskableInt_IRQn 0 */ /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ while (1) 800f82c: e7fe b.n 800f82c 0800f82e : /** * @brief This function handles Hard fault interrupt. */ void HardFault_Handler(void) { 800f82e: b480 push {r7} 800f830: af00 add r7, sp, #0 /* USER CODE BEGIN HardFault_IRQn 0 */ /* USER CODE END HardFault_IRQn 0 */ while (1) 800f832: e7fe b.n 800f832 0800f834 : /** * @brief This function handles Memory management fault. */ void MemManage_Handler(void) { 800f834: b480 push {r7} 800f836: af00 add r7, sp, #0 /* USER CODE BEGIN MemoryManagement_IRQn 0 */ /* USER CODE END MemoryManagement_IRQn 0 */ while (1) 800f838: e7fe b.n 800f838 0800f83a : /** * @brief This function handles Pre-fetch fault, memory access fault. */ void BusFault_Handler(void) { 800f83a: b480 push {r7} 800f83c: af00 add r7, sp, #0 /* USER CODE BEGIN BusFault_IRQn 0 */ /* USER CODE END BusFault_IRQn 0 */ while (1) 800f83e: e7fe b.n 800f83e 0800f840 : /** * @brief This function handles Undefined instruction or illegal state. */ void UsageFault_Handler(void) { 800f840: b480 push {r7} 800f842: af00 add r7, sp, #0 /* USER CODE BEGIN UsageFault_IRQn 0 */ /* USER CODE END UsageFault_IRQn 0 */ while (1) 800f844: e7fe b.n 800f844 0800f846 : /** * @brief This function handles System service call via SWI instruction. */ void SVC_Handler(void) { 800f846: b480 push {r7} 800f848: af00 add r7, sp, #0 /* USER CODE END SVCall_IRQn 0 */ /* USER CODE BEGIN SVCall_IRQn 1 */ /* USER CODE END SVCall_IRQn 1 */ } 800f84a: bf00 nop 800f84c: 46bd mov sp, r7 800f84e: f85d 7b04 ldr.w r7, [sp], #4 800f852: 4770 bx lr 0800f854 : /** * @brief This function handles Debug monitor. */ void DebugMon_Handler(void) { 800f854: b480 push {r7} 800f856: af00 add r7, sp, #0 /* USER CODE END DebugMonitor_IRQn 0 */ /* USER CODE BEGIN DebugMonitor_IRQn 1 */ /* USER CODE END DebugMonitor_IRQn 1 */ } 800f858: bf00 nop 800f85a: 46bd mov sp, r7 800f85c: f85d 7b04 ldr.w r7, [sp], #4 800f860: 4770 bx lr 0800f862 : /** * @brief This function handles Pendable request for system service. */ void PendSV_Handler(void) { 800f862: b480 push {r7} 800f864: af00 add r7, sp, #0 /* USER CODE END PendSV_IRQn 0 */ /* USER CODE BEGIN PendSV_IRQn 1 */ /* USER CODE END PendSV_IRQn 1 */ } 800f866: bf00 nop 800f868: 46bd mov sp, r7 800f86a: f85d 7b04 ldr.w r7, [sp], #4 800f86e: 4770 bx lr 0800f870 : /** * @brief This function handles System tick timer. */ void SysTick_Handler(void) { 800f870: b580 push {r7, lr} 800f872: af00 add r7, sp, #0 /* USER CODE BEGIN SysTick_IRQn 0 */ /* USER CODE END SysTick_IRQn 0 */ HAL_IncTick(); 800f874: f001 fe62 bl 801153c /* USER CODE BEGIN SysTick_IRQn 1 */ /* USER CODE END SysTick_IRQn 1 */ } 800f878: bf00 nop 800f87a: bd80 pop {r7, pc} 0800f87c : /** * @brief This function handles EXTI line2 interrupt. */ void EXTI2_IRQHandler(void) { 800f87c: b580 push {r7, lr} 800f87e: af00 add r7, sp, #0 /* USER CODE BEGIN EXTI2_IRQn 0 */ /* USER CODE END EXTI2_IRQn 0 */ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2); 800f880: 2004 movs r0, #4 800f882: f003 f9c1 bl 8012c08 /* USER CODE BEGIN EXTI2_IRQn 1 */ /* USER CODE END EXTI2_IRQn 1 */ } 800f886: bf00 nop 800f888: bd80 pop {r7, pc} 0800f88a : /** * @brief This function handles EXTI line3 interrupt. */ void EXTI3_IRQHandler(void) { 800f88a: b580 push {r7, lr} 800f88c: af00 add r7, sp, #0 /* USER CODE BEGIN EXTI3_IRQn 0 */ /* USER CODE END EXTI3_IRQn 0 */ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_3); 800f88e: 2008 movs r0, #8 800f890: f003 f9ba bl 8012c08 /* USER CODE BEGIN EXTI3_IRQn 1 */ /* USER CODE END EXTI3_IRQn 1 */ } 800f894: bf00 nop 800f896: bd80 pop {r7, pc} 0800f898 : /** * @brief This function handles TIM7 global interrupt. */ void TIM7_IRQHandler(void) { 800f898: b580 push {r7, lr} 800f89a: af00 add r7, sp, #0 /* USER CODE BEGIN TIM7_IRQn 0 */ /* USER CODE END TIM7_IRQn 0 */ HAL_TIM_IRQHandler(&htim7); 800f89c: 4802 ldr r0, [pc, #8] ; (800f8a8 ) 800f89e: f004 ff15 bl 80146cc /* USER CODE BEGIN TIM7_IRQn 1 */ /* USER CODE END TIM7_IRQn 1 */ } 800f8a2: bf00 nop 800f8a4: bd80 pop {r7, pc} 800f8a6: bf00 nop 800f8a8: 2006c3e8 .word 0x2006c3e8 0800f8ac : * @brief This function handles DMA2 stream3 global interrupt. */ void DMA2_Stream1_IRQHandler(void) { 800f8ac: b580 push {r7, lr} 800f8ae: af00 add r7, sp, #0 /* USER CODE BEGIN DMA2_Stream3_IRQn 0 */ /* USER CODE END DMA2_Stream3_IRQn 0 */ HAL_DMA_IRQHandler(&hdma_adc3); 800f8b0: 4802 ldr r0, [pc, #8] ; (800f8bc ) 800f8b2: f002 f857 bl 8011964 /* USER CODE BEGIN DMA2_Stream3_IRQn 1 */ /* USER CODE END DMA2_Stream3_IRQn 1 */ } 800f8b6: bf00 nop 800f8b8: bd80 pop {r7, pc} 800f8ba: bf00 nop 800f8bc: 2006bae0 .word 0x2006bae0 0800f8c0 : /** * @brief This function handles DMA2 stream4 global interrupt. */ void DMA2_Stream4_IRQHandler(void) { 800f8c0: b580 push {r7, lr} 800f8c2: af00 add r7, sp, #0 /* USER CODE BEGIN DMA2_Stream4_IRQn 0 */ /* USER CODE END DMA2_Stream4_IRQn 0 */ HAL_DMA_IRQHandler(&hdma_adc1); 800f8c4: 4802 ldr r0, [pc, #8] ; (800f8d0 ) 800f8c6: f002 f84d bl 8011964 /* USER CODE BEGIN DMA2_Stream4_IRQn 1 */ /* USER CODE END DMA2_Stream4_IRQn 1 */ } 800f8ca: bf00 nop 800f8cc: bd80 pop {r7, pc} 800f8ce: bf00 nop 800f8d0: 2006bbd0 .word 0x2006bbd0 0800f8d4 : /** * @brief This function handles LTDC global interrupt. */ void LTDC_IRQHandler(void) { 800f8d4: b580 push {r7, lr} 800f8d6: af00 add r7, sp, #0 /* USER CODE BEGIN LTDC_IRQn 0 */ /* USER CODE END LTDC_IRQn 0 */ HAL_LTDC_IRQHandler(&hLtdcHandler); 800f8d8: 4802 ldr r0, [pc, #8] ; (800f8e4 ) 800f8da: f003 fa7d bl 8012dd8 /* USER CODE BEGIN LTDC_IRQn 1 */ /* USER CODE END LTDC_IRQn 1 */ } 800f8de: bf00 nop 800f8e0: bd80 pop {r7, pc} 800f8e2: bf00 nop 800f8e4: 2006c174 .word 0x2006c174 0800f8e8 : /** * @brief This function handles LTDC global error interrupt. */ void LTDC_ER_IRQHandler(void) { 800f8e8: b580 push {r7, lr} 800f8ea: af00 add r7, sp, #0 /* USER CODE BEGIN LTDC_ER_IRQn 0 */ /* USER CODE END LTDC_ER_IRQn 0 */ HAL_LTDC_IRQHandler(&hLtdcHandler); 800f8ec: 4802 ldr r0, [pc, #8] ; (800f8f8 ) 800f8ee: f003 fa73 bl 8012dd8 /* USER CODE BEGIN LTDC_ER_IRQn 1 */ /* USER CODE END LTDC_ER_IRQn 1 */ } 800f8f2: bf00 nop 800f8f4: bd80 pop {r7, pc} 800f8f6: bf00 nop 800f8f8: 2006c174 .word 0x2006c174 0800f8fc : * SystemFrequency variable. * @param None * @retval None */ void SystemInit(void) { 800f8fc: b480 push {r7} 800f8fe: af00 add r7, sp, #0 /* FPU settings ------------------------------------------------------------*/ #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ 800f900: 4a06 ldr r2, [pc, #24] ; (800f91c ) 800f902: 4b06 ldr r3, [pc, #24] ; (800f91c ) 800f904: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 800f908: f443 0370 orr.w r3, r3, #15728640 ; 0xf00000 800f90c: f8c2 3088 str.w r3, [r2, #136] ; 0x88 /* Configure the Vector Table location -------------------------------------*/ #if defined(USER_VECT_TAB_ADDRESS) SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ #endif /* USER_VECT_TAB_ADDRESS */ } 800f910: bf00 nop 800f912: 46bd mov sp, r7 800f914: f85d 7b04 ldr.w r7, [sp], #4 800f918: 4770 bx lr 800f91a: bf00 nop 800f91c: e000ed00 .word 0xe000ed00 0800f920 : } /* TIM7 init function */ void MX_TIM7_Init(void) { 800f920: b580 push {r7, lr} 800f922: b084 sub sp, #16 800f924: af00 add r7, sp, #0 TIM_MasterConfigTypeDef sMasterConfig; htim7.Instance = TIM7; 800f926: 4b16 ldr r3, [pc, #88] ; (800f980 ) 800f928: 4a16 ldr r2, [pc, #88] ; (800f984 ) 800f92a: 601a str r2, [r3, #0] htim7.Init.Prescaler = (10 - 1); 800f92c: 4b14 ldr r3, [pc, #80] ; (800f980 ) 800f92e: 2209 movs r2, #9 800f930: 605a str r2, [r3, #4] htim7.Init.CounterMode = TIM_COUNTERMODE_UP; 800f932: 4b13 ldr r3, [pc, #76] ; (800f980 ) 800f934: 2200 movs r2, #0 800f936: 609a str r2, [r3, #8] htim7.Init.Period = (54000 - 1); 800f938: 4b11 ldr r3, [pc, #68] ; (800f980 ) 800f93a: f24d 22ef movw r2, #53999 ; 0xd2ef 800f93e: 60da str r2, [r3, #12] htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; 800f940: 4b0f ldr r3, [pc, #60] ; (800f980 ) 800f942: 2200 movs r2, #0 800f944: 619a str r2, [r3, #24] if(HAL_TIM_Base_Init(&htim7) != HAL_OK) { 800f946: 480e ldr r0, [pc, #56] ; (800f980 ) 800f948: f004 fdf0 bl 801452c 800f94c: 4603 mov r3, r0 800f94e: 2b00 cmp r3, #0 800f950: d001 beq.n 800f956 Error_Handler(); 800f952: f7f6 fa4b bl 8005dec } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; 800f956: 2300 movs r3, #0 800f958: 607b str r3, [r7, #4] sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; 800f95a: 2300 movs r3, #0 800f95c: 60fb str r3, [r7, #12] if (HAL_TIMEx_MasterConfigSynchronization(&htim7, &sMasterConfig) != HAL_OK) { 800f95e: 1d3b adds r3, r7, #4 800f960: 4619 mov r1, r3 800f962: 4807 ldr r0, [pc, #28] ; (800f980 ) 800f964: f005 f89a bl 8014a9c 800f968: 4603 mov r3, r0 800f96a: 2b00 cmp r3, #0 800f96c: d001 beq.n 800f972 Error_Handler(); 800f96e: f7f6 fa3d bl 8005dec } HAL_TIM_Base_Start_IT(&htim7); 800f972: 4803 ldr r0, [pc, #12] ; (800f980 ) 800f974: f004 fe32 bl 80145dc } 800f978: bf00 nop 800f97a: 3710 adds r7, #16 800f97c: 46bd mov sp, r7 800f97e: bd80 pop {r7, pc} 800f980: 2006c3e8 .word 0x2006c3e8 800f984: 40001400 .word 0x40001400 0800f988 : void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) { 800f988: b580 push {r7, lr} 800f98a: b086 sub sp, #24 800f98c: af00 add r7, sp, #0 800f98e: 6078 str r0, [r7, #4] if(tim_baseHandle->Instance == TIM1) 800f990: 687b ldr r3, [r7, #4] 800f992: 681b ldr r3, [r3, #0] 800f994: 4a1f ldr r2, [pc, #124] ; (800fa14 ) 800f996: 4293 cmp r3, r2 800f998: d10c bne.n 800f9b4 { __HAL_RCC_TIM1_CLK_ENABLE(); 800f99a: 4a1f ldr r2, [pc, #124] ; (800fa18 ) 800f99c: 4b1e ldr r3, [pc, #120] ; (800fa18 ) 800f99e: 6c5b ldr r3, [r3, #68] ; 0x44 800f9a0: f043 0301 orr.w r3, r3, #1 800f9a4: 6453 str r3, [r2, #68] ; 0x44 800f9a6: 4b1c ldr r3, [pc, #112] ; (800fa18 ) 800f9a8: 6c5b ldr r3, [r3, #68] ; 0x44 800f9aa: f003 0301 and.w r3, r3, #1 800f9ae: 617b str r3, [r7, #20] 800f9b0: 697b ldr r3, [r7, #20] { __HAL_RCC_TIM7_CLK_ENABLE(); HAL_NVIC_SetPriority(TIM7_IRQn, 3, 0); HAL_NVIC_EnableIRQ(TIM7_IRQn); } } 800f9b2: e02a b.n 800fa0a if(tim_baseHandle->Instance == TIM5) 800f9b4: 687b ldr r3, [r7, #4] 800f9b6: 681b ldr r3, [r3, #0] 800f9b8: 4a18 ldr r2, [pc, #96] ; (800fa1c ) 800f9ba: 4293 cmp r3, r2 800f9bc: d10c bne.n 800f9d8 __HAL_RCC_TIM5_CLK_ENABLE(); 800f9be: 4a16 ldr r2, [pc, #88] ; (800fa18 ) 800f9c0: 4b15 ldr r3, [pc, #84] ; (800fa18 ) 800f9c2: 6c1b ldr r3, [r3, #64] ; 0x40 800f9c4: f043 0308 orr.w r3, r3, #8 800f9c8: 6413 str r3, [r2, #64] ; 0x40 800f9ca: 4b13 ldr r3, [pc, #76] ; (800fa18 ) 800f9cc: 6c1b ldr r3, [r3, #64] ; 0x40 800f9ce: f003 0308 and.w r3, r3, #8 800f9d2: 613b str r3, [r7, #16] 800f9d4: 693b ldr r3, [r7, #16] } 800f9d6: e018 b.n 800fa0a if(tim_baseHandle->Instance == TIM7) 800f9d8: 687b ldr r3, [r7, #4] 800f9da: 681b ldr r3, [r3, #0] 800f9dc: 4a10 ldr r2, [pc, #64] ; (800fa20 ) 800f9de: 4293 cmp r3, r2 800f9e0: d113 bne.n 800fa0a __HAL_RCC_TIM7_CLK_ENABLE(); 800f9e2: 4a0d ldr r2, [pc, #52] ; (800fa18 ) 800f9e4: 4b0c ldr r3, [pc, #48] ; (800fa18 ) 800f9e6: 6c1b ldr r3, [r3, #64] ; 0x40 800f9e8: f043 0320 orr.w r3, r3, #32 800f9ec: 6413 str r3, [r2, #64] ; 0x40 800f9ee: 4b0a ldr r3, [pc, #40] ; (800fa18 ) 800f9f0: 6c1b ldr r3, [r3, #64] ; 0x40 800f9f2: f003 0320 and.w r3, r3, #32 800f9f6: 60fb str r3, [r7, #12] 800f9f8: 68fb ldr r3, [r7, #12] HAL_NVIC_SetPriority(TIM7_IRQn, 3, 0); 800f9fa: 2200 movs r2, #0 800f9fc: 2103 movs r1, #3 800f9fe: 2037 movs r0, #55 ; 0x37 800fa00: f001 fed9 bl 80117b6 HAL_NVIC_EnableIRQ(TIM7_IRQn); 800fa04: 2037 movs r0, #55 ; 0x37 800fa06: f001 fef2 bl 80117ee } 800fa0a: bf00 nop 800fa0c: 3718 adds r7, #24 800fa0e: 46bd mov sp, r7 800fa10: bd80 pop {r7, pc} 800fa12: bf00 nop 800fa14: 40010000 .word 0x40010000 800fa18: 40023800 .word 0x40023800 800fa1c: 40000c00 .word 0x40000c00 800fa20: 40001400 .word 0x40001400 0800fa24 : __IO uint32_t maxtime = 0; /* USER CODE BEGIN 1 */ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { 800fa24: b580 push {r7, lr} 800fa26: b084 sub sp, #16 800fa28: af00 add r7, sp, #0 800fa2a: 6078 str r0, [r7, #4] __IO uint16_t Data32, i; switch((uint32_t) htim->Instance) 800fa2c: 687b ldr r3, [r7, #4] 800fa2e: 681b ldr r3, [r3, #0] 800fa30: 461a mov r2, r3 800fa32: 4b3c ldr r3, [pc, #240] ; (800fb24 ) 800fa34: 429a cmp r2, r3 800fa36: d000 beq.n 800fa3a if(repeat) repeat--; break; } } 800fa38: e070 b.n 800fb1c __HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE); 800fa3a: 687b ldr r3, [r7, #4] 800fa3c: 681b ldr r3, [r3, #0] 800fa3e: f06f 0201 mvn.w r2, #1 800fa42: 611a str r2, [r3, #16] if((--timerAsk) == 0) 800fa44: 4b38 ldr r3, [pc, #224] ; (800fb28 ) 800fa46: 881b ldrh r3, [r3, #0] 800fa48: b29b uxth r3, r3 800fa4a: 3b01 subs r3, #1 800fa4c: b29b uxth r3, r3 800fa4e: 4a36 ldr r2, [pc, #216] ; (800fb28 ) 800fa50: 4619 mov r1, r3 800fa52: 8011 strh r1, [r2, #0] 800fa54: 2b00 cmp r3, #0 800fa56: d105 bne.n 800fa64 timerAsk = msec1900; 800fa58: 4b33 ldr r3, [pc, #204] ; (800fb28 ) 800fa5a: 22be movs r2, #190 ; 0xbe 800fa5c: 801a strh r2, [r3, #0] FlagAsk = true; 800fa5e: 4b33 ldr r3, [pc, #204] ; (800fb2c ) 800fa60: 2201 movs r2, #1 800fa62: 701a strb r2, [r3, #0] if(timerKeys) 800fa64: 4b32 ldr r3, [pc, #200] ; (800fb30 ) 800fa66: 881b ldrh r3, [r3, #0] 800fa68: b29b uxth r3, r3 800fa6a: 2b00 cmp r3, #0 800fa6c: d007 beq.n 800fa7e timerKeys--; 800fa6e: 4b30 ldr r3, [pc, #192] ; (800fb30 ) 800fa70: 881b ldrh r3, [r3, #0] 800fa72: b29b uxth r3, r3 800fa74: 3b01 subs r3, #1 800fa76: b29a uxth r2, r3 800fa78: 4b2d ldr r3, [pc, #180] ; (800fb30 ) 800fa7a: 801a strh r2, [r3, #0] 800fa7c: e00b b.n 800fa96 timerKeys = 2; 800fa7e: 4b2c ldr r3, [pc, #176] ; (800fb30 ) 800fa80: 2202 movs r2, #2 800fa82: 801a strh r2, [r3, #0] if(!KEY_STATE) 800fa84: 4b2b ldr r3, [pc, #172] ; (800fb34 ) 800fa86: 681b ldr r3, [r3, #0] 800fa88: 2b00 cmp r3, #0 800fa8a: d104 bne.n 800fa96 KEY_STATE = kbhit(); 800fa8c: f7f1 f806 bl 8000a9c 800fa90: 4602 mov r2, r0 800fa92: 4b28 ldr r3, [pc, #160] ; (800fb34 ) 800fa94: 601a str r2, [r3, #0] if(timerRefreshScreen) 800fa96: 4b28 ldr r3, [pc, #160] ; (800fb38 ) 800fa98: 881b ldrh r3, [r3, #0] 800fa9a: b29b uxth r3, r3 800fa9c: 2b00 cmp r3, #0 800fa9e: d007 beq.n 800fab0 timerRefreshScreen--; 800faa0: 4b25 ldr r3, [pc, #148] ; (800fb38 ) 800faa2: 881b ldrh r3, [r3, #0] 800faa4: b29b uxth r3, r3 800faa6: 3b01 subs r3, #1 800faa8: b29a uxth r2, r3 800faaa: 4b23 ldr r3, [pc, #140] ; (800fb38 ) 800faac: 801a strh r2, [r3, #0] 800faae: e028 b.n 800fb02 timerRefreshScreen = MSEC_REFRESH[0]; 800fab0: 220a movs r2, #10 800fab2: 4b21 ldr r3, [pc, #132] ; (800fb38 ) 800fab4: 801a strh r2, [r3, #0] Cursorblink ^= 1; 800fab6: 4b21 ldr r3, [pc, #132] ; (800fb3c ) 800fab8: 781b ldrb r3, [r3, #0] 800faba: b2db uxtb r3, r3 800fabc: f083 0301 eor.w r3, r3, #1 800fac0: b2da uxtb r2, r3 800fac2: 4b1e ldr r3, [pc, #120] ; (800fb3c ) 800fac4: 701a strb r2, [r3, #0] if(cntblink) 800fac6: 4b1e ldr r3, [pc, #120] ; (800fb40 ) 800fac8: 881b ldrh r3, [r3, #0] 800faca: b29b uxth r3, r3 800facc: 2b00 cmp r3, #0 800face: d007 beq.n 800fae0 cntblink--; 800fad0: 4b1b ldr r3, [pc, #108] ; (800fb40 ) 800fad2: 881b ldrh r3, [r3, #0] 800fad4: b29b uxth r3, r3 800fad6: 3b01 subs r3, #1 800fad8: b29a uxth r2, r3 800fada: 4b19 ldr r3, [pc, #100] ; (800fb40 ) 800fadc: 801a strh r2, [r3, #0] 800fade: e00d b.n 800fafc cntblink = 2; 800fae0: 4b17 ldr r3, [pc, #92] ; (800fb40 ) 800fae2: 2202 movs r2, #2 800fae4: 801a strh r2, [r3, #0] blink ^= 1; 800fae6: 4b17 ldr r3, [pc, #92] ; (800fb44 ) 800fae8: 781b ldrb r3, [r3, #0] 800faea: b2db uxtb r3, r3 800faec: f083 0301 eor.w r3, r3, #1 800faf0: b2da uxtb r2, r3 800faf2: 4b14 ldr r3, [pc, #80] ; (800fb44 ) 800faf4: 701a strb r2, [r3, #0] cntBat = 1; 800faf6: 4b14 ldr r3, [pc, #80] ; (800fb48 ) 800faf8: 2201 movs r2, #1 800fafa: 701a strb r2, [r3, #0] screen = true; 800fafc: 4b13 ldr r3, [pc, #76] ; (800fb4c ) 800fafe: 2201 movs r2, #1 800fb00: 701a strb r2, [r3, #0] if(repeat) 800fb02: 4b13 ldr r3, [pc, #76] ; (800fb50 ) 800fb04: 881b ldrh r3, [r3, #0] 800fb06: b29b uxth r3, r3 800fb08: 2b00 cmp r3, #0 800fb0a: d006 beq.n 800fb1a repeat--; 800fb0c: 4b10 ldr r3, [pc, #64] ; (800fb50 ) 800fb0e: 881b ldrh r3, [r3, #0] 800fb10: b29b uxth r3, r3 800fb12: 3b01 subs r3, #1 800fb14: b29a uxth r2, r3 800fb16: 4b0e ldr r3, [pc, #56] ; (800fb50 ) 800fb18: 801a strh r2, [r3, #0] break; 800fb1a: bf00 nop } 800fb1c: bf00 nop 800fb1e: 3710 adds r7, #16 800fb20: 46bd mov sp, r7 800fb22: bd80 pop {r7, pc} 800fb24: 40001400 .word 0x40001400 800fb28: 2002099e .word 0x2002099e 800fb2c: 2006ba87 .word 0x2006ba87 800fb30: 2002099a .word 0x2002099a 800fb34: 200209e0 .word 0x200209e0 800fb38: 2002099c .word 0x2002099c 800fb3c: 2006ba85 .word 0x2006ba85 800fb40: 20020998 .word 0x20020998 800fb44: 2006ba84 .word 0x2006ba84 800fb48: 2006ba86 .word 0x2006ba86 800fb4c: 20020030 .word 0x20020030 800fb50: 200209da .word 0x200209da 0800fb54 : void MX_UART7_Init(void) { 800fb54: b580 push {r7, lr} 800fb56: af00 add r7, sp, #0 huart7.Instance = UART7; 800fb58: 4b47 ldr r3, [pc, #284] ; (800fc78 ) 800fb5a: 4a48 ldr r2, [pc, #288] ; (800fc7c ) 800fb5c: 601a str r2, [r3, #0] huart7.Init.BaudRate = BAUDRATE[pardata.BAUD]; 800fb5e: 4b48 ldr r3, [pc, #288] ; (800fc80 ) 800fb60: f8b3 3202 ldrh.w r3, [r3, #514] ; 0x202 800fb64: b29b uxth r3, r3 800fb66: 461a mov r2, r3 800fb68: 4b46 ldr r3, [pc, #280] ; (800fc84 ) 800fb6a: f853 3022 ldr.w r3, [r3, r2, lsl #2] 800fb6e: 4a42 ldr r2, [pc, #264] ; (800fc78 ) 800fb70: 6053 str r3, [r2, #4] switch(pardata.INFB) 800fb72: 4b43 ldr r3, [pc, #268] ; (800fc80 ) 800fb74: f8b3 3204 ldrh.w r3, [r3, #516] ; 0x204 800fb78: b29b uxth r3, r3 800fb7a: 2b01 cmp r3, #1 800fb7c: d00a beq.n 800fb94 800fb7e: 2b02 cmp r3, #2 800fb80: d011 beq.n 800fba6 800fb82: 2b00 cmp r3, #0 800fb84: d118 bne.n 800fbb8 { case 0: //NONE huart7.Init.WordLength = UART_WORDLENGTH_8B; 800fb86: 4b3c ldr r3, [pc, #240] ; (800fc78 ) 800fb88: 2200 movs r2, #0 800fb8a: 609a str r2, [r3, #8] huart7.Init.Parity = UART_PARITY_NONE; 800fb8c: 4b3a ldr r3, [pc, #232] ; (800fc78 ) 800fb8e: 2200 movs r2, #0 800fb90: 611a str r2, [r3, #16] break; 800fb92: e011 b.n 800fbb8 case 1: //ODD huart7.Init.WordLength = UART_WORDLENGTH_9B; 800fb94: 4b38 ldr r3, [pc, #224] ; (800fc78 ) 800fb96: f44f 5280 mov.w r2, #4096 ; 0x1000 800fb9a: 609a str r2, [r3, #8] huart7.Init.Parity = UART_PARITY_ODD; 800fb9c: 4b36 ldr r3, [pc, #216] ; (800fc78 ) 800fb9e: f44f 62c0 mov.w r2, #1536 ; 0x600 800fba2: 611a str r2, [r3, #16] break; 800fba4: e008 b.n 800fbb8 case 2: //EVEN huart7.Init.WordLength = UART_WORDLENGTH_9B; 800fba6: 4b34 ldr r3, [pc, #208] ; (800fc78 ) 800fba8: f44f 5280 mov.w r2, #4096 ; 0x1000 800fbac: 609a str r2, [r3, #8] huart7.Init.Parity = UART_PARITY_EVEN; 800fbae: 4b32 ldr r3, [pc, #200] ; (800fc78 ) 800fbb0: f44f 6280 mov.w r2, #1024 ; 0x400 800fbb4: 611a str r2, [r3, #16] break; 800fbb6: bf00 nop } huart7.Init.StopBits = UART_STOPBITS_1; 800fbb8: 4b2f ldr r3, [pc, #188] ; (800fc78 ) 800fbba: 2200 movs r2, #0 800fbbc: 60da str r2, [r3, #12] huart7.Init.Mode = UART_MODE_TX_RX; 800fbbe: 4b2e ldr r3, [pc, #184] ; (800fc78 ) 800fbc0: 220c movs r2, #12 800fbc2: 615a str r2, [r3, #20] huart7.Init.HwFlowCtl = UART_HWCONTROL_NONE; 800fbc4: 4b2c ldr r3, [pc, #176] ; (800fc78 ) 800fbc6: 2200 movs r2, #0 800fbc8: 619a str r2, [r3, #24] if(pardata.BAUD < 9) 800fbca: 4b2d ldr r3, [pc, #180] ; (800fc80 ) 800fbcc: f8b3 3202 ldrh.w r3, [r3, #514] ; 0x202 800fbd0: b29b uxth r3, r3 800fbd2: 2b08 cmp r3, #8 800fbd4: d803 bhi.n 800fbde huart7.Init.OverSampling = UART_OVERSAMPLING_16; 800fbd6: 4b28 ldr r3, [pc, #160] ; (800fc78 ) 800fbd8: 2200 movs r2, #0 800fbda: 61da str r2, [r3, #28] 800fbdc: e003 b.n 800fbe6 else huart7.Init.OverSampling = UART_OVERSAMPLING_8; 800fbde: 4b26 ldr r3, [pc, #152] ; (800fc78 ) 800fbe0: f44f 4200 mov.w r2, #32768 ; 0x8000 800fbe4: 61da str r2, [r3, #28] huart7.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; 800fbe6: 4b24 ldr r3, [pc, #144] ; (800fc78 ) 800fbe8: 2200 movs r2, #0 800fbea: 621a str r2, [r3, #32] huart7.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_SWAP_INIT; 800fbec: 4b22 ldr r3, [pc, #136] ; (800fc78 ) 800fbee: 2208 movs r2, #8 800fbf0: 625a str r2, [r3, #36] ; 0x24 huart7.AdvancedInit.Swap = UART_ADVFEATURE_SWAP_ENABLE; 800fbf2: 4b21 ldr r3, [pc, #132] ; (800fc78 ) 800fbf4: f44f 4200 mov.w r2, #32768 ; 0x8000 800fbf8: 635a str r2, [r3, #52] ; 0x34 if(HAL_UART_Init(&huart7) != HAL_OK) { 800fbfa: 481f ldr r0, [pc, #124] ; (800fc78 ) 800fbfc: f004 fffa bl 8014bf4 800fc00: 4603 mov r3, r0 800fc02: 2b00 cmp r3, #0 800fc04: d001 beq.n 800fc0a Error_Handler(); 800fc06: f7f6 f8f1 bl 8005dec } if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 800fc0a: 4b1b ldr r3, [pc, #108] ; (800fc78 ) 800fc0c: 681b ldr r3, [r3, #0] 800fc0e: 69db ldr r3, [r3, #28] 800fc10: f003 0308 and.w r3, r3, #8 800fc14: 2b08 cmp r3, #8 800fc16: d103 bne.n 800fc20 __HAL_UART_CLEAR_OREFLAG(&huart7); 800fc18: 4b17 ldr r3, [pc, #92] ; (800fc78 ) 800fc1a: 681b ldr r3, [r3, #0] 800fc1c: 2208 movs r2, #8 800fc1e: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 800fc20: 4b15 ldr r3, [pc, #84] ; (800fc78 ) 800fc22: 681b ldr r3, [r3, #0] 800fc24: 69db ldr r3, [r3, #28] 800fc26: f003 0301 and.w r3, r3, #1 800fc2a: 2b01 cmp r3, #1 800fc2c: d103 bne.n 800fc36 __HAL_UART_CLEAR_PEFLAG(&huart7); 800fc2e: 4b12 ldr r3, [pc, #72] ; (800fc78 ) 800fc30: 681b ldr r3, [r3, #0] 800fc32: 2201 movs r2, #1 800fc34: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 800fc36: 4b10 ldr r3, [pc, #64] ; (800fc78 ) 800fc38: 681b ldr r3, [r3, #0] 800fc3a: 69db ldr r3, [r3, #28] 800fc3c: f003 0302 and.w r3, r3, #2 800fc40: 2b02 cmp r3, #2 800fc42: d103 bne.n 800fc4c __HAL_UART_CLEAR_FEFLAG(&huart7); 800fc44: 4b0c ldr r3, [pc, #48] ; (800fc78 ) 800fc46: 681b ldr r3, [r3, #0] 800fc48: 2202 movs r2, #2 800fc4a: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 800fc4c: 4b0a ldr r3, [pc, #40] ; (800fc78 ) 800fc4e: 681b ldr r3, [r3, #0] 800fc50: 69db ldr r3, [r3, #28] 800fc52: f003 0304 and.w r3, r3, #4 800fc56: 2b04 cmp r3, #4 800fc58: d103 bne.n 800fc62 __HAL_UART_CLEAR_NEFLAG(&huart7); 800fc5a: 4b07 ldr r3, [pc, #28] ; (800fc78 ) 800fc5c: 681b ldr r3, [r3, #0] 800fc5e: 2204 movs r2, #4 800fc60: 621a str r2, [r3, #32] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800fc62: 2200 movs r2, #0 800fc64: f44f 7100 mov.w r1, #512 ; 0x200 800fc68: 4807 ldr r0, [pc, #28] ; (800fc88 ) 800fc6a: f002 ffb3 bl 8012bd4 HAL_Delay(1); 800fc6e: 2001 movs r0, #1 800fc70: f001 fc84 bl 801157c //SET_BIT(huart7.Instance->CR1, /*USART_CR1_RXNEIE |*/ USART_CR1_PEIE); } 800fc74: bf00 nop 800fc76: bd80 pop {r7, pc} 800fc78: 2006c434 .word 0x2006c434 800fc7c: 40007800 .word 0x40007800 800fc80: 2006bca8 .word 0x2006bca8 800fc84: 0801aff0 .word 0x0801aff0 800fc88: 40021400 .word 0x40021400 0800fc8c : HAL_NVIC_DisableIRQ(UART7_IRQn); } void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) { 800fc8c: b580 push {r7, lr} 800fc8e: b08a sub sp, #40 ; 0x28 800fc90: af00 add r7, sp, #0 800fc92: 6078 str r0, [r7, #4] GPIO_InitTypeDef GPIO_InitStruct = {0}; 800fc94: f107 0314 add.w r3, r7, #20 800fc98: 2200 movs r2, #0 800fc9a: 601a str r2, [r3, #0] 800fc9c: 605a str r2, [r3, #4] 800fc9e: 609a str r2, [r3, #8] 800fca0: 60da str r2, [r3, #12] 800fca2: 611a str r2, [r3, #16] if(uartHandle->Instance==UART7) 800fca4: 687b ldr r3, [r7, #4] 800fca6: 681b ldr r3, [r3, #0] 800fca8: 4a1b ldr r2, [pc, #108] ; (800fd18 ) 800fcaa: 4293 cmp r3, r2 800fcac: d12f bne.n 800fd0e { __HAL_RCC_UART7_CLK_ENABLE(); 800fcae: 4a1b ldr r2, [pc, #108] ; (800fd1c ) 800fcb0: 4b1a ldr r3, [pc, #104] ; (800fd1c ) 800fcb2: 6c1b ldr r3, [r3, #64] ; 0x40 800fcb4: f043 4380 orr.w r3, r3, #1073741824 ; 0x40000000 800fcb8: 6413 str r3, [r2, #64] ; 0x40 800fcba: 4b18 ldr r3, [pc, #96] ; (800fd1c ) 800fcbc: 6c1b ldr r3, [r3, #64] ; 0x40 800fcbe: f003 4380 and.w r3, r3, #1073741824 ; 0x40000000 800fcc2: 613b str r3, [r7, #16] 800fcc4: 693b ldr r3, [r7, #16] __HAL_RCC_GPIOF_CLK_ENABLE(); 800fcc6: 4a15 ldr r2, [pc, #84] ; (800fd1c ) 800fcc8: 4b14 ldr r3, [pc, #80] ; (800fd1c ) 800fcca: 6b1b ldr r3, [r3, #48] ; 0x30 800fccc: f043 0320 orr.w r3, r3, #32 800fcd0: 6313 str r3, [r2, #48] ; 0x30 800fcd2: 4b12 ldr r3, [pc, #72] ; (800fd1c ) 800fcd4: 6b1b ldr r3, [r3, #48] ; 0x30 800fcd6: f003 0320 and.w r3, r3, #32 800fcda: 60fb str r3, [r7, #12] 800fcdc: 68fb ldr r3, [r7, #12] /**UART7 GPIO Configuration PF6 ------> UART7_RX PF7 ------> UART7_TX */ GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7; 800fcde: 23c0 movs r3, #192 ; 0xc0 800fce0: 617b str r3, [r7, #20] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 800fce2: 2302 movs r3, #2 800fce4: 61bb str r3, [r7, #24] GPIO_InitStruct.Pull = GPIO_NOPULL; 800fce6: 2300 movs r3, #0 800fce8: 61fb str r3, [r7, #28] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 800fcea: 2303 movs r3, #3 800fcec: 623b str r3, [r7, #32] GPIO_InitStruct.Alternate = GPIO_AF8_UART7; 800fcee: 2308 movs r3, #8 800fcf0: 627b str r3, [r7, #36] ; 0x24 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); 800fcf2: f107 0314 add.w r3, r7, #20 800fcf6: 4619 mov r1, r3 800fcf8: 4809 ldr r0, [pc, #36] ; (800fd20 ) 800fcfa: f002 fda9 bl 8012850 /* UART7 interrupt Init */ HAL_NVIC_SetPriority(UART7_IRQn, 10, 0); 800fcfe: 2200 movs r2, #0 800fd00: 210a movs r1, #10 800fd02: 2052 movs r0, #82 ; 0x52 800fd04: f001 fd57 bl 80117b6 HAL_NVIC_EnableIRQ(UART7_IRQn); 800fd08: 2052 movs r0, #82 ; 0x52 800fd0a: f001 fd70 bl 80117ee } } 800fd0e: bf00 nop 800fd10: 3728 adds r7, #40 ; 0x28 800fd12: 46bd mov sp, r7 800fd14: bd80 pop {r7, pc} 800fd16: bf00 nop 800fd18: 40007800 .word 0x40007800 800fd1c: 40023800 .word 0x40023800 800fd20: 40021400 .word 0x40021400 0800fd24 : } } void UART7_IRQHandler(void) { 800fd24: b580 push {r7, lr} 800fd26: af00 add r7, sp, #0 if((__HAL_UART_GET_IT_SOURCE(&huart7, UART_IT_RXNE)) && (__HAL_UART_GET_FLAG(&huart7, UART_FLAG_RXNE))) 800fd28: 4b26 ldr r3, [pc, #152] ; (800fdc4 ) 800fd2a: 681b ldr r3, [r3, #0] 800fd2c: 681b ldr r3, [r3, #0] 800fd2e: f003 0320 and.w r3, r3, #32 800fd32: 2b00 cmp r3, #0 800fd34: d00a beq.n 800fd4c 800fd36: 4b23 ldr r3, [pc, #140] ; (800fdc4 ) 800fd38: 681b ldr r3, [r3, #0] 800fd3a: 69db ldr r3, [r3, #28] 800fd3c: f003 0320 and.w r3, r3, #32 800fd40: 2b20 cmp r3, #32 800fd42: d103 bne.n 800fd4c { HAL_UART_RxCpltCallback(&huart7); 800fd44: 481f ldr r0, [pc, #124] ; (800fdc4 ) 800fd46: f000 f8ad bl 800fea4 800fd4a: e002 b.n 800fd52 } else { HAL_UART_IRQHandler(&huart7); 800fd4c: 481d ldr r0, [pc, #116] ; (800fdc4 ) 800fd4e: f005 fa03 bl 8015158 } if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 800fd52: 4b1c ldr r3, [pc, #112] ; (800fdc4 ) 800fd54: 681b ldr r3, [r3, #0] 800fd56: 69db ldr r3, [r3, #28] 800fd58: f003 0308 and.w r3, r3, #8 800fd5c: 2b08 cmp r3, #8 800fd5e: d103 bne.n 800fd68 __HAL_UART_CLEAR_OREFLAG(&huart7); 800fd60: 4b18 ldr r3, [pc, #96] ; (800fdc4 ) 800fd62: 681b ldr r3, [r3, #0] 800fd64: 2208 movs r2, #8 800fd66: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 800fd68: 4b16 ldr r3, [pc, #88] ; (800fdc4 ) 800fd6a: 681b ldr r3, [r3, #0] 800fd6c: 69db ldr r3, [r3, #28] 800fd6e: f003 0301 and.w r3, r3, #1 800fd72: 2b01 cmp r3, #1 800fd74: d103 bne.n 800fd7e __HAL_UART_CLEAR_PEFLAG(&huart7); 800fd76: 4b13 ldr r3, [pc, #76] ; (800fdc4 ) 800fd78: 681b ldr r3, [r3, #0] 800fd7a: 2201 movs r2, #1 800fd7c: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 800fd7e: 4b11 ldr r3, [pc, #68] ; (800fdc4 ) 800fd80: 681b ldr r3, [r3, #0] 800fd82: 69db ldr r3, [r3, #28] 800fd84: f003 0302 and.w r3, r3, #2 800fd88: 2b02 cmp r3, #2 800fd8a: d103 bne.n 800fd94 __HAL_UART_CLEAR_FEFLAG(&huart7); 800fd8c: 4b0d ldr r3, [pc, #52] ; (800fdc4 ) 800fd8e: 681b ldr r3, [r3, #0] 800fd90: 2202 movs r2, #2 800fd92: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 800fd94: 4b0b ldr r3, [pc, #44] ; (800fdc4 ) 800fd96: 681b ldr r3, [r3, #0] 800fd98: 69db ldr r3, [r3, #28] 800fd9a: f003 0304 and.w r3, r3, #4 800fd9e: 2b04 cmp r3, #4 800fda0: d103 bne.n 800fdaa __HAL_UART_CLEAR_NEFLAG(&huart7); 800fda2: 4b08 ldr r3, [pc, #32] ; (800fdc4 ) 800fda4: 681b ldr r3, [r3, #0] 800fda6: 2204 movs r2, #4 800fda8: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_IDLE)) 800fdaa: 4b06 ldr r3, [pc, #24] ; (800fdc4 ) 800fdac: 681b ldr r3, [r3, #0] 800fdae: 69db ldr r3, [r3, #28] 800fdb0: f003 0310 and.w r3, r3, #16 800fdb4: 2b10 cmp r3, #16 800fdb6: d103 bne.n 800fdc0 __HAL_UART_CLEAR_IDLEFLAG(&huart7); 800fdb8: 4b02 ldr r3, [pc, #8] ; (800fdc4 ) 800fdba: 681b ldr r3, [r3, #0] 800fdbc: 2210 movs r2, #16 800fdbe: 621a str r2, [r3, #32] } 800fdc0: bf00 nop 800fdc2: bd80 pop {r7, pc} 800fdc4: 2006c434 .word 0x2006c434 0800fdc8 : uint16_t Crc16(uint16_t len) { 800fdc8: b480 push {r7} 800fdca: b085 sub sp, #20 800fdcc: af00 add r7, sp, #0 800fdce: 4603 mov r3, r0 800fdd0: 80fb strh r3, [r7, #6] uint16_t i; uint16_t crc = 0xFFFF; 800fdd2: f64f 73ff movw r3, #65535 ; 0xffff 800fdd6: 81bb strh r3, [r7, #12] for(i = 0; i < len; i++) { 800fdd8: 2300 movs r3, #0 800fdda: 81fb strh r3, [r7, #14] 800fddc: e010 b.n 800fe00 crc = (crc >> 8) ^ Crc16Table[(crc & 0xFF) ^ iobuf[i]]; 800fdde: 89bb ldrh r3, [r7, #12] 800fde0: 0a1b lsrs r3, r3, #8 800fde2: b29a uxth r2, r3 800fde4: 89bb ldrh r3, [r7, #12] 800fde6: b2db uxtb r3, r3 800fde8: 89f9 ldrh r1, [r7, #14] 800fdea: 480b ldr r0, [pc, #44] ; (800fe18 ) 800fdec: 5c41 ldrb r1, [r0, r1] 800fdee: 404b eors r3, r1 800fdf0: 490a ldr r1, [pc, #40] ; (800fe1c ) 800fdf2: f831 3013 ldrh.w r3, [r1, r3, lsl #1] 800fdf6: 4053 eors r3, r2 800fdf8: 81bb strh r3, [r7, #12] for(i = 0; i < len; i++) { 800fdfa: 89fb ldrh r3, [r7, #14] 800fdfc: 3301 adds r3, #1 800fdfe: 81fb strh r3, [r7, #14] 800fe00: 89fa ldrh r2, [r7, #14] 800fe02: 88fb ldrh r3, [r7, #6] 800fe04: 429a cmp r2, r3 800fe06: d3ea bcc.n 800fdde } return crc; 800fe08: 89bb ldrh r3, [r7, #12] } 800fe0a: 4618 mov r0, r3 800fe0c: 3714 adds r7, #20 800fe0e: 46bd mov sp, r7 800fe10: f85d 7b04 ldr.w r7, [sp], #4 800fe14: 4770 bx lr 800fe16: bf00 nop 800fe18: 2006c5c4 .word 0x2006c5c4 800fe1c: 0801adf0 .word 0x0801adf0 0800fe20 : uint16_t Crc16_RX(uint16_t len) { 800fe20: b480 push {r7} 800fe22: b085 sub sp, #20 800fe24: af00 add r7, sp, #0 800fe26: 4603 mov r3, r0 800fe28: 80fb strh r3, [r7, #6] uint16_t i; uint16_t crc = 0xFFFF; 800fe2a: f64f 73ff movw r3, #65535 ; 0xffff 800fe2e: 81bb strh r3, [r7, #12] for(i = 0; i < len; i++) { 800fe30: 2300 movs r3, #0 800fe32: 81fb strh r3, [r7, #14] 800fe34: e010 b.n 800fe58 crc = (crc >> 8) ^ Crc16Table[(crc & 0xFF) ^ rx[i]]; 800fe36: 89bb ldrh r3, [r7, #12] 800fe38: 0a1b lsrs r3, r3, #8 800fe3a: b29a uxth r2, r3 800fe3c: 89bb ldrh r3, [r7, #12] 800fe3e: b2db uxtb r3, r3 800fe40: 89f9 ldrh r1, [r7, #14] 800fe42: 480b ldr r0, [pc, #44] ; (800fe70 ) 800fe44: 5c41 ldrb r1, [r0, r1] 800fe46: 404b eors r3, r1 800fe48: 490a ldr r1, [pc, #40] ; (800fe74 ) 800fe4a: f831 3013 ldrh.w r3, [r1, r3, lsl #1] 800fe4e: 4053 eors r3, r2 800fe50: 81bb strh r3, [r7, #12] for(i = 0; i < len; i++) { 800fe52: 89fb ldrh r3, [r7, #14] 800fe54: 3301 adds r3, #1 800fe56: 81fb strh r3, [r7, #14] 800fe58: 89fa ldrh r2, [r7, #14] 800fe5a: 88fb ldrh r3, [r7, #6] 800fe5c: 429a cmp r2, r3 800fe5e: d3ea bcc.n 800fe36 } return crc; 800fe60: 89bb ldrh r3, [r7, #12] } 800fe62: 4618 mov r0, r3 800fe64: 3714 adds r7, #20 800fe66: 46bd mov sp, r7 800fe68: f85d 7b04 ldr.w r7, [sp], #4 800fe6c: 4770 bx lr 800fe6e: bf00 nop 800fe70: 2006c4bc .word 0x2006c4bc 800fe74: 0801adf0 .word 0x0801adf0 0800fe78 : void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) { 800fe78: b580 push {r7, lr} 800fe7a: b082 sub sp, #8 800fe7c: af00 add r7, sp, #0 800fe7e: 6078 str r0, [r7, #4] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800fe80: 2200 movs r2, #0 800fe82: f44f 7100 mov.w r1, #512 ; 0x200 800fe86: 4805 ldr r0, [pc, #20] ; (800fe9c ) 800fe88: f002 fea4 bl 8012bd4 TX_OK = true; 800fe8c: 4b04 ldr r3, [pc, #16] ; (800fea0 ) 800fe8e: 2201 movs r2, #1 800fe90: 701a strb r2, [r3, #0] } 800fe92: bf00 nop 800fe94: 3708 adds r7, #8 800fe96: 46bd mov sp, r7 800fe98: bd80 pop {r7, pc} 800fe9a: bf00 nop 800fe9c: 40021400 .word 0x40021400 800fea0: 2006ba92 .word 0x2006ba92 0800fea4 : void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { 800fea4: b480 push {r7} 800fea6: b083 sub sp, #12 800fea8: af00 add r7, sp, #0 800feaa: 6078 str r0, [r7, #4] RX_OK = true; 800feac: 4b04 ldr r3, [pc, #16] ; (800fec0 ) 800feae: 2201 movs r2, #1 800feb0: 701a strb r2, [r3, #0] } 800feb2: bf00 nop 800feb4: 370c adds r7, #12 800feb6: 46bd mov sp, r7 800feb8: f85d 7b04 ldr.w r7, [sp], #4 800febc: 4770 bx lr 800febe: bf00 nop 800fec0: 2006ba93 .word 0x2006ba93 0800fec4 : void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) { 800fec4: b580 push {r7, lr} 800fec6: b082 sub sp, #8 800fec8: af00 add r7, sp, #0 800feca: 6078 str r0, [r7, #4] RX_OK = TX_OK = false; 800fecc: 2100 movs r1, #0 800fece: 4b0b ldr r3, [pc, #44] ; (800fefc ) 800fed0: 460a mov r2, r1 800fed2: 701a strb r2, [r3, #0] 800fed4: 4b0a ldr r3, [pc, #40] ; (800ff00 ) 800fed6: 460a mov r2, r1 800fed8: 701a strb r2, [r3, #0] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800feda: 2200 movs r2, #0 800fedc: f44f 7100 mov.w r1, #512 ; 0x200 800fee0: 4808 ldr r0, [pc, #32] ; (800ff04 ) 800fee2: f002 fe77 bl 8012bd4 HAL_UART_Abort_IT(&huart7); 800fee6: 4808 ldr r0, [pc, #32] ; (800ff08 ) 800fee8: f005 f810 bl 8014f0c UART_ERROR = true; 800feec: 4b07 ldr r3, [pc, #28] ; (800ff0c ) 800feee: 2201 movs r2, #1 800fef0: 701a strb r2, [r3, #0] } 800fef2: bf00 nop 800fef4: 3708 adds r7, #8 800fef6: 46bd mov sp, r7 800fef8: bd80 pop {r7, pc} 800fefa: bf00 nop 800fefc: 2006ba92 .word 0x2006ba92 800ff00: 2006ba93 .word 0x2006ba93 800ff04: 40021400 .word 0x40021400 800ff08: 2006c434 .word 0x2006c434 800ff0c: 2006ba91 .word 0x2006ba91 0800ff10 : //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// int8_t ReadIP(void) { 800ff10: b580 push {r7, lr} 800ff12: b084 sub sp, #16 800ff14: af00 add r7, sp, #0 int8_t res = -1; 800ff16: 23ff movs r3, #255 ; 0xff 800ff18: 73fb strb r3, [r7, #15] uint16_t i, len = 0, cnt = 0; 800ff1a: 2300 movs r3, #0 800ff1c: 81bb strh r3, [r7, #12] 800ff1e: 2300 movs r3, #0 800ff20: 817b strh r3, [r7, #10] uint16_t crc; __IO uint32_t timeout; if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 800ff22: 4b82 ldr r3, [pc, #520] ; (801012c ) 800ff24: 681b ldr r3, [r3, #0] 800ff26: 69db ldr r3, [r3, #28] 800ff28: f003 0308 and.w r3, r3, #8 800ff2c: 2b08 cmp r3, #8 800ff2e: d103 bne.n 800ff38 __HAL_UART_CLEAR_OREFLAG(&huart7); 800ff30: 4b7e ldr r3, [pc, #504] ; (801012c ) 800ff32: 681b ldr r3, [r3, #0] 800ff34: 2208 movs r2, #8 800ff36: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 800ff38: 4b7c ldr r3, [pc, #496] ; (801012c ) 800ff3a: 681b ldr r3, [r3, #0] 800ff3c: 69db ldr r3, [r3, #28] 800ff3e: f003 0301 and.w r3, r3, #1 800ff42: 2b01 cmp r3, #1 800ff44: d103 bne.n 800ff4e __HAL_UART_CLEAR_PEFLAG(&huart7); 800ff46: 4b79 ldr r3, [pc, #484] ; (801012c ) 800ff48: 681b ldr r3, [r3, #0] 800ff4a: 2201 movs r2, #1 800ff4c: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 800ff4e: 4b77 ldr r3, [pc, #476] ; (801012c ) 800ff50: 681b ldr r3, [r3, #0] 800ff52: 69db ldr r3, [r3, #28] 800ff54: f003 0302 and.w r3, r3, #2 800ff58: 2b02 cmp r3, #2 800ff5a: d103 bne.n 800ff64 __HAL_UART_CLEAR_FEFLAG(&huart7); 800ff5c: 4b73 ldr r3, [pc, #460] ; (801012c ) 800ff5e: 681b ldr r3, [r3, #0] 800ff60: 2202 movs r2, #2 800ff62: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 800ff64: 4b71 ldr r3, [pc, #452] ; (801012c ) 800ff66: 681b ldr r3, [r3, #0] 800ff68: 69db ldr r3, [r3, #28] 800ff6a: f003 0304 and.w r3, r3, #4 800ff6e: 2b04 cmp r3, #4 800ff70: d103 bne.n 800ff7a __HAL_UART_CLEAR_NEFLAG(&huart7); 800ff72: 4b6e ldr r3, [pc, #440] ; (801012c ) 800ff74: 681b ldr r3, [r3, #0] 800ff76: 2204 movs r2, #4 800ff78: 621a str r2, [r3, #32] HAL_Delay(20); 800ff7a: 2014 movs r0, #20 800ff7c: f001 fafe bl 801157c TX_OK = RX_OK = UART_ERROR = false; 800ff80: 2200 movs r2, #0 800ff82: 4b6b ldr r3, [pc, #428] ; (8010130 ) 800ff84: 4611 mov r1, r2 800ff86: 7019 strb r1, [r3, #0] 800ff88: 4b6a ldr r3, [pc, #424] ; (8010134 ) 800ff8a: 4611 mov r1, r2 800ff8c: 7019 strb r1, [r3, #0] 800ff8e: 4b6a ldr r3, [pc, #424] ; (8010138 ) 800ff90: 701a strb r2, [r3, #0] len = 0; 800ff92: 2300 movs r3, #0 800ff94: 81bb strh r3, [r7, #12] memset((void *) &rx, 0, sizeof(rx)); 800ff96: f44f 7280 mov.w r2, #256 ; 0x100 800ff9a: 2100 movs r1, #0 800ff9c: 4867 ldr r0, [pc, #412] ; (801013c ) 800ff9e: f006 fa60 bl 8016462 iobuf[len++] = 17; 800ffa2: 89bb ldrh r3, [r7, #12] 800ffa4: 1c5a adds r2, r3, #1 800ffa6: 81ba strh r2, [r7, #12] 800ffa8: 461a mov r2, r3 800ffaa: 4b65 ldr r3, [pc, #404] ; (8010140 ) 800ffac: 2111 movs r1, #17 800ffae: 5499 strb r1, [r3, r2] iobuf[len++] = 0x03; 800ffb0: 89bb ldrh r3, [r7, #12] 800ffb2: 1c5a adds r2, r3, #1 800ffb4: 81ba strh r2, [r7, #12] 800ffb6: 461a mov r2, r3 800ffb8: 4b61 ldr r3, [pc, #388] ; (8010140 ) 800ffba: 2103 movs r1, #3 800ffbc: 5499 strb r1, [r3, r2] iobuf[len++] = HI(4001); 800ffbe: 89bb ldrh r3, [r7, #12] 800ffc0: 1c5a adds r2, r3, #1 800ffc2: 81ba strh r2, [r7, #12] 800ffc4: 461a mov r2, r3 800ffc6: 4b5e ldr r3, [pc, #376] ; (8010140 ) 800ffc8: 210f movs r1, #15 800ffca: 5499 strb r1, [r3, r2] iobuf[len++] = LO(4001); 800ffcc: 89bb ldrh r3, [r7, #12] 800ffce: 1c5a adds r2, r3, #1 800ffd0: 81ba strh r2, [r7, #12] 800ffd2: 461a mov r2, r3 800ffd4: 4b5a ldr r3, [pc, #360] ; (8010140 ) 800ffd6: 21a1 movs r1, #161 ; 0xa1 800ffd8: 5499 strb r1, [r3, r2] iobuf[len++] = 0; // 800ffda: 89bb ldrh r3, [r7, #12] 800ffdc: 1c5a adds r2, r3, #1 800ffde: 81ba strh r2, [r7, #12] 800ffe0: 461a mov r2, r3 800ffe2: 4b57 ldr r3, [pc, #348] ; (8010140 ) 800ffe4: 2100 movs r1, #0 800ffe6: 5499 strb r1, [r3, r2] iobuf[len++] = 2; // 800ffe8: 89bb ldrh r3, [r7, #12] 800ffea: 1c5a adds r2, r3, #1 800ffec: 81ba strh r2, [r7, #12] 800ffee: 461a mov r2, r3 800fff0: 4b53 ldr r3, [pc, #332] ; (8010140 ) 800fff2: 2102 movs r1, #2 800fff4: 5499 strb r1, [r3, r2] crc = Crc16(len); 800fff6: 89bb ldrh r3, [r7, #12] 800fff8: 4618 mov r0, r3 800fffa: f7ff fee5 bl 800fdc8 800fffe: 4603 mov r3, r0 8010000: 813b strh r3, [r7, #8] iobuf[len++] = LO(crc); 8010002: 89bb ldrh r3, [r7, #12] 8010004: 1c5a adds r2, r3, #1 8010006: 81ba strh r2, [r7, #12] 8010008: 461a mov r2, r3 801000a: 893b ldrh r3, [r7, #8] 801000c: b2d9 uxtb r1, r3 801000e: 4b4c ldr r3, [pc, #304] ; (8010140 ) 8010010: 5499 strb r1, [r3, r2] iobuf[len++] = HI(crc); 8010012: 89bb ldrh r3, [r7, #12] 8010014: 1c5a adds r2, r3, #1 8010016: 81ba strh r2, [r7, #12] 8010018: 461a mov r2, r3 801001a: 893b ldrh r3, [r7, #8] 801001c: 0a1b lsrs r3, r3, #8 801001e: b29b uxth r3, r3 8010020: b2d9 uxtb r1, r3 8010022: 4b47 ldr r3, [pc, #284] ; (8010140 ) 8010024: 5499 strb r1, [r3, r2] timeout = HAL_GetTick(); 8010026: f001 fa9d bl 8011564 801002a: 4603 mov r3, r0 801002c: 607b str r3, [r7, #4] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET); 801002e: 2201 movs r2, #1 8010030: f44f 7100 mov.w r1, #512 ; 0x200 8010034: 4843 ldr r0, [pc, #268] ; (8010144 ) 8010036: f002 fdcd bl 8012bd4 if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK) 801003a: 89bb ldrh r3, [r7, #12] 801003c: 461a mov r2, r3 801003e: 4940 ldr r1, [pc, #256] ; (8010140 ) 8010040: 483a ldr r0, [pc, #232] ; (801012c ) 8010042: f004 fef5 bl 8014e30 8010046: 4603 mov r3, r0 8010048: 2b00 cmp r3, #0 801004a: d168 bne.n 801011e { while((!TX_OK) && (HAL_GetTick() - timeout < 50)); 801004c: bf00 nop 801004e: 4b3a ldr r3, [pc, #232] ; (8010138 ) 8010050: 781b ldrb r3, [r3, #0] 8010052: b2db uxtb r3, r3 8010054: f083 0301 eor.w r3, r3, #1 8010058: b2db uxtb r3, r3 801005a: 2b00 cmp r3, #0 801005c: d006 beq.n 801006c 801005e: f001 fa81 bl 8011564 8010062: 4602 mov r2, r0 8010064: 687b ldr r3, [r7, #4] 8010066: 1ad3 subs r3, r2, r3 8010068: 2b31 cmp r3, #49 ; 0x31 801006a: d9f0 bls.n 801004e if(!TX_OK) 801006c: 4b32 ldr r3, [pc, #200] ; (8010138 ) 801006e: 781b ldrb r3, [r3, #0] 8010070: b2db uxtb r3, r3 8010072: f083 0301 eor.w r3, r3, #1 8010076: b2db uxtb r3, r3 8010078: 2b00 cmp r3, #0 801007a: d00b beq.n 8010094 { HAL_UART_Abort_IT(&huart7); 801007c: 482b ldr r0, [pc, #172] ; (801012c ) 801007e: f004 ff45 bl 8014f0c HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010082: 2200 movs r2, #0 8010084: f44f 7100 mov.w r1, #512 ; 0x200 8010088: 482e ldr r0, [pc, #184] ; (8010144 ) 801008a: f002 fda3 bl 8012bd4 return (-1); 801008e: f04f 33ff mov.w r3, #4294967295 8010092: e046 b.n 8010122 } HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010094: 2200 movs r2, #0 8010096: f44f 7100 mov.w r1, #512 ; 0x200 801009a: 482a ldr r0, [pc, #168] ; (8010144 ) 801009c: f002 fd9a bl 8012bd4 HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт 80100a0: 2364 movs r3, #100 ; 0x64 80100a2: 2201 movs r2, #1 80100a4: 4925 ldr r1, [pc, #148] ; (801013c ) 80100a6: 4821 ldr r0, [pc, #132] ; (801012c ) 80100a8: f004 fdf2 bl 8014c90 if(HAL_UART_Receive(&huart7, rx, 9, 100) == HAL_OK) 80100ac: 2364 movs r3, #100 ; 0x64 80100ae: 2209 movs r2, #9 80100b0: 4922 ldr r1, [pc, #136] ; (801013c ) 80100b2: 481e ldr r0, [pc, #120] ; (801012c ) 80100b4: f004 fdec bl 8014c90 80100b8: 4603 mov r3, r0 80100ba: 2b00 cmp r3, #0 80100bc: d126 bne.n 801010c { crc = (uint16_t) ((rx[8]) << 8 | rx[7]); 80100be: 4b1f ldr r3, [pc, #124] ; (801013c ) 80100c0: 7a1b ldrb r3, [r3, #8] 80100c2: 021b lsls r3, r3, #8 80100c4: b21a sxth r2, r3 80100c6: 4b1d ldr r3, [pc, #116] ; (801013c ) 80100c8: 79db ldrb r3, [r3, #7] 80100ca: b21b sxth r3, r3 80100cc: 4313 orrs r3, r2 80100ce: b21b sxth r3, r3 80100d0: 813b strh r3, [r7, #8] if(crc == Crc16_RX(7)) 80100d2: 2007 movs r0, #7 80100d4: f7ff fea4 bl 800fe20 80100d8: 4603 mov r3, r0 80100da: 461a mov r2, r3 80100dc: 893b ldrh r3, [r7, #8] 80100de: 4293 cmp r3, r2 80100e0: d111 bne.n 8010106 { ip[0] = rx[3]; 80100e2: 4b16 ldr r3, [pc, #88] ; (801013c ) 80100e4: 78da ldrb r2, [r3, #3] 80100e6: 4b18 ldr r3, [pc, #96] ; (8010148 ) 80100e8: 701a strb r2, [r3, #0] ip[1] = rx[4]; 80100ea: 4b14 ldr r3, [pc, #80] ; (801013c ) 80100ec: 791a ldrb r2, [r3, #4] 80100ee: 4b16 ldr r3, [pc, #88] ; (8010148 ) 80100f0: 705a strb r2, [r3, #1] ip[2] = rx[5]; 80100f2: 4b12 ldr r3, [pc, #72] ; (801013c ) 80100f4: 795a ldrb r2, [r3, #5] 80100f6: 4b14 ldr r3, [pc, #80] ; (8010148 ) 80100f8: 709a strb r2, [r3, #2] ip[3] = rx[6]; 80100fa: 4b10 ldr r3, [pc, #64] ; (801013c ) 80100fc: 799a ldrb r2, [r3, #6] 80100fe: 4b12 ldr r3, [pc, #72] ; (8010148 ) 8010100: 70da strb r2, [r3, #3] return 0; 8010102: 2300 movs r3, #0 8010104: e00d b.n 8010122 } else { return (-1); 8010106: f04f 33ff mov.w r3, #4294967295 801010a: e00a b.n 8010122 } } else { HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 801010c: 2200 movs r2, #0 801010e: f44f 7100 mov.w r1, #512 ; 0x200 8010112: 480c ldr r0, [pc, #48] ; (8010144 ) 8010114: f002 fd5e bl 8012bd4 return (-1); 8010118: f04f 33ff mov.w r3, #4294967295 801011c: e001 b.n 8010122 } } return res; 801011e: f997 300f ldrsb.w r3, [r7, #15] } 8010122: 4618 mov r0, r3 8010124: 3710 adds r7, #16 8010126: 46bd mov sp, r7 8010128: bd80 pop {r7, pc} 801012a: bf00 nop 801012c: 2006c434 .word 0x2006c434 8010130: 2006ba91 .word 0x2006ba91 8010134: 2006ba93 .word 0x2006ba93 8010138: 2006ba92 .word 0x2006ba92 801013c: 2006c4bc .word 0x2006c4bc 8010140: 2006c5c4 .word 0x2006c5c4 8010144: 40021400 .word 0x40021400 8010148: 2006ba8c .word 0x2006ba8c 0801014c : int8_t ReadChannel(uint8_t ch) { 801014c: b580 push {r7, lr} 801014e: b086 sub sp, #24 8010150: af00 add r7, sp, #0 8010152: 4603 mov r3, r0 8010154: 71fb strb r3, [r7, #7] int8_t res = -1; 8010156: 23ff movs r3, #255 ; 0xff 8010158: 75fb strb r3, [r7, #23] uint16_t i, len = 0, cnt = 0; 801015a: 2300 movs r3, #0 801015c: 82bb strh r3, [r7, #20] 801015e: 2300 movs r3, #0 8010160: 827b strh r3, [r7, #18] uint16_t crc; __IO uint32_t timeout; if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 8010162: 4b5e ldr r3, [pc, #376] ; (80102dc ) 8010164: 681b ldr r3, [r3, #0] 8010166: 69db ldr r3, [r3, #28] 8010168: f003 0308 and.w r3, r3, #8 801016c: 2b08 cmp r3, #8 801016e: d103 bne.n 8010178 __HAL_UART_CLEAR_OREFLAG(&huart7); 8010170: 4b5a ldr r3, [pc, #360] ; (80102dc ) 8010172: 681b ldr r3, [r3, #0] 8010174: 2208 movs r2, #8 8010176: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 8010178: 4b58 ldr r3, [pc, #352] ; (80102dc ) 801017a: 681b ldr r3, [r3, #0] 801017c: 69db ldr r3, [r3, #28] 801017e: f003 0301 and.w r3, r3, #1 8010182: 2b01 cmp r3, #1 8010184: d103 bne.n 801018e __HAL_UART_CLEAR_PEFLAG(&huart7); 8010186: 4b55 ldr r3, [pc, #340] ; (80102dc ) 8010188: 681b ldr r3, [r3, #0] 801018a: 2201 movs r2, #1 801018c: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 801018e: 4b53 ldr r3, [pc, #332] ; (80102dc ) 8010190: 681b ldr r3, [r3, #0] 8010192: 69db ldr r3, [r3, #28] 8010194: f003 0302 and.w r3, r3, #2 8010198: 2b02 cmp r3, #2 801019a: d103 bne.n 80101a4 __HAL_UART_CLEAR_FEFLAG(&huart7); 801019c: 4b4f ldr r3, [pc, #316] ; (80102dc ) 801019e: 681b ldr r3, [r3, #0] 80101a0: 2202 movs r2, #2 80101a2: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 80101a4: 4b4d ldr r3, [pc, #308] ; (80102dc ) 80101a6: 681b ldr r3, [r3, #0] 80101a8: 69db ldr r3, [r3, #28] 80101aa: f003 0304 and.w r3, r3, #4 80101ae: 2b04 cmp r3, #4 80101b0: d103 bne.n 80101ba __HAL_UART_CLEAR_NEFLAG(&huart7); 80101b2: 4b4a ldr r3, [pc, #296] ; (80102dc ) 80101b4: 681b ldr r3, [r3, #0] 80101b6: 2204 movs r2, #4 80101b8: 621a str r2, [r3, #32] HAL_Delay(20); 80101ba: 2014 movs r0, #20 80101bc: f001 f9de bl 801157c TX_OK = RX_OK = UART_ERROR = false; 80101c0: 2200 movs r2, #0 80101c2: 4b47 ldr r3, [pc, #284] ; (80102e0 ) 80101c4: 4611 mov r1, r2 80101c6: 7019 strb r1, [r3, #0] 80101c8: 4b46 ldr r3, [pc, #280] ; (80102e4 ) 80101ca: 4611 mov r1, r2 80101cc: 7019 strb r1, [r3, #0] 80101ce: 4b46 ldr r3, [pc, #280] ; (80102e8 ) 80101d0: 701a strb r2, [r3, #0] len = 0; 80101d2: 2300 movs r3, #0 80101d4: 82bb strh r3, [r7, #20] memset((void *) &rx, 0, sizeof(rx)); 80101d6: f44f 7280 mov.w r2, #256 ; 0x100 80101da: 2100 movs r1, #0 80101dc: 4843 ldr r0, [pc, #268] ; (80102ec ) 80101de: f006 f940 bl 8016462 iobuf[len++] = ch + 1; 80101e2: 8abb ldrh r3, [r7, #20] 80101e4: 1c5a adds r2, r3, #1 80101e6: 82ba strh r2, [r7, #20] 80101e8: 461a mov r2, r3 80101ea: 79fb ldrb r3, [r7, #7] 80101ec: 3301 adds r3, #1 80101ee: b2d9 uxtb r1, r3 80101f0: 4b3f ldr r3, [pc, #252] ; (80102f0 ) 80101f2: 5499 strb r1, [r3, r2] iobuf[len++] = 0x03; 80101f4: 8abb ldrh r3, [r7, #20] 80101f6: 1c5a adds r2, r3, #1 80101f8: 82ba strh r2, [r7, #20] 80101fa: 461a mov r2, r3 80101fc: 4b3c ldr r3, [pc, #240] ; (80102f0 ) 80101fe: 2103 movs r1, #3 8010200: 5499 strb r1, [r3, r2] iobuf[len++] = HI(5001); 8010202: 8abb ldrh r3, [r7, #20] 8010204: 1c5a adds r2, r3, #1 8010206: 82ba strh r2, [r7, #20] 8010208: 461a mov r2, r3 801020a: 4b39 ldr r3, [pc, #228] ; (80102f0 ) 801020c: 2113 movs r1, #19 801020e: 5499 strb r1, [r3, r2] iobuf[len++] = LO(5001); 8010210: 8abb ldrh r3, [r7, #20] 8010212: 1c5a adds r2, r3, #1 8010214: 82ba strh r2, [r7, #20] 8010216: 461a mov r2, r3 8010218: 4b35 ldr r3, [pc, #212] ; (80102f0 ) 801021a: 2189 movs r1, #137 ; 0x89 801021c: 5499 strb r1, [r3, r2] iobuf[len++] = 0; // 801021e: 8abb ldrh r3, [r7, #20] 8010220: 1c5a adds r2, r3, #1 8010222: 82ba strh r2, [r7, #20] 8010224: 461a mov r2, r3 8010226: 4b32 ldr r3, [pc, #200] ; (80102f0 ) 8010228: 2100 movs r1, #0 801022a: 5499 strb r1, [r3, r2] iobuf[len++] = 10; // IIN,IFV,IFN,IKU,IKE,IKD,IKS 801022c: 8abb ldrh r3, [r7, #20] 801022e: 1c5a adds r2, r3, #1 8010230: 82ba strh r2, [r7, #20] 8010232: 461a mov r2, r3 8010234: 4b2e ldr r3, [pc, #184] ; (80102f0 ) 8010236: 210a movs r1, #10 8010238: 5499 strb r1, [r3, r2] crc = Crc16(len); 801023a: 8abb ldrh r3, [r7, #20] 801023c: 4618 mov r0, r3 801023e: f7ff fdc3 bl 800fdc8 8010242: 4603 mov r3, r0 8010244: 823b strh r3, [r7, #16] iobuf[len++] = LO(crc); 8010246: 8abb ldrh r3, [r7, #20] 8010248: 1c5a adds r2, r3, #1 801024a: 82ba strh r2, [r7, #20] 801024c: 461a mov r2, r3 801024e: 8a3b ldrh r3, [r7, #16] 8010250: b2d9 uxtb r1, r3 8010252: 4b27 ldr r3, [pc, #156] ; (80102f0 ) 8010254: 5499 strb r1, [r3, r2] iobuf[len++] = HI(crc); 8010256: 8abb ldrh r3, [r7, #20] 8010258: 1c5a adds r2, r3, #1 801025a: 82ba strh r2, [r7, #20] 801025c: 461a mov r2, r3 801025e: 8a3b ldrh r3, [r7, #16] 8010260: 0a1b lsrs r3, r3, #8 8010262: b29b uxth r3, r3 8010264: b2d9 uxtb r1, r3 8010266: 4b22 ldr r3, [pc, #136] ; (80102f0 ) 8010268: 5499 strb r1, [r3, r2] timeout = HAL_GetTick(); 801026a: f001 f97b bl 8011564 801026e: 4603 mov r3, r0 8010270: 60fb str r3, [r7, #12] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET); 8010272: 2201 movs r2, #1 8010274: f44f 7100 mov.w r1, #512 ; 0x200 8010278: 481e ldr r0, [pc, #120] ; (80102f4 ) 801027a: f002 fcab bl 8012bd4 if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK) 801027e: 8abb ldrh r3, [r7, #20] 8010280: 461a mov r2, r3 8010282: 491b ldr r1, [pc, #108] ; (80102f0 ) 8010284: 4815 ldr r0, [pc, #84] ; (80102dc ) 8010286: f004 fdd3 bl 8014e30 801028a: 4603 mov r3, r0 801028c: 2b00 cmp r3, #0 801028e: f040 8113 bne.w 80104b8 { while((!TX_OK) && (HAL_GetTick() - timeout < 50)); 8010292: bf00 nop 8010294: 4b14 ldr r3, [pc, #80] ; (80102e8 ) 8010296: 781b ldrb r3, [r3, #0] 8010298: b2db uxtb r3, r3 801029a: f083 0301 eor.w r3, r3, #1 801029e: b2db uxtb r3, r3 80102a0: 2b00 cmp r3, #0 80102a2: d006 beq.n 80102b2 80102a4: f001 f95e bl 8011564 80102a8: 4602 mov r2, r0 80102aa: 68fb ldr r3, [r7, #12] 80102ac: 1ad3 subs r3, r2, r3 80102ae: 2b31 cmp r3, #49 ; 0x31 80102b0: d9f0 bls.n 8010294 if(!TX_OK) 80102b2: 4b0d ldr r3, [pc, #52] ; (80102e8 ) 80102b4: 781b ldrb r3, [r3, #0] 80102b6: b2db uxtb r3, r3 80102b8: f083 0301 eor.w r3, r3, #1 80102bc: b2db uxtb r3, r3 80102be: 2b00 cmp r3, #0 80102c0: d01a beq.n 80102f8 { HAL_UART_Abort_IT(&huart7); 80102c2: 4806 ldr r0, [pc, #24] ; (80102dc ) 80102c4: f004 fe22 bl 8014f0c HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 80102c8: 2200 movs r2, #0 80102ca: f44f 7100 mov.w r1, #512 ; 0x200 80102ce: 4809 ldr r0, [pc, #36] ; (80102f4 ) 80102d0: f002 fc80 bl 8012bd4 return (-1); 80102d4: f04f 33ff mov.w r3, #4294967295 80102d8: e0f0 b.n 80104bc 80102da: bf00 nop 80102dc: 2006c434 .word 0x2006c434 80102e0: 2006ba91 .word 0x2006ba91 80102e4: 2006ba93 .word 0x2006ba93 80102e8: 2006ba92 .word 0x2006ba92 80102ec: 2006c4bc .word 0x2006c4bc 80102f0: 2006c5c4 .word 0x2006c5c4 80102f4: 40021400 .word 0x40021400 } HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 80102f8: 2200 movs r2, #0 80102fa: f44f 7100 mov.w r1, #512 ; 0x200 80102fe: 4871 ldr r0, [pc, #452] ; (80104c4 ) 8010300: f002 fc68 bl 8012bd4 HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт 8010304: 2364 movs r3, #100 ; 0x64 8010306: 2201 movs r2, #1 8010308: 496f ldr r1, [pc, #444] ; (80104c8 ) 801030a: 4870 ldr r0, [pc, #448] ; (80104cc ) 801030c: f004 fcc0 bl 8014c90 if(HAL_UART_Receive(&huart7, rx, 25, 100) == HAL_OK) 8010310: 2364 movs r3, #100 ; 0x64 8010312: 2219 movs r2, #25 8010314: 496c ldr r1, [pc, #432] ; (80104c8 ) 8010316: 486d ldr r0, [pc, #436] ; (80104cc ) 8010318: f004 fcba bl 8014c90 801031c: 4603 mov r3, r0 801031e: 2b00 cmp r3, #0 8010320: f040 80c1 bne.w 80104a6 { crc = (uint16_t) ((rx[24]) << 8 | rx[23]); 8010324: 4b68 ldr r3, [pc, #416] ; (80104c8 ) 8010326: 7e1b ldrb r3, [r3, #24] 8010328: 021b lsls r3, r3, #8 801032a: b21a sxth r2, r3 801032c: 4b66 ldr r3, [pc, #408] ; (80104c8 ) 801032e: 7ddb ldrb r3, [r3, #23] 8010330: b21b sxth r3, r3 8010332: 4313 orrs r3, r2 8010334: b21b sxth r3, r3 8010336: 823b strh r3, [r7, #16] if(crc == Crc16_RX(23)) 8010338: 2017 movs r0, #23 801033a: f7ff fd71 bl 800fe20 801033e: 4603 mov r3, r0 8010340: 461a mov r2, r3 8010342: 8a3b ldrh r3, [r7, #16] 8010344: 4293 cmp r3, r2 8010346: f040 80ab bne.w 80104a0 { pardata.amplif[ch].IIN = (uint16_t) ((rx[3]) << 8 | rx[4]); 801034a: 79fb ldrb r3, [r7, #7] 801034c: 4a5e ldr r2, [pc, #376] ; (80104c8 ) 801034e: 78d2 ldrb r2, [r2, #3] 8010350: 0212 lsls r2, r2, #8 8010352: b211 sxth r1, r2 8010354: 4a5c ldr r2, [pc, #368] ; (80104c8 ) 8010356: 7912 ldrb r2, [r2, #4] 8010358: b212 sxth r2, r2 801035a: 430a orrs r2, r1 801035c: b212 sxth r2, r2 801035e: b291 uxth r1, r2 8010360: 4a5b ldr r2, [pc, #364] ; (80104d0 ) 8010362: 015b lsls r3, r3, #5 8010364: 4413 add r3, r2 8010366: 460a mov r2, r1 8010368: 801a strh r2, [r3, #0] pardata.amplif[ch].IFV = (uint16_t) ((rx[5]) << 8 | rx[6]); 801036a: 79fb ldrb r3, [r7, #7] 801036c: 4a56 ldr r2, [pc, #344] ; (80104c8 ) 801036e: 7952 ldrb r2, [r2, #5] 8010370: 0212 lsls r2, r2, #8 8010372: b211 sxth r1, r2 8010374: 4a54 ldr r2, [pc, #336] ; (80104c8 ) 8010376: 7992 ldrb r2, [r2, #6] 8010378: b212 sxth r2, r2 801037a: 430a orrs r2, r1 801037c: b212 sxth r2, r2 801037e: b291 uxth r1, r2 8010380: 4a53 ldr r2, [pc, #332] ; (80104d0 ) 8010382: 015b lsls r3, r3, #5 8010384: 4413 add r3, r2 8010386: 3302 adds r3, #2 8010388: 460a mov r2, r1 801038a: 801a strh r2, [r3, #0] pardata.amplif[ch].IFN = (uint16_t) ((rx[7]) << 8 | rx[8]); 801038c: 79fb ldrb r3, [r7, #7] 801038e: 4a4e ldr r2, [pc, #312] ; (80104c8 ) 8010390: 79d2 ldrb r2, [r2, #7] 8010392: 0212 lsls r2, r2, #8 8010394: b211 sxth r1, r2 8010396: 4a4c ldr r2, [pc, #304] ; (80104c8 ) 8010398: 7a12 ldrb r2, [r2, #8] 801039a: b212 sxth r2, r2 801039c: 430a orrs r2, r1 801039e: b212 sxth r2, r2 80103a0: b291 uxth r1, r2 80103a2: 4a4b ldr r2, [pc, #300] ; (80104d0 ) 80103a4: 015b lsls r3, r3, #5 80103a6: 4413 add r3, r2 80103a8: 3304 adds r3, #4 80103aa: 460a mov r2, r1 80103ac: 801a strh r2, [r3, #0] pardata.amplif[ch].IKU = (uint16_t) ((rx[9]) << 8 | rx[10]); 80103ae: 79fb ldrb r3, [r7, #7] 80103b0: 4a45 ldr r2, [pc, #276] ; (80104c8 ) 80103b2: 7a52 ldrb r2, [r2, #9] 80103b4: 0212 lsls r2, r2, #8 80103b6: b211 sxth r1, r2 80103b8: 4a43 ldr r2, [pc, #268] ; (80104c8 ) 80103ba: 7a92 ldrb r2, [r2, #10] 80103bc: b212 sxth r2, r2 80103be: 430a orrs r2, r1 80103c0: b212 sxth r2, r2 80103c2: b291 uxth r1, r2 80103c4: 4a42 ldr r2, [pc, #264] ; (80104d0 ) 80103c6: 015b lsls r3, r3, #5 80103c8: 4413 add r3, r2 80103ca: 3306 adds r3, #6 80103cc: 460a mov r2, r1 80103ce: 801a strh r2, [r3, #0] pardata.amplif[ch].IKE = (uint16_t) ((rx[11]) << 8 | rx[12]); 80103d0: 79fb ldrb r3, [r7, #7] 80103d2: 4a3d ldr r2, [pc, #244] ; (80104c8 ) 80103d4: 7ad2 ldrb r2, [r2, #11] 80103d6: 0212 lsls r2, r2, #8 80103d8: b211 sxth r1, r2 80103da: 4a3b ldr r2, [pc, #236] ; (80104c8 ) 80103dc: 7b12 ldrb r2, [r2, #12] 80103de: b212 sxth r2, r2 80103e0: 430a orrs r2, r1 80103e2: b212 sxth r2, r2 80103e4: b291 uxth r1, r2 80103e6: 4a3a ldr r2, [pc, #232] ; (80104d0 ) 80103e8: 015b lsls r3, r3, #5 80103ea: 4413 add r3, r2 80103ec: 3308 adds r3, #8 80103ee: 460a mov r2, r1 80103f0: 801a strh r2, [r3, #0] pardata.amplif[ch].IKD = (uint16_t) ((rx[13]) << 8 | rx[14]); 80103f2: 79fb ldrb r3, [r7, #7] 80103f4: 4a34 ldr r2, [pc, #208] ; (80104c8 ) 80103f6: 7b52 ldrb r2, [r2, #13] 80103f8: 0212 lsls r2, r2, #8 80103fa: b211 sxth r1, r2 80103fc: 4a32 ldr r2, [pc, #200] ; (80104c8 ) 80103fe: 7b92 ldrb r2, [r2, #14] 8010400: b212 sxth r2, r2 8010402: 430a orrs r2, r1 8010404: b212 sxth r2, r2 8010406: b291 uxth r1, r2 8010408: 4a31 ldr r2, [pc, #196] ; (80104d0 ) 801040a: 015b lsls r3, r3, #5 801040c: 4413 add r3, r2 801040e: 330a adds r3, #10 8010410: 460a mov r2, r1 8010412: 801a strh r2, [r3, #0] pardata.amplif[ch].IKS = (uint16_t) ((rx[15]) << 8 | rx[16]); 8010414: 79fb ldrb r3, [r7, #7] 8010416: 4a2c ldr r2, [pc, #176] ; (80104c8 ) 8010418: 7bd2 ldrb r2, [r2, #15] 801041a: 0212 lsls r2, r2, #8 801041c: b211 sxth r1, r2 801041e: 4a2a ldr r2, [pc, #168] ; (80104c8 ) 8010420: 7c12 ldrb r2, [r2, #16] 8010422: b212 sxth r2, r2 8010424: 430a orrs r2, r1 8010426: b212 sxth r2, r2 8010428: b291 uxth r1, r2 801042a: 4a29 ldr r2, [pc, #164] ; (80104d0 ) 801042c: 015b lsls r3, r3, #5 801042e: 4413 add r3, r2 8010430: 330c adds r3, #12 8010432: 460a mov r2, r1 8010434: 801a strh r2, [r3, #0] pardata.amplif[ch].IPZ = (uint16_t) ((rx[17]) << 8 | rx[18]); 8010436: 79fb ldrb r3, [r7, #7] 8010438: 4a23 ldr r2, [pc, #140] ; (80104c8 ) 801043a: 7c52 ldrb r2, [r2, #17] 801043c: 0212 lsls r2, r2, #8 801043e: b211 sxth r1, r2 8010440: 4a21 ldr r2, [pc, #132] ; (80104c8 ) 8010442: 7c92 ldrb r2, [r2, #18] 8010444: b212 sxth r2, r2 8010446: 430a orrs r2, r1 8010448: b212 sxth r2, r2 801044a: b291 uxth r1, r2 801044c: 4a20 ldr r2, [pc, #128] ; (80104d0 ) 801044e: 015b lsls r3, r3, #5 8010450: 4413 add r3, r2 8010452: 330e adds r3, #14 8010454: 460a mov r2, r1 8010456: 801a strh r2, [r3, #0] pardata.amplif[ch].OPZ = (uint16_t) ((rx[19]) << 8 | rx[20]); 8010458: 79fb ldrb r3, [r7, #7] 801045a: 4a1b ldr r2, [pc, #108] ; (80104c8 ) 801045c: 7cd2 ldrb r2, [r2, #19] 801045e: 0212 lsls r2, r2, #8 8010460: b211 sxth r1, r2 8010462: 4a19 ldr r2, [pc, #100] ; (80104c8 ) 8010464: 7d12 ldrb r2, [r2, #20] 8010466: b212 sxth r2, r2 8010468: 430a orrs r2, r1 801046a: b212 sxth r2, r2 801046c: b291 uxth r1, r2 801046e: 4a18 ldr r2, [pc, #96] ; (80104d0 ) 8010470: 015b lsls r3, r3, #5 8010472: 4413 add r3, r2 8010474: 3310 adds r3, #16 8010476: 460a mov r2, r1 8010478: 801a strh r2, [r3, #0] pardata.amplif[ch].VAL = (uint16_t) ((rx[21]) << 8 | rx[22]); 801047a: 79fb ldrb r3, [r7, #7] 801047c: 4a12 ldr r2, [pc, #72] ; (80104c8 ) 801047e: 7d52 ldrb r2, [r2, #21] 8010480: 0212 lsls r2, r2, #8 8010482: b211 sxth r1, r2 8010484: 4a10 ldr r2, [pc, #64] ; (80104c8 ) 8010486: 7d92 ldrb r2, [r2, #22] 8010488: b212 sxth r2, r2 801048a: 430a orrs r2, r1 801048c: b212 sxth r2, r2 801048e: b291 uxth r1, r2 8010490: 4a0f ldr r2, [pc, #60] ; (80104d0 ) 8010492: 015b lsls r3, r3, #5 8010494: 4413 add r3, r2 8010496: 3312 adds r3, #18 8010498: 460a mov r2, r1 801049a: 801a strh r2, [r3, #0] return 0; 801049c: 2300 movs r3, #0 801049e: e00d b.n 80104bc } else { return (-1); 80104a0: f04f 33ff mov.w r3, #4294967295 80104a4: e00a b.n 80104bc } } else { HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 80104a6: 2200 movs r2, #0 80104a8: f44f 7100 mov.w r1, #512 ; 0x200 80104ac: 4805 ldr r0, [pc, #20] ; (80104c4 ) 80104ae: f002 fb91 bl 8012bd4 return (-1); 80104b2: f04f 33ff mov.w r3, #4294967295 80104b6: e001 b.n 80104bc } } return res; 80104b8: f997 3017 ldrsb.w r3, [r7, #23] } 80104bc: 4618 mov r0, r3 80104be: 3718 adds r7, #24 80104c0: 46bd mov sp, r7 80104c2: bd80 pop {r7, pc} 80104c4: 40021400 .word 0x40021400 80104c8: 2006c4bc .word 0x2006c4bc 80104cc: 2006c434 .word 0x2006c434 80104d0: 2006bca8 .word 0x2006bca8 080104d4 : int8_t WriteChannel(uint8_t ch) { 80104d4: b580 push {r7, lr} 80104d6: b086 sub sp, #24 80104d8: af00 add r7, sp, #0 80104da: 4603 mov r3, r0 80104dc: 71fb strb r3, [r7, #7] int8_t res = -1; 80104de: 23ff movs r3, #255 ; 0xff 80104e0: 75fb strb r3, [r7, #23] uint16_t i, len = 0; 80104e2: 2300 movs r3, #0 80104e4: 82bb strh r3, [r7, #20] uint16_t crc; __IO uint32_t timeout; if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 80104e6: 4ba8 ldr r3, [pc, #672] ; (8010788 ) 80104e8: 681b ldr r3, [r3, #0] 80104ea: 69db ldr r3, [r3, #28] 80104ec: f003 0308 and.w r3, r3, #8 80104f0: 2b08 cmp r3, #8 80104f2: d103 bne.n 80104fc __HAL_UART_CLEAR_OREFLAG(&huart7); 80104f4: 4ba4 ldr r3, [pc, #656] ; (8010788 ) 80104f6: 681b ldr r3, [r3, #0] 80104f8: 2208 movs r2, #8 80104fa: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 80104fc: 4ba2 ldr r3, [pc, #648] ; (8010788 ) 80104fe: 681b ldr r3, [r3, #0] 8010500: 69db ldr r3, [r3, #28] 8010502: f003 0301 and.w r3, r3, #1 8010506: 2b01 cmp r3, #1 8010508: d103 bne.n 8010512 __HAL_UART_CLEAR_PEFLAG(&huart7); 801050a: 4b9f ldr r3, [pc, #636] ; (8010788 ) 801050c: 681b ldr r3, [r3, #0] 801050e: 2201 movs r2, #1 8010510: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 8010512: 4b9d ldr r3, [pc, #628] ; (8010788 ) 8010514: 681b ldr r3, [r3, #0] 8010516: 69db ldr r3, [r3, #28] 8010518: f003 0302 and.w r3, r3, #2 801051c: 2b02 cmp r3, #2 801051e: d103 bne.n 8010528 __HAL_UART_CLEAR_FEFLAG(&huart7); 8010520: 4b99 ldr r3, [pc, #612] ; (8010788 ) 8010522: 681b ldr r3, [r3, #0] 8010524: 2202 movs r2, #2 8010526: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 8010528: 4b97 ldr r3, [pc, #604] ; (8010788 ) 801052a: 681b ldr r3, [r3, #0] 801052c: 69db ldr r3, [r3, #28] 801052e: f003 0304 and.w r3, r3, #4 8010532: 2b04 cmp r3, #4 8010534: d103 bne.n 801053e __HAL_UART_CLEAR_NEFLAG(&huart7); 8010536: 4b94 ldr r3, [pc, #592] ; (8010788 ) 8010538: 681b ldr r3, [r3, #0] 801053a: 2204 movs r2, #4 801053c: 621a str r2, [r3, #32] HAL_Delay(20); 801053e: 2014 movs r0, #20 8010540: f001 f81c bl 801157c TX_OK = RX_OK = UART_ERROR = false; 8010544: 2200 movs r2, #0 8010546: 4b91 ldr r3, [pc, #580] ; (801078c ) 8010548: 4611 mov r1, r2 801054a: 7019 strb r1, [r3, #0] 801054c: 4b90 ldr r3, [pc, #576] ; (8010790 ) 801054e: 4611 mov r1, r2 8010550: 7019 strb r1, [r3, #0] 8010552: 4b90 ldr r3, [pc, #576] ; (8010794 ) 8010554: 701a strb r2, [r3, #0] len = 0; 8010556: 2300 movs r3, #0 8010558: 82bb strh r3, [r7, #20] memset((void *) &rx, 0, sizeof(rx)); 801055a: f44f 7280 mov.w r2, #256 ; 0x100 801055e: 2100 movs r1, #0 8010560: 488d ldr r0, [pc, #564] ; (8010798 ) 8010562: f005 ff7e bl 8016462 iobuf[len++] = ch + 1; 8010566: 8abb ldrh r3, [r7, #20] 8010568: 1c5a adds r2, r3, #1 801056a: 82ba strh r2, [r7, #20] 801056c: 461a mov r2, r3 801056e: 79fb ldrb r3, [r7, #7] 8010570: 3301 adds r3, #1 8010572: b2d9 uxtb r1, r3 8010574: 4b89 ldr r3, [pc, #548] ; (801079c ) 8010576: 5499 strb r1, [r3, r2] iobuf[len++] = 0x10; 8010578: 8abb ldrh r3, [r7, #20] 801057a: 1c5a adds r2, r3, #1 801057c: 82ba strh r2, [r7, #20] 801057e: 461a mov r2, r3 8010580: 4b86 ldr r3, [pc, #536] ; (801079c ) 8010582: 2110 movs r1, #16 8010584: 5499 strb r1, [r3, r2] iobuf[len++] = HI(5001); 8010586: 8abb ldrh r3, [r7, #20] 8010588: 1c5a adds r2, r3, #1 801058a: 82ba strh r2, [r7, #20] 801058c: 461a mov r2, r3 801058e: 4b83 ldr r3, [pc, #524] ; (801079c ) 8010590: 2113 movs r1, #19 8010592: 5499 strb r1, [r3, r2] iobuf[len++] = LO(5001); 8010594: 8abb ldrh r3, [r7, #20] 8010596: 1c5a adds r2, r3, #1 8010598: 82ba strh r2, [r7, #20] 801059a: 461a mov r2, r3 801059c: 4b7f ldr r3, [pc, #508] ; (801079c ) 801059e: 2189 movs r1, #137 ; 0x89 80105a0: 5499 strb r1, [r3, r2] iobuf[len++] = 0; 80105a2: 8abb ldrh r3, [r7, #20] 80105a4: 1c5a adds r2, r3, #1 80105a6: 82ba strh r2, [r7, #20] 80105a8: 461a mov r2, r3 80105aa: 4b7c ldr r3, [pc, #496] ; (801079c ) 80105ac: 2100 movs r1, #0 80105ae: 5499 strb r1, [r3, r2] iobuf[len++] = 10; 80105b0: 8abb ldrh r3, [r7, #20] 80105b2: 1c5a adds r2, r3, #1 80105b4: 82ba strh r2, [r7, #20] 80105b6: 461a mov r2, r3 80105b8: 4b78 ldr r3, [pc, #480] ; (801079c ) 80105ba: 210a movs r1, #10 80105bc: 5499 strb r1, [r3, r2] iobuf[len++] = 20; 80105be: 8abb ldrh r3, [r7, #20] 80105c0: 1c5a adds r2, r3, #1 80105c2: 82ba strh r2, [r7, #20] 80105c4: 461a mov r2, r3 80105c6: 4b75 ldr r3, [pc, #468] ; (801079c ) 80105c8: 2114 movs r1, #20 80105ca: 5499 strb r1, [r3, r2] iobuf[len++] = 0; 80105cc: 8abb ldrh r3, [r7, #20] 80105ce: 1c5a adds r2, r3, #1 80105d0: 82ba strh r2, [r7, #20] 80105d2: 461a mov r2, r3 80105d4: 4b71 ldr r3, [pc, #452] ; (801079c ) 80105d6: 2100 movs r1, #0 80105d8: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IIN; 80105da: 8abb ldrh r3, [r7, #20] 80105dc: 1c5a adds r2, r3, #1 80105de: 82ba strh r2, [r7, #20] 80105e0: 4619 mov r1, r3 80105e2: 79fb ldrb r3, [r7, #7] 80105e4: 4a6e ldr r2, [pc, #440] ; (80107a0 ) 80105e6: 015b lsls r3, r3, #5 80105e8: 4413 add r3, r2 80105ea: 881b ldrh r3, [r3, #0] 80105ec: b29b uxth r3, r3 80105ee: b2da uxtb r2, r3 80105f0: 4b6a ldr r3, [pc, #424] ; (801079c ) 80105f2: 545a strb r2, [r3, r1] iobuf[len++] = 0; 80105f4: 8abb ldrh r3, [r7, #20] 80105f6: 1c5a adds r2, r3, #1 80105f8: 82ba strh r2, [r7, #20] 80105fa: 461a mov r2, r3 80105fc: 4b67 ldr r3, [pc, #412] ; (801079c ) 80105fe: 2100 movs r1, #0 8010600: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IFV; 8010602: 8abb ldrh r3, [r7, #20] 8010604: 1c5a adds r2, r3, #1 8010606: 82ba strh r2, [r7, #20] 8010608: 4619 mov r1, r3 801060a: 79fb ldrb r3, [r7, #7] 801060c: 4a64 ldr r2, [pc, #400] ; (80107a0 ) 801060e: 015b lsls r3, r3, #5 8010610: 4413 add r3, r2 8010612: 3302 adds r3, #2 8010614: 881b ldrh r3, [r3, #0] 8010616: b29b uxth r3, r3 8010618: b2da uxtb r2, r3 801061a: 4b60 ldr r3, [pc, #384] ; (801079c ) 801061c: 545a strb r2, [r3, r1] iobuf[len++] = 0; 801061e: 8abb ldrh r3, [r7, #20] 8010620: 1c5a adds r2, r3, #1 8010622: 82ba strh r2, [r7, #20] 8010624: 461a mov r2, r3 8010626: 4b5d ldr r3, [pc, #372] ; (801079c ) 8010628: 2100 movs r1, #0 801062a: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IFN; 801062c: 8abb ldrh r3, [r7, #20] 801062e: 1c5a adds r2, r3, #1 8010630: 82ba strh r2, [r7, #20] 8010632: 4619 mov r1, r3 8010634: 79fb ldrb r3, [r7, #7] 8010636: 4a5a ldr r2, [pc, #360] ; (80107a0 ) 8010638: 015b lsls r3, r3, #5 801063a: 4413 add r3, r2 801063c: 3304 adds r3, #4 801063e: 881b ldrh r3, [r3, #0] 8010640: b29b uxth r3, r3 8010642: b2da uxtb r2, r3 8010644: 4b55 ldr r3, [pc, #340] ; (801079c ) 8010646: 545a strb r2, [r3, r1] iobuf[len++] = 0; 8010648: 8abb ldrh r3, [r7, #20] 801064a: 1c5a adds r2, r3, #1 801064c: 82ba strh r2, [r7, #20] 801064e: 461a mov r2, r3 8010650: 4b52 ldr r3, [pc, #328] ; (801079c ) 8010652: 2100 movs r1, #0 8010654: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IKU; 8010656: 8abb ldrh r3, [r7, #20] 8010658: 1c5a adds r2, r3, #1 801065a: 82ba strh r2, [r7, #20] 801065c: 4619 mov r1, r3 801065e: 79fb ldrb r3, [r7, #7] 8010660: 4a4f ldr r2, [pc, #316] ; (80107a0 ) 8010662: 015b lsls r3, r3, #5 8010664: 4413 add r3, r2 8010666: 3306 adds r3, #6 8010668: 881b ldrh r3, [r3, #0] 801066a: b29b uxth r3, r3 801066c: b2da uxtb r2, r3 801066e: 4b4b ldr r3, [pc, #300] ; (801079c ) 8010670: 545a strb r2, [r3, r1] iobuf[len++] = 0; 8010672: 8abb ldrh r3, [r7, #20] 8010674: 1c5a adds r2, r3, #1 8010676: 82ba strh r2, [r7, #20] 8010678: 461a mov r2, r3 801067a: 4b48 ldr r3, [pc, #288] ; (801079c ) 801067c: 2100 movs r1, #0 801067e: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IKE; 8010680: 8abb ldrh r3, [r7, #20] 8010682: 1c5a adds r2, r3, #1 8010684: 82ba strh r2, [r7, #20] 8010686: 4619 mov r1, r3 8010688: 79fb ldrb r3, [r7, #7] 801068a: 4a45 ldr r2, [pc, #276] ; (80107a0 ) 801068c: 015b lsls r3, r3, #5 801068e: 4413 add r3, r2 8010690: 3308 adds r3, #8 8010692: 881b ldrh r3, [r3, #0] 8010694: b29b uxth r3, r3 8010696: b2da uxtb r2, r3 8010698: 4b40 ldr r3, [pc, #256] ; (801079c ) 801069a: 545a strb r2, [r3, r1] iobuf[len++] = 0; 801069c: 8abb ldrh r3, [r7, #20] 801069e: 1c5a adds r2, r3, #1 80106a0: 82ba strh r2, [r7, #20] 80106a2: 461a mov r2, r3 80106a4: 4b3d ldr r3, [pc, #244] ; (801079c ) 80106a6: 2100 movs r1, #0 80106a8: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IKD; 80106aa: 8abb ldrh r3, [r7, #20] 80106ac: 1c5a adds r2, r3, #1 80106ae: 82ba strh r2, [r7, #20] 80106b0: 4619 mov r1, r3 80106b2: 79fb ldrb r3, [r7, #7] 80106b4: 4a3a ldr r2, [pc, #232] ; (80107a0 ) 80106b6: 015b lsls r3, r3, #5 80106b8: 4413 add r3, r2 80106ba: 330a adds r3, #10 80106bc: 881b ldrh r3, [r3, #0] 80106be: b29b uxth r3, r3 80106c0: b2da uxtb r2, r3 80106c2: 4b36 ldr r3, [pc, #216] ; (801079c ) 80106c4: 545a strb r2, [r3, r1] iobuf[len++] = 0; 80106c6: 8abb ldrh r3, [r7, #20] 80106c8: 1c5a adds r2, r3, #1 80106ca: 82ba strh r2, [r7, #20] 80106cc: 461a mov r2, r3 80106ce: 4b33 ldr r3, [pc, #204] ; (801079c ) 80106d0: 2100 movs r1, #0 80106d2: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IKS; 80106d4: 8abb ldrh r3, [r7, #20] 80106d6: 1c5a adds r2, r3, #1 80106d8: 82ba strh r2, [r7, #20] 80106da: 4619 mov r1, r3 80106dc: 79fb ldrb r3, [r7, #7] 80106de: 4a30 ldr r2, [pc, #192] ; (80107a0 ) 80106e0: 015b lsls r3, r3, #5 80106e2: 4413 add r3, r2 80106e4: 330c adds r3, #12 80106e6: 881b ldrh r3, [r3, #0] 80106e8: b29b uxth r3, r3 80106ea: b2da uxtb r2, r3 80106ec: 4b2b ldr r3, [pc, #172] ; (801079c ) 80106ee: 545a strb r2, [r3, r1] iobuf[len++] = 0; 80106f0: 8abb ldrh r3, [r7, #20] 80106f2: 1c5a adds r2, r3, #1 80106f4: 82ba strh r2, [r7, #20] 80106f6: 461a mov r2, r3 80106f8: 4b28 ldr r3, [pc, #160] ; (801079c ) 80106fa: 2100 movs r1, #0 80106fc: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IPZ; 80106fe: 8abb ldrh r3, [r7, #20] 8010700: 1c5a adds r2, r3, #1 8010702: 82ba strh r2, [r7, #20] 8010704: 4619 mov r1, r3 8010706: 79fb ldrb r3, [r7, #7] 8010708: 4a25 ldr r2, [pc, #148] ; (80107a0 ) 801070a: 015b lsls r3, r3, #5 801070c: 4413 add r3, r2 801070e: 330e adds r3, #14 8010710: 881b ldrh r3, [r3, #0] 8010712: b29b uxth r3, r3 8010714: b2da uxtb r2, r3 8010716: 4b21 ldr r3, [pc, #132] ; (801079c ) 8010718: 545a strb r2, [r3, r1] iobuf[len++] = 0; 801071a: 8abb ldrh r3, [r7, #20] 801071c: 1c5a adds r2, r3, #1 801071e: 82ba strh r2, [r7, #20] 8010720: 461a mov r2, r3 8010722: 4b1e ldr r3, [pc, #120] ; (801079c ) 8010724: 2100 movs r1, #0 8010726: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].OPZ; 8010728: 8abb ldrh r3, [r7, #20] 801072a: 1c5a adds r2, r3, #1 801072c: 82ba strh r2, [r7, #20] 801072e: 4619 mov r1, r3 8010730: 79fb ldrb r3, [r7, #7] 8010732: 4a1b ldr r2, [pc, #108] ; (80107a0 ) 8010734: 015b lsls r3, r3, #5 8010736: 4413 add r3, r2 8010738: 3310 adds r3, #16 801073a: 881b ldrh r3, [r3, #0] 801073c: b29b uxth r3, r3 801073e: b2da uxtb r2, r3 8010740: 4b16 ldr r3, [pc, #88] ; (801079c ) 8010742: 545a strb r2, [r3, r1] iobuf[len++] = 0; 8010744: 8abb ldrh r3, [r7, #20] 8010746: 1c5a adds r2, r3, #1 8010748: 82ba strh r2, [r7, #20] 801074a: 461a mov r2, r3 801074c: 4b13 ldr r3, [pc, #76] ; (801079c ) 801074e: 2100 movs r1, #0 8010750: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].VAL; 8010752: 8abb ldrh r3, [r7, #20] 8010754: 1c5a adds r2, r3, #1 8010756: 82ba strh r2, [r7, #20] 8010758: 4619 mov r1, r3 801075a: 79fb ldrb r3, [r7, #7] 801075c: 4a10 ldr r2, [pc, #64] ; (80107a0 ) 801075e: 015b lsls r3, r3, #5 8010760: 4413 add r3, r2 8010762: 3312 adds r3, #18 8010764: 881b ldrh r3, [r3, #0] 8010766: b29b uxth r3, r3 8010768: b2da uxtb r2, r3 801076a: 4b0c ldr r3, [pc, #48] ; (801079c ) 801076c: 545a strb r2, [r3, r1] crc = Crc16(len); 801076e: 8abb ldrh r3, [r7, #20] 8010770: 4618 mov r0, r3 8010772: f7ff fb29 bl 800fdc8 8010776: 4603 mov r3, r0 8010778: 827b strh r3, [r7, #18] iobuf[len++] = LO(crc); 801077a: 8abb ldrh r3, [r7, #20] 801077c: 1c5a adds r2, r3, #1 801077e: 82ba strh r2, [r7, #20] 8010780: 461a mov r2, r3 8010782: 8a7b ldrh r3, [r7, #18] 8010784: b2d9 uxtb r1, r3 8010786: e00d b.n 80107a4 8010788: 2006c434 .word 0x2006c434 801078c: 2006ba91 .word 0x2006ba91 8010790: 2006ba93 .word 0x2006ba93 8010794: 2006ba92 .word 0x2006ba92 8010798: 2006c4bc .word 0x2006c4bc 801079c: 2006c5c4 .word 0x2006c5c4 80107a0: 2006bca8 .word 0x2006bca8 80107a4: 4b44 ldr r3, [pc, #272] ; (80108b8 ) 80107a6: 5499 strb r1, [r3, r2] iobuf[len++] = HI(crc); 80107a8: 8abb ldrh r3, [r7, #20] 80107aa: 1c5a adds r2, r3, #1 80107ac: 82ba strh r2, [r7, #20] 80107ae: 461a mov r2, r3 80107b0: 8a7b ldrh r3, [r7, #18] 80107b2: 0a1b lsrs r3, r3, #8 80107b4: b29b uxth r3, r3 80107b6: b2d9 uxtb r1, r3 80107b8: 4b3f ldr r3, [pc, #252] ; (80108b8 ) 80107ba: 5499 strb r1, [r3, r2] timeout = HAL_GetTick(); 80107bc: f000 fed2 bl 8011564 80107c0: 4603 mov r3, r0 80107c2: 60fb str r3, [r7, #12] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET); 80107c4: 2201 movs r2, #1 80107c6: f44f 7100 mov.w r1, #512 ; 0x200 80107ca: 483c ldr r0, [pc, #240] ; (80108bc ) 80107cc: f002 fa02 bl 8012bd4 if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK) 80107d0: 8abb ldrh r3, [r7, #20] 80107d2: 461a mov r2, r3 80107d4: 4938 ldr r1, [pc, #224] ; (80108b8 ) 80107d6: 483a ldr r0, [pc, #232] ; (80108c0 ) 80107d8: f004 fb2a bl 8014e30 80107dc: 4603 mov r3, r0 80107de: 2b00 cmp r3, #0 80107e0: d163 bne.n 80108aa { while((!TX_OK) && (HAL_GetTick() - timeout < 200)); 80107e2: bf00 nop 80107e4: 4b37 ldr r3, [pc, #220] ; (80108c4 ) 80107e6: 781b ldrb r3, [r3, #0] 80107e8: b2db uxtb r3, r3 80107ea: f083 0301 eor.w r3, r3, #1 80107ee: b2db uxtb r3, r3 80107f0: 2b00 cmp r3, #0 80107f2: d006 beq.n 8010802 80107f4: f000 feb6 bl 8011564 80107f8: 4602 mov r2, r0 80107fa: 68fb ldr r3, [r7, #12] 80107fc: 1ad3 subs r3, r2, r3 80107fe: 2bc7 cmp r3, #199 ; 0xc7 8010800: d9f0 bls.n 80107e4 if(!TX_OK) 8010802: 4b30 ldr r3, [pc, #192] ; (80108c4 ) 8010804: 781b ldrb r3, [r3, #0] 8010806: b2db uxtb r3, r3 8010808: f083 0301 eor.w r3, r3, #1 801080c: b2db uxtb r3, r3 801080e: 2b00 cmp r3, #0 8010810: d00b beq.n 801082a { HAL_UART_Abort_IT(&huart7); 8010812: 482b ldr r0, [pc, #172] ; (80108c0 ) 8010814: f004 fb7a bl 8014f0c HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010818: 2200 movs r2, #0 801081a: f44f 7100 mov.w r1, #512 ; 0x200 801081e: 4827 ldr r0, [pc, #156] ; (80108bc ) 8010820: f002 f9d8 bl 8012bd4 return (-1); 8010824: f04f 33ff mov.w r3, #4294967295 8010828: e041 b.n 80108ae } HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 801082a: 2200 movs r2, #0 801082c: f44f 7100 mov.w r1, #512 ; 0x200 8010830: 4822 ldr r0, [pc, #136] ; (80108bc ) 8010832: f002 f9cf bl 8012bd4 HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт 8010836: 2364 movs r3, #100 ; 0x64 8010838: 2201 movs r2, #1 801083a: 4923 ldr r1, [pc, #140] ; (80108c8 ) 801083c: 4820 ldr r0, [pc, #128] ; (80108c0 ) 801083e: f004 fa27 bl 8014c90 if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK) 8010842: f44f 73fa mov.w r3, #500 ; 0x1f4 8010846: 2208 movs r2, #8 8010848: 491f ldr r1, [pc, #124] ; (80108c8 ) 801084a: 481d ldr r0, [pc, #116] ; (80108c0 ) 801084c: f004 fa20 bl 8014c90 8010850: 4603 mov r3, r0 8010852: 2b00 cmp r3, #0 8010854: d120 bne.n 8010898 { crc = (uint16_t) ((rx[7]) << 8 | rx[6]); 8010856: 4b1c ldr r3, [pc, #112] ; (80108c8 ) 8010858: 79db ldrb r3, [r3, #7] 801085a: 021b lsls r3, r3, #8 801085c: b21a sxth r2, r3 801085e: 4b1a ldr r3, [pc, #104] ; (80108c8 ) 8010860: 799b ldrb r3, [r3, #6] 8010862: b21b sxth r3, r3 8010864: 4313 orrs r3, r2 8010866: b21b sxth r3, r3 8010868: 827b strh r3, [r7, #18] if(crc == Crc16_RX(6)) 801086a: 2006 movs r0, #6 801086c: f7ff fad8 bl 800fe20 8010870: 4603 mov r3, r0 8010872: 461a mov r2, r3 8010874: 8a7b ldrh r3, [r7, #18] 8010876: 4293 cmp r3, r2 8010878: d10b bne.n 8010892 { if(rx[0] == (ch + 1)) 801087a: 4b13 ldr r3, [pc, #76] ; (80108c8 ) 801087c: 781b ldrb r3, [r3, #0] 801087e: 461a mov r2, r3 8010880: 79fb ldrb r3, [r7, #7] 8010882: 3301 adds r3, #1 8010884: 429a cmp r2, r3 8010886: d101 bne.n 801088c return 0; 8010888: 2300 movs r3, #0 801088a: e010 b.n 80108ae else return (-1); 801088c: f04f 33ff mov.w r3, #4294967295 8010890: e00d b.n 80108ae } else { return (-1); 8010892: f04f 33ff mov.w r3, #4294967295 8010896: e00a b.n 80108ae } } else { HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010898: 2200 movs r2, #0 801089a: f44f 7100 mov.w r1, #512 ; 0x200 801089e: 4807 ldr r0, [pc, #28] ; (80108bc ) 80108a0: f002 f998 bl 8012bd4 return (-1); 80108a4: f04f 33ff mov.w r3, #4294967295 80108a8: e001 b.n 80108ae } } return res; 80108aa: f997 3017 ldrsb.w r3, [r7, #23] } 80108ae: 4618 mov r0, r3 80108b0: 3718 adds r7, #24 80108b2: 46bd mov sp, r7 80108b4: bd80 pop {r7, pc} 80108b6: bf00 nop 80108b8: 2006c5c4 .word 0x2006c5c4 80108bc: 40021400 .word 0x40021400 80108c0: 2006c434 .word 0x2006c434 80108c4: 2006ba92 .word 0x2006ba92 80108c8: 2006c4bc .word 0x2006c4bc 080108cc : int8_t ReadChannelSens(uint8_t ch) { 80108cc: b580 push {r7, lr} 80108ce: b086 sub sp, #24 80108d0: af00 add r7, sp, #0 80108d2: 4603 mov r3, r0 80108d4: 71fb strb r3, [r7, #7] int8_t res = -1; 80108d6: 23ff movs r3, #255 ; 0xff 80108d8: 75fb strb r3, [r7, #23] uint16_t i, len = 0, cnt = 0; 80108da: 2300 movs r3, #0 80108dc: 82bb strh r3, [r7, #20] 80108de: 2300 movs r3, #0 80108e0: 827b strh r3, [r7, #18] uint16_t crc; __IO uint32_t timeout; sfloat f; if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 80108e2: 4b8a ldr r3, [pc, #552] ; (8010b0c ) 80108e4: 681b ldr r3, [r3, #0] 80108e6: 69db ldr r3, [r3, #28] 80108e8: f003 0308 and.w r3, r3, #8 80108ec: 2b08 cmp r3, #8 80108ee: d103 bne.n 80108f8 __HAL_UART_CLEAR_OREFLAG(&huart7); 80108f0: 4b86 ldr r3, [pc, #536] ; (8010b0c ) 80108f2: 681b ldr r3, [r3, #0] 80108f4: 2208 movs r2, #8 80108f6: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 80108f8: 4b84 ldr r3, [pc, #528] ; (8010b0c ) 80108fa: 681b ldr r3, [r3, #0] 80108fc: 69db ldr r3, [r3, #28] 80108fe: f003 0301 and.w r3, r3, #1 8010902: 2b01 cmp r3, #1 8010904: d103 bne.n 801090e __HAL_UART_CLEAR_PEFLAG(&huart7); 8010906: 4b81 ldr r3, [pc, #516] ; (8010b0c ) 8010908: 681b ldr r3, [r3, #0] 801090a: 2201 movs r2, #1 801090c: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 801090e: 4b7f ldr r3, [pc, #508] ; (8010b0c ) 8010910: 681b ldr r3, [r3, #0] 8010912: 69db ldr r3, [r3, #28] 8010914: f003 0302 and.w r3, r3, #2 8010918: 2b02 cmp r3, #2 801091a: d103 bne.n 8010924 __HAL_UART_CLEAR_FEFLAG(&huart7); 801091c: 4b7b ldr r3, [pc, #492] ; (8010b0c ) 801091e: 681b ldr r3, [r3, #0] 8010920: 2202 movs r2, #2 8010922: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 8010924: 4b79 ldr r3, [pc, #484] ; (8010b0c ) 8010926: 681b ldr r3, [r3, #0] 8010928: 69db ldr r3, [r3, #28] 801092a: f003 0304 and.w r3, r3, #4 801092e: 2b04 cmp r3, #4 8010930: d103 bne.n 801093a __HAL_UART_CLEAR_NEFLAG(&huart7); 8010932: 4b76 ldr r3, [pc, #472] ; (8010b0c ) 8010934: 681b ldr r3, [r3, #0] 8010936: 2204 movs r2, #4 8010938: 621a str r2, [r3, #32] HAL_Delay(20); 801093a: 2014 movs r0, #20 801093c: f000 fe1e bl 801157c TX_OK = RX_OK = UART_ERROR = false; 8010940: 2200 movs r2, #0 8010942: 4b73 ldr r3, [pc, #460] ; (8010b10 ) 8010944: 4611 mov r1, r2 8010946: 7019 strb r1, [r3, #0] 8010948: 4b72 ldr r3, [pc, #456] ; (8010b14 ) 801094a: 4611 mov r1, r2 801094c: 7019 strb r1, [r3, #0] 801094e: 4b72 ldr r3, [pc, #456] ; (8010b18 ) 8010950: 701a strb r2, [r3, #0] len = 0; 8010952: 2300 movs r3, #0 8010954: 82bb strh r3, [r7, #20] memset((void *) &rx, 0, sizeof(rx)); 8010956: f44f 7280 mov.w r2, #256 ; 0x100 801095a: 2100 movs r1, #0 801095c: 486f ldr r0, [pc, #444] ; (8010b1c ) 801095e: f005 fd80 bl 8016462 iobuf[len++] = ch + 1; 8010962: 8abb ldrh r3, [r7, #20] 8010964: 1c5a adds r2, r3, #1 8010966: 82ba strh r2, [r7, #20] 8010968: 461a mov r2, r3 801096a: 79fb ldrb r3, [r7, #7] 801096c: 3301 adds r3, #1 801096e: b2d9 uxtb r1, r3 8010970: 4b6b ldr r3, [pc, #428] ; (8010b20 ) 8010972: 5499 strb r1, [r3, r2] iobuf[len++] = 0x03; 8010974: 8abb ldrh r3, [r7, #20] 8010976: 1c5a adds r2, r3, #1 8010978: 82ba strh r2, [r7, #20] 801097a: 461a mov r2, r3 801097c: 4b68 ldr r3, [pc, #416] ; (8010b20 ) 801097e: 2103 movs r1, #3 8010980: 5499 strb r1, [r3, r2] iobuf[len++] = HI(7502); 8010982: 8abb ldrh r3, [r7, #20] 8010984: 1c5a adds r2, r3, #1 8010986: 82ba strh r2, [r7, #20] 8010988: 461a mov r2, r3 801098a: 4b65 ldr r3, [pc, #404] ; (8010b20 ) 801098c: 211d movs r1, #29 801098e: 5499 strb r1, [r3, r2] iobuf[len++] = LO(7502); 8010990: 8abb ldrh r3, [r7, #20] 8010992: 1c5a adds r2, r3, #1 8010994: 82ba strh r2, [r7, #20] 8010996: 461a mov r2, r3 8010998: 4b61 ldr r3, [pc, #388] ; (8010b20 ) 801099a: 214e movs r1, #78 ; 0x4e 801099c: 5499 strb r1, [r3, r2] iobuf[len++] = 0; // 801099e: 8abb ldrh r3, [r7, #20] 80109a0: 1c5a adds r2, r3, #1 80109a2: 82ba strh r2, [r7, #20] 80109a4: 461a mov r2, r3 80109a6: 4b5e ldr r3, [pc, #376] ; (8010b20 ) 80109a8: 2100 movs r1, #0 80109aa: 5499 strb r1, [r3, r2] iobuf[len++] = 1; // SENS 80109ac: 8abb ldrh r3, [r7, #20] 80109ae: 1c5a adds r2, r3, #1 80109b0: 82ba strh r2, [r7, #20] 80109b2: 461a mov r2, r3 80109b4: 4b5a ldr r3, [pc, #360] ; (8010b20 ) 80109b6: 2101 movs r1, #1 80109b8: 5499 strb r1, [r3, r2] crc = Crc16(len); 80109ba: 8abb ldrh r3, [r7, #20] 80109bc: 4618 mov r0, r3 80109be: f7ff fa03 bl 800fdc8 80109c2: 4603 mov r3, r0 80109c4: 823b strh r3, [r7, #16] iobuf[len++] = LO(crc); 80109c6: 8abb ldrh r3, [r7, #20] 80109c8: 1c5a adds r2, r3, #1 80109ca: 82ba strh r2, [r7, #20] 80109cc: 461a mov r2, r3 80109ce: 8a3b ldrh r3, [r7, #16] 80109d0: b2d9 uxtb r1, r3 80109d2: 4b53 ldr r3, [pc, #332] ; (8010b20 ) 80109d4: 5499 strb r1, [r3, r2] iobuf[len++] = HI(crc); 80109d6: 8abb ldrh r3, [r7, #20] 80109d8: 1c5a adds r2, r3, #1 80109da: 82ba strh r2, [r7, #20] 80109dc: 461a mov r2, r3 80109de: 8a3b ldrh r3, [r7, #16] 80109e0: 0a1b lsrs r3, r3, #8 80109e2: b29b uxth r3, r3 80109e4: b2d9 uxtb r1, r3 80109e6: 4b4e ldr r3, [pc, #312] ; (8010b20 ) 80109e8: 5499 strb r1, [r3, r2] timeout = HAL_GetTick(); 80109ea: f000 fdbb bl 8011564 80109ee: 4603 mov r3, r0 80109f0: 60fb str r3, [r7, #12] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET); 80109f2: 2201 movs r2, #1 80109f4: f44f 7100 mov.w r1, #512 ; 0x200 80109f8: 484a ldr r0, [pc, #296] ; (8010b24 ) 80109fa: f002 f8eb bl 8012bd4 if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK) 80109fe: 8abb ldrh r3, [r7, #20] 8010a00: 461a mov r2, r3 8010a02: 4947 ldr r1, [pc, #284] ; (8010b20 ) 8010a04: 4841 ldr r0, [pc, #260] ; (8010b0c ) 8010a06: f004 fa13 bl 8014e30 8010a0a: 4603 mov r3, r0 8010a0c: 2b00 cmp r3, #0 8010a0e: d177 bne.n 8010b00 { while((!TX_OK) && (HAL_GetTick() - timeout < 50)); 8010a10: bf00 nop 8010a12: 4b41 ldr r3, [pc, #260] ; (8010b18 ) 8010a14: 781b ldrb r3, [r3, #0] 8010a16: b2db uxtb r3, r3 8010a18: f083 0301 eor.w r3, r3, #1 8010a1c: b2db uxtb r3, r3 8010a1e: 2b00 cmp r3, #0 8010a20: d006 beq.n 8010a30 8010a22: f000 fd9f bl 8011564 8010a26: 4602 mov r2, r0 8010a28: 68fb ldr r3, [r7, #12] 8010a2a: 1ad3 subs r3, r2, r3 8010a2c: 2b31 cmp r3, #49 ; 0x31 8010a2e: d9f0 bls.n 8010a12 if(!TX_OK) 8010a30: 4b39 ldr r3, [pc, #228] ; (8010b18 ) 8010a32: 781b ldrb r3, [r3, #0] 8010a34: b2db uxtb r3, r3 8010a36: f083 0301 eor.w r3, r3, #1 8010a3a: b2db uxtb r3, r3 8010a3c: 2b00 cmp r3, #0 8010a3e: d00b beq.n 8010a58 { HAL_UART_Abort_IT(&huart7); 8010a40: 4832 ldr r0, [pc, #200] ; (8010b0c ) 8010a42: f004 fa63 bl 8014f0c HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010a46: 2200 movs r2, #0 8010a48: f44f 7100 mov.w r1, #512 ; 0x200 8010a4c: 4835 ldr r0, [pc, #212] ; (8010b24 ) 8010a4e: f002 f8c1 bl 8012bd4 return (-1); 8010a52: f04f 33ff mov.w r3, #4294967295 8010a56: e055 b.n 8010b04 } HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010a58: 2200 movs r2, #0 8010a5a: f44f 7100 mov.w r1, #512 ; 0x200 8010a5e: 4831 ldr r0, [pc, #196] ; (8010b24 ) 8010a60: f002 f8b8 bl 8012bd4 HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт 8010a64: 2364 movs r3, #100 ; 0x64 8010a66: 2201 movs r2, #1 8010a68: 492c ldr r1, [pc, #176] ; (8010b1c ) 8010a6a: 4828 ldr r0, [pc, #160] ; (8010b0c ) 8010a6c: f004 f910 bl 8014c90 if(HAL_UART_Receive(&huart7, rx, 9, 100) == HAL_OK) 8010a70: 2364 movs r3, #100 ; 0x64 8010a72: 2209 movs r2, #9 8010a74: 4929 ldr r1, [pc, #164] ; (8010b1c ) 8010a76: 4825 ldr r0, [pc, #148] ; (8010b0c ) 8010a78: f004 f90a bl 8014c90 8010a7c: 4603 mov r3, r0 8010a7e: 2b00 cmp r3, #0 8010a80: d135 bne.n 8010aee { crc = (uint16_t) ((rx[8]) << 8 | rx[7]); 8010a82: 4b26 ldr r3, [pc, #152] ; (8010b1c ) 8010a84: 7a1b ldrb r3, [r3, #8] 8010a86: 021b lsls r3, r3, #8 8010a88: b21a sxth r2, r3 8010a8a: 4b24 ldr r3, [pc, #144] ; (8010b1c ) 8010a8c: 79db ldrb r3, [r3, #7] 8010a8e: b21b sxth r3, r3 8010a90: 4313 orrs r3, r2 8010a92: b21b sxth r3, r3 8010a94: 823b strh r3, [r7, #16] if(crc == Crc16_RX(7)) 8010a96: 2007 movs r0, #7 8010a98: f7ff f9c2 bl 800fe20 8010a9c: 4603 mov r3, r0 8010a9e: 461a mov r2, r3 8010aa0: 8a3b ldrh r3, [r7, #16] 8010aa2: 4293 cmp r3, r2 8010aa4: d120 bne.n 8010ae8 { f.ch[3] = rx[3]; 8010aa6: 4b1d ldr r3, [pc, #116] ; (8010b1c ) 8010aa8: 78db ldrb r3, [r3, #3] 8010aaa: 72fb strb r3, [r7, #11] f.ch[2] = rx[4]; 8010aac: 4b1b ldr r3, [pc, #108] ; (8010b1c ) 8010aae: 791b ldrb r3, [r3, #4] 8010ab0: 72bb strb r3, [r7, #10] f.ch[1] = rx[5]; 8010ab2: 4b1a ldr r3, [pc, #104] ; (8010b1c ) 8010ab4: 795b ldrb r3, [r3, #5] 8010ab6: 727b strb r3, [r7, #9] f.ch[0] = rx[6]; 8010ab8: 4b18 ldr r3, [pc, #96] ; (8010b1c ) 8010aba: 799b ldrb r3, [r3, #6] 8010abc: 723b strb r3, [r7, #8] if(f.fl < 0.0001f) { 8010abe: edd7 7a02 vldr s15, [r7, #8] 8010ac2: ed9f 7a19 vldr s14, [pc, #100] ; 8010b28 8010ac6: eef4 7ac7 vcmpe.f32 s15, s14 8010aca: eef1 fa10 vmrs APSR_nzcv, fpscr 8010ace: d502 bpl.n 8010ad6 return (-1); 8010ad0: f04f 33ff mov.w r3, #4294967295 8010ad4: e016 b.n 8010b04 } else { pardata.amplif[ch].SENS = f.fl; 8010ad6: 79fb ldrb r3, [r7, #7] 8010ad8: 68ba ldr r2, [r7, #8] 8010ada: 4914 ldr r1, [pc, #80] ; (8010b2c ) 8010adc: 015b lsls r3, r3, #5 8010ade: 440b add r3, r1 8010ae0: 3318 adds r3, #24 8010ae2: 601a str r2, [r3, #0] } return 0; 8010ae4: 2300 movs r3, #0 8010ae6: e00d b.n 8010b04 } else { return (-1); 8010ae8: f04f 33ff mov.w r3, #4294967295 8010aec: e00a b.n 8010b04 } } else { HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010aee: 2200 movs r2, #0 8010af0: f44f 7100 mov.w r1, #512 ; 0x200 8010af4: 480b ldr r0, [pc, #44] ; (8010b24 ) 8010af6: f002 f86d bl 8012bd4 return (-1); 8010afa: f04f 33ff mov.w r3, #4294967295 8010afe: e001 b.n 8010b04 } } return res; 8010b00: f997 3017 ldrsb.w r3, [r7, #23] } 8010b04: 4618 mov r0, r3 8010b06: 3718 adds r7, #24 8010b08: 46bd mov sp, r7 8010b0a: bd80 pop {r7, pc} 8010b0c: 2006c434 .word 0x2006c434 8010b10: 2006ba91 .word 0x2006ba91 8010b14: 2006ba93 .word 0x2006ba93 8010b18: 2006ba92 .word 0x2006ba92 8010b1c: 2006c4bc .word 0x2006c4bc 8010b20: 2006c5c4 .word 0x2006c5c4 8010b24: 40021400 .word 0x40021400 8010b28: 38d1b717 .word 0x38d1b717 8010b2c: 2006bca8 .word 0x2006bca8 08010b30 : int8_t WriteChannelSens(uint8_t ch) { 8010b30: b580 push {r7, lr} 8010b32: b086 sub sp, #24 8010b34: af00 add r7, sp, #0 8010b36: 4603 mov r3, r0 8010b38: 71fb strb r3, [r7, #7] int8_t res = -1; 8010b3a: 23ff movs r3, #255 ; 0xff 8010b3c: 75fb strb r3, [r7, #23] uint16_t i, len = 0; 8010b3e: 2300 movs r3, #0 8010b40: 82bb strh r3, [r7, #20] uint16_t crc; __IO uint32_t timeout; sfloat f; if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 8010b42: 4b95 ldr r3, [pc, #596] ; (8010d98 ) 8010b44: 681b ldr r3, [r3, #0] 8010b46: 69db ldr r3, [r3, #28] 8010b48: f003 0308 and.w r3, r3, #8 8010b4c: 2b08 cmp r3, #8 8010b4e: d103 bne.n 8010b58 __HAL_UART_CLEAR_OREFLAG(&huart7); 8010b50: 4b91 ldr r3, [pc, #580] ; (8010d98 ) 8010b52: 681b ldr r3, [r3, #0] 8010b54: 2208 movs r2, #8 8010b56: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 8010b58: 4b8f ldr r3, [pc, #572] ; (8010d98 ) 8010b5a: 681b ldr r3, [r3, #0] 8010b5c: 69db ldr r3, [r3, #28] 8010b5e: f003 0301 and.w r3, r3, #1 8010b62: 2b01 cmp r3, #1 8010b64: d103 bne.n 8010b6e __HAL_UART_CLEAR_PEFLAG(&huart7); 8010b66: 4b8c ldr r3, [pc, #560] ; (8010d98 ) 8010b68: 681b ldr r3, [r3, #0] 8010b6a: 2201 movs r2, #1 8010b6c: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 8010b6e: 4b8a ldr r3, [pc, #552] ; (8010d98 ) 8010b70: 681b ldr r3, [r3, #0] 8010b72: 69db ldr r3, [r3, #28] 8010b74: f003 0302 and.w r3, r3, #2 8010b78: 2b02 cmp r3, #2 8010b7a: d103 bne.n 8010b84 __HAL_UART_CLEAR_FEFLAG(&huart7); 8010b7c: 4b86 ldr r3, [pc, #536] ; (8010d98 ) 8010b7e: 681b ldr r3, [r3, #0] 8010b80: 2202 movs r2, #2 8010b82: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 8010b84: 4b84 ldr r3, [pc, #528] ; (8010d98 ) 8010b86: 681b ldr r3, [r3, #0] 8010b88: 69db ldr r3, [r3, #28] 8010b8a: f003 0304 and.w r3, r3, #4 8010b8e: 2b04 cmp r3, #4 8010b90: d103 bne.n 8010b9a __HAL_UART_CLEAR_NEFLAG(&huart7); 8010b92: 4b81 ldr r3, [pc, #516] ; (8010d98 ) 8010b94: 681b ldr r3, [r3, #0] 8010b96: 2204 movs r2, #4 8010b98: 621a str r2, [r3, #32] HAL_Delay(20); 8010b9a: 2014 movs r0, #20 8010b9c: f000 fcee bl 801157c TX_OK = RX_OK = UART_ERROR = false; 8010ba0: 2200 movs r2, #0 8010ba2: 4b7e ldr r3, [pc, #504] ; (8010d9c ) 8010ba4: 4611 mov r1, r2 8010ba6: 7019 strb r1, [r3, #0] 8010ba8: 4b7d ldr r3, [pc, #500] ; (8010da0 ) 8010baa: 4611 mov r1, r2 8010bac: 7019 strb r1, [r3, #0] 8010bae: 4b7d ldr r3, [pc, #500] ; (8010da4 ) 8010bb0: 701a strb r2, [r3, #0] len = 0; 8010bb2: 2300 movs r3, #0 8010bb4: 82bb strh r3, [r7, #20] memset((void *) &rx, 0, sizeof(rx)); 8010bb6: f44f 7280 mov.w r2, #256 ; 0x100 8010bba: 2100 movs r1, #0 8010bbc: 487a ldr r0, [pc, #488] ; (8010da8 ) 8010bbe: f005 fc50 bl 8016462 iobuf[len++] = ch + 1; 8010bc2: 8abb ldrh r3, [r7, #20] 8010bc4: 1c5a adds r2, r3, #1 8010bc6: 82ba strh r2, [r7, #20] 8010bc8: 461a mov r2, r3 8010bca: 79fb ldrb r3, [r7, #7] 8010bcc: 3301 adds r3, #1 8010bce: b2d9 uxtb r1, r3 8010bd0: 4b76 ldr r3, [pc, #472] ; (8010dac ) 8010bd2: 5499 strb r1, [r3, r2] iobuf[len++] = 0x10; 8010bd4: 8abb ldrh r3, [r7, #20] 8010bd6: 1c5a adds r2, r3, #1 8010bd8: 82ba strh r2, [r7, #20] 8010bda: 461a mov r2, r3 8010bdc: 4b73 ldr r3, [pc, #460] ; (8010dac ) 8010bde: 2110 movs r1, #16 8010be0: 5499 strb r1, [r3, r2] iobuf[len++] = HI(7502); 8010be2: 8abb ldrh r3, [r7, #20] 8010be4: 1c5a adds r2, r3, #1 8010be6: 82ba strh r2, [r7, #20] 8010be8: 461a mov r2, r3 8010bea: 4b70 ldr r3, [pc, #448] ; (8010dac ) 8010bec: 211d movs r1, #29 8010bee: 5499 strb r1, [r3, r2] iobuf[len++] = LO(7502); 8010bf0: 8abb ldrh r3, [r7, #20] 8010bf2: 1c5a adds r2, r3, #1 8010bf4: 82ba strh r2, [r7, #20] 8010bf6: 461a mov r2, r3 8010bf8: 4b6c ldr r3, [pc, #432] ; (8010dac ) 8010bfa: 214e movs r1, #78 ; 0x4e 8010bfc: 5499 strb r1, [r3, r2] iobuf[len++] = 0; 8010bfe: 8abb ldrh r3, [r7, #20] 8010c00: 1c5a adds r2, r3, #1 8010c02: 82ba strh r2, [r7, #20] 8010c04: 461a mov r2, r3 8010c06: 4b69 ldr r3, [pc, #420] ; (8010dac ) 8010c08: 2100 movs r1, #0 8010c0a: 5499 strb r1, [r3, r2] iobuf[len++] = 1; 8010c0c: 8abb ldrh r3, [r7, #20] 8010c0e: 1c5a adds r2, r3, #1 8010c10: 82ba strh r2, [r7, #20] 8010c12: 461a mov r2, r3 8010c14: 4b65 ldr r3, [pc, #404] ; (8010dac ) 8010c16: 2101 movs r1, #1 8010c18: 5499 strb r1, [r3, r2] iobuf[len++] = 4; 8010c1a: 8abb ldrh r3, [r7, #20] 8010c1c: 1c5a adds r2, r3, #1 8010c1e: 82ba strh r2, [r7, #20] 8010c20: 461a mov r2, r3 8010c22: 4b62 ldr r3, [pc, #392] ; (8010dac ) 8010c24: 2104 movs r1, #4 8010c26: 5499 strb r1, [r3, r2] f.fl = pardata.amplif[ch].SENS; 8010c28: 79fb ldrb r3, [r7, #7] 8010c2a: 4a61 ldr r2, [pc, #388] ; (8010db0 ) 8010c2c: 015b lsls r3, r3, #5 8010c2e: 4413 add r3, r2 8010c30: 3318 adds r3, #24 8010c32: 681b ldr r3, [r3, #0] 8010c34: 60bb str r3, [r7, #8] iobuf[len++] = f.ch[3]; 8010c36: 8abb ldrh r3, [r7, #20] 8010c38: 1c5a adds r2, r3, #1 8010c3a: 82ba strh r2, [r7, #20] 8010c3c: 461a mov r2, r3 8010c3e: 7af9 ldrb r1, [r7, #11] 8010c40: 4b5a ldr r3, [pc, #360] ; (8010dac ) 8010c42: 5499 strb r1, [r3, r2] iobuf[len++] = f.ch[2]; 8010c44: 8abb ldrh r3, [r7, #20] 8010c46: 1c5a adds r2, r3, #1 8010c48: 82ba strh r2, [r7, #20] 8010c4a: 461a mov r2, r3 8010c4c: 7ab9 ldrb r1, [r7, #10] 8010c4e: 4b57 ldr r3, [pc, #348] ; (8010dac ) 8010c50: 5499 strb r1, [r3, r2] iobuf[len++] = f.ch[1]; 8010c52: 8abb ldrh r3, [r7, #20] 8010c54: 1c5a adds r2, r3, #1 8010c56: 82ba strh r2, [r7, #20] 8010c58: 461a mov r2, r3 8010c5a: 7a79 ldrb r1, [r7, #9] 8010c5c: 4b53 ldr r3, [pc, #332] ; (8010dac ) 8010c5e: 5499 strb r1, [r3, r2] iobuf[len++] = f.ch[0]; 8010c60: 8abb ldrh r3, [r7, #20] 8010c62: 1c5a adds r2, r3, #1 8010c64: 82ba strh r2, [r7, #20] 8010c66: 461a mov r2, r3 8010c68: 7a39 ldrb r1, [r7, #8] 8010c6a: 4b50 ldr r3, [pc, #320] ; (8010dac ) 8010c6c: 5499 strb r1, [r3, r2] crc = Crc16(len); 8010c6e: 8abb ldrh r3, [r7, #20] 8010c70: 4618 mov r0, r3 8010c72: f7ff f8a9 bl 800fdc8 8010c76: 4603 mov r3, r0 8010c78: 827b strh r3, [r7, #18] iobuf[len++] = LO(crc); 8010c7a: 8abb ldrh r3, [r7, #20] 8010c7c: 1c5a adds r2, r3, #1 8010c7e: 82ba strh r2, [r7, #20] 8010c80: 461a mov r2, r3 8010c82: 8a7b ldrh r3, [r7, #18] 8010c84: b2d9 uxtb r1, r3 8010c86: 4b49 ldr r3, [pc, #292] ; (8010dac ) 8010c88: 5499 strb r1, [r3, r2] iobuf[len++] = HI(crc); 8010c8a: 8abb ldrh r3, [r7, #20] 8010c8c: 1c5a adds r2, r3, #1 8010c8e: 82ba strh r2, [r7, #20] 8010c90: 461a mov r2, r3 8010c92: 8a7b ldrh r3, [r7, #18] 8010c94: 0a1b lsrs r3, r3, #8 8010c96: b29b uxth r3, r3 8010c98: b2d9 uxtb r1, r3 8010c9a: 4b44 ldr r3, [pc, #272] ; (8010dac ) 8010c9c: 5499 strb r1, [r3, r2] timeout = HAL_GetTick(); 8010c9e: f000 fc61 bl 8011564 8010ca2: 4603 mov r3, r0 8010ca4: 60fb str r3, [r7, #12] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET); 8010ca6: 2201 movs r2, #1 8010ca8: f44f 7100 mov.w r1, #512 ; 0x200 8010cac: 4841 ldr r0, [pc, #260] ; (8010db4 ) 8010cae: f001 ff91 bl 8012bd4 if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK) 8010cb2: 8abb ldrh r3, [r7, #20] 8010cb4: 461a mov r2, r3 8010cb6: 493d ldr r1, [pc, #244] ; (8010dac ) 8010cb8: 4837 ldr r0, [pc, #220] ; (8010d98 ) 8010cba: f004 f8b9 bl 8014e30 8010cbe: 4603 mov r3, r0 8010cc0: 2b00 cmp r3, #0 8010cc2: d163 bne.n 8010d8c { while((!TX_OK) && (HAL_GetTick() - timeout < 200)); 8010cc4: bf00 nop 8010cc6: 4b37 ldr r3, [pc, #220] ; (8010da4 ) 8010cc8: 781b ldrb r3, [r3, #0] 8010cca: b2db uxtb r3, r3 8010ccc: f083 0301 eor.w r3, r3, #1 8010cd0: b2db uxtb r3, r3 8010cd2: 2b00 cmp r3, #0 8010cd4: d006 beq.n 8010ce4 8010cd6: f000 fc45 bl 8011564 8010cda: 4602 mov r2, r0 8010cdc: 68fb ldr r3, [r7, #12] 8010cde: 1ad3 subs r3, r2, r3 8010ce0: 2bc7 cmp r3, #199 ; 0xc7 8010ce2: d9f0 bls.n 8010cc6 if(!TX_OK) 8010ce4: 4b2f ldr r3, [pc, #188] ; (8010da4 ) 8010ce6: 781b ldrb r3, [r3, #0] 8010ce8: b2db uxtb r3, r3 8010cea: f083 0301 eor.w r3, r3, #1 8010cee: b2db uxtb r3, r3 8010cf0: 2b00 cmp r3, #0 8010cf2: d00b beq.n 8010d0c { HAL_UART_Abort_IT(&huart7); 8010cf4: 4828 ldr r0, [pc, #160] ; (8010d98 ) 8010cf6: f004 f909 bl 8014f0c HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010cfa: 2200 movs r2, #0 8010cfc: f44f 7100 mov.w r1, #512 ; 0x200 8010d00: 482c ldr r0, [pc, #176] ; (8010db4 ) 8010d02: f001 ff67 bl 8012bd4 return (-1); 8010d06: f04f 33ff mov.w r3, #4294967295 8010d0a: e041 b.n 8010d90 } HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010d0c: 2200 movs r2, #0 8010d0e: f44f 7100 mov.w r1, #512 ; 0x200 8010d12: 4828 ldr r0, [pc, #160] ; (8010db4 ) 8010d14: f001 ff5e bl 8012bd4 HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт 8010d18: 2364 movs r3, #100 ; 0x64 8010d1a: 2201 movs r2, #1 8010d1c: 4922 ldr r1, [pc, #136] ; (8010da8 ) 8010d1e: 481e ldr r0, [pc, #120] ; (8010d98 ) 8010d20: f003 ffb6 bl 8014c90 if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK) 8010d24: f44f 73fa mov.w r3, #500 ; 0x1f4 8010d28: 2208 movs r2, #8 8010d2a: 491f ldr r1, [pc, #124] ; (8010da8 ) 8010d2c: 481a ldr r0, [pc, #104] ; (8010d98 ) 8010d2e: f003 ffaf bl 8014c90 8010d32: 4603 mov r3, r0 8010d34: 2b00 cmp r3, #0 8010d36: d120 bne.n 8010d7a { crc = (uint16_t) ((rx[7]) << 8 | rx[6]); 8010d38: 4b1b ldr r3, [pc, #108] ; (8010da8 ) 8010d3a: 79db ldrb r3, [r3, #7] 8010d3c: 021b lsls r3, r3, #8 8010d3e: b21a sxth r2, r3 8010d40: 4b19 ldr r3, [pc, #100] ; (8010da8 ) 8010d42: 799b ldrb r3, [r3, #6] 8010d44: b21b sxth r3, r3 8010d46: 4313 orrs r3, r2 8010d48: b21b sxth r3, r3 8010d4a: 827b strh r3, [r7, #18] if(crc == Crc16_RX(6)) 8010d4c: 2006 movs r0, #6 8010d4e: f7ff f867 bl 800fe20 8010d52: 4603 mov r3, r0 8010d54: 461a mov r2, r3 8010d56: 8a7b ldrh r3, [r7, #18] 8010d58: 4293 cmp r3, r2 8010d5a: d10b bne.n 8010d74 { if(rx[0] == (ch + 1)) 8010d5c: 4b12 ldr r3, [pc, #72] ; (8010da8 ) 8010d5e: 781b ldrb r3, [r3, #0] 8010d60: 461a mov r2, r3 8010d62: 79fb ldrb r3, [r7, #7] 8010d64: 3301 adds r3, #1 8010d66: 429a cmp r2, r3 8010d68: d101 bne.n 8010d6e return 0; 8010d6a: 2300 movs r3, #0 8010d6c: e010 b.n 8010d90 else return (-1); 8010d6e: f04f 33ff mov.w r3, #4294967295 8010d72: e00d b.n 8010d90 } else { return (-1); 8010d74: f04f 33ff mov.w r3, #4294967295 8010d78: e00a b.n 8010d90 } } else { HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010d7a: 2200 movs r2, #0 8010d7c: f44f 7100 mov.w r1, #512 ; 0x200 8010d80: 480c ldr r0, [pc, #48] ; (8010db4 ) 8010d82: f001 ff27 bl 8012bd4 return (-1); 8010d86: f04f 33ff mov.w r3, #4294967295 8010d8a: e001 b.n 8010d90 } } return res; 8010d8c: f997 3017 ldrsb.w r3, [r7, #23] } 8010d90: 4618 mov r0, r3 8010d92: 3718 adds r7, #24 8010d94: 46bd mov sp, r7 8010d96: bd80 pop {r7, pc} 8010d98: 2006c434 .word 0x2006c434 8010d9c: 2006ba91 .word 0x2006ba91 8010da0: 2006ba93 .word 0x2006ba93 8010da4: 2006ba92 .word 0x2006ba92 8010da8: 2006c4bc .word 0x2006c4bc 8010dac: 2006c5c4 .word 0x2006c5c4 8010db0: 2006bca8 .word 0x2006bca8 8010db4: 40021400 .word 0x40021400 08010db8 : int8_t Calibr(uint8_t ch, uint8_t on) { 8010db8: b580 push {r7, lr} 8010dba: b086 sub sp, #24 8010dbc: af00 add r7, sp, #0 8010dbe: 4603 mov r3, r0 8010dc0: 460a mov r2, r1 8010dc2: 71fb strb r3, [r7, #7] 8010dc4: 4613 mov r3, r2 8010dc6: 71bb strb r3, [r7, #6] int8_t res = -1; 8010dc8: 23ff movs r3, #255 ; 0xff 8010dca: 757b strb r3, [r7, #21] uint16_t i, len = 0; 8010dcc: 2300 movs r3, #0 8010dce: 82fb strh r3, [r7, #22] uint16_t crc; uint16_t reg; __IO uint32_t timeout; if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 8010dd0: 4b92 ldr r3, [pc, #584] ; (801101c ) 8010dd2: 681b ldr r3, [r3, #0] 8010dd4: 69db ldr r3, [r3, #28] 8010dd6: f003 0308 and.w r3, r3, #8 8010dda: 2b08 cmp r3, #8 8010ddc: d103 bne.n 8010de6 __HAL_UART_CLEAR_OREFLAG(&huart7); 8010dde: 4b8f ldr r3, [pc, #572] ; (801101c ) 8010de0: 681b ldr r3, [r3, #0] 8010de2: 2208 movs r2, #8 8010de4: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 8010de6: 4b8d ldr r3, [pc, #564] ; (801101c ) 8010de8: 681b ldr r3, [r3, #0] 8010dea: 69db ldr r3, [r3, #28] 8010dec: f003 0301 and.w r3, r3, #1 8010df0: 2b01 cmp r3, #1 8010df2: d103 bne.n 8010dfc __HAL_UART_CLEAR_PEFLAG(&huart7); 8010df4: 4b89 ldr r3, [pc, #548] ; (801101c ) 8010df6: 681b ldr r3, [r3, #0] 8010df8: 2201 movs r2, #1 8010dfa: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 8010dfc: 4b87 ldr r3, [pc, #540] ; (801101c ) 8010dfe: 681b ldr r3, [r3, #0] 8010e00: 69db ldr r3, [r3, #28] 8010e02: f003 0302 and.w r3, r3, #2 8010e06: 2b02 cmp r3, #2 8010e08: d103 bne.n 8010e12 __HAL_UART_CLEAR_FEFLAG(&huart7); 8010e0a: 4b84 ldr r3, [pc, #528] ; (801101c ) 8010e0c: 681b ldr r3, [r3, #0] 8010e0e: 2202 movs r2, #2 8010e10: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 8010e12: 4b82 ldr r3, [pc, #520] ; (801101c ) 8010e14: 681b ldr r3, [r3, #0] 8010e16: 69db ldr r3, [r3, #28] 8010e18: f003 0304 and.w r3, r3, #4 8010e1c: 2b04 cmp r3, #4 8010e1e: d103 bne.n 8010e28 __HAL_UART_CLEAR_NEFLAG(&huart7); 8010e20: 4b7e ldr r3, [pc, #504] ; (801101c ) 8010e22: 681b ldr r3, [r3, #0] 8010e24: 2204 movs r2, #4 8010e26: 621a str r2, [r3, #32] HAL_Delay(20); 8010e28: 2014 movs r0, #20 8010e2a: f000 fba7 bl 801157c TX_OK = RX_OK = UART_ERROR = false; 8010e2e: 2200 movs r2, #0 8010e30: 4b7b ldr r3, [pc, #492] ; (8011020 ) 8010e32: 4611 mov r1, r2 8010e34: 7019 strb r1, [r3, #0] 8010e36: 4b7b ldr r3, [pc, #492] ; (8011024 ) 8010e38: 4611 mov r1, r2 8010e3a: 7019 strb r1, [r3, #0] 8010e3c: 4b7a ldr r3, [pc, #488] ; (8011028 ) 8010e3e: 701a strb r2, [r3, #0] len = 0; 8010e40: 2300 movs r3, #0 8010e42: 82fb strh r3, [r7, #22] memset((void *) &rx, 0, sizeof(rx)); 8010e44: f44f 7280 mov.w r2, #256 ; 0x100 8010e48: 2100 movs r1, #0 8010e4a: 4878 ldr r0, [pc, #480] ; (801102c ) 8010e4c: f005 fb09 bl 8016462 iobuf[len++] = ch + 1; 8010e50: 8afb ldrh r3, [r7, #22] 8010e52: 1c5a adds r2, r3, #1 8010e54: 82fa strh r2, [r7, #22] 8010e56: 461a mov r2, r3 8010e58: 79fb ldrb r3, [r7, #7] 8010e5a: 3301 adds r3, #1 8010e5c: b2d9 uxtb r1, r3 8010e5e: 4b74 ldr r3, [pc, #464] ; (8011030 ) 8010e60: 5499 strb r1, [r3, r2] iobuf[len++] = 0x10; 8010e62: 8afb ldrh r3, [r7, #22] 8010e64: 1c5a adds r2, r3, #1 8010e66: 82fa strh r2, [r7, #22] 8010e68: 461a mov r2, r3 8010e6a: 4b71 ldr r3, [pc, #452] ; (8011030 ) 8010e6c: 2110 movs r1, #16 8010e6e: 5499 strb r1, [r3, r2] iobuf[len++] = HI(3000); 8010e70: 8afb ldrh r3, [r7, #22] 8010e72: 1c5a adds r2, r3, #1 8010e74: 82fa strh r2, [r7, #22] 8010e76: 461a mov r2, r3 8010e78: 4b6d ldr r3, [pc, #436] ; (8011030 ) 8010e7a: 210b movs r1, #11 8010e7c: 5499 strb r1, [r3, r2] iobuf[len++] = LO(3000); 8010e7e: 8afb ldrh r3, [r7, #22] 8010e80: 1c5a adds r2, r3, #1 8010e82: 82fa strh r2, [r7, #22] 8010e84: 461a mov r2, r3 8010e86: 4b6a ldr r3, [pc, #424] ; (8011030 ) 8010e88: 21b8 movs r1, #184 ; 0xb8 8010e8a: 5499 strb r1, [r3, r2] iobuf[len++] = 0; 8010e8c: 8afb ldrh r3, [r7, #22] 8010e8e: 1c5a adds r2, r3, #1 8010e90: 82fa strh r2, [r7, #22] 8010e92: 461a mov r2, r3 8010e94: 4b66 ldr r3, [pc, #408] ; (8011030 ) 8010e96: 2100 movs r1, #0 8010e98: 5499 strb r1, [r3, r2] iobuf[len++] = 1; 8010e9a: 8afb ldrh r3, [r7, #22] 8010e9c: 1c5a adds r2, r3, #1 8010e9e: 82fa strh r2, [r7, #22] 8010ea0: 461a mov r2, r3 8010ea2: 4b63 ldr r3, [pc, #396] ; (8011030 ) 8010ea4: 2101 movs r1, #1 8010ea6: 5499 strb r1, [r3, r2] iobuf[len++] = 2; 8010ea8: 8afb ldrh r3, [r7, #22] 8010eaa: 1c5a adds r2, r3, #1 8010eac: 82fa strh r2, [r7, #22] 8010eae: 461a mov r2, r3 8010eb0: 4b5f ldr r3, [pc, #380] ; (8011030 ) 8010eb2: 2102 movs r1, #2 8010eb4: 5499 strb r1, [r3, r2] iobuf[len++] = 0; 8010eb6: 8afb ldrh r3, [r7, #22] 8010eb8: 1c5a adds r2, r3, #1 8010eba: 82fa strh r2, [r7, #22] 8010ebc: 461a mov r2, r3 8010ebe: 4b5c ldr r3, [pc, #368] ; (8011030 ) 8010ec0: 2100 movs r1, #0 8010ec2: 5499 strb r1, [r3, r2] if(on) 8010ec4: 79bb ldrb r3, [r7, #6] 8010ec6: 2b00 cmp r3, #0 8010ec8: d00b beq.n 8010ee2 iobuf[len++] = menu - 1; 8010eca: 8afb ldrh r3, [r7, #22] 8010ecc: 1c5a adds r2, r3, #1 8010ece: 82fa strh r2, [r7, #22] 8010ed0: 461a mov r2, r3 8010ed2: 4b58 ldr r3, [pc, #352] ; (8011034 ) 8010ed4: 781b ldrb r3, [r3, #0] 8010ed6: b2db uxtb r3, r3 8010ed8: 3b01 subs r3, #1 8010eda: b2d9 uxtb r1, r3 8010edc: 4b54 ldr r3, [pc, #336] ; (8011030 ) 8010ede: 5499 strb r1, [r3, r2] 8010ee0: e006 b.n 8010ef0 else iobuf[len++] = 0; 8010ee2: 8afb ldrh r3, [r7, #22] 8010ee4: 1c5a adds r2, r3, #1 8010ee6: 82fa strh r2, [r7, #22] 8010ee8: 461a mov r2, r3 8010eea: 4b51 ldr r3, [pc, #324] ; (8011030 ) 8010eec: 2100 movs r1, #0 8010eee: 5499 strb r1, [r3, r2] crc = Crc16(len); 8010ef0: 8afb ldrh r3, [r7, #22] 8010ef2: 4618 mov r0, r3 8010ef4: f7fe ff68 bl 800fdc8 8010ef8: 4603 mov r3, r0 8010efa: 827b strh r3, [r7, #18] iobuf[len++] = LO(crc); 8010efc: 8afb ldrh r3, [r7, #22] 8010efe: 1c5a adds r2, r3, #1 8010f00: 82fa strh r2, [r7, #22] 8010f02: 461a mov r2, r3 8010f04: 8a7b ldrh r3, [r7, #18] 8010f06: b2d9 uxtb r1, r3 8010f08: 4b49 ldr r3, [pc, #292] ; (8011030 ) 8010f0a: 5499 strb r1, [r3, r2] iobuf[len++] = HI(crc); 8010f0c: 8afb ldrh r3, [r7, #22] 8010f0e: 1c5a adds r2, r3, #1 8010f10: 82fa strh r2, [r7, #22] 8010f12: 461a mov r2, r3 8010f14: 8a7b ldrh r3, [r7, #18] 8010f16: 0a1b lsrs r3, r3, #8 8010f18: b29b uxth r3, r3 8010f1a: b2d9 uxtb r1, r3 8010f1c: 4b44 ldr r3, [pc, #272] ; (8011030 ) 8010f1e: 5499 strb r1, [r3, r2] timeout = HAL_GetTick(); 8010f20: f000 fb20 bl 8011564 8010f24: 4603 mov r3, r0 8010f26: 60fb str r3, [r7, #12] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET); 8010f28: 2201 movs r2, #1 8010f2a: f44f 7100 mov.w r1, #512 ; 0x200 8010f2e: 4842 ldr r0, [pc, #264] ; (8011038 ) 8010f30: f001 fe50 bl 8012bd4 if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK) 8010f34: 8afb ldrh r3, [r7, #22] 8010f36: 461a mov r2, r3 8010f38: 493d ldr r1, [pc, #244] ; (8011030 ) 8010f3a: 4838 ldr r0, [pc, #224] ; (801101c ) 8010f3c: f003 ff78 bl 8014e30 8010f40: 4603 mov r3, r0 8010f42: 2b00 cmp r3, #0 8010f44: d163 bne.n 801100e { while((!TX_OK) && (HAL_GetTick() - timeout < 200)); 8010f46: bf00 nop 8010f48: 4b37 ldr r3, [pc, #220] ; (8011028 ) 8010f4a: 781b ldrb r3, [r3, #0] 8010f4c: b2db uxtb r3, r3 8010f4e: f083 0301 eor.w r3, r3, #1 8010f52: b2db uxtb r3, r3 8010f54: 2b00 cmp r3, #0 8010f56: d006 beq.n 8010f66 8010f58: f000 fb04 bl 8011564 8010f5c: 4602 mov r2, r0 8010f5e: 68fb ldr r3, [r7, #12] 8010f60: 1ad3 subs r3, r2, r3 8010f62: 2bc7 cmp r3, #199 ; 0xc7 8010f64: d9f0 bls.n 8010f48 if(!TX_OK) 8010f66: 4b30 ldr r3, [pc, #192] ; (8011028 ) 8010f68: 781b ldrb r3, [r3, #0] 8010f6a: b2db uxtb r3, r3 8010f6c: f083 0301 eor.w r3, r3, #1 8010f70: b2db uxtb r3, r3 8010f72: 2b00 cmp r3, #0 8010f74: d00b beq.n 8010f8e { HAL_UART_Abort_IT(&huart7); 8010f76: 4829 ldr r0, [pc, #164] ; (801101c ) 8010f78: f003 ffc8 bl 8014f0c HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010f7c: 2200 movs r2, #0 8010f7e: f44f 7100 mov.w r1, #512 ; 0x200 8010f82: 482d ldr r0, [pc, #180] ; (8011038 ) 8010f84: f001 fe26 bl 8012bd4 return (-1); 8010f88: f04f 33ff mov.w r3, #4294967295 8010f8c: e041 b.n 8011012 } HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010f8e: 2200 movs r2, #0 8010f90: f44f 7100 mov.w r1, #512 ; 0x200 8010f94: 4828 ldr r0, [pc, #160] ; (8011038 ) 8010f96: f001 fe1d bl 8012bd4 HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт 8010f9a: 2364 movs r3, #100 ; 0x64 8010f9c: 2201 movs r2, #1 8010f9e: 4923 ldr r1, [pc, #140] ; (801102c ) 8010fa0: 481e ldr r0, [pc, #120] ; (801101c ) 8010fa2: f003 fe75 bl 8014c90 if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK) 8010fa6: f44f 73fa mov.w r3, #500 ; 0x1f4 8010faa: 2208 movs r2, #8 8010fac: 491f ldr r1, [pc, #124] ; (801102c ) 8010fae: 481b ldr r0, [pc, #108] ; (801101c ) 8010fb0: f003 fe6e bl 8014c90 8010fb4: 4603 mov r3, r0 8010fb6: 2b00 cmp r3, #0 8010fb8: d120 bne.n 8010ffc { crc = (uint16_t) ((rx[7]) << 8 | rx[6]); 8010fba: 4b1c ldr r3, [pc, #112] ; (801102c ) 8010fbc: 79db ldrb r3, [r3, #7] 8010fbe: 021b lsls r3, r3, #8 8010fc0: b21a sxth r2, r3 8010fc2: 4b1a ldr r3, [pc, #104] ; (801102c ) 8010fc4: 799b ldrb r3, [r3, #6] 8010fc6: b21b sxth r3, r3 8010fc8: 4313 orrs r3, r2 8010fca: b21b sxth r3, r3 8010fcc: 827b strh r3, [r7, #18] if(crc == Crc16_RX(6)) 8010fce: 2006 movs r0, #6 8010fd0: f7fe ff26 bl 800fe20 8010fd4: 4603 mov r3, r0 8010fd6: 461a mov r2, r3 8010fd8: 8a7b ldrh r3, [r7, #18] 8010fda: 4293 cmp r3, r2 8010fdc: d10b bne.n 8010ff6 { if(rx[0] == (ch + 1)) 8010fde: 4b13 ldr r3, [pc, #76] ; (801102c ) 8010fe0: 781b ldrb r3, [r3, #0] 8010fe2: 461a mov r2, r3 8010fe4: 79fb ldrb r3, [r7, #7] 8010fe6: 3301 adds r3, #1 8010fe8: 429a cmp r2, r3 8010fea: d101 bne.n 8010ff0 return 0; 8010fec: 2300 movs r3, #0 8010fee: e010 b.n 8011012 else return (-1); 8010ff0: f04f 33ff mov.w r3, #4294967295 8010ff4: e00d b.n 8011012 } else { return (-1); 8010ff6: f04f 33ff mov.w r3, #4294967295 8010ffa: e00a b.n 8011012 } } else { HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8010ffc: 2200 movs r2, #0 8010ffe: f44f 7100 mov.w r1, #512 ; 0x200 8011002: 480d ldr r0, [pc, #52] ; (8011038 ) 8011004: f001 fde6 bl 8012bd4 return (-1); 8011008: f04f 33ff mov.w r3, #4294967295 801100c: e001 b.n 8011012 } } return res; 801100e: f997 3015 ldrsb.w r3, [r7, #21] } 8011012: 4618 mov r0, r3 8011014: 3718 adds r7, #24 8011016: 46bd mov sp, r7 8011018: bd80 pop {r7, pc} 801101a: bf00 nop 801101c: 2006c434 .word 0x2006c434 8011020: 2006ba91 .word 0x2006ba91 8011024: 2006ba93 .word 0x2006ba93 8011028: 2006ba92 .word 0x2006ba92 801102c: 2006c4bc .word 0x2006c4bc 8011030: 2006c5c4 .word 0x2006c5c4 8011034: 200209d9 .word 0x200209d9 8011038: 40021400 .word 0x40021400 0801103c : int8_t WriteCorr(uint8_t ch, uint8_t fasecor, uint8_t up) { 801103c: b580 push {r7, lr} 801103e: b086 sub sp, #24 8011040: af00 add r7, sp, #0 8011042: 4603 mov r3, r0 8011044: 71fb strb r3, [r7, #7] 8011046: 460b mov r3, r1 8011048: 71bb strb r3, [r7, #6] 801104a: 4613 mov r3, r2 801104c: 717b strb r3, [r7, #5] int8_t res = -1; 801104e: 23ff movs r3, #255 ; 0xff 8011050: 75fb strb r3, [r7, #23] uint16_t i, len = 0; 8011052: 2300 movs r3, #0 8011054: 82bb strh r3, [r7, #20] uint16_t crc; uint16_t reg; __IO uint32_t timeout; if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 8011056: 4b8e ldr r3, [pc, #568] ; (8011290 ) 8011058: 681b ldr r3, [r3, #0] 801105a: 69db ldr r3, [r3, #28] 801105c: f003 0308 and.w r3, r3, #8 8011060: 2b08 cmp r3, #8 8011062: d103 bne.n 801106c __HAL_UART_CLEAR_OREFLAG(&huart7); 8011064: 4b8a ldr r3, [pc, #552] ; (8011290 ) 8011066: 681b ldr r3, [r3, #0] 8011068: 2208 movs r2, #8 801106a: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 801106c: 4b88 ldr r3, [pc, #544] ; (8011290 ) 801106e: 681b ldr r3, [r3, #0] 8011070: 69db ldr r3, [r3, #28] 8011072: f003 0301 and.w r3, r3, #1 8011076: 2b01 cmp r3, #1 8011078: d103 bne.n 8011082 __HAL_UART_CLEAR_PEFLAG(&huart7); 801107a: 4b85 ldr r3, [pc, #532] ; (8011290 ) 801107c: 681b ldr r3, [r3, #0] 801107e: 2201 movs r2, #1 8011080: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 8011082: 4b83 ldr r3, [pc, #524] ; (8011290 ) 8011084: 681b ldr r3, [r3, #0] 8011086: 69db ldr r3, [r3, #28] 8011088: f003 0302 and.w r3, r3, #2 801108c: 2b02 cmp r3, #2 801108e: d103 bne.n 8011098 __HAL_UART_CLEAR_FEFLAG(&huart7); 8011090: 4b7f ldr r3, [pc, #508] ; (8011290 ) 8011092: 681b ldr r3, [r3, #0] 8011094: 2202 movs r2, #2 8011096: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 8011098: 4b7d ldr r3, [pc, #500] ; (8011290 ) 801109a: 681b ldr r3, [r3, #0] 801109c: 69db ldr r3, [r3, #28] 801109e: f003 0304 and.w r3, r3, #4 80110a2: 2b04 cmp r3, #4 80110a4: d103 bne.n 80110ae __HAL_UART_CLEAR_NEFLAG(&huart7); 80110a6: 4b7a ldr r3, [pc, #488] ; (8011290 ) 80110a8: 681b ldr r3, [r3, #0] 80110aa: 2204 movs r2, #4 80110ac: 621a str r2, [r3, #32] HAL_Delay(20); 80110ae: 2014 movs r0, #20 80110b0: f000 fa64 bl 801157c TX_OK = RX_OK = UART_ERROR = false; 80110b4: 2200 movs r2, #0 80110b6: 4b77 ldr r3, [pc, #476] ; (8011294 ) 80110b8: 4611 mov r1, r2 80110ba: 7019 strb r1, [r3, #0] 80110bc: 4b76 ldr r3, [pc, #472] ; (8011298 ) 80110be: 4611 mov r1, r2 80110c0: 7019 strb r1, [r3, #0] 80110c2: 4b76 ldr r3, [pc, #472] ; (801129c ) 80110c4: 701a strb r2, [r3, #0] len = 0; 80110c6: 2300 movs r3, #0 80110c8: 82bb strh r3, [r7, #20] memset((void *) &rx, 0, sizeof(rx)); 80110ca: f44f 7280 mov.w r2, #256 ; 0x100 80110ce: 2100 movs r1, #0 80110d0: 4873 ldr r0, [pc, #460] ; (80112a0 ) 80110d2: f005 f9c6 bl 8016462 /*if(fasecor == CALIBR_00) { return (-1); }*/ iobuf[len++] = ch + 1; 80110d6: 8abb ldrh r3, [r7, #20] 80110d8: 1c5a adds r2, r3, #1 80110da: 82ba strh r2, [r7, #20] 80110dc: 461a mov r2, r3 80110de: 79fb ldrb r3, [r7, #7] 80110e0: 3301 adds r3, #1 80110e2: b2d9 uxtb r1, r3 80110e4: 4b6f ldr r3, [pc, #444] ; (80112a4 ) 80110e6: 5499 strb r1, [r3, r2] iobuf[len++] = 0x10; 80110e8: 8abb ldrh r3, [r7, #20] 80110ea: 1c5a adds r2, r3, #1 80110ec: 82ba strh r2, [r7, #20] 80110ee: 461a mov r2, r3 80110f0: 4b6c ldr r3, [pc, #432] ; (80112a4 ) 80110f2: 2110 movs r1, #16 80110f4: 5499 strb r1, [r3, r2] iobuf[len++] = HI(fasecor + 3001); 80110f6: 8abb ldrh r3, [r7, #20] 80110f8: 1c5a adds r2, r3, #1 80110fa: 82ba strh r2, [r7, #20] 80110fc: 461a mov r2, r3 80110fe: 79bb ldrb r3, [r7, #6] 8011100: f603 33b9 addw r3, r3, #3001 ; 0xbb9 8011104: 121b asrs r3, r3, #8 8011106: b2d9 uxtb r1, r3 8011108: 4b66 ldr r3, [pc, #408] ; (80112a4 ) 801110a: 5499 strb r1, [r3, r2] iobuf[len++] = LO(fasecor + 3001); 801110c: 8abb ldrh r3, [r7, #20] 801110e: 1c5a adds r2, r3, #1 8011110: 82ba strh r2, [r7, #20] 8011112: 461a mov r2, r3 8011114: 79bb ldrb r3, [r7, #6] 8011116: 3b47 subs r3, #71 ; 0x47 8011118: b2d9 uxtb r1, r3 801111a: 4b62 ldr r3, [pc, #392] ; (80112a4 ) 801111c: 5499 strb r1, [r3, r2] iobuf[len++] = 0; 801111e: 8abb ldrh r3, [r7, #20] 8011120: 1c5a adds r2, r3, #1 8011122: 82ba strh r2, [r7, #20] 8011124: 461a mov r2, r3 8011126: 4b5f ldr r3, [pc, #380] ; (80112a4 ) 8011128: 2100 movs r1, #0 801112a: 5499 strb r1, [r3, r2] iobuf[len++] = 1; 801112c: 8abb ldrh r3, [r7, #20] 801112e: 1c5a adds r2, r3, #1 8011130: 82ba strh r2, [r7, #20] 8011132: 461a mov r2, r3 8011134: 4b5b ldr r3, [pc, #364] ; (80112a4 ) 8011136: 2101 movs r1, #1 8011138: 5499 strb r1, [r3, r2] iobuf[len++] = 2; 801113a: 8abb ldrh r3, [r7, #20] 801113c: 1c5a adds r2, r3, #1 801113e: 82ba strh r2, [r7, #20] 8011140: 461a mov r2, r3 8011142: 4b58 ldr r3, [pc, #352] ; (80112a4 ) 8011144: 2102 movs r1, #2 8011146: 5499 strb r1, [r3, r2] iobuf[len++] = 0; 8011148: 8abb ldrh r3, [r7, #20] 801114a: 1c5a adds r2, r3, #1 801114c: 82ba strh r2, [r7, #20] 801114e: 461a mov r2, r3 8011150: 4b54 ldr r3, [pc, #336] ; (80112a4 ) 8011152: 2100 movs r1, #0 8011154: 5499 strb r1, [r3, r2] iobuf[len++] = up; 8011156: 8abb ldrh r3, [r7, #20] 8011158: 1c5a adds r2, r3, #1 801115a: 82ba strh r2, [r7, #20] 801115c: 4619 mov r1, r3 801115e: 4a51 ldr r2, [pc, #324] ; (80112a4 ) 8011160: 797b ldrb r3, [r7, #5] 8011162: 5453 strb r3, [r2, r1] crc = Crc16(len); 8011164: 8abb ldrh r3, [r7, #20] 8011166: 4618 mov r0, r3 8011168: f7fe fe2e bl 800fdc8 801116c: 4603 mov r3, r0 801116e: 827b strh r3, [r7, #18] iobuf[len++] = LO(crc); 8011170: 8abb ldrh r3, [r7, #20] 8011172: 1c5a adds r2, r3, #1 8011174: 82ba strh r2, [r7, #20] 8011176: 461a mov r2, r3 8011178: 8a7b ldrh r3, [r7, #18] 801117a: b2d9 uxtb r1, r3 801117c: 4b49 ldr r3, [pc, #292] ; (80112a4 ) 801117e: 5499 strb r1, [r3, r2] iobuf[len++] = HI(crc); 8011180: 8abb ldrh r3, [r7, #20] 8011182: 1c5a adds r2, r3, #1 8011184: 82ba strh r2, [r7, #20] 8011186: 461a mov r2, r3 8011188: 8a7b ldrh r3, [r7, #18] 801118a: 0a1b lsrs r3, r3, #8 801118c: b29b uxth r3, r3 801118e: b2d9 uxtb r1, r3 8011190: 4b44 ldr r3, [pc, #272] ; (80112a4 ) 8011192: 5499 strb r1, [r3, r2] timeout = HAL_GetTick(); 8011194: f000 f9e6 bl 8011564 8011198: 4603 mov r3, r0 801119a: 60fb str r3, [r7, #12] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET); 801119c: 2201 movs r2, #1 801119e: f44f 7100 mov.w r1, #512 ; 0x200 80111a2: 4841 ldr r0, [pc, #260] ; (80112a8 ) 80111a4: f001 fd16 bl 8012bd4 if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK) 80111a8: 8abb ldrh r3, [r7, #20] 80111aa: 461a mov r2, r3 80111ac: 493d ldr r1, [pc, #244] ; (80112a4 ) 80111ae: 4838 ldr r0, [pc, #224] ; (8011290 ) 80111b0: f003 fe3e bl 8014e30 80111b4: 4603 mov r3, r0 80111b6: 2b00 cmp r3, #0 80111b8: d163 bne.n 8011282 { while((!TX_OK) && (HAL_GetTick() - timeout < 200)); 80111ba: bf00 nop 80111bc: 4b37 ldr r3, [pc, #220] ; (801129c ) 80111be: 781b ldrb r3, [r3, #0] 80111c0: b2db uxtb r3, r3 80111c2: f083 0301 eor.w r3, r3, #1 80111c6: b2db uxtb r3, r3 80111c8: 2b00 cmp r3, #0 80111ca: d006 beq.n 80111da 80111cc: f000 f9ca bl 8011564 80111d0: 4602 mov r2, r0 80111d2: 68fb ldr r3, [r7, #12] 80111d4: 1ad3 subs r3, r2, r3 80111d6: 2bc7 cmp r3, #199 ; 0xc7 80111d8: d9f0 bls.n 80111bc if(!TX_OK) 80111da: 4b30 ldr r3, [pc, #192] ; (801129c ) 80111dc: 781b ldrb r3, [r3, #0] 80111de: b2db uxtb r3, r3 80111e0: f083 0301 eor.w r3, r3, #1 80111e4: b2db uxtb r3, r3 80111e6: 2b00 cmp r3, #0 80111e8: d00b beq.n 8011202 { HAL_UART_Abort_IT(&huart7); 80111ea: 4829 ldr r0, [pc, #164] ; (8011290 ) 80111ec: f003 fe8e bl 8014f0c HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 80111f0: 2200 movs r2, #0 80111f2: f44f 7100 mov.w r1, #512 ; 0x200 80111f6: 482c ldr r0, [pc, #176] ; (80112a8 ) 80111f8: f001 fcec bl 8012bd4 return (-1); 80111fc: f04f 33ff mov.w r3, #4294967295 8011200: e041 b.n 8011286 } HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8011202: 2200 movs r2, #0 8011204: f44f 7100 mov.w r1, #512 ; 0x200 8011208: 4827 ldr r0, [pc, #156] ; (80112a8 ) 801120a: f001 fce3 bl 8012bd4 HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт 801120e: 2364 movs r3, #100 ; 0x64 8011210: 2201 movs r2, #1 8011212: 4923 ldr r1, [pc, #140] ; (80112a0 ) 8011214: 481e ldr r0, [pc, #120] ; (8011290 ) 8011216: f003 fd3b bl 8014c90 if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK) 801121a: f44f 73fa mov.w r3, #500 ; 0x1f4 801121e: 2208 movs r2, #8 8011220: 491f ldr r1, [pc, #124] ; (80112a0 ) 8011222: 481b ldr r0, [pc, #108] ; (8011290 ) 8011224: f003 fd34 bl 8014c90 8011228: 4603 mov r3, r0 801122a: 2b00 cmp r3, #0 801122c: d120 bne.n 8011270 { crc = (uint16_t) ((rx[7]) << 8 | rx[6]); 801122e: 4b1c ldr r3, [pc, #112] ; (80112a0 ) 8011230: 79db ldrb r3, [r3, #7] 8011232: 021b lsls r3, r3, #8 8011234: b21a sxth r2, r3 8011236: 4b1a ldr r3, [pc, #104] ; (80112a0 ) 8011238: 799b ldrb r3, [r3, #6] 801123a: b21b sxth r3, r3 801123c: 4313 orrs r3, r2 801123e: b21b sxth r3, r3 8011240: 827b strh r3, [r7, #18] if(crc == Crc16_RX(6)) 8011242: 2006 movs r0, #6 8011244: f7fe fdec bl 800fe20 8011248: 4603 mov r3, r0 801124a: 461a mov r2, r3 801124c: 8a7b ldrh r3, [r7, #18] 801124e: 4293 cmp r3, r2 8011250: d10b bne.n 801126a { if(rx[0] == (ch + 1)) 8011252: 4b13 ldr r3, [pc, #76] ; (80112a0 ) 8011254: 781b ldrb r3, [r3, #0] 8011256: 461a mov r2, r3 8011258: 79fb ldrb r3, [r7, #7] 801125a: 3301 adds r3, #1 801125c: 429a cmp r2, r3 801125e: d101 bne.n 8011264 return 0; 8011260: 2300 movs r3, #0 8011262: e010 b.n 8011286 else return (-1); 8011264: f04f 33ff mov.w r3, #4294967295 8011268: e00d b.n 8011286 } else { return (-1); 801126a: f04f 33ff mov.w r3, #4294967295 801126e: e00a b.n 8011286 } } else { HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8011270: 2200 movs r2, #0 8011272: f44f 7100 mov.w r1, #512 ; 0x200 8011276: 480c ldr r0, [pc, #48] ; (80112a8 ) 8011278: f001 fcac bl 8012bd4 return (-1); 801127c: f04f 33ff mov.w r3, #4294967295 8011280: e001 b.n 8011286 } } return res; 8011282: f997 3017 ldrsb.w r3, [r7, #23] } 8011286: 4618 mov r0, r3 8011288: 3718 adds r7, #24 801128a: 46bd mov sp, r7 801128c: bd80 pop {r7, pc} 801128e: bf00 nop 8011290: 2006c434 .word 0x2006c434 8011294: 2006ba91 .word 0x2006ba91 8011298: 2006ba93 .word 0x2006ba93 801129c: 2006ba92 .word 0x2006ba92 80112a0: 2006c4bc .word 0x2006c4bc 80112a4: 2006c5c4 .word 0x2006c5c4 80112a8: 40021400 .word 0x40021400 080112ac : } } void CalibrOFF(void) { 80112ac: b580 push {r7, lr} 80112ae: b084 sub sp, #16 80112b0: af00 add r7, sp, #0 uint8_t i, ch; uint32_t MASK_CHANNELS = 0; 80112b2: 2300 movs r3, #0 80112b4: 60bb str r3, [r7, #8] uint32_t CNT_CHANNELS = 0; 80112b6: 2300 movs r3, #0 80112b8: 607b str r3, [r7, #4] for(ch = 0; ch < 4; ch++) 80112ba: 2300 movs r3, #0 80112bc: 73bb strb r3, [r7, #14] 80112be: e01f b.n 8011300 { for(i = 0; i < 3; i++) 80112c0: 2300 movs r3, #0 80112c2: 73fb strb r3, [r7, #15] 80112c4: e016 b.n 80112f4 { if(Calibr(ch, 0) == 0) 80112c6: 7bbb ldrb r3, [r7, #14] 80112c8: 2100 movs r1, #0 80112ca: 4618 mov r0, r3 80112cc: f7ff fd74 bl 8010db8 80112d0: 4603 mov r3, r0 80112d2: 2b00 cmp r3, #0 80112d4: d10b bne.n 80112ee { MASK_CHANNELS |= (1 << ch); 80112d6: 7bbb ldrb r3, [r7, #14] 80112d8: 2201 movs r2, #1 80112da: fa02 f303 lsl.w r3, r2, r3 80112de: 461a mov r2, r3 80112e0: 68bb ldr r3, [r7, #8] 80112e2: 4313 orrs r3, r2 80112e4: 60bb str r3, [r7, #8] CNT_CHANNELS++; 80112e6: 687b ldr r3, [r7, #4] 80112e8: 3301 adds r3, #1 80112ea: 607b str r3, [r7, #4] break; 80112ec: e005 b.n 80112fa for(i = 0; i < 3; i++) 80112ee: 7bfb ldrb r3, [r7, #15] 80112f0: 3301 adds r3, #1 80112f2: 73fb strb r3, [r7, #15] 80112f4: 7bfb ldrb r3, [r7, #15] 80112f6: 2b02 cmp r3, #2 80112f8: d9e5 bls.n 80112c6 for(ch = 0; ch < 4; ch++) 80112fa: 7bbb ldrb r3, [r7, #14] 80112fc: 3301 adds r3, #1 80112fe: 73bb strb r3, [r7, #14] 8011300: 7bbb ldrb r3, [r7, #14] 8011302: 2b03 cmp r3, #3 8011304: d9dc bls.n 80112c0 } } } } 8011306: bf00 nop 8011308: 3710 adds r7, #16 801130a: 46bd mov sp, r7 801130c: bd80 pop {r7, pc} ... 08011310 : void AskChannels(void) { 8011310: b580 push {r7, lr} 8011312: b082 sub sp, #8 8011314: af00 add r7, sp, #0 uint8_t i, ch; ASK_COMPLETE = false; 8011316: 4b46 ldr r3, [pc, #280] ; (8011430 ) 8011318: 2200 movs r2, #0 801131a: 701a strb r2, [r3, #0] for(i = 0; i < 100; i++) 801131c: 2300 movs r3, #0 801131e: 71fb strb r3, [r7, #7] 8011320: e007 b.n 8011332 { RedrawScreen(); 8011322: f7f4 fdbb bl 8005e9c HAL_Delay(10); 8011326: 200a movs r0, #10 8011328: f000 f928 bl 801157c for(i = 0; i < 100; i++) 801132c: 79fb ldrb r3, [r7, #7] 801132e: 3301 adds r3, #1 8011330: 71fb strb r3, [r7, #7] 8011332: 79fb ldrb r3, [r7, #7] 8011334: 2b63 cmp r3, #99 ; 0x63 8011336: d9f4 bls.n 8011322 } ip_assigned = false; 8011338: 4b3e ldr r3, [pc, #248] ; (8011434 ) 801133a: 2200 movs r2, #0 801133c: 701a strb r2, [r3, #0] for(i = 0; i < 2; i++) 801133e: 2300 movs r3, #0 8011340: 71fb strb r3, [r7, #7] 8011342: e00e b.n 8011362 { if(ReadIP() == 0) { 8011344: f7fe fde4 bl 800ff10 8011348: 4603 mov r3, r0 801134a: 2b00 cmp r3, #0 801134c: d103 bne.n 8011356 ip_assigned = true; 801134e: 4b39 ldr r3, [pc, #228] ; (8011434 ) 8011350: 2201 movs r2, #1 8011352: 701a strb r2, [r3, #0] break; 8011354: e008 b.n 8011368 } HAL_Delay(50); 8011356: 2032 movs r0, #50 ; 0x32 8011358: f000 f910 bl 801157c for(i = 0; i < 2; i++) 801135c: 79fb ldrb r3, [r7, #7] 801135e: 3301 adds r3, #1 8011360: 71fb strb r3, [r7, #7] 8011362: 79fb ldrb r3, [r7, #7] 8011364: 2b01 cmp r3, #1 8011366: d9ed bls.n 8011344 } memset((void *) &pardata.amplif[0], 0, sizeof(AmplifData_TypeDef) * 16u); 8011368: f44f 7200 mov.w r2, #512 ; 0x200 801136c: 2100 movs r1, #0 801136e: 4832 ldr r0, [pc, #200] ; (8011438 ) 8011370: f005 f877 bl 8016462 MASK_CHANNELS = CNT_CHANNELS = ACTIVE_CHANNEL = 0; 8011374: 2300 movs r3, #0 8011376: 4a31 ldr r2, [pc, #196] ; (801143c ) 8011378: 6013 str r3, [r2, #0] 801137a: 4a31 ldr r2, [pc, #196] ; (8011440 ) 801137c: 6013 str r3, [r2, #0] 801137e: 4a31 ldr r2, [pc, #196] ; (8011444 ) 8011380: 6013 str r3, [r2, #0] for(ch = 0; ch < 8; ch++) 8011382: 2300 movs r3, #0 8011384: 71bb strb r3, [r7, #6] 8011386: e02a b.n 80113de { for(i = 0; i < 2; i++) 8011388: 2300 movs r3, #0 801138a: 71fb strb r3, [r7, #7] 801138c: e021 b.n 80113d2 { if(ReadChannel(ch) == 0) 801138e: 79bb ldrb r3, [r7, #6] 8011390: 4618 mov r0, r3 8011392: f7fe fedb bl 801014c 8011396: 4603 mov r3, r0 8011398: 2b00 cmp r3, #0 801139a: d115 bne.n 80113c8 { RedrawScreen(); 801139c: f7f4 fd7e bl 8005e9c MASK_CHANNELS |= (1 << ch); 80113a0: 79bb ldrb r3, [r7, #6] 80113a2: 2201 movs r2, #1 80113a4: fa02 f303 lsl.w r3, r2, r3 80113a8: 461a mov r2, r3 80113aa: 4b26 ldr r3, [pc, #152] ; (8011444 ) 80113ac: 681b ldr r3, [r3, #0] 80113ae: 4313 orrs r3, r2 80113b0: 4a24 ldr r2, [pc, #144] ; (8011444 ) 80113b2: 6013 str r3, [r2, #0] CNT_CHANNELS++; 80113b4: 4b22 ldr r3, [pc, #136] ; (8011440 ) 80113b6: 681b ldr r3, [r3, #0] 80113b8: 3301 adds r3, #1 80113ba: 4a21 ldr r2, [pc, #132] ; (8011440 ) 80113bc: 6013 str r3, [r2, #0] ReadChannelSens(ch); 80113be: 79bb ldrb r3, [r7, #6] 80113c0: 4618 mov r0, r3 80113c2: f7ff fa83 bl 80108cc break; 80113c6: e007 b.n 80113d8 } else RedrawScreen(); 80113c8: f7f4 fd68 bl 8005e9c for(i = 0; i < 2; i++) 80113cc: 79fb ldrb r3, [r7, #7] 80113ce: 3301 adds r3, #1 80113d0: 71fb strb r3, [r7, #7] 80113d2: 79fb ldrb r3, [r7, #7] 80113d4: 2b01 cmp r3, #1 80113d6: d9da bls.n 801138e for(ch = 0; ch < 8; ch++) 80113d8: 79bb ldrb r3, [r7, #6] 80113da: 3301 adds r3, #1 80113dc: 71bb strb r3, [r7, #6] 80113de: 79bb ldrb r3, [r7, #6] 80113e0: 2b07 cmp r3, #7 80113e2: d9d1 bls.n 8011388 } } if(CNT_CHANNELS != 0) 80113e4: 4b16 ldr r3, [pc, #88] ; (8011440 ) 80113e6: 681b ldr r3, [r3, #0] 80113e8: 2b00 cmp r3, #0 80113ea: d019 beq.n 8011420 { for(i = 0; i < 8; i++) 80113ec: 2300 movs r3, #0 80113ee: 71fb strb r3, [r7, #7] 80113f0: e010 b.n 8011414 { if(MASK_CHANNELS & (1 << i)) 80113f2: 79fb ldrb r3, [r7, #7] 80113f4: 2201 movs r2, #1 80113f6: fa02 f303 lsl.w r3, r2, r3 80113fa: 461a mov r2, r3 80113fc: 4b11 ldr r3, [pc, #68] ; (8011444 ) 80113fe: 681b ldr r3, [r3, #0] 8011400: 4013 ands r3, r2 8011402: 2b00 cmp r3, #0 8011404: d003 beq.n 801140e { ACTIVE_CHANNEL = i; 8011406: 79fb ldrb r3, [r7, #7] 8011408: 4a0c ldr r2, [pc, #48] ; (801143c ) 801140a: 6013 str r3, [r2, #0] break; 801140c: e005 b.n 801141a for(i = 0; i < 8; i++) 801140e: 79fb ldrb r3, [r7, #7] 8011410: 3301 adds r3, #1 8011412: 71fb strb r3, [r7, #7] 8011414: 79fb ldrb r3, [r7, #7] 8011416: 2b07 cmp r3, #7 8011418: d9eb bls.n 80113f2 } } ASK_COMPLETE = true; 801141a: 4b05 ldr r3, [pc, #20] ; (8011430 ) 801141c: 2201 movs r2, #1 801141e: 701a strb r2, [r3, #0] { //Off(); } HAL_Delay(2000); 8011420: f44f 60fa mov.w r0, #2000 ; 0x7d0 8011424: f000 f8aa bl 801157c //MASK_CHANNELS = 0xf; //TODO Удалить //CNT_CHANNELS = 4; //TODO Удалить } 8011428: bf00 nop 801142a: 3708 adds r7, #8 801142c: 46bd mov sp, r7 801142e: bd80 pop {r7, pc} 8011430: 2006ba90 .word 0x2006ba90 8011434: 2006ba94 .word 0x2006ba94 8011438: 2006bca8 .word 0x2006bca8 801143c: 2006ba68 .word 0x2006ba68 8011440: 2006ba6c .word 0x2006ba6c 8011444: 2002002c .word 0x2002002c 08011448 : void AskPeriodic(void) { 8011448: b580 push {r7, lr} 801144a: b082 sub sp, #8 801144c: af00 add r7, sp, #0 uint8_t ch; for(ch = 0; ch < 8; ch++) 801144e: 2300 movs r3, #0 8011450: 71fb strb r3, [r7, #7] 8011452: e01c b.n 801148e { if(MASK_CHANNELS & (1 << ch)) 8011454: 79fb ldrb r3, [r7, #7] 8011456: 2201 movs r2, #1 8011458: fa02 f303 lsl.w r3, r2, r3 801145c: 461a mov r2, r3 801145e: 4b0f ldr r3, [pc, #60] ; (801149c ) 8011460: 681b ldr r3, [r3, #0] 8011462: 4013 ands r3, r2 8011464: 2b00 cmp r3, #0 8011466: d00f beq.n 8011488 { if(!focused) 8011468: 4b0d ldr r3, [pc, #52] ; (80114a0 ) 801146a: 781b ldrb r3, [r3, #0] 801146c: b2db uxtb r3, r3 801146e: f083 0301 eor.w r3, r3, #1 8011472: b2db uxtb r3, r3 8011474: 2b00 cmp r3, #0 8011476: d007 beq.n 8011488 { ReadChannel(ch); 8011478: 79fb ldrb r3, [r7, #7] 801147a: 4618 mov r0, r3 801147c: f7fe fe66 bl 801014c ReadChannelSens(ch); 8011480: 79fb ldrb r3, [r7, #7] 8011482: 4618 mov r0, r3 8011484: f7ff fa22 bl 80108cc for(ch = 0; ch < 8; ch++) 8011488: 79fb ldrb r3, [r7, #7] 801148a: 3301 adds r3, #1 801148c: 71fb strb r3, [r7, #7] 801148e: 79fb ldrb r3, [r7, #7] 8011490: 2b07 cmp r3, #7 8011492: d9df bls.n 8011454 } } } } 8011494: bf00 nop 8011496: 3708 adds r7, #8 8011498: 46bd mov sp, r7 801149a: bd80 pop {r7, pc} 801149c: 2002002c .word 0x2002002c 80114a0: 200209e4 .word 0x200209e4 080114a4 : * need to ensure that the SysTick time base is always set to 1 millisecond * to have correct HAL operation. * @retval HAL status */ HAL_StatusTypeDef HAL_Init(void) { 80114a4: b580 push {r7, lr} 80114a6: af00 add r7, sp, #0 /* Configure Instruction cache through ART accelerator */ #if (ART_ACCLERATOR_ENABLE != 0) __HAL_FLASH_ART_ENABLE(); 80114a8: 4a0b ldr r2, [pc, #44] ; (80114d8 ) 80114aa: 4b0b ldr r3, [pc, #44] ; (80114d8 ) 80114ac: 681b ldr r3, [r3, #0] 80114ae: f443 7300 orr.w r3, r3, #512 ; 0x200 80114b2: 6013 str r3, [r2, #0] #endif /* ART_ACCLERATOR_ENABLE */ /* Configure Flash prefetch */ #if (PREFETCH_ENABLE != 0U) __HAL_FLASH_PREFETCH_BUFFER_ENABLE(); 80114b4: 4a08 ldr r2, [pc, #32] ; (80114d8 ) 80114b6: 4b08 ldr r3, [pc, #32] ; (80114d8 ) 80114b8: 681b ldr r3, [r3, #0] 80114ba: f443 7380 orr.w r3, r3, #256 ; 0x100 80114be: 6013 str r3, [r2, #0] #endif /* PREFETCH_ENABLE */ /* Set Interrupt Group Priority */ HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); 80114c0: 2003 movs r0, #3 80114c2: f000 f96d bl 80117a0 /* Use systick as time base source and configure 1ms tick (default clock after Reset is HSI) */ HAL_InitTick(TICK_INT_PRIORITY); 80114c6: 2000 movs r0, #0 80114c8: f000 f808 bl 80114dc /* Init the low level hardware */ HAL_MspInit(); 80114cc: f7fe f988 bl 800f7e0 /* Return function status */ return HAL_OK; 80114d0: 2300 movs r3, #0 } 80114d2: 4618 mov r0, r3 80114d4: bd80 pop {r7, pc} 80114d6: bf00 nop 80114d8: 40023c00 .word 0x40023c00 080114dc : * implementation in user file. * @param TickPriority Tick interrupt priority. * @retval HAL status */ __weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) { 80114dc: b580 push {r7, lr} 80114de: b082 sub sp, #8 80114e0: af00 add r7, sp, #0 80114e2: 6078 str r0, [r7, #4] /* Configure the SysTick to have interrupt in 1ms time basis*/ if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U) 80114e4: 4b12 ldr r3, [pc, #72] ; (8011530 ) 80114e6: 681a ldr r2, [r3, #0] 80114e8: 4b12 ldr r3, [pc, #72] ; (8011534 ) 80114ea: 781b ldrb r3, [r3, #0] 80114ec: 4619 mov r1, r3 80114ee: f44f 737a mov.w r3, #1000 ; 0x3e8 80114f2: fbb3 f3f1 udiv r3, r3, r1 80114f6: fbb2 f3f3 udiv r3, r2, r3 80114fa: 4618 mov r0, r3 80114fc: f000 f993 bl 8011826 8011500: 4603 mov r3, r0 8011502: 2b00 cmp r3, #0 8011504: d001 beq.n 801150a { return HAL_ERROR; 8011506: 2301 movs r3, #1 8011508: e00e b.n 8011528 } /* Configure the SysTick IRQ priority */ if (TickPriority < (1UL << __NVIC_PRIO_BITS)) 801150a: 687b ldr r3, [r7, #4] 801150c: 2b0f cmp r3, #15 801150e: d80a bhi.n 8011526 { HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U); 8011510: 2200 movs r2, #0 8011512: 6879 ldr r1, [r7, #4] 8011514: f04f 30ff mov.w r0, #4294967295 8011518: f000 f94d bl 80117b6 uwTickPrio = TickPriority; 801151c: 4a06 ldr r2, [pc, #24] ; (8011538 ) 801151e: 687b ldr r3, [r7, #4] 8011520: 6013 str r3, [r2, #0] { return HAL_ERROR; } /* Return function status */ return HAL_OK; 8011522: 2300 movs r3, #0 8011524: e000 b.n 8011528 return HAL_ERROR; 8011526: 2301 movs r3, #1 } 8011528: 4618 mov r0, r3 801152a: 3708 adds r7, #8 801152c: 46bd mov sp, r7 801152e: bd80 pop {r7, pc} 8011530: 20020994 .word 0x20020994 8011534: 200209a4 .word 0x200209a4 8011538: 200209a0 .word 0x200209a0 0801153c : * @note This function is declared as __weak to be overwritten in case of other * implementations in user file. * @retval None */ __weak void HAL_IncTick(void) { 801153c: b480 push {r7} 801153e: af00 add r7, sp, #0 uwTick += uwTickFreq; 8011540: 4b06 ldr r3, [pc, #24] ; (801155c ) 8011542: 781b ldrb r3, [r3, #0] 8011544: 461a mov r2, r3 8011546: 4b06 ldr r3, [pc, #24] ; (8011560 ) 8011548: 681b ldr r3, [r3, #0] 801154a: 4413 add r3, r2 801154c: 4a04 ldr r2, [pc, #16] ; (8011560 ) 801154e: 6013 str r3, [r2, #0] } 8011550: bf00 nop 8011552: 46bd mov sp, r7 8011554: f85d 7b04 ldr.w r7, [sp], #4 8011558: 4770 bx lr 801155a: bf00 nop 801155c: 200209a4 .word 0x200209a4 8011560: 2006c6c4 .word 0x2006c6c4 08011564 : * @note This function is declared as __weak to be overwritten in case of other * implementations in user file. * @retval tick value */ __weak uint32_t HAL_GetTick(void) { 8011564: b480 push {r7} 8011566: af00 add r7, sp, #0 return uwTick; 8011568: 4b03 ldr r3, [pc, #12] ; (8011578 ) 801156a: 681b ldr r3, [r3, #0] } 801156c: 4618 mov r0, r3 801156e: 46bd mov sp, r7 8011570: f85d 7b04 ldr.w r7, [sp], #4 8011574: 4770 bx lr 8011576: bf00 nop 8011578: 2006c6c4 .word 0x2006c6c4 0801157c : * implementations in user file. * @param Delay specifies the delay time length, in milliseconds. * @retval None */ __weak void HAL_Delay(uint32_t Delay) { 801157c: b580 push {r7, lr} 801157e: b084 sub sp, #16 8011580: af00 add r7, sp, #0 8011582: 6078 str r0, [r7, #4] uint32_t tickstart = HAL_GetTick(); 8011584: f7ff ffee bl 8011564 8011588: 60b8 str r0, [r7, #8] uint32_t wait = Delay; 801158a: 687b ldr r3, [r7, #4] 801158c: 60fb str r3, [r7, #12] /* Add a freq to guarantee minimum wait */ if (wait < HAL_MAX_DELAY) 801158e: 68fb ldr r3, [r7, #12] 8011590: f1b3 3fff cmp.w r3, #4294967295 8011594: d005 beq.n 80115a2 { wait += (uint32_t)(uwTickFreq); 8011596: 4b09 ldr r3, [pc, #36] ; (80115bc ) 8011598: 781b ldrb r3, [r3, #0] 801159a: 461a mov r2, r3 801159c: 68fb ldr r3, [r7, #12] 801159e: 4413 add r3, r2 80115a0: 60fb str r3, [r7, #12] } while ((HAL_GetTick() - tickstart) < wait) 80115a2: bf00 nop 80115a4: f7ff ffde bl 8011564 80115a8: 4602 mov r2, r0 80115aa: 68bb ldr r3, [r7, #8] 80115ac: 1ad2 subs r2, r2, r3 80115ae: 68fb ldr r3, [r7, #12] 80115b0: 429a cmp r2, r3 80115b2: d3f7 bcc.n 80115a4 { } } 80115b4: bf00 nop 80115b6: 3710 adds r7, #16 80115b8: 46bd mov sp, r7 80115ba: bd80 pop {r7, pc} 80115bc: 200209a4 .word 0x200209a4 080115c0 <__NVIC_SetPriorityGrouping>: In case of a conflict between priority grouping and available priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. \param [in] PriorityGroup Priority grouping field. */ __STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) { 80115c0: b480 push {r7} 80115c2: b085 sub sp, #20 80115c4: af00 add r7, sp, #0 80115c6: 6078 str r0, [r7, #4] uint32_t reg_value; uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ 80115c8: 687b ldr r3, [r7, #4] 80115ca: f003 0307 and.w r3, r3, #7 80115ce: 60fb str r3, [r7, #12] reg_value = SCB->AIRCR; /* read old register configuration */ 80115d0: 4b0b ldr r3, [pc, #44] ; (8011600 <__NVIC_SetPriorityGrouping+0x40>) 80115d2: 68db ldr r3, [r3, #12] 80115d4: 60bb str r3, [r7, #8] reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ 80115d6: 68ba ldr r2, [r7, #8] 80115d8: f64f 03ff movw r3, #63743 ; 0xf8ff 80115dc: 4013 ands r3, r2 80115de: 60bb str r3, [r7, #8] reg_value = (reg_value | ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ 80115e0: 68fb ldr r3, [r7, #12] 80115e2: 021a lsls r2, r3, #8 ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | 80115e4: 68bb ldr r3, [r7, #8] 80115e6: 431a orrs r2, r3 reg_value = (reg_value | 80115e8: 4b06 ldr r3, [pc, #24] ; (8011604 <__NVIC_SetPriorityGrouping+0x44>) 80115ea: 4313 orrs r3, r2 80115ec: 60bb str r3, [r7, #8] SCB->AIRCR = reg_value; 80115ee: 4a04 ldr r2, [pc, #16] ; (8011600 <__NVIC_SetPriorityGrouping+0x40>) 80115f0: 68bb ldr r3, [r7, #8] 80115f2: 60d3 str r3, [r2, #12] } 80115f4: bf00 nop 80115f6: 3714 adds r7, #20 80115f8: 46bd mov sp, r7 80115fa: f85d 7b04 ldr.w r7, [sp], #4 80115fe: 4770 bx lr 8011600: e000ed00 .word 0xe000ed00 8011604: 05fa0000 .word 0x05fa0000 08011608 <__NVIC_GetPriorityGrouping>: \brief Get Priority Grouping \details Reads the priority grouping field from the NVIC Interrupt Controller. \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). */ __STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) { 8011608: b480 push {r7} 801160a: af00 add r7, sp, #0 return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); 801160c: 4b04 ldr r3, [pc, #16] ; (8011620 <__NVIC_GetPriorityGrouping+0x18>) 801160e: 68db ldr r3, [r3, #12] 8011610: 0a1b lsrs r3, r3, #8 8011612: f003 0307 and.w r3, r3, #7 } 8011616: 4618 mov r0, r3 8011618: 46bd mov sp, r7 801161a: f85d 7b04 ldr.w r7, [sp], #4 801161e: 4770 bx lr 8011620: e000ed00 .word 0xe000ed00 08011624 <__NVIC_EnableIRQ>: \details Enables a device specific interrupt in the NVIC interrupt controller. \param [in] IRQn Device specific interrupt number. \note IRQn must not be negative. */ __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) { 8011624: b480 push {r7} 8011626: b083 sub sp, #12 8011628: af00 add r7, sp, #0 801162a: 4603 mov r3, r0 801162c: 71fb strb r3, [r7, #7] if ((int32_t)(IRQn) >= 0) 801162e: f997 3007 ldrsb.w r3, [r7, #7] 8011632: 2b00 cmp r3, #0 8011634: db0b blt.n 801164e <__NVIC_EnableIRQ+0x2a> { NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); 8011636: 4909 ldr r1, [pc, #36] ; (801165c <__NVIC_EnableIRQ+0x38>) 8011638: f997 3007 ldrsb.w r3, [r7, #7] 801163c: 095b lsrs r3, r3, #5 801163e: 79fa ldrb r2, [r7, #7] 8011640: f002 021f and.w r2, r2, #31 8011644: 2001 movs r0, #1 8011646: fa00 f202 lsl.w r2, r0, r2 801164a: f841 2023 str.w r2, [r1, r3, lsl #2] } } 801164e: bf00 nop 8011650: 370c adds r7, #12 8011652: 46bd mov sp, r7 8011654: f85d 7b04 ldr.w r7, [sp], #4 8011658: 4770 bx lr 801165a: bf00 nop 801165c: e000e100 .word 0xe000e100 08011660 <__NVIC_DisableIRQ>: \details Disables a device specific interrupt in the NVIC interrupt controller. \param [in] IRQn Device specific interrupt number. \note IRQn must not be negative. */ __STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) { 8011660: b480 push {r7} 8011662: b083 sub sp, #12 8011664: af00 add r7, sp, #0 8011666: 4603 mov r3, r0 8011668: 71fb strb r3, [r7, #7] if ((int32_t)(IRQn) >= 0) 801166a: f997 3007 ldrsb.w r3, [r7, #7] 801166e: 2b00 cmp r3, #0 8011670: db10 blt.n 8011694 <__NVIC_DisableIRQ+0x34> { NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); 8011672: 490b ldr r1, [pc, #44] ; (80116a0 <__NVIC_DisableIRQ+0x40>) 8011674: f997 3007 ldrsb.w r3, [r7, #7] 8011678: 095b lsrs r3, r3, #5 801167a: 79fa ldrb r2, [r7, #7] 801167c: f002 021f and.w r2, r2, #31 8011680: 2001 movs r0, #1 8011682: fa00 f202 lsl.w r2, r0, r2 8011686: 3320 adds r3, #32 8011688: f841 2023 str.w r2, [r1, r3, lsl #2] \details Acts as a special kind of Data Memory Barrier. It completes when all explicit memory accesses before this instruction complete. */ __STATIC_FORCEINLINE void __DSB(void) { __ASM volatile ("dsb 0xF":::"memory"); 801168c: f3bf 8f4f dsb sy __ASM volatile ("isb 0xF":::"memory"); 8011690: f3bf 8f6f isb sy __DSB(); __ISB(); } } 8011694: bf00 nop 8011696: 370c adds r7, #12 8011698: 46bd mov sp, r7 801169a: f85d 7b04 ldr.w r7, [sp], #4 801169e: 4770 bx lr 80116a0: e000e100 .word 0xe000e100 080116a4 <__NVIC_SetPriority>: \param [in] IRQn Interrupt number. \param [in] priority Priority to set. \note The priority cannot be set for every processor exception. */ __STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) { 80116a4: b480 push {r7} 80116a6: b083 sub sp, #12 80116a8: af00 add r7, sp, #0 80116aa: 4603 mov r3, r0 80116ac: 6039 str r1, [r7, #0] 80116ae: 71fb strb r3, [r7, #7] if ((int32_t)(IRQn) >= 0) 80116b0: f997 3007 ldrsb.w r3, [r7, #7] 80116b4: 2b00 cmp r3, #0 80116b6: db0a blt.n 80116ce <__NVIC_SetPriority+0x2a> { NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); 80116b8: 490d ldr r1, [pc, #52] ; (80116f0 <__NVIC_SetPriority+0x4c>) 80116ba: f997 3007 ldrsb.w r3, [r7, #7] 80116be: 683a ldr r2, [r7, #0] 80116c0: b2d2 uxtb r2, r2 80116c2: 0112 lsls r2, r2, #4 80116c4: b2d2 uxtb r2, r2 80116c6: 440b add r3, r1 80116c8: f883 2300 strb.w r2, [r3, #768] ; 0x300 } else { SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); } } 80116cc: e00a b.n 80116e4 <__NVIC_SetPriority+0x40> SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); 80116ce: 4909 ldr r1, [pc, #36] ; (80116f4 <__NVIC_SetPriority+0x50>) 80116d0: 79fb ldrb r3, [r7, #7] 80116d2: f003 030f and.w r3, r3, #15 80116d6: 3b04 subs r3, #4 80116d8: 683a ldr r2, [r7, #0] 80116da: b2d2 uxtb r2, r2 80116dc: 0112 lsls r2, r2, #4 80116de: b2d2 uxtb r2, r2 80116e0: 440b add r3, r1 80116e2: 761a strb r2, [r3, #24] } 80116e4: bf00 nop 80116e6: 370c adds r7, #12 80116e8: 46bd mov sp, r7 80116ea: f85d 7b04 ldr.w r7, [sp], #4 80116ee: 4770 bx lr 80116f0: e000e100 .word 0xe000e100 80116f4: e000ed00 .word 0xe000ed00 080116f8 : \param [in] PreemptPriority Preemptive priority value (starting from 0). \param [in] SubPriority Subpriority value (starting from 0). \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). */ __STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) { 80116f8: b480 push {r7} 80116fa: b089 sub sp, #36 ; 0x24 80116fc: af00 add r7, sp, #0 80116fe: 60f8 str r0, [r7, #12] 8011700: 60b9 str r1, [r7, #8] 8011702: 607a str r2, [r7, #4] uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ 8011704: 68fb ldr r3, [r7, #12] 8011706: f003 0307 and.w r3, r3, #7 801170a: 61fb str r3, [r7, #28] uint32_t PreemptPriorityBits; uint32_t SubPriorityBits; PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); 801170c: 69fb ldr r3, [r7, #28] 801170e: f1c3 0307 rsb r3, r3, #7 8011712: 2b04 cmp r3, #4 8011714: bf28 it cs 8011716: 2304 movcs r3, #4 8011718: 61bb str r3, [r7, #24] SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); 801171a: 69fb ldr r3, [r7, #28] 801171c: 3304 adds r3, #4 801171e: 2b06 cmp r3, #6 8011720: d902 bls.n 8011728 8011722: 69fb ldr r3, [r7, #28] 8011724: 3b03 subs r3, #3 8011726: e000 b.n 801172a 8011728: 2300 movs r3, #0 801172a: 617b str r3, [r7, #20] return ( ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | 801172c: 2201 movs r2, #1 801172e: 69bb ldr r3, [r7, #24] 8011730: fa02 f303 lsl.w r3, r2, r3 8011734: 1e5a subs r2, r3, #1 8011736: 68bb ldr r3, [r7, #8] 8011738: 401a ands r2, r3 801173a: 697b ldr r3, [r7, #20] 801173c: 409a lsls r2, r3 ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) 801173e: 2101 movs r1, #1 8011740: 697b ldr r3, [r7, #20] 8011742: fa01 f303 lsl.w r3, r1, r3 8011746: 1e59 subs r1, r3, #1 8011748: 687b ldr r3, [r7, #4] 801174a: 400b ands r3, r1 ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | 801174c: 4313 orrs r3, r2 ); } 801174e: 4618 mov r0, r3 8011750: 3724 adds r7, #36 ; 0x24 8011752: 46bd mov sp, r7 8011754: f85d 7b04 ldr.w r7, [sp], #4 8011758: 4770 bx lr ... 0801175c : \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) { 801175c: b580 push {r7, lr} 801175e: b082 sub sp, #8 8011760: af00 add r7, sp, #0 8011762: 6078 str r0, [r7, #4] if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) 8011764: 687b ldr r3, [r7, #4] 8011766: 3b01 subs r3, #1 8011768: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 801176c: d301 bcc.n 8011772 { return (1UL); /* Reload value impossible */ 801176e: 2301 movs r3, #1 8011770: e00f b.n 8011792 } SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ 8011772: 4a0a ldr r2, [pc, #40] ; (801179c ) 8011774: 687b ldr r3, [r7, #4] 8011776: 3b01 subs r3, #1 8011778: 6053 str r3, [r2, #4] NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ 801177a: 210f movs r1, #15 801177c: f04f 30ff mov.w r0, #4294967295 8011780: f7ff ff90 bl 80116a4 <__NVIC_SetPriority> SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ 8011784: 4b05 ldr r3, [pc, #20] ; (801179c ) 8011786: 2200 movs r2, #0 8011788: 609a str r2, [r3, #8] SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | 801178a: 4b04 ldr r3, [pc, #16] ; (801179c ) 801178c: 2207 movs r2, #7 801178e: 601a str r2, [r3, #0] SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ return (0UL); /* Function successful */ 8011790: 2300 movs r3, #0 } 8011792: 4618 mov r0, r3 8011794: 3708 adds r7, #8 8011796: 46bd mov sp, r7 8011798: bd80 pop {r7, pc} 801179a: bf00 nop 801179c: e000e010 .word 0xe000e010 080117a0 : * @note When the NVIC_PriorityGroup_0 is selected, IRQ preemption is no more possible. * The pending IRQ priority will be managed only by the subpriority. * @retval None */ void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) { 80117a0: b580 push {r7, lr} 80117a2: b082 sub sp, #8 80117a4: af00 add r7, sp, #0 80117a6: 6078 str r0, [r7, #4] /* Check the parameters */ assert_param(IS_NVIC_PRIORITY_GROUP(PriorityGroup)); /* Set the PRIGROUP[10:8] bits according to the PriorityGroup parameter value */ NVIC_SetPriorityGrouping(PriorityGroup); 80117a8: 6878 ldr r0, [r7, #4] 80117aa: f7ff ff09 bl 80115c0 <__NVIC_SetPriorityGrouping> } 80117ae: bf00 nop 80117b0: 3708 adds r7, #8 80117b2: 46bd mov sp, r7 80117b4: bd80 pop {r7, pc} 080117b6 : * This parameter can be a value between 0 and 15 * A lower priority value indicates a higher priority. * @retval None */ void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority) { 80117b6: b580 push {r7, lr} 80117b8: b086 sub sp, #24 80117ba: af00 add r7, sp, #0 80117bc: 4603 mov r3, r0 80117be: 60b9 str r1, [r7, #8] 80117c0: 607a str r2, [r7, #4] 80117c2: 73fb strb r3, [r7, #15] uint32_t prioritygroup = 0x00; 80117c4: 2300 movs r3, #0 80117c6: 617b str r3, [r7, #20] /* Check the parameters */ assert_param(IS_NVIC_SUB_PRIORITY(SubPriority)); assert_param(IS_NVIC_PREEMPTION_PRIORITY(PreemptPriority)); prioritygroup = NVIC_GetPriorityGrouping(); 80117c8: f7ff ff1e bl 8011608 <__NVIC_GetPriorityGrouping> 80117cc: 6178 str r0, [r7, #20] NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority)); 80117ce: 687a ldr r2, [r7, #4] 80117d0: 68b9 ldr r1, [r7, #8] 80117d2: 6978 ldr r0, [r7, #20] 80117d4: f7ff ff90 bl 80116f8 80117d8: 4602 mov r2, r0 80117da: f997 300f ldrsb.w r3, [r7, #15] 80117de: 4611 mov r1, r2 80117e0: 4618 mov r0, r3 80117e2: f7ff ff5f bl 80116a4 <__NVIC_SetPriority> } 80117e6: bf00 nop 80117e8: 3718 adds r7, #24 80117ea: 46bd mov sp, r7 80117ec: bd80 pop {r7, pc} 080117ee : * This parameter can be an enumerator of IRQn_Type enumeration * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32f7xxxx.h)) * @retval None */ void HAL_NVIC_EnableIRQ(IRQn_Type IRQn) { 80117ee: b580 push {r7, lr} 80117f0: b082 sub sp, #8 80117f2: af00 add r7, sp, #0 80117f4: 4603 mov r3, r0 80117f6: 71fb strb r3, [r7, #7] /* Check the parameters */ assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); /* Enable interrupt */ NVIC_EnableIRQ(IRQn); 80117f8: f997 3007 ldrsb.w r3, [r7, #7] 80117fc: 4618 mov r0, r3 80117fe: f7ff ff11 bl 8011624 <__NVIC_EnableIRQ> } 8011802: bf00 nop 8011804: 3708 adds r7, #8 8011806: 46bd mov sp, r7 8011808: bd80 pop {r7, pc} 0801180a : * This parameter can be an enumerator of IRQn_Type enumeration * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32f7xxxx.h)) * @retval None */ void HAL_NVIC_DisableIRQ(IRQn_Type IRQn) { 801180a: b580 push {r7, lr} 801180c: b082 sub sp, #8 801180e: af00 add r7, sp, #0 8011810: 4603 mov r3, r0 8011812: 71fb strb r3, [r7, #7] /* Check the parameters */ assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); /* Disable interrupt */ NVIC_DisableIRQ(IRQn); 8011814: f997 3007 ldrsb.w r3, [r7, #7] 8011818: 4618 mov r0, r3 801181a: f7ff ff21 bl 8011660 <__NVIC_DisableIRQ> } 801181e: bf00 nop 8011820: 3708 adds r7, #8 8011822: 46bd mov sp, r7 8011824: bd80 pop {r7, pc} 08011826 : * @param TicksNumb Specifies the ticks Number of ticks between two interrupts. * @retval status: - 0 Function succeeded. * - 1 Function failed. */ uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb) { 8011826: b580 push {r7, lr} 8011828: b082 sub sp, #8 801182a: af00 add r7, sp, #0 801182c: 6078 str r0, [r7, #4] return SysTick_Config(TicksNumb); 801182e: 6878 ldr r0, [r7, #4] 8011830: f7ff ff94 bl 801175c 8011834: 4603 mov r3, r0 } 8011836: 4618 mov r0, r3 8011838: 3708 adds r7, #8 801183a: 46bd mov sp, r7 801183c: bd80 pop {r7, pc} 0801183e : * and the Stream will be effectively disabled only after the transfer of * this single data is finished. * @retval HAL status */ HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma) { 801183e: b580 push {r7, lr} 8011840: b084 sub sp, #16 8011842: af00 add r7, sp, #0 8011844: 6078 str r0, [r7, #4] /* calculate DMA base and stream number */ DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress; 8011846: 687b ldr r3, [r7, #4] 8011848: 6d9b ldr r3, [r3, #88] ; 0x58 801184a: 60fb str r3, [r7, #12] uint32_t tickstart = HAL_GetTick(); 801184c: f7ff fe8a bl 8011564 8011850: 60b8 str r0, [r7, #8] if(hdma->State != HAL_DMA_STATE_BUSY) 8011852: 687b ldr r3, [r7, #4] 8011854: f893 3035 ldrb.w r3, [r3, #53] ; 0x35 8011858: b2db uxtb r3, r3 801185a: 2b02 cmp r3, #2 801185c: d008 beq.n 8011870 { hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; 801185e: 687b ldr r3, [r7, #4] 8011860: 2280 movs r2, #128 ; 0x80 8011862: 655a str r2, [r3, #84] ; 0x54 /* Process Unlocked */ __HAL_UNLOCK(hdma); 8011864: 687b ldr r3, [r7, #4] 8011866: 2200 movs r2, #0 8011868: f883 2034 strb.w r2, [r3, #52] ; 0x34 return HAL_ERROR; 801186c: 2301 movs r3, #1 801186e: e052 b.n 8011916 } else { /* Disable all the transfer interrupts */ hdma->Instance->CR &= ~(DMA_IT_TC | DMA_IT_TE | DMA_IT_DME); 8011870: 687b ldr r3, [r7, #4] 8011872: 681b ldr r3, [r3, #0] 8011874: 687a ldr r2, [r7, #4] 8011876: 6812 ldr r2, [r2, #0] 8011878: 6812 ldr r2, [r2, #0] 801187a: f022 0216 bic.w r2, r2, #22 801187e: 601a str r2, [r3, #0] hdma->Instance->FCR &= ~(DMA_IT_FE); 8011880: 687b ldr r3, [r7, #4] 8011882: 681b ldr r3, [r3, #0] 8011884: 687a ldr r2, [r7, #4] 8011886: 6812 ldr r2, [r2, #0] 8011888: 6952 ldr r2, [r2, #20] 801188a: f022 0280 bic.w r2, r2, #128 ; 0x80 801188e: 615a str r2, [r3, #20] if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL)) 8011890: 687b ldr r3, [r7, #4] 8011892: 6c1b ldr r3, [r3, #64] ; 0x40 8011894: 2b00 cmp r3, #0 8011896: d103 bne.n 80118a0 8011898: 687b ldr r3, [r7, #4] 801189a: 6c9b ldr r3, [r3, #72] ; 0x48 801189c: 2b00 cmp r3, #0 801189e: d007 beq.n 80118b0 { hdma->Instance->CR &= ~(DMA_IT_HT); 80118a0: 687b ldr r3, [r7, #4] 80118a2: 681b ldr r3, [r3, #0] 80118a4: 687a ldr r2, [r7, #4] 80118a6: 6812 ldr r2, [r2, #0] 80118a8: 6812 ldr r2, [r2, #0] 80118aa: f022 0208 bic.w r2, r2, #8 80118ae: 601a str r2, [r3, #0] } /* Disable the stream */ __HAL_DMA_DISABLE(hdma); 80118b0: 687b ldr r3, [r7, #4] 80118b2: 681b ldr r3, [r3, #0] 80118b4: 687a ldr r2, [r7, #4] 80118b6: 6812 ldr r2, [r2, #0] 80118b8: 6812 ldr r2, [r2, #0] 80118ba: f022 0201 bic.w r2, r2, #1 80118be: 601a str r2, [r3, #0] /* Check if the DMA Stream is effectively disabled */ while((hdma->Instance->CR & DMA_SxCR_EN) != RESET) 80118c0: e013 b.n 80118ea { /* Check for the Timeout */ if((HAL_GetTick() - tickstart ) > HAL_TIMEOUT_DMA_ABORT) 80118c2: f7ff fe4f bl 8011564 80118c6: 4602 mov r2, r0 80118c8: 68bb ldr r3, [r7, #8] 80118ca: 1ad3 subs r3, r2, r3 80118cc: 2b05 cmp r3, #5 80118ce: d90c bls.n 80118ea { /* Update error code */ hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT; 80118d0: 687b ldr r3, [r7, #4] 80118d2: 2220 movs r2, #32 80118d4: 655a str r2, [r3, #84] ; 0x54 /* Change the DMA state */ hdma->State = HAL_DMA_STATE_TIMEOUT; 80118d6: 687b ldr r3, [r7, #4] 80118d8: 2203 movs r2, #3 80118da: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Process Unlocked */ __HAL_UNLOCK(hdma); 80118de: 687b ldr r3, [r7, #4] 80118e0: 2200 movs r2, #0 80118e2: f883 2034 strb.w r2, [r3, #52] ; 0x34 return HAL_TIMEOUT; 80118e6: 2303 movs r3, #3 80118e8: e015 b.n 8011916 while((hdma->Instance->CR & DMA_SxCR_EN) != RESET) 80118ea: 687b ldr r3, [r7, #4] 80118ec: 681b ldr r3, [r3, #0] 80118ee: 681b ldr r3, [r3, #0] 80118f0: f003 0301 and.w r3, r3, #1 80118f4: 2b00 cmp r3, #0 80118f6: d1e4 bne.n 80118c2 } } /* Clear all interrupt flags at correct offset within the register */ regs->IFCR = 0x3FU << hdma->StreamIndex; 80118f8: 687b ldr r3, [r7, #4] 80118fa: 6ddb ldr r3, [r3, #92] ; 0x5c 80118fc: 223f movs r2, #63 ; 0x3f 80118fe: 409a lsls r2, r3 8011900: 68fb ldr r3, [r7, #12] 8011902: 609a str r2, [r3, #8] /* Change the DMA state*/ hdma->State = HAL_DMA_STATE_READY; 8011904: 687b ldr r3, [r7, #4] 8011906: 2201 movs r2, #1 8011908: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Process Unlocked */ __HAL_UNLOCK(hdma); 801190c: 687b ldr r3, [r7, #4] 801190e: 2200 movs r2, #0 8011910: f883 2034 strb.w r2, [r3, #52] ; 0x34 } return HAL_OK; 8011914: 2300 movs r3, #0 } 8011916: 4618 mov r0, r3 8011918: 3710 adds r7, #16 801191a: 46bd mov sp, r7 801191c: bd80 pop {r7, pc} 0801191e : * @param hdma pointer to a DMA_HandleTypeDef structure that contains * the configuration information for the specified DMA Stream. * @retval HAL status */ HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma) { 801191e: b480 push {r7} 8011920: b083 sub sp, #12 8011922: af00 add r7, sp, #0 8011924: 6078 str r0, [r7, #4] if(hdma->State != HAL_DMA_STATE_BUSY) 8011926: 687b ldr r3, [r7, #4] 8011928: f893 3035 ldrb.w r3, [r3, #53] ; 0x35 801192c: b2db uxtb r3, r3 801192e: 2b02 cmp r3, #2 8011930: d004 beq.n 801193c { hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; 8011932: 687b ldr r3, [r7, #4] 8011934: 2280 movs r2, #128 ; 0x80 8011936: 655a str r2, [r3, #84] ; 0x54 return HAL_ERROR; 8011938: 2301 movs r3, #1 801193a: e00c b.n 8011956 } else { /* Set Abort State */ hdma->State = HAL_DMA_STATE_ABORT; 801193c: 687b ldr r3, [r7, #4] 801193e: 2205 movs r2, #5 8011940: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Disable the stream */ __HAL_DMA_DISABLE(hdma); 8011944: 687b ldr r3, [r7, #4] 8011946: 681b ldr r3, [r3, #0] 8011948: 687a ldr r2, [r7, #4] 801194a: 6812 ldr r2, [r2, #0] 801194c: 6812 ldr r2, [r2, #0] 801194e: f022 0201 bic.w r2, r2, #1 8011952: 601a str r2, [r3, #0] } return HAL_OK; 8011954: 2300 movs r3, #0 } 8011956: 4618 mov r0, r3 8011958: 370c adds r7, #12 801195a: 46bd mov sp, r7 801195c: f85d 7b04 ldr.w r7, [sp], #4 8011960: 4770 bx lr ... 08011964 : * @param hdma pointer to a DMA_HandleTypeDef structure that contains * the configuration information for the specified DMA Stream. * @retval None */ void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma) { 8011964: b580 push {r7, lr} 8011966: b086 sub sp, #24 8011968: af00 add r7, sp, #0 801196a: 6078 str r0, [r7, #4] uint32_t tmpisr; __IO uint32_t count = 0; 801196c: 2300 movs r3, #0 801196e: 60bb str r3, [r7, #8] uint32_t timeout = SystemCoreClock / 9600; 8011970: 4b92 ldr r3, [pc, #584] ; (8011bbc ) 8011972: 681b ldr r3, [r3, #0] 8011974: 4a92 ldr r2, [pc, #584] ; (8011bc0 ) 8011976: fba2 2303 umull r2, r3, r2, r3 801197a: 0a9b lsrs r3, r3, #10 801197c: 617b str r3, [r7, #20] /* calculate DMA base and stream number */ DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress; 801197e: 687b ldr r3, [r7, #4] 8011980: 6d9b ldr r3, [r3, #88] ; 0x58 8011982: 613b str r3, [r7, #16] tmpisr = regs->ISR; 8011984: 693b ldr r3, [r7, #16] 8011986: 681b ldr r3, [r3, #0] 8011988: 60fb str r3, [r7, #12] /* Transfer Error Interrupt management ***************************************/ if ((tmpisr & (DMA_FLAG_TEIF0_4 << hdma->StreamIndex)) != RESET) 801198a: 687b ldr r3, [r7, #4] 801198c: 6ddb ldr r3, [r3, #92] ; 0x5c 801198e: 2208 movs r2, #8 8011990: 409a lsls r2, r3 8011992: 68fb ldr r3, [r7, #12] 8011994: 4013 ands r3, r2 8011996: 2b00 cmp r3, #0 8011998: d01a beq.n 80119d0 { if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TE) != RESET) 801199a: 687b ldr r3, [r7, #4] 801199c: 681b ldr r3, [r3, #0] 801199e: 681b ldr r3, [r3, #0] 80119a0: f003 0304 and.w r3, r3, #4 80119a4: 2b00 cmp r3, #0 80119a6: d013 beq.n 80119d0 { /* Disable the transfer error interrupt */ hdma->Instance->CR &= ~(DMA_IT_TE); 80119a8: 687b ldr r3, [r7, #4] 80119aa: 681b ldr r3, [r3, #0] 80119ac: 687a ldr r2, [r7, #4] 80119ae: 6812 ldr r2, [r2, #0] 80119b0: 6812 ldr r2, [r2, #0] 80119b2: f022 0204 bic.w r2, r2, #4 80119b6: 601a str r2, [r3, #0] /* Clear the transfer error flag */ regs->IFCR = DMA_FLAG_TEIF0_4 << hdma->StreamIndex; 80119b8: 687b ldr r3, [r7, #4] 80119ba: 6ddb ldr r3, [r3, #92] ; 0x5c 80119bc: 2208 movs r2, #8 80119be: 409a lsls r2, r3 80119c0: 693b ldr r3, [r7, #16] 80119c2: 609a str r2, [r3, #8] /* Update error code */ hdma->ErrorCode |= HAL_DMA_ERROR_TE; 80119c4: 687b ldr r3, [r7, #4] 80119c6: 6d5b ldr r3, [r3, #84] ; 0x54 80119c8: f043 0201 orr.w r2, r3, #1 80119cc: 687b ldr r3, [r7, #4] 80119ce: 655a str r2, [r3, #84] ; 0x54 } } /* FIFO Error Interrupt management ******************************************/ if ((tmpisr & (DMA_FLAG_FEIF0_4 << hdma->StreamIndex)) != RESET) 80119d0: 687b ldr r3, [r7, #4] 80119d2: 6ddb ldr r3, [r3, #92] ; 0x5c 80119d4: 2201 movs r2, #1 80119d6: 409a lsls r2, r3 80119d8: 68fb ldr r3, [r7, #12] 80119da: 4013 ands r3, r2 80119dc: 2b00 cmp r3, #0 80119de: d012 beq.n 8011a06 { if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_FE) != RESET) 80119e0: 687b ldr r3, [r7, #4] 80119e2: 681b ldr r3, [r3, #0] 80119e4: 695b ldr r3, [r3, #20] 80119e6: f003 0380 and.w r3, r3, #128 ; 0x80 80119ea: 2b00 cmp r3, #0 80119ec: d00b beq.n 8011a06 { /* Clear the FIFO error flag */ regs->IFCR = DMA_FLAG_FEIF0_4 << hdma->StreamIndex; 80119ee: 687b ldr r3, [r7, #4] 80119f0: 6ddb ldr r3, [r3, #92] ; 0x5c 80119f2: 2201 movs r2, #1 80119f4: 409a lsls r2, r3 80119f6: 693b ldr r3, [r7, #16] 80119f8: 609a str r2, [r3, #8] /* Update error code */ hdma->ErrorCode |= HAL_DMA_ERROR_FE; 80119fa: 687b ldr r3, [r7, #4] 80119fc: 6d5b ldr r3, [r3, #84] ; 0x54 80119fe: f043 0202 orr.w r2, r3, #2 8011a02: 687b ldr r3, [r7, #4] 8011a04: 655a str r2, [r3, #84] ; 0x54 } } /* Direct Mode Error Interrupt management ***********************************/ if ((tmpisr & (DMA_FLAG_DMEIF0_4 << hdma->StreamIndex)) != RESET) 8011a06: 687b ldr r3, [r7, #4] 8011a08: 6ddb ldr r3, [r3, #92] ; 0x5c 8011a0a: 2204 movs r2, #4 8011a0c: 409a lsls r2, r3 8011a0e: 68fb ldr r3, [r7, #12] 8011a10: 4013 ands r3, r2 8011a12: 2b00 cmp r3, #0 8011a14: d012 beq.n 8011a3c { if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_DME) != RESET) 8011a16: 687b ldr r3, [r7, #4] 8011a18: 681b ldr r3, [r3, #0] 8011a1a: 681b ldr r3, [r3, #0] 8011a1c: f003 0302 and.w r3, r3, #2 8011a20: 2b00 cmp r3, #0 8011a22: d00b beq.n 8011a3c { /* Clear the direct mode error flag */ regs->IFCR = DMA_FLAG_DMEIF0_4 << hdma->StreamIndex; 8011a24: 687b ldr r3, [r7, #4] 8011a26: 6ddb ldr r3, [r3, #92] ; 0x5c 8011a28: 2204 movs r2, #4 8011a2a: 409a lsls r2, r3 8011a2c: 693b ldr r3, [r7, #16] 8011a2e: 609a str r2, [r3, #8] /* Update error code */ hdma->ErrorCode |= HAL_DMA_ERROR_DME; 8011a30: 687b ldr r3, [r7, #4] 8011a32: 6d5b ldr r3, [r3, #84] ; 0x54 8011a34: f043 0204 orr.w r2, r3, #4 8011a38: 687b ldr r3, [r7, #4] 8011a3a: 655a str r2, [r3, #84] ; 0x54 } } /* Half Transfer Complete Interrupt management ******************************/ if ((tmpisr & (DMA_FLAG_HTIF0_4 << hdma->StreamIndex)) != RESET) 8011a3c: 687b ldr r3, [r7, #4] 8011a3e: 6ddb ldr r3, [r3, #92] ; 0x5c 8011a40: 2210 movs r2, #16 8011a42: 409a lsls r2, r3 8011a44: 68fb ldr r3, [r7, #12] 8011a46: 4013 ands r3, r2 8011a48: 2b00 cmp r3, #0 8011a4a: d043 beq.n 8011ad4 { if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_HT) != RESET) 8011a4c: 687b ldr r3, [r7, #4] 8011a4e: 681b ldr r3, [r3, #0] 8011a50: 681b ldr r3, [r3, #0] 8011a52: f003 0308 and.w r3, r3, #8 8011a56: 2b00 cmp r3, #0 8011a58: d03c beq.n 8011ad4 { /* Clear the half transfer complete flag */ regs->IFCR = DMA_FLAG_HTIF0_4 << hdma->StreamIndex; 8011a5a: 687b ldr r3, [r7, #4] 8011a5c: 6ddb ldr r3, [r3, #92] ; 0x5c 8011a5e: 2210 movs r2, #16 8011a60: 409a lsls r2, r3 8011a62: 693b ldr r3, [r7, #16] 8011a64: 609a str r2, [r3, #8] /* Multi_Buffering mode enabled */ if(((hdma->Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET) 8011a66: 687b ldr r3, [r7, #4] 8011a68: 681b ldr r3, [r3, #0] 8011a6a: 681b ldr r3, [r3, #0] 8011a6c: f403 2380 and.w r3, r3, #262144 ; 0x40000 8011a70: 2b00 cmp r3, #0 8011a72: d018 beq.n 8011aa6 { /* Current memory buffer used is Memory 0 */ if((hdma->Instance->CR & DMA_SxCR_CT) == RESET) 8011a74: 687b ldr r3, [r7, #4] 8011a76: 681b ldr r3, [r3, #0] 8011a78: 681b ldr r3, [r3, #0] 8011a7a: f403 2300 and.w r3, r3, #524288 ; 0x80000 8011a7e: 2b00 cmp r3, #0 8011a80: d108 bne.n 8011a94 { if(hdma->XferHalfCpltCallback != NULL) 8011a82: 687b ldr r3, [r7, #4] 8011a84: 6c1b ldr r3, [r3, #64] ; 0x40 8011a86: 2b00 cmp r3, #0 8011a88: d024 beq.n 8011ad4 { /* Half transfer callback */ hdma->XferHalfCpltCallback(hdma); 8011a8a: 687b ldr r3, [r7, #4] 8011a8c: 6c1b ldr r3, [r3, #64] ; 0x40 8011a8e: 6878 ldr r0, [r7, #4] 8011a90: 4798 blx r3 8011a92: e01f b.n 8011ad4 } } /* Current memory buffer used is Memory 1 */ else { if(hdma->XferM1HalfCpltCallback != NULL) 8011a94: 687b ldr r3, [r7, #4] 8011a96: 6c9b ldr r3, [r3, #72] ; 0x48 8011a98: 2b00 cmp r3, #0 8011a9a: d01b beq.n 8011ad4 { /* Half transfer callback */ hdma->XferM1HalfCpltCallback(hdma); 8011a9c: 687b ldr r3, [r7, #4] 8011a9e: 6c9b ldr r3, [r3, #72] ; 0x48 8011aa0: 6878 ldr r0, [r7, #4] 8011aa2: 4798 blx r3 8011aa4: e016 b.n 8011ad4 } } else { /* Disable the half transfer interrupt if the DMA mode is not CIRCULAR */ if((hdma->Instance->CR & DMA_SxCR_CIRC) == RESET) 8011aa6: 687b ldr r3, [r7, #4] 8011aa8: 681b ldr r3, [r3, #0] 8011aaa: 681b ldr r3, [r3, #0] 8011aac: f403 7380 and.w r3, r3, #256 ; 0x100 8011ab0: 2b00 cmp r3, #0 8011ab2: d107 bne.n 8011ac4 { /* Disable the half transfer interrupt */ hdma->Instance->CR &= ~(DMA_IT_HT); 8011ab4: 687b ldr r3, [r7, #4] 8011ab6: 681b ldr r3, [r3, #0] 8011ab8: 687a ldr r2, [r7, #4] 8011aba: 6812 ldr r2, [r2, #0] 8011abc: 6812 ldr r2, [r2, #0] 8011abe: f022 0208 bic.w r2, r2, #8 8011ac2: 601a str r2, [r3, #0] } if(hdma->XferHalfCpltCallback != NULL) 8011ac4: 687b ldr r3, [r7, #4] 8011ac6: 6c1b ldr r3, [r3, #64] ; 0x40 8011ac8: 2b00 cmp r3, #0 8011aca: d003 beq.n 8011ad4 { /* Half transfer callback */ hdma->XferHalfCpltCallback(hdma); 8011acc: 687b ldr r3, [r7, #4] 8011ace: 6c1b ldr r3, [r3, #64] ; 0x40 8011ad0: 6878 ldr r0, [r7, #4] 8011ad2: 4798 blx r3 } } } } /* Transfer Complete Interrupt management ***********************************/ if ((tmpisr & (DMA_FLAG_TCIF0_4 << hdma->StreamIndex)) != RESET) 8011ad4: 687b ldr r3, [r7, #4] 8011ad6: 6ddb ldr r3, [r3, #92] ; 0x5c 8011ad8: 2220 movs r2, #32 8011ada: 409a lsls r2, r3 8011adc: 68fb ldr r3, [r7, #12] 8011ade: 4013 ands r3, r2 8011ae0: 2b00 cmp r3, #0 8011ae2: f000 808e beq.w 8011c02 { if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TC) != RESET) 8011ae6: 687b ldr r3, [r7, #4] 8011ae8: 681b ldr r3, [r3, #0] 8011aea: 681b ldr r3, [r3, #0] 8011aec: f003 0310 and.w r3, r3, #16 8011af0: 2b00 cmp r3, #0 8011af2: f000 8086 beq.w 8011c02 { /* Clear the transfer complete flag */ regs->IFCR = DMA_FLAG_TCIF0_4 << hdma->StreamIndex; 8011af6: 687b ldr r3, [r7, #4] 8011af8: 6ddb ldr r3, [r3, #92] ; 0x5c 8011afa: 2220 movs r2, #32 8011afc: 409a lsls r2, r3 8011afe: 693b ldr r3, [r7, #16] 8011b00: 609a str r2, [r3, #8] if(HAL_DMA_STATE_ABORT == hdma->State) 8011b02: 687b ldr r3, [r7, #4] 8011b04: f893 3035 ldrb.w r3, [r3, #53] ; 0x35 8011b08: b2db uxtb r3, r3 8011b0a: 2b05 cmp r3, #5 8011b0c: d136 bne.n 8011b7c { /* Disable all the transfer interrupts */ hdma->Instance->CR &= ~(DMA_IT_TC | DMA_IT_TE | DMA_IT_DME); 8011b0e: 687b ldr r3, [r7, #4] 8011b10: 681b ldr r3, [r3, #0] 8011b12: 687a ldr r2, [r7, #4] 8011b14: 6812 ldr r2, [r2, #0] 8011b16: 6812 ldr r2, [r2, #0] 8011b18: f022 0216 bic.w r2, r2, #22 8011b1c: 601a str r2, [r3, #0] hdma->Instance->FCR &= ~(DMA_IT_FE); 8011b1e: 687b ldr r3, [r7, #4] 8011b20: 681b ldr r3, [r3, #0] 8011b22: 687a ldr r2, [r7, #4] 8011b24: 6812 ldr r2, [r2, #0] 8011b26: 6952 ldr r2, [r2, #20] 8011b28: f022 0280 bic.w r2, r2, #128 ; 0x80 8011b2c: 615a str r2, [r3, #20] if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL)) 8011b2e: 687b ldr r3, [r7, #4] 8011b30: 6c1b ldr r3, [r3, #64] ; 0x40 8011b32: 2b00 cmp r3, #0 8011b34: d103 bne.n 8011b3e 8011b36: 687b ldr r3, [r7, #4] 8011b38: 6c9b ldr r3, [r3, #72] ; 0x48 8011b3a: 2b00 cmp r3, #0 8011b3c: d007 beq.n 8011b4e { hdma->Instance->CR &= ~(DMA_IT_HT); 8011b3e: 687b ldr r3, [r7, #4] 8011b40: 681b ldr r3, [r3, #0] 8011b42: 687a ldr r2, [r7, #4] 8011b44: 6812 ldr r2, [r2, #0] 8011b46: 6812 ldr r2, [r2, #0] 8011b48: f022 0208 bic.w r2, r2, #8 8011b4c: 601a str r2, [r3, #0] } /* Clear all interrupt flags at correct offset within the register */ regs->IFCR = 0x3FU << hdma->StreamIndex; 8011b4e: 687b ldr r3, [r7, #4] 8011b50: 6ddb ldr r3, [r3, #92] ; 0x5c 8011b52: 223f movs r2, #63 ; 0x3f 8011b54: 409a lsls r2, r3 8011b56: 693b ldr r3, [r7, #16] 8011b58: 609a str r2, [r3, #8] /* Change the DMA state */ hdma->State = HAL_DMA_STATE_READY; 8011b5a: 687b ldr r3, [r7, #4] 8011b5c: 2201 movs r2, #1 8011b5e: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Process Unlocked */ __HAL_UNLOCK(hdma); 8011b62: 687b ldr r3, [r7, #4] 8011b64: 2200 movs r2, #0 8011b66: f883 2034 strb.w r2, [r3, #52] ; 0x34 if(hdma->XferAbortCallback != NULL) 8011b6a: 687b ldr r3, [r7, #4] 8011b6c: 6d1b ldr r3, [r3, #80] ; 0x50 8011b6e: 2b00 cmp r3, #0 8011b70: d07d beq.n 8011c6e { hdma->XferAbortCallback(hdma); 8011b72: 687b ldr r3, [r7, #4] 8011b74: 6d1b ldr r3, [r3, #80] ; 0x50 8011b76: 6878 ldr r0, [r7, #4] 8011b78: 4798 blx r3 } return; 8011b7a: e078 b.n 8011c6e } if(((hdma->Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET) 8011b7c: 687b ldr r3, [r7, #4] 8011b7e: 681b ldr r3, [r3, #0] 8011b80: 681b ldr r3, [r3, #0] 8011b82: f403 2380 and.w r3, r3, #262144 ; 0x40000 8011b86: 2b00 cmp r3, #0 8011b88: d01c beq.n 8011bc4 { /* Current memory buffer used is Memory 0 */ if((hdma->Instance->CR & DMA_SxCR_CT) == RESET) 8011b8a: 687b ldr r3, [r7, #4] 8011b8c: 681b ldr r3, [r3, #0] 8011b8e: 681b ldr r3, [r3, #0] 8011b90: f403 2300 and.w r3, r3, #524288 ; 0x80000 8011b94: 2b00 cmp r3, #0 8011b96: d108 bne.n 8011baa { if(hdma->XferM1CpltCallback != NULL) 8011b98: 687b ldr r3, [r7, #4] 8011b9a: 6c5b ldr r3, [r3, #68] ; 0x44 8011b9c: 2b00 cmp r3, #0 8011b9e: d030 beq.n 8011c02 { /* Transfer complete Callback for memory1 */ hdma->XferM1CpltCallback(hdma); 8011ba0: 687b ldr r3, [r7, #4] 8011ba2: 6c5b ldr r3, [r3, #68] ; 0x44 8011ba4: 6878 ldr r0, [r7, #4] 8011ba6: 4798 blx r3 8011ba8: e02b b.n 8011c02 } } /* Current memory buffer used is Memory 1 */ else { if(hdma->XferCpltCallback != NULL) 8011baa: 687b ldr r3, [r7, #4] 8011bac: 6bdb ldr r3, [r3, #60] ; 0x3c 8011bae: 2b00 cmp r3, #0 8011bb0: d027 beq.n 8011c02 { /* Transfer complete Callback for memory0 */ hdma->XferCpltCallback(hdma); 8011bb2: 687b ldr r3, [r7, #4] 8011bb4: 6bdb ldr r3, [r3, #60] ; 0x3c 8011bb6: 6878 ldr r0, [r7, #4] 8011bb8: 4798 blx r3 8011bba: e022 b.n 8011c02 8011bbc: 20020994 .word 0x20020994 8011bc0: 1b4e81b5 .word 0x1b4e81b5 } } /* Disable the transfer complete interrupt if the DMA mode is not CIRCULAR */ else { if((hdma->Instance->CR & DMA_SxCR_CIRC) == RESET) 8011bc4: 687b ldr r3, [r7, #4] 8011bc6: 681b ldr r3, [r3, #0] 8011bc8: 681b ldr r3, [r3, #0] 8011bca: f403 7380 and.w r3, r3, #256 ; 0x100 8011bce: 2b00 cmp r3, #0 8011bd0: d10f bne.n 8011bf2 { /* Disable the transfer complete interrupt */ hdma->Instance->CR &= ~(DMA_IT_TC); 8011bd2: 687b ldr r3, [r7, #4] 8011bd4: 681b ldr r3, [r3, #0] 8011bd6: 687a ldr r2, [r7, #4] 8011bd8: 6812 ldr r2, [r2, #0] 8011bda: 6812 ldr r2, [r2, #0] 8011bdc: f022 0210 bic.w r2, r2, #16 8011be0: 601a str r2, [r3, #0] /* Change the DMA state */ hdma->State = HAL_DMA_STATE_READY; 8011be2: 687b ldr r3, [r7, #4] 8011be4: 2201 movs r2, #1 8011be6: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Process Unlocked */ __HAL_UNLOCK(hdma); 8011bea: 687b ldr r3, [r7, #4] 8011bec: 2200 movs r2, #0 8011bee: f883 2034 strb.w r2, [r3, #52] ; 0x34 } if(hdma->XferCpltCallback != NULL) 8011bf2: 687b ldr r3, [r7, #4] 8011bf4: 6bdb ldr r3, [r3, #60] ; 0x3c 8011bf6: 2b00 cmp r3, #0 8011bf8: d003 beq.n 8011c02 { /* Transfer complete callback */ hdma->XferCpltCallback(hdma); 8011bfa: 687b ldr r3, [r7, #4] 8011bfc: 6bdb ldr r3, [r3, #60] ; 0x3c 8011bfe: 6878 ldr r0, [r7, #4] 8011c00: 4798 blx r3 } } } /* manage error case */ if(hdma->ErrorCode != HAL_DMA_ERROR_NONE) 8011c02: 687b ldr r3, [r7, #4] 8011c04: 6d5b ldr r3, [r3, #84] ; 0x54 8011c06: 2b00 cmp r3, #0 8011c08: d032 beq.n 8011c70 { if((hdma->ErrorCode & HAL_DMA_ERROR_TE) != RESET) 8011c0a: 687b ldr r3, [r7, #4] 8011c0c: 6d5b ldr r3, [r3, #84] ; 0x54 8011c0e: f003 0301 and.w r3, r3, #1 8011c12: 2b00 cmp r3, #0 8011c14: d022 beq.n 8011c5c { hdma->State = HAL_DMA_STATE_ABORT; 8011c16: 687b ldr r3, [r7, #4] 8011c18: 2205 movs r2, #5 8011c1a: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Disable the stream */ __HAL_DMA_DISABLE(hdma); 8011c1e: 687b ldr r3, [r7, #4] 8011c20: 681b ldr r3, [r3, #0] 8011c22: 687a ldr r2, [r7, #4] 8011c24: 6812 ldr r2, [r2, #0] 8011c26: 6812 ldr r2, [r2, #0] 8011c28: f022 0201 bic.w r2, r2, #1 8011c2c: 601a str r2, [r3, #0] do { if (++count > timeout) 8011c2e: 68bb ldr r3, [r7, #8] 8011c30: 3301 adds r3, #1 8011c32: 60bb str r3, [r7, #8] 8011c34: 697a ldr r2, [r7, #20] 8011c36: 4293 cmp r3, r2 8011c38: d807 bhi.n 8011c4a { break; } } while((hdma->Instance->CR & DMA_SxCR_EN) != RESET); 8011c3a: 687b ldr r3, [r7, #4] 8011c3c: 681b ldr r3, [r3, #0] 8011c3e: 681b ldr r3, [r3, #0] 8011c40: f003 0301 and.w r3, r3, #1 8011c44: 2b00 cmp r3, #0 8011c46: d1f2 bne.n 8011c2e 8011c48: e000 b.n 8011c4c break; 8011c4a: bf00 nop /* Change the DMA state */ hdma->State = HAL_DMA_STATE_READY; 8011c4c: 687b ldr r3, [r7, #4] 8011c4e: 2201 movs r2, #1 8011c50: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Process Unlocked */ __HAL_UNLOCK(hdma); 8011c54: 687b ldr r3, [r7, #4] 8011c56: 2200 movs r2, #0 8011c58: f883 2034 strb.w r2, [r3, #52] ; 0x34 } if(hdma->XferErrorCallback != NULL) 8011c5c: 687b ldr r3, [r7, #4] 8011c5e: 6cdb ldr r3, [r3, #76] ; 0x4c 8011c60: 2b00 cmp r3, #0 8011c62: d005 beq.n 8011c70 { /* Transfer error callback */ hdma->XferErrorCallback(hdma); 8011c64: 687b ldr r3, [r7, #4] 8011c66: 6cdb ldr r3, [r3, #76] ; 0x4c 8011c68: 6878 ldr r0, [r7, #4] 8011c6a: 4798 blx r3 8011c6c: e000 b.n 8011c70 return; 8011c6e: bf00 nop } } } 8011c70: 3718 adds r7, #24 8011c72: 46bd mov sp, r7 8011c74: bd80 pop {r7, pc} 8011c76: bf00 nop 08011c78 : * @param hdma2d pointer to a DMA2D_HandleTypeDef structure that contains * the configuration information for the DMA2D. * @retval HAL status */ HAL_StatusTypeDef HAL_DMA2D_Init(DMA2D_HandleTypeDef *hdma2d) { 8011c78: b580 push {r7, lr} 8011c7a: b082 sub sp, #8 8011c7c: af00 add r7, sp, #0 8011c7e: 6078 str r0, [r7, #4] /* Check the DMA2D peripheral state */ if (hdma2d == NULL) 8011c80: 687b ldr r3, [r7, #4] 8011c82: 2b00 cmp r3, #0 8011c84: d101 bne.n 8011c8a { return HAL_ERROR; 8011c86: 2301 movs r3, #1 8011c88: e049 b.n 8011d1e /* Init the low level hardware */ hdma2d->MspInitCallback(hdma2d); } #else if (hdma2d->State == HAL_DMA2D_STATE_RESET) 8011c8a: 687b ldr r3, [r7, #4] 8011c8c: f893 3051 ldrb.w r3, [r3, #81] ; 0x51 8011c90: b2db uxtb r3, r3 8011c92: 2b00 cmp r3, #0 8011c94: d106 bne.n 8011ca4 { /* Allocate lock resource and initialize it */ hdma2d->Lock = HAL_UNLOCKED; 8011c96: 687b ldr r3, [r7, #4] 8011c98: 2200 movs r2, #0 8011c9a: f883 2050 strb.w r2, [r3, #80] ; 0x50 /* Init the low level hardware */ HAL_DMA2D_MspInit(hdma2d); 8011c9e: 6878 ldr r0, [r7, #4] 8011ca0: f7ee fcc0 bl 8000624 } #endif /* (USE_HAL_DMA2D_REGISTER_CALLBACKS) */ /* Change DMA2D peripheral state */ hdma2d->State = HAL_DMA2D_STATE_BUSY; 8011ca4: 687b ldr r3, [r7, #4] 8011ca6: 2202 movs r2, #2 8011ca8: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* DMA2D CR register configuration -------------------------------------------*/ MODIFY_REG(hdma2d->Instance->CR, DMA2D_CR_MODE, hdma2d->Init.Mode); 8011cac: 687b ldr r3, [r7, #4] 8011cae: 681b ldr r3, [r3, #0] 8011cb0: 687a ldr r2, [r7, #4] 8011cb2: 6812 ldr r2, [r2, #0] 8011cb4: 6812 ldr r2, [r2, #0] 8011cb6: f422 3140 bic.w r1, r2, #196608 ; 0x30000 8011cba: 687a ldr r2, [r7, #4] 8011cbc: 6852 ldr r2, [r2, #4] 8011cbe: 430a orrs r2, r1 8011cc0: 601a str r2, [r3, #0] /* DMA2D OPFCCR register configuration ---------------------------------------*/ MODIFY_REG(hdma2d->Instance->OPFCCR, DMA2D_OPFCCR_CM, hdma2d->Init.ColorMode); 8011cc2: 687b ldr r3, [r7, #4] 8011cc4: 681b ldr r3, [r3, #0] 8011cc6: 687a ldr r2, [r7, #4] 8011cc8: 6812 ldr r2, [r2, #0] 8011cca: 6b52 ldr r2, [r2, #52] ; 0x34 8011ccc: f022 0107 bic.w r1, r2, #7 8011cd0: 687a ldr r2, [r7, #4] 8011cd2: 6892 ldr r2, [r2, #8] 8011cd4: 430a orrs r2, r1 8011cd6: 635a str r2, [r3, #52] ; 0x34 /* DMA2D OOR register configuration ------------------------------------------*/ MODIFY_REG(hdma2d->Instance->OOR, DMA2D_OOR_LO, hdma2d->Init.OutputOffset); 8011cd8: 687b ldr r3, [r7, #4] 8011cda: 681a ldr r2, [r3, #0] 8011cdc: 687b ldr r3, [r7, #4] 8011cde: 681b ldr r3, [r3, #0] 8011ce0: 6c19 ldr r1, [r3, #64] ; 0x40 8011ce2: 4b11 ldr r3, [pc, #68] ; (8011d28 ) 8011ce4: 400b ands r3, r1 8011ce6: 6879 ldr r1, [r7, #4] 8011ce8: 68c9 ldr r1, [r1, #12] 8011cea: 430b orrs r3, r1 8011cec: 6413 str r3, [r2, #64] ; 0x40 #if defined (DMA2D_ALPHA_INV_RB_SWAP_SUPPORT) /* DMA2D OPFCCR AI and RBS fields setting (Output Alpha Inversion)*/ MODIFY_REG(hdma2d->Instance->OPFCCR, (DMA2D_OPFCCR_AI | DMA2D_OPFCCR_RBS), 8011cee: 687b ldr r3, [r7, #4] 8011cf0: 681b ldr r3, [r3, #0] 8011cf2: 687a ldr r2, [r7, #4] 8011cf4: 6812 ldr r2, [r2, #0] 8011cf6: 6b52 ldr r2, [r2, #52] ; 0x34 8011cf8: f422 1140 bic.w r1, r2, #3145728 ; 0x300000 8011cfc: 687a ldr r2, [r7, #4] 8011cfe: 6912 ldr r2, [r2, #16] 8011d00: 0510 lsls r0, r2, #20 8011d02: 687a ldr r2, [r7, #4] 8011d04: 6952 ldr r2, [r2, #20] 8011d06: 0552 lsls r2, r2, #21 8011d08: 4302 orrs r2, r0 8011d0a: 430a orrs r2, r1 8011d0c: 635a str r2, [r3, #52] ; 0x34 (hdma2d->Init.RedBlueSwap << DMA2D_OPFCCR_RBS_Pos))); #endif /* DMA2D_ALPHA_INV_RB_SWAP_SUPPORT */ /* Update error code */ hdma2d->ErrorCode = HAL_DMA2D_ERROR_NONE; 8011d0e: 687b ldr r3, [r7, #4] 8011d10: 2200 movs r2, #0 8011d12: 655a str r2, [r3, #84] ; 0x54 /* Initialize the DMA2D state*/ hdma2d->State = HAL_DMA2D_STATE_READY; 8011d14: 687b ldr r3, [r7, #4] 8011d16: 2201 movs r2, #1 8011d18: f883 2051 strb.w r2, [r3, #81] ; 0x51 return HAL_OK; 8011d1c: 2300 movs r3, #0 } 8011d1e: 4618 mov r0, r3 8011d20: 3708 adds r7, #8 8011d22: 46bd mov sp, r7 8011d24: bd80 pop {r7, pc} 8011d26: bf00 nop 8011d28: ffffc000 .word 0xffffc000 08011d2c : * @param Height The height of data to be transferred from source to destination (expressed in number of lines). * @retval HAL status */ HAL_StatusTypeDef HAL_DMA2D_Start(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height) { 8011d2c: b580 push {r7, lr} 8011d2e: b086 sub sp, #24 8011d30: af02 add r7, sp, #8 8011d32: 60f8 str r0, [r7, #12] 8011d34: 60b9 str r1, [r7, #8] 8011d36: 607a str r2, [r7, #4] 8011d38: 603b str r3, [r7, #0] /* Check the parameters */ assert_param(IS_DMA2D_LINE(Height)); assert_param(IS_DMA2D_PIXEL(Width)); /* Process locked */ __HAL_LOCK(hdma2d); 8011d3a: 68fb ldr r3, [r7, #12] 8011d3c: f893 3050 ldrb.w r3, [r3, #80] ; 0x50 8011d40: 2b01 cmp r3, #1 8011d42: d101 bne.n 8011d48 8011d44: 2302 movs r3, #2 8011d46: e018 b.n 8011d7a 8011d48: 68fb ldr r3, [r7, #12] 8011d4a: 2201 movs r2, #1 8011d4c: f883 2050 strb.w r2, [r3, #80] ; 0x50 /* Change DMA2D peripheral state */ hdma2d->State = HAL_DMA2D_STATE_BUSY; 8011d50: 68fb ldr r3, [r7, #12] 8011d52: 2202 movs r2, #2 8011d54: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Configure the source, destination address and the data size */ DMA2D_SetConfig(hdma2d, pdata, DstAddress, Width, Height); 8011d58: 69bb ldr r3, [r7, #24] 8011d5a: 9300 str r3, [sp, #0] 8011d5c: 683b ldr r3, [r7, #0] 8011d5e: 687a ldr r2, [r7, #4] 8011d60: 68b9 ldr r1, [r7, #8] 8011d62: 68f8 ldr r0, [r7, #12] 8011d64: f000 f992 bl 801208c /* Enable the Peripheral */ __HAL_DMA2D_ENABLE(hdma2d); 8011d68: 68fb ldr r3, [r7, #12] 8011d6a: 681b ldr r3, [r3, #0] 8011d6c: 68fa ldr r2, [r7, #12] 8011d6e: 6812 ldr r2, [r2, #0] 8011d70: 6812 ldr r2, [r2, #0] 8011d72: f042 0201 orr.w r2, r2, #1 8011d76: 601a str r2, [r3, #0] return HAL_OK; 8011d78: 2300 movs r3, #0 } 8011d7a: 4618 mov r0, r3 8011d7c: 3710 adds r7, #16 8011d7e: 46bd mov sp, r7 8011d80: bd80 pop {r7, pc} 08011d82 : * the configuration information for the DMA2D. * @param Timeout Timeout duration * @retval HAL status */ HAL_StatusTypeDef HAL_DMA2D_PollForTransfer(DMA2D_HandleTypeDef *hdma2d, uint32_t Timeout) { 8011d82: b580 push {r7, lr} 8011d84: b086 sub sp, #24 8011d86: af00 add r7, sp, #0 8011d88: 6078 str r0, [r7, #4] 8011d8a: 6039 str r1, [r7, #0] uint32_t tickstart; uint32_t layer_start; __IO uint32_t isrflags = 0x0U; 8011d8c: 2300 movs r3, #0 8011d8e: 60fb str r3, [r7, #12] /* Polling for DMA2D transfer */ if ((hdma2d->Instance->CR & DMA2D_CR_START) != 0U) 8011d90: 687b ldr r3, [r7, #4] 8011d92: 681b ldr r3, [r3, #0] 8011d94: 681b ldr r3, [r3, #0] 8011d96: f003 0301 and.w r3, r3, #1 8011d9a: 2b00 cmp r3, #0 8011d9c: d056 beq.n 8011e4c { /* Get tick */ tickstart = HAL_GetTick(); 8011d9e: f7ff fbe1 bl 8011564 8011da2: 6178 str r0, [r7, #20] while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_TC) == 0U) 8011da4: e04b b.n 8011e3e { isrflags = READ_REG(hdma2d->Instance->ISR); 8011da6: 687b ldr r3, [r7, #4] 8011da8: 681b ldr r3, [r3, #0] 8011daa: 685b ldr r3, [r3, #4] 8011dac: 60fb str r3, [r7, #12] if ((isrflags & (DMA2D_FLAG_CE | DMA2D_FLAG_TE)) != 0U) 8011dae: 68fb ldr r3, [r7, #12] 8011db0: f003 0321 and.w r3, r3, #33 ; 0x21 8011db4: 2b00 cmp r3, #0 8011db6: d023 beq.n 8011e00 { if ((isrflags & DMA2D_FLAG_CE) != 0U) 8011db8: 68fb ldr r3, [r7, #12] 8011dba: f003 0320 and.w r3, r3, #32 8011dbe: 2b00 cmp r3, #0 8011dc0: d005 beq.n 8011dce { hdma2d->ErrorCode |= HAL_DMA2D_ERROR_CE; 8011dc2: 687b ldr r3, [r7, #4] 8011dc4: 6d5b ldr r3, [r3, #84] ; 0x54 8011dc6: f043 0202 orr.w r2, r3, #2 8011dca: 687b ldr r3, [r7, #4] 8011dcc: 655a str r2, [r3, #84] ; 0x54 } if ((isrflags & DMA2D_FLAG_TE) != 0U) 8011dce: 68fb ldr r3, [r7, #12] 8011dd0: f003 0301 and.w r3, r3, #1 8011dd4: 2b00 cmp r3, #0 8011dd6: d005 beq.n 8011de4 { hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TE; 8011dd8: 687b ldr r3, [r7, #4] 8011dda: 6d5b ldr r3, [r3, #84] ; 0x54 8011ddc: f043 0201 orr.w r2, r3, #1 8011de0: 687b ldr r3, [r7, #4] 8011de2: 655a str r2, [r3, #84] ; 0x54 } /* Clear the transfer and configuration error flags */ __HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_CE | DMA2D_FLAG_TE); 8011de4: 687b ldr r3, [r7, #4] 8011de6: 681b ldr r3, [r3, #0] 8011de8: 2221 movs r2, #33 ; 0x21 8011dea: 609a str r2, [r3, #8] /* Change DMA2D state */ hdma2d->State = HAL_DMA2D_STATE_ERROR; 8011dec: 687b ldr r3, [r7, #4] 8011dee: 2204 movs r2, #4 8011df0: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Process unlocked */ __HAL_UNLOCK(hdma2d); 8011df4: 687b ldr r3, [r7, #4] 8011df6: 2200 movs r2, #0 8011df8: f883 2050 strb.w r2, [r3, #80] ; 0x50 return HAL_ERROR; 8011dfc: 2301 movs r3, #1 8011dfe: e0a5 b.n 8011f4c } /* Check for the Timeout */ if (Timeout != HAL_MAX_DELAY) 8011e00: 683b ldr r3, [r7, #0] 8011e02: f1b3 3fff cmp.w r3, #4294967295 8011e06: d01a beq.n 8011e3e { if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 8011e08: f7ff fbac bl 8011564 8011e0c: 4602 mov r2, r0 8011e0e: 697b ldr r3, [r7, #20] 8011e10: 1ad2 subs r2, r2, r3 8011e12: 683b ldr r3, [r7, #0] 8011e14: 429a cmp r2, r3 8011e16: d802 bhi.n 8011e1e 8011e18: 683b ldr r3, [r7, #0] 8011e1a: 2b00 cmp r3, #0 8011e1c: d10f bne.n 8011e3e { /* Update error code */ hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TIMEOUT; 8011e1e: 687b ldr r3, [r7, #4] 8011e20: 6d5b ldr r3, [r3, #84] ; 0x54 8011e22: f043 0220 orr.w r2, r3, #32 8011e26: 687b ldr r3, [r7, #4] 8011e28: 655a str r2, [r3, #84] ; 0x54 /* Change the DMA2D state */ hdma2d->State = HAL_DMA2D_STATE_TIMEOUT; 8011e2a: 687b ldr r3, [r7, #4] 8011e2c: 2203 movs r2, #3 8011e2e: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Process unlocked */ __HAL_UNLOCK(hdma2d); 8011e32: 687b ldr r3, [r7, #4] 8011e34: 2200 movs r2, #0 8011e36: f883 2050 strb.w r2, [r3, #80] ; 0x50 return HAL_TIMEOUT; 8011e3a: 2303 movs r3, #3 8011e3c: e086 b.n 8011f4c while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_TC) == 0U) 8011e3e: 687b ldr r3, [r7, #4] 8011e40: 681b ldr r3, [r3, #0] 8011e42: 685b ldr r3, [r3, #4] 8011e44: f003 0302 and.w r3, r3, #2 8011e48: 2b00 cmp r3, #0 8011e4a: d0ac beq.n 8011da6 } } } } /* Polling for CLUT loading (foreground or background) */ layer_start = hdma2d->Instance->FGPFCCR & DMA2D_FGPFCCR_START; 8011e4c: 687b ldr r3, [r7, #4] 8011e4e: 681b ldr r3, [r3, #0] 8011e50: 69db ldr r3, [r3, #28] 8011e52: f003 0320 and.w r3, r3, #32 8011e56: 613b str r3, [r7, #16] layer_start |= hdma2d->Instance->BGPFCCR & DMA2D_BGPFCCR_START; 8011e58: 687b ldr r3, [r7, #4] 8011e5a: 681b ldr r3, [r3, #0] 8011e5c: 6a5b ldr r3, [r3, #36] ; 0x24 8011e5e: f003 0320 and.w r3, r3, #32 8011e62: 693a ldr r2, [r7, #16] 8011e64: 4313 orrs r3, r2 8011e66: 613b str r3, [r7, #16] if (layer_start != 0U) 8011e68: 693b ldr r3, [r7, #16] 8011e6a: 2b00 cmp r3, #0 8011e6c: d061 beq.n 8011f32 { /* Get tick */ tickstart = HAL_GetTick(); 8011e6e: f7ff fb79 bl 8011564 8011e72: 6178 str r0, [r7, #20] while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_CTC) == 0U) 8011e74: e056 b.n 8011f24 { isrflags = READ_REG(hdma2d->Instance->ISR); 8011e76: 687b ldr r3, [r7, #4] 8011e78: 681b ldr r3, [r3, #0] 8011e7a: 685b ldr r3, [r3, #4] 8011e7c: 60fb str r3, [r7, #12] if ((isrflags & (DMA2D_FLAG_CAE | DMA2D_FLAG_CE | DMA2D_FLAG_TE)) != 0U) 8011e7e: 68fb ldr r3, [r7, #12] 8011e80: f003 0329 and.w r3, r3, #41 ; 0x29 8011e84: 2b00 cmp r3, #0 8011e86: d02e beq.n 8011ee6 { if ((isrflags & DMA2D_FLAG_CAE) != 0U) 8011e88: 68fb ldr r3, [r7, #12] 8011e8a: f003 0308 and.w r3, r3, #8 8011e8e: 2b00 cmp r3, #0 8011e90: d005 beq.n 8011e9e { hdma2d->ErrorCode |= HAL_DMA2D_ERROR_CAE; 8011e92: 687b ldr r3, [r7, #4] 8011e94: 6d5b ldr r3, [r3, #84] ; 0x54 8011e96: f043 0204 orr.w r2, r3, #4 8011e9a: 687b ldr r3, [r7, #4] 8011e9c: 655a str r2, [r3, #84] ; 0x54 } if ((isrflags & DMA2D_FLAG_CE) != 0U) 8011e9e: 68fb ldr r3, [r7, #12] 8011ea0: f003 0320 and.w r3, r3, #32 8011ea4: 2b00 cmp r3, #0 8011ea6: d005 beq.n 8011eb4 { hdma2d->ErrorCode |= HAL_DMA2D_ERROR_CE; 8011ea8: 687b ldr r3, [r7, #4] 8011eaa: 6d5b ldr r3, [r3, #84] ; 0x54 8011eac: f043 0202 orr.w r2, r3, #2 8011eb0: 687b ldr r3, [r7, #4] 8011eb2: 655a str r2, [r3, #84] ; 0x54 } if ((isrflags & DMA2D_FLAG_TE) != 0U) 8011eb4: 68fb ldr r3, [r7, #12] 8011eb6: f003 0301 and.w r3, r3, #1 8011eba: 2b00 cmp r3, #0 8011ebc: d005 beq.n 8011eca { hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TE; 8011ebe: 687b ldr r3, [r7, #4] 8011ec0: 6d5b ldr r3, [r3, #84] ; 0x54 8011ec2: f043 0201 orr.w r2, r3, #1 8011ec6: 687b ldr r3, [r7, #4] 8011ec8: 655a str r2, [r3, #84] ; 0x54 } /* Clear the CLUT Access Error, Configuration Error and Transfer Error flags */ __HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_CAE | DMA2D_FLAG_CE | DMA2D_FLAG_TE); 8011eca: 687b ldr r3, [r7, #4] 8011ecc: 681b ldr r3, [r3, #0] 8011ece: 2229 movs r2, #41 ; 0x29 8011ed0: 609a str r2, [r3, #8] /* Change DMA2D state */ hdma2d->State = HAL_DMA2D_STATE_ERROR; 8011ed2: 687b ldr r3, [r7, #4] 8011ed4: 2204 movs r2, #4 8011ed6: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Process unlocked */ __HAL_UNLOCK(hdma2d); 8011eda: 687b ldr r3, [r7, #4] 8011edc: 2200 movs r2, #0 8011ede: f883 2050 strb.w r2, [r3, #80] ; 0x50 return HAL_ERROR; 8011ee2: 2301 movs r3, #1 8011ee4: e032 b.n 8011f4c } /* Check for the Timeout */ if (Timeout != HAL_MAX_DELAY) 8011ee6: 683b ldr r3, [r7, #0] 8011ee8: f1b3 3fff cmp.w r3, #4294967295 8011eec: d01a beq.n 8011f24 { if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 8011eee: f7ff fb39 bl 8011564 8011ef2: 4602 mov r2, r0 8011ef4: 697b ldr r3, [r7, #20] 8011ef6: 1ad2 subs r2, r2, r3 8011ef8: 683b ldr r3, [r7, #0] 8011efa: 429a cmp r2, r3 8011efc: d802 bhi.n 8011f04 8011efe: 683b ldr r3, [r7, #0] 8011f00: 2b00 cmp r3, #0 8011f02: d10f bne.n 8011f24 { /* Update error code */ hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TIMEOUT; 8011f04: 687b ldr r3, [r7, #4] 8011f06: 6d5b ldr r3, [r3, #84] ; 0x54 8011f08: f043 0220 orr.w r2, r3, #32 8011f0c: 687b ldr r3, [r7, #4] 8011f0e: 655a str r2, [r3, #84] ; 0x54 /* Change the DMA2D state */ hdma2d->State = HAL_DMA2D_STATE_TIMEOUT; 8011f10: 687b ldr r3, [r7, #4] 8011f12: 2203 movs r2, #3 8011f14: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Process unlocked */ __HAL_UNLOCK(hdma2d); 8011f18: 687b ldr r3, [r7, #4] 8011f1a: 2200 movs r2, #0 8011f1c: f883 2050 strb.w r2, [r3, #80] ; 0x50 return HAL_TIMEOUT; 8011f20: 2303 movs r3, #3 8011f22: e013 b.n 8011f4c while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_CTC) == 0U) 8011f24: 687b ldr r3, [r7, #4] 8011f26: 681b ldr r3, [r3, #0] 8011f28: 685b ldr r3, [r3, #4] 8011f2a: f003 0310 and.w r3, r3, #16 8011f2e: 2b00 cmp r3, #0 8011f30: d0a1 beq.n 8011e76 } } } /* Clear the transfer complete and CLUT loading flags */ __HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_TC | DMA2D_FLAG_CTC); 8011f32: 687b ldr r3, [r7, #4] 8011f34: 681b ldr r3, [r3, #0] 8011f36: 2212 movs r2, #18 8011f38: 609a str r2, [r3, #8] /* Change DMA2D state */ hdma2d->State = HAL_DMA2D_STATE_READY; 8011f3a: 687b ldr r3, [r7, #4] 8011f3c: 2201 movs r2, #1 8011f3e: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Process unlocked */ __HAL_UNLOCK(hdma2d); 8011f42: 687b ldr r3, [r7, #4] 8011f44: 2200 movs r2, #0 8011f46: f883 2050 strb.w r2, [r3, #80] ; 0x50 return HAL_OK; 8011f4a: 2300 movs r3, #0 } 8011f4c: 4618 mov r0, r3 8011f4e: 3718 adds r7, #24 8011f50: 46bd mov sp, r7 8011f52: bd80 pop {r7, pc} 08011f54 : * This parameter can be one of the following values: * DMA2D_BACKGROUND_LAYER(0) / DMA2D_FOREGROUND_LAYER(1) * @retval HAL status */ HAL_StatusTypeDef HAL_DMA2D_ConfigLayer(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx) { 8011f54: b480 push {r7} 8011f56: b087 sub sp, #28 8011f58: af00 add r7, sp, #0 8011f5a: 6078 str r0, [r7, #4] 8011f5c: 6039 str r1, [r7, #0] uint32_t regValue; /* Check the parameters */ assert_param(IS_DMA2D_LAYER(LayerIdx)); assert_param(IS_DMA2D_OFFSET(hdma2d->LayerCfg[LayerIdx].InputOffset)); if (hdma2d->Init.Mode != DMA2D_R2M) 8011f5e: 687b ldr r3, [r7, #4] 8011f60: 685b ldr r3, [r3, #4] 8011f62: f5b3 3f40 cmp.w r3, #196608 ; 0x30000 assert_param(IS_DMA2D_ALPHA_INVERTED(hdma2d->LayerCfg[LayerIdx].AlphaInverted)); assert_param(IS_DMA2D_RB_SWAP(hdma2d->LayerCfg[LayerIdx].RedBlueSwap)); #endif /* DMA2D_ALPHA_INV_RB_SWAP_SUPPORT */ /* Process locked */ __HAL_LOCK(hdma2d); 8011f66: 687b ldr r3, [r7, #4] 8011f68: f893 3050 ldrb.w r3, [r3, #80] ; 0x50 8011f6c: 2b01 cmp r3, #1 8011f6e: d101 bne.n 8011f74 8011f70: 2302 movs r3, #2 8011f72: e082 b.n 801207a 8011f74: 687b ldr r3, [r7, #4] 8011f76: 2201 movs r2, #1 8011f78: f883 2050 strb.w r2, [r3, #80] ; 0x50 /* Change DMA2D peripheral state */ hdma2d->State = HAL_DMA2D_STATE_BUSY; 8011f7c: 687b ldr r3, [r7, #4] 8011f7e: 2202 movs r2, #2 8011f80: f883 2051 strb.w r2, [r3, #81] ; 0x51 pLayerCfg = &hdma2d->LayerCfg[LayerIdx]; 8011f84: 683a ldr r2, [r7, #0] 8011f86: 4613 mov r3, r2 8011f88: 005b lsls r3, r3, #1 8011f8a: 4413 add r3, r2 8011f8c: 00db lsls r3, r3, #3 8011f8e: 3320 adds r3, #32 8011f90: 687a ldr r2, [r7, #4] 8011f92: 4413 add r3, r2 8011f94: 613b str r3, [r7, #16] /* Prepare the value to be written to the BGPFCCR or FGPFCCR register */ #if defined (DMA2D_ALPHA_INV_RB_SWAP_SUPPORT) regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos) | \ 8011f96: 693b ldr r3, [r7, #16] 8011f98: 685a ldr r2, [r3, #4] 8011f9a: 693b ldr r3, [r7, #16] 8011f9c: 689b ldr r3, [r3, #8] 8011f9e: 041b lsls r3, r3, #16 8011fa0: 431a orrs r2, r3 (pLayerCfg->AlphaInverted << DMA2D_BGPFCCR_AI_Pos) | (pLayerCfg->RedBlueSwap << DMA2D_BGPFCCR_RBS_Pos); 8011fa2: 693b ldr r3, [r7, #16] 8011fa4: 691b ldr r3, [r3, #16] 8011fa6: 051b lsls r3, r3, #20 regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos) | \ 8011fa8: 431a orrs r2, r3 (pLayerCfg->AlphaInverted << DMA2D_BGPFCCR_AI_Pos) | (pLayerCfg->RedBlueSwap << DMA2D_BGPFCCR_RBS_Pos); 8011faa: 693b ldr r3, [r7, #16] 8011fac: 695b ldr r3, [r3, #20] 8011fae: 055b lsls r3, r3, #21 regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos) | \ 8011fb0: 4313 orrs r3, r2 8011fb2: 617b str r3, [r7, #20] regMask = (DMA2D_BGPFCCR_CM | DMA2D_BGPFCCR_AM | DMA2D_BGPFCCR_ALPHA | DMA2D_BGPFCCR_AI | DMA2D_BGPFCCR_RBS); 8011fb4: 4b34 ldr r3, [pc, #208] ; (8012088 ) 8011fb6: 60fb str r3, [r7, #12] regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos); regMask = DMA2D_BGPFCCR_CM | DMA2D_BGPFCCR_AM | DMA2D_BGPFCCR_ALPHA; #endif /* DMA2D_ALPHA_INV_RB_SWAP_SUPPORT */ if ((pLayerCfg->InputColorMode == DMA2D_INPUT_A4) || (pLayerCfg->InputColorMode == DMA2D_INPUT_A8)) 8011fb8: 693b ldr r3, [r7, #16] 8011fba: 685b ldr r3, [r3, #4] 8011fbc: 2b0a cmp r3, #10 8011fbe: d003 beq.n 8011fc8 8011fc0: 693b ldr r3, [r7, #16] 8011fc2: 685b ldr r3, [r3, #4] 8011fc4: 2b09 cmp r3, #9 8011fc6: d107 bne.n 8011fd8 { regValue |= (pLayerCfg->InputAlpha & DMA2D_BGPFCCR_ALPHA); 8011fc8: 693b ldr r3, [r7, #16] 8011fca: 68db ldr r3, [r3, #12] 8011fcc: f003 437f and.w r3, r3, #4278190080 ; 0xff000000 8011fd0: 697a ldr r2, [r7, #20] 8011fd2: 4313 orrs r3, r2 8011fd4: 617b str r3, [r7, #20] 8011fd6: e005 b.n 8011fe4 } else { regValue |= (pLayerCfg->InputAlpha << DMA2D_BGPFCCR_ALPHA_Pos); 8011fd8: 693b ldr r3, [r7, #16] 8011fda: 68db ldr r3, [r3, #12] 8011fdc: 061b lsls r3, r3, #24 8011fde: 697a ldr r2, [r7, #20] 8011fe0: 4313 orrs r3, r2 8011fe2: 617b str r3, [r7, #20] } /* Configure the background DMA2D layer */ if (LayerIdx == DMA2D_BACKGROUND_LAYER) 8011fe4: 683b ldr r3, [r7, #0] 8011fe6: 2b00 cmp r3, #0 8011fe8: d11f bne.n 801202a { /* Write DMA2D BGPFCCR register */ MODIFY_REG(hdma2d->Instance->BGPFCCR, regMask, regValue); 8011fea: 687b ldr r3, [r7, #4] 8011fec: 681b ldr r3, [r3, #0] 8011fee: 687a ldr r2, [r7, #4] 8011ff0: 6812 ldr r2, [r2, #0] 8011ff2: 6a51 ldr r1, [r2, #36] ; 0x24 8011ff4: 68fa ldr r2, [r7, #12] 8011ff6: 43d2 mvns r2, r2 8011ff8: 4011 ands r1, r2 8011ffa: 697a ldr r2, [r7, #20] 8011ffc: 430a orrs r2, r1 8011ffe: 625a str r2, [r3, #36] ; 0x24 /* DMA2D BGOR register configuration -------------------------------------*/ WRITE_REG(hdma2d->Instance->BGOR, pLayerCfg->InputOffset); 8012000: 687b ldr r3, [r7, #4] 8012002: 681b ldr r3, [r3, #0] 8012004: 693a ldr r2, [r7, #16] 8012006: 6812 ldr r2, [r2, #0] 8012008: 619a str r2, [r3, #24] /* DMA2D BGCOLR register configuration -------------------------------------*/ if ((pLayerCfg->InputColorMode == DMA2D_INPUT_A4) || (pLayerCfg->InputColorMode == DMA2D_INPUT_A8)) 801200a: 693b ldr r3, [r7, #16] 801200c: 685b ldr r3, [r3, #4] 801200e: 2b0a cmp r3, #10 8012010: d003 beq.n 801201a 8012012: 693b ldr r3, [r7, #16] 8012014: 685b ldr r3, [r3, #4] 8012016: 2b09 cmp r3, #9 8012018: d126 bne.n 8012068 { WRITE_REG(hdma2d->Instance->BGCOLR, pLayerCfg->InputAlpha & (DMA2D_BGCOLR_BLUE | DMA2D_BGCOLR_GREEN | \ 801201a: 687b ldr r3, [r7, #4] 801201c: 681b ldr r3, [r3, #0] 801201e: 693a ldr r2, [r7, #16] 8012020: 68d2 ldr r2, [r2, #12] 8012022: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000 8012026: 629a str r2, [r3, #40] ; 0x28 8012028: e01e b.n 8012068 else { /* Write DMA2D FGPFCCR register */ MODIFY_REG(hdma2d->Instance->FGPFCCR, regMask, regValue); 801202a: 687b ldr r3, [r7, #4] 801202c: 681b ldr r3, [r3, #0] 801202e: 687a ldr r2, [r7, #4] 8012030: 6812 ldr r2, [r2, #0] 8012032: 69d1 ldr r1, [r2, #28] 8012034: 68fa ldr r2, [r7, #12] 8012036: 43d2 mvns r2, r2 8012038: 4011 ands r1, r2 801203a: 697a ldr r2, [r7, #20] 801203c: 430a orrs r2, r1 801203e: 61da str r2, [r3, #28] /* DMA2D FGOR register configuration -------------------------------------*/ WRITE_REG(hdma2d->Instance->FGOR, pLayerCfg->InputOffset); 8012040: 687b ldr r3, [r7, #4] 8012042: 681b ldr r3, [r3, #0] 8012044: 693a ldr r2, [r7, #16] 8012046: 6812 ldr r2, [r2, #0] 8012048: 611a str r2, [r3, #16] /* DMA2D FGCOLR register configuration -------------------------------------*/ if ((pLayerCfg->InputColorMode == DMA2D_INPUT_A4) || (pLayerCfg->InputColorMode == DMA2D_INPUT_A8)) 801204a: 693b ldr r3, [r7, #16] 801204c: 685b ldr r3, [r3, #4] 801204e: 2b0a cmp r3, #10 8012050: d003 beq.n 801205a 8012052: 693b ldr r3, [r7, #16] 8012054: 685b ldr r3, [r3, #4] 8012056: 2b09 cmp r3, #9 8012058: d106 bne.n 8012068 { WRITE_REG(hdma2d->Instance->FGCOLR, pLayerCfg->InputAlpha & (DMA2D_FGCOLR_BLUE | DMA2D_FGCOLR_GREEN | \ 801205a: 687b ldr r3, [r7, #4] 801205c: 681b ldr r3, [r3, #0] 801205e: 693a ldr r2, [r7, #16] 8012060: 68d2 ldr r2, [r2, #12] 8012062: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000 8012066: 621a str r2, [r3, #32] DMA2D_FGCOLR_RED)); } } /* Initialize the DMA2D state*/ hdma2d->State = HAL_DMA2D_STATE_READY; 8012068: 687b ldr r3, [r7, #4] 801206a: 2201 movs r2, #1 801206c: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Process unlocked */ __HAL_UNLOCK(hdma2d); 8012070: 687b ldr r3, [r7, #4] 8012072: 2200 movs r2, #0 8012074: f883 2050 strb.w r2, [r3, #80] ; 0x50 return HAL_OK; 8012078: 2300 movs r3, #0 } 801207a: 4618 mov r0, r3 801207c: 371c adds r7, #28 801207e: 46bd mov sp, r7 8012080: f85d 7b04 ldr.w r7, [sp], #4 8012084: 4770 bx lr 8012086: bf00 nop 8012088: ff33000f .word 0xff33000f 0801208c : * @param Height The height of data to be transferred from source to destination. * @retval HAL status */ static void DMA2D_SetConfig(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height) { 801208c: b480 push {r7} 801208e: b08b sub sp, #44 ; 0x2c 8012090: af00 add r7, sp, #0 8012092: 60f8 str r0, [r7, #12] 8012094: 60b9 str r1, [r7, #8] 8012096: 607a str r2, [r7, #4] 8012098: 603b str r3, [r7, #0] uint32_t tmp2; uint32_t tmp3; uint32_t tmp4; /* Configure DMA2D data size */ MODIFY_REG(hdma2d->Instance->NLR, (DMA2D_NLR_NL | DMA2D_NLR_PL), (Height | (Width << DMA2D_NLR_PL_Pos))); 801209a: 68fb ldr r3, [r7, #12] 801209c: 681b ldr r3, [r3, #0] 801209e: 68fa ldr r2, [r7, #12] 80120a0: 6812 ldr r2, [r2, #0] 80120a2: 6c52 ldr r2, [r2, #68] ; 0x44 80120a4: f002 4140 and.w r1, r2, #3221225472 ; 0xc0000000 80120a8: 683a ldr r2, [r7, #0] 80120aa: 0410 lsls r0, r2, #16 80120ac: 6b3a ldr r2, [r7, #48] ; 0x30 80120ae: 4302 orrs r2, r0 80120b0: 430a orrs r2, r1 80120b2: 645a str r2, [r3, #68] ; 0x44 /* Configure DMA2D destination address */ WRITE_REG(hdma2d->Instance->OMAR, DstAddress); 80120b4: 68fb ldr r3, [r7, #12] 80120b6: 681b ldr r3, [r3, #0] 80120b8: 687a ldr r2, [r7, #4] 80120ba: 63da str r2, [r3, #60] ; 0x3c /* Register to memory DMA2D mode selected */ if (hdma2d->Init.Mode == DMA2D_R2M) 80120bc: 68fb ldr r3, [r7, #12] 80120be: 685b ldr r3, [r3, #4] 80120c0: f5b3 3f40 cmp.w r3, #196608 ; 0x30000 80120c4: d174 bne.n 80121b0 { tmp1 = pdata & DMA2D_OCOLR_ALPHA_1; 80120c6: 68bb ldr r3, [r7, #8] 80120c8: f003 437f and.w r3, r3, #4278190080 ; 0xff000000 80120cc: 623b str r3, [r7, #32] tmp2 = pdata & DMA2D_OCOLR_RED_1; 80120ce: 68bb ldr r3, [r7, #8] 80120d0: f403 037f and.w r3, r3, #16711680 ; 0xff0000 80120d4: 61fb str r3, [r7, #28] tmp3 = pdata & DMA2D_OCOLR_GREEN_1; 80120d6: 68bb ldr r3, [r7, #8] 80120d8: f403 437f and.w r3, r3, #65280 ; 0xff00 80120dc: 61bb str r3, [r7, #24] tmp4 = pdata & DMA2D_OCOLR_BLUE_1; 80120de: 68bb ldr r3, [r7, #8] 80120e0: b2db uxtb r3, r3 80120e2: 617b str r3, [r7, #20] /* Prepare the value to be written to the OCOLR register according to the color mode */ if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_ARGB8888) 80120e4: 68fb ldr r3, [r7, #12] 80120e6: 689b ldr r3, [r3, #8] 80120e8: 2b00 cmp r3, #0 80120ea: d108 bne.n 80120fe { tmp = (tmp3 | tmp2 | tmp1 | tmp4); 80120ec: 69ba ldr r2, [r7, #24] 80120ee: 69fb ldr r3, [r7, #28] 80120f0: 431a orrs r2, r3 80120f2: 6a3b ldr r3, [r7, #32] 80120f4: 431a orrs r2, r3 80120f6: 697b ldr r3, [r7, #20] 80120f8: 4313 orrs r3, r2 80120fa: 627b str r3, [r7, #36] ; 0x24 80120fc: e053 b.n 80121a6 } else if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_RGB888) 80120fe: 68fb ldr r3, [r7, #12] 8012100: 689b ldr r3, [r3, #8] 8012102: 2b01 cmp r3, #1 8012104: d106 bne.n 8012114 { tmp = (tmp3 | tmp2 | tmp4); 8012106: 69ba ldr r2, [r7, #24] 8012108: 69fb ldr r3, [r7, #28] 801210a: 431a orrs r2, r3 801210c: 697b ldr r3, [r7, #20] 801210e: 4313 orrs r3, r2 8012110: 627b str r3, [r7, #36] ; 0x24 8012112: e048 b.n 80121a6 } else if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_RGB565) 8012114: 68fb ldr r3, [r7, #12] 8012116: 689b ldr r3, [r3, #8] 8012118: 2b02 cmp r3, #2 801211a: d111 bne.n 8012140 { tmp2 = (tmp2 >> 19U); 801211c: 69fb ldr r3, [r7, #28] 801211e: 0cdb lsrs r3, r3, #19 8012120: 61fb str r3, [r7, #28] tmp3 = (tmp3 >> 10U); 8012122: 69bb ldr r3, [r7, #24] 8012124: 0a9b lsrs r3, r3, #10 8012126: 61bb str r3, [r7, #24] tmp4 = (tmp4 >> 3U); 8012128: 697b ldr r3, [r7, #20] 801212a: 08db lsrs r3, r3, #3 801212c: 617b str r3, [r7, #20] tmp = ((tmp3 << 5U) | (tmp2 << 11U) | tmp4); 801212e: 69bb ldr r3, [r7, #24] 8012130: 015a lsls r2, r3, #5 8012132: 69fb ldr r3, [r7, #28] 8012134: 02db lsls r3, r3, #11 8012136: 431a orrs r2, r3 8012138: 697b ldr r3, [r7, #20] 801213a: 4313 orrs r3, r2 801213c: 627b str r3, [r7, #36] ; 0x24 801213e: e032 b.n 80121a6 } else if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_ARGB1555) 8012140: 68fb ldr r3, [r7, #12] 8012142: 689b ldr r3, [r3, #8] 8012144: 2b03 cmp r3, #3 8012146: d117 bne.n 8012178 { tmp1 = (tmp1 >> 31U); 8012148: 6a3b ldr r3, [r7, #32] 801214a: 0fdb lsrs r3, r3, #31 801214c: 623b str r3, [r7, #32] tmp2 = (tmp2 >> 19U); 801214e: 69fb ldr r3, [r7, #28] 8012150: 0cdb lsrs r3, r3, #19 8012152: 61fb str r3, [r7, #28] tmp3 = (tmp3 >> 11U); 8012154: 69bb ldr r3, [r7, #24] 8012156: 0adb lsrs r3, r3, #11 8012158: 61bb str r3, [r7, #24] tmp4 = (tmp4 >> 3U); 801215a: 697b ldr r3, [r7, #20] 801215c: 08db lsrs r3, r3, #3 801215e: 617b str r3, [r7, #20] tmp = ((tmp3 << 5U) | (tmp2 << 10U) | (tmp1 << 15U) | tmp4); 8012160: 69bb ldr r3, [r7, #24] 8012162: 015a lsls r2, r3, #5 8012164: 69fb ldr r3, [r7, #28] 8012166: 029b lsls r3, r3, #10 8012168: 431a orrs r2, r3 801216a: 6a3b ldr r3, [r7, #32] 801216c: 03db lsls r3, r3, #15 801216e: 431a orrs r2, r3 8012170: 697b ldr r3, [r7, #20] 8012172: 4313 orrs r3, r2 8012174: 627b str r3, [r7, #36] ; 0x24 8012176: e016 b.n 80121a6 } else /* Dhdma2d->Init.ColorMode = DMA2D_OUTPUT_ARGB4444 */ { tmp1 = (tmp1 >> 28U); 8012178: 6a3b ldr r3, [r7, #32] 801217a: 0f1b lsrs r3, r3, #28 801217c: 623b str r3, [r7, #32] tmp2 = (tmp2 >> 20U); 801217e: 69fb ldr r3, [r7, #28] 8012180: 0d1b lsrs r3, r3, #20 8012182: 61fb str r3, [r7, #28] tmp3 = (tmp3 >> 12U); 8012184: 69bb ldr r3, [r7, #24] 8012186: 0b1b lsrs r3, r3, #12 8012188: 61bb str r3, [r7, #24] tmp4 = (tmp4 >> 4U); 801218a: 697b ldr r3, [r7, #20] 801218c: 091b lsrs r3, r3, #4 801218e: 617b str r3, [r7, #20] tmp = ((tmp3 << 4U) | (tmp2 << 8U) | (tmp1 << 12U) | tmp4); 8012190: 69bb ldr r3, [r7, #24] 8012192: 011a lsls r2, r3, #4 8012194: 69fb ldr r3, [r7, #28] 8012196: 021b lsls r3, r3, #8 8012198: 431a orrs r2, r3 801219a: 6a3b ldr r3, [r7, #32] 801219c: 031b lsls r3, r3, #12 801219e: 431a orrs r2, r3 80121a0: 697b ldr r3, [r7, #20] 80121a2: 4313 orrs r3, r2 80121a4: 627b str r3, [r7, #36] ; 0x24 } /* Write to DMA2D OCOLR register */ WRITE_REG(hdma2d->Instance->OCOLR, tmp); 80121a6: 68fb ldr r3, [r7, #12] 80121a8: 681b ldr r3, [r3, #0] 80121aa: 6a7a ldr r2, [r7, #36] ; 0x24 80121ac: 639a str r2, [r3, #56] ; 0x38 else /* M2M, M2M_PFC or M2M_Blending DMA2D Mode */ { /* Configure DMA2D source address */ WRITE_REG(hdma2d->Instance->FGMAR, pdata); } } 80121ae: e003 b.n 80121b8 WRITE_REG(hdma2d->Instance->FGMAR, pdata); 80121b0: 68fb ldr r3, [r7, #12] 80121b2: 681b ldr r3, [r3, #0] 80121b4: 68ba ldr r2, [r7, #8] 80121b6: 60da str r2, [r3, #12] } 80121b8: bf00 nop 80121ba: 372c adds r7, #44 ; 0x2c 80121bc: 46bd mov sp, r7 80121be: f85d 7b04 ldr.w r7, [sp], #4 80121c2: 4770 bx lr 080121c4 : * @param Data specifies the data to be programmed * * @retval HAL_StatusTypeDef HAL Status */ HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data) { 80121c4: b580 push {r7, lr} 80121c6: b086 sub sp, #24 80121c8: af00 add r7, sp, #0 80121ca: 60f8 str r0, [r7, #12] 80121cc: 60b9 str r1, [r7, #8] 80121ce: e9c7 2300 strd r2, r3, [r7] HAL_StatusTypeDef status = HAL_ERROR; 80121d2: 2301 movs r3, #1 80121d4: 75fb strb r3, [r7, #23] /* Process Locked */ __HAL_LOCK(&pFlash); 80121d6: 4b27 ldr r3, [pc, #156] ; (8012274 ) 80121d8: 7d1b ldrb r3, [r3, #20] 80121da: 2b01 cmp r3, #1 80121dc: d101 bne.n 80121e2 80121de: 2302 movs r3, #2 80121e0: e043 b.n 801226a 80121e2: 4b24 ldr r3, [pc, #144] ; (8012274 ) 80121e4: 2201 movs r2, #1 80121e6: 751a strb r2, [r3, #20] /* Check the parameters */ assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram)); /* Wait for last operation to be completed */ status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 80121e8: f24c 3050 movw r0, #50000 ; 0xc350 80121ec: f000 f878 bl 80122e0 80121f0: 4603 mov r3, r0 80121f2: 75fb strb r3, [r7, #23] if(status == HAL_OK) 80121f4: 7dfb ldrb r3, [r7, #23] 80121f6: 2b00 cmp r3, #0 80121f8: d133 bne.n 8012262 { switch(TypeProgram) 80121fa: 68fb ldr r3, [r7, #12] 80121fc: 2b03 cmp r3, #3 80121fe: d823 bhi.n 8012248 8012200: a201 add r2, pc, #4 ; (adr r2, 8012208 ) 8012202: f852 f023 ldr.w pc, [r2, r3, lsl #2] 8012206: bf00 nop 8012208: 08012219 .word 0x08012219 801220c: 08012225 .word 0x08012225 8012210: 08012231 .word 0x08012231 8012214: 0801223d .word 0x0801223d { case FLASH_TYPEPROGRAM_BYTE : { /*Program byte (8-bit) at a specified address.*/ FLASH_Program_Byte(Address, (uint8_t) Data); 8012218: 783b ldrb r3, [r7, #0] 801221a: 4619 mov r1, r3 801221c: 68b8 ldr r0, [r7, #8] 801221e: f000 f919 bl 8012454 break; 8012222: e012 b.n 801224a } case FLASH_TYPEPROGRAM_HALFWORD : { /*Program halfword (16-bit) at a specified address.*/ FLASH_Program_HalfWord(Address, (uint16_t) Data); 8012224: 883b ldrh r3, [r7, #0] 8012226: 4619 mov r1, r3 8012228: 68b8 ldr r0, [r7, #8] 801222a: f000 f8ed bl 8012408 break; 801222e: e00c b.n 801224a } case FLASH_TYPEPROGRAM_WORD : { /*Program word (32-bit) at a specified address.*/ FLASH_Program_Word(Address, (uint32_t) Data); 8012230: 683b ldr r3, [r7, #0] 8012232: 4619 mov r1, r3 8012234: 68b8 ldr r0, [r7, #8] 8012236: f000 f8c3 bl 80123c0 break; 801223a: e006 b.n 801224a } case FLASH_TYPEPROGRAM_DOUBLEWORD : { /*Program double word (64-bit) at a specified address.*/ FLASH_Program_DoubleWord(Address, Data); 801223c: e9d7 2300 ldrd r2, r3, [r7] 8012240: 68b8 ldr r0, [r7, #8] 8012242: f000 f88d bl 8012360 break; 8012246: e000 b.n 801224a } default : break; 8012248: bf00 nop } /* Wait for last operation to be completed */ status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 801224a: f24c 3050 movw r0, #50000 ; 0xc350 801224e: f000 f847 bl 80122e0 8012252: 4603 mov r3, r0 8012254: 75fb strb r3, [r7, #23] /* If the program operation is completed, disable the PG Bit */ FLASH->CR &= (~FLASH_CR_PG); 8012256: 4a08 ldr r2, [pc, #32] ; (8012278 ) 8012258: 4b07 ldr r3, [pc, #28] ; (8012278 ) 801225a: 691b ldr r3, [r3, #16] 801225c: f023 0301 bic.w r3, r3, #1 8012260: 6113 str r3, [r2, #16] } /* Process Unlocked */ __HAL_UNLOCK(&pFlash); 8012262: 4b04 ldr r3, [pc, #16] ; (8012274 ) 8012264: 2200 movs r2, #0 8012266: 751a strb r2, [r3, #20] return status; 8012268: 7dfb ldrb r3, [r7, #23] } 801226a: 4618 mov r0, r3 801226c: 3718 adds r7, #24 801226e: 46bd mov sp, r7 8012270: bd80 pop {r7, pc} 8012272: bf00 nop 8012274: 2006c6c8 .word 0x2006c6c8 8012278: 40023c00 .word 0x40023c00 0801227c : /** * @brief Unlock the FLASH control register access * @retval HAL Status */ HAL_StatusTypeDef HAL_FLASH_Unlock(void) { 801227c: b480 push {r7} 801227e: b083 sub sp, #12 8012280: af00 add r7, sp, #0 HAL_StatusTypeDef status = HAL_OK; 8012282: 2300 movs r3, #0 8012284: 71fb strb r3, [r7, #7] if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET) 8012286: 4b0b ldr r3, [pc, #44] ; (80122b4 ) 8012288: 691b ldr r3, [r3, #16] 801228a: 2b00 cmp r3, #0 801228c: da0b bge.n 80122a6 { /* Authorize the FLASH Registers access */ WRITE_REG(FLASH->KEYR, FLASH_KEY1); 801228e: 4b09 ldr r3, [pc, #36] ; (80122b4 ) 8012290: 4a09 ldr r2, [pc, #36] ; (80122b8 ) 8012292: 605a str r2, [r3, #4] WRITE_REG(FLASH->KEYR, FLASH_KEY2); 8012294: 4b07 ldr r3, [pc, #28] ; (80122b4 ) 8012296: 4a09 ldr r2, [pc, #36] ; (80122bc ) 8012298: 605a str r2, [r3, #4] /* Verify Flash is unlocked */ if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET) 801229a: 4b06 ldr r3, [pc, #24] ; (80122b4 ) 801229c: 691b ldr r3, [r3, #16] 801229e: 2b00 cmp r3, #0 80122a0: da01 bge.n 80122a6 { status = HAL_ERROR; 80122a2: 2301 movs r3, #1 80122a4: 71fb strb r3, [r7, #7] } } return status; 80122a6: 79fb ldrb r3, [r7, #7] } 80122a8: 4618 mov r0, r3 80122aa: 370c adds r7, #12 80122ac: 46bd mov sp, r7 80122ae: f85d 7b04 ldr.w r7, [sp], #4 80122b2: 4770 bx lr 80122b4: 40023c00 .word 0x40023c00 80122b8: 45670123 .word 0x45670123 80122bc: cdef89ab .word 0xcdef89ab 080122c0 : /** * @brief Locks the FLASH control register access * @retval HAL Status */ HAL_StatusTypeDef HAL_FLASH_Lock(void) { 80122c0: b480 push {r7} 80122c2: af00 add r7, sp, #0 /* Set the LOCK Bit to lock the FLASH Registers access */ FLASH->CR |= FLASH_CR_LOCK; 80122c4: 4a05 ldr r2, [pc, #20] ; (80122dc ) 80122c6: 4b05 ldr r3, [pc, #20] ; (80122dc ) 80122c8: 691b ldr r3, [r3, #16] 80122ca: f043 4300 orr.w r3, r3, #2147483648 ; 0x80000000 80122ce: 6113 str r3, [r2, #16] return HAL_OK; 80122d0: 2300 movs r3, #0 } 80122d2: 4618 mov r0, r3 80122d4: 46bd mov sp, r7 80122d6: f85d 7b04 ldr.w r7, [sp], #4 80122da: 4770 bx lr 80122dc: 40023c00 .word 0x40023c00 080122e0 : * @brief Wait for a FLASH operation to complete. * @param Timeout maximum flash operationtimeout * @retval HAL Status */ HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout) { 80122e0: b580 push {r7, lr} 80122e2: b084 sub sp, #16 80122e4: af00 add r7, sp, #0 80122e6: 6078 str r0, [r7, #4] uint32_t tickstart = 0; 80122e8: 2300 movs r3, #0 80122ea: 60fb str r3, [r7, #12] /* Clear Error Code */ pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; 80122ec: 4b1a ldr r3, [pc, #104] ; (8012358 ) 80122ee: 2200 movs r2, #0 80122f0: 619a str r2, [r3, #24] /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset. Even if the FLASH operation fails, the BUSY flag will be reset and an error flag will be set */ /* Get tick */ tickstart = HAL_GetTick(); 80122f2: f7ff f937 bl 8011564 80122f6: 60f8 str r0, [r7, #12] while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY) != RESET) 80122f8: e010 b.n 801231c { if(Timeout != HAL_MAX_DELAY) 80122fa: 687b ldr r3, [r7, #4] 80122fc: f1b3 3fff cmp.w r3, #4294967295 8012300: d00c beq.n 801231c { if((Timeout == 0)||((HAL_GetTick() - tickstart ) > Timeout)) 8012302: 687b ldr r3, [r7, #4] 8012304: 2b00 cmp r3, #0 8012306: d007 beq.n 8012318 8012308: f7ff f92c bl 8011564 801230c: 4602 mov r2, r0 801230e: 68fb ldr r3, [r7, #12] 8012310: 1ad2 subs r2, r2, r3 8012312: 687b ldr r3, [r7, #4] 8012314: 429a cmp r2, r3 8012316: d901 bls.n 801231c { return HAL_TIMEOUT; 8012318: 2303 movs r3, #3 801231a: e019 b.n 8012350 while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY) != RESET) 801231c: 4b0f ldr r3, [pc, #60] ; (801235c ) 801231e: 68db ldr r3, [r3, #12] 8012320: f403 3380 and.w r3, r3, #65536 ; 0x10000 8012324: 2b00 cmp r3, #0 8012326: d1e8 bne.n 80122fa } } } if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_ALL_ERRORS) != RESET) 8012328: 4b0c ldr r3, [pc, #48] ; (801235c ) 801232a: 68db ldr r3, [r3, #12] 801232c: f003 03f2 and.w r3, r3, #242 ; 0xf2 8012330: 2b00 cmp r3, #0 8012332: d003 beq.n 801233c { /*Save the error code*/ FLASH_SetErrorCode(); 8012334: f000 f8b2 bl 801249c return HAL_ERROR; 8012338: 2301 movs r3, #1 801233a: e009 b.n 8012350 } /* Check FLASH End of Operation flag */ if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP) != RESET) 801233c: 4b07 ldr r3, [pc, #28] ; (801235c ) 801233e: 68db ldr r3, [r3, #12] 8012340: f003 0301 and.w r3, r3, #1 8012344: 2b00 cmp r3, #0 8012346: d002 beq.n 801234e { /* Clear FLASH End of Operation pending bit */ __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP); 8012348: 4b04 ldr r3, [pc, #16] ; (801235c ) 801234a: 2201 movs r2, #1 801234c: 60da str r2, [r3, #12] } /* If there is an error flag set */ return HAL_OK; 801234e: 2300 movs r3, #0 } 8012350: 4618 mov r0, r3 8012352: 3710 adds r7, #16 8012354: 46bd mov sp, r7 8012356: bd80 pop {r7, pc} 8012358: 2006c6c8 .word 0x2006c6c8 801235c: 40023c00 .word 0x40023c00 08012360 : * @param Address specifies the address to be programmed. * @param Data specifies the data to be programmed. * @retval None */ static void FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data) { 8012360: b4f0 push {r4, r5, r6, r7} 8012362: b084 sub sp, #16 8012364: af00 add r7, sp, #0 8012366: 60f8 str r0, [r7, #12] 8012368: e9c7 2300 strd r2, r3, [r7] /* Check the parameters */ assert_param(IS_FLASH_ADDRESS(Address)); /* If the previous operation is completed, proceed to program the new data */ FLASH->CR &= CR_PSIZE_MASK; 801236c: 4a13 ldr r2, [pc, #76] ; (80123bc ) 801236e: 4b13 ldr r3, [pc, #76] ; (80123bc ) 8012370: 691b ldr r3, [r3, #16] 8012372: f423 7340 bic.w r3, r3, #768 ; 0x300 8012376: 6113 str r3, [r2, #16] FLASH->CR |= FLASH_PSIZE_DOUBLE_WORD; 8012378: 4a10 ldr r2, [pc, #64] ; (80123bc ) 801237a: 4b10 ldr r3, [pc, #64] ; (80123bc ) 801237c: 691b ldr r3, [r3, #16] 801237e: f443 7340 orr.w r3, r3, #768 ; 0x300 8012382: 6113 str r3, [r2, #16] FLASH->CR |= FLASH_CR_PG; 8012384: 4a0d ldr r2, [pc, #52] ; (80123bc ) 8012386: 4b0d ldr r3, [pc, #52] ; (80123bc ) 8012388: 691b ldr r3, [r3, #16] 801238a: f043 0301 orr.w r3, r3, #1 801238e: 6113 str r3, [r2, #16] /* Program first word */ *(__IO uint32_t*)Address = (uint32_t)Data; 8012390: 68fb ldr r3, [r7, #12] 8012392: 683a ldr r2, [r7, #0] 8012394: 601a str r2, [r3, #0] 8012396: f3bf 8f6f isb sy /* Barrier to ensure programming is performed in 2 steps, in right order (independently of compiler optimization behavior) */ __ISB(); /* Program second word */ *(__IO uint32_t*)(Address+4) = (uint32_t)(Data >> 32); 801239a: 68fb ldr r3, [r7, #12] 801239c: 3304 adds r3, #4 801239e: 461a mov r2, r3 80123a0: e897 0018 ldmia.w r7, {r3, r4} 80123a4: 0025 movs r5, r4 80123a6: 2600 movs r6, #0 80123a8: 462b mov r3, r5 80123aa: 6013 str r3, [r2, #0] __ASM volatile ("dsb 0xF":::"memory"); 80123ac: f3bf 8f4f dsb sy /* Data synchronous Barrier (DSB) Just after the write operation This will force the CPU to respect the sequence of instruction (no optimization).*/ __DSB(); } 80123b0: bf00 nop 80123b2: 3710 adds r7, #16 80123b4: 46bd mov sp, r7 80123b6: bcf0 pop {r4, r5, r6, r7} 80123b8: 4770 bx lr 80123ba: bf00 nop 80123bc: 40023c00 .word 0x40023c00 080123c0 : * @param Address specifies the address to be programmed. * @param Data specifies the data to be programmed. * @retval None */ static void FLASH_Program_Word(uint32_t Address, uint32_t Data) { 80123c0: b480 push {r7} 80123c2: b083 sub sp, #12 80123c4: af00 add r7, sp, #0 80123c6: 6078 str r0, [r7, #4] 80123c8: 6039 str r1, [r7, #0] /* Check the parameters */ assert_param(IS_FLASH_ADDRESS(Address)); /* If the previous operation is completed, proceed to program the new data */ FLASH->CR &= CR_PSIZE_MASK; 80123ca: 4a0e ldr r2, [pc, #56] ; (8012404 ) 80123cc: 4b0d ldr r3, [pc, #52] ; (8012404 ) 80123ce: 691b ldr r3, [r3, #16] 80123d0: f423 7340 bic.w r3, r3, #768 ; 0x300 80123d4: 6113 str r3, [r2, #16] FLASH->CR |= FLASH_PSIZE_WORD; 80123d6: 4a0b ldr r2, [pc, #44] ; (8012404 ) 80123d8: 4b0a ldr r3, [pc, #40] ; (8012404 ) 80123da: 691b ldr r3, [r3, #16] 80123dc: f443 7300 orr.w r3, r3, #512 ; 0x200 80123e0: 6113 str r3, [r2, #16] FLASH->CR |= FLASH_CR_PG; 80123e2: 4a08 ldr r2, [pc, #32] ; (8012404 ) 80123e4: 4b07 ldr r3, [pc, #28] ; (8012404 ) 80123e6: 691b ldr r3, [r3, #16] 80123e8: f043 0301 orr.w r3, r3, #1 80123ec: 6113 str r3, [r2, #16] *(__IO uint32_t*)Address = Data; 80123ee: 687b ldr r3, [r7, #4] 80123f0: 683a ldr r2, [r7, #0] 80123f2: 601a str r2, [r3, #0] 80123f4: f3bf 8f4f dsb sy /* Data synchronous Barrier (DSB) Just after the write operation This will force the CPU to respect the sequence of instruction (no optimization).*/ __DSB(); } 80123f8: bf00 nop 80123fa: 370c adds r7, #12 80123fc: 46bd mov sp, r7 80123fe: f85d 7b04 ldr.w r7, [sp], #4 8012402: 4770 bx lr 8012404: 40023c00 .word 0x40023c00 08012408 : * @param Address specifies the address to be programmed. * @param Data specifies the data to be programmed. * @retval None */ static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data) { 8012408: b480 push {r7} 801240a: b083 sub sp, #12 801240c: af00 add r7, sp, #0 801240e: 6078 str r0, [r7, #4] 8012410: 460b mov r3, r1 8012412: 807b strh r3, [r7, #2] /* Check the parameters */ assert_param(IS_FLASH_ADDRESS(Address)); /* If the previous operation is completed, proceed to program the new data */ FLASH->CR &= CR_PSIZE_MASK; 8012414: 4a0e ldr r2, [pc, #56] ; (8012450 ) 8012416: 4b0e ldr r3, [pc, #56] ; (8012450 ) 8012418: 691b ldr r3, [r3, #16] 801241a: f423 7340 bic.w r3, r3, #768 ; 0x300 801241e: 6113 str r3, [r2, #16] FLASH->CR |= FLASH_PSIZE_HALF_WORD; 8012420: 4a0b ldr r2, [pc, #44] ; (8012450 ) 8012422: 4b0b ldr r3, [pc, #44] ; (8012450 ) 8012424: 691b ldr r3, [r3, #16] 8012426: f443 7380 orr.w r3, r3, #256 ; 0x100 801242a: 6113 str r3, [r2, #16] FLASH->CR |= FLASH_CR_PG; 801242c: 4a08 ldr r2, [pc, #32] ; (8012450 ) 801242e: 4b08 ldr r3, [pc, #32] ; (8012450 ) 8012430: 691b ldr r3, [r3, #16] 8012432: f043 0301 orr.w r3, r3, #1 8012436: 6113 str r3, [r2, #16] *(__IO uint16_t*)Address = Data; 8012438: 687b ldr r3, [r7, #4] 801243a: 887a ldrh r2, [r7, #2] 801243c: 801a strh r2, [r3, #0] 801243e: f3bf 8f4f dsb sy /* Data synchronous Barrier (DSB) Just after the write operation This will force the CPU to respect the sequence of instruction (no optimization).*/ __DSB(); } 8012442: bf00 nop 8012444: 370c adds r7, #12 8012446: 46bd mov sp, r7 8012448: f85d 7b04 ldr.w r7, [sp], #4 801244c: 4770 bx lr 801244e: bf00 nop 8012450: 40023c00 .word 0x40023c00 08012454 : * @param Address specifies the address to be programmed. * @param Data specifies the data to be programmed. * @retval None */ static void FLASH_Program_Byte(uint32_t Address, uint8_t Data) { 8012454: b480 push {r7} 8012456: b083 sub sp, #12 8012458: af00 add r7, sp, #0 801245a: 6078 str r0, [r7, #4] 801245c: 460b mov r3, r1 801245e: 70fb strb r3, [r7, #3] /* Check the parameters */ assert_param(IS_FLASH_ADDRESS(Address)); /* If the previous operation is completed, proceed to program the new data */ FLASH->CR &= CR_PSIZE_MASK; 8012460: 4a0d ldr r2, [pc, #52] ; (8012498 ) 8012462: 4b0d ldr r3, [pc, #52] ; (8012498 ) 8012464: 691b ldr r3, [r3, #16] 8012466: f423 7340 bic.w r3, r3, #768 ; 0x300 801246a: 6113 str r3, [r2, #16] FLASH->CR |= FLASH_PSIZE_BYTE; 801246c: 4a0a ldr r2, [pc, #40] ; (8012498 ) 801246e: 4b0a ldr r3, [pc, #40] ; (8012498 ) 8012470: 691b ldr r3, [r3, #16] 8012472: 6113 str r3, [r2, #16] FLASH->CR |= FLASH_CR_PG; 8012474: 4a08 ldr r2, [pc, #32] ; (8012498 ) 8012476: 4b08 ldr r3, [pc, #32] ; (8012498 ) 8012478: 691b ldr r3, [r3, #16] 801247a: f043 0301 orr.w r3, r3, #1 801247e: 6113 str r3, [r2, #16] *(__IO uint8_t*)Address = Data; 8012480: 687b ldr r3, [r7, #4] 8012482: 78fa ldrb r2, [r7, #3] 8012484: 701a strb r2, [r3, #0] 8012486: f3bf 8f4f dsb sy /* Data synchronous Barrier (DSB) Just after the write operation This will force the CPU to respect the sequence of instruction (no optimization).*/ __DSB(); } 801248a: bf00 nop 801248c: 370c adds r7, #12 801248e: 46bd mov sp, r7 8012490: f85d 7b04 ldr.w r7, [sp], #4 8012494: 4770 bx lr 8012496: bf00 nop 8012498: 40023c00 .word 0x40023c00 0801249c : /** * @brief Set the specific FLASH error flag. * @retval None */ static void FLASH_SetErrorCode(void) { 801249c: b480 push {r7} 801249e: af00 add r7, sp, #0 if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_OPERR) != RESET) 80124a0: 4b21 ldr r3, [pc, #132] ; (8012528 ) 80124a2: 68db ldr r3, [r3, #12] 80124a4: f003 0302 and.w r3, r3, #2 80124a8: 2b00 cmp r3, #0 80124aa: d005 beq.n 80124b8 { pFlash.ErrorCode |= HAL_FLASH_ERROR_OPERATION; 80124ac: 4b1f ldr r3, [pc, #124] ; (801252c ) 80124ae: 699b ldr r3, [r3, #24] 80124b0: f043 0320 orr.w r3, r3, #32 80124b4: 4a1d ldr r2, [pc, #116] ; (801252c ) 80124b6: 6193 str r3, [r2, #24] } if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) != RESET) 80124b8: 4b1b ldr r3, [pc, #108] ; (8012528 ) 80124ba: 68db ldr r3, [r3, #12] 80124bc: f003 0310 and.w r3, r3, #16 80124c0: 2b00 cmp r3, #0 80124c2: d005 beq.n 80124d0 { pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP; 80124c4: 4b19 ldr r3, [pc, #100] ; (801252c ) 80124c6: 699b ldr r3, [r3, #24] 80124c8: f043 0310 orr.w r3, r3, #16 80124cc: 4a17 ldr r2, [pc, #92] ; (801252c ) 80124ce: 6193 str r3, [r2, #24] } if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGAERR) != RESET) 80124d0: 4b15 ldr r3, [pc, #84] ; (8012528 ) 80124d2: 68db ldr r3, [r3, #12] 80124d4: f003 0320 and.w r3, r3, #32 80124d8: 2b00 cmp r3, #0 80124da: d005 beq.n 80124e8 { pFlash.ErrorCode |= HAL_FLASH_ERROR_PGA; 80124dc: 4b13 ldr r3, [pc, #76] ; (801252c ) 80124de: 699b ldr r3, [r3, #24] 80124e0: f043 0308 orr.w r3, r3, #8 80124e4: 4a11 ldr r2, [pc, #68] ; (801252c ) 80124e6: 6193 str r3, [r2, #24] } if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGPERR) != RESET) 80124e8: 4b0f ldr r3, [pc, #60] ; (8012528 ) 80124ea: 68db ldr r3, [r3, #12] 80124ec: f003 0340 and.w r3, r3, #64 ; 0x40 80124f0: 2b00 cmp r3, #0 80124f2: d005 beq.n 8012500 { pFlash.ErrorCode |= HAL_FLASH_ERROR_PGP; 80124f4: 4b0d ldr r3, [pc, #52] ; (801252c ) 80124f6: 699b ldr r3, [r3, #24] 80124f8: f043 0304 orr.w r3, r3, #4 80124fc: 4a0b ldr r2, [pc, #44] ; (801252c ) 80124fe: 6193 str r3, [r2, #24] } if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_ERSERR) != RESET) 8012500: 4b09 ldr r3, [pc, #36] ; (8012528 ) 8012502: 68db ldr r3, [r3, #12] 8012504: f003 0380 and.w r3, r3, #128 ; 0x80 8012508: 2b00 cmp r3, #0 801250a: d005 beq.n 8012518 { pFlash.ErrorCode |= HAL_FLASH_ERROR_ERS; 801250c: 4b07 ldr r3, [pc, #28] ; (801252c ) 801250e: 699b ldr r3, [r3, #24] 8012510: f043 0302 orr.w r3, r3, #2 8012514: 4a05 ldr r2, [pc, #20] ; (801252c ) 8012516: 6193 str r3, [r2, #24] pFlash.ErrorCode |= HAL_FLASH_ERROR_RD; } #endif /* FLASH_OPTCR2_PCROP */ /* Clear error programming flags */ __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_ALL_ERRORS); 8012518: 4b03 ldr r3, [pc, #12] ; (8012528 ) 801251a: 22f2 movs r2, #242 ; 0xf2 801251c: 60da str r2, [r3, #12] } 801251e: bf00 nop 8012520: 46bd mov sp, r7 8012522: f85d 7b04 ldr.w r7, [sp], #4 8012526: 4770 bx lr 8012528: 40023c00 .word 0x40023c00 801252c: 2006c6c8 .word 0x2006c6c8 08012530 : * (0xFFFFFFFF means that all the sectors have been correctly erased) * * @retval HAL Status */ HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *SectorError) { 8012530: b580 push {r7, lr} 8012532: b084 sub sp, #16 8012534: af00 add r7, sp, #0 8012536: 6078 str r0, [r7, #4] 8012538: 6039 str r1, [r7, #0] HAL_StatusTypeDef status = HAL_ERROR; 801253a: 2301 movs r3, #1 801253c: 73fb strb r3, [r7, #15] uint32_t index = 0; 801253e: 2300 movs r3, #0 8012540: 60bb str r3, [r7, #8] /* Process Locked */ __HAL_LOCK(&pFlash); 8012542: 4b30 ldr r3, [pc, #192] ; (8012604 ) 8012544: 7d1b ldrb r3, [r3, #20] 8012546: 2b01 cmp r3, #1 8012548: d101 bne.n 801254e 801254a: 2302 movs r3, #2 801254c: e056 b.n 80125fc 801254e: 4b2d ldr r3, [pc, #180] ; (8012604 ) 8012550: 2201 movs r2, #1 8012552: 751a strb r2, [r3, #20] /* Check the parameters */ assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase)); /* Wait for last operation to be completed */ status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 8012554: f24c 3050 movw r0, #50000 ; 0xc350 8012558: f7ff fec2 bl 80122e0 801255c: 4603 mov r3, r0 801255e: 73fb strb r3, [r7, #15] if(status == HAL_OK) 8012560: 7bfb ldrb r3, [r7, #15] 8012562: 2b00 cmp r3, #0 8012564: d146 bne.n 80125f4 { /*Initialization of SectorError variable*/ *SectorError = 0xFFFFFFFFU; 8012566: 683b ldr r3, [r7, #0] 8012568: f04f 32ff mov.w r2, #4294967295 801256c: 601a str r2, [r3, #0] if(pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE) 801256e: 687b ldr r3, [r7, #4] 8012570: 681b ldr r3, [r3, #0] 8012572: 2b01 cmp r3, #1 8012574: d115 bne.n 80125a2 { /*Mass erase to be done*/ #if defined (FLASH_OPTCR_nDBANK) FLASH_MassErase((uint8_t) pEraseInit->VoltageRange, pEraseInit->Banks); 8012576: 687b ldr r3, [r7, #4] 8012578: 691b ldr r3, [r3, #16] 801257a: b2da uxtb r2, r3 801257c: 687b ldr r3, [r7, #4] 801257e: 685b ldr r3, [r3, #4] 8012580: 4619 mov r1, r3 8012582: 4610 mov r0, r2 8012584: f000 f870 bl 8012668 #else FLASH_MassErase((uint8_t) pEraseInit->VoltageRange); #endif /* FLASH_OPTCR_nDBANK */ /* Wait for last operation to be completed */ status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 8012588: f24c 3050 movw r0, #50000 ; 0xc350 801258c: f7ff fea8 bl 80122e0 8012590: 4603 mov r3, r0 8012592: 73fb strb r3, [r7, #15] /* if the erase operation is completed, disable the MER Bit */ FLASH->CR &= (~FLASH_MER_BIT); 8012594: 491c ldr r1, [pc, #112] ; (8012608 ) 8012596: 4b1c ldr r3, [pc, #112] ; (8012608 ) 8012598: 691a ldr r2, [r3, #16] 801259a: 4b1c ldr r3, [pc, #112] ; (801260c ) 801259c: 4013 ands r3, r2 801259e: 610b str r3, [r1, #16] 80125a0: e028 b.n 80125f4 { /* Check the parameters */ assert_param(IS_FLASH_NBSECTORS(pEraseInit->NbSectors + pEraseInit->Sector)); /* Erase by sector by sector to be done*/ for(index = pEraseInit->Sector; index < (pEraseInit->NbSectors + pEraseInit->Sector); index++) 80125a2: 687b ldr r3, [r7, #4] 80125a4: 689b ldr r3, [r3, #8] 80125a6: 60bb str r3, [r7, #8] 80125a8: e01c b.n 80125e4 { FLASH_Erase_Sector(index, (uint8_t) pEraseInit->VoltageRange); 80125aa: 687b ldr r3, [r7, #4] 80125ac: 691b ldr r3, [r3, #16] 80125ae: b2db uxtb r3, r3 80125b0: 4619 mov r1, r3 80125b2: 68b8 ldr r0, [r7, #8] 80125b4: f000 f892 bl 80126dc /* Wait for last operation to be completed */ status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 80125b8: f24c 3050 movw r0, #50000 ; 0xc350 80125bc: f7ff fe90 bl 80122e0 80125c0: 4603 mov r3, r0 80125c2: 73fb strb r3, [r7, #15] /* If the erase operation is completed, disable the SER Bit and SNB Bits */ CLEAR_BIT(FLASH->CR, (FLASH_CR_SER | FLASH_CR_SNB)); 80125c4: 4a10 ldr r2, [pc, #64] ; (8012608 ) 80125c6: 4b10 ldr r3, [pc, #64] ; (8012608 ) 80125c8: 691b ldr r3, [r3, #16] 80125ca: f023 03fa bic.w r3, r3, #250 ; 0xfa 80125ce: 6113 str r3, [r2, #16] if(status != HAL_OK) 80125d0: 7bfb ldrb r3, [r7, #15] 80125d2: 2b00 cmp r3, #0 80125d4: d003 beq.n 80125de { /* In case of error, stop erase procedure and return the faulty sector*/ *SectorError = index; 80125d6: 683b ldr r3, [r7, #0] 80125d8: 68ba ldr r2, [r7, #8] 80125da: 601a str r2, [r3, #0] break; 80125dc: e00a b.n 80125f4 for(index = pEraseInit->Sector; index < (pEraseInit->NbSectors + pEraseInit->Sector); index++) 80125de: 68bb ldr r3, [r7, #8] 80125e0: 3301 adds r3, #1 80125e2: 60bb str r3, [r7, #8] 80125e4: 687b ldr r3, [r7, #4] 80125e6: 68da ldr r2, [r3, #12] 80125e8: 687b ldr r3, [r7, #4] 80125ea: 689b ldr r3, [r3, #8] 80125ec: 441a add r2, r3 80125ee: 68bb ldr r3, [r7, #8] 80125f0: 429a cmp r2, r3 80125f2: d8da bhi.n 80125aa } } } /* Process Unlocked */ __HAL_UNLOCK(&pFlash); 80125f4: 4b03 ldr r3, [pc, #12] ; (8012604 ) 80125f6: 2200 movs r2, #0 80125f8: 751a strb r2, [r3, #20] return status; 80125fa: 7bfb ldrb r3, [r7, #15] } 80125fc: 4618 mov r0, r3 80125fe: 3710 adds r7, #16 8012600: 46bd mov sp, r7 8012602: bd80 pop {r7, pc} 8012604: 2006c6c8 .word 0x2006c6c8 8012608: 40023c00 .word 0x40023c00 801260c: ffff7ffb .word 0xffff7ffb 08012610 : * contains the configuration information for the programming. * * @retval None */ void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit) { 8012610: b580 push {r7, lr} 8012612: b082 sub sp, #8 8012614: af00 add r7, sp, #0 8012616: 6078 str r0, [r7, #4] pOBInit->OptionType = OPTIONBYTE_WRP | OPTIONBYTE_RDP | OPTIONBYTE_USER |\ 8012618: 687b ldr r3, [r7, #4] 801261a: 223f movs r2, #63 ; 0x3f 801261c: 601a str r2, [r3, #0] OPTIONBYTE_BOR | OPTIONBYTE_BOOTADDR_0 | OPTIONBYTE_BOOTADDR_1; /*Get WRP*/ pOBInit->WRPSector = FLASH_OB_GetWRP(); 801261e: f000 f8ad bl 801277c 8012622: 4602 mov r2, r0 8012624: 687b ldr r3, [r7, #4] 8012626: 609a str r2, [r3, #8] /*Get RDP Level*/ pOBInit->RDPLevel = FLASH_OB_GetRDP(); 8012628: f000 f8c8 bl 80127bc 801262c: 4603 mov r3, r0 801262e: 461a mov r2, r3 8012630: 687b ldr r3, [r7, #4] 8012632: 60da str r2, [r3, #12] /*Get USER*/ pOBInit->USERConfig = FLASH_OB_GetUser(); 8012634: f000 f8b2 bl 801279c 8012638: 4602 mov r2, r0 801263a: 687b ldr r3, [r7, #4] 801263c: 615a str r2, [r3, #20] /*Get BOR Level*/ pOBInit->BORLevel = FLASH_OB_GetBOR(); 801263e: f000 f8dd bl 80127fc 8012642: 4602 mov r2, r0 8012644: 687b ldr r3, [r7, #4] 8012646: 611a str r2, [r3, #16] /*Get Boot Address when Boot pin = 0 */ pOBInit->BootAddr0 = FLASH_OB_GetBootAddress(OPTIONBYTE_BOOTADDR_0); 8012648: 2010 movs r0, #16 801264a: f000 f8e5 bl 8012818 801264e: 4602 mov r2, r0 8012650: 687b ldr r3, [r7, #4] 8012652: 619a str r2, [r3, #24] /*Get Boot Address when Boot pin = 1 */ pOBInit->BootAddr1 = FLASH_OB_GetBootAddress(OPTIONBYTE_BOOTADDR_1); 8012654: 2020 movs r0, #32 8012656: f000 f8df bl 8012818 801265a: 4602 mov r2, r0 801265c: 687b ldr r3, [r7, #4] 801265e: 61da str r2, [r3, #28] pOBInit->PCROPSector = FLASH_OB_GetPCROP(); /*Get PCROP_RDP Value */ pOBInit->PCROPRdp = FLASH_OB_GetPCROPRDP(); #endif /* FLASH_OPTCR2_PCROP */ } 8012660: bf00 nop 8012662: 3708 adds r7, #8 8012664: 46bd mov sp, r7 8012666: bd80 pop {r7, pc} 08012668 : * @arg FLASH_BANK_BOTH: Bank1 and Bank2 to be erased * * @retval HAL Status */ static void FLASH_MassErase(uint8_t VoltageRange, uint32_t Banks) { 8012668: b480 push {r7} 801266a: b083 sub sp, #12 801266c: af00 add r7, sp, #0 801266e: 4603 mov r3, r0 8012670: 6039 str r1, [r7, #0] 8012672: 71fb strb r3, [r7, #7] /* Check the parameters */ assert_param(IS_VOLTAGERANGE(VoltageRange)); assert_param(IS_FLASH_BANK(Banks)); /* if the previous operation is completed, proceed to erase all sectors */ FLASH->CR &= CR_PSIZE_MASK; 8012674: 4a18 ldr r2, [pc, #96] ; (80126d8 ) 8012676: 4b18 ldr r3, [pc, #96] ; (80126d8 ) 8012678: 691b ldr r3, [r3, #16] 801267a: f423 7340 bic.w r3, r3, #768 ; 0x300 801267e: 6113 str r3, [r2, #16] if(Banks == FLASH_BANK_BOTH) 8012680: 683b ldr r3, [r7, #0] 8012682: 2b03 cmp r3, #3 8012684: d107 bne.n 8012696 { /* bank1 & bank2 will be erased*/ FLASH->CR |= FLASH_MER_BIT; 8012686: 4914 ldr r1, [pc, #80] ; (80126d8 ) 8012688: 4b13 ldr r3, [pc, #76] ; (80126d8 ) 801268a: 691a ldr r2, [r3, #16] 801268c: f248 0304 movw r3, #32772 ; 0x8004 8012690: 4313 orrs r3, r2 8012692: 610b str r3, [r1, #16] 8012694: e00f b.n 80126b6 } else if(Banks == FLASH_BANK_2) 8012696: 683b ldr r3, [r7, #0] 8012698: 2b02 cmp r3, #2 801269a: d106 bne.n 80126aa { /*Only bank2 will be erased*/ FLASH->CR |= FLASH_CR_MER2; 801269c: 4a0e ldr r2, [pc, #56] ; (80126d8 ) 801269e: 4b0e ldr r3, [pc, #56] ; (80126d8 ) 80126a0: 691b ldr r3, [r3, #16] 80126a2: f443 4300 orr.w r3, r3, #32768 ; 0x8000 80126a6: 6113 str r3, [r2, #16] 80126a8: e005 b.n 80126b6 } else { /*Only bank1 will be erased*/ FLASH->CR |= FLASH_CR_MER1; 80126aa: 4a0b ldr r2, [pc, #44] ; (80126d8 ) 80126ac: 4b0a ldr r3, [pc, #40] ; (80126d8 ) 80126ae: 691b ldr r3, [r3, #16] 80126b0: f043 0304 orr.w r3, r3, #4 80126b4: 6113 str r3, [r2, #16] } FLASH->CR |= FLASH_CR_STRT | ((uint32_t)VoltageRange <<8); 80126b6: 4908 ldr r1, [pc, #32] ; (80126d8 ) 80126b8: 4b07 ldr r3, [pc, #28] ; (80126d8 ) 80126ba: 691a ldr r2, [r3, #16] 80126bc: 79fb ldrb r3, [r7, #7] 80126be: 021b lsls r3, r3, #8 80126c0: 4313 orrs r3, r2 80126c2: f443 3380 orr.w r3, r3, #65536 ; 0x10000 80126c6: 610b str r3, [r1, #16] 80126c8: f3bf 8f4f dsb sy /* Data synchronous Barrier (DSB) Just after the write operation This will force the CPU to respect the sequence of instruction (no optimization).*/ __DSB(); } 80126cc: bf00 nop 80126ce: 370c adds r7, #12 80126d0: 46bd mov sp, r7 80126d2: f85d 7b04 ldr.w r7, [sp], #4 80126d6: 4770 bx lr 80126d8: 40023c00 .word 0x40023c00 080126dc : * the operation will be done by double word (64-bit) * * @retval None */ void FLASH_Erase_Sector(uint32_t Sector, uint8_t VoltageRange) { 80126dc: b480 push {r7} 80126de: b085 sub sp, #20 80126e0: af00 add r7, sp, #0 80126e2: 6078 str r0, [r7, #4] 80126e4: 460b mov r3, r1 80126e6: 70fb strb r3, [r7, #3] uint32_t tmp_psize = 0; 80126e8: 2300 movs r3, #0 80126ea: 60fb str r3, [r7, #12] /* Check the parameters */ assert_param(IS_FLASH_SECTOR(Sector)); assert_param(IS_VOLTAGERANGE(VoltageRange)); if(VoltageRange == FLASH_VOLTAGE_RANGE_1) 80126ec: 78fb ldrb r3, [r7, #3] 80126ee: 2b00 cmp r3, #0 80126f0: d102 bne.n 80126f8 { tmp_psize = FLASH_PSIZE_BYTE; 80126f2: 2300 movs r3, #0 80126f4: 60fb str r3, [r7, #12] 80126f6: e010 b.n 801271a } else if(VoltageRange == FLASH_VOLTAGE_RANGE_2) 80126f8: 78fb ldrb r3, [r7, #3] 80126fa: 2b01 cmp r3, #1 80126fc: d103 bne.n 8012706 { tmp_psize = FLASH_PSIZE_HALF_WORD; 80126fe: f44f 7380 mov.w r3, #256 ; 0x100 8012702: 60fb str r3, [r7, #12] 8012704: e009 b.n 801271a } else if(VoltageRange == FLASH_VOLTAGE_RANGE_3) 8012706: 78fb ldrb r3, [r7, #3] 8012708: 2b02 cmp r3, #2 801270a: d103 bne.n 8012714 { tmp_psize = FLASH_PSIZE_WORD; 801270c: f44f 7300 mov.w r3, #512 ; 0x200 8012710: 60fb str r3, [r7, #12] 8012712: e002 b.n 801271a } else { tmp_psize = FLASH_PSIZE_DOUBLE_WORD; 8012714: f44f 7340 mov.w r3, #768 ; 0x300 8012718: 60fb str r3, [r7, #12] } /* Need to add offset of 4 when sector higher than FLASH_SECTOR_11 */ if(Sector > FLASH_SECTOR_11) 801271a: 687b ldr r3, [r7, #4] 801271c: 2b0b cmp r3, #11 801271e: d902 bls.n 8012726 { Sector += 4; 8012720: 687b ldr r3, [r7, #4] 8012722: 3304 adds r3, #4 8012724: 607b str r3, [r7, #4] } /* If the previous operation is completed, proceed to erase the sector */ FLASH->CR &= CR_PSIZE_MASK; 8012726: 4a14 ldr r2, [pc, #80] ; (8012778 ) 8012728: 4b13 ldr r3, [pc, #76] ; (8012778 ) 801272a: 691b ldr r3, [r3, #16] 801272c: f423 7340 bic.w r3, r3, #768 ; 0x300 8012730: 6113 str r3, [r2, #16] FLASH->CR |= tmp_psize; 8012732: 4911 ldr r1, [pc, #68] ; (8012778 ) 8012734: 4b10 ldr r3, [pc, #64] ; (8012778 ) 8012736: 691a ldr r2, [r3, #16] 8012738: 68fb ldr r3, [r7, #12] 801273a: 4313 orrs r3, r2 801273c: 610b str r3, [r1, #16] CLEAR_BIT(FLASH->CR, FLASH_CR_SNB); 801273e: 4a0e ldr r2, [pc, #56] ; (8012778 ) 8012740: 4b0d ldr r3, [pc, #52] ; (8012778 ) 8012742: 691b ldr r3, [r3, #16] 8012744: f023 03f8 bic.w r3, r3, #248 ; 0xf8 8012748: 6113 str r3, [r2, #16] FLASH->CR |= FLASH_CR_SER | (Sector << FLASH_CR_SNB_Pos); 801274a: 490b ldr r1, [pc, #44] ; (8012778 ) 801274c: 4b0a ldr r3, [pc, #40] ; (8012778 ) 801274e: 691a ldr r2, [r3, #16] 8012750: 687b ldr r3, [r7, #4] 8012752: 00db lsls r3, r3, #3 8012754: 4313 orrs r3, r2 8012756: f043 0302 orr.w r3, r3, #2 801275a: 610b str r3, [r1, #16] FLASH->CR |= FLASH_CR_STRT; 801275c: 4a06 ldr r2, [pc, #24] ; (8012778 ) 801275e: 4b06 ldr r3, [pc, #24] ; (8012778 ) 8012760: 691b ldr r3, [r3, #16] 8012762: f443 3380 orr.w r3, r3, #65536 ; 0x10000 8012766: 6113 str r3, [r2, #16] 8012768: f3bf 8f4f dsb sy /* Data synchronous Barrier (DSB) Just after the write operation This will force the CPU to respect the sequence of instruction (no optimization).*/ __DSB(); } 801276c: bf00 nop 801276e: 3714 adds r7, #20 8012770: 46bd mov sp, r7 8012772: f85d 7b04 ldr.w r7, [sp], #4 8012776: 4770 bx lr 8012778: 40023c00 .word 0x40023c00 0801277c : /** * @brief Return the FLASH Write Protection Option Bytes value. * @retval uint32_t FLASH Write Protection Option Bytes value */ static uint32_t FLASH_OB_GetWRP(void) { 801277c: b480 push {r7} 801277e: af00 add r7, sp, #0 /* Return the FLASH write protection Register value */ return ((uint32_t)(FLASH->OPTCR & 0x0FFF0000)); 8012780: 4b04 ldr r3, [pc, #16] ; (8012794 ) 8012782: 695a ldr r2, [r3, #20] 8012784: 4b04 ldr r3, [pc, #16] ; (8012798 ) 8012786: 4013 ands r3, r2 } 8012788: 4618 mov r0, r3 801278a: 46bd mov sp, r7 801278c: f85d 7b04 ldr.w r7, [sp], #4 8012790: 4770 bx lr 8012792: bf00 nop 8012794: 40023c00 .word 0x40023c00 8012798: 0fff0000 .word 0x0fff0000 0801279c : * @brief Return the FLASH User Option Byte value. * @retval uint32_t FLASH User Option Bytes values: WWDG_SW(Bit4), IWDG_SW(Bit5), nRST_STOP(Bit6), * nRST_STDBY(Bit7), nDBOOT(Bit28), nDBANK(Bit29), IWDG_STDBY(Bit30) and IWDG_STOP(Bit31). */ static uint32_t FLASH_OB_GetUser(void) { 801279c: b480 push {r7} 801279e: af00 add r7, sp, #0 /* Return the User Option Byte */ return ((uint32_t)(FLASH->OPTCR & 0xF00000F0U)); 80127a0: 4b04 ldr r3, [pc, #16] ; (80127b4 ) 80127a2: 695a ldr r2, [r3, #20] 80127a4: 4b04 ldr r3, [pc, #16] ; (80127b8 ) 80127a6: 4013 ands r3, r2 } 80127a8: 4618 mov r0, r3 80127aa: 46bd mov sp, r7 80127ac: f85d 7b04 ldr.w r7, [sp], #4 80127b0: 4770 bx lr 80127b2: bf00 nop 80127b4: 40023c00 .word 0x40023c00 80127b8: f00000f0 .word 0xf00000f0 080127bc : * @arg OB_RDP_LEVEL_0: No protection * @arg OB_RDP_LEVEL_1: Read protection of the memory * @arg OB_RDP_LEVEL_2: Full chip protection */ static uint8_t FLASH_OB_GetRDP(void) { 80127bc: b480 push {r7} 80127be: b083 sub sp, #12 80127c0: af00 add r7, sp, #0 uint8_t readstatus = OB_RDP_LEVEL_0; 80127c2: 23aa movs r3, #170 ; 0xaa 80127c4: 71fb strb r3, [r7, #7] if ((*(__IO uint8_t*)(OPTCR_BYTE1_ADDRESS)) == OB_RDP_LEVEL_0) 80127c6: 4b0c ldr r3, [pc, #48] ; (80127f8 ) 80127c8: 781b ldrb r3, [r3, #0] 80127ca: b2db uxtb r3, r3 80127cc: 2baa cmp r3, #170 ; 0xaa 80127ce: d102 bne.n 80127d6 { readstatus = OB_RDP_LEVEL_0; 80127d0: 23aa movs r3, #170 ; 0xaa 80127d2: 71fb strb r3, [r7, #7] 80127d4: e009 b.n 80127ea } else if ((*(__IO uint8_t*)(OPTCR_BYTE1_ADDRESS)) == OB_RDP_LEVEL_2) 80127d6: 4b08 ldr r3, [pc, #32] ; (80127f8 ) 80127d8: 781b ldrb r3, [r3, #0] 80127da: b2db uxtb r3, r3 80127dc: 2bcc cmp r3, #204 ; 0xcc 80127de: d102 bne.n 80127e6 { readstatus = OB_RDP_LEVEL_2; 80127e0: 23cc movs r3, #204 ; 0xcc 80127e2: 71fb strb r3, [r7, #7] 80127e4: e001 b.n 80127ea } else { readstatus = OB_RDP_LEVEL_1; 80127e6: 2355 movs r3, #85 ; 0x55 80127e8: 71fb strb r3, [r7, #7] } return readstatus; 80127ea: 79fb ldrb r3, [r7, #7] } 80127ec: 4618 mov r0, r3 80127ee: 370c adds r7, #12 80127f0: 46bd mov sp, r7 80127f2: f85d 7b04 ldr.w r7, [sp], #4 80127f6: 4770 bx lr 80127f8: 40023c15 .word 0x40023c15 080127fc : * - OB_BOR_LEVEL2: Supply voltage ranges from 2.4 to 2.7 V * - OB_BOR_LEVEL1: Supply voltage ranges from 2.1 to 2.4 V * - OB_BOR_OFF : Supply voltage ranges from 1.62 to 2.1 V */ static uint32_t FLASH_OB_GetBOR(void) { 80127fc: b480 push {r7} 80127fe: af00 add r7, sp, #0 /* Return the FLASH BOR level */ return ((uint32_t)(FLASH->OPTCR & 0x0C)); 8012800: 4b04 ldr r3, [pc, #16] ; (8012814 ) 8012802: 695b ldr r3, [r3, #20] 8012804: f003 030c and.w r3, r3, #12 } 8012808: 4618 mov r0, r3 801280a: 46bd mov sp, r7 801280c: f85d 7b04 ldr.w r7, [sp], #4 8012810: 4770 bx lr 8012812: bf00 nop 8012814: 40023c00 .word 0x40023c00 08012818 : * - OB_BOOTADDR_DTCM_RAM : Boot from DTCM RAM (0x20000000) * - OB_BOOTADDR_SRAM1 : Boot from SRAM1 (0x20010000) * - OB_BOOTADDR_SRAM2 : Boot from SRAM2 (0x2004C000) */ static uint32_t FLASH_OB_GetBootAddress(uint32_t BootOption) { 8012818: b480 push {r7} 801281a: b085 sub sp, #20 801281c: af00 add r7, sp, #0 801281e: 6078 str r0, [r7, #4] uint32_t Address = 0; 8012820: 2300 movs r3, #0 8012822: 60fb str r3, [r7, #12] /* Return the Boot base Address */ if(BootOption == OPTIONBYTE_BOOTADDR_0) 8012824: 687b ldr r3, [r7, #4] 8012826: 2b10 cmp r3, #16 8012828: d104 bne.n 8012834 { Address = FLASH->OPTCR1 & FLASH_OPTCR1_BOOT_ADD0; 801282a: 4b08 ldr r3, [pc, #32] ; (801284c ) 801282c: 699b ldr r3, [r3, #24] 801282e: b29b uxth r3, r3 8012830: 60fb str r3, [r7, #12] 8012832: e004 b.n 801283e } else { Address = ((FLASH->OPTCR1 & FLASH_OPTCR1_BOOT_ADD1) >> 16); 8012834: 4b05 ldr r3, [pc, #20] ; (801284c ) 8012836: 699b ldr r3, [r3, #24] 8012838: 0c1b lsrs r3, r3, #16 801283a: b29b uxth r3, r3 801283c: 60fb str r3, [r7, #12] } return Address; 801283e: 68fb ldr r3, [r7, #12] } 8012840: 4618 mov r0, r3 8012842: 3714 adds r7, #20 8012844: 46bd mov sp, r7 8012846: f85d 7b04 ldr.w r7, [sp], #4 801284a: 4770 bx lr 801284c: 40023c00 .word 0x40023c00 08012850 : * @param GPIO_Init pointer to a GPIO_InitTypeDef structure that contains * the configuration information for the specified GPIO peripheral. * @retval None */ void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init) { 8012850: b480 push {r7} 8012852: b089 sub sp, #36 ; 0x24 8012854: af00 add r7, sp, #0 8012856: 6078 str r0, [r7, #4] 8012858: 6039 str r1, [r7, #0] uint32_t position = 0x00; 801285a: 2300 movs r3, #0 801285c: 61fb str r3, [r7, #28] uint32_t ioposition = 0x00; 801285e: 2300 movs r3, #0 8012860: 617b str r3, [r7, #20] uint32_t iocurrent = 0x00; 8012862: 2300 movs r3, #0 8012864: 613b str r3, [r7, #16] uint32_t temp = 0x00; 8012866: 2300 movs r3, #0 8012868: 61bb str r3, [r7, #24] assert_param(IS_GPIO_ALL_INSTANCE(GPIOx)); assert_param(IS_GPIO_PIN(GPIO_Init->Pin)); assert_param(IS_GPIO_MODE(GPIO_Init->Mode)); /* Configure the port pins */ for(position = 0; position < GPIO_NUMBER; position++) 801286a: 2300 movs r3, #0 801286c: 61fb str r3, [r7, #28] 801286e: e175 b.n 8012b5c { /* Get the IO position */ ioposition = ((uint32_t)0x01) << position; 8012870: 2201 movs r2, #1 8012872: 69fb ldr r3, [r7, #28] 8012874: fa02 f303 lsl.w r3, r2, r3 8012878: 617b str r3, [r7, #20] /* Get the current IO position */ iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition; 801287a: 683b ldr r3, [r7, #0] 801287c: 681a ldr r2, [r3, #0] 801287e: 697b ldr r3, [r7, #20] 8012880: 4013 ands r3, r2 8012882: 613b str r3, [r7, #16] if(iocurrent == ioposition) 8012884: 693a ldr r2, [r7, #16] 8012886: 697b ldr r3, [r7, #20] 8012888: 429a cmp r2, r3 801288a: f040 8164 bne.w 8012b56 { /*--------------------- GPIO Mode Configuration ------------------------*/ /* In case of Output or Alternate function mode selection */ if(((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)) 801288e: 683b ldr r3, [r7, #0] 8012890: 685b ldr r3, [r3, #4] 8012892: f003 0303 and.w r3, r3, #3 8012896: 2b01 cmp r3, #1 8012898: d005 beq.n 80128a6 801289a: 683b ldr r3, [r7, #0] 801289c: 685b ldr r3, [r3, #4] 801289e: f003 0303 and.w r3, r3, #3 80128a2: 2b02 cmp r3, #2 80128a4: d130 bne.n 8012908 { /* Check the Speed parameter */ assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); /* Configure the IO Speed */ temp = GPIOx->OSPEEDR; 80128a6: 687b ldr r3, [r7, #4] 80128a8: 689b ldr r3, [r3, #8] 80128aa: 61bb str r3, [r7, #24] temp &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2)); 80128ac: 69fb ldr r3, [r7, #28] 80128ae: 005b lsls r3, r3, #1 80128b0: 2203 movs r2, #3 80128b2: fa02 f303 lsl.w r3, r2, r3 80128b6: 43db mvns r3, r3 80128b8: 69ba ldr r2, [r7, #24] 80128ba: 4013 ands r3, r2 80128bc: 61bb str r3, [r7, #24] temp |= (GPIO_Init->Speed << (position * 2)); 80128be: 683b ldr r3, [r7, #0] 80128c0: 68da ldr r2, [r3, #12] 80128c2: 69fb ldr r3, [r7, #28] 80128c4: 005b lsls r3, r3, #1 80128c6: fa02 f303 lsl.w r3, r2, r3 80128ca: 69ba ldr r2, [r7, #24] 80128cc: 4313 orrs r3, r2 80128ce: 61bb str r3, [r7, #24] GPIOx->OSPEEDR = temp; 80128d0: 687b ldr r3, [r7, #4] 80128d2: 69ba ldr r2, [r7, #24] 80128d4: 609a str r2, [r3, #8] /* Configure the IO Output Type */ temp = GPIOx->OTYPER; 80128d6: 687b ldr r3, [r7, #4] 80128d8: 685b ldr r3, [r3, #4] 80128da: 61bb str r3, [r7, #24] temp &= ~(GPIO_OTYPER_OT_0 << position) ; 80128dc: 2201 movs r2, #1 80128de: 69fb ldr r3, [r7, #28] 80128e0: fa02 f303 lsl.w r3, r2, r3 80128e4: 43db mvns r3, r3 80128e6: 69ba ldr r2, [r7, #24] 80128e8: 4013 ands r3, r2 80128ea: 61bb str r3, [r7, #24] temp |= (((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position); 80128ec: 683b ldr r3, [r7, #0] 80128ee: 685b ldr r3, [r3, #4] 80128f0: 091b lsrs r3, r3, #4 80128f2: f003 0201 and.w r2, r3, #1 80128f6: 69fb ldr r3, [r7, #28] 80128f8: fa02 f303 lsl.w r3, r2, r3 80128fc: 69ba ldr r2, [r7, #24] 80128fe: 4313 orrs r3, r2 8012900: 61bb str r3, [r7, #24] GPIOx->OTYPER = temp; 8012902: 687b ldr r3, [r7, #4] 8012904: 69ba ldr r2, [r7, #24] 8012906: 605a str r2, [r3, #4] } if((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG) 8012908: 683b ldr r3, [r7, #0] 801290a: 685b ldr r3, [r3, #4] 801290c: f003 0303 and.w r3, r3, #3 8012910: 2b03 cmp r3, #3 8012912: d017 beq.n 8012944 { /* Check the Pull parameter */ assert_param(IS_GPIO_PULL(GPIO_Init->Pull)); /* Activate the Pull-up or Pull down resistor for the current IO */ temp = GPIOx->PUPDR; 8012914: 687b ldr r3, [r7, #4] 8012916: 68db ldr r3, [r3, #12] 8012918: 61bb str r3, [r7, #24] temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2)); 801291a: 69fb ldr r3, [r7, #28] 801291c: 005b lsls r3, r3, #1 801291e: 2203 movs r2, #3 8012920: fa02 f303 lsl.w r3, r2, r3 8012924: 43db mvns r3, r3 8012926: 69ba ldr r2, [r7, #24] 8012928: 4013 ands r3, r2 801292a: 61bb str r3, [r7, #24] temp |= ((GPIO_Init->Pull) << (position * 2)); 801292c: 683b ldr r3, [r7, #0] 801292e: 689a ldr r2, [r3, #8] 8012930: 69fb ldr r3, [r7, #28] 8012932: 005b lsls r3, r3, #1 8012934: fa02 f303 lsl.w r3, r2, r3 8012938: 69ba ldr r2, [r7, #24] 801293a: 4313 orrs r3, r2 801293c: 61bb str r3, [r7, #24] GPIOx->PUPDR = temp; 801293e: 687b ldr r3, [r7, #4] 8012940: 69ba ldr r2, [r7, #24] 8012942: 60da str r2, [r3, #12] } /* In case of Alternate function mode selection */ if((GPIO_Init->Mode & GPIO_MODE) == MODE_AF) 8012944: 683b ldr r3, [r7, #0] 8012946: 685b ldr r3, [r3, #4] 8012948: f003 0303 and.w r3, r3, #3 801294c: 2b02 cmp r3, #2 801294e: d123 bne.n 8012998 { /* Check the Alternate function parameter */ assert_param(IS_GPIO_AF(GPIO_Init->Alternate)); /* Configure Alternate function mapped with the current IO */ temp = GPIOx->AFR[position >> 3]; 8012950: 69fb ldr r3, [r7, #28] 8012952: 08da lsrs r2, r3, #3 8012954: 687b ldr r3, [r7, #4] 8012956: 3208 adds r2, #8 8012958: f853 3022 ldr.w r3, [r3, r2, lsl #2] 801295c: 61bb str r3, [r7, #24] temp &= ~((uint32_t)0xF << ((uint32_t)(position & (uint32_t)0x07) * 4)) ; 801295e: 69fb ldr r3, [r7, #28] 8012960: f003 0307 and.w r3, r3, #7 8012964: 009b lsls r3, r3, #2 8012966: 220f movs r2, #15 8012968: fa02 f303 lsl.w r3, r2, r3 801296c: 43db mvns r3, r3 801296e: 69ba ldr r2, [r7, #24] 8012970: 4013 ands r3, r2 8012972: 61bb str r3, [r7, #24] temp |= ((uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & (uint32_t)0x07) * 4)); 8012974: 683b ldr r3, [r7, #0] 8012976: 691a ldr r2, [r3, #16] 8012978: 69fb ldr r3, [r7, #28] 801297a: f003 0307 and.w r3, r3, #7 801297e: 009b lsls r3, r3, #2 8012980: fa02 f303 lsl.w r3, r2, r3 8012984: 69ba ldr r2, [r7, #24] 8012986: 4313 orrs r3, r2 8012988: 61bb str r3, [r7, #24] GPIOx->AFR[position >> 3] = temp; 801298a: 69fb ldr r3, [r7, #28] 801298c: 08da lsrs r2, r3, #3 801298e: 687b ldr r3, [r7, #4] 8012990: 3208 adds r2, #8 8012992: 69b9 ldr r1, [r7, #24] 8012994: f843 1022 str.w r1, [r3, r2, lsl #2] } /* Configure IO Direction mode (Input, Output, Alternate or Analog) */ temp = GPIOx->MODER; 8012998: 687b ldr r3, [r7, #4] 801299a: 681b ldr r3, [r3, #0] 801299c: 61bb str r3, [r7, #24] temp &= ~(GPIO_MODER_MODER0 << (position * 2)); 801299e: 69fb ldr r3, [r7, #28] 80129a0: 005b lsls r3, r3, #1 80129a2: 2203 movs r2, #3 80129a4: fa02 f303 lsl.w r3, r2, r3 80129a8: 43db mvns r3, r3 80129aa: 69ba ldr r2, [r7, #24] 80129ac: 4013 ands r3, r2 80129ae: 61bb str r3, [r7, #24] temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2)); 80129b0: 683b ldr r3, [r7, #0] 80129b2: 685b ldr r3, [r3, #4] 80129b4: f003 0203 and.w r2, r3, #3 80129b8: 69fb ldr r3, [r7, #28] 80129ba: 005b lsls r3, r3, #1 80129bc: fa02 f303 lsl.w r3, r2, r3 80129c0: 69ba ldr r2, [r7, #24] 80129c2: 4313 orrs r3, r2 80129c4: 61bb str r3, [r7, #24] GPIOx->MODER = temp; 80129c6: 687b ldr r3, [r7, #4] 80129c8: 69ba ldr r2, [r7, #24] 80129ca: 601a str r2, [r3, #0] /*--------------------- EXTI Mode Configuration ------------------------*/ /* Configure the External Interrupt or event for the current IO */ if((GPIO_Init->Mode & EXTI_MODE) != 0x00u) 80129cc: 683b ldr r3, [r7, #0] 80129ce: 685b ldr r3, [r3, #4] 80129d0: f403 3340 and.w r3, r3, #196608 ; 0x30000 80129d4: 2b00 cmp r3, #0 80129d6: f000 80be beq.w 8012b56 { /* Enable SYSCFG Clock */ __HAL_RCC_SYSCFG_CLK_ENABLE(); 80129da: 4a65 ldr r2, [pc, #404] ; (8012b70 ) 80129dc: 4b64 ldr r3, [pc, #400] ; (8012b70 ) 80129de: 6c5b ldr r3, [r3, #68] ; 0x44 80129e0: f443 4380 orr.w r3, r3, #16384 ; 0x4000 80129e4: 6453 str r3, [r2, #68] ; 0x44 80129e6: 4b62 ldr r3, [pc, #392] ; (8012b70 ) 80129e8: 6c5b ldr r3, [r3, #68] ; 0x44 80129ea: f403 4380 and.w r3, r3, #16384 ; 0x4000 80129ee: 60fb str r3, [r7, #12] 80129f0: 68fb ldr r3, [r7, #12] temp = SYSCFG->EXTICR[position >> 2]; 80129f2: 4a60 ldr r2, [pc, #384] ; (8012b74 ) 80129f4: 69fb ldr r3, [r7, #28] 80129f6: 089b lsrs r3, r3, #2 80129f8: 3302 adds r3, #2 80129fa: f852 3023 ldr.w r3, [r2, r3, lsl #2] 80129fe: 61bb str r3, [r7, #24] temp &= ~(((uint32_t)0x0F) << (4 * (position & 0x03))); 8012a00: 69fb ldr r3, [r7, #28] 8012a02: f003 0303 and.w r3, r3, #3 8012a06: 009b lsls r3, r3, #2 8012a08: 220f movs r2, #15 8012a0a: fa02 f303 lsl.w r3, r2, r3 8012a0e: 43db mvns r3, r3 8012a10: 69ba ldr r2, [r7, #24] 8012a12: 4013 ands r3, r2 8012a14: 61bb str r3, [r7, #24] temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4 * (position & 0x03))); 8012a16: 687b ldr r3, [r7, #4] 8012a18: 4a57 ldr r2, [pc, #348] ; (8012b78 ) 8012a1a: 4293 cmp r3, r2 8012a1c: d037 beq.n 8012a8e 8012a1e: 687b ldr r3, [r7, #4] 8012a20: 4a56 ldr r2, [pc, #344] ; (8012b7c ) 8012a22: 4293 cmp r3, r2 8012a24: d031 beq.n 8012a8a 8012a26: 687b ldr r3, [r7, #4] 8012a28: 4a55 ldr r2, [pc, #340] ; (8012b80 ) 8012a2a: 4293 cmp r3, r2 8012a2c: d02b beq.n 8012a86 8012a2e: 687b ldr r3, [r7, #4] 8012a30: 4a54 ldr r2, [pc, #336] ; (8012b84 ) 8012a32: 4293 cmp r3, r2 8012a34: d025 beq.n 8012a82 8012a36: 687b ldr r3, [r7, #4] 8012a38: 4a53 ldr r2, [pc, #332] ; (8012b88 ) 8012a3a: 4293 cmp r3, r2 8012a3c: d01f beq.n 8012a7e 8012a3e: 687b ldr r3, [r7, #4] 8012a40: 4a52 ldr r2, [pc, #328] ; (8012b8c ) 8012a42: 4293 cmp r3, r2 8012a44: d019 beq.n 8012a7a 8012a46: 687b ldr r3, [r7, #4] 8012a48: 4a51 ldr r2, [pc, #324] ; (8012b90 ) 8012a4a: 4293 cmp r3, r2 8012a4c: d013 beq.n 8012a76 8012a4e: 687b ldr r3, [r7, #4] 8012a50: 4a50 ldr r2, [pc, #320] ; (8012b94 ) 8012a52: 4293 cmp r3, r2 8012a54: d00d beq.n 8012a72 8012a56: 687b ldr r3, [r7, #4] 8012a58: 4a4f ldr r2, [pc, #316] ; (8012b98 ) 8012a5a: 4293 cmp r3, r2 8012a5c: d007 beq.n 8012a6e 8012a5e: 687b ldr r3, [r7, #4] 8012a60: 4a4e ldr r2, [pc, #312] ; (8012b9c ) 8012a62: 4293 cmp r3, r2 8012a64: d101 bne.n 8012a6a 8012a66: 2309 movs r3, #9 8012a68: e012 b.n 8012a90 8012a6a: 230a movs r3, #10 8012a6c: e010 b.n 8012a90 8012a6e: 2308 movs r3, #8 8012a70: e00e b.n 8012a90 8012a72: 2307 movs r3, #7 8012a74: e00c b.n 8012a90 8012a76: 2306 movs r3, #6 8012a78: e00a b.n 8012a90 8012a7a: 2305 movs r3, #5 8012a7c: e008 b.n 8012a90 8012a7e: 2304 movs r3, #4 8012a80: e006 b.n 8012a90 8012a82: 2303 movs r3, #3 8012a84: e004 b.n 8012a90 8012a86: 2302 movs r3, #2 8012a88: e002 b.n 8012a90 8012a8a: 2301 movs r3, #1 8012a8c: e000 b.n 8012a90 8012a8e: 2300 movs r3, #0 8012a90: 69fa ldr r2, [r7, #28] 8012a92: f002 0203 and.w r2, r2, #3 8012a96: 0092 lsls r2, r2, #2 8012a98: 4093 lsls r3, r2 8012a9a: 69ba ldr r2, [r7, #24] 8012a9c: 4313 orrs r3, r2 8012a9e: 61bb str r3, [r7, #24] SYSCFG->EXTICR[position >> 2] = temp; 8012aa0: 4934 ldr r1, [pc, #208] ; (8012b74 ) 8012aa2: 69fb ldr r3, [r7, #28] 8012aa4: 089b lsrs r3, r3, #2 8012aa6: 3302 adds r3, #2 8012aa8: 69ba ldr r2, [r7, #24] 8012aaa: f841 2023 str.w r2, [r1, r3, lsl #2] /* Clear Rising Falling edge configuration */ temp = EXTI->RTSR; 8012aae: 4b3c ldr r3, [pc, #240] ; (8012ba0 ) 8012ab0: 689b ldr r3, [r3, #8] 8012ab2: 61bb str r3, [r7, #24] temp &= ~((uint32_t)iocurrent); 8012ab4: 693b ldr r3, [r7, #16] 8012ab6: 43db mvns r3, r3 8012ab8: 69ba ldr r2, [r7, #24] 8012aba: 4013 ands r3, r2 8012abc: 61bb str r3, [r7, #24] if((GPIO_Init->Mode & TRIGGER_RISING) != 0x00u) 8012abe: 683b ldr r3, [r7, #0] 8012ac0: 685b ldr r3, [r3, #4] 8012ac2: f403 1380 and.w r3, r3, #1048576 ; 0x100000 8012ac6: 2b00 cmp r3, #0 8012ac8: d003 beq.n 8012ad2 { temp |= iocurrent; 8012aca: 69ba ldr r2, [r7, #24] 8012acc: 693b ldr r3, [r7, #16] 8012ace: 4313 orrs r3, r2 8012ad0: 61bb str r3, [r7, #24] } EXTI->RTSR = temp; 8012ad2: 4a33 ldr r2, [pc, #204] ; (8012ba0 ) 8012ad4: 69bb ldr r3, [r7, #24] 8012ad6: 6093 str r3, [r2, #8] temp = EXTI->FTSR; 8012ad8: 4b31 ldr r3, [pc, #196] ; (8012ba0 ) 8012ada: 68db ldr r3, [r3, #12] 8012adc: 61bb str r3, [r7, #24] temp &= ~((uint32_t)iocurrent); 8012ade: 693b ldr r3, [r7, #16] 8012ae0: 43db mvns r3, r3 8012ae2: 69ba ldr r2, [r7, #24] 8012ae4: 4013 ands r3, r2 8012ae6: 61bb str r3, [r7, #24] if((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00u) 8012ae8: 683b ldr r3, [r7, #0] 8012aea: 685b ldr r3, [r3, #4] 8012aec: f403 1300 and.w r3, r3, #2097152 ; 0x200000 8012af0: 2b00 cmp r3, #0 8012af2: d003 beq.n 8012afc { temp |= iocurrent; 8012af4: 69ba ldr r2, [r7, #24] 8012af6: 693b ldr r3, [r7, #16] 8012af8: 4313 orrs r3, r2 8012afa: 61bb str r3, [r7, #24] } EXTI->FTSR = temp; 8012afc: 4a28 ldr r2, [pc, #160] ; (8012ba0 ) 8012afe: 69bb ldr r3, [r7, #24] 8012b00: 60d3 str r3, [r2, #12] temp = EXTI->EMR; 8012b02: 4b27 ldr r3, [pc, #156] ; (8012ba0 ) 8012b04: 685b ldr r3, [r3, #4] 8012b06: 61bb str r3, [r7, #24] temp &= ~((uint32_t)iocurrent); 8012b08: 693b ldr r3, [r7, #16] 8012b0a: 43db mvns r3, r3 8012b0c: 69ba ldr r2, [r7, #24] 8012b0e: 4013 ands r3, r2 8012b10: 61bb str r3, [r7, #24] if((GPIO_Init->Mode & EXTI_EVT) != 0x00u) 8012b12: 683b ldr r3, [r7, #0] 8012b14: 685b ldr r3, [r3, #4] 8012b16: f403 3300 and.w r3, r3, #131072 ; 0x20000 8012b1a: 2b00 cmp r3, #0 8012b1c: d003 beq.n 8012b26 { temp |= iocurrent; 8012b1e: 69ba ldr r2, [r7, #24] 8012b20: 693b ldr r3, [r7, #16] 8012b22: 4313 orrs r3, r2 8012b24: 61bb str r3, [r7, #24] } EXTI->EMR = temp; 8012b26: 4a1e ldr r2, [pc, #120] ; (8012ba0 ) 8012b28: 69bb ldr r3, [r7, #24] 8012b2a: 6053 str r3, [r2, #4] /* Clear EXTI line configuration */ temp = EXTI->IMR; 8012b2c: 4b1c ldr r3, [pc, #112] ; (8012ba0 ) 8012b2e: 681b ldr r3, [r3, #0] 8012b30: 61bb str r3, [r7, #24] temp &= ~((uint32_t)iocurrent); 8012b32: 693b ldr r3, [r7, #16] 8012b34: 43db mvns r3, r3 8012b36: 69ba ldr r2, [r7, #24] 8012b38: 4013 ands r3, r2 8012b3a: 61bb str r3, [r7, #24] if((GPIO_Init->Mode & EXTI_IT) != 0x00u) 8012b3c: 683b ldr r3, [r7, #0] 8012b3e: 685b ldr r3, [r3, #4] 8012b40: f403 3380 and.w r3, r3, #65536 ; 0x10000 8012b44: 2b00 cmp r3, #0 8012b46: d003 beq.n 8012b50 { temp |= iocurrent; 8012b48: 69ba ldr r2, [r7, #24] 8012b4a: 693b ldr r3, [r7, #16] 8012b4c: 4313 orrs r3, r2 8012b4e: 61bb str r3, [r7, #24] } EXTI->IMR = temp; 8012b50: 4a13 ldr r2, [pc, #76] ; (8012ba0 ) 8012b52: 69bb ldr r3, [r7, #24] 8012b54: 6013 str r3, [r2, #0] for(position = 0; position < GPIO_NUMBER; position++) 8012b56: 69fb ldr r3, [r7, #28] 8012b58: 3301 adds r3, #1 8012b5a: 61fb str r3, [r7, #28] 8012b5c: 69fb ldr r3, [r7, #28] 8012b5e: 2b0f cmp r3, #15 8012b60: f67f ae86 bls.w 8012870 } } } } 8012b64: bf00 nop 8012b66: 3724 adds r7, #36 ; 0x24 8012b68: 46bd mov sp, r7 8012b6a: f85d 7b04 ldr.w r7, [sp], #4 8012b6e: 4770 bx lr 8012b70: 40023800 .word 0x40023800 8012b74: 40013800 .word 0x40013800 8012b78: 40020000 .word 0x40020000 8012b7c: 40020400 .word 0x40020400 8012b80: 40020800 .word 0x40020800 8012b84: 40020c00 .word 0x40020c00 8012b88: 40021000 .word 0x40021000 8012b8c: 40021400 .word 0x40021400 8012b90: 40021800 .word 0x40021800 8012b94: 40021c00 .word 0x40021c00 8012b98: 40022000 .word 0x40022000 8012b9c: 40022400 .word 0x40022400 8012ba0: 40013c00 .word 0x40013c00 08012ba4 : * @param GPIO_Pin specifies the port bit to read. * This parameter can be GPIO_PIN_x where x can be (0..15). * @retval The input port pin value. */ GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) { 8012ba4: b480 push {r7} 8012ba6: b085 sub sp, #20 8012ba8: af00 add r7, sp, #0 8012baa: 6078 str r0, [r7, #4] 8012bac: 460b mov r3, r1 8012bae: 807b strh r3, [r7, #2] GPIO_PinState bitstatus; /* Check the parameters */ assert_param(IS_GPIO_PIN(GPIO_Pin)); if((GPIOx->IDR & GPIO_Pin) != (uint32_t)GPIO_PIN_RESET) 8012bb0: 687b ldr r3, [r7, #4] 8012bb2: 691a ldr r2, [r3, #16] 8012bb4: 887b ldrh r3, [r7, #2] 8012bb6: 4013 ands r3, r2 8012bb8: 2b00 cmp r3, #0 8012bba: d002 beq.n 8012bc2 { bitstatus = GPIO_PIN_SET; 8012bbc: 2301 movs r3, #1 8012bbe: 73fb strb r3, [r7, #15] 8012bc0: e001 b.n 8012bc6 } else { bitstatus = GPIO_PIN_RESET; 8012bc2: 2300 movs r3, #0 8012bc4: 73fb strb r3, [r7, #15] } return bitstatus; 8012bc6: 7bfb ldrb r3, [r7, #15] } 8012bc8: 4618 mov r0, r3 8012bca: 3714 adds r7, #20 8012bcc: 46bd mov sp, r7 8012bce: f85d 7b04 ldr.w r7, [sp], #4 8012bd2: 4770 bx lr 08012bd4 : * @arg GPIO_PIN_RESET: to clear the port pin * @arg GPIO_PIN_SET: to set the port pin * @retval None */ void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState) { 8012bd4: b480 push {r7} 8012bd6: b083 sub sp, #12 8012bd8: af00 add r7, sp, #0 8012bda: 6078 str r0, [r7, #4] 8012bdc: 460b mov r3, r1 8012bde: 807b strh r3, [r7, #2] 8012be0: 4613 mov r3, r2 8012be2: 707b strb r3, [r7, #1] /* Check the parameters */ assert_param(IS_GPIO_PIN(GPIO_Pin)); assert_param(IS_GPIO_PIN_ACTION(PinState)); if(PinState != GPIO_PIN_RESET) 8012be4: 787b ldrb r3, [r7, #1] 8012be6: 2b00 cmp r3, #0 8012be8: d003 beq.n 8012bf2 { GPIOx->BSRR = GPIO_Pin; 8012bea: 887a ldrh r2, [r7, #2] 8012bec: 687b ldr r3, [r7, #4] 8012bee: 619a str r2, [r3, #24] } else { GPIOx->BSRR = (uint32_t)GPIO_Pin << 16; } } 8012bf0: e003 b.n 8012bfa GPIOx->BSRR = (uint32_t)GPIO_Pin << 16; 8012bf2: 887b ldrh r3, [r7, #2] 8012bf4: 041a lsls r2, r3, #16 8012bf6: 687b ldr r3, [r7, #4] 8012bf8: 619a str r2, [r3, #24] } 8012bfa: bf00 nop 8012bfc: 370c adds r7, #12 8012bfe: 46bd mov sp, r7 8012c00: f85d 7b04 ldr.w r7, [sp], #4 8012c04: 4770 bx lr ... 08012c08 : * @brief This function handles EXTI interrupt request. * @param GPIO_Pin Specifies the pins connected EXTI line * @retval None */ void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin) { 8012c08: b580 push {r7, lr} 8012c0a: b082 sub sp, #8 8012c0c: af00 add r7, sp, #0 8012c0e: 4603 mov r3, r0 8012c10: 80fb strh r3, [r7, #6] /* EXTI line interrupt detected */ if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET) 8012c12: 4b08 ldr r3, [pc, #32] ; (8012c34 ) 8012c14: 695a ldr r2, [r3, #20] 8012c16: 88fb ldrh r3, [r7, #6] 8012c18: 4013 ands r3, r2 8012c1a: 2b00 cmp r3, #0 8012c1c: d006 beq.n 8012c2c { __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin); 8012c1e: 4a05 ldr r2, [pc, #20] ; (8012c34 ) 8012c20: 88fb ldrh r3, [r7, #6] 8012c22: 6153 str r3, [r2, #20] HAL_GPIO_EXTI_Callback(GPIO_Pin); 8012c24: 88fb ldrh r3, [r7, #6] 8012c26: 4618 mov r0, r3 8012c28: f7f3 f910 bl 8005e4c } } 8012c2c: bf00 nop 8012c2e: 3708 adds r7, #8 8012c30: 46bd mov sp, r7 8012c32: bd80 pop {r7, pc} 8012c34: 40013c00 .word 0x40013c00 08012c38 : * @param hltdc pointer to a LTDC_HandleTypeDef structure that contains * the configuration information for the LTDC. * @retval HAL status */ HAL_StatusTypeDef HAL_LTDC_Init(LTDC_HandleTypeDef *hltdc) { 8012c38: b580 push {r7, lr} 8012c3a: b084 sub sp, #16 8012c3c: af00 add r7, sp, #0 8012c3e: 6078 str r0, [r7, #4] uint32_t tmp, tmp1; /* Check the LTDC peripheral state */ if (hltdc == NULL) 8012c40: 687b ldr r3, [r7, #4] 8012c42: 2b00 cmp r3, #0 8012c44: d101 bne.n 8012c4a { return HAL_ERROR; 8012c46: 2301 movs r3, #1 8012c48: e0bf b.n 8012dca } /* Init the low level hardware */ hltdc->MspInitCallback(hltdc); } #else if (hltdc->State == HAL_LTDC_STATE_RESET) 8012c4a: 687b ldr r3, [r7, #4] 8012c4c: f893 30a1 ldrb.w r3, [r3, #161] ; 0xa1 8012c50: b2db uxtb r3, r3 8012c52: 2b00 cmp r3, #0 8012c54: d106 bne.n 8012c64 { /* Allocate lock resource and initialize it */ hltdc->Lock = HAL_UNLOCKED; 8012c56: 687b ldr r3, [r7, #4] 8012c58: 2200 movs r2, #0 8012c5a: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 /* Init the low level hardware */ HAL_LTDC_MspInit(hltdc); 8012c5e: 6878 ldr r0, [r7, #4] 8012c60: f7f1 ff10 bl 8004a84 } #endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */ /* Change LTDC peripheral state */ hltdc->State = HAL_LTDC_STATE_BUSY; 8012c64: 687b ldr r3, [r7, #4] 8012c66: 2202 movs r2, #2 8012c68: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Configure the HS, VS, DE and PC polarity */ hltdc->Instance->GCR &= ~(LTDC_GCR_HSPOL | LTDC_GCR_VSPOL | LTDC_GCR_DEPOL | LTDC_GCR_PCPOL); 8012c6c: 687b ldr r3, [r7, #4] 8012c6e: 681b ldr r3, [r3, #0] 8012c70: 687a ldr r2, [r7, #4] 8012c72: 6812 ldr r2, [r2, #0] 8012c74: 6992 ldr r2, [r2, #24] 8012c76: f022 4270 bic.w r2, r2, #4026531840 ; 0xf0000000 8012c7a: 619a str r2, [r3, #24] hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \ 8012c7c: 687b ldr r3, [r7, #4] 8012c7e: 681b ldr r3, [r3, #0] 8012c80: 687a ldr r2, [r7, #4] 8012c82: 6812 ldr r2, [r2, #0] 8012c84: 6991 ldr r1, [r2, #24] 8012c86: 687a ldr r2, [r7, #4] 8012c88: 6850 ldr r0, [r2, #4] 8012c8a: 687a ldr r2, [r7, #4] 8012c8c: 6892 ldr r2, [r2, #8] 8012c8e: 4310 orrs r0, r2 hltdc->Init.DEPolarity | hltdc->Init.PCPolarity); 8012c90: 687a ldr r2, [r7, #4] 8012c92: 68d2 ldr r2, [r2, #12] hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \ 8012c94: 4310 orrs r0, r2 hltdc->Init.DEPolarity | hltdc->Init.PCPolarity); 8012c96: 687a ldr r2, [r7, #4] 8012c98: 6912 ldr r2, [r2, #16] 8012c9a: 4302 orrs r2, r0 hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \ 8012c9c: 430a orrs r2, r1 8012c9e: 619a str r2, [r3, #24] /* Set Synchronization size */ hltdc->Instance->SSCR &= ~(LTDC_SSCR_VSH | LTDC_SSCR_HSW); 8012ca0: 687b ldr r3, [r7, #4] 8012ca2: 681a ldr r2, [r3, #0] 8012ca4: 687b ldr r3, [r7, #4] 8012ca6: 681b ldr r3, [r3, #0] 8012ca8: 6899 ldr r1, [r3, #8] 8012caa: 4b4a ldr r3, [pc, #296] ; (8012dd4 ) 8012cac: 400b ands r3, r1 8012cae: 6093 str r3, [r2, #8] tmp = (hltdc->Init.HorizontalSync << 16U); 8012cb0: 687b ldr r3, [r7, #4] 8012cb2: 695b ldr r3, [r3, #20] 8012cb4: 041b lsls r3, r3, #16 8012cb6: 60fb str r3, [r7, #12] hltdc->Instance->SSCR |= (tmp | hltdc->Init.VerticalSync); 8012cb8: 687b ldr r3, [r7, #4] 8012cba: 681b ldr r3, [r3, #0] 8012cbc: 687a ldr r2, [r7, #4] 8012cbe: 6812 ldr r2, [r2, #0] 8012cc0: 6891 ldr r1, [r2, #8] 8012cc2: 687a ldr r2, [r7, #4] 8012cc4: 6990 ldr r0, [r2, #24] 8012cc6: 68fa ldr r2, [r7, #12] 8012cc8: 4302 orrs r2, r0 8012cca: 430a orrs r2, r1 8012ccc: 609a str r2, [r3, #8] /* Set Accumulated Back porch */ hltdc->Instance->BPCR &= ~(LTDC_BPCR_AVBP | LTDC_BPCR_AHBP); 8012cce: 687b ldr r3, [r7, #4] 8012cd0: 681a ldr r2, [r3, #0] 8012cd2: 687b ldr r3, [r7, #4] 8012cd4: 681b ldr r3, [r3, #0] 8012cd6: 68d9 ldr r1, [r3, #12] 8012cd8: 4b3e ldr r3, [pc, #248] ; (8012dd4 ) 8012cda: 400b ands r3, r1 8012cdc: 60d3 str r3, [r2, #12] tmp = (hltdc->Init.AccumulatedHBP << 16U); 8012cde: 687b ldr r3, [r7, #4] 8012ce0: 69db ldr r3, [r3, #28] 8012ce2: 041b lsls r3, r3, #16 8012ce4: 60fb str r3, [r7, #12] hltdc->Instance->BPCR |= (tmp | hltdc->Init.AccumulatedVBP); 8012ce6: 687b ldr r3, [r7, #4] 8012ce8: 681b ldr r3, [r3, #0] 8012cea: 687a ldr r2, [r7, #4] 8012cec: 6812 ldr r2, [r2, #0] 8012cee: 68d1 ldr r1, [r2, #12] 8012cf0: 687a ldr r2, [r7, #4] 8012cf2: 6a10 ldr r0, [r2, #32] 8012cf4: 68fa ldr r2, [r7, #12] 8012cf6: 4302 orrs r2, r0 8012cf8: 430a orrs r2, r1 8012cfa: 60da str r2, [r3, #12] /* Set Accumulated Active Width */ hltdc->Instance->AWCR &= ~(LTDC_AWCR_AAH | LTDC_AWCR_AAW); 8012cfc: 687b ldr r3, [r7, #4] 8012cfe: 681a ldr r2, [r3, #0] 8012d00: 687b ldr r3, [r7, #4] 8012d02: 681b ldr r3, [r3, #0] 8012d04: 6919 ldr r1, [r3, #16] 8012d06: 4b33 ldr r3, [pc, #204] ; (8012dd4 ) 8012d08: 400b ands r3, r1 8012d0a: 6113 str r3, [r2, #16] tmp = (hltdc->Init.AccumulatedActiveW << 16U); 8012d0c: 687b ldr r3, [r7, #4] 8012d0e: 6a5b ldr r3, [r3, #36] ; 0x24 8012d10: 041b lsls r3, r3, #16 8012d12: 60fb str r3, [r7, #12] hltdc->Instance->AWCR |= (tmp | hltdc->Init.AccumulatedActiveH); 8012d14: 687b ldr r3, [r7, #4] 8012d16: 681b ldr r3, [r3, #0] 8012d18: 687a ldr r2, [r7, #4] 8012d1a: 6812 ldr r2, [r2, #0] 8012d1c: 6911 ldr r1, [r2, #16] 8012d1e: 687a ldr r2, [r7, #4] 8012d20: 6a90 ldr r0, [r2, #40] ; 0x28 8012d22: 68fa ldr r2, [r7, #12] 8012d24: 4302 orrs r2, r0 8012d26: 430a orrs r2, r1 8012d28: 611a str r2, [r3, #16] /* Set Total Width */ hltdc->Instance->TWCR &= ~(LTDC_TWCR_TOTALH | LTDC_TWCR_TOTALW); 8012d2a: 687b ldr r3, [r7, #4] 8012d2c: 681a ldr r2, [r3, #0] 8012d2e: 687b ldr r3, [r7, #4] 8012d30: 681b ldr r3, [r3, #0] 8012d32: 6959 ldr r1, [r3, #20] 8012d34: 4b27 ldr r3, [pc, #156] ; (8012dd4 ) 8012d36: 400b ands r3, r1 8012d38: 6153 str r3, [r2, #20] tmp = (hltdc->Init.TotalWidth << 16U); 8012d3a: 687b ldr r3, [r7, #4] 8012d3c: 6adb ldr r3, [r3, #44] ; 0x2c 8012d3e: 041b lsls r3, r3, #16 8012d40: 60fb str r3, [r7, #12] hltdc->Instance->TWCR |= (tmp | hltdc->Init.TotalHeigh); 8012d42: 687b ldr r3, [r7, #4] 8012d44: 681b ldr r3, [r3, #0] 8012d46: 687a ldr r2, [r7, #4] 8012d48: 6812 ldr r2, [r2, #0] 8012d4a: 6951 ldr r1, [r2, #20] 8012d4c: 687a ldr r2, [r7, #4] 8012d4e: 6b10 ldr r0, [r2, #48] ; 0x30 8012d50: 68fa ldr r2, [r7, #12] 8012d52: 4302 orrs r2, r0 8012d54: 430a orrs r2, r1 8012d56: 615a str r2, [r3, #20] /* Set the background color value */ tmp = ((uint32_t)(hltdc->Init.Backcolor.Green) << 8U); 8012d58: 687b ldr r3, [r7, #4] 8012d5a: f893 3035 ldrb.w r3, [r3, #53] ; 0x35 8012d5e: 021b lsls r3, r3, #8 8012d60: 60fb str r3, [r7, #12] tmp1 = ((uint32_t)(hltdc->Init.Backcolor.Red) << 16U); 8012d62: 687b ldr r3, [r7, #4] 8012d64: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 8012d68: 041b lsls r3, r3, #16 8012d6a: 60bb str r3, [r7, #8] hltdc->Instance->BCCR &= ~(LTDC_BCCR_BCBLUE | LTDC_BCCR_BCGREEN | LTDC_BCCR_BCRED); 8012d6c: 687b ldr r3, [r7, #4] 8012d6e: 681b ldr r3, [r3, #0] 8012d70: 687a ldr r2, [r7, #4] 8012d72: 6812 ldr r2, [r2, #0] 8012d74: 6ad2 ldr r2, [r2, #44] ; 0x2c 8012d76: f002 427f and.w r2, r2, #4278190080 ; 0xff000000 8012d7a: 62da str r2, [r3, #44] ; 0x2c hltdc->Instance->BCCR |= (tmp1 | tmp | hltdc->Init.Backcolor.Blue); 8012d7c: 687b ldr r3, [r7, #4] 8012d7e: 681b ldr r3, [r3, #0] 8012d80: 687a ldr r2, [r7, #4] 8012d82: 6812 ldr r2, [r2, #0] 8012d84: 6ad1 ldr r1, [r2, #44] ; 0x2c 8012d86: 68b8 ldr r0, [r7, #8] 8012d88: 68fa ldr r2, [r7, #12] 8012d8a: 4302 orrs r2, r0 8012d8c: 6878 ldr r0, [r7, #4] 8012d8e: f890 0034 ldrb.w r0, [r0, #52] ; 0x34 8012d92: 4302 orrs r2, r0 8012d94: 430a orrs r2, r1 8012d96: 62da str r2, [r3, #44] ; 0x2c /* Enable the Transfer Error and FIFO underrun interrupts */ __HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_TE | LTDC_IT_FU); 8012d98: 687b ldr r3, [r7, #4] 8012d9a: 681b ldr r3, [r3, #0] 8012d9c: 687a ldr r2, [r7, #4] 8012d9e: 6812 ldr r2, [r2, #0] 8012da0: 6b52 ldr r2, [r2, #52] ; 0x34 8012da2: f042 0206 orr.w r2, r2, #6 8012da6: 635a str r2, [r3, #52] ; 0x34 /* Enable LTDC by setting LTDCEN bit */ __HAL_LTDC_ENABLE(hltdc); 8012da8: 687b ldr r3, [r7, #4] 8012daa: 681b ldr r3, [r3, #0] 8012dac: 687a ldr r2, [r7, #4] 8012dae: 6812 ldr r2, [r2, #0] 8012db0: 6992 ldr r2, [r2, #24] 8012db2: f042 0201 orr.w r2, r2, #1 8012db6: 619a str r2, [r3, #24] /* Initialize the error code */ hltdc->ErrorCode = HAL_LTDC_ERROR_NONE; 8012db8: 687b ldr r3, [r7, #4] 8012dba: 2200 movs r2, #0 8012dbc: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4 /* Initialize the LTDC state*/ hltdc->State = HAL_LTDC_STATE_READY; 8012dc0: 687b ldr r3, [r7, #4] 8012dc2: 2201 movs r2, #1 8012dc4: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 return HAL_OK; 8012dc8: 2300 movs r3, #0 } 8012dca: 4618 mov r0, r3 8012dcc: 3710 adds r7, #16 8012dce: 46bd mov sp, r7 8012dd0: bd80 pop {r7, pc} 8012dd2: bf00 nop 8012dd4: f000f800 .word 0xf000f800 08012dd8 : * @param hltdc pointer to a LTDC_HandleTypeDef structure that contains * the configuration information for the LTDC. * @retval HAL status */ void HAL_LTDC_IRQHandler(LTDC_HandleTypeDef *hltdc) { 8012dd8: b580 push {r7, lr} 8012dda: b084 sub sp, #16 8012ddc: af00 add r7, sp, #0 8012dde: 6078 str r0, [r7, #4] uint32_t isrflags = READ_REG(hltdc->Instance->ISR); 8012de0: 687b ldr r3, [r7, #4] 8012de2: 681b ldr r3, [r3, #0] 8012de4: 6b9b ldr r3, [r3, #56] ; 0x38 8012de6: 60fb str r3, [r7, #12] uint32_t itsources = READ_REG(hltdc->Instance->IER); 8012de8: 687b ldr r3, [r7, #4] 8012dea: 681b ldr r3, [r3, #0] 8012dec: 6b5b ldr r3, [r3, #52] ; 0x34 8012dee: 60bb str r3, [r7, #8] /* Transfer Error Interrupt management ***************************************/ if (((isrflags & LTDC_ISR_TERRIF) != 0U) && ((itsources & LTDC_IER_TERRIE) != 0U)) 8012df0: 68fb ldr r3, [r7, #12] 8012df2: f003 0304 and.w r3, r3, #4 8012df6: 2b00 cmp r3, #0 8012df8: d023 beq.n 8012e42 8012dfa: 68bb ldr r3, [r7, #8] 8012dfc: f003 0304 and.w r3, r3, #4 8012e00: 2b00 cmp r3, #0 8012e02: d01e beq.n 8012e42 { /* Disable the transfer Error interrupt */ __HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_TE); 8012e04: 687b ldr r3, [r7, #4] 8012e06: 681b ldr r3, [r3, #0] 8012e08: 687a ldr r2, [r7, #4] 8012e0a: 6812 ldr r2, [r2, #0] 8012e0c: 6b52 ldr r2, [r2, #52] ; 0x34 8012e0e: f022 0204 bic.w r2, r2, #4 8012e12: 635a str r2, [r3, #52] ; 0x34 /* Clear the transfer error flag */ __HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_TE); 8012e14: 687b ldr r3, [r7, #4] 8012e16: 681b ldr r3, [r3, #0] 8012e18: 2204 movs r2, #4 8012e1a: 63da str r2, [r3, #60] ; 0x3c /* Update error code */ hltdc->ErrorCode |= HAL_LTDC_ERROR_TE; 8012e1c: 687b ldr r3, [r7, #4] 8012e1e: f8d3 30a4 ldr.w r3, [r3, #164] ; 0xa4 8012e22: f043 0201 orr.w r2, r3, #1 8012e26: 687b ldr r3, [r7, #4] 8012e28: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4 /* Change LTDC state */ hltdc->State = HAL_LTDC_STATE_ERROR; 8012e2c: 687b ldr r3, [r7, #4] 8012e2e: 2204 movs r2, #4 8012e30: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Process unlocked */ __HAL_UNLOCK(hltdc); 8012e34: 687b ldr r3, [r7, #4] 8012e36: 2200 movs r2, #0 8012e38: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1) /*Call registered error callback*/ hltdc->ErrorCallback(hltdc); #else /* Call legacy error callback*/ HAL_LTDC_ErrorCallback(hltdc); 8012e3c: 6878 ldr r0, [r7, #4] 8012e3e: f000 f86f bl 8012f20 #endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */ } /* FIFO underrun Interrupt management ***************************************/ if (((isrflags & LTDC_ISR_FUIF) != 0U) && ((itsources & LTDC_IER_FUIE) != 0U)) 8012e42: 68fb ldr r3, [r7, #12] 8012e44: f003 0302 and.w r3, r3, #2 8012e48: 2b00 cmp r3, #0 8012e4a: d023 beq.n 8012e94 8012e4c: 68bb ldr r3, [r7, #8] 8012e4e: f003 0302 and.w r3, r3, #2 8012e52: 2b00 cmp r3, #0 8012e54: d01e beq.n 8012e94 { /* Disable the FIFO underrun interrupt */ __HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_FU); 8012e56: 687b ldr r3, [r7, #4] 8012e58: 681b ldr r3, [r3, #0] 8012e5a: 687a ldr r2, [r7, #4] 8012e5c: 6812 ldr r2, [r2, #0] 8012e5e: 6b52 ldr r2, [r2, #52] ; 0x34 8012e60: f022 0202 bic.w r2, r2, #2 8012e64: 635a str r2, [r3, #52] ; 0x34 /* Clear the FIFO underrun flag */ __HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_FU); 8012e66: 687b ldr r3, [r7, #4] 8012e68: 681b ldr r3, [r3, #0] 8012e6a: 2202 movs r2, #2 8012e6c: 63da str r2, [r3, #60] ; 0x3c /* Update error code */ hltdc->ErrorCode |= HAL_LTDC_ERROR_FU; 8012e6e: 687b ldr r3, [r7, #4] 8012e70: f8d3 30a4 ldr.w r3, [r3, #164] ; 0xa4 8012e74: f043 0202 orr.w r2, r3, #2 8012e78: 687b ldr r3, [r7, #4] 8012e7a: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4 /* Change LTDC state */ hltdc->State = HAL_LTDC_STATE_ERROR; 8012e7e: 687b ldr r3, [r7, #4] 8012e80: 2204 movs r2, #4 8012e82: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Process unlocked */ __HAL_UNLOCK(hltdc); 8012e86: 687b ldr r3, [r7, #4] 8012e88: 2200 movs r2, #0 8012e8a: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1) /*Call registered error callback*/ hltdc->ErrorCallback(hltdc); #else /* Call legacy error callback*/ HAL_LTDC_ErrorCallback(hltdc); 8012e8e: 6878 ldr r0, [r7, #4] 8012e90: f000 f846 bl 8012f20 #endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */ } /* Line Interrupt management ************************************************/ if (((isrflags & LTDC_ISR_LIF) != 0U) && ((itsources & LTDC_IER_LIE) != 0U)) 8012e94: 68fb ldr r3, [r7, #12] 8012e96: f003 0301 and.w r3, r3, #1 8012e9a: 2b00 cmp r3, #0 8012e9c: d01b beq.n 8012ed6 8012e9e: 68bb ldr r3, [r7, #8] 8012ea0: f003 0301 and.w r3, r3, #1 8012ea4: 2b00 cmp r3, #0 8012ea6: d016 beq.n 8012ed6 { /* Disable the Line interrupt */ __HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_LI); 8012ea8: 687b ldr r3, [r7, #4] 8012eaa: 681b ldr r3, [r3, #0] 8012eac: 687a ldr r2, [r7, #4] 8012eae: 6812 ldr r2, [r2, #0] 8012eb0: 6b52 ldr r2, [r2, #52] ; 0x34 8012eb2: f022 0201 bic.w r2, r2, #1 8012eb6: 635a str r2, [r3, #52] ; 0x34 /* Clear the Line interrupt flag */ __HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_LI); 8012eb8: 687b ldr r3, [r7, #4] 8012eba: 681b ldr r3, [r3, #0] 8012ebc: 2201 movs r2, #1 8012ebe: 63da str r2, [r3, #60] ; 0x3c /* Change LTDC state */ hltdc->State = HAL_LTDC_STATE_READY; 8012ec0: 687b ldr r3, [r7, #4] 8012ec2: 2201 movs r2, #1 8012ec4: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Process unlocked */ __HAL_UNLOCK(hltdc); 8012ec8: 687b ldr r3, [r7, #4] 8012eca: 2200 movs r2, #0 8012ecc: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1) /*Call registered Line Event callback */ hltdc->LineEventCallback(hltdc); #else /*Call Legacy Line Event callback */ HAL_LTDC_LineEventCallback(hltdc); 8012ed0: 6878 ldr r0, [r7, #4] 8012ed2: f7f2 fdf1 bl 8005ab8 #endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */ } /* Register reload Interrupt management ***************************************/ if (((isrflags & LTDC_ISR_RRIF) != 0U) && ((itsources & LTDC_IER_RRIE) != 0U)) 8012ed6: 68fb ldr r3, [r7, #12] 8012ed8: f003 0308 and.w r3, r3, #8 8012edc: 2b00 cmp r3, #0 8012ede: d01b beq.n 8012f18 8012ee0: 68bb ldr r3, [r7, #8] 8012ee2: f003 0308 and.w r3, r3, #8 8012ee6: 2b00 cmp r3, #0 8012ee8: d016 beq.n 8012f18 { /* Disable the register reload interrupt */ __HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_RR); 8012eea: 687b ldr r3, [r7, #4] 8012eec: 681b ldr r3, [r3, #0] 8012eee: 687a ldr r2, [r7, #4] 8012ef0: 6812 ldr r2, [r2, #0] 8012ef2: 6b52 ldr r2, [r2, #52] ; 0x34 8012ef4: f022 0208 bic.w r2, r2, #8 8012ef8: 635a str r2, [r3, #52] ; 0x34 /* Clear the register reload flag */ __HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_RR); 8012efa: 687b ldr r3, [r7, #4] 8012efc: 681b ldr r3, [r3, #0] 8012efe: 2208 movs r2, #8 8012f00: 63da str r2, [r3, #60] ; 0x3c /* Change LTDC state */ hltdc->State = HAL_LTDC_STATE_READY; 8012f02: 687b ldr r3, [r7, #4] 8012f04: 2201 movs r2, #1 8012f06: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Process unlocked */ __HAL_UNLOCK(hltdc); 8012f0a: 687b ldr r3, [r7, #4] 8012f0c: 2200 movs r2, #0 8012f0e: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1) /*Call registered reload Event callback */ hltdc->ReloadEventCallback(hltdc); #else /*Call Legacy Reload Event callback */ HAL_LTDC_ReloadEventCallback(hltdc); 8012f12: 6878 ldr r0, [r7, #4] 8012f14: f000 f80e bl 8012f34 #endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */ } } 8012f18: bf00 nop 8012f1a: 3710 adds r7, #16 8012f1c: 46bd mov sp, r7 8012f1e: bd80 pop {r7, pc} 08012f20 : * @param hltdc pointer to a LTDC_HandleTypeDef structure that contains * the configuration information for the LTDC. * @retval None */ __weak void HAL_LTDC_ErrorCallback(LTDC_HandleTypeDef *hltdc) { 8012f20: b480 push {r7} 8012f22: b083 sub sp, #12 8012f24: af00 add r7, sp, #0 8012f26: 6078 str r0, [r7, #4] UNUSED(hltdc); /* NOTE : This function should not be modified, when the callback is needed, the HAL_LTDC_ErrorCallback could be implemented in the user file */ } 8012f28: bf00 nop 8012f2a: 370c adds r7, #12 8012f2c: 46bd mov sp, r7 8012f2e: f85d 7b04 ldr.w r7, [sp], #4 8012f32: 4770 bx lr 08012f34 : * @param hltdc pointer to a LTDC_HandleTypeDef structure that contains * the configuration information for the LTDC. * @retval None */ __weak void HAL_LTDC_ReloadEventCallback(LTDC_HandleTypeDef *hltdc) { 8012f34: b480 push {r7} 8012f36: b083 sub sp, #12 8012f38: af00 add r7, sp, #0 8012f3a: 6078 str r0, [r7, #4] UNUSED(hltdc); /* NOTE : This function should not be modified, when the callback is needed, the HAL_LTDC_ReloadEvenCallback could be implemented in the user file */ } 8012f3c: bf00 nop 8012f3e: 370c adds r7, #12 8012f40: 46bd mov sp, r7 8012f42: f85d 7b04 ldr.w r7, [sp], #4 8012f46: 4770 bx lr 08012f48 : * This parameter can be one of the following values: * LTDC_LAYER_1 (0) or LTDC_LAYER_2 (1) * @retval HAL status */ HAL_StatusTypeDef HAL_LTDC_ConfigLayer(LTDC_HandleTypeDef *hltdc, LTDC_LayerCfgTypeDef *pLayerCfg, uint32_t LayerIdx) { 8012f48: b5b0 push {r4, r5, r7, lr} 8012f4a: b084 sub sp, #16 8012f4c: af00 add r7, sp, #0 8012f4e: 60f8 str r0, [r7, #12] 8012f50: 60b9 str r1, [r7, #8] 8012f52: 607a str r2, [r7, #4] assert_param(IS_LTDC_BLENDING_FACTOR2(pLayerCfg->BlendingFactor2)); assert_param(IS_LTDC_CFBLL(pLayerCfg->ImageWidth)); assert_param(IS_LTDC_CFBLNBR(pLayerCfg->ImageHeight)); /* Process locked */ __HAL_LOCK(hltdc); 8012f54: 68fb ldr r3, [r7, #12] 8012f56: f893 30a0 ldrb.w r3, [r3, #160] ; 0xa0 8012f5a: 2b01 cmp r3, #1 8012f5c: d101 bne.n 8012f62 8012f5e: 2302 movs r3, #2 8012f60: e02c b.n 8012fbc 8012f62: 68fb ldr r3, [r7, #12] 8012f64: 2201 movs r2, #1 8012f66: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 /* Change LTDC peripheral state */ hltdc->State = HAL_LTDC_STATE_BUSY; 8012f6a: 68fb ldr r3, [r7, #12] 8012f6c: 2202 movs r2, #2 8012f6e: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Copy new layer configuration into handle structure */ hltdc->LayerCfg[LayerIdx] = *pLayerCfg; 8012f72: 68fa ldr r2, [r7, #12] 8012f74: 687b ldr r3, [r7, #4] 8012f76: 2134 movs r1, #52 ; 0x34 8012f78: fb01 f303 mul.w r3, r1, r3 8012f7c: 4413 add r3, r2 8012f7e: f103 0238 add.w r2, r3, #56 ; 0x38 8012f82: 68bb ldr r3, [r7, #8] 8012f84: 4614 mov r4, r2 8012f86: 461d mov r5, r3 8012f88: cd0f ldmia r5!, {r0, r1, r2, r3} 8012f8a: c40f stmia r4!, {r0, r1, r2, r3} 8012f8c: cd0f ldmia r5!, {r0, r1, r2, r3} 8012f8e: c40f stmia r4!, {r0, r1, r2, r3} 8012f90: cd0f ldmia r5!, {r0, r1, r2, r3} 8012f92: c40f stmia r4!, {r0, r1, r2, r3} 8012f94: 682b ldr r3, [r5, #0] 8012f96: 6023 str r3, [r4, #0] /* Configure the LTDC Layer */ LTDC_SetConfig(hltdc, pLayerCfg, LayerIdx); 8012f98: 687a ldr r2, [r7, #4] 8012f9a: 68b9 ldr r1, [r7, #8] 8012f9c: 68f8 ldr r0, [r7, #12] 8012f9e: f000 f879 bl 8013094 /* Set the Immediate Reload type */ hltdc->Instance->SRCR = LTDC_SRCR_IMR; 8012fa2: 68fb ldr r3, [r7, #12] 8012fa4: 681b ldr r3, [r3, #0] 8012fa6: 2201 movs r2, #1 8012fa8: 625a str r2, [r3, #36] ; 0x24 /* Initialize the LTDC state*/ hltdc->State = HAL_LTDC_STATE_READY; 8012faa: 68fb ldr r3, [r7, #12] 8012fac: 2201 movs r2, #1 8012fae: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Process unlocked */ __HAL_UNLOCK(hltdc); 8012fb2: 68fb ldr r3, [r7, #12] 8012fb4: 2200 movs r2, #0 8012fb6: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 return HAL_OK; 8012fba: 2300 movs r3, #0 } 8012fbc: 4618 mov r0, r3 8012fbe: 3710 adds r7, #16 8012fc0: 46bd mov sp, r7 8012fc2: bdb0 pop {r4, r5, r7, pc} 08012fc4 : * @param Line Line Interrupt Position. * @note User application may resort to HAL_LTDC_LineEventCallback() at line interrupt generation. * @retval HAL status */ HAL_StatusTypeDef HAL_LTDC_ProgramLineEvent(LTDC_HandleTypeDef *hltdc, uint32_t Line) { 8012fc4: b480 push {r7} 8012fc6: b083 sub sp, #12 8012fc8: af00 add r7, sp, #0 8012fca: 6078 str r0, [r7, #4] 8012fcc: 6039 str r1, [r7, #0] /* Check the parameters */ assert_param(IS_LTDC_LIPOS(Line)); /* Process locked */ __HAL_LOCK(hltdc); 8012fce: 687b ldr r3, [r7, #4] 8012fd0: f893 30a0 ldrb.w r3, [r3, #160] ; 0xa0 8012fd4: 2b01 cmp r3, #1 8012fd6: d101 bne.n 8012fdc 8012fd8: 2302 movs r3, #2 8012fda: e023 b.n 8013024 8012fdc: 687b ldr r3, [r7, #4] 8012fde: 2201 movs r2, #1 8012fe0: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 /* Change LTDC peripheral state */ hltdc->State = HAL_LTDC_STATE_BUSY; 8012fe4: 687b ldr r3, [r7, #4] 8012fe6: 2202 movs r2, #2 8012fe8: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Disable the Line interrupt */ __HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_LI); 8012fec: 687b ldr r3, [r7, #4] 8012fee: 681b ldr r3, [r3, #0] 8012ff0: 687a ldr r2, [r7, #4] 8012ff2: 6812 ldr r2, [r2, #0] 8012ff4: 6b52 ldr r2, [r2, #52] ; 0x34 8012ff6: f022 0201 bic.w r2, r2, #1 8012ffa: 635a str r2, [r3, #52] ; 0x34 /* Set the Line Interrupt position */ LTDC->LIPCR = (uint32_t)Line; 8012ffc: 4a0c ldr r2, [pc, #48] ; (8013030 ) 8012ffe: 683b ldr r3, [r7, #0] 8013000: 6413 str r3, [r2, #64] ; 0x40 /* Enable the Line interrupt */ __HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_LI); 8013002: 687b ldr r3, [r7, #4] 8013004: 681b ldr r3, [r3, #0] 8013006: 687a ldr r2, [r7, #4] 8013008: 6812 ldr r2, [r2, #0] 801300a: 6b52 ldr r2, [r2, #52] ; 0x34 801300c: f042 0201 orr.w r2, r2, #1 8013010: 635a str r2, [r3, #52] ; 0x34 /* Change the LTDC state*/ hltdc->State = HAL_LTDC_STATE_READY; 8013012: 687b ldr r3, [r7, #4] 8013014: 2201 movs r2, #1 8013016: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Process unlocked */ __HAL_UNLOCK(hltdc); 801301a: 687b ldr r3, [r7, #4] 801301c: 2200 movs r2, #0 801301e: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 return HAL_OK; 8013022: 2300 movs r3, #0 } 8013024: 4618 mov r0, r3 8013026: 370c adds r7, #12 8013028: 46bd mov sp, r7 801302a: f85d 7b04 ldr.w r7, [sp], #4 801302e: 4770 bx lr 8013030: 40016800 .word 0x40016800 08013034 : * LTDC_RELOAD_VERTICAL_BLANKING : Reload in the next Vertical Blanking * @note User application may resort to HAL_LTDC_ReloadEventCallback() at reload interrupt generation. * @retval HAL status */ HAL_StatusTypeDef HAL_LTDC_Reload(LTDC_HandleTypeDef *hltdc, uint32_t ReloadType) { 8013034: b480 push {r7} 8013036: b083 sub sp, #12 8013038: af00 add r7, sp, #0 801303a: 6078 str r0, [r7, #4] 801303c: 6039 str r1, [r7, #0] /* Check the parameters */ assert_param(IS_LTDC_RELOAD(ReloadType)); /* Process locked */ __HAL_LOCK(hltdc); 801303e: 687b ldr r3, [r7, #4] 8013040: f893 30a0 ldrb.w r3, [r3, #160] ; 0xa0 8013044: 2b01 cmp r3, #1 8013046: d101 bne.n 801304c 8013048: 2302 movs r3, #2 801304a: e01c b.n 8013086 801304c: 687b ldr r3, [r7, #4] 801304e: 2201 movs r2, #1 8013050: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 /* Change LTDC peripheral state */ hltdc->State = HAL_LTDC_STATE_BUSY; 8013054: 687b ldr r3, [r7, #4] 8013056: 2202 movs r2, #2 8013058: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Enable the Reload interrupt */ __HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_RR); 801305c: 687b ldr r3, [r7, #4] 801305e: 681b ldr r3, [r3, #0] 8013060: 687a ldr r2, [r7, #4] 8013062: 6812 ldr r2, [r2, #0] 8013064: 6b52 ldr r2, [r2, #52] ; 0x34 8013066: f042 0208 orr.w r2, r2, #8 801306a: 635a str r2, [r3, #52] ; 0x34 /* Apply Reload type */ hltdc->Instance->SRCR = ReloadType; 801306c: 687b ldr r3, [r7, #4] 801306e: 681b ldr r3, [r3, #0] 8013070: 683a ldr r2, [r7, #0] 8013072: 625a str r2, [r3, #36] ; 0x24 /* Change the LTDC state*/ hltdc->State = HAL_LTDC_STATE_READY; 8013074: 687b ldr r3, [r7, #4] 8013076: 2201 movs r2, #1 8013078: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Process unlocked */ __HAL_UNLOCK(hltdc); 801307c: 687b ldr r3, [r7, #4] 801307e: 2200 movs r2, #0 8013080: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 return HAL_OK; 8013084: 2300 movs r3, #0 } 8013086: 4618 mov r0, r3 8013088: 370c adds r7, #12 801308a: 46bd mov sp, r7 801308c: f85d 7b04 ldr.w r7, [sp], #4 8013090: 4770 bx lr ... 08013094 : * @param LayerIdx LTDC Layer index. * This parameter can be one of the following values: LTDC_LAYER_1 (0) or LTDC_LAYER_2 (1) * @retval None */ static void LTDC_SetConfig(LTDC_HandleTypeDef *hltdc, LTDC_LayerCfgTypeDef *pLayerCfg, uint32_t LayerIdx) { 8013094: b480 push {r7} 8013096: b089 sub sp, #36 ; 0x24 8013098: af00 add r7, sp, #0 801309a: 60f8 str r0, [r7, #12] 801309c: 60b9 str r1, [r7, #8] 801309e: 607a str r2, [r7, #4] uint32_t tmp; uint32_t tmp1; uint32_t tmp2; /* Configure the horizontal start and stop position */ tmp = ((pLayerCfg->WindowX1 + ((hltdc->Instance->BPCR & LTDC_BPCR_AHBP) >> 16U)) << 16U); 80130a0: 68bb ldr r3, [r7, #8] 80130a2: 685a ldr r2, [r3, #4] 80130a4: 68fb ldr r3, [r7, #12] 80130a6: 681b ldr r3, [r3, #0] 80130a8: 68db ldr r3, [r3, #12] 80130aa: 0c1b lsrs r3, r3, #16 80130ac: f3c3 030b ubfx r3, r3, #0, #12 80130b0: 4413 add r3, r2 80130b2: 041b lsls r3, r3, #16 80130b4: 61fb str r3, [r7, #28] LTDC_LAYER(hltdc, LayerIdx)->WHPCR &= ~(LTDC_LxWHPCR_WHSTPOS | LTDC_LxWHPCR_WHSPPOS); 80130b6: 68fb ldr r3, [r7, #12] 80130b8: 681b ldr r3, [r3, #0] 80130ba: 461a mov r2, r3 80130bc: 687b ldr r3, [r7, #4] 80130be: 01db lsls r3, r3, #7 80130c0: 4413 add r3, r2 80130c2: 3384 adds r3, #132 ; 0x84 80130c4: 461a mov r2, r3 80130c6: 68fb ldr r3, [r7, #12] 80130c8: 681b ldr r3, [r3, #0] 80130ca: 4619 mov r1, r3 80130cc: 687b ldr r3, [r7, #4] 80130ce: 01db lsls r3, r3, #7 80130d0: 440b add r3, r1 80130d2: 3384 adds r3, #132 ; 0x84 80130d4: 685b ldr r3, [r3, #4] 80130d6: f403 4370 and.w r3, r3, #61440 ; 0xf000 80130da: 6053 str r3, [r2, #4] LTDC_LAYER(hltdc, LayerIdx)->WHPCR = ((pLayerCfg->WindowX0 + ((hltdc->Instance->BPCR & LTDC_BPCR_AHBP) >> 16U) + 1U) | tmp); 80130dc: 68fb ldr r3, [r7, #12] 80130de: 681b ldr r3, [r3, #0] 80130e0: 461a mov r2, r3 80130e2: 687b ldr r3, [r7, #4] 80130e4: 01db lsls r3, r3, #7 80130e6: 4413 add r3, r2 80130e8: 3384 adds r3, #132 ; 0x84 80130ea: 4619 mov r1, r3 80130ec: 68bb ldr r3, [r7, #8] 80130ee: 681a ldr r2, [r3, #0] 80130f0: 68fb ldr r3, [r7, #12] 80130f2: 681b ldr r3, [r3, #0] 80130f4: 68db ldr r3, [r3, #12] 80130f6: 0c1b lsrs r3, r3, #16 80130f8: f3c3 030b ubfx r3, r3, #0, #12 80130fc: 4413 add r3, r2 80130fe: 1c5a adds r2, r3, #1 8013100: 69fb ldr r3, [r7, #28] 8013102: 4313 orrs r3, r2 8013104: 604b str r3, [r1, #4] /* Configure the vertical start and stop position */ tmp = ((pLayerCfg->WindowY1 + (hltdc->Instance->BPCR & LTDC_BPCR_AVBP)) << 16U); 8013106: 68bb ldr r3, [r7, #8] 8013108: 68da ldr r2, [r3, #12] 801310a: 68fb ldr r3, [r7, #12] 801310c: 681b ldr r3, [r3, #0] 801310e: 68db ldr r3, [r3, #12] 8013110: f3c3 030a ubfx r3, r3, #0, #11 8013114: 4413 add r3, r2 8013116: 041b lsls r3, r3, #16 8013118: 61fb str r3, [r7, #28] LTDC_LAYER(hltdc, LayerIdx)->WVPCR &= ~(LTDC_LxWVPCR_WVSTPOS | LTDC_LxWVPCR_WVSPPOS); 801311a: 68fb ldr r3, [r7, #12] 801311c: 681b ldr r3, [r3, #0] 801311e: 461a mov r2, r3 8013120: 687b ldr r3, [r7, #4] 8013122: 01db lsls r3, r3, #7 8013124: 4413 add r3, r2 8013126: 3384 adds r3, #132 ; 0x84 8013128: 461a mov r2, r3 801312a: 68fb ldr r3, [r7, #12] 801312c: 681b ldr r3, [r3, #0] 801312e: 4619 mov r1, r3 8013130: 687b ldr r3, [r7, #4] 8013132: 01db lsls r3, r3, #7 8013134: 440b add r3, r1 8013136: 3384 adds r3, #132 ; 0x84 8013138: 689b ldr r3, [r3, #8] 801313a: f403 4370 and.w r3, r3, #61440 ; 0xf000 801313e: 6093 str r3, [r2, #8] LTDC_LAYER(hltdc, LayerIdx)->WVPCR = ((pLayerCfg->WindowY0 + (hltdc->Instance->BPCR & LTDC_BPCR_AVBP) + 1U) | tmp); 8013140: 68fb ldr r3, [r7, #12] 8013142: 681b ldr r3, [r3, #0] 8013144: 461a mov r2, r3 8013146: 687b ldr r3, [r7, #4] 8013148: 01db lsls r3, r3, #7 801314a: 4413 add r3, r2 801314c: 3384 adds r3, #132 ; 0x84 801314e: 4619 mov r1, r3 8013150: 68bb ldr r3, [r7, #8] 8013152: 689a ldr r2, [r3, #8] 8013154: 68fb ldr r3, [r7, #12] 8013156: 681b ldr r3, [r3, #0] 8013158: 68db ldr r3, [r3, #12] 801315a: f3c3 030a ubfx r3, r3, #0, #11 801315e: 4413 add r3, r2 8013160: 1c5a adds r2, r3, #1 8013162: 69fb ldr r3, [r7, #28] 8013164: 4313 orrs r3, r2 8013166: 608b str r3, [r1, #8] /* Specifies the pixel format */ LTDC_LAYER(hltdc, LayerIdx)->PFCR &= ~(LTDC_LxPFCR_PF); 8013168: 68fb ldr r3, [r7, #12] 801316a: 681b ldr r3, [r3, #0] 801316c: 461a mov r2, r3 801316e: 687b ldr r3, [r7, #4] 8013170: 01db lsls r3, r3, #7 8013172: 4413 add r3, r2 8013174: 3384 adds r3, #132 ; 0x84 8013176: 461a mov r2, r3 8013178: 68fb ldr r3, [r7, #12] 801317a: 681b ldr r3, [r3, #0] 801317c: 4619 mov r1, r3 801317e: 687b ldr r3, [r7, #4] 8013180: 01db lsls r3, r3, #7 8013182: 440b add r3, r1 8013184: 3384 adds r3, #132 ; 0x84 8013186: 691b ldr r3, [r3, #16] 8013188: f023 0307 bic.w r3, r3, #7 801318c: 6113 str r3, [r2, #16] LTDC_LAYER(hltdc, LayerIdx)->PFCR = (pLayerCfg->PixelFormat); 801318e: 68fb ldr r3, [r7, #12] 8013190: 681b ldr r3, [r3, #0] 8013192: 461a mov r2, r3 8013194: 687b ldr r3, [r7, #4] 8013196: 01db lsls r3, r3, #7 8013198: 4413 add r3, r2 801319a: 3384 adds r3, #132 ; 0x84 801319c: 461a mov r2, r3 801319e: 68bb ldr r3, [r7, #8] 80131a0: 691b ldr r3, [r3, #16] 80131a2: 6113 str r3, [r2, #16] /* Configure the default color values */ tmp = ((uint32_t)(pLayerCfg->Backcolor.Green) << 8U); 80131a4: 68bb ldr r3, [r7, #8] 80131a6: f893 3031 ldrb.w r3, [r3, #49] ; 0x31 80131aa: 021b lsls r3, r3, #8 80131ac: 61fb str r3, [r7, #28] tmp1 = ((uint32_t)(pLayerCfg->Backcolor.Red) << 16U); 80131ae: 68bb ldr r3, [r7, #8] 80131b0: f893 3032 ldrb.w r3, [r3, #50] ; 0x32 80131b4: 041b lsls r3, r3, #16 80131b6: 61bb str r3, [r7, #24] tmp2 = (pLayerCfg->Alpha0 << 24U); 80131b8: 68bb ldr r3, [r7, #8] 80131ba: 699b ldr r3, [r3, #24] 80131bc: 061b lsls r3, r3, #24 80131be: 617b str r3, [r7, #20] LTDC_LAYER(hltdc, LayerIdx)->DCCR &= ~(LTDC_LxDCCR_DCBLUE | LTDC_LxDCCR_DCGREEN | LTDC_LxDCCR_DCRED | LTDC_LxDCCR_DCALPHA); 80131c0: 68fb ldr r3, [r7, #12] 80131c2: 681b ldr r3, [r3, #0] 80131c4: 461a mov r2, r3 80131c6: 687b ldr r3, [r7, #4] 80131c8: 01db lsls r3, r3, #7 80131ca: 4413 add r3, r2 80131cc: 3384 adds r3, #132 ; 0x84 80131ce: 699b ldr r3, [r3, #24] 80131d0: 68fb ldr r3, [r7, #12] 80131d2: 681b ldr r3, [r3, #0] 80131d4: 461a mov r2, r3 80131d6: 687b ldr r3, [r7, #4] 80131d8: 01db lsls r3, r3, #7 80131da: 4413 add r3, r2 80131dc: 3384 adds r3, #132 ; 0x84 80131de: 461a mov r2, r3 80131e0: 2300 movs r3, #0 80131e2: 6193 str r3, [r2, #24] LTDC_LAYER(hltdc, LayerIdx)->DCCR = (pLayerCfg->Backcolor.Blue | tmp | tmp1 | tmp2); 80131e4: 68fb ldr r3, [r7, #12] 80131e6: 681b ldr r3, [r3, #0] 80131e8: 461a mov r2, r3 80131ea: 687b ldr r3, [r7, #4] 80131ec: 01db lsls r3, r3, #7 80131ee: 4413 add r3, r2 80131f0: 3384 adds r3, #132 ; 0x84 80131f2: 4619 mov r1, r3 80131f4: 68bb ldr r3, [r7, #8] 80131f6: f893 3030 ldrb.w r3, [r3, #48] ; 0x30 80131fa: 461a mov r2, r3 80131fc: 69fb ldr r3, [r7, #28] 80131fe: 431a orrs r2, r3 8013200: 69bb ldr r3, [r7, #24] 8013202: 431a orrs r2, r3 8013204: 697b ldr r3, [r7, #20] 8013206: 4313 orrs r3, r2 8013208: 618b str r3, [r1, #24] /* Specifies the constant alpha value */ LTDC_LAYER(hltdc, LayerIdx)->CACR &= ~(LTDC_LxCACR_CONSTA); 801320a: 68fb ldr r3, [r7, #12] 801320c: 681b ldr r3, [r3, #0] 801320e: 461a mov r2, r3 8013210: 687b ldr r3, [r7, #4] 8013212: 01db lsls r3, r3, #7 8013214: 4413 add r3, r2 8013216: 3384 adds r3, #132 ; 0x84 8013218: 461a mov r2, r3 801321a: 68fb ldr r3, [r7, #12] 801321c: 681b ldr r3, [r3, #0] 801321e: 4619 mov r1, r3 8013220: 687b ldr r3, [r7, #4] 8013222: 01db lsls r3, r3, #7 8013224: 440b add r3, r1 8013226: 3384 adds r3, #132 ; 0x84 8013228: 695b ldr r3, [r3, #20] 801322a: f023 03ff bic.w r3, r3, #255 ; 0xff 801322e: 6153 str r3, [r2, #20] LTDC_LAYER(hltdc, LayerIdx)->CACR = (pLayerCfg->Alpha); 8013230: 68fb ldr r3, [r7, #12] 8013232: 681b ldr r3, [r3, #0] 8013234: 461a mov r2, r3 8013236: 687b ldr r3, [r7, #4] 8013238: 01db lsls r3, r3, #7 801323a: 4413 add r3, r2 801323c: 3384 adds r3, #132 ; 0x84 801323e: 461a mov r2, r3 8013240: 68bb ldr r3, [r7, #8] 8013242: 695b ldr r3, [r3, #20] 8013244: 6153 str r3, [r2, #20] /* Specifies the blending factors */ LTDC_LAYER(hltdc, LayerIdx)->BFCR &= ~(LTDC_LxBFCR_BF2 | LTDC_LxBFCR_BF1); 8013246: 68fb ldr r3, [r7, #12] 8013248: 681b ldr r3, [r3, #0] 801324a: 461a mov r2, r3 801324c: 687b ldr r3, [r7, #4] 801324e: 01db lsls r3, r3, #7 8013250: 4413 add r3, r2 8013252: 3384 adds r3, #132 ; 0x84 8013254: 4619 mov r1, r3 8013256: 68fb ldr r3, [r7, #12] 8013258: 681b ldr r3, [r3, #0] 801325a: 461a mov r2, r3 801325c: 687b ldr r3, [r7, #4] 801325e: 01db lsls r3, r3, #7 8013260: 4413 add r3, r2 8013262: 3384 adds r3, #132 ; 0x84 8013264: 69da ldr r2, [r3, #28] 8013266: 4b5a ldr r3, [pc, #360] ; (80133d0 ) 8013268: 4013 ands r3, r2 801326a: 61cb str r3, [r1, #28] LTDC_LAYER(hltdc, LayerIdx)->BFCR = (pLayerCfg->BlendingFactor1 | pLayerCfg->BlendingFactor2); 801326c: 68fb ldr r3, [r7, #12] 801326e: 681b ldr r3, [r3, #0] 8013270: 461a mov r2, r3 8013272: 687b ldr r3, [r7, #4] 8013274: 01db lsls r3, r3, #7 8013276: 4413 add r3, r2 8013278: 3384 adds r3, #132 ; 0x84 801327a: 4619 mov r1, r3 801327c: 68bb ldr r3, [r7, #8] 801327e: 69da ldr r2, [r3, #28] 8013280: 68bb ldr r3, [r7, #8] 8013282: 6a1b ldr r3, [r3, #32] 8013284: 4313 orrs r3, r2 8013286: 61cb str r3, [r1, #28] /* Configure the color frame buffer start address */ LTDC_LAYER(hltdc, LayerIdx)->CFBAR &= ~(LTDC_LxCFBAR_CFBADD); 8013288: 68fb ldr r3, [r7, #12] 801328a: 681b ldr r3, [r3, #0] 801328c: 461a mov r2, r3 801328e: 687b ldr r3, [r7, #4] 8013290: 01db lsls r3, r3, #7 8013292: 4413 add r3, r2 8013294: 3384 adds r3, #132 ; 0x84 8013296: 6a9b ldr r3, [r3, #40] ; 0x28 8013298: 68fb ldr r3, [r7, #12] 801329a: 681b ldr r3, [r3, #0] 801329c: 461a mov r2, r3 801329e: 687b ldr r3, [r7, #4] 80132a0: 01db lsls r3, r3, #7 80132a2: 4413 add r3, r2 80132a4: 3384 adds r3, #132 ; 0x84 80132a6: 461a mov r2, r3 80132a8: 2300 movs r3, #0 80132aa: 6293 str r3, [r2, #40] ; 0x28 LTDC_LAYER(hltdc, LayerIdx)->CFBAR = (pLayerCfg->FBStartAdress); 80132ac: 68fb ldr r3, [r7, #12] 80132ae: 681b ldr r3, [r3, #0] 80132b0: 461a mov r2, r3 80132b2: 687b ldr r3, [r7, #4] 80132b4: 01db lsls r3, r3, #7 80132b6: 4413 add r3, r2 80132b8: 3384 adds r3, #132 ; 0x84 80132ba: 461a mov r2, r3 80132bc: 68bb ldr r3, [r7, #8] 80132be: 6a5b ldr r3, [r3, #36] ; 0x24 80132c0: 6293 str r3, [r2, #40] ; 0x28 if (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB8888) 80132c2: 68bb ldr r3, [r7, #8] 80132c4: 691b ldr r3, [r3, #16] 80132c6: 2b00 cmp r3, #0 80132c8: d102 bne.n 80132d0 { tmp = 4U; 80132ca: 2304 movs r3, #4 80132cc: 61fb str r3, [r7, #28] 80132ce: e01b b.n 8013308 } else if (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_RGB888) 80132d0: 68bb ldr r3, [r7, #8] 80132d2: 691b ldr r3, [r3, #16] 80132d4: 2b01 cmp r3, #1 80132d6: d102 bne.n 80132de { tmp = 3U; 80132d8: 2303 movs r3, #3 80132da: 61fb str r3, [r7, #28] 80132dc: e014 b.n 8013308 } else if ((pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB4444) || \ 80132de: 68bb ldr r3, [r7, #8] 80132e0: 691b ldr r3, [r3, #16] 80132e2: 2b04 cmp r3, #4 80132e4: d00b beq.n 80132fe (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_RGB565) || \ 80132e6: 68bb ldr r3, [r7, #8] 80132e8: 691b ldr r3, [r3, #16] else if ((pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB4444) || \ 80132ea: 2b02 cmp r3, #2 80132ec: d007 beq.n 80132fe (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB1555) || \ 80132ee: 68bb ldr r3, [r7, #8] 80132f0: 691b ldr r3, [r3, #16] (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_RGB565) || \ 80132f2: 2b03 cmp r3, #3 80132f4: d003 beq.n 80132fe (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_AL88)) 80132f6: 68bb ldr r3, [r7, #8] 80132f8: 691b ldr r3, [r3, #16] (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB1555) || \ 80132fa: 2b07 cmp r3, #7 80132fc: d102 bne.n 8013304 { tmp = 2U; 80132fe: 2302 movs r3, #2 8013300: 61fb str r3, [r7, #28] 8013302: e001 b.n 8013308 } else { tmp = 1U; 8013304: 2301 movs r3, #1 8013306: 61fb str r3, [r7, #28] } /* Configure the color frame buffer pitch in byte */ LTDC_LAYER(hltdc, LayerIdx)->CFBLR &= ~(LTDC_LxCFBLR_CFBLL | LTDC_LxCFBLR_CFBP); 8013308: 68fb ldr r3, [r7, #12] 801330a: 681b ldr r3, [r3, #0] 801330c: 461a mov r2, r3 801330e: 687b ldr r3, [r7, #4] 8013310: 01db lsls r3, r3, #7 8013312: 4413 add r3, r2 8013314: 3384 adds r3, #132 ; 0x84 8013316: 461a mov r2, r3 8013318: 68fb ldr r3, [r7, #12] 801331a: 681b ldr r3, [r3, #0] 801331c: 4619 mov r1, r3 801331e: 687b ldr r3, [r7, #4] 8013320: 01db lsls r3, r3, #7 8013322: 440b add r3, r1 8013324: 3384 adds r3, #132 ; 0x84 8013326: 6adb ldr r3, [r3, #44] ; 0x2c 8013328: f003 23e0 and.w r3, r3, #3758153728 ; 0xe000e000 801332c: 62d3 str r3, [r2, #44] ; 0x2c LTDC_LAYER(hltdc, LayerIdx)->CFBLR = (((pLayerCfg->ImageWidth * tmp) << 16U) | (((pLayerCfg->WindowX1 - pLayerCfg->WindowX0) * tmp) + 3U)); 801332e: 68fb ldr r3, [r7, #12] 8013330: 681b ldr r3, [r3, #0] 8013332: 461a mov r2, r3 8013334: 687b ldr r3, [r7, #4] 8013336: 01db lsls r3, r3, #7 8013338: 4413 add r3, r2 801333a: 3384 adds r3, #132 ; 0x84 801333c: 4618 mov r0, r3 801333e: 68bb ldr r3, [r7, #8] 8013340: 6a9b ldr r3, [r3, #40] ; 0x28 8013342: 69fa ldr r2, [r7, #28] 8013344: fb02 f303 mul.w r3, r2, r3 8013348: 041a lsls r2, r3, #16 801334a: 68bb ldr r3, [r7, #8] 801334c: 6859 ldr r1, [r3, #4] 801334e: 68bb ldr r3, [r7, #8] 8013350: 681b ldr r3, [r3, #0] 8013352: 1acb subs r3, r1, r3 8013354: 69f9 ldr r1, [r7, #28] 8013356: fb01 f303 mul.w r3, r1, r3 801335a: 3303 adds r3, #3 801335c: 4313 orrs r3, r2 801335e: 62c3 str r3, [r0, #44] ; 0x2c /* Configure the frame buffer line number */ LTDC_LAYER(hltdc, LayerIdx)->CFBLNR &= ~(LTDC_LxCFBLNR_CFBLNBR); 8013360: 68fb ldr r3, [r7, #12] 8013362: 681b ldr r3, [r3, #0] 8013364: 461a mov r2, r3 8013366: 687b ldr r3, [r7, #4] 8013368: 01db lsls r3, r3, #7 801336a: 4413 add r3, r2 801336c: 3384 adds r3, #132 ; 0x84 801336e: 4619 mov r1, r3 8013370: 68fb ldr r3, [r7, #12] 8013372: 681b ldr r3, [r3, #0] 8013374: 461a mov r2, r3 8013376: 687b ldr r3, [r7, #4] 8013378: 01db lsls r3, r3, #7 801337a: 4413 add r3, r2 801337c: 3384 adds r3, #132 ; 0x84 801337e: 6b1a ldr r2, [r3, #48] ; 0x30 8013380: 4b14 ldr r3, [pc, #80] ; (80133d4 ) 8013382: 4013 ands r3, r2 8013384: 630b str r3, [r1, #48] ; 0x30 LTDC_LAYER(hltdc, LayerIdx)->CFBLNR = (pLayerCfg->ImageHeight); 8013386: 68fb ldr r3, [r7, #12] 8013388: 681b ldr r3, [r3, #0] 801338a: 461a mov r2, r3 801338c: 687b ldr r3, [r7, #4] 801338e: 01db lsls r3, r3, #7 8013390: 4413 add r3, r2 8013392: 3384 adds r3, #132 ; 0x84 8013394: 461a mov r2, r3 8013396: 68bb ldr r3, [r7, #8] 8013398: 6adb ldr r3, [r3, #44] ; 0x2c 801339a: 6313 str r3, [r2, #48] ; 0x30 /* Enable LTDC_Layer by setting LEN bit */ LTDC_LAYER(hltdc, LayerIdx)->CR |= (uint32_t)LTDC_LxCR_LEN; 801339c: 68fb ldr r3, [r7, #12] 801339e: 681b ldr r3, [r3, #0] 80133a0: 461a mov r2, r3 80133a2: 687b ldr r3, [r7, #4] 80133a4: 01db lsls r3, r3, #7 80133a6: 4413 add r3, r2 80133a8: 3384 adds r3, #132 ; 0x84 80133aa: 461a mov r2, r3 80133ac: 68fb ldr r3, [r7, #12] 80133ae: 681b ldr r3, [r3, #0] 80133b0: 4619 mov r1, r3 80133b2: 687b ldr r3, [r7, #4] 80133b4: 01db lsls r3, r3, #7 80133b6: 440b add r3, r1 80133b8: 3384 adds r3, #132 ; 0x84 80133ba: 681b ldr r3, [r3, #0] 80133bc: f043 0301 orr.w r3, r3, #1 80133c0: 6013 str r3, [r2, #0] } 80133c2: bf00 nop 80133c4: 3724 adds r7, #36 ; 0x24 80133c6: 46bd mov sp, r7 80133c8: f85d 7b04 ldr.w r7, [sp], #4 80133cc: 4770 bx lr 80133ce: bf00 nop 80133d0: fffff8f8 .word 0xfffff8f8 80133d4: fffff800 .word 0xfffff800 080133d8 : * supported by this function. User should request a transition to HSE Off * first and then HSE On or HSE Bypass. * @retval HAL status */ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) { 80133d8: b580 push {r7, lr} 80133da: b086 sub sp, #24 80133dc: af00 add r7, sp, #0 80133de: 6078 str r0, [r7, #4] uint32_t tickstart; uint32_t pll_config; FlagStatus pwrclkchanged = RESET; 80133e0: 2300 movs r3, #0 80133e2: 75fb strb r3, [r7, #23] /* Check Null pointer */ if (RCC_OscInitStruct == NULL) 80133e4: 687b ldr r3, [r7, #4] 80133e6: 2b00 cmp r3, #0 80133e8: d101 bne.n 80133ee { return HAL_ERROR; 80133ea: 2301 movs r3, #1 80133ec: e29b b.n 8013926 /* Check the parameters */ assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); /*------------------------------- HSE Configuration ------------------------*/ if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) 80133ee: 687b ldr r3, [r7, #4] 80133f0: 681b ldr r3, [r3, #0] 80133f2: f003 0301 and.w r3, r3, #1 80133f6: 2b00 cmp r3, #0 80133f8: f000 8087 beq.w 801350a { /* Check the parameters */ assert_param(IS_RCC_HSE(RCC_OscInitStruct->HSEState)); /* When the HSE is used as system clock or clock source for PLL, It can not be disabled */ if ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSE) 80133fc: 4b96 ldr r3, [pc, #600] ; (8013658 ) 80133fe: 689b ldr r3, [r3, #8] 8013400: f003 030c and.w r3, r3, #12 8013404: 2b04 cmp r3, #4 8013406: d00c beq.n 8013422 || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSE))) 8013408: 4b93 ldr r3, [pc, #588] ; (8013658 ) 801340a: 689b ldr r3, [r3, #8] 801340c: f003 030c and.w r3, r3, #12 8013410: 2b08 cmp r3, #8 8013412: d112 bne.n 801343a 8013414: 4b90 ldr r3, [pc, #576] ; (8013658 ) 8013416: 685b ldr r3, [r3, #4] 8013418: f403 0380 and.w r3, r3, #4194304 ; 0x400000 801341c: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000 8013420: d10b bne.n 801343a { if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) 8013422: 4b8d ldr r3, [pc, #564] ; (8013658 ) 8013424: 681b ldr r3, [r3, #0] 8013426: f403 3300 and.w r3, r3, #131072 ; 0x20000 801342a: 2b00 cmp r3, #0 801342c: d06c beq.n 8013508 801342e: 687b ldr r3, [r7, #4] 8013430: 685b ldr r3, [r3, #4] 8013432: 2b00 cmp r3, #0 8013434: d168 bne.n 8013508 { return HAL_ERROR; 8013436: 2301 movs r3, #1 8013438: e275 b.n 8013926 } } else { /* Set the new HSE configuration ---------------------------------------*/ __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); 801343a: 687b ldr r3, [r7, #4] 801343c: 685b ldr r3, [r3, #4] 801343e: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 8013442: d106 bne.n 8013452 8013444: 4a84 ldr r2, [pc, #528] ; (8013658 ) 8013446: 4b84 ldr r3, [pc, #528] ; (8013658 ) 8013448: 681b ldr r3, [r3, #0] 801344a: f443 3380 orr.w r3, r3, #65536 ; 0x10000 801344e: 6013 str r3, [r2, #0] 8013450: e02e b.n 80134b0 8013452: 687b ldr r3, [r7, #4] 8013454: 685b ldr r3, [r3, #4] 8013456: 2b00 cmp r3, #0 8013458: d10c bne.n 8013474 801345a: 4a7f ldr r2, [pc, #508] ; (8013658 ) 801345c: 4b7e ldr r3, [pc, #504] ; (8013658 ) 801345e: 681b ldr r3, [r3, #0] 8013460: f423 3380 bic.w r3, r3, #65536 ; 0x10000 8013464: 6013 str r3, [r2, #0] 8013466: 4a7c ldr r2, [pc, #496] ; (8013658 ) 8013468: 4b7b ldr r3, [pc, #492] ; (8013658 ) 801346a: 681b ldr r3, [r3, #0] 801346c: f423 2380 bic.w r3, r3, #262144 ; 0x40000 8013470: 6013 str r3, [r2, #0] 8013472: e01d b.n 80134b0 8013474: 687b ldr r3, [r7, #4] 8013476: 685b ldr r3, [r3, #4] 8013478: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000 801347c: d10c bne.n 8013498 801347e: 4a76 ldr r2, [pc, #472] ; (8013658 ) 8013480: 4b75 ldr r3, [pc, #468] ; (8013658 ) 8013482: 681b ldr r3, [r3, #0] 8013484: f443 2380 orr.w r3, r3, #262144 ; 0x40000 8013488: 6013 str r3, [r2, #0] 801348a: 4a73 ldr r2, [pc, #460] ; (8013658 ) 801348c: 4b72 ldr r3, [pc, #456] ; (8013658 ) 801348e: 681b ldr r3, [r3, #0] 8013490: f443 3380 orr.w r3, r3, #65536 ; 0x10000 8013494: 6013 str r3, [r2, #0] 8013496: e00b b.n 80134b0 8013498: 4a6f ldr r2, [pc, #444] ; (8013658 ) 801349a: 4b6f ldr r3, [pc, #444] ; (8013658 ) 801349c: 681b ldr r3, [r3, #0] 801349e: f423 3380 bic.w r3, r3, #65536 ; 0x10000 80134a2: 6013 str r3, [r2, #0] 80134a4: 4a6c ldr r2, [pc, #432] ; (8013658 ) 80134a6: 4b6c ldr r3, [pc, #432] ; (8013658 ) 80134a8: 681b ldr r3, [r3, #0] 80134aa: f423 2380 bic.w r3, r3, #262144 ; 0x40000 80134ae: 6013 str r3, [r2, #0] /* Check the HSE State */ if (RCC_OscInitStruct->HSEState != RCC_HSE_OFF) 80134b0: 687b ldr r3, [r7, #4] 80134b2: 685b ldr r3, [r3, #4] 80134b4: 2b00 cmp r3, #0 80134b6: d013 beq.n 80134e0 { /* Get Start Tick*/ tickstart = HAL_GetTick(); 80134b8: f7fe f854 bl 8011564 80134bc: 6138 str r0, [r7, #16] /* Wait till HSE is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) 80134be: e008 b.n 80134d2 { if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) 80134c0: f7fe f850 bl 8011564 80134c4: 4602 mov r2, r0 80134c6: 693b ldr r3, [r7, #16] 80134c8: 1ad3 subs r3, r2, r3 80134ca: 2b64 cmp r3, #100 ; 0x64 80134cc: d901 bls.n 80134d2 { return HAL_TIMEOUT; 80134ce: 2303 movs r3, #3 80134d0: e229 b.n 8013926 while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) 80134d2: 4b61 ldr r3, [pc, #388] ; (8013658 ) 80134d4: 681b ldr r3, [r3, #0] 80134d6: f403 3300 and.w r3, r3, #131072 ; 0x20000 80134da: 2b00 cmp r3, #0 80134dc: d0f0 beq.n 80134c0 80134de: e014 b.n 801350a } } else { /* Get Start Tick*/ tickstart = HAL_GetTick(); 80134e0: f7fe f840 bl 8011564 80134e4: 6138 str r0, [r7, #16] /* Wait till HSE is bypassed or disabled */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) 80134e6: e008 b.n 80134fa { if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) 80134e8: f7fe f83c bl 8011564 80134ec: 4602 mov r2, r0 80134ee: 693b ldr r3, [r7, #16] 80134f0: 1ad3 subs r3, r2, r3 80134f2: 2b64 cmp r3, #100 ; 0x64 80134f4: d901 bls.n 80134fa { return HAL_TIMEOUT; 80134f6: 2303 movs r3, #3 80134f8: e215 b.n 8013926 while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) 80134fa: 4b57 ldr r3, [pc, #348] ; (8013658 ) 80134fc: 681b ldr r3, [r3, #0] 80134fe: f403 3300 and.w r3, r3, #131072 ; 0x20000 8013502: 2b00 cmp r3, #0 8013504: d1f0 bne.n 80134e8 8013506: e000 b.n 801350a if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) 8013508: bf00 nop } } } } /*----------------------------- HSI Configuration --------------------------*/ if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) 801350a: 687b ldr r3, [r7, #4] 801350c: 681b ldr r3, [r3, #0] 801350e: f003 0302 and.w r3, r3, #2 8013512: 2b00 cmp r3, #0 8013514: d069 beq.n 80135ea /* Check the parameters */ assert_param(IS_RCC_HSI(RCC_OscInitStruct->HSIState)); assert_param(IS_RCC_CALIBRATION_VALUE(RCC_OscInitStruct->HSICalibrationValue)); /* Check if HSI is used as system clock or as PLL source when PLL is selected as system clock */ if ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSI) 8013516: 4b50 ldr r3, [pc, #320] ; (8013658 ) 8013518: 689b ldr r3, [r3, #8] 801351a: f003 030c and.w r3, r3, #12 801351e: 2b00 cmp r3, #0 8013520: d00b beq.n 801353a || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSI))) 8013522: 4b4d ldr r3, [pc, #308] ; (8013658 ) 8013524: 689b ldr r3, [r3, #8] 8013526: f003 030c and.w r3, r3, #12 801352a: 2b08 cmp r3, #8 801352c: d11c bne.n 8013568 801352e: 4b4a ldr r3, [pc, #296] ; (8013658 ) 8013530: 685b ldr r3, [r3, #4] 8013532: f403 0380 and.w r3, r3, #4194304 ; 0x400000 8013536: 2b00 cmp r3, #0 8013538: d116 bne.n 8013568 { /* When HSI is used as system clock it will not disabled */ if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) 801353a: 4b47 ldr r3, [pc, #284] ; (8013658 ) 801353c: 681b ldr r3, [r3, #0] 801353e: f003 0302 and.w r3, r3, #2 8013542: 2b00 cmp r3, #0 8013544: d005 beq.n 8013552 8013546: 687b ldr r3, [r7, #4] 8013548: 68db ldr r3, [r3, #12] 801354a: 2b01 cmp r3, #1 801354c: d001 beq.n 8013552 { return HAL_ERROR; 801354e: 2301 movs r3, #1 8013550: e1e9 b.n 8013926 } /* Otherwise, just the calibration is allowed */ else { /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); 8013552: 4941 ldr r1, [pc, #260] ; (8013658 ) 8013554: 4b40 ldr r3, [pc, #256] ; (8013658 ) 8013556: 681b ldr r3, [r3, #0] 8013558: f023 02f8 bic.w r2, r3, #248 ; 0xf8 801355c: 687b ldr r3, [r7, #4] 801355e: 691b ldr r3, [r3, #16] 8013560: 00db lsls r3, r3, #3 8013562: 4313 orrs r3, r2 8013564: 600b str r3, [r1, #0] if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) 8013566: e040 b.n 80135ea } } else { /* Check the HSI State */ if ((RCC_OscInitStruct->HSIState) != RCC_HSI_OFF) 8013568: 687b ldr r3, [r7, #4] 801356a: 68db ldr r3, [r3, #12] 801356c: 2b00 cmp r3, #0 801356e: d023 beq.n 80135b8 { /* Enable the Internal High Speed oscillator (HSI). */ __HAL_RCC_HSI_ENABLE(); 8013570: 4a39 ldr r2, [pc, #228] ; (8013658 ) 8013572: 4b39 ldr r3, [pc, #228] ; (8013658 ) 8013574: 681b ldr r3, [r3, #0] 8013576: f043 0301 orr.w r3, r3, #1 801357a: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 801357c: f7fd fff2 bl 8011564 8013580: 6138 str r0, [r7, #16] /* Wait till HSI is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) 8013582: e008 b.n 8013596 { if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) 8013584: f7fd ffee bl 8011564 8013588: 4602 mov r2, r0 801358a: 693b ldr r3, [r7, #16] 801358c: 1ad3 subs r3, r2, r3 801358e: 2b02 cmp r3, #2 8013590: d901 bls.n 8013596 { return HAL_TIMEOUT; 8013592: 2303 movs r3, #3 8013594: e1c7 b.n 8013926 while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) 8013596: 4b30 ldr r3, [pc, #192] ; (8013658 ) 8013598: 681b ldr r3, [r3, #0] 801359a: f003 0302 and.w r3, r3, #2 801359e: 2b00 cmp r3, #0 80135a0: d0f0 beq.n 8013584 } } /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); 80135a2: 492d ldr r1, [pc, #180] ; (8013658 ) 80135a4: 4b2c ldr r3, [pc, #176] ; (8013658 ) 80135a6: 681b ldr r3, [r3, #0] 80135a8: f023 02f8 bic.w r2, r3, #248 ; 0xf8 80135ac: 687b ldr r3, [r7, #4] 80135ae: 691b ldr r3, [r3, #16] 80135b0: 00db lsls r3, r3, #3 80135b2: 4313 orrs r3, r2 80135b4: 600b str r3, [r1, #0] 80135b6: e018 b.n 80135ea } else { /* Disable the Internal High Speed oscillator (HSI). */ __HAL_RCC_HSI_DISABLE(); 80135b8: 4a27 ldr r2, [pc, #156] ; (8013658 ) 80135ba: 4b27 ldr r3, [pc, #156] ; (8013658 ) 80135bc: 681b ldr r3, [r3, #0] 80135be: f023 0301 bic.w r3, r3, #1 80135c2: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 80135c4: f7fd ffce bl 8011564 80135c8: 6138 str r0, [r7, #16] /* Wait till HSI is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) 80135ca: e008 b.n 80135de { if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) 80135cc: f7fd ffca bl 8011564 80135d0: 4602 mov r2, r0 80135d2: 693b ldr r3, [r7, #16] 80135d4: 1ad3 subs r3, r2, r3 80135d6: 2b02 cmp r3, #2 80135d8: d901 bls.n 80135de { return HAL_TIMEOUT; 80135da: 2303 movs r3, #3 80135dc: e1a3 b.n 8013926 while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) 80135de: 4b1e ldr r3, [pc, #120] ; (8013658 ) 80135e0: 681b ldr r3, [r3, #0] 80135e2: f003 0302 and.w r3, r3, #2 80135e6: 2b00 cmp r3, #0 80135e8: d1f0 bne.n 80135cc } } } } /*------------------------------ LSI Configuration -------------------------*/ if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) 80135ea: 687b ldr r3, [r7, #4] 80135ec: 681b ldr r3, [r3, #0] 80135ee: f003 0308 and.w r3, r3, #8 80135f2: 2b00 cmp r3, #0 80135f4: d038 beq.n 8013668 { /* Check the parameters */ assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState)); /* Check the LSI State */ if ((RCC_OscInitStruct->LSIState) != RCC_LSI_OFF) 80135f6: 687b ldr r3, [r7, #4] 80135f8: 695b ldr r3, [r3, #20] 80135fa: 2b00 cmp r3, #0 80135fc: d019 beq.n 8013632 { /* Enable the Internal Low Speed oscillator (LSI). */ __HAL_RCC_LSI_ENABLE(); 80135fe: 4a16 ldr r2, [pc, #88] ; (8013658 ) 8013600: 4b15 ldr r3, [pc, #84] ; (8013658 ) 8013602: 6f5b ldr r3, [r3, #116] ; 0x74 8013604: f043 0301 orr.w r3, r3, #1 8013608: 6753 str r3, [r2, #116] ; 0x74 /* Get Start Tick*/ tickstart = HAL_GetTick(); 801360a: f7fd ffab bl 8011564 801360e: 6138 str r0, [r7, #16] /* Wait till LSI is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) 8013610: e008 b.n 8013624 { if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) 8013612: f7fd ffa7 bl 8011564 8013616: 4602 mov r2, r0 8013618: 693b ldr r3, [r7, #16] 801361a: 1ad3 subs r3, r2, r3 801361c: 2b02 cmp r3, #2 801361e: d901 bls.n 8013624 { return HAL_TIMEOUT; 8013620: 2303 movs r3, #3 8013622: e180 b.n 8013926 while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) 8013624: 4b0c ldr r3, [pc, #48] ; (8013658 ) 8013626: 6f5b ldr r3, [r3, #116] ; 0x74 8013628: f003 0302 and.w r3, r3, #2 801362c: 2b00 cmp r3, #0 801362e: d0f0 beq.n 8013612 8013630: e01a b.n 8013668 } } else { /* Disable the Internal Low Speed oscillator (LSI). */ __HAL_RCC_LSI_DISABLE(); 8013632: 4a09 ldr r2, [pc, #36] ; (8013658 ) 8013634: 4b08 ldr r3, [pc, #32] ; (8013658 ) 8013636: 6f5b ldr r3, [r3, #116] ; 0x74 8013638: f023 0301 bic.w r3, r3, #1 801363c: 6753 str r3, [r2, #116] ; 0x74 /* Get Start Tick*/ tickstart = HAL_GetTick(); 801363e: f7fd ff91 bl 8011564 8013642: 6138 str r0, [r7, #16] /* Wait till LSI is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) 8013644: e00a b.n 801365c { if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) 8013646: f7fd ff8d bl 8011564 801364a: 4602 mov r2, r0 801364c: 693b ldr r3, [r7, #16] 801364e: 1ad3 subs r3, r2, r3 8013650: 2b02 cmp r3, #2 8013652: d903 bls.n 801365c { return HAL_TIMEOUT; 8013654: 2303 movs r3, #3 8013656: e166 b.n 8013926 8013658: 40023800 .word 0x40023800 while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) 801365c: 4b92 ldr r3, [pc, #584] ; (80138a8 ) 801365e: 6f5b ldr r3, [r3, #116] ; 0x74 8013660: f003 0302 and.w r3, r3, #2 8013664: 2b00 cmp r3, #0 8013666: d1ee bne.n 8013646 } } } } /*------------------------------ LSE Configuration -------------------------*/ if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) 8013668: 687b ldr r3, [r7, #4] 801366a: 681b ldr r3, [r3, #0] 801366c: f003 0304 and.w r3, r3, #4 8013670: 2b00 cmp r3, #0 8013672: f000 80a4 beq.w 80137be /* Check the parameters */ assert_param(IS_RCC_LSE(RCC_OscInitStruct->LSEState)); /* Update LSE configuration in Backup Domain control register */ /* Requires to enable write access to Backup Domain of necessary */ if (__HAL_RCC_PWR_IS_CLK_DISABLED()) 8013676: 4b8c ldr r3, [pc, #560] ; (80138a8 ) 8013678: 6c1b ldr r3, [r3, #64] ; 0x40 801367a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 801367e: 2b00 cmp r3, #0 8013680: d10d bne.n 801369e { /* Enable Power Clock*/ __HAL_RCC_PWR_CLK_ENABLE(); 8013682: 4a89 ldr r2, [pc, #548] ; (80138a8 ) 8013684: 4b88 ldr r3, [pc, #544] ; (80138a8 ) 8013686: 6c1b ldr r3, [r3, #64] ; 0x40 8013688: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 801368c: 6413 str r3, [r2, #64] ; 0x40 801368e: 4b86 ldr r3, [pc, #536] ; (80138a8 ) 8013690: 6c1b ldr r3, [r3, #64] ; 0x40 8013692: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 8013696: 60bb str r3, [r7, #8] 8013698: 68bb ldr r3, [r7, #8] pwrclkchanged = SET; 801369a: 2301 movs r3, #1 801369c: 75fb strb r3, [r7, #23] } if (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) 801369e: 4b83 ldr r3, [pc, #524] ; (80138ac ) 80136a0: 681b ldr r3, [r3, #0] 80136a2: f403 7380 and.w r3, r3, #256 ; 0x100 80136a6: 2b00 cmp r3, #0 80136a8: d118 bne.n 80136dc { /* Enable write access to Backup domain */ PWR->CR1 |= PWR_CR1_DBP; 80136aa: 4a80 ldr r2, [pc, #512] ; (80138ac ) 80136ac: 4b7f ldr r3, [pc, #508] ; (80138ac ) 80136ae: 681b ldr r3, [r3, #0] 80136b0: f443 7380 orr.w r3, r3, #256 ; 0x100 80136b4: 6013 str r3, [r2, #0] /* Wait for Backup domain Write protection disable */ tickstart = HAL_GetTick(); 80136b6: f7fd ff55 bl 8011564 80136ba: 6138 str r0, [r7, #16] while (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) 80136bc: e008 b.n 80136d0 { if ((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) 80136be: f7fd ff51 bl 8011564 80136c2: 4602 mov r2, r0 80136c4: 693b ldr r3, [r7, #16] 80136c6: 1ad3 subs r3, r2, r3 80136c8: 2b64 cmp r3, #100 ; 0x64 80136ca: d901 bls.n 80136d0 { return HAL_TIMEOUT; 80136cc: 2303 movs r3, #3 80136ce: e12a b.n 8013926 while (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) 80136d0: 4b76 ldr r3, [pc, #472] ; (80138ac ) 80136d2: 681b ldr r3, [r3, #0] 80136d4: f403 7380 and.w r3, r3, #256 ; 0x100 80136d8: 2b00 cmp r3, #0 80136da: d0f0 beq.n 80136be } } } /* Set the new LSE configuration -----------------------------------------*/ __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState); 80136dc: 687b ldr r3, [r7, #4] 80136de: 689b ldr r3, [r3, #8] 80136e0: 2b01 cmp r3, #1 80136e2: d106 bne.n 80136f2 80136e4: 4a70 ldr r2, [pc, #448] ; (80138a8 ) 80136e6: 4b70 ldr r3, [pc, #448] ; (80138a8 ) 80136e8: 6f1b ldr r3, [r3, #112] ; 0x70 80136ea: f043 0301 orr.w r3, r3, #1 80136ee: 6713 str r3, [r2, #112] ; 0x70 80136f0: e02d b.n 801374e 80136f2: 687b ldr r3, [r7, #4] 80136f4: 689b ldr r3, [r3, #8] 80136f6: 2b00 cmp r3, #0 80136f8: d10c bne.n 8013714 80136fa: 4a6b ldr r2, [pc, #428] ; (80138a8 ) 80136fc: 4b6a ldr r3, [pc, #424] ; (80138a8 ) 80136fe: 6f1b ldr r3, [r3, #112] ; 0x70 8013700: f023 0301 bic.w r3, r3, #1 8013704: 6713 str r3, [r2, #112] ; 0x70 8013706: 4a68 ldr r2, [pc, #416] ; (80138a8 ) 8013708: 4b67 ldr r3, [pc, #412] ; (80138a8 ) 801370a: 6f1b ldr r3, [r3, #112] ; 0x70 801370c: f023 0304 bic.w r3, r3, #4 8013710: 6713 str r3, [r2, #112] ; 0x70 8013712: e01c b.n 801374e 8013714: 687b ldr r3, [r7, #4] 8013716: 689b ldr r3, [r3, #8] 8013718: 2b05 cmp r3, #5 801371a: d10c bne.n 8013736 801371c: 4a62 ldr r2, [pc, #392] ; (80138a8 ) 801371e: 4b62 ldr r3, [pc, #392] ; (80138a8 ) 8013720: 6f1b ldr r3, [r3, #112] ; 0x70 8013722: f043 0304 orr.w r3, r3, #4 8013726: 6713 str r3, [r2, #112] ; 0x70 8013728: 4a5f ldr r2, [pc, #380] ; (80138a8 ) 801372a: 4b5f ldr r3, [pc, #380] ; (80138a8 ) 801372c: 6f1b ldr r3, [r3, #112] ; 0x70 801372e: f043 0301 orr.w r3, r3, #1 8013732: 6713 str r3, [r2, #112] ; 0x70 8013734: e00b b.n 801374e 8013736: 4a5c ldr r2, [pc, #368] ; (80138a8 ) 8013738: 4b5b ldr r3, [pc, #364] ; (80138a8 ) 801373a: 6f1b ldr r3, [r3, #112] ; 0x70 801373c: f023 0301 bic.w r3, r3, #1 8013740: 6713 str r3, [r2, #112] ; 0x70 8013742: 4a59 ldr r2, [pc, #356] ; (80138a8 ) 8013744: 4b58 ldr r3, [pc, #352] ; (80138a8 ) 8013746: 6f1b ldr r3, [r3, #112] ; 0x70 8013748: f023 0304 bic.w r3, r3, #4 801374c: 6713 str r3, [r2, #112] ; 0x70 /* Check the LSE State */ if ((RCC_OscInitStruct->LSEState) != RCC_LSE_OFF) 801374e: 687b ldr r3, [r7, #4] 8013750: 689b ldr r3, [r3, #8] 8013752: 2b00 cmp r3, #0 8013754: d015 beq.n 8013782 { /* Get Start Tick*/ tickstart = HAL_GetTick(); 8013756: f7fd ff05 bl 8011564 801375a: 6138 str r0, [r7, #16] /* Wait till LSE is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) 801375c: e00a b.n 8013774 { if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) 801375e: f7fd ff01 bl 8011564 8013762: 4602 mov r2, r0 8013764: 693b ldr r3, [r7, #16] 8013766: 1ad3 subs r3, r2, r3 8013768: f241 3288 movw r2, #5000 ; 0x1388 801376c: 4293 cmp r3, r2 801376e: d901 bls.n 8013774 { return HAL_TIMEOUT; 8013770: 2303 movs r3, #3 8013772: e0d8 b.n 8013926 while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) 8013774: 4b4c ldr r3, [pc, #304] ; (80138a8 ) 8013776: 6f1b ldr r3, [r3, #112] ; 0x70 8013778: f003 0302 and.w r3, r3, #2 801377c: 2b00 cmp r3, #0 801377e: d0ee beq.n 801375e 8013780: e014 b.n 80137ac } } else { /* Get Start Tick*/ tickstart = HAL_GetTick(); 8013782: f7fd feef bl 8011564 8013786: 6138 str r0, [r7, #16] /* Wait till LSE is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) 8013788: e00a b.n 80137a0 { if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) 801378a: f7fd feeb bl 8011564 801378e: 4602 mov r2, r0 8013790: 693b ldr r3, [r7, #16] 8013792: 1ad3 subs r3, r2, r3 8013794: f241 3288 movw r2, #5000 ; 0x1388 8013798: 4293 cmp r3, r2 801379a: d901 bls.n 80137a0 { return HAL_TIMEOUT; 801379c: 2303 movs r3, #3 801379e: e0c2 b.n 8013926 while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) 80137a0: 4b41 ldr r3, [pc, #260] ; (80138a8 ) 80137a2: 6f1b ldr r3, [r3, #112] ; 0x70 80137a4: f003 0302 and.w r3, r3, #2 80137a8: 2b00 cmp r3, #0 80137aa: d1ee bne.n 801378a } } } /* Restore clock configuration if changed */ if (pwrclkchanged == SET) 80137ac: 7dfb ldrb r3, [r7, #23] 80137ae: 2b01 cmp r3, #1 80137b0: d105 bne.n 80137be { __HAL_RCC_PWR_CLK_DISABLE(); 80137b2: 4a3d ldr r2, [pc, #244] ; (80138a8 ) 80137b4: 4b3c ldr r3, [pc, #240] ; (80138a8 ) 80137b6: 6c1b ldr r3, [r3, #64] ; 0x40 80137b8: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 80137bc: 6413 str r3, [r2, #64] ; 0x40 } } /*-------------------------------- PLL Configuration -----------------------*/ /* Check the parameters */ assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState)); if ((RCC_OscInitStruct->PLL.PLLState) != RCC_PLL_NONE) 80137be: 687b ldr r3, [r7, #4] 80137c0: 699b ldr r3, [r3, #24] 80137c2: 2b00 cmp r3, #0 80137c4: f000 80ae beq.w 8013924 { /* Check if the PLL is used as system clock or not */ if (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK) 80137c8: 4b37 ldr r3, [pc, #220] ; (80138a8 ) 80137ca: 689b ldr r3, [r3, #8] 80137cc: f003 030c and.w r3, r3, #12 80137d0: 2b08 cmp r3, #8 80137d2: d06d beq.n 80138b0 { if ((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON) 80137d4: 687b ldr r3, [r7, #4] 80137d6: 699b ldr r3, [r3, #24] 80137d8: 2b02 cmp r3, #2 80137da: d14b bne.n 8013874 #if defined (RCC_PLLCFGR_PLLR) assert_param(IS_RCC_PLLR_VALUE(RCC_OscInitStruct->PLL.PLLR)); #endif /* Disable the main PLL. */ __HAL_RCC_PLL_DISABLE(); 80137dc: 4a32 ldr r2, [pc, #200] ; (80138a8 ) 80137de: 4b32 ldr r3, [pc, #200] ; (80138a8 ) 80137e0: 681b ldr r3, [r3, #0] 80137e2: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000 80137e6: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 80137e8: f7fd febc bl 8011564 80137ec: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) 80137ee: e008 b.n 8013802 { if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) 80137f0: f7fd feb8 bl 8011564 80137f4: 4602 mov r2, r0 80137f6: 693b ldr r3, [r7, #16] 80137f8: 1ad3 subs r3, r2, r3 80137fa: 2b02 cmp r3, #2 80137fc: d901 bls.n 8013802 { return HAL_TIMEOUT; 80137fe: 2303 movs r3, #3 8013800: e091 b.n 8013926 while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) 8013802: 4b29 ldr r3, [pc, #164] ; (80138a8 ) 8013804: 681b ldr r3, [r3, #0] 8013806: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 801380a: 2b00 cmp r3, #0 801380c: d1f0 bne.n 80137f0 } } /* Configure the main PLL clock source, multiplication and division factors. */ #if defined (RCC_PLLCFGR_PLLR) __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, 801380e: 4926 ldr r1, [pc, #152] ; (80138a8 ) 8013810: 687b ldr r3, [r7, #4] 8013812: 69da ldr r2, [r3, #28] 8013814: 687b ldr r3, [r7, #4] 8013816: 6a1b ldr r3, [r3, #32] 8013818: 431a orrs r2, r3 801381a: 687b ldr r3, [r7, #4] 801381c: 6a5b ldr r3, [r3, #36] ; 0x24 801381e: 019b lsls r3, r3, #6 8013820: 431a orrs r2, r3 8013822: 687b ldr r3, [r7, #4] 8013824: 6a9b ldr r3, [r3, #40] ; 0x28 8013826: 085b lsrs r3, r3, #1 8013828: 3b01 subs r3, #1 801382a: 041b lsls r3, r3, #16 801382c: 431a orrs r2, r3 801382e: 687b ldr r3, [r7, #4] 8013830: 6adb ldr r3, [r3, #44] ; 0x2c 8013832: 061b lsls r3, r3, #24 8013834: 431a orrs r2, r3 8013836: 687b ldr r3, [r7, #4] 8013838: 6b1b ldr r3, [r3, #48] ; 0x30 801383a: 071b lsls r3, r3, #28 801383c: 4313 orrs r3, r2 801383e: 604b str r3, [r1, #4] RCC_OscInitStruct->PLL.PLLP, RCC_OscInitStruct->PLL.PLLQ); #endif /* Enable the main PLL. */ __HAL_RCC_PLL_ENABLE(); 8013840: 4a19 ldr r2, [pc, #100] ; (80138a8 ) 8013842: 4b19 ldr r3, [pc, #100] ; (80138a8 ) 8013844: 681b ldr r3, [r3, #0] 8013846: f043 7380 orr.w r3, r3, #16777216 ; 0x1000000 801384a: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 801384c: f7fd fe8a bl 8011564 8013850: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) 8013852: e008 b.n 8013866 { if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) 8013854: f7fd fe86 bl 8011564 8013858: 4602 mov r2, r0 801385a: 693b ldr r3, [r7, #16] 801385c: 1ad3 subs r3, r2, r3 801385e: 2b02 cmp r3, #2 8013860: d901 bls.n 8013866 { return HAL_TIMEOUT; 8013862: 2303 movs r3, #3 8013864: e05f b.n 8013926 while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) 8013866: 4b10 ldr r3, [pc, #64] ; (80138a8 ) 8013868: 681b ldr r3, [r3, #0] 801386a: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 801386e: 2b00 cmp r3, #0 8013870: d0f0 beq.n 8013854 8013872: e057 b.n 8013924 } } else { /* Disable the main PLL. */ __HAL_RCC_PLL_DISABLE(); 8013874: 4a0c ldr r2, [pc, #48] ; (80138a8 ) 8013876: 4b0c ldr r3, [pc, #48] ; (80138a8 ) 8013878: 681b ldr r3, [r3, #0] 801387a: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000 801387e: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 8013880: f7fd fe70 bl 8011564 8013884: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) 8013886: e008 b.n 801389a { if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) 8013888: f7fd fe6c bl 8011564 801388c: 4602 mov r2, r0 801388e: 693b ldr r3, [r7, #16] 8013890: 1ad3 subs r3, r2, r3 8013892: 2b02 cmp r3, #2 8013894: d901 bls.n 801389a { return HAL_TIMEOUT; 8013896: 2303 movs r3, #3 8013898: e045 b.n 8013926 while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) 801389a: 4b03 ldr r3, [pc, #12] ; (80138a8 ) 801389c: 681b ldr r3, [r3, #0] 801389e: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 80138a2: 2b00 cmp r3, #0 80138a4: d1f0 bne.n 8013888 80138a6: e03d b.n 8013924 80138a8: 40023800 .word 0x40023800 80138ac: 40007000 .word 0x40007000 } } else { /* Do not return HAL_ERROR if request repeats the current configuration */ pll_config = RCC->PLLCFGR; 80138b0: 4b1f ldr r3, [pc, #124] ; (8013930 ) 80138b2: 685b ldr r3, [r3, #4] 80138b4: 60fb str r3, [r7, #12] #if defined (RCC_PLLCFGR_PLLR) if (((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) || 80138b6: 687b ldr r3, [r7, #4] 80138b8: 699b ldr r3, [r3, #24] 80138ba: 2b01 cmp r3, #1 80138bc: d030 beq.n 8013920 (READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || 80138be: 68fb ldr r3, [r7, #12] 80138c0: f403 0280 and.w r2, r3, #4194304 ; 0x400000 80138c4: 687b ldr r3, [r7, #4] 80138c6: 69db ldr r3, [r3, #28] if (((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) || 80138c8: 429a cmp r2, r3 80138ca: d129 bne.n 8013920 (READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != RCC_OscInitStruct->PLL.PLLM) || 80138cc: 68fb ldr r3, [r7, #12] 80138ce: f003 023f and.w r2, r3, #63 ; 0x3f 80138d2: 687b ldr r3, [r7, #4] 80138d4: 6a1b ldr r3, [r3, #32] (READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || 80138d6: 429a cmp r2, r3 80138d8: d122 bne.n 8013920 (READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) || 80138da: 68fa ldr r2, [r7, #12] 80138dc: f647 73c0 movw r3, #32704 ; 0x7fc0 80138e0: 4013 ands r3, r2 80138e2: 687a ldr r2, [r7, #4] 80138e4: 6a52 ldr r2, [r2, #36] ; 0x24 80138e6: 0192 lsls r2, r2, #6 (READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != RCC_OscInitStruct->PLL.PLLM) || 80138e8: 4293 cmp r3, r2 80138ea: d119 bne.n 8013920 (READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != ((((RCC_OscInitStruct->PLL.PLLP) >> 1U) - 1U) << RCC_PLLCFGR_PLLP_Pos)) || 80138ec: 68fb ldr r3, [r7, #12] 80138ee: f403 3240 and.w r2, r3, #196608 ; 0x30000 80138f2: 687b ldr r3, [r7, #4] 80138f4: 6a9b ldr r3, [r3, #40] ; 0x28 80138f6: 085b lsrs r3, r3, #1 80138f8: 3b01 subs r3, #1 80138fa: 041b lsls r3, r3, #16 (READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) || 80138fc: 429a cmp r2, r3 80138fe: d10f bne.n 8013920 (READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != (RCC_OscInitStruct->PLL.PLLQ << RCC_PLLCFGR_PLLQ_Pos)) || 8013900: 68fb ldr r3, [r7, #12] 8013902: f003 6270 and.w r2, r3, #251658240 ; 0xf000000 8013906: 687b ldr r3, [r7, #4] 8013908: 6adb ldr r3, [r3, #44] ; 0x2c 801390a: 061b lsls r3, r3, #24 (READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != ((((RCC_OscInitStruct->PLL.PLLP) >> 1U) - 1U) << RCC_PLLCFGR_PLLP_Pos)) || 801390c: 429a cmp r2, r3 801390e: d107 bne.n 8013920 (READ_BIT(pll_config, RCC_PLLCFGR_PLLR) != (RCC_OscInitStruct->PLL.PLLR << RCC_PLLCFGR_PLLR_Pos))) 8013910: 68fb ldr r3, [r7, #12] 8013912: f003 42e0 and.w r2, r3, #1879048192 ; 0x70000000 8013916: 687b ldr r3, [r7, #4] 8013918: 6b1b ldr r3, [r3, #48] ; 0x30 801391a: 071b lsls r3, r3, #28 (READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != (RCC_OscInitStruct->PLL.PLLQ << RCC_PLLCFGR_PLLQ_Pos)) || 801391c: 429a cmp r2, r3 801391e: d001 beq.n 8013924 (READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) || (READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != ((((RCC_OscInitStruct->PLL.PLLP) >> 1U) - 1U) << RCC_PLLCFGR_PLLP_Pos)) || (READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != (RCC_OscInitStruct->PLL.PLLQ << RCC_PLLCFGR_PLLQ_Pos))) #endif { return HAL_ERROR; 8013920: 2301 movs r3, #1 8013922: e000 b.n 8013926 } } } return HAL_OK; 8013924: 2300 movs r3, #0 } 8013926: 4618 mov r0, r3 8013928: 3718 adds r7, #24 801392a: 46bd mov sp, r7 801392c: bd80 pop {r7, pc} 801392e: bf00 nop 8013930: 40023800 .word 0x40023800 08013934 : * HPRE[3:0] bits to ensure that HCLK not exceed the maximum allowed frequency * (for more details refer to section above "Initialization/de-initialization functions") * @retval None */ HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency) { 8013934: b580 push {r7, lr} 8013936: b084 sub sp, #16 8013938: af00 add r7, sp, #0 801393a: 6078 str r0, [r7, #4] 801393c: 6039 str r1, [r7, #0] uint32_t tickstart = 0; 801393e: 2300 movs r3, #0 8013940: 60fb str r3, [r7, #12] /* Check Null pointer */ if (RCC_ClkInitStruct == NULL) 8013942: 687b ldr r3, [r7, #4] 8013944: 2b00 cmp r3, #0 8013946: d101 bne.n 801394c { return HAL_ERROR; 8013948: 2301 movs r3, #1 801394a: e0d0 b.n 8013aee /* To correctly read data from FLASH memory, the number of wait states (LATENCY) must be correctly programmed according to the frequency of the CPU clock (HCLK) and the supply voltage of the device. */ /* Increasing the CPU frequency */ if (FLatency > __HAL_FLASH_GET_LATENCY()) 801394c: 4b6a ldr r3, [pc, #424] ; (8013af8 ) 801394e: 681b ldr r3, [r3, #0] 8013950: f003 020f and.w r2, r3, #15 8013954: 683b ldr r3, [r7, #0] 8013956: 429a cmp r2, r3 8013958: d210 bcs.n 801397c { /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ __HAL_FLASH_SET_LATENCY(FLatency); 801395a: 4967 ldr r1, [pc, #412] ; (8013af8 ) 801395c: 4b66 ldr r3, [pc, #408] ; (8013af8 ) 801395e: 681b ldr r3, [r3, #0] 8013960: f023 020f bic.w r2, r3, #15 8013964: 683b ldr r3, [r7, #0] 8013966: 4313 orrs r3, r2 8013968: 600b str r3, [r1, #0] /* Check that the new number of wait states is taken into account to access the Flash memory by reading the FLASH_ACR register */ if (__HAL_FLASH_GET_LATENCY() != FLatency) 801396a: 4b63 ldr r3, [pc, #396] ; (8013af8 ) 801396c: 681b ldr r3, [r3, #0] 801396e: f003 020f and.w r2, r3, #15 8013972: 683b ldr r3, [r7, #0] 8013974: 429a cmp r2, r3 8013976: d001 beq.n 801397c { return HAL_ERROR; 8013978: 2301 movs r3, #1 801397a: e0b8 b.n 8013aee } } /*-------------------------- HCLK Configuration --------------------------*/ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) 801397c: 687b ldr r3, [r7, #4] 801397e: 681b ldr r3, [r3, #0] 8013980: f003 0302 and.w r3, r3, #2 8013984: 2b00 cmp r3, #0 8013986: d020 beq.n 80139ca { /* Set the highest APBx dividers in order to ensure that we do not go through a non-spec phase whatever we decrease or increase HCLK. */ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) 8013988: 687b ldr r3, [r7, #4] 801398a: 681b ldr r3, [r3, #0] 801398c: f003 0304 and.w r3, r3, #4 8013990: 2b00 cmp r3, #0 8013992: d005 beq.n 80139a0 { MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16); 8013994: 4a59 ldr r2, [pc, #356] ; (8013afc ) 8013996: 4b59 ldr r3, [pc, #356] ; (8013afc ) 8013998: 689b ldr r3, [r3, #8] 801399a: f443 53e0 orr.w r3, r3, #7168 ; 0x1c00 801399e: 6093 str r3, [r2, #8] } if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) 80139a0: 687b ldr r3, [r7, #4] 80139a2: 681b ldr r3, [r3, #0] 80139a4: f003 0308 and.w r3, r3, #8 80139a8: 2b00 cmp r3, #0 80139aa: d005 beq.n 80139b8 { MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, (RCC_HCLK_DIV16 << 3)); 80139ac: 4a53 ldr r2, [pc, #332] ; (8013afc ) 80139ae: 4b53 ldr r3, [pc, #332] ; (8013afc ) 80139b0: 689b ldr r3, [r3, #8] 80139b2: f443 4360 orr.w r3, r3, #57344 ; 0xe000 80139b6: 6093 str r3, [r2, #8] } /* Set the new HCLK clock divider */ assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); 80139b8: 4950 ldr r1, [pc, #320] ; (8013afc ) 80139ba: 4b50 ldr r3, [pc, #320] ; (8013afc ) 80139bc: 689b ldr r3, [r3, #8] 80139be: f023 02f0 bic.w r2, r3, #240 ; 0xf0 80139c2: 687b ldr r3, [r7, #4] 80139c4: 689b ldr r3, [r3, #8] 80139c6: 4313 orrs r3, r2 80139c8: 608b str r3, [r1, #8] } /*------------------------- SYSCLK Configuration ---------------------------*/ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) 80139ca: 687b ldr r3, [r7, #4] 80139cc: 681b ldr r3, [r3, #0] 80139ce: f003 0301 and.w r3, r3, #1 80139d2: 2b00 cmp r3, #0 80139d4: d040 beq.n 8013a58 { assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); /* HSE is selected as System Clock Source */ if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) 80139d6: 687b ldr r3, [r7, #4] 80139d8: 685b ldr r3, [r3, #4] 80139da: 2b01 cmp r3, #1 80139dc: d107 bne.n 80139ee { /* Check the HSE ready flag */ if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) 80139de: 4b47 ldr r3, [pc, #284] ; (8013afc ) 80139e0: 681b ldr r3, [r3, #0] 80139e2: f403 3300 and.w r3, r3, #131072 ; 0x20000 80139e6: 2b00 cmp r3, #0 80139e8: d115 bne.n 8013a16 { return HAL_ERROR; 80139ea: 2301 movs r3, #1 80139ec: e07f b.n 8013aee } } /* PLL is selected as System Clock Source */ else if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) 80139ee: 687b ldr r3, [r7, #4] 80139f0: 685b ldr r3, [r3, #4] 80139f2: 2b02 cmp r3, #2 80139f4: d107 bne.n 8013a06 { /* Check the PLL ready flag */ if (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) 80139f6: 4b41 ldr r3, [pc, #260] ; (8013afc ) 80139f8: 681b ldr r3, [r3, #0] 80139fa: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 80139fe: 2b00 cmp r3, #0 8013a00: d109 bne.n 8013a16 { return HAL_ERROR; 8013a02: 2301 movs r3, #1 8013a04: e073 b.n 8013aee } /* HSI is selected as System Clock Source */ else { /* Check the HSI ready flag */ if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) 8013a06: 4b3d ldr r3, [pc, #244] ; (8013afc ) 8013a08: 681b ldr r3, [r3, #0] 8013a0a: f003 0302 and.w r3, r3, #2 8013a0e: 2b00 cmp r3, #0 8013a10: d101 bne.n 8013a16 { return HAL_ERROR; 8013a12: 2301 movs r3, #1 8013a14: e06b b.n 8013aee } } __HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource); 8013a16: 4939 ldr r1, [pc, #228] ; (8013afc ) 8013a18: 4b38 ldr r3, [pc, #224] ; (8013afc ) 8013a1a: 689b ldr r3, [r3, #8] 8013a1c: f023 0203 bic.w r2, r3, #3 8013a20: 687b ldr r3, [r7, #4] 8013a22: 685b ldr r3, [r3, #4] 8013a24: 4313 orrs r3, r2 8013a26: 608b str r3, [r1, #8] /* Get Start Tick*/ tickstart = HAL_GetTick(); 8013a28: f7fd fd9c bl 8011564 8013a2c: 60f8 str r0, [r7, #12] while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) 8013a2e: e00a b.n 8013a46 { if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) 8013a30: f7fd fd98 bl 8011564 8013a34: 4602 mov r2, r0 8013a36: 68fb ldr r3, [r7, #12] 8013a38: 1ad3 subs r3, r2, r3 8013a3a: f241 3288 movw r2, #5000 ; 0x1388 8013a3e: 4293 cmp r3, r2 8013a40: d901 bls.n 8013a46 { return HAL_TIMEOUT; 8013a42: 2303 movs r3, #3 8013a44: e053 b.n 8013aee while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) 8013a46: 4b2d ldr r3, [pc, #180] ; (8013afc ) 8013a48: 689b ldr r3, [r3, #8] 8013a4a: f003 020c and.w r2, r3, #12 8013a4e: 687b ldr r3, [r7, #4] 8013a50: 685b ldr r3, [r3, #4] 8013a52: 009b lsls r3, r3, #2 8013a54: 429a cmp r2, r3 8013a56: d1eb bne.n 8013a30 } } } /* Decreasing the number of wait states because of lower CPU frequency */ if (FLatency < __HAL_FLASH_GET_LATENCY()) 8013a58: 4b27 ldr r3, [pc, #156] ; (8013af8 ) 8013a5a: 681b ldr r3, [r3, #0] 8013a5c: f003 020f and.w r2, r3, #15 8013a60: 683b ldr r3, [r7, #0] 8013a62: 429a cmp r2, r3 8013a64: d910 bls.n 8013a88 { /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ __HAL_FLASH_SET_LATENCY(FLatency); 8013a66: 4924 ldr r1, [pc, #144] ; (8013af8 ) 8013a68: 4b23 ldr r3, [pc, #140] ; (8013af8 ) 8013a6a: 681b ldr r3, [r3, #0] 8013a6c: f023 020f bic.w r2, r3, #15 8013a70: 683b ldr r3, [r7, #0] 8013a72: 4313 orrs r3, r2 8013a74: 600b str r3, [r1, #0] /* Check that the new number of wait states is taken into account to access the Flash memory by reading the FLASH_ACR register */ if (__HAL_FLASH_GET_LATENCY() != FLatency) 8013a76: 4b20 ldr r3, [pc, #128] ; (8013af8 ) 8013a78: 681b ldr r3, [r3, #0] 8013a7a: f003 020f and.w r2, r3, #15 8013a7e: 683b ldr r3, [r7, #0] 8013a80: 429a cmp r2, r3 8013a82: d001 beq.n 8013a88 { return HAL_ERROR; 8013a84: 2301 movs r3, #1 8013a86: e032 b.n 8013aee } } /*-------------------------- PCLK1 Configuration ---------------------------*/ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) 8013a88: 687b ldr r3, [r7, #4] 8013a8a: 681b ldr r3, [r3, #0] 8013a8c: f003 0304 and.w r3, r3, #4 8013a90: 2b00 cmp r3, #0 8013a92: d008 beq.n 8013aa6 { assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); 8013a94: 4919 ldr r1, [pc, #100] ; (8013afc ) 8013a96: 4b19 ldr r3, [pc, #100] ; (8013afc ) 8013a98: 689b ldr r3, [r3, #8] 8013a9a: f423 52e0 bic.w r2, r3, #7168 ; 0x1c00 8013a9e: 687b ldr r3, [r7, #4] 8013aa0: 68db ldr r3, [r3, #12] 8013aa2: 4313 orrs r3, r2 8013aa4: 608b str r3, [r1, #8] } /*-------------------------- PCLK2 Configuration ---------------------------*/ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) 8013aa6: 687b ldr r3, [r7, #4] 8013aa8: 681b ldr r3, [r3, #0] 8013aaa: f003 0308 and.w r3, r3, #8 8013aae: 2b00 cmp r3, #0 8013ab0: d009 beq.n 8013ac6 { assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3)); 8013ab2: 4912 ldr r1, [pc, #72] ; (8013afc ) 8013ab4: 4b11 ldr r3, [pc, #68] ; (8013afc ) 8013ab6: 689b ldr r3, [r3, #8] 8013ab8: f423 4260 bic.w r2, r3, #57344 ; 0xe000 8013abc: 687b ldr r3, [r7, #4] 8013abe: 691b ldr r3, [r3, #16] 8013ac0: 00db lsls r3, r3, #3 8013ac2: 4313 orrs r3, r2 8013ac4: 608b str r3, [r1, #8] } /* Update the SystemCoreClock global variable */ SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos]; 8013ac6: f000 f821 bl 8013b0c 8013aca: 4601 mov r1, r0 8013acc: 4b0b ldr r3, [pc, #44] ; (8013afc ) 8013ace: 689b ldr r3, [r3, #8] 8013ad0: 091b lsrs r3, r3, #4 8013ad2: f003 030f and.w r3, r3, #15 8013ad6: 4a0a ldr r2, [pc, #40] ; (8013b00 ) 8013ad8: 5cd3 ldrb r3, [r2, r3] 8013ada: fa21 f303 lsr.w r3, r1, r3 8013ade: 4a09 ldr r2, [pc, #36] ; (8013b04 ) 8013ae0: 6013 str r3, [r2, #0] /* Configure the source of time base considering new system clocks settings*/ HAL_InitTick(uwTickPrio); 8013ae2: 4b09 ldr r3, [pc, #36] ; (8013b08 ) 8013ae4: 681b ldr r3, [r3, #0] 8013ae6: 4618 mov r0, r3 8013ae8: f7fd fcf8 bl 80114dc return HAL_OK; 8013aec: 2300 movs r3, #0 } 8013aee: 4618 mov r0, r3 8013af0: 3710 adds r7, #16 8013af2: 46bd mov sp, r7 8013af4: bd80 pop {r7, pc} 8013af6: bf00 nop 8013af8: 40023c00 .word 0x40023c00 8013afc: 40023800 .word 0x40023800 8013b00: 0801add8 .word 0x0801add8 8013b04: 20020994 .word 0x20020994 8013b08: 200209a0 .word 0x200209a0 08013b0c : * * * @retval SYSCLK frequency */ uint32_t HAL_RCC_GetSysClockFreq(void) { 8013b0c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 8013b10: b087 sub sp, #28 8013b12: af00 add r7, sp, #0 uint32_t pllm = 0, pllvco = 0, pllp = 0; 8013b14: 2200 movs r2, #0 8013b16: 60fa str r2, [r7, #12] 8013b18: 2200 movs r2, #0 8013b1a: 617a str r2, [r7, #20] 8013b1c: 2200 movs r2, #0 8013b1e: 60ba str r2, [r7, #8] uint32_t sysclockfreq = 0; 8013b20: 2200 movs r2, #0 8013b22: 613a str r2, [r7, #16] /* Get SYSCLK source -------------------------------------------------------*/ switch (RCC->CFGR & RCC_CFGR_SWS) 8013b24: 4a51 ldr r2, [pc, #324] ; (8013c6c ) 8013b26: 6892 ldr r2, [r2, #8] 8013b28: f002 020c and.w r2, r2, #12 8013b2c: 2a04 cmp r2, #4 8013b2e: d007 beq.n 8013b40 8013b30: 2a08 cmp r2, #8 8013b32: d008 beq.n 8013b46 8013b34: 2a00 cmp r2, #0 8013b36: f040 8090 bne.w 8013c5a { case RCC_SYSCLKSOURCE_STATUS_HSI: /* HSI used as system clock source */ { sysclockfreq = HSI_VALUE; 8013b3a: 4b4d ldr r3, [pc, #308] ; (8013c70 ) 8013b3c: 613b str r3, [r7, #16] break; 8013b3e: e08f b.n 8013c60 } case RCC_SYSCLKSOURCE_STATUS_HSE: /* HSE used as system clock source */ { sysclockfreq = HSE_VALUE; 8013b40: 4b4c ldr r3, [pc, #304] ; (8013c74 ) 8013b42: 613b str r3, [r7, #16] break; 8013b44: e08c b.n 8013c60 } case RCC_SYSCLKSOURCE_STATUS_PLLCLK: /* PLL used as system clock source */ { /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLLM) * PLLN SYSCLK = PLL_VCO / PLLP */ pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM; 8013b46: 4a49 ldr r2, [pc, #292] ; (8013c6c ) 8013b48: 6852 ldr r2, [r2, #4] 8013b4a: f002 023f and.w r2, r2, #63 ; 0x3f 8013b4e: 60fa str r2, [r7, #12] if (__HAL_RCC_GET_PLL_OSCSOURCE() != RCC_PLLCFGR_PLLSRC_HSI) 8013b50: 4a46 ldr r2, [pc, #280] ; (8013c6c ) 8013b52: 6852 ldr r2, [r2, #4] 8013b54: f402 0280 and.w r2, r2, #4194304 ; 0x400000 8013b58: 2a00 cmp r2, #0 8013b5a: d023 beq.n 8013ba4 { /* HSE used as PLL clock source */ pllvco = (uint32_t)((((uint64_t) HSE_VALUE * ((uint64_t)((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)))) / (uint64_t)pllm); 8013b5c: 4b43 ldr r3, [pc, #268] ; (8013c6c ) 8013b5e: 685b ldr r3, [r3, #4] 8013b60: 099b lsrs r3, r3, #6 8013b62: f04f 0400 mov.w r4, #0 8013b66: f240 11ff movw r1, #511 ; 0x1ff 8013b6a: f04f 0200 mov.w r2, #0 8013b6e: ea03 0301 and.w r3, r3, r1 8013b72: ea04 0402 and.w r4, r4, r2 8013b76: 4a3f ldr r2, [pc, #252] ; (8013c74 ) 8013b78: fb02 f104 mul.w r1, r2, r4 8013b7c: 2200 movs r2, #0 8013b7e: fb02 f203 mul.w r2, r2, r3 8013b82: 440a add r2, r1 8013b84: 493b ldr r1, [pc, #236] ; (8013c74 ) 8013b86: fba3 0101 umull r0, r1, r3, r1 8013b8a: 1853 adds r3, r2, r1 8013b8c: 4619 mov r1, r3 8013b8e: 68fb ldr r3, [r7, #12] 8013b90: f04f 0400 mov.w r4, #0 8013b94: 461a mov r2, r3 8013b96: 4623 mov r3, r4 8013b98: f7ec fb56 bl 8000248 <__aeabi_uldivmod> 8013b9c: 4603 mov r3, r0 8013b9e: 460c mov r4, r1 8013ba0: 617b str r3, [r7, #20] 8013ba2: e04c b.n 8013c3e } else { /* HSI used as PLL clock source */ pllvco = (uint32_t)((((uint64_t) HSI_VALUE * ((uint64_t)((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)))) / (uint64_t)pllm); 8013ba4: 4a31 ldr r2, [pc, #196] ; (8013c6c ) 8013ba6: 6852 ldr r2, [r2, #4] 8013ba8: 0992 lsrs r2, r2, #6 8013baa: 4611 mov r1, r2 8013bac: f04f 0200 mov.w r2, #0 8013bb0: f240 15ff movw r5, #511 ; 0x1ff 8013bb4: f04f 0600 mov.w r6, #0 8013bb8: ea05 0501 and.w r5, r5, r1 8013bbc: ea06 0602 and.w r6, r6, r2 8013bc0: 4629 mov r1, r5 8013bc2: 4632 mov r2, r6 8013bc4: ea4f 1b42 mov.w fp, r2, lsl #5 8013bc8: ea4b 6bd1 orr.w fp, fp, r1, lsr #27 8013bcc: ea4f 1a41 mov.w sl, r1, lsl #5 8013bd0: 4651 mov r1, sl 8013bd2: 465a mov r2, fp 8013bd4: 46aa mov sl, r5 8013bd6: 46b3 mov fp, r6 8013bd8: 4655 mov r5, sl 8013bda: 465e mov r6, fp 8013bdc: 1b4d subs r5, r1, r5 8013bde: eb62 0606 sbc.w r6, r2, r6 8013be2: 4629 mov r1, r5 8013be4: 4632 mov r2, r6 8013be6: 0194 lsls r4, r2, #6 8013be8: ea44 6491 orr.w r4, r4, r1, lsr #26 8013bec: 018b lsls r3, r1, #6 8013bee: 1a5b subs r3, r3, r1 8013bf0: eb64 0402 sbc.w r4, r4, r2 8013bf4: ea4f 09c4 mov.w r9, r4, lsl #3 8013bf8: ea49 7953 orr.w r9, r9, r3, lsr #29 8013bfc: ea4f 08c3 mov.w r8, r3, lsl #3 8013c00: 4643 mov r3, r8 8013c02: 464c mov r4, r9 8013c04: 4655 mov r5, sl 8013c06: 465e mov r6, fp 8013c08: 18ed adds r5, r5, r3 8013c0a: eb46 0604 adc.w r6, r6, r4 8013c0e: 462b mov r3, r5 8013c10: 4634 mov r4, r6 8013c12: 02a2 lsls r2, r4, #10 8013c14: 607a str r2, [r7, #4] 8013c16: 687a ldr r2, [r7, #4] 8013c18: ea42 5293 orr.w r2, r2, r3, lsr #22 8013c1c: 607a str r2, [r7, #4] 8013c1e: 029b lsls r3, r3, #10 8013c20: 603b str r3, [r7, #0] 8013c22: e897 0018 ldmia.w r7, {r3, r4} 8013c26: 4618 mov r0, r3 8013c28: 4621 mov r1, r4 8013c2a: 68fb ldr r3, [r7, #12] 8013c2c: f04f 0400 mov.w r4, #0 8013c30: 461a mov r2, r3 8013c32: 4623 mov r3, r4 8013c34: f7ec fb08 bl 8000248 <__aeabi_uldivmod> 8013c38: 4603 mov r3, r0 8013c3a: 460c mov r4, r1 8013c3c: 617b str r3, [r7, #20] } pllp = ((((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >> RCC_PLLCFGR_PLLP_Pos) + 1) * 2); 8013c3e: 4b0b ldr r3, [pc, #44] ; (8013c6c ) 8013c40: 685b ldr r3, [r3, #4] 8013c42: 0c1b lsrs r3, r3, #16 8013c44: f003 0303 and.w r3, r3, #3 8013c48: 3301 adds r3, #1 8013c4a: 005b lsls r3, r3, #1 8013c4c: 60bb str r3, [r7, #8] sysclockfreq = pllvco / pllp; 8013c4e: 697a ldr r2, [r7, #20] 8013c50: 68bb ldr r3, [r7, #8] 8013c52: fbb2 f3f3 udiv r3, r2, r3 8013c56: 613b str r3, [r7, #16] break; 8013c58: e002 b.n 8013c60 } default: { sysclockfreq = HSI_VALUE; 8013c5a: 4b05 ldr r3, [pc, #20] ; (8013c70 ) 8013c5c: 613b str r3, [r7, #16] break; 8013c5e: bf00 nop } } return sysclockfreq; 8013c60: 693b ldr r3, [r7, #16] } 8013c62: 4618 mov r0, r3 8013c64: 371c adds r7, #28 8013c66: 46bd mov sp, r7 8013c68: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 8013c6c: 40023800 .word 0x40023800 8013c70: 00f42400 .word 0x00f42400 8013c74: 017d7840 .word 0x017d7840 08013c78 : * right HCLK value. Otherwise, any configuration based on this function will be incorrect. * @note The SystemCoreClock CMSIS variable is used to store System Clock Frequency. * @retval HCLK frequency */ uint32_t HAL_RCC_GetHCLKFreq(void) { 8013c78: b480 push {r7} 8013c7a: af00 add r7, sp, #0 return SystemCoreClock; 8013c7c: 4b03 ldr r3, [pc, #12] ; (8013c8c ) 8013c7e: 681b ldr r3, [r3, #0] } 8013c80: 4618 mov r0, r3 8013c82: 46bd mov sp, r7 8013c84: f85d 7b04 ldr.w r7, [sp], #4 8013c88: 4770 bx lr 8013c8a: bf00 nop 8013c8c: 20020994 .word 0x20020994 08013c90 : * @note Each time PCLK1 changes, this function must be called to update the * right PCLK1 value. Otherwise, any configuration based on this function will be incorrect. * @retval PCLK1 frequency */ uint32_t HAL_RCC_GetPCLK1Freq(void) { 8013c90: b580 push {r7, lr} 8013c92: af00 add r7, sp, #0 /* Get HCLK source and Compute PCLK1 frequency ---------------------------*/ return (HAL_RCC_GetHCLKFreq() >> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE1) >> RCC_CFGR_PPRE1_Pos]); 8013c94: f7ff fff0 bl 8013c78 8013c98: 4601 mov r1, r0 8013c9a: 4b05 ldr r3, [pc, #20] ; (8013cb0 ) 8013c9c: 689b ldr r3, [r3, #8] 8013c9e: 0a9b lsrs r3, r3, #10 8013ca0: f003 0307 and.w r3, r3, #7 8013ca4: 4a03 ldr r2, [pc, #12] ; (8013cb4 ) 8013ca6: 5cd3 ldrb r3, [r2, r3] 8013ca8: fa21 f303 lsr.w r3, r1, r3 } 8013cac: 4618 mov r0, r3 8013cae: bd80 pop {r7, pc} 8013cb0: 40023800 .word 0x40023800 8013cb4: 0801ade8 .word 0x0801ade8 08013cb8 : * @note Each time PCLK2 changes, this function must be called to update the * right PCLK2 value. Otherwise, any configuration based on this function will be incorrect. * @retval PCLK2 frequency */ uint32_t HAL_RCC_GetPCLK2Freq(void) { 8013cb8: b580 push {r7, lr} 8013cba: af00 add r7, sp, #0 /* Get HCLK source and Compute PCLK2 frequency ---------------------------*/ return (HAL_RCC_GetHCLKFreq() >> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE2) >> RCC_CFGR_PPRE2_Pos]); 8013cbc: f7ff ffdc bl 8013c78 8013cc0: 4601 mov r1, r0 8013cc2: 4b05 ldr r3, [pc, #20] ; (8013cd8 ) 8013cc4: 689b ldr r3, [r3, #8] 8013cc6: 0b5b lsrs r3, r3, #13 8013cc8: f003 0307 and.w r3, r3, #7 8013ccc: 4a03 ldr r2, [pc, #12] ; (8013cdc ) 8013cce: 5cd3 ldrb r3, [r2, r3] 8013cd0: fa21 f303 lsr.w r3, r1, r3 } 8013cd4: 4618 mov r0, r3 8013cd6: bd80 pop {r7, pc} 8013cd8: 40023800 .word 0x40023800 8013cdc: 0801ade8 .word 0x0801ade8 08013ce0 : * the backup registers) are set to their reset values. * * @retval HAL status */ HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit) { 8013ce0: b580 push {r7, lr} 8013ce2: b088 sub sp, #32 8013ce4: af00 add r7, sp, #0 8013ce6: 6078 str r0, [r7, #4] uint32_t tickstart = 0; 8013ce8: 2300 movs r3, #0 8013cea: 617b str r3, [r7, #20] uint32_t tmpreg0 = 0; 8013cec: 2300 movs r3, #0 8013cee: 613b str r3, [r7, #16] uint32_t tmpreg1 = 0; 8013cf0: 2300 movs r3, #0 8013cf2: 60fb str r3, [r7, #12] uint32_t plli2sused = 0; 8013cf4: 2300 movs r3, #0 8013cf6: 61fb str r3, [r7, #28] uint32_t pllsaiused = 0; 8013cf8: 2300 movs r3, #0 8013cfa: 61bb str r3, [r7, #24] /* Check the parameters */ assert_param(IS_RCC_PERIPHCLOCK(PeriphClkInit->PeriphClockSelection)); /*----------------------------------- I2S configuration ----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2S) == (RCC_PERIPHCLK_I2S)) 8013cfc: 687b ldr r3, [r7, #4] 8013cfe: 681b ldr r3, [r3, #0] 8013d00: f003 0301 and.w r3, r3, #1 8013d04: 2b00 cmp r3, #0 8013d06: d012 beq.n 8013d2e { /* Check the parameters */ assert_param(IS_RCC_I2SCLKSOURCE(PeriphClkInit->I2sClockSelection)); /* Configure I2S Clock source */ __HAL_RCC_I2S_CONFIG(PeriphClkInit->I2sClockSelection); 8013d08: 4a69 ldr r2, [pc, #420] ; (8013eb0 ) 8013d0a: 4b69 ldr r3, [pc, #420] ; (8013eb0 ) 8013d0c: 689b ldr r3, [r3, #8] 8013d0e: f423 0300 bic.w r3, r3, #8388608 ; 0x800000 8013d12: 6093 str r3, [r2, #8] 8013d14: 4966 ldr r1, [pc, #408] ; (8013eb0 ) 8013d16: 4b66 ldr r3, [pc, #408] ; (8013eb0 ) 8013d18: 689a ldr r2, [r3, #8] 8013d1a: 687b ldr r3, [r7, #4] 8013d1c: 6b5b ldr r3, [r3, #52] ; 0x34 8013d1e: 4313 orrs r3, r2 8013d20: 608b str r3, [r1, #8] /* Enable the PLLI2S when it's used as clock source for I2S */ if(PeriphClkInit->I2sClockSelection == RCC_I2SCLKSOURCE_PLLI2S) 8013d22: 687b ldr r3, [r7, #4] 8013d24: 6b5b ldr r3, [r3, #52] ; 0x34 8013d26: 2b00 cmp r3, #0 8013d28: d101 bne.n 8013d2e { plli2sused = 1; 8013d2a: 2301 movs r3, #1 8013d2c: 61fb str r3, [r7, #28] } } /*------------------------------------ SAI1 configuration --------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == (RCC_PERIPHCLK_SAI1)) 8013d2e: 687b ldr r3, [r7, #4] 8013d30: 681b ldr r3, [r3, #0] 8013d32: f403 2300 and.w r3, r3, #524288 ; 0x80000 8013d36: 2b00 cmp r3, #0 8013d38: d017 beq.n 8013d6a { /* Check the parameters */ assert_param(IS_RCC_SAI1CLKSOURCE(PeriphClkInit->Sai1ClockSelection)); /* Configure SAI1 Clock source */ __HAL_RCC_SAI1_CONFIG(PeriphClkInit->Sai1ClockSelection); 8013d3a: 495d ldr r1, [pc, #372] ; (8013eb0 ) 8013d3c: 4b5c ldr r3, [pc, #368] ; (8013eb0 ) 8013d3e: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 8013d42: f423 1240 bic.w r2, r3, #3145728 ; 0x300000 8013d46: 687b ldr r3, [r7, #4] 8013d48: 6bdb ldr r3, [r3, #60] ; 0x3c 8013d4a: 4313 orrs r3, r2 8013d4c: f8c1 308c str.w r3, [r1, #140] ; 0x8c /* Enable the PLLI2S when it's used as clock source for SAI */ if(PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLI2S) 8013d50: 687b ldr r3, [r7, #4] 8013d52: 6bdb ldr r3, [r3, #60] ; 0x3c 8013d54: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000 8013d58: d101 bne.n 8013d5e { plli2sused = 1; 8013d5a: 2301 movs r3, #1 8013d5c: 61fb str r3, [r7, #28] } /* Enable the PLLSAI when it's used as clock source for SAI */ if(PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI) 8013d5e: 687b ldr r3, [r7, #4] 8013d60: 6bdb ldr r3, [r3, #60] ; 0x3c 8013d62: 2b00 cmp r3, #0 8013d64: d101 bne.n 8013d6a { pllsaiused = 1; 8013d66: 2301 movs r3, #1 8013d68: 61bb str r3, [r7, #24] } } /*------------------------------------ SAI2 configuration --------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == (RCC_PERIPHCLK_SAI2)) 8013d6a: 687b ldr r3, [r7, #4] 8013d6c: 681b ldr r3, [r3, #0] 8013d6e: f403 1380 and.w r3, r3, #1048576 ; 0x100000 8013d72: 2b00 cmp r3, #0 8013d74: d017 beq.n 8013da6 { /* Check the parameters */ assert_param(IS_RCC_SAI2CLKSOURCE(PeriphClkInit->Sai2ClockSelection)); /* Configure SAI2 Clock source */ __HAL_RCC_SAI2_CONFIG(PeriphClkInit->Sai2ClockSelection); 8013d76: 494e ldr r1, [pc, #312] ; (8013eb0 ) 8013d78: 4b4d ldr r3, [pc, #308] ; (8013eb0 ) 8013d7a: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 8013d7e: f423 0240 bic.w r2, r3, #12582912 ; 0xc00000 8013d82: 687b ldr r3, [r7, #4] 8013d84: 6c1b ldr r3, [r3, #64] ; 0x40 8013d86: 4313 orrs r3, r2 8013d88: f8c1 308c str.w r3, [r1, #140] ; 0x8c /* Enable the PLLI2S when it's used as clock source for SAI */ if(PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S) 8013d8c: 687b ldr r3, [r7, #4] 8013d8e: 6c1b ldr r3, [r3, #64] ; 0x40 8013d90: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000 8013d94: d101 bne.n 8013d9a { plli2sused = 1; 8013d96: 2301 movs r3, #1 8013d98: 61fb str r3, [r7, #28] } /* Enable the PLLSAI when it's used as clock source for SAI */ if(PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI) 8013d9a: 687b ldr r3, [r7, #4] 8013d9c: 6c1b ldr r3, [r3, #64] ; 0x40 8013d9e: 2b00 cmp r3, #0 8013da0: d101 bne.n 8013da6 { pllsaiused = 1; 8013da2: 2301 movs r3, #1 8013da4: 61bb str r3, [r7, #24] } } /*-------------------------------------- SPDIF-RX Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SPDIFRX) == RCC_PERIPHCLK_SPDIFRX) 8013da6: 687b ldr r3, [r7, #4] 8013da8: 681b ldr r3, [r3, #0] 8013daa: f003 7380 and.w r3, r3, #16777216 ; 0x1000000 8013dae: 2b00 cmp r3, #0 8013db0: d001 beq.n 8013db6 { plli2sused = 1; 8013db2: 2301 movs r3, #1 8013db4: 61fb str r3, [r7, #28] } /*------------------------------------ RTC configuration --------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RTC) == (RCC_PERIPHCLK_RTC)) 8013db6: 687b ldr r3, [r7, #4] 8013db8: 681b ldr r3, [r3, #0] 8013dba: f003 0320 and.w r3, r3, #32 8013dbe: 2b00 cmp r3, #0 8013dc0: f000 808b beq.w 8013eda { /* Check for RTC Parameters used to output RTCCLK */ assert_param(IS_RCC_RTCCLKSOURCE(PeriphClkInit->RTCClockSelection)); /* Enable Power Clock*/ __HAL_RCC_PWR_CLK_ENABLE(); 8013dc4: 4a3a ldr r2, [pc, #232] ; (8013eb0 ) 8013dc6: 4b3a ldr r3, [pc, #232] ; (8013eb0 ) 8013dc8: 6c1b ldr r3, [r3, #64] ; 0x40 8013dca: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 8013dce: 6413 str r3, [r2, #64] ; 0x40 8013dd0: 4b37 ldr r3, [pc, #220] ; (8013eb0 ) 8013dd2: 6c1b ldr r3, [r3, #64] ; 0x40 8013dd4: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 8013dd8: 60bb str r3, [r7, #8] 8013dda: 68bb ldr r3, [r7, #8] /* Enable write access to Backup domain */ PWR->CR1 |= PWR_CR1_DBP; 8013ddc: 4a35 ldr r2, [pc, #212] ; (8013eb4 ) 8013dde: 4b35 ldr r3, [pc, #212] ; (8013eb4 ) 8013de0: 681b ldr r3, [r3, #0] 8013de2: f443 7380 orr.w r3, r3, #256 ; 0x100 8013de6: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 8013de8: f7fd fbbc bl 8011564 8013dec: 6178 str r0, [r7, #20] /* Wait for Backup domain Write protection disable */ while((PWR->CR1 & PWR_CR1_DBP) == RESET) 8013dee: e008 b.n 8013e02 { if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) 8013df0: f7fd fbb8 bl 8011564 8013df4: 4602 mov r2, r0 8013df6: 697b ldr r3, [r7, #20] 8013df8: 1ad3 subs r3, r2, r3 8013dfa: 2b64 cmp r3, #100 ; 0x64 8013dfc: d901 bls.n 8013e02 { return HAL_TIMEOUT; 8013dfe: 2303 movs r3, #3 8013e00: e38d b.n 801451e while((PWR->CR1 & PWR_CR1_DBP) == RESET) 8013e02: 4b2c ldr r3, [pc, #176] ; (8013eb4 ) 8013e04: 681b ldr r3, [r3, #0] 8013e06: f403 7380 and.w r3, r3, #256 ; 0x100 8013e0a: 2b00 cmp r3, #0 8013e0c: d0f0 beq.n 8013df0 } } /* Reset the Backup domain only if the RTC Clock source selection is modified */ tmpreg0 = (RCC->BDCR & RCC_BDCR_RTCSEL); 8013e0e: 4b28 ldr r3, [pc, #160] ; (8013eb0 ) 8013e10: 6f1b ldr r3, [r3, #112] ; 0x70 8013e12: f403 7340 and.w r3, r3, #768 ; 0x300 8013e16: 613b str r3, [r7, #16] if((tmpreg0 != 0x00000000U) && (tmpreg0 != (PeriphClkInit->RTCClockSelection & RCC_BDCR_RTCSEL))) 8013e18: 693b ldr r3, [r7, #16] 8013e1a: 2b00 cmp r3, #0 8013e1c: d035 beq.n 8013e8a 8013e1e: 687b ldr r3, [r7, #4] 8013e20: 6b1b ldr r3, [r3, #48] ; 0x30 8013e22: f403 7240 and.w r2, r3, #768 ; 0x300 8013e26: 693b ldr r3, [r7, #16] 8013e28: 429a cmp r2, r3 8013e2a: d02e beq.n 8013e8a { /* Store the content of BDCR register before the reset of Backup Domain */ tmpreg0 = (RCC->BDCR & ~(RCC_BDCR_RTCSEL)); 8013e2c: 4b20 ldr r3, [pc, #128] ; (8013eb0 ) 8013e2e: 6f1b ldr r3, [r3, #112] ; 0x70 8013e30: f423 7340 bic.w r3, r3, #768 ; 0x300 8013e34: 613b str r3, [r7, #16] /* RTC Clock selection can be changed only if the Backup Domain is reset */ __HAL_RCC_BACKUPRESET_FORCE(); 8013e36: 4a1e ldr r2, [pc, #120] ; (8013eb0 ) 8013e38: 4b1d ldr r3, [pc, #116] ; (8013eb0 ) 8013e3a: 6f1b ldr r3, [r3, #112] ; 0x70 8013e3c: f443 3380 orr.w r3, r3, #65536 ; 0x10000 8013e40: 6713 str r3, [r2, #112] ; 0x70 __HAL_RCC_BACKUPRESET_RELEASE(); 8013e42: 4a1b ldr r2, [pc, #108] ; (8013eb0 ) 8013e44: 4b1a ldr r3, [pc, #104] ; (8013eb0 ) 8013e46: 6f1b ldr r3, [r3, #112] ; 0x70 8013e48: f423 3380 bic.w r3, r3, #65536 ; 0x10000 8013e4c: 6713 str r3, [r2, #112] ; 0x70 /* Restore the Content of BDCR register */ RCC->BDCR = tmpreg0; 8013e4e: 4a18 ldr r2, [pc, #96] ; (8013eb0 ) 8013e50: 693b ldr r3, [r7, #16] 8013e52: 6713 str r3, [r2, #112] ; 0x70 /* Wait for LSE reactivation if LSE was enable prior to Backup Domain reset */ if (HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSEON)) 8013e54: 4b16 ldr r3, [pc, #88] ; (8013eb0 ) 8013e56: 6f1b ldr r3, [r3, #112] ; 0x70 8013e58: f003 0301 and.w r3, r3, #1 8013e5c: 2b01 cmp r3, #1 8013e5e: d114 bne.n 8013e8a { /* Get Start Tick*/ tickstart = HAL_GetTick(); 8013e60: f7fd fb80 bl 8011564 8013e64: 6178 str r0, [r7, #20] /* Wait till LSE is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) 8013e66: e00a b.n 8013e7e { if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) 8013e68: f7fd fb7c bl 8011564 8013e6c: 4602 mov r2, r0 8013e6e: 697b ldr r3, [r7, #20] 8013e70: 1ad3 subs r3, r2, r3 8013e72: f241 3288 movw r2, #5000 ; 0x1388 8013e76: 4293 cmp r3, r2 8013e78: d901 bls.n 8013e7e { return HAL_TIMEOUT; 8013e7a: 2303 movs r3, #3 8013e7c: e34f b.n 801451e while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) 8013e7e: 4b0c ldr r3, [pc, #48] ; (8013eb0 ) 8013e80: 6f1b ldr r3, [r3, #112] ; 0x70 8013e82: f003 0302 and.w r3, r3, #2 8013e86: 2b00 cmp r3, #0 8013e88: d0ee beq.n 8013e68 } } } } __HAL_RCC_RTC_CONFIG(PeriphClkInit->RTCClockSelection); 8013e8a: 687b ldr r3, [r7, #4] 8013e8c: 6b1b ldr r3, [r3, #48] ; 0x30 8013e8e: f403 7340 and.w r3, r3, #768 ; 0x300 8013e92: f5b3 7f40 cmp.w r3, #768 ; 0x300 8013e96: d111 bne.n 8013ebc 8013e98: 4805 ldr r0, [pc, #20] ; (8013eb0 ) 8013e9a: 4b05 ldr r3, [pc, #20] ; (8013eb0 ) 8013e9c: 689b ldr r3, [r3, #8] 8013e9e: f423 12f8 bic.w r2, r3, #2031616 ; 0x1f0000 8013ea2: 687b ldr r3, [r7, #4] 8013ea4: 6b19 ldr r1, [r3, #48] ; 0x30 8013ea6: 4b04 ldr r3, [pc, #16] ; (8013eb8 ) 8013ea8: 400b ands r3, r1 8013eaa: 4313 orrs r3, r2 8013eac: 6083 str r3, [r0, #8] 8013eae: e00b b.n 8013ec8 8013eb0: 40023800 .word 0x40023800 8013eb4: 40007000 .word 0x40007000 8013eb8: 0ffffcff .word 0x0ffffcff 8013ebc: 4ab2 ldr r2, [pc, #712] ; (8014188 ) 8013ebe: 4bb2 ldr r3, [pc, #712] ; (8014188 ) 8013ec0: 689b ldr r3, [r3, #8] 8013ec2: f423 13f8 bic.w r3, r3, #2031616 ; 0x1f0000 8013ec6: 6093 str r3, [r2, #8] 8013ec8: 49af ldr r1, [pc, #700] ; (8014188 ) 8013eca: 4baf ldr r3, [pc, #700] ; (8014188 ) 8013ecc: 6f1a ldr r2, [r3, #112] ; 0x70 8013ece: 687b ldr r3, [r7, #4] 8013ed0: 6b1b ldr r3, [r3, #48] ; 0x30 8013ed2: f3c3 030b ubfx r3, r3, #0, #12 8013ed6: 4313 orrs r3, r2 8013ed8: 670b str r3, [r1, #112] ; 0x70 } /*------------------------------------ TIM configuration --------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_TIM) == (RCC_PERIPHCLK_TIM)) 8013eda: 687b ldr r3, [r7, #4] 8013edc: 681b ldr r3, [r3, #0] 8013ede: f003 0310 and.w r3, r3, #16 8013ee2: 2b00 cmp r3, #0 8013ee4: d010 beq.n 8013f08 { /* Check the parameters */ assert_param(IS_RCC_TIMPRES(PeriphClkInit->TIMPresSelection)); /* Configure Timer Prescaler */ __HAL_RCC_TIMCLKPRESCALER(PeriphClkInit->TIMPresSelection); 8013ee6: 4aa8 ldr r2, [pc, #672] ; (8014188 ) 8013ee8: 4ba7 ldr r3, [pc, #668] ; (8014188 ) 8013eea: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 8013eee: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000 8013ef2: f8c2 308c str.w r3, [r2, #140] ; 0x8c 8013ef6: 49a4 ldr r1, [pc, #656] ; (8014188 ) 8013ef8: 4ba3 ldr r3, [pc, #652] ; (8014188 ) 8013efa: f8d3 208c ldr.w r2, [r3, #140] ; 0x8c 8013efe: 687b ldr r3, [r7, #4] 8013f00: 6b9b ldr r3, [r3, #56] ; 0x38 8013f02: 4313 orrs r3, r2 8013f04: f8c1 308c str.w r3, [r1, #140] ; 0x8c } /*-------------------------------------- I2C1 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1) 8013f08: 687b ldr r3, [r7, #4] 8013f0a: 681b ldr r3, [r3, #0] 8013f0c: f403 4380 and.w r3, r3, #16384 ; 0x4000 8013f10: 2b00 cmp r3, #0 8013f12: d00a beq.n 8013f2a { /* Check the parameters */ assert_param(IS_RCC_I2C1CLKSOURCE(PeriphClkInit->I2c1ClockSelection)); /* Configure the I2C1 clock source */ __HAL_RCC_I2C1_CONFIG(PeriphClkInit->I2c1ClockSelection); 8013f14: 499c ldr r1, [pc, #624] ; (8014188 ) 8013f16: 4b9c ldr r3, [pc, #624] ; (8014188 ) 8013f18: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8013f1c: f423 3240 bic.w r2, r3, #196608 ; 0x30000 8013f20: 687b ldr r3, [r7, #4] 8013f22: 6e5b ldr r3, [r3, #100] ; 0x64 8013f24: 4313 orrs r3, r2 8013f26: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- I2C2 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2) 8013f2a: 687b ldr r3, [r7, #4] 8013f2c: 681b ldr r3, [r3, #0] 8013f2e: f403 4300 and.w r3, r3, #32768 ; 0x8000 8013f32: 2b00 cmp r3, #0 8013f34: d00a beq.n 8013f4c { /* Check the parameters */ assert_param(IS_RCC_I2C2CLKSOURCE(PeriphClkInit->I2c2ClockSelection)); /* Configure the I2C2 clock source */ __HAL_RCC_I2C2_CONFIG(PeriphClkInit->I2c2ClockSelection); 8013f36: 4994 ldr r1, [pc, #592] ; (8014188 ) 8013f38: 4b93 ldr r3, [pc, #588] ; (8014188 ) 8013f3a: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8013f3e: f423 2240 bic.w r2, r3, #786432 ; 0xc0000 8013f42: 687b ldr r3, [r7, #4] 8013f44: 6e9b ldr r3, [r3, #104] ; 0x68 8013f46: 4313 orrs r3, r2 8013f48: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- I2C3 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3) 8013f4c: 687b ldr r3, [r7, #4] 8013f4e: 681b ldr r3, [r3, #0] 8013f50: f403 3380 and.w r3, r3, #65536 ; 0x10000 8013f54: 2b00 cmp r3, #0 8013f56: d00a beq.n 8013f6e { /* Check the parameters */ assert_param(IS_RCC_I2C3CLKSOURCE(PeriphClkInit->I2c3ClockSelection)); /* Configure the I2C3 clock source */ __HAL_RCC_I2C3_CONFIG(PeriphClkInit->I2c3ClockSelection); 8013f58: 498b ldr r1, [pc, #556] ; (8014188 ) 8013f5a: 4b8b ldr r3, [pc, #556] ; (8014188 ) 8013f5c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8013f60: f423 1240 bic.w r2, r3, #3145728 ; 0x300000 8013f64: 687b ldr r3, [r7, #4] 8013f66: 6edb ldr r3, [r3, #108] ; 0x6c 8013f68: 4313 orrs r3, r2 8013f6a: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- I2C4 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C4) == RCC_PERIPHCLK_I2C4) 8013f6e: 687b ldr r3, [r7, #4] 8013f70: 681b ldr r3, [r3, #0] 8013f72: f403 3300 and.w r3, r3, #131072 ; 0x20000 8013f76: 2b00 cmp r3, #0 8013f78: d00a beq.n 8013f90 { /* Check the parameters */ assert_param(IS_RCC_I2C4CLKSOURCE(PeriphClkInit->I2c4ClockSelection)); /* Configure the I2C4 clock source */ __HAL_RCC_I2C4_CONFIG(PeriphClkInit->I2c4ClockSelection); 8013f7a: 4983 ldr r1, [pc, #524] ; (8014188 ) 8013f7c: 4b82 ldr r3, [pc, #520] ; (8014188 ) 8013f7e: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8013f82: f423 0240 bic.w r2, r3, #12582912 ; 0xc00000 8013f86: 687b ldr r3, [r7, #4] 8013f88: 6f1b ldr r3, [r3, #112] ; 0x70 8013f8a: 4313 orrs r3, r2 8013f8c: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- USART1 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1) 8013f90: 687b ldr r3, [r7, #4] 8013f92: 681b ldr r3, [r3, #0] 8013f94: f003 0340 and.w r3, r3, #64 ; 0x40 8013f98: 2b00 cmp r3, #0 8013f9a: d00a beq.n 8013fb2 { /* Check the parameters */ assert_param(IS_RCC_USART1CLKSOURCE(PeriphClkInit->Usart1ClockSelection)); /* Configure the USART1 clock source */ __HAL_RCC_USART1_CONFIG(PeriphClkInit->Usart1ClockSelection); 8013f9c: 497a ldr r1, [pc, #488] ; (8014188 ) 8013f9e: 4b7a ldr r3, [pc, #488] ; (8014188 ) 8013fa0: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8013fa4: f023 0203 bic.w r2, r3, #3 8013fa8: 687b ldr r3, [r7, #4] 8013faa: 6c5b ldr r3, [r3, #68] ; 0x44 8013fac: 4313 orrs r3, r2 8013fae: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- USART2 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2) 8013fb2: 687b ldr r3, [r7, #4] 8013fb4: 681b ldr r3, [r3, #0] 8013fb6: f003 0380 and.w r3, r3, #128 ; 0x80 8013fba: 2b00 cmp r3, #0 8013fbc: d00a beq.n 8013fd4 { /* Check the parameters */ assert_param(IS_RCC_USART2CLKSOURCE(PeriphClkInit->Usart2ClockSelection)); /* Configure the USART2 clock source */ __HAL_RCC_USART2_CONFIG(PeriphClkInit->Usart2ClockSelection); 8013fbe: 4972 ldr r1, [pc, #456] ; (8014188 ) 8013fc0: 4b71 ldr r3, [pc, #452] ; (8014188 ) 8013fc2: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8013fc6: f023 020c bic.w r2, r3, #12 8013fca: 687b ldr r3, [r7, #4] 8013fcc: 6c9b ldr r3, [r3, #72] ; 0x48 8013fce: 4313 orrs r3, r2 8013fd0: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- USART3 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART3) == RCC_PERIPHCLK_USART3) 8013fd4: 687b ldr r3, [r7, #4] 8013fd6: 681b ldr r3, [r3, #0] 8013fd8: f403 7380 and.w r3, r3, #256 ; 0x100 8013fdc: 2b00 cmp r3, #0 8013fde: d00a beq.n 8013ff6 { /* Check the parameters */ assert_param(IS_RCC_USART3CLKSOURCE(PeriphClkInit->Usart3ClockSelection)); /* Configure the USART3 clock source */ __HAL_RCC_USART3_CONFIG(PeriphClkInit->Usart3ClockSelection); 8013fe0: 4969 ldr r1, [pc, #420] ; (8014188 ) 8013fe2: 4b69 ldr r3, [pc, #420] ; (8014188 ) 8013fe4: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8013fe8: f023 0230 bic.w r2, r3, #48 ; 0x30 8013fec: 687b ldr r3, [r7, #4] 8013fee: 6cdb ldr r3, [r3, #76] ; 0x4c 8013ff0: 4313 orrs r3, r2 8013ff2: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- UART4 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART4) == RCC_PERIPHCLK_UART4) 8013ff6: 687b ldr r3, [r7, #4] 8013ff8: 681b ldr r3, [r3, #0] 8013ffa: f403 7300 and.w r3, r3, #512 ; 0x200 8013ffe: 2b00 cmp r3, #0 8014000: d00a beq.n 8014018 { /* Check the parameters */ assert_param(IS_RCC_UART4CLKSOURCE(PeriphClkInit->Uart4ClockSelection)); /* Configure the UART4 clock source */ __HAL_RCC_UART4_CONFIG(PeriphClkInit->Uart4ClockSelection); 8014002: 4961 ldr r1, [pc, #388] ; (8014188 ) 8014004: 4b60 ldr r3, [pc, #384] ; (8014188 ) 8014006: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 801400a: f023 02c0 bic.w r2, r3, #192 ; 0xc0 801400e: 687b ldr r3, [r7, #4] 8014010: 6d1b ldr r3, [r3, #80] ; 0x50 8014012: 4313 orrs r3, r2 8014014: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- UART5 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART5) == RCC_PERIPHCLK_UART5) 8014018: 687b ldr r3, [r7, #4] 801401a: 681b ldr r3, [r3, #0] 801401c: f403 6380 and.w r3, r3, #1024 ; 0x400 8014020: 2b00 cmp r3, #0 8014022: d00a beq.n 801403a { /* Check the parameters */ assert_param(IS_RCC_UART5CLKSOURCE(PeriphClkInit->Uart5ClockSelection)); /* Configure the UART5 clock source */ __HAL_RCC_UART5_CONFIG(PeriphClkInit->Uart5ClockSelection); 8014024: 4958 ldr r1, [pc, #352] ; (8014188 ) 8014026: 4b58 ldr r3, [pc, #352] ; (8014188 ) 8014028: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 801402c: f423 7240 bic.w r2, r3, #768 ; 0x300 8014030: 687b ldr r3, [r7, #4] 8014032: 6d5b ldr r3, [r3, #84] ; 0x54 8014034: 4313 orrs r3, r2 8014036: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- USART6 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART6) == RCC_PERIPHCLK_USART6) 801403a: 687b ldr r3, [r7, #4] 801403c: 681b ldr r3, [r3, #0] 801403e: f403 6300 and.w r3, r3, #2048 ; 0x800 8014042: 2b00 cmp r3, #0 8014044: d00a beq.n 801405c { /* Check the parameters */ assert_param(IS_RCC_USART6CLKSOURCE(PeriphClkInit->Usart6ClockSelection)); /* Configure the USART6 clock source */ __HAL_RCC_USART6_CONFIG(PeriphClkInit->Usart6ClockSelection); 8014046: 4950 ldr r1, [pc, #320] ; (8014188 ) 8014048: 4b4f ldr r3, [pc, #316] ; (8014188 ) 801404a: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 801404e: f423 6240 bic.w r2, r3, #3072 ; 0xc00 8014052: 687b ldr r3, [r7, #4] 8014054: 6d9b ldr r3, [r3, #88] ; 0x58 8014056: 4313 orrs r3, r2 8014058: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- UART7 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART7) == RCC_PERIPHCLK_UART7) 801405c: 687b ldr r3, [r7, #4] 801405e: 681b ldr r3, [r3, #0] 8014060: f403 5380 and.w r3, r3, #4096 ; 0x1000 8014064: 2b00 cmp r3, #0 8014066: d00a beq.n 801407e { /* Check the parameters */ assert_param(IS_RCC_UART7CLKSOURCE(PeriphClkInit->Uart7ClockSelection)); /* Configure the UART7 clock source */ __HAL_RCC_UART7_CONFIG(PeriphClkInit->Uart7ClockSelection); 8014068: 4947 ldr r1, [pc, #284] ; (8014188 ) 801406a: 4b47 ldr r3, [pc, #284] ; (8014188 ) 801406c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8014070: f423 5240 bic.w r2, r3, #12288 ; 0x3000 8014074: 687b ldr r3, [r7, #4] 8014076: 6ddb ldr r3, [r3, #92] ; 0x5c 8014078: 4313 orrs r3, r2 801407a: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- UART8 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART8) == RCC_PERIPHCLK_UART8) 801407e: 687b ldr r3, [r7, #4] 8014080: 681b ldr r3, [r3, #0] 8014082: f403 5300 and.w r3, r3, #8192 ; 0x2000 8014086: 2b00 cmp r3, #0 8014088: d00a beq.n 80140a0 { /* Check the parameters */ assert_param(IS_RCC_UART8CLKSOURCE(PeriphClkInit->Uart8ClockSelection)); /* Configure the UART8 clock source */ __HAL_RCC_UART8_CONFIG(PeriphClkInit->Uart8ClockSelection); 801408a: 493f ldr r1, [pc, #252] ; (8014188 ) 801408c: 4b3e ldr r3, [pc, #248] ; (8014188 ) 801408e: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8014092: f423 4240 bic.w r2, r3, #49152 ; 0xc000 8014096: 687b ldr r3, [r7, #4] 8014098: 6e1b ldr r3, [r3, #96] ; 0x60 801409a: 4313 orrs r3, r2 801409c: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*--------------------------------------- CEC Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CEC) == RCC_PERIPHCLK_CEC) 80140a0: 687b ldr r3, [r7, #4] 80140a2: 681b ldr r3, [r3, #0] 80140a4: f403 0380 and.w r3, r3, #4194304 ; 0x400000 80140a8: 2b00 cmp r3, #0 80140aa: d00a beq.n 80140c2 { /* Check the parameters */ assert_param(IS_RCC_CECCLKSOURCE(PeriphClkInit->CecClockSelection)); /* Configure the CEC clock source */ __HAL_RCC_CEC_CONFIG(PeriphClkInit->CecClockSelection); 80140ac: 4936 ldr r1, [pc, #216] ; (8014188 ) 80140ae: 4b36 ldr r3, [pc, #216] ; (8014188 ) 80140b0: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 80140b4: f023 6280 bic.w r2, r3, #67108864 ; 0x4000000 80140b8: 687b ldr r3, [r7, #4] 80140ba: 6f9b ldr r3, [r3, #120] ; 0x78 80140bc: 4313 orrs r3, r2 80140be: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- CK48 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CLK48) == RCC_PERIPHCLK_CLK48) 80140c2: 687b ldr r3, [r7, #4] 80140c4: 681b ldr r3, [r3, #0] 80140c6: f403 1300 and.w r3, r3, #2097152 ; 0x200000 80140ca: 2b00 cmp r3, #0 80140cc: d011 beq.n 80140f2 { /* Check the parameters */ assert_param(IS_RCC_CLK48SOURCE(PeriphClkInit->Clk48ClockSelection)); /* Configure the CLK48 source */ __HAL_RCC_CLK48_CONFIG(PeriphClkInit->Clk48ClockSelection); 80140ce: 492e ldr r1, [pc, #184] ; (8014188 ) 80140d0: 4b2d ldr r3, [pc, #180] ; (8014188 ) 80140d2: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 80140d6: f023 6200 bic.w r2, r3, #134217728 ; 0x8000000 80140da: 687b ldr r3, [r7, #4] 80140dc: 6fdb ldr r3, [r3, #124] ; 0x7c 80140de: 4313 orrs r3, r2 80140e0: f8c1 3090 str.w r3, [r1, #144] ; 0x90 /* Enable the PLLSAI when it's used as clock source for CK48 */ if(PeriphClkInit->Clk48ClockSelection == RCC_CLK48SOURCE_PLLSAIP) 80140e4: 687b ldr r3, [r7, #4] 80140e6: 6fdb ldr r3, [r3, #124] ; 0x7c 80140e8: f1b3 6f00 cmp.w r3, #134217728 ; 0x8000000 80140ec: d101 bne.n 80140f2 { pllsaiused = 1; 80140ee: 2301 movs r3, #1 80140f0: 61bb str r3, [r7, #24] } } /*-------------------------------------- LTDC Configuration -----------------------------------*/ #if defined(STM32F746xx) || defined(STM32F756xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx) || defined (STM32F750xx) if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LTDC) == RCC_PERIPHCLK_LTDC) 80140f2: 687b ldr r3, [r7, #4] 80140f4: 681b ldr r3, [r3, #0] 80140f6: f003 0308 and.w r3, r3, #8 80140fa: 2b00 cmp r3, #0 80140fc: d001 beq.n 8014102 { pllsaiused = 1; 80140fe: 2301 movs r3, #1 8014100: 61bb str r3, [r7, #24] } #endif /* STM32F746xx || STM32F756xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx || STM32F750xx */ /*-------------------------------------- LPTIM1 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPTIM1) == RCC_PERIPHCLK_LPTIM1) 8014102: 687b ldr r3, [r7, #4] 8014104: 681b ldr r3, [r3, #0] 8014106: f403 2380 and.w r3, r3, #262144 ; 0x40000 801410a: 2b00 cmp r3, #0 801410c: d00a beq.n 8014124 { /* Check the parameters */ assert_param(IS_RCC_LPTIM1CLK(PeriphClkInit->Lptim1ClockSelection)); /* Configure the LTPIM1 clock source */ __HAL_RCC_LPTIM1_CONFIG(PeriphClkInit->Lptim1ClockSelection); 801410e: 491e ldr r1, [pc, #120] ; (8014188 ) 8014110: 4b1d ldr r3, [pc, #116] ; (8014188 ) 8014112: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8014116: f023 7240 bic.w r2, r3, #50331648 ; 0x3000000 801411a: 687b ldr r3, [r7, #4] 801411c: 6f5b ldr r3, [r3, #116] ; 0x74 801411e: 4313 orrs r3, r2 8014120: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*------------------------------------- SDMMC1 Configuration ------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SDMMC1) == RCC_PERIPHCLK_SDMMC1) 8014124: 687b ldr r3, [r7, #4] 8014126: 681b ldr r3, [r3, #0] 8014128: f403 0300 and.w r3, r3, #8388608 ; 0x800000 801412c: 2b00 cmp r3, #0 801412e: d00b beq.n 8014148 { /* Check the parameters */ assert_param(IS_RCC_SDMMC1CLKSOURCE(PeriphClkInit->Sdmmc1ClockSelection)); /* Configure the SDMMC1 clock source */ __HAL_RCC_SDMMC1_CONFIG(PeriphClkInit->Sdmmc1ClockSelection); 8014130: 4915 ldr r1, [pc, #84] ; (8014188 ) 8014132: 4b15 ldr r3, [pc, #84] ; (8014188 ) 8014134: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8014138: f023 5280 bic.w r2, r3, #268435456 ; 0x10000000 801413c: 687b ldr r3, [r7, #4] 801413e: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 8014142: 4313 orrs r3, r2 8014144: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } #if defined (STM32F765xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx) /*------------------------------------- SDMMC2 Configuration ------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SDMMC2) == RCC_PERIPHCLK_SDMMC2) 8014148: 687b ldr r3, [r7, #4] 801414a: 681b ldr r3, [r3, #0] 801414c: f003 6380 and.w r3, r3, #67108864 ; 0x4000000 8014150: 2b00 cmp r3, #0 8014152: d00b beq.n 801416c { /* Check the parameters */ assert_param(IS_RCC_SDMMC2CLKSOURCE(PeriphClkInit->Sdmmc2ClockSelection)); /* Configure the SDMMC2 clock source */ __HAL_RCC_SDMMC2_CONFIG(PeriphClkInit->Sdmmc2ClockSelection); 8014154: 490c ldr r1, [pc, #48] ; (8014188 ) 8014156: 4b0c ldr r3, [pc, #48] ; (8014188 ) 8014158: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 801415c: f023 5200 bic.w r2, r3, #536870912 ; 0x20000000 8014160: 687b ldr r3, [r7, #4] 8014162: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 8014166: 4313 orrs r3, r2 8014168: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*------------------------------------- DFSDM1 Configuration -------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_DFSDM1) == RCC_PERIPHCLK_DFSDM1) 801416c: 687b ldr r3, [r7, #4] 801416e: 681b ldr r3, [r3, #0] 8014170: f003 6300 and.w r3, r3, #134217728 ; 0x8000000 8014174: 2b00 cmp r3, #0 8014176: d00e beq.n 8014196 { /* Check the parameters */ assert_param(IS_RCC_DFSDM1CLKSOURCE(PeriphClkInit->Dfsdm1ClockSelection)); /* Configure the DFSDM1 interface clock source */ __HAL_RCC_DFSDM1_CONFIG(PeriphClkInit->Dfsdm1ClockSelection); 8014178: 4903 ldr r1, [pc, #12] ; (8014188 ) 801417a: 4b03 ldr r3, [pc, #12] ; (8014188 ) 801417c: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 8014180: f023 7200 bic.w r2, r3, #33554432 ; 0x2000000 8014184: 687b ldr r3, [r7, #4] 8014186: e001 b.n 801418c 8014188: 40023800 .word 0x40023800 801418c: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 8014190: 4313 orrs r3, r2 8014192: f8c1 308c str.w r3, [r1, #140] ; 0x8c } /*------------------------------------- DFSDM AUDIO Configuration -------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_DFSDM1_AUDIO) == RCC_PERIPHCLK_DFSDM1_AUDIO) 8014196: 687b ldr r3, [r7, #4] 8014198: 681b ldr r3, [r3, #0] 801419a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 801419e: 2b00 cmp r3, #0 80141a0: d00b beq.n 80141ba { /* Check the parameters */ assert_param(IS_RCC_DFSDM1AUDIOCLKSOURCE(PeriphClkInit->Dfsdm1AudioClockSelection)); /* Configure the DFSDM interface clock source */ __HAL_RCC_DFSDM1AUDIO_CONFIG(PeriphClkInit->Dfsdm1AudioClockSelection); 80141a2: 4981 ldr r1, [pc, #516] ; (80143a8 ) 80141a4: 4b80 ldr r3, [pc, #512] ; (80143a8 ) 80141a6: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 80141aa: f023 6280 bic.w r2, r3, #67108864 ; 0x4000000 80141ae: 687b ldr r3, [r7, #4] 80141b0: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 80141b4: 4313 orrs r3, r2 80141b6: f8c1 308c str.w r3, [r1, #140] ; 0x8c } #endif /* STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx */ /*-------------------------------------- PLLI2S Configuration ---------------------------------*/ /* PLLI2S is configured when a peripheral will use it as source clock : SAI1, SAI2, I2S or SPDIF-RX */ if((plli2sused == 1) || ((PeriphClkInit->PeriphClockSelection & RCC_PERIPHCLK_PLLI2S) == RCC_PERIPHCLK_PLLI2S)) 80141ba: 69fb ldr r3, [r7, #28] 80141bc: 2b01 cmp r3, #1 80141be: d006 beq.n 80141ce 80141c0: 687b ldr r3, [r7, #4] 80141c2: 681b ldr r3, [r3, #0] 80141c4: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 80141c8: 2b00 cmp r3, #0 80141ca: f000 80d6 beq.w 801437a { /* Disable the PLLI2S */ __HAL_RCC_PLLI2S_DISABLE(); 80141ce: 4a76 ldr r2, [pc, #472] ; (80143a8 ) 80141d0: 4b75 ldr r3, [pc, #468] ; (80143a8 ) 80141d2: 681b ldr r3, [r3, #0] 80141d4: f023 6380 bic.w r3, r3, #67108864 ; 0x4000000 80141d8: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 80141da: f7fd f9c3 bl 8011564 80141de: 6178 str r0, [r7, #20] /* Wait till PLLI2S is disabled */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) != RESET) 80141e0: e008 b.n 80141f4 { if((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE) 80141e2: f7fd f9bf bl 8011564 80141e6: 4602 mov r2, r0 80141e8: 697b ldr r3, [r7, #20] 80141ea: 1ad3 subs r3, r2, r3 80141ec: 2b64 cmp r3, #100 ; 0x64 80141ee: d901 bls.n 80141f4 { /* return in case of Timeout detected */ return HAL_TIMEOUT; 80141f0: 2303 movs r3, #3 80141f2: e194 b.n 801451e while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) != RESET) 80141f4: 4b6c ldr r3, [pc, #432] ; (80143a8 ) 80141f6: 681b ldr r3, [r3, #0] 80141f8: f003 6300 and.w r3, r3, #134217728 ; 0x8000000 80141fc: 2b00 cmp r3, #0 80141fe: d1f0 bne.n 80141e2 /* check for common PLLI2S Parameters */ assert_param(IS_RCC_PLLI2SN_VALUE(PeriphClkInit->PLLI2S.PLLI2SN)); /*----------------- In Case of PLLI2S is selected as source clock for I2S -------------------*/ if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2S) == RCC_PERIPHCLK_I2S) && (PeriphClkInit->I2sClockSelection == RCC_I2SCLKSOURCE_PLLI2S))) 8014200: 687b ldr r3, [r7, #4] 8014202: 681b ldr r3, [r3, #0] 8014204: f003 0301 and.w r3, r3, #1 8014208: 2b00 cmp r3, #0 801420a: d021 beq.n 8014250 801420c: 687b ldr r3, [r7, #4] 801420e: 6b5b ldr r3, [r3, #52] ; 0x34 8014210: 2b00 cmp r3, #0 8014212: d11d bne.n 8014250 { /* check for Parameters */ assert_param(IS_RCC_PLLI2SR_VALUE(PeriphClkInit->PLLI2S.PLLI2SR)); /* Read PLLI2SP and PLLI2SQ value from PLLI2SCFGR register (this value is not needed for I2S configuration) */ tmpreg0 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SP) >> RCC_PLLI2SCFGR_PLLI2SP_Pos); 8014214: 4b64 ldr r3, [pc, #400] ; (80143a8 ) 8014216: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 801421a: 0c1b lsrs r3, r3, #16 801421c: f003 0303 and.w r3, r3, #3 8014220: 613b str r3, [r7, #16] tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SQ) >> RCC_PLLI2SCFGR_PLLI2SQ_Pos); 8014222: 4b61 ldr r3, [pc, #388] ; (80143a8 ) 8014224: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 8014228: 0e1b lsrs r3, r3, #24 801422a: f003 030f and.w r3, r3, #15 801422e: 60fb str r3, [r7, #12] /* Configure the PLLI2S division factors */ /* PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) x (PLLI2SN/PLLM) */ /* I2SCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SR */ __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN , tmpreg0, tmpreg1, PeriphClkInit->PLLI2S.PLLI2SR); 8014230: 495d ldr r1, [pc, #372] ; (80143a8 ) 8014232: 687b ldr r3, [r7, #4] 8014234: 685b ldr r3, [r3, #4] 8014236: 019a lsls r2, r3, #6 8014238: 693b ldr r3, [r7, #16] 801423a: 041b lsls r3, r3, #16 801423c: 431a orrs r2, r3 801423e: 68fb ldr r3, [r7, #12] 8014240: 061b lsls r3, r3, #24 8014242: 431a orrs r2, r3 8014244: 687b ldr r3, [r7, #4] 8014246: 689b ldr r3, [r3, #8] 8014248: 071b lsls r3, r3, #28 801424a: 4313 orrs r3, r2 801424c: f8c1 3084 str.w r3, [r1, #132] ; 0x84 } /*----------------- In Case of PLLI2S is selected as source clock for SAI -------------------*/ if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLI2S)) || 8014250: 687b ldr r3, [r7, #4] 8014252: 681b ldr r3, [r3, #0] 8014254: f403 2300 and.w r3, r3, #524288 ; 0x80000 8014258: 2b00 cmp r3, #0 801425a: d004 beq.n 8014266 801425c: 687b ldr r3, [r7, #4] 801425e: 6bdb ldr r3, [r3, #60] ; 0x3c 8014260: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000 8014264: d00a beq.n 801427c ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S))) 8014266: 687b ldr r3, [r7, #4] 8014268: 681b ldr r3, [r3, #0] 801426a: f403 1380 and.w r3, r3, #1048576 ; 0x100000 if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLI2S)) || 801426e: 2b00 cmp r3, #0 8014270: d02e beq.n 80142d0 ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S))) 8014272: 687b ldr r3, [r7, #4] 8014274: 6c1b ldr r3, [r3, #64] ; 0x40 8014276: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000 801427a: d129 bne.n 80142d0 assert_param(IS_RCC_PLLI2SQ_VALUE(PeriphClkInit->PLLI2S.PLLI2SQ)); /* Check for PLLI2S/DIVQ parameters */ assert_param(IS_RCC_PLLI2S_DIVQ_VALUE(PeriphClkInit->PLLI2SDivQ)); /* Read PLLI2SP and PLLI2SR values from PLLI2SCFGR register (this value is not needed for SAI configuration) */ tmpreg0 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SP) >> RCC_PLLI2SCFGR_PLLI2SP_Pos); 801427c: 4b4a ldr r3, [pc, #296] ; (80143a8 ) 801427e: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 8014282: 0c1b lsrs r3, r3, #16 8014284: f003 0303 and.w r3, r3, #3 8014288: 613b str r3, [r7, #16] tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLI2SCFGR_PLLI2SR_Pos); 801428a: 4b47 ldr r3, [pc, #284] ; (80143a8 ) 801428c: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 8014290: 0f1b lsrs r3, r3, #28 8014292: f003 0307 and.w r3, r3, #7 8014296: 60fb str r3, [r7, #12] /* Configure the PLLI2S division factors */ /* PLLI2S_VCO Input = PLL_SOURCE/PLLM */ /* PLLI2S_VCO Output = PLLI2S_VCO Input * PLLI2SN */ /* SAI_CLK(first level) = PLLI2S_VCO Output/PLLI2SQ */ __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN, tmpreg0, PeriphClkInit->PLLI2S.PLLI2SQ, tmpreg1); 8014298: 4943 ldr r1, [pc, #268] ; (80143a8 ) 801429a: 687b ldr r3, [r7, #4] 801429c: 685b ldr r3, [r3, #4] 801429e: 019a lsls r2, r3, #6 80142a0: 693b ldr r3, [r7, #16] 80142a2: 041b lsls r3, r3, #16 80142a4: 431a orrs r2, r3 80142a6: 687b ldr r3, [r7, #4] 80142a8: 68db ldr r3, [r3, #12] 80142aa: 061b lsls r3, r3, #24 80142ac: 431a orrs r2, r3 80142ae: 68fb ldr r3, [r7, #12] 80142b0: 071b lsls r3, r3, #28 80142b2: 4313 orrs r3, r2 80142b4: f8c1 3084 str.w r3, [r1, #132] ; 0x84 /* SAI_CLK_x = SAI_CLK(first level)/PLLI2SDIVQ */ __HAL_RCC_PLLI2S_PLLSAICLKDIVQ_CONFIG(PeriphClkInit->PLLI2SDivQ); 80142b8: 493b ldr r1, [pc, #236] ; (80143a8 ) 80142ba: 4b3b ldr r3, [pc, #236] ; (80143a8 ) 80142bc: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 80142c0: f023 021f bic.w r2, r3, #31 80142c4: 687b ldr r3, [r7, #4] 80142c6: 6a5b ldr r3, [r3, #36] ; 0x24 80142c8: 3b01 subs r3, #1 80142ca: 4313 orrs r3, r2 80142cc: f8c1 308c str.w r3, [r1, #140] ; 0x8c } /*----------------- In Case of PLLI2S is selected as source clock for SPDIF-RX -------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SPDIFRX) == RCC_PERIPHCLK_SPDIFRX) 80142d0: 687b ldr r3, [r7, #4] 80142d2: 681b ldr r3, [r3, #0] 80142d4: f003 7380 and.w r3, r3, #16777216 ; 0x1000000 80142d8: 2b00 cmp r3, #0 80142da: d01d beq.n 8014318 { /* check for Parameters */ assert_param(IS_RCC_PLLI2SP_VALUE(PeriphClkInit->PLLI2S.PLLI2SP)); /* Read PLLI2SR value from PLLI2SCFGR register (this value is not needed for SPDIF-RX configuration) */ tmpreg0 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SQ) >> RCC_PLLI2SCFGR_PLLI2SQ_Pos); 80142dc: 4b32 ldr r3, [pc, #200] ; (80143a8 ) 80142de: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 80142e2: 0e1b lsrs r3, r3, #24 80142e4: f003 030f and.w r3, r3, #15 80142e8: 613b str r3, [r7, #16] tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLI2SCFGR_PLLI2SR_Pos); 80142ea: 4b2f ldr r3, [pc, #188] ; (80143a8 ) 80142ec: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 80142f0: 0f1b lsrs r3, r3, #28 80142f2: f003 0307 and.w r3, r3, #7 80142f6: 60fb str r3, [r7, #12] /* Configure the PLLI2S division factors */ /* PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) x (PLLI2SN/PLLM) */ /* SPDIFCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SP */ __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN , PeriphClkInit->PLLI2S.PLLI2SP, tmpreg0, tmpreg1); 80142f8: 492b ldr r1, [pc, #172] ; (80143a8 ) 80142fa: 687b ldr r3, [r7, #4] 80142fc: 685b ldr r3, [r3, #4] 80142fe: 019a lsls r2, r3, #6 8014300: 687b ldr r3, [r7, #4] 8014302: 691b ldr r3, [r3, #16] 8014304: 041b lsls r3, r3, #16 8014306: 431a orrs r2, r3 8014308: 693b ldr r3, [r7, #16] 801430a: 061b lsls r3, r3, #24 801430c: 431a orrs r2, r3 801430e: 68fb ldr r3, [r7, #12] 8014310: 071b lsls r3, r3, #28 8014312: 4313 orrs r3, r2 8014314: f8c1 3084 str.w r3, [r1, #132] ; 0x84 } /*----------------- In Case of PLLI2S is just selected -----------------*/ if((PeriphClkInit->PeriphClockSelection & RCC_PERIPHCLK_PLLI2S) == RCC_PERIPHCLK_PLLI2S) 8014318: 687b ldr r3, [r7, #4] 801431a: 681b ldr r3, [r3, #0] 801431c: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 8014320: 2b00 cmp r3, #0 8014322: d011 beq.n 8014348 assert_param(IS_RCC_PLLI2SQ_VALUE(PeriphClkInit->PLLI2S.PLLI2SQ)); /* Configure the PLLI2S division factors */ /* PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) x (PLLI2SN/PLLI2SM) */ /* SPDIFRXCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SP */ __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN , PeriphClkInit->PLLI2S.PLLI2SP, PeriphClkInit->PLLI2S.PLLI2SQ, PeriphClkInit->PLLI2S.PLLI2SR); 8014324: 4920 ldr r1, [pc, #128] ; (80143a8 ) 8014326: 687b ldr r3, [r7, #4] 8014328: 685b ldr r3, [r3, #4] 801432a: 019a lsls r2, r3, #6 801432c: 687b ldr r3, [r7, #4] 801432e: 691b ldr r3, [r3, #16] 8014330: 041b lsls r3, r3, #16 8014332: 431a orrs r2, r3 8014334: 687b ldr r3, [r7, #4] 8014336: 68db ldr r3, [r3, #12] 8014338: 061b lsls r3, r3, #24 801433a: 431a orrs r2, r3 801433c: 687b ldr r3, [r7, #4] 801433e: 689b ldr r3, [r3, #8] 8014340: 071b lsls r3, r3, #28 8014342: 4313 orrs r3, r2 8014344: f8c1 3084 str.w r3, [r1, #132] ; 0x84 } /* Enable the PLLI2S */ __HAL_RCC_PLLI2S_ENABLE(); 8014348: 4a17 ldr r2, [pc, #92] ; (80143a8 ) 801434a: 4b17 ldr r3, [pc, #92] ; (80143a8 ) 801434c: 681b ldr r3, [r3, #0] 801434e: f043 6380 orr.w r3, r3, #67108864 ; 0x4000000 8014352: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 8014354: f7fd f906 bl 8011564 8014358: 6178 str r0, [r7, #20] /* Wait till PLLI2S is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) == RESET) 801435a: e008 b.n 801436e { if((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE) 801435c: f7fd f902 bl 8011564 8014360: 4602 mov r2, r0 8014362: 697b ldr r3, [r7, #20] 8014364: 1ad3 subs r3, r2, r3 8014366: 2b64 cmp r3, #100 ; 0x64 8014368: d901 bls.n 801436e { /* return in case of Timeout detected */ return HAL_TIMEOUT; 801436a: 2303 movs r3, #3 801436c: e0d7 b.n 801451e while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) == RESET) 801436e: 4b0e ldr r3, [pc, #56] ; (80143a8 ) 8014370: 681b ldr r3, [r3, #0] 8014372: f003 6300 and.w r3, r3, #134217728 ; 0x8000000 8014376: 2b00 cmp r3, #0 8014378: d0f0 beq.n 801435c } } /*-------------------------------------- PLLSAI Configuration ---------------------------------*/ /* PLLSAI is configured when a peripheral will use it as source clock : SAI1, SAI2, LTDC or CK48 */ if(pllsaiused == 1) 801437a: 69bb ldr r3, [r7, #24] 801437c: 2b01 cmp r3, #1 801437e: f040 80cd bne.w 801451c { /* Disable PLLSAI Clock */ __HAL_RCC_PLLSAI_DISABLE(); 8014382: 4a09 ldr r2, [pc, #36] ; (80143a8 ) 8014384: 4b08 ldr r3, [pc, #32] ; (80143a8 ) 8014386: 681b ldr r3, [r3, #0] 8014388: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 801438c: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 801438e: f7fd f8e9 bl 8011564 8014392: 6178 str r0, [r7, #20] /* Wait till PLLSAI is disabled */ while(__HAL_RCC_PLLSAI_GET_FLAG() != RESET) 8014394: e00a b.n 80143ac { if((HAL_GetTick() - tickstart) > PLLSAI_TIMEOUT_VALUE) 8014396: f7fd f8e5 bl 8011564 801439a: 4602 mov r2, r0 801439c: 697b ldr r3, [r7, #20] 801439e: 1ad3 subs r3, r2, r3 80143a0: 2b64 cmp r3, #100 ; 0x64 80143a2: d903 bls.n 80143ac { /* return in case of Timeout detected */ return HAL_TIMEOUT; 80143a4: 2303 movs r3, #3 80143a6: e0ba b.n 801451e 80143a8: 40023800 .word 0x40023800 while(__HAL_RCC_PLLSAI_GET_FLAG() != RESET) 80143ac: 4b5e ldr r3, [pc, #376] ; (8014528 ) 80143ae: 681b ldr r3, [r3, #0] 80143b0: f003 5300 and.w r3, r3, #536870912 ; 0x20000000 80143b4: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000 80143b8: d0ed beq.n 8014396 /* Check the PLLSAI division factors */ assert_param(IS_RCC_PLLSAIN_VALUE(PeriphClkInit->PLLSAI.PLLSAIN)); /*----------------- In Case of PLLSAI is selected as source clock for SAI -------------------*/ if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI)) ||\ 80143ba: 687b ldr r3, [r7, #4] 80143bc: 681b ldr r3, [r3, #0] 80143be: f403 2300 and.w r3, r3, #524288 ; 0x80000 80143c2: 2b00 cmp r3, #0 80143c4: d003 beq.n 80143ce 80143c6: 687b ldr r3, [r7, #4] 80143c8: 6bdb ldr r3, [r3, #60] ; 0x3c 80143ca: 2b00 cmp r3, #0 80143cc: d009 beq.n 80143e2 ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI))) 80143ce: 687b ldr r3, [r7, #4] 80143d0: 681b ldr r3, [r3, #0] 80143d2: f403 1380 and.w r3, r3, #1048576 ; 0x100000 if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI)) ||\ 80143d6: 2b00 cmp r3, #0 80143d8: d02e beq.n 8014438 ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI))) 80143da: 687b ldr r3, [r7, #4] 80143dc: 6c1b ldr r3, [r3, #64] ; 0x40 80143de: 2b00 cmp r3, #0 80143e0: d12a bne.n 8014438 assert_param(IS_RCC_PLLSAIQ_VALUE(PeriphClkInit->PLLSAI.PLLSAIQ)); /* check for PLLSAI/DIVQ Parameter */ assert_param(IS_RCC_PLLSAI_DIVQ_VALUE(PeriphClkInit->PLLSAIDivQ)); /* Read PLLSAIP value from PLLSAICFGR register (this value is not needed for SAI configuration) */ tmpreg0 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIP) >> RCC_PLLSAICFGR_PLLSAIP_Pos); 80143e2: 4b51 ldr r3, [pc, #324] ; (8014528 ) 80143e4: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 80143e8: 0c1b lsrs r3, r3, #16 80143ea: f003 0303 and.w r3, r3, #3 80143ee: 613b str r3, [r7, #16] tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLSAICFGR_PLLSAIR_Pos); 80143f0: 4b4d ldr r3, [pc, #308] ; (8014528 ) 80143f2: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 80143f6: 0f1b lsrs r3, r3, #28 80143f8: f003 0307 and.w r3, r3, #7 80143fc: 60fb str r3, [r7, #12] /* PLLSAI_VCO Input = PLL_SOURCE/PLLM */ /* PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAIN */ /* SAI_CLK(first level) = PLLSAI_VCO Output/PLLSAIQ */ __HAL_RCC_PLLSAI_CONFIG(PeriphClkInit->PLLSAI.PLLSAIN , tmpreg0, PeriphClkInit->PLLSAI.PLLSAIQ, tmpreg1); 80143fe: 494a ldr r1, [pc, #296] ; (8014528 ) 8014400: 687b ldr r3, [r7, #4] 8014402: 695b ldr r3, [r3, #20] 8014404: 019a lsls r2, r3, #6 8014406: 693b ldr r3, [r7, #16] 8014408: 041b lsls r3, r3, #16 801440a: 431a orrs r2, r3 801440c: 687b ldr r3, [r7, #4] 801440e: 699b ldr r3, [r3, #24] 8014410: 061b lsls r3, r3, #24 8014412: 431a orrs r2, r3 8014414: 68fb ldr r3, [r7, #12] 8014416: 071b lsls r3, r3, #28 8014418: 4313 orrs r3, r2 801441a: f8c1 3088 str.w r3, [r1, #136] ; 0x88 /* SAI_CLK_x = SAI_CLK(first level)/PLLSAIDIVQ */ __HAL_RCC_PLLSAI_PLLSAICLKDIVQ_CONFIG(PeriphClkInit->PLLSAIDivQ); 801441e: 4942 ldr r1, [pc, #264] ; (8014528 ) 8014420: 4b41 ldr r3, [pc, #260] ; (8014528 ) 8014422: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 8014426: f423 52f8 bic.w r2, r3, #7936 ; 0x1f00 801442a: 687b ldr r3, [r7, #4] 801442c: 6a9b ldr r3, [r3, #40] ; 0x28 801442e: 3b01 subs r3, #1 8014430: 021b lsls r3, r3, #8 8014432: 4313 orrs r3, r2 8014434: f8c1 308c str.w r3, [r1, #140] ; 0x8c } /*----------------- In Case of PLLSAI is selected as source clock for CLK48 -------------------*/ /* In Case of PLLI2S is selected as source clock for CK48 */ if((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CLK48) == RCC_PERIPHCLK_CLK48) && (PeriphClkInit->Clk48ClockSelection == RCC_CLK48SOURCE_PLLSAIP)) 8014438: 687b ldr r3, [r7, #4] 801443a: 681b ldr r3, [r3, #0] 801443c: f403 1300 and.w r3, r3, #2097152 ; 0x200000 8014440: 2b00 cmp r3, #0 8014442: d022 beq.n 801448a 8014444: 687b ldr r3, [r7, #4] 8014446: 6fdb ldr r3, [r3, #124] ; 0x7c 8014448: f1b3 6f00 cmp.w r3, #134217728 ; 0x8000000 801444c: d11d bne.n 801448a { /* check for Parameters */ assert_param(IS_RCC_PLLSAIP_VALUE(PeriphClkInit->PLLSAI.PLLSAIP)); /* Read PLLSAIQ and PLLSAIR value from PLLSAICFGR register (this value is not needed for CK48 configuration) */ tmpreg0 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIQ) >> RCC_PLLSAICFGR_PLLSAIQ_Pos); 801444e: 4b36 ldr r3, [pc, #216] ; (8014528 ) 8014450: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 8014454: 0e1b lsrs r3, r3, #24 8014456: f003 030f and.w r3, r3, #15 801445a: 613b str r3, [r7, #16] tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIR) >> RCC_PLLSAICFGR_PLLSAIR_Pos); 801445c: 4b32 ldr r3, [pc, #200] ; (8014528 ) 801445e: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 8014462: 0f1b lsrs r3, r3, #28 8014464: f003 0307 and.w r3, r3, #7 8014468: 60fb str r3, [r7, #12] /* Configure the PLLSAI division factors */ /* PLLSAI_VCO = f(VCO clock) = f(PLLSAI clock input) x (PLLI2SN/PLLM) */ /* 48CLK = f(PLLSAI clock output) = f(VCO clock) / PLLSAIP */ __HAL_RCC_PLLSAI_CONFIG(PeriphClkInit->PLLSAI.PLLSAIN , PeriphClkInit->PLLSAI.PLLSAIP, tmpreg0, tmpreg1); 801446a: 492f ldr r1, [pc, #188] ; (8014528 ) 801446c: 687b ldr r3, [r7, #4] 801446e: 695b ldr r3, [r3, #20] 8014470: 019a lsls r2, r3, #6 8014472: 687b ldr r3, [r7, #4] 8014474: 6a1b ldr r3, [r3, #32] 8014476: 041b lsls r3, r3, #16 8014478: 431a orrs r2, r3 801447a: 693b ldr r3, [r7, #16] 801447c: 061b lsls r3, r3, #24 801447e: 431a orrs r2, r3 8014480: 68fb ldr r3, [r7, #12] 8014482: 071b lsls r3, r3, #28 8014484: 4313 orrs r3, r2 8014486: f8c1 3088 str.w r3, [r1, #136] ; 0x88 } #if defined(STM32F746xx) || defined(STM32F756xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx) || defined (STM32F750xx) /*---------------------------- LTDC configuration -------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LTDC) == (RCC_PERIPHCLK_LTDC)) 801448a: 687b ldr r3, [r7, #4] 801448c: 681b ldr r3, [r3, #0] 801448e: f003 0308 and.w r3, r3, #8 8014492: 2b00 cmp r3, #0 8014494: d028 beq.n 80144e8 { assert_param(IS_RCC_PLLSAIR_VALUE(PeriphClkInit->PLLSAI.PLLSAIR)); assert_param(IS_RCC_PLLSAI_DIVR_VALUE(PeriphClkInit->PLLSAIDivR)); /* Read PLLSAIP and PLLSAIQ value from PLLSAICFGR register (these value are not needed for LTDC configuration) */ tmpreg0 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIQ) >> RCC_PLLSAICFGR_PLLSAIQ_Pos); 8014496: 4b24 ldr r3, [pc, #144] ; (8014528 ) 8014498: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 801449c: 0e1b lsrs r3, r3, #24 801449e: f003 030f and.w r3, r3, #15 80144a2: 613b str r3, [r7, #16] tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIP) >> RCC_PLLSAICFGR_PLLSAIP_Pos); 80144a4: 4b20 ldr r3, [pc, #128] ; (8014528 ) 80144a6: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 80144aa: 0c1b lsrs r3, r3, #16 80144ac: f003 0303 and.w r3, r3, #3 80144b0: 60fb str r3, [r7, #12] /* PLLSAI_VCO Input = PLL_SOURCE/PLLM */ /* PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAIN */ /* LTDC_CLK(first level) = PLLSAI_VCO Output/PLLSAIR */ __HAL_RCC_PLLSAI_CONFIG(PeriphClkInit->PLLSAI.PLLSAIN , tmpreg1, tmpreg0, PeriphClkInit->PLLSAI.PLLSAIR); 80144b2: 491d ldr r1, [pc, #116] ; (8014528 ) 80144b4: 687b ldr r3, [r7, #4] 80144b6: 695b ldr r3, [r3, #20] 80144b8: 019a lsls r2, r3, #6 80144ba: 68fb ldr r3, [r7, #12] 80144bc: 041b lsls r3, r3, #16 80144be: 431a orrs r2, r3 80144c0: 693b ldr r3, [r7, #16] 80144c2: 061b lsls r3, r3, #24 80144c4: 431a orrs r2, r3 80144c6: 687b ldr r3, [r7, #4] 80144c8: 69db ldr r3, [r3, #28] 80144ca: 071b lsls r3, r3, #28 80144cc: 4313 orrs r3, r2 80144ce: f8c1 3088 str.w r3, [r1, #136] ; 0x88 /* LTDC_CLK = LTDC_CLK(first level)/PLLSAIDIVR */ __HAL_RCC_PLLSAI_PLLSAICLKDIVR_CONFIG(PeriphClkInit->PLLSAIDivR); 80144d2: 4915 ldr r1, [pc, #84] ; (8014528 ) 80144d4: 4b14 ldr r3, [pc, #80] ; (8014528 ) 80144d6: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 80144da: f423 3240 bic.w r2, r3, #196608 ; 0x30000 80144de: 687b ldr r3, [r7, #4] 80144e0: 6adb ldr r3, [r3, #44] ; 0x2c 80144e2: 4313 orrs r3, r2 80144e4: f8c1 308c str.w r3, [r1, #140] ; 0x8c } #endif /* STM32F746xx || STM32F756xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx || STM32F750xx */ /* Enable PLLSAI Clock */ __HAL_RCC_PLLSAI_ENABLE(); 80144e8: 4a0f ldr r2, [pc, #60] ; (8014528 ) 80144ea: 4b0f ldr r3, [pc, #60] ; (8014528 ) 80144ec: 681b ldr r3, [r3, #0] 80144ee: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 80144f2: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 80144f4: f7fd f836 bl 8011564 80144f8: 6178 str r0, [r7, #20] /* Wait till PLLSAI is ready */ while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET) 80144fa: e008 b.n 801450e { if((HAL_GetTick() - tickstart) > PLLSAI_TIMEOUT_VALUE) 80144fc: f7fd f832 bl 8011564 8014500: 4602 mov r2, r0 8014502: 697b ldr r3, [r7, #20] 8014504: 1ad3 subs r3, r2, r3 8014506: 2b64 cmp r3, #100 ; 0x64 8014508: d901 bls.n 801450e { /* return in case of Timeout detected */ return HAL_TIMEOUT; 801450a: 2303 movs r3, #3 801450c: e007 b.n 801451e while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET) 801450e: 4b06 ldr r3, [pc, #24] ; (8014528 ) 8014510: 681b ldr r3, [r3, #0] 8014512: f003 5300 and.w r3, r3, #536870912 ; 0x20000000 8014516: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000 801451a: d1ef bne.n 80144fc } } } return HAL_OK; 801451c: 2300 movs r3, #0 } 801451e: 4618 mov r0, r3 8014520: 3720 adds r7, #32 8014522: 46bd mov sp, r7 8014524: bd80 pop {r7, pc} 8014526: bf00 nop 8014528: 40023800 .word 0x40023800 0801452c : * Ex: call @ref HAL_TIM_Base_DeInit() before HAL_TIM_Base_Init() * @param htim TIM Base handle * @retval HAL status */ HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim) { 801452c: b580 push {r7, lr} 801452e: b082 sub sp, #8 8014530: af00 add r7, sp, #0 8014532: 6078 str r0, [r7, #4] /* Check the TIM handle allocation */ if (htim == NULL) 8014534: 687b ldr r3, [r7, #4] 8014536: 2b00 cmp r3, #0 8014538: d101 bne.n 801453e { return HAL_ERROR; 801453a: 2301 movs r3, #1 801453c: e049 b.n 80145d2 assert_param(IS_TIM_INSTANCE(htim->Instance)); assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); if (htim->State == HAL_TIM_STATE_RESET) 801453e: 687b ldr r3, [r7, #4] 8014540: f893 303d ldrb.w r3, [r3, #61] ; 0x3d 8014544: b2db uxtb r3, r3 8014546: 2b00 cmp r3, #0 8014548: d106 bne.n 8014558 { /* Allocate lock resource and initialize it */ htim->Lock = HAL_UNLOCKED; 801454a: 687b ldr r3, [r7, #4] 801454c: 2200 movs r2, #0 801454e: f883 203c strb.w r2, [r3, #60] ; 0x3c } /* Init the low level hardware : GPIO, CLOCK, NVIC */ htim->Base_MspInitCallback(htim); #else /* Init the low level hardware : GPIO, CLOCK, NVIC */ HAL_TIM_Base_MspInit(htim); 8014552: 6878 ldr r0, [r7, #4] 8014554: f7fb fa18 bl 800f988 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } /* Set the TIM state */ htim->State = HAL_TIM_STATE_BUSY; 8014558: 687b ldr r3, [r7, #4] 801455a: 2202 movs r2, #2 801455c: f883 203d strb.w r2, [r3, #61] ; 0x3d /* Set the Time Base configuration */ TIM_Base_SetConfig(htim->Instance, &htim->Init); 8014560: 687b ldr r3, [r7, #4] 8014562: 681a ldr r2, [r3, #0] 8014564: 687b ldr r3, [r7, #4] 8014566: 3304 adds r3, #4 8014568: 4619 mov r1, r3 801456a: 4610 mov r0, r2 801456c: f000 f9f6 bl 801495c /* Initialize the DMA burst operation state */ htim->DMABurstState = HAL_DMA_BURST_STATE_READY; 8014570: 687b ldr r3, [r7, #4] 8014572: 2201 movs r2, #1 8014574: f883 2048 strb.w r2, [r3, #72] ; 0x48 /* Initialize the TIM channels state */ TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); 8014578: 687b ldr r3, [r7, #4] 801457a: 2201 movs r2, #1 801457c: f883 203e strb.w r2, [r3, #62] ; 0x3e 8014580: 687b ldr r3, [r7, #4] 8014582: 2201 movs r2, #1 8014584: f883 203f strb.w r2, [r3, #63] ; 0x3f 8014588: 687b ldr r3, [r7, #4] 801458a: 2201 movs r2, #1 801458c: f883 2040 strb.w r2, [r3, #64] ; 0x40 8014590: 687b ldr r3, [r7, #4] 8014592: 2201 movs r2, #1 8014594: f883 2041 strb.w r2, [r3, #65] ; 0x41 8014598: 687b ldr r3, [r7, #4] 801459a: 2201 movs r2, #1 801459c: f883 2042 strb.w r2, [r3, #66] ; 0x42 80145a0: 687b ldr r3, [r7, #4] 80145a2: 2201 movs r2, #1 80145a4: f883 2043 strb.w r2, [r3, #67] ; 0x43 TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); 80145a8: 687b ldr r3, [r7, #4] 80145aa: 2201 movs r2, #1 80145ac: f883 2044 strb.w r2, [r3, #68] ; 0x44 80145b0: 687b ldr r3, [r7, #4] 80145b2: 2201 movs r2, #1 80145b4: f883 2045 strb.w r2, [r3, #69] ; 0x45 80145b8: 687b ldr r3, [r7, #4] 80145ba: 2201 movs r2, #1 80145bc: f883 2046 strb.w r2, [r3, #70] ; 0x46 80145c0: 687b ldr r3, [r7, #4] 80145c2: 2201 movs r2, #1 80145c4: f883 2047 strb.w r2, [r3, #71] ; 0x47 /* Initialize the TIM state*/ htim->State = HAL_TIM_STATE_READY; 80145c8: 687b ldr r3, [r7, #4] 80145ca: 2201 movs r2, #1 80145cc: f883 203d strb.w r2, [r3, #61] ; 0x3d return HAL_OK; 80145d0: 2300 movs r3, #0 } 80145d2: 4618 mov r0, r3 80145d4: 3708 adds r7, #8 80145d6: 46bd mov sp, r7 80145d8: bd80 pop {r7, pc} ... 080145dc : * @brief Starts the TIM Base generation in interrupt mode. * @param htim TIM Base handle * @retval HAL status */ HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim) { 80145dc: b480 push {r7} 80145de: b085 sub sp, #20 80145e0: af00 add r7, sp, #0 80145e2: 6078 str r0, [r7, #4] /* Check the parameters */ assert_param(IS_TIM_INSTANCE(htim->Instance)); /* Check the TIM state */ if (htim->State != HAL_TIM_STATE_READY) 80145e4: 687b ldr r3, [r7, #4] 80145e6: f893 303d ldrb.w r3, [r3, #61] ; 0x3d 80145ea: b2db uxtb r3, r3 80145ec: 2b01 cmp r3, #1 80145ee: d001 beq.n 80145f4 { return HAL_ERROR; 80145f0: 2301 movs r3, #1 80145f2: e054 b.n 801469e } /* Set the TIM state */ htim->State = HAL_TIM_STATE_BUSY; 80145f4: 687b ldr r3, [r7, #4] 80145f6: 2202 movs r2, #2 80145f8: f883 203d strb.w r2, [r3, #61] ; 0x3d /* Enable the TIM Update interrupt */ __HAL_TIM_ENABLE_IT(htim, TIM_IT_UPDATE); 80145fc: 687b ldr r3, [r7, #4] 80145fe: 681b ldr r3, [r3, #0] 8014600: 687a ldr r2, [r7, #4] 8014602: 6812 ldr r2, [r2, #0] 8014604: 68d2 ldr r2, [r2, #12] 8014606: f042 0201 orr.w r2, r2, #1 801460a: 60da str r2, [r3, #12] /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) 801460c: 687b ldr r3, [r7, #4] 801460e: 681b ldr r3, [r3, #0] 8014610: 4a26 ldr r2, [pc, #152] ; (80146ac ) 8014612: 4293 cmp r3, r2 8014614: d022 beq.n 801465c 8014616: 687b ldr r3, [r7, #4] 8014618: 681b ldr r3, [r3, #0] 801461a: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 801461e: d01d beq.n 801465c 8014620: 687b ldr r3, [r7, #4] 8014622: 681b ldr r3, [r3, #0] 8014624: 4a22 ldr r2, [pc, #136] ; (80146b0 ) 8014626: 4293 cmp r3, r2 8014628: d018 beq.n 801465c 801462a: 687b ldr r3, [r7, #4] 801462c: 681b ldr r3, [r3, #0] 801462e: 4a21 ldr r2, [pc, #132] ; (80146b4 ) 8014630: 4293 cmp r3, r2 8014632: d013 beq.n 801465c 8014634: 687b ldr r3, [r7, #4] 8014636: 681b ldr r3, [r3, #0] 8014638: 4a1f ldr r2, [pc, #124] ; (80146b8 ) 801463a: 4293 cmp r3, r2 801463c: d00e beq.n 801465c 801463e: 687b ldr r3, [r7, #4] 8014640: 681b ldr r3, [r3, #0] 8014642: 4a1e ldr r2, [pc, #120] ; (80146bc ) 8014644: 4293 cmp r3, r2 8014646: d009 beq.n 801465c 8014648: 687b ldr r3, [r7, #4] 801464a: 681b ldr r3, [r3, #0] 801464c: 4a1c ldr r2, [pc, #112] ; (80146c0 ) 801464e: 4293 cmp r3, r2 8014650: d004 beq.n 801465c 8014652: 687b ldr r3, [r7, #4] 8014654: 681b ldr r3, [r3, #0] 8014656: 4a1b ldr r2, [pc, #108] ; (80146c4 ) 8014658: 4293 cmp r3, r2 801465a: d115 bne.n 8014688 { tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; 801465c: 687b ldr r3, [r7, #4] 801465e: 681b ldr r3, [r3, #0] 8014660: 689a ldr r2, [r3, #8] 8014662: 4b19 ldr r3, [pc, #100] ; (80146c8 ) 8014664: 4013 ands r3, r2 8014666: 60fb str r3, [r7, #12] if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) 8014668: 68fb ldr r3, [r7, #12] 801466a: 2b06 cmp r3, #6 801466c: d015 beq.n 801469a 801466e: 68fb ldr r3, [r7, #12] 8014670: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 8014674: d011 beq.n 801469a { __HAL_TIM_ENABLE(htim); 8014676: 687b ldr r3, [r7, #4] 8014678: 681b ldr r3, [r3, #0] 801467a: 687a ldr r2, [r7, #4] 801467c: 6812 ldr r2, [r2, #0] 801467e: 6812 ldr r2, [r2, #0] 8014680: f042 0201 orr.w r2, r2, #1 8014684: 601a str r2, [r3, #0] if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) 8014686: e008 b.n 801469a } } else { __HAL_TIM_ENABLE(htim); 8014688: 687b ldr r3, [r7, #4] 801468a: 681b ldr r3, [r3, #0] 801468c: 687a ldr r2, [r7, #4] 801468e: 6812 ldr r2, [r2, #0] 8014690: 6812 ldr r2, [r2, #0] 8014692: f042 0201 orr.w r2, r2, #1 8014696: 601a str r2, [r3, #0] 8014698: e000 b.n 801469c if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) 801469a: bf00 nop } /* Return function status */ return HAL_OK; 801469c: 2300 movs r3, #0 } 801469e: 4618 mov r0, r3 80146a0: 3714 adds r7, #20 80146a2: 46bd mov sp, r7 80146a4: f85d 7b04 ldr.w r7, [sp], #4 80146a8: 4770 bx lr 80146aa: bf00 nop 80146ac: 40010000 .word 0x40010000 80146b0: 40000400 .word 0x40000400 80146b4: 40000800 .word 0x40000800 80146b8: 40000c00 .word 0x40000c00 80146bc: 40010400 .word 0x40010400 80146c0: 40014000 .word 0x40014000 80146c4: 40001800 .word 0x40001800 80146c8: 00010007 .word 0x00010007 080146cc : * @brief This function handles TIM interrupts requests. * @param htim TIM handle * @retval None */ void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim) { 80146cc: b580 push {r7, lr} 80146ce: b082 sub sp, #8 80146d0: af00 add r7, sp, #0 80146d2: 6078 str r0, [r7, #4] /* Capture compare 1 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1) != RESET) 80146d4: 687b ldr r3, [r7, #4] 80146d6: 681b ldr r3, [r3, #0] 80146d8: 691b ldr r3, [r3, #16] 80146da: f003 0302 and.w r3, r3, #2 80146de: 2b02 cmp r3, #2 80146e0: d122 bne.n 8014728 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC1) != RESET) 80146e2: 687b ldr r3, [r7, #4] 80146e4: 681b ldr r3, [r3, #0] 80146e6: 68db ldr r3, [r3, #12] 80146e8: f003 0302 and.w r3, r3, #2 80146ec: 2b02 cmp r3, #2 80146ee: d11b bne.n 8014728 { { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC1); 80146f0: 687b ldr r3, [r7, #4] 80146f2: 681b ldr r3, [r3, #0] 80146f4: f06f 0202 mvn.w r2, #2 80146f8: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; 80146fa: 687b ldr r3, [r7, #4] 80146fc: 2201 movs r2, #1 80146fe: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR1 & TIM_CCMR1_CC1S) != 0x00U) 8014700: 687b ldr r3, [r7, #4] 8014702: 681b ldr r3, [r3, #0] 8014704: 699b ldr r3, [r3, #24] 8014706: f003 0303 and.w r3, r3, #3 801470a: 2b00 cmp r3, #0 801470c: d003 beq.n 8014716 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); 801470e: 6878 ldr r0, [r7, #4] 8014710: f000 f905 bl 801491e 8014714: e005 b.n 8014722 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); 8014716: 6878 ldr r0, [r7, #4] 8014718: f000 f8f7 bl 801490a HAL_TIM_PWM_PulseFinishedCallback(htim); 801471c: 6878 ldr r0, [r7, #4] 801471e: f000 f908 bl 8014932 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; 8014722: 687b ldr r3, [r7, #4] 8014724: 2200 movs r2, #0 8014726: 771a strb r2, [r3, #28] } } } /* Capture compare 2 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC2) != RESET) 8014728: 687b ldr r3, [r7, #4] 801472a: 681b ldr r3, [r3, #0] 801472c: 691b ldr r3, [r3, #16] 801472e: f003 0304 and.w r3, r3, #4 8014732: 2b04 cmp r3, #4 8014734: d122 bne.n 801477c { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC2) != RESET) 8014736: 687b ldr r3, [r7, #4] 8014738: 681b ldr r3, [r3, #0] 801473a: 68db ldr r3, [r3, #12] 801473c: f003 0304 and.w r3, r3, #4 8014740: 2b04 cmp r3, #4 8014742: d11b bne.n 801477c { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC2); 8014744: 687b ldr r3, [r7, #4] 8014746: 681b ldr r3, [r3, #0] 8014748: f06f 0204 mvn.w r2, #4 801474c: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; 801474e: 687b ldr r3, [r7, #4] 8014750: 2202 movs r2, #2 8014752: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U) 8014754: 687b ldr r3, [r7, #4] 8014756: 681b ldr r3, [r3, #0] 8014758: 699b ldr r3, [r3, #24] 801475a: f403 7340 and.w r3, r3, #768 ; 0x300 801475e: 2b00 cmp r3, #0 8014760: d003 beq.n 801476a { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); 8014762: 6878 ldr r0, [r7, #4] 8014764: f000 f8db bl 801491e 8014768: e005 b.n 8014776 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); 801476a: 6878 ldr r0, [r7, #4] 801476c: f000 f8cd bl 801490a HAL_TIM_PWM_PulseFinishedCallback(htim); 8014770: 6878 ldr r0, [r7, #4] 8014772: f000 f8de bl 8014932 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; 8014776: 687b ldr r3, [r7, #4] 8014778: 2200 movs r2, #0 801477a: 771a strb r2, [r3, #28] } } /* Capture compare 3 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC3) != RESET) 801477c: 687b ldr r3, [r7, #4] 801477e: 681b ldr r3, [r3, #0] 8014780: 691b ldr r3, [r3, #16] 8014782: f003 0308 and.w r3, r3, #8 8014786: 2b08 cmp r3, #8 8014788: d122 bne.n 80147d0 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC3) != RESET) 801478a: 687b ldr r3, [r7, #4] 801478c: 681b ldr r3, [r3, #0] 801478e: 68db ldr r3, [r3, #12] 8014790: f003 0308 and.w r3, r3, #8 8014794: 2b08 cmp r3, #8 8014796: d11b bne.n 80147d0 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC3); 8014798: 687b ldr r3, [r7, #4] 801479a: 681b ldr r3, [r3, #0] 801479c: f06f 0208 mvn.w r2, #8 80147a0: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; 80147a2: 687b ldr r3, [r7, #4] 80147a4: 2204 movs r2, #4 80147a6: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U) 80147a8: 687b ldr r3, [r7, #4] 80147aa: 681b ldr r3, [r3, #0] 80147ac: 69db ldr r3, [r3, #28] 80147ae: f003 0303 and.w r3, r3, #3 80147b2: 2b00 cmp r3, #0 80147b4: d003 beq.n 80147be { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); 80147b6: 6878 ldr r0, [r7, #4] 80147b8: f000 f8b1 bl 801491e 80147bc: e005 b.n 80147ca { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); 80147be: 6878 ldr r0, [r7, #4] 80147c0: f000 f8a3 bl 801490a HAL_TIM_PWM_PulseFinishedCallback(htim); 80147c4: 6878 ldr r0, [r7, #4] 80147c6: f000 f8b4 bl 8014932 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; 80147ca: 687b ldr r3, [r7, #4] 80147cc: 2200 movs r2, #0 80147ce: 771a strb r2, [r3, #28] } } /* Capture compare 4 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC4) != RESET) 80147d0: 687b ldr r3, [r7, #4] 80147d2: 681b ldr r3, [r3, #0] 80147d4: 691b ldr r3, [r3, #16] 80147d6: f003 0310 and.w r3, r3, #16 80147da: 2b10 cmp r3, #16 80147dc: d122 bne.n 8014824 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC4) != RESET) 80147de: 687b ldr r3, [r7, #4] 80147e0: 681b ldr r3, [r3, #0] 80147e2: 68db ldr r3, [r3, #12] 80147e4: f003 0310 and.w r3, r3, #16 80147e8: 2b10 cmp r3, #16 80147ea: d11b bne.n 8014824 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC4); 80147ec: 687b ldr r3, [r7, #4] 80147ee: 681b ldr r3, [r3, #0] 80147f0: f06f 0210 mvn.w r2, #16 80147f4: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; 80147f6: 687b ldr r3, [r7, #4] 80147f8: 2208 movs r2, #8 80147fa: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U) 80147fc: 687b ldr r3, [r7, #4] 80147fe: 681b ldr r3, [r3, #0] 8014800: 69db ldr r3, [r3, #28] 8014802: f403 7340 and.w r3, r3, #768 ; 0x300 8014806: 2b00 cmp r3, #0 8014808: d003 beq.n 8014812 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); 801480a: 6878 ldr r0, [r7, #4] 801480c: f000 f887 bl 801491e 8014810: e005 b.n 801481e { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); 8014812: 6878 ldr r0, [r7, #4] 8014814: f000 f879 bl 801490a HAL_TIM_PWM_PulseFinishedCallback(htim); 8014818: 6878 ldr r0, [r7, #4] 801481a: f000 f88a bl 8014932 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; 801481e: 687b ldr r3, [r7, #4] 8014820: 2200 movs r2, #0 8014822: 771a strb r2, [r3, #28] } } /* TIM Update event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_UPDATE) != RESET) 8014824: 687b ldr r3, [r7, #4] 8014826: 681b ldr r3, [r3, #0] 8014828: 691b ldr r3, [r3, #16] 801482a: f003 0301 and.w r3, r3, #1 801482e: 2b01 cmp r3, #1 8014830: d10e bne.n 8014850 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_UPDATE) != RESET) 8014832: 687b ldr r3, [r7, #4] 8014834: 681b ldr r3, [r3, #0] 8014836: 68db ldr r3, [r3, #12] 8014838: f003 0301 and.w r3, r3, #1 801483c: 2b01 cmp r3, #1 801483e: d107 bne.n 8014850 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE); 8014840: 687b ldr r3, [r7, #4] 8014842: 681b ldr r3, [r3, #0] 8014844: f06f 0201 mvn.w r2, #1 8014848: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->PeriodElapsedCallback(htim); #else HAL_TIM_PeriodElapsedCallback(htim); 801484a: 6878 ldr r0, [r7, #4] 801484c: f7fb f8ea bl 800fa24 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } /* TIM Break input event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK) != RESET) 8014850: 687b ldr r3, [r7, #4] 8014852: 681b ldr r3, [r3, #0] 8014854: 691b ldr r3, [r3, #16] 8014856: f003 0380 and.w r3, r3, #128 ; 0x80 801485a: 2b80 cmp r3, #128 ; 0x80 801485c: d10e bne.n 801487c { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET) 801485e: 687b ldr r3, [r7, #4] 8014860: 681b ldr r3, [r3, #0] 8014862: 68db ldr r3, [r3, #12] 8014864: f003 0380 and.w r3, r3, #128 ; 0x80 8014868: 2b80 cmp r3, #128 ; 0x80 801486a: d107 bne.n 801487c { __HAL_TIM_CLEAR_IT(htim, TIM_IT_BREAK); 801486c: 687b ldr r3, [r7, #4] 801486e: 681b ldr r3, [r3, #0] 8014870: f06f 0280 mvn.w r2, #128 ; 0x80 8014874: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->BreakCallback(htim); #else HAL_TIMEx_BreakCallback(htim); 8014876: 6878 ldr r0, [r7, #4] 8014878: f000 f9a8 bl 8014bcc #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } /* TIM Break2 input event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK2) != RESET) 801487c: 687b ldr r3, [r7, #4] 801487e: 681b ldr r3, [r3, #0] 8014880: 691b ldr r3, [r3, #16] 8014882: f403 7380 and.w r3, r3, #256 ; 0x100 8014886: f5b3 7f80 cmp.w r3, #256 ; 0x100 801488a: d10e bne.n 80148aa { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET) 801488c: 687b ldr r3, [r7, #4] 801488e: 681b ldr r3, [r3, #0] 8014890: 68db ldr r3, [r3, #12] 8014892: f003 0380 and.w r3, r3, #128 ; 0x80 8014896: 2b80 cmp r3, #128 ; 0x80 8014898: d107 bne.n 80148aa { __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_BREAK2); 801489a: 687b ldr r3, [r7, #4] 801489c: 681b ldr r3, [r3, #0] 801489e: f46f 7280 mvn.w r2, #256 ; 0x100 80148a2: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->Break2Callback(htim); #else HAL_TIMEx_Break2Callback(htim); 80148a4: 6878 ldr r0, [r7, #4] 80148a6: f000 f99b bl 8014be0 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } /* TIM Trigger detection event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_TRIGGER) != RESET) 80148aa: 687b ldr r3, [r7, #4] 80148ac: 681b ldr r3, [r3, #0] 80148ae: 691b ldr r3, [r3, #16] 80148b0: f003 0340 and.w r3, r3, #64 ; 0x40 80148b4: 2b40 cmp r3, #64 ; 0x40 80148b6: d10e bne.n 80148d6 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_TRIGGER) != RESET) 80148b8: 687b ldr r3, [r7, #4] 80148ba: 681b ldr r3, [r3, #0] 80148bc: 68db ldr r3, [r3, #12] 80148be: f003 0340 and.w r3, r3, #64 ; 0x40 80148c2: 2b40 cmp r3, #64 ; 0x40 80148c4: d107 bne.n 80148d6 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_TRIGGER); 80148c6: 687b ldr r3, [r7, #4] 80148c8: 681b ldr r3, [r3, #0] 80148ca: f06f 0240 mvn.w r2, #64 ; 0x40 80148ce: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->TriggerCallback(htim); #else HAL_TIM_TriggerCallback(htim); 80148d0: 6878 ldr r0, [r7, #4] 80148d2: f000 f838 bl 8014946 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } /* TIM commutation event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_COM) != RESET) 80148d6: 687b ldr r3, [r7, #4] 80148d8: 681b ldr r3, [r3, #0] 80148da: 691b ldr r3, [r3, #16] 80148dc: f003 0320 and.w r3, r3, #32 80148e0: 2b20 cmp r3, #32 80148e2: d10e bne.n 8014902 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_COM) != RESET) 80148e4: 687b ldr r3, [r7, #4] 80148e6: 681b ldr r3, [r3, #0] 80148e8: 68db ldr r3, [r3, #12] 80148ea: f003 0320 and.w r3, r3, #32 80148ee: 2b20 cmp r3, #32 80148f0: d107 bne.n 8014902 { __HAL_TIM_CLEAR_IT(htim, TIM_FLAG_COM); 80148f2: 687b ldr r3, [r7, #4] 80148f4: 681b ldr r3, [r3, #0] 80148f6: f06f 0220 mvn.w r2, #32 80148fa: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->CommutationCallback(htim); #else HAL_TIMEx_CommutCallback(htim); 80148fc: 6878 ldr r0, [r7, #4] 80148fe: f000 f95b bl 8014bb8 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } } 8014902: bf00 nop 8014904: 3708 adds r7, #8 8014906: 46bd mov sp, r7 8014908: bd80 pop {r7, pc} 0801490a : * @brief Output Compare callback in non-blocking mode * @param htim TIM OC handle * @retval None */ __weak void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim) { 801490a: b480 push {r7} 801490c: b083 sub sp, #12 801490e: af00 add r7, sp, #0 8014910: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_OC_DelayElapsedCallback could be implemented in the user file */ } 8014912: bf00 nop 8014914: 370c adds r7, #12 8014916: 46bd mov sp, r7 8014918: f85d 7b04 ldr.w r7, [sp], #4 801491c: 4770 bx lr 0801491e : * @brief Input Capture callback in non-blocking mode * @param htim TIM IC handle * @retval None */ __weak void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) { 801491e: b480 push {r7} 8014920: b083 sub sp, #12 8014922: af00 add r7, sp, #0 8014924: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_IC_CaptureCallback could be implemented in the user file */ } 8014926: bf00 nop 8014928: 370c adds r7, #12 801492a: 46bd mov sp, r7 801492c: f85d 7b04 ldr.w r7, [sp], #4 8014930: 4770 bx lr 08014932 : * @brief PWM Pulse finished callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) { 8014932: b480 push {r7} 8014934: b083 sub sp, #12 8014936: af00 add r7, sp, #0 8014938: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_PWM_PulseFinishedCallback could be implemented in the user file */ } 801493a: bf00 nop 801493c: 370c adds r7, #12 801493e: 46bd mov sp, r7 8014940: f85d 7b04 ldr.w r7, [sp], #4 8014944: 4770 bx lr 08014946 : * @brief Hall Trigger detection callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim) { 8014946: b480 push {r7} 8014948: b083 sub sp, #12 801494a: af00 add r7, sp, #0 801494c: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_TriggerCallback could be implemented in the user file */ } 801494e: bf00 nop 8014950: 370c adds r7, #12 8014952: 46bd mov sp, r7 8014954: f85d 7b04 ldr.w r7, [sp], #4 8014958: 4770 bx lr ... 0801495c : * @param TIMx TIM peripheral * @param Structure TIM Base configuration structure * @retval None */ void TIM_Base_SetConfig(TIM_TypeDef *TIMx, TIM_Base_InitTypeDef *Structure) { 801495c: b480 push {r7} 801495e: b085 sub sp, #20 8014960: af00 add r7, sp, #0 8014962: 6078 str r0, [r7, #4] 8014964: 6039 str r1, [r7, #0] uint32_t tmpcr1; tmpcr1 = TIMx->CR1; 8014966: 687b ldr r3, [r7, #4] 8014968: 681b ldr r3, [r3, #0] 801496a: 60fb str r3, [r7, #12] /* Set TIM Time Base Unit parameters ---------------------------------------*/ if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx)) 801496c: 687b ldr r3, [r7, #4] 801496e: 4a40 ldr r2, [pc, #256] ; (8014a70 ) 8014970: 4293 cmp r3, r2 8014972: d013 beq.n 801499c 8014974: 687b ldr r3, [r7, #4] 8014976: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 801497a: d00f beq.n 801499c 801497c: 687b ldr r3, [r7, #4] 801497e: 4a3d ldr r2, [pc, #244] ; (8014a74 ) 8014980: 4293 cmp r3, r2 8014982: d00b beq.n 801499c 8014984: 687b ldr r3, [r7, #4] 8014986: 4a3c ldr r2, [pc, #240] ; (8014a78 ) 8014988: 4293 cmp r3, r2 801498a: d007 beq.n 801499c 801498c: 687b ldr r3, [r7, #4] 801498e: 4a3b ldr r2, [pc, #236] ; (8014a7c ) 8014990: 4293 cmp r3, r2 8014992: d003 beq.n 801499c 8014994: 687b ldr r3, [r7, #4] 8014996: 4a3a ldr r2, [pc, #232] ; (8014a80 ) 8014998: 4293 cmp r3, r2 801499a: d108 bne.n 80149ae { /* Select the Counter Mode */ tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS); 801499c: 68fb ldr r3, [r7, #12] 801499e: f023 0370 bic.w r3, r3, #112 ; 0x70 80149a2: 60fb str r3, [r7, #12] tmpcr1 |= Structure->CounterMode; 80149a4: 683b ldr r3, [r7, #0] 80149a6: 685b ldr r3, [r3, #4] 80149a8: 68fa ldr r2, [r7, #12] 80149aa: 4313 orrs r3, r2 80149ac: 60fb str r3, [r7, #12] } if (IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx)) 80149ae: 687b ldr r3, [r7, #4] 80149b0: 4a2f ldr r2, [pc, #188] ; (8014a70 ) 80149b2: 4293 cmp r3, r2 80149b4: d02b beq.n 8014a0e 80149b6: 687b ldr r3, [r7, #4] 80149b8: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 80149bc: d027 beq.n 8014a0e 80149be: 687b ldr r3, [r7, #4] 80149c0: 4a2c ldr r2, [pc, #176] ; (8014a74 ) 80149c2: 4293 cmp r3, r2 80149c4: d023 beq.n 8014a0e 80149c6: 687b ldr r3, [r7, #4] 80149c8: 4a2b ldr r2, [pc, #172] ; (8014a78 ) 80149ca: 4293 cmp r3, r2 80149cc: d01f beq.n 8014a0e 80149ce: 687b ldr r3, [r7, #4] 80149d0: 4a2a ldr r2, [pc, #168] ; (8014a7c ) 80149d2: 4293 cmp r3, r2 80149d4: d01b beq.n 8014a0e 80149d6: 687b ldr r3, [r7, #4] 80149d8: 4a29 ldr r2, [pc, #164] ; (8014a80 ) 80149da: 4293 cmp r3, r2 80149dc: d017 beq.n 8014a0e 80149de: 687b ldr r3, [r7, #4] 80149e0: 4a28 ldr r2, [pc, #160] ; (8014a84 ) 80149e2: 4293 cmp r3, r2 80149e4: d013 beq.n 8014a0e 80149e6: 687b ldr r3, [r7, #4] 80149e8: 4a27 ldr r2, [pc, #156] ; (8014a88 ) 80149ea: 4293 cmp r3, r2 80149ec: d00f beq.n 8014a0e 80149ee: 687b ldr r3, [r7, #4] 80149f0: 4a26 ldr r2, [pc, #152] ; (8014a8c ) 80149f2: 4293 cmp r3, r2 80149f4: d00b beq.n 8014a0e 80149f6: 687b ldr r3, [r7, #4] 80149f8: 4a25 ldr r2, [pc, #148] ; (8014a90 ) 80149fa: 4293 cmp r3, r2 80149fc: d007 beq.n 8014a0e 80149fe: 687b ldr r3, [r7, #4] 8014a00: 4a24 ldr r2, [pc, #144] ; (8014a94 ) 8014a02: 4293 cmp r3, r2 8014a04: d003 beq.n 8014a0e 8014a06: 687b ldr r3, [r7, #4] 8014a08: 4a23 ldr r2, [pc, #140] ; (8014a98 ) 8014a0a: 4293 cmp r3, r2 8014a0c: d108 bne.n 8014a20 { /* Set the clock division */ tmpcr1 &= ~TIM_CR1_CKD; 8014a0e: 68fb ldr r3, [r7, #12] 8014a10: f423 7340 bic.w r3, r3, #768 ; 0x300 8014a14: 60fb str r3, [r7, #12] tmpcr1 |= (uint32_t)Structure->ClockDivision; 8014a16: 683b ldr r3, [r7, #0] 8014a18: 68db ldr r3, [r3, #12] 8014a1a: 68fa ldr r2, [r7, #12] 8014a1c: 4313 orrs r3, r2 8014a1e: 60fb str r3, [r7, #12] } /* Set the auto-reload preload */ MODIFY_REG(tmpcr1, TIM_CR1_ARPE, Structure->AutoReloadPreload); 8014a20: 68fb ldr r3, [r7, #12] 8014a22: f023 0280 bic.w r2, r3, #128 ; 0x80 8014a26: 683b ldr r3, [r7, #0] 8014a28: 695b ldr r3, [r3, #20] 8014a2a: 4313 orrs r3, r2 8014a2c: 60fb str r3, [r7, #12] TIMx->CR1 = tmpcr1; 8014a2e: 687b ldr r3, [r7, #4] 8014a30: 68fa ldr r2, [r7, #12] 8014a32: 601a str r2, [r3, #0] /* Set the Autoreload value */ TIMx->ARR = (uint32_t)Structure->Period ; 8014a34: 683b ldr r3, [r7, #0] 8014a36: 689a ldr r2, [r3, #8] 8014a38: 687b ldr r3, [r7, #4] 8014a3a: 62da str r2, [r3, #44] ; 0x2c /* Set the Prescaler value */ TIMx->PSC = Structure->Prescaler; 8014a3c: 683b ldr r3, [r7, #0] 8014a3e: 681a ldr r2, [r3, #0] 8014a40: 687b ldr r3, [r7, #4] 8014a42: 629a str r2, [r3, #40] ; 0x28 if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx)) 8014a44: 687b ldr r3, [r7, #4] 8014a46: 4a0a ldr r2, [pc, #40] ; (8014a70 ) 8014a48: 4293 cmp r3, r2 8014a4a: d003 beq.n 8014a54 8014a4c: 687b ldr r3, [r7, #4] 8014a4e: 4a0c ldr r2, [pc, #48] ; (8014a80 ) 8014a50: 4293 cmp r3, r2 8014a52: d103 bne.n 8014a5c { /* Set the Repetition Counter value */ TIMx->RCR = Structure->RepetitionCounter; 8014a54: 683b ldr r3, [r7, #0] 8014a56: 691a ldr r2, [r3, #16] 8014a58: 687b ldr r3, [r7, #4] 8014a5a: 631a str r2, [r3, #48] ; 0x30 } /* Generate an update event to reload the Prescaler and the repetition counter (only for advanced timer) value immediately */ TIMx->EGR = TIM_EGR_UG; 8014a5c: 687b ldr r3, [r7, #4] 8014a5e: 2201 movs r2, #1 8014a60: 615a str r2, [r3, #20] } 8014a62: bf00 nop 8014a64: 3714 adds r7, #20 8014a66: 46bd mov sp, r7 8014a68: f85d 7b04 ldr.w r7, [sp], #4 8014a6c: 4770 bx lr 8014a6e: bf00 nop 8014a70: 40010000 .word 0x40010000 8014a74: 40000400 .word 0x40000400 8014a78: 40000800 .word 0x40000800 8014a7c: 40000c00 .word 0x40000c00 8014a80: 40010400 .word 0x40010400 8014a84: 40014000 .word 0x40014000 8014a88: 40014400 .word 0x40014400 8014a8c: 40014800 .word 0x40014800 8014a90: 40001800 .word 0x40001800 8014a94: 40001c00 .word 0x40001c00 8014a98: 40002000 .word 0x40002000 08014a9c : * mode. * @retval HAL status */ HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef *htim, TIM_MasterConfigTypeDef *sMasterConfig) { 8014a9c: b480 push {r7} 8014a9e: b085 sub sp, #20 8014aa0: af00 add r7, sp, #0 8014aa2: 6078 str r0, [r7, #4] 8014aa4: 6039 str r1, [r7, #0] assert_param(IS_TIM_MASTER_INSTANCE(htim->Instance)); assert_param(IS_TIM_TRGO_SOURCE(sMasterConfig->MasterOutputTrigger)); assert_param(IS_TIM_MSM_STATE(sMasterConfig->MasterSlaveMode)); /* Check input state */ __HAL_LOCK(htim); 8014aa6: 687b ldr r3, [r7, #4] 8014aa8: f893 303c ldrb.w r3, [r3, #60] ; 0x3c 8014aac: 2b01 cmp r3, #1 8014aae: d101 bne.n 8014ab4 8014ab0: 2302 movs r3, #2 8014ab2: e06d b.n 8014b90 8014ab4: 687b ldr r3, [r7, #4] 8014ab6: 2201 movs r2, #1 8014ab8: f883 203c strb.w r2, [r3, #60] ; 0x3c /* Change the handler state */ htim->State = HAL_TIM_STATE_BUSY; 8014abc: 687b ldr r3, [r7, #4] 8014abe: 2202 movs r2, #2 8014ac0: f883 203d strb.w r2, [r3, #61] ; 0x3d /* Get the TIMx CR2 register value */ tmpcr2 = htim->Instance->CR2; 8014ac4: 687b ldr r3, [r7, #4] 8014ac6: 681b ldr r3, [r3, #0] 8014ac8: 685b ldr r3, [r3, #4] 8014aca: 60fb str r3, [r7, #12] /* Get the TIMx SMCR register value */ tmpsmcr = htim->Instance->SMCR; 8014acc: 687b ldr r3, [r7, #4] 8014ace: 681b ldr r3, [r3, #0] 8014ad0: 689b ldr r3, [r3, #8] 8014ad2: 60bb str r3, [r7, #8] /* If the timer supports ADC synchronization through TRGO2, set the master mode selection 2 */ if (IS_TIM_TRGO2_INSTANCE(htim->Instance)) 8014ad4: 687b ldr r3, [r7, #4] 8014ad6: 681b ldr r3, [r3, #0] 8014ad8: 4a30 ldr r2, [pc, #192] ; (8014b9c ) 8014ada: 4293 cmp r3, r2 8014adc: d004 beq.n 8014ae8 8014ade: 687b ldr r3, [r7, #4] 8014ae0: 681b ldr r3, [r3, #0] 8014ae2: 4a2f ldr r2, [pc, #188] ; (8014ba0 ) 8014ae4: 4293 cmp r3, r2 8014ae6: d108 bne.n 8014afa { /* Check the parameters */ assert_param(IS_TIM_TRGO2_SOURCE(sMasterConfig->MasterOutputTrigger2)); /* Clear the MMS2 bits */ tmpcr2 &= ~TIM_CR2_MMS2; 8014ae8: 68fb ldr r3, [r7, #12] 8014aea: f423 0370 bic.w r3, r3, #15728640 ; 0xf00000 8014aee: 60fb str r3, [r7, #12] /* Select the TRGO2 source*/ tmpcr2 |= sMasterConfig->MasterOutputTrigger2; 8014af0: 683b ldr r3, [r7, #0] 8014af2: 685b ldr r3, [r3, #4] 8014af4: 68fa ldr r2, [r7, #12] 8014af6: 4313 orrs r3, r2 8014af8: 60fb str r3, [r7, #12] } /* Reset the MMS Bits */ tmpcr2 &= ~TIM_CR2_MMS; 8014afa: 68fb ldr r3, [r7, #12] 8014afc: f023 0370 bic.w r3, r3, #112 ; 0x70 8014b00: 60fb str r3, [r7, #12] /* Select the TRGO source */ tmpcr2 |= sMasterConfig->MasterOutputTrigger; 8014b02: 683b ldr r3, [r7, #0] 8014b04: 681b ldr r3, [r3, #0] 8014b06: 68fa ldr r2, [r7, #12] 8014b08: 4313 orrs r3, r2 8014b0a: 60fb str r3, [r7, #12] /* Update TIMx CR2 */ htim->Instance->CR2 = tmpcr2; 8014b0c: 687b ldr r3, [r7, #4] 8014b0e: 681b ldr r3, [r3, #0] 8014b10: 68fa ldr r2, [r7, #12] 8014b12: 605a str r2, [r3, #4] if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) 8014b14: 687b ldr r3, [r7, #4] 8014b16: 681b ldr r3, [r3, #0] 8014b18: 4a20 ldr r2, [pc, #128] ; (8014b9c ) 8014b1a: 4293 cmp r3, r2 8014b1c: d022 beq.n 8014b64 8014b1e: 687b ldr r3, [r7, #4] 8014b20: 681b ldr r3, [r3, #0] 8014b22: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 8014b26: d01d beq.n 8014b64 8014b28: 687b ldr r3, [r7, #4] 8014b2a: 681b ldr r3, [r3, #0] 8014b2c: 4a1d ldr r2, [pc, #116] ; (8014ba4 ) 8014b2e: 4293 cmp r3, r2 8014b30: d018 beq.n 8014b64 8014b32: 687b ldr r3, [r7, #4] 8014b34: 681b ldr r3, [r3, #0] 8014b36: 4a1c ldr r2, [pc, #112] ; (8014ba8 ) 8014b38: 4293 cmp r3, r2 8014b3a: d013 beq.n 8014b64 8014b3c: 687b ldr r3, [r7, #4] 8014b3e: 681b ldr r3, [r3, #0] 8014b40: 4a1a ldr r2, [pc, #104] ; (8014bac ) 8014b42: 4293 cmp r3, r2 8014b44: d00e beq.n 8014b64 8014b46: 687b ldr r3, [r7, #4] 8014b48: 681b ldr r3, [r3, #0] 8014b4a: 4a15 ldr r2, [pc, #84] ; (8014ba0 ) 8014b4c: 4293 cmp r3, r2 8014b4e: d009 beq.n 8014b64 8014b50: 687b ldr r3, [r7, #4] 8014b52: 681b ldr r3, [r3, #0] 8014b54: 4a16 ldr r2, [pc, #88] ; (8014bb0 ) 8014b56: 4293 cmp r3, r2 8014b58: d004 beq.n 8014b64 8014b5a: 687b ldr r3, [r7, #4] 8014b5c: 681b ldr r3, [r3, #0] 8014b5e: 4a15 ldr r2, [pc, #84] ; (8014bb4 ) 8014b60: 4293 cmp r3, r2 8014b62: d10c bne.n 8014b7e { /* Reset the MSM Bit */ tmpsmcr &= ~TIM_SMCR_MSM; 8014b64: 68bb ldr r3, [r7, #8] 8014b66: f023 0380 bic.w r3, r3, #128 ; 0x80 8014b6a: 60bb str r3, [r7, #8] /* Set master mode */ tmpsmcr |= sMasterConfig->MasterSlaveMode; 8014b6c: 683b ldr r3, [r7, #0] 8014b6e: 689b ldr r3, [r3, #8] 8014b70: 68ba ldr r2, [r7, #8] 8014b72: 4313 orrs r3, r2 8014b74: 60bb str r3, [r7, #8] /* Update TIMx SMCR */ htim->Instance->SMCR = tmpsmcr; 8014b76: 687b ldr r3, [r7, #4] 8014b78: 681b ldr r3, [r3, #0] 8014b7a: 68ba ldr r2, [r7, #8] 8014b7c: 609a str r2, [r3, #8] } /* Change the htim state */ htim->State = HAL_TIM_STATE_READY; 8014b7e: 687b ldr r3, [r7, #4] 8014b80: 2201 movs r2, #1 8014b82: f883 203d strb.w r2, [r3, #61] ; 0x3d __HAL_UNLOCK(htim); 8014b86: 687b ldr r3, [r7, #4] 8014b88: 2200 movs r2, #0 8014b8a: f883 203c strb.w r2, [r3, #60] ; 0x3c return HAL_OK; 8014b8e: 2300 movs r3, #0 } 8014b90: 4618 mov r0, r3 8014b92: 3714 adds r7, #20 8014b94: 46bd mov sp, r7 8014b96: f85d 7b04 ldr.w r7, [sp], #4 8014b9a: 4770 bx lr 8014b9c: 40010000 .word 0x40010000 8014ba0: 40010400 .word 0x40010400 8014ba4: 40000400 .word 0x40000400 8014ba8: 40000800 .word 0x40000800 8014bac: 40000c00 .word 0x40000c00 8014bb0: 40014000 .word 0x40014000 8014bb4: 40001800 .word 0x40001800 08014bb8 : * @brief Hall commutation changed callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIMEx_CommutCallback(TIM_HandleTypeDef *htim) { 8014bb8: b480 push {r7} 8014bba: b083 sub sp, #12 8014bbc: af00 add r7, sp, #0 8014bbe: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIMEx_CommutCallback could be implemented in the user file */ } 8014bc0: bf00 nop 8014bc2: 370c adds r7, #12 8014bc4: 46bd mov sp, r7 8014bc6: f85d 7b04 ldr.w r7, [sp], #4 8014bca: 4770 bx lr 08014bcc : * @brief Hall Break detection callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim) { 8014bcc: b480 push {r7} 8014bce: b083 sub sp, #12 8014bd0: af00 add r7, sp, #0 8014bd2: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIMEx_BreakCallback could be implemented in the user file */ } 8014bd4: bf00 nop 8014bd6: 370c adds r7, #12 8014bd8: 46bd mov sp, r7 8014bda: f85d 7b04 ldr.w r7, [sp], #4 8014bde: 4770 bx lr 08014be0 : * @brief Hall Break2 detection callback in non blocking mode * @param htim: TIM handle * @retval None */ __weak void HAL_TIMEx_Break2Callback(TIM_HandleTypeDef *htim) { 8014be0: b480 push {r7} 8014be2: b083 sub sp, #12 8014be4: af00 add r7, sp, #0 8014be6: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function Should not be modified, when the callback is needed, the HAL_TIMEx_Break2Callback could be implemented in the user file */ } 8014be8: bf00 nop 8014bea: 370c adds r7, #12 8014bec: 46bd mov sp, r7 8014bee: f85d 7b04 ldr.w r7, [sp], #4 8014bf2: 4770 bx lr 08014bf4 : * parameters in the UART_InitTypeDef and initialize the associated handle. * @param huart UART handle. * @retval HAL status */ HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) { 8014bf4: b580 push {r7, lr} 8014bf6: b082 sub sp, #8 8014bf8: af00 add r7, sp, #0 8014bfa: 6078 str r0, [r7, #4] /* Check the UART handle allocation */ if (huart == NULL) 8014bfc: 687b ldr r3, [r7, #4] 8014bfe: 2b00 cmp r3, #0 8014c00: d101 bne.n 8014c06 { return HAL_ERROR; 8014c02: 2301 movs r3, #1 8014c04: e040 b.n 8014c88 { /* Check the parameters */ assert_param(IS_UART_INSTANCE(huart->Instance)); } if (huart->gState == HAL_UART_STATE_RESET) 8014c06: 687b ldr r3, [r7, #4] 8014c08: 6f9b ldr r3, [r3, #120] ; 0x78 8014c0a: 2b00 cmp r3, #0 8014c0c: d106 bne.n 8014c1c { /* Allocate lock resource and initialize it */ huart->Lock = HAL_UNLOCKED; 8014c0e: 687b ldr r3, [r7, #4] 8014c10: 2200 movs r2, #0 8014c12: f883 2074 strb.w r2, [r3, #116] ; 0x74 /* Init the low level hardware */ huart->MspInitCallback(huart); #else /* Init the low level hardware : GPIO, CLOCK */ HAL_UART_MspInit(huart); 8014c16: 6878 ldr r0, [r7, #4] 8014c18: f7fb f838 bl 800fc8c #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ } huart->gState = HAL_UART_STATE_BUSY; 8014c1c: 687b ldr r3, [r7, #4] 8014c1e: 2224 movs r2, #36 ; 0x24 8014c20: 679a str r2, [r3, #120] ; 0x78 __HAL_UART_DISABLE(huart); 8014c22: 687b ldr r3, [r7, #4] 8014c24: 681b ldr r3, [r3, #0] 8014c26: 687a ldr r2, [r7, #4] 8014c28: 6812 ldr r2, [r2, #0] 8014c2a: 6812 ldr r2, [r2, #0] 8014c2c: f022 0201 bic.w r2, r2, #1 8014c30: 601a str r2, [r3, #0] /* Set the UART Communication parameters */ if (UART_SetConfig(huart) == HAL_ERROR) 8014c32: 6878 ldr r0, [r7, #4] 8014c34: f000 fd90 bl 8015758 8014c38: 4603 mov r3, r0 8014c3a: 2b01 cmp r3, #1 8014c3c: d101 bne.n 8014c42 { return HAL_ERROR; 8014c3e: 2301 movs r3, #1 8014c40: e022 b.n 8014c88 } if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) 8014c42: 687b ldr r3, [r7, #4] 8014c44: 6a5b ldr r3, [r3, #36] ; 0x24 8014c46: 2b00 cmp r3, #0 8014c48: d002 beq.n 8014c50 { UART_AdvFeatureConfig(huart); 8014c4a: 6878 ldr r0, [r7, #4] 8014c4c: f000 ffe4 bl 8015c18 } /* In asynchronous mode, the following bits must be kept cleared: - LINEN and CLKEN bits in the USART_CR2 register, - SCEN, HDSEL and IREN bits in the USART_CR3 register.*/ CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); 8014c50: 687b ldr r3, [r7, #4] 8014c52: 681b ldr r3, [r3, #0] 8014c54: 687a ldr r2, [r7, #4] 8014c56: 6812 ldr r2, [r2, #0] 8014c58: 6852 ldr r2, [r2, #4] 8014c5a: f422 4290 bic.w r2, r2, #18432 ; 0x4800 8014c5e: 605a str r2, [r3, #4] CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); 8014c60: 687b ldr r3, [r7, #4] 8014c62: 681b ldr r3, [r3, #0] 8014c64: 687a ldr r2, [r7, #4] 8014c66: 6812 ldr r2, [r2, #0] 8014c68: 6892 ldr r2, [r2, #8] 8014c6a: f022 022a bic.w r2, r2, #42 ; 0x2a 8014c6e: 609a str r2, [r3, #8] __HAL_UART_ENABLE(huart); 8014c70: 687b ldr r3, [r7, #4] 8014c72: 681b ldr r3, [r3, #0] 8014c74: 687a ldr r2, [r7, #4] 8014c76: 6812 ldr r2, [r2, #0] 8014c78: 6812 ldr r2, [r2, #0] 8014c7a: f042 0201 orr.w r2, r2, #1 8014c7e: 601a str r2, [r3, #0] /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ return (UART_CheckIdleState(huart)); 8014c80: 6878 ldr r0, [r7, #4] 8014c82: f001 f86b bl 8015d5c 8014c86: 4603 mov r3, r0 } 8014c88: 4618 mov r0, r3 8014c8a: 3708 adds r7, #8 8014c8c: 46bd mov sp, r7 8014c8e: bd80 pop {r7, pc} 08014c90 : * @param Size Amount of data elements (u8 or u16) to be received. * @param Timeout Timeout duration. * @retval HAL status */ HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout) { 8014c90: b580 push {r7, lr} 8014c92: b08a sub sp, #40 ; 0x28 8014c94: af02 add r7, sp, #8 8014c96: 60f8 str r0, [r7, #12] 8014c98: 60b9 str r1, [r7, #8] 8014c9a: 603b str r3, [r7, #0] 8014c9c: 4613 mov r3, r2 8014c9e: 80fb strh r3, [r7, #6] uint16_t *pdata16bits; uint16_t uhMask; uint32_t tickstart; /* Check that a Rx process is not already ongoing */ if (huart->RxState == HAL_UART_STATE_READY) 8014ca0: 68fb ldr r3, [r7, #12] 8014ca2: 6fdb ldr r3, [r3, #124] ; 0x7c 8014ca4: 2b20 cmp r3, #32 8014ca6: f040 80be bne.w 8014e26 { if ((pData == NULL) || (Size == 0U)) 8014caa: 68bb ldr r3, [r7, #8] 8014cac: 2b00 cmp r3, #0 8014cae: d002 beq.n 8014cb6 8014cb0: 88fb ldrh r3, [r7, #6] 8014cb2: 2b00 cmp r3, #0 8014cb4: d101 bne.n 8014cba { return HAL_ERROR; 8014cb6: 2301 movs r3, #1 8014cb8: e0b6 b.n 8014e28 } __HAL_LOCK(huart); 8014cba: 68fb ldr r3, [r7, #12] 8014cbc: f893 3074 ldrb.w r3, [r3, #116] ; 0x74 8014cc0: 2b01 cmp r3, #1 8014cc2: d101 bne.n 8014cc8 8014cc4: 2302 movs r3, #2 8014cc6: e0af b.n 8014e28 8014cc8: 68fb ldr r3, [r7, #12] 8014cca: 2201 movs r2, #1 8014ccc: f883 2074 strb.w r2, [r3, #116] ; 0x74 huart->ErrorCode = HAL_UART_ERROR_NONE; 8014cd0: 68fb ldr r3, [r7, #12] 8014cd2: 2200 movs r2, #0 8014cd4: f8c3 2080 str.w r2, [r3, #128] ; 0x80 huart->RxState = HAL_UART_STATE_BUSY_RX; 8014cd8: 68fb ldr r3, [r7, #12] 8014cda: 2222 movs r2, #34 ; 0x22 8014cdc: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 8014cde: 68fb ldr r3, [r7, #12] 8014ce0: 2200 movs r2, #0 8014ce2: 661a str r2, [r3, #96] ; 0x60 /* Init tickstart for timeout management */ tickstart = HAL_GetTick(); 8014ce4: f7fc fc3e bl 8011564 8014ce8: 6178 str r0, [r7, #20] huart->RxXferSize = Size; 8014cea: 68fb ldr r3, [r7, #12] 8014cec: 88fa ldrh r2, [r7, #6] 8014cee: f8a3 2058 strh.w r2, [r3, #88] ; 0x58 huart->RxXferCount = Size; 8014cf2: 68fb ldr r3, [r7, #12] 8014cf4: 88fa ldrh r2, [r7, #6] 8014cf6: f8a3 205a strh.w r2, [r3, #90] ; 0x5a /* Computation of UART mask to apply to RDR register */ UART_MASK_COMPUTATION(huart); 8014cfa: 68fb ldr r3, [r7, #12] 8014cfc: 689b ldr r3, [r3, #8] 8014cfe: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 8014d02: d10e bne.n 8014d22 8014d04: 68fb ldr r3, [r7, #12] 8014d06: 691b ldr r3, [r3, #16] 8014d08: 2b00 cmp r3, #0 8014d0a: d105 bne.n 8014d18 8014d0c: 68fb ldr r3, [r7, #12] 8014d0e: f240 12ff movw r2, #511 ; 0x1ff 8014d12: f8a3 205c strh.w r2, [r3, #92] ; 0x5c 8014d16: e02d b.n 8014d74 8014d18: 68fb ldr r3, [r7, #12] 8014d1a: 22ff movs r2, #255 ; 0xff 8014d1c: f8a3 205c strh.w r2, [r3, #92] ; 0x5c 8014d20: e028 b.n 8014d74 8014d22: 68fb ldr r3, [r7, #12] 8014d24: 689b ldr r3, [r3, #8] 8014d26: 2b00 cmp r3, #0 8014d28: d10d bne.n 8014d46 8014d2a: 68fb ldr r3, [r7, #12] 8014d2c: 691b ldr r3, [r3, #16] 8014d2e: 2b00 cmp r3, #0 8014d30: d104 bne.n 8014d3c 8014d32: 68fb ldr r3, [r7, #12] 8014d34: 22ff movs r2, #255 ; 0xff 8014d36: f8a3 205c strh.w r2, [r3, #92] ; 0x5c 8014d3a: e01b b.n 8014d74 8014d3c: 68fb ldr r3, [r7, #12] 8014d3e: 227f movs r2, #127 ; 0x7f 8014d40: f8a3 205c strh.w r2, [r3, #92] ; 0x5c 8014d44: e016 b.n 8014d74 8014d46: 68fb ldr r3, [r7, #12] 8014d48: 689b ldr r3, [r3, #8] 8014d4a: f1b3 5f80 cmp.w r3, #268435456 ; 0x10000000 8014d4e: d10d bne.n 8014d6c 8014d50: 68fb ldr r3, [r7, #12] 8014d52: 691b ldr r3, [r3, #16] 8014d54: 2b00 cmp r3, #0 8014d56: d104 bne.n 8014d62 8014d58: 68fb ldr r3, [r7, #12] 8014d5a: 227f movs r2, #127 ; 0x7f 8014d5c: f8a3 205c strh.w r2, [r3, #92] ; 0x5c 8014d60: e008 b.n 8014d74 8014d62: 68fb ldr r3, [r7, #12] 8014d64: 223f movs r2, #63 ; 0x3f 8014d66: f8a3 205c strh.w r2, [r3, #92] ; 0x5c 8014d6a: e003 b.n 8014d74 8014d6c: 68fb ldr r3, [r7, #12] 8014d6e: 2200 movs r2, #0 8014d70: f8a3 205c strh.w r2, [r3, #92] ; 0x5c uhMask = huart->Mask; 8014d74: 68fb ldr r3, [r7, #12] 8014d76: f8b3 305c ldrh.w r3, [r3, #92] ; 0x5c 8014d7a: 827b strh r3, [r7, #18] /* In case of 9bits/No Parity transfer, pRxData needs to be handled as a uint16_t pointer */ if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) 8014d7c: 68fb ldr r3, [r7, #12] 8014d7e: 689b ldr r3, [r3, #8] 8014d80: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 8014d84: d108 bne.n 8014d98 8014d86: 68fb ldr r3, [r7, #12] 8014d88: 691b ldr r3, [r3, #16] 8014d8a: 2b00 cmp r3, #0 8014d8c: d104 bne.n 8014d98 { pdata8bits = NULL; 8014d8e: 2300 movs r3, #0 8014d90: 61fb str r3, [r7, #28] pdata16bits = (uint16_t *) pData; 8014d92: 68bb ldr r3, [r7, #8] 8014d94: 61bb str r3, [r7, #24] 8014d96: e003 b.n 8014da0 } else { pdata8bits = pData; 8014d98: 68bb ldr r3, [r7, #8] 8014d9a: 61fb str r3, [r7, #28] pdata16bits = NULL; 8014d9c: 2300 movs r3, #0 8014d9e: 61bb str r3, [r7, #24] } __HAL_UNLOCK(huart); 8014da0: 68fb ldr r3, [r7, #12] 8014da2: 2200 movs r2, #0 8014da4: f883 2074 strb.w r2, [r3, #116] ; 0x74 /* as long as data have to be received */ while (huart->RxXferCount > 0U) 8014da8: e032 b.n 8014e10 { if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) 8014daa: 683b ldr r3, [r7, #0] 8014dac: 9300 str r3, [sp, #0] 8014dae: 697b ldr r3, [r7, #20] 8014db0: 2200 movs r2, #0 8014db2: 2120 movs r1, #32 8014db4: 68f8 ldr r0, [r7, #12] 8014db6: f001 f81a bl 8015dee 8014dba: 4603 mov r3, r0 8014dbc: 2b00 cmp r3, #0 8014dbe: d001 beq.n 8014dc4 { return HAL_TIMEOUT; 8014dc0: 2303 movs r3, #3 8014dc2: e031 b.n 8014e28 } if (pdata8bits == NULL) 8014dc4: 69fb ldr r3, [r7, #28] 8014dc6: 2b00 cmp r3, #0 8014dc8: d10c bne.n 8014de4 { *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask); 8014dca: 68fb ldr r3, [r7, #12] 8014dcc: 681b ldr r3, [r3, #0] 8014dce: 6a5b ldr r3, [r3, #36] ; 0x24 8014dd0: b29a uxth r2, r3 8014dd2: 8a7b ldrh r3, [r7, #18] 8014dd4: 4013 ands r3, r2 8014dd6: b29a uxth r2, r3 8014dd8: 69bb ldr r3, [r7, #24] 8014dda: 801a strh r2, [r3, #0] pdata16bits++; 8014ddc: 69bb ldr r3, [r7, #24] 8014dde: 3302 adds r3, #2 8014de0: 61bb str r3, [r7, #24] 8014de2: e00c b.n 8014dfe } else { *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask); 8014de4: 68fb ldr r3, [r7, #12] 8014de6: 681b ldr r3, [r3, #0] 8014de8: 6a5b ldr r3, [r3, #36] ; 0x24 8014dea: b2da uxtb r2, r3 8014dec: 8a7b ldrh r3, [r7, #18] 8014dee: b2db uxtb r3, r3 8014df0: 4013 ands r3, r2 8014df2: b2da uxtb r2, r3 8014df4: 69fb ldr r3, [r7, #28] 8014df6: 701a strb r2, [r3, #0] pdata8bits++; 8014df8: 69fb ldr r3, [r7, #28] 8014dfa: 3301 adds r3, #1 8014dfc: 61fb str r3, [r7, #28] } huart->RxXferCount--; 8014dfe: 68fb ldr r3, [r7, #12] 8014e00: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a 8014e04: b29b uxth r3, r3 8014e06: 3b01 subs r3, #1 8014e08: b29a uxth r2, r3 8014e0a: 68fb ldr r3, [r7, #12] 8014e0c: f8a3 205a strh.w r2, [r3, #90] ; 0x5a while (huart->RxXferCount > 0U) 8014e10: 68fb ldr r3, [r7, #12] 8014e12: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a 8014e16: b29b uxth r3, r3 8014e18: 2b00 cmp r3, #0 8014e1a: d1c6 bne.n 8014daa } /* At end of Rx process, restore huart->RxState to Ready */ huart->RxState = HAL_UART_STATE_READY; 8014e1c: 68fb ldr r3, [r7, #12] 8014e1e: 2220 movs r2, #32 8014e20: 67da str r2, [r3, #124] ; 0x7c return HAL_OK; 8014e22: 2300 movs r3, #0 8014e24: e000 b.n 8014e28 } else { return HAL_BUSY; 8014e26: 2302 movs r3, #2 } } 8014e28: 4618 mov r0, r3 8014e2a: 3720 adds r7, #32 8014e2c: 46bd mov sp, r7 8014e2e: bd80 pop {r7, pc} 08014e30 : * @param pData Pointer to data buffer (u8 or u16 data elements). * @param Size Amount of data elements (u8 or u16) to be sent. * @retval HAL status */ HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size) { 8014e30: b480 push {r7} 8014e32: b08b sub sp, #44 ; 0x2c 8014e34: af00 add r7, sp, #0 8014e36: 60f8 str r0, [r7, #12] 8014e38: 60b9 str r1, [r7, #8] 8014e3a: 4613 mov r3, r2 8014e3c: 80fb strh r3, [r7, #6] /* Check that a Tx process is not already ongoing */ if (huart->gState == HAL_UART_STATE_READY) 8014e3e: 68fb ldr r3, [r7, #12] 8014e40: 6f9b ldr r3, [r3, #120] ; 0x78 8014e42: 2b20 cmp r3, #32 8014e44: d156 bne.n 8014ef4 { if ((pData == NULL) || (Size == 0U)) 8014e46: 68bb ldr r3, [r7, #8] 8014e48: 2b00 cmp r3, #0 8014e4a: d002 beq.n 8014e52 8014e4c: 88fb ldrh r3, [r7, #6] 8014e4e: 2b00 cmp r3, #0 8014e50: d101 bne.n 8014e56 { return HAL_ERROR; 8014e52: 2301 movs r3, #1 8014e54: e04f b.n 8014ef6 } __HAL_LOCK(huart); 8014e56: 68fb ldr r3, [r7, #12] 8014e58: f893 3074 ldrb.w r3, [r3, #116] ; 0x74 8014e5c: 2b01 cmp r3, #1 8014e5e: d101 bne.n 8014e64 8014e60: 2302 movs r3, #2 8014e62: e048 b.n 8014ef6 8014e64: 68fb ldr r3, [r7, #12] 8014e66: 2201 movs r2, #1 8014e68: f883 2074 strb.w r2, [r3, #116] ; 0x74 huart->pTxBuffPtr = pData; 8014e6c: 68fb ldr r3, [r7, #12] 8014e6e: 68ba ldr r2, [r7, #8] 8014e70: 64da str r2, [r3, #76] ; 0x4c huart->TxXferSize = Size; 8014e72: 68fb ldr r3, [r7, #12] 8014e74: 88fa ldrh r2, [r7, #6] 8014e76: f8a3 2050 strh.w r2, [r3, #80] ; 0x50 huart->TxXferCount = Size; 8014e7a: 68fb ldr r3, [r7, #12] 8014e7c: 88fa ldrh r2, [r7, #6] 8014e7e: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 huart->TxISR = NULL; 8014e82: 68fb ldr r3, [r7, #12] 8014e84: 2200 movs r2, #0 8014e86: 669a str r2, [r3, #104] ; 0x68 huart->ErrorCode = HAL_UART_ERROR_NONE; 8014e88: 68fb ldr r3, [r7, #12] 8014e8a: 2200 movs r2, #0 8014e8c: f8c3 2080 str.w r2, [r3, #128] ; 0x80 huart->gState = HAL_UART_STATE_BUSY_TX; 8014e90: 68fb ldr r3, [r7, #12] 8014e92: 2221 movs r2, #33 ; 0x21 8014e94: 679a str r2, [r3, #120] ; 0x78 /* Set the Tx ISR function pointer according to the data word length */ if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) 8014e96: 68fb ldr r3, [r7, #12] 8014e98: 689b ldr r3, [r3, #8] 8014e9a: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 8014e9e: d107 bne.n 8014eb0 8014ea0: 68fb ldr r3, [r7, #12] 8014ea2: 691b ldr r3, [r3, #16] 8014ea4: 2b00 cmp r3, #0 8014ea6: d103 bne.n 8014eb0 { huart->TxISR = UART_TxISR_16BIT; 8014ea8: 68fb ldr r3, [r7, #12] 8014eaa: 4a16 ldr r2, [pc, #88] ; (8014f04 ) 8014eac: 669a str r2, [r3, #104] ; 0x68 8014eae: e002 b.n 8014eb6 } else { huart->TxISR = UART_TxISR_8BIT; 8014eb0: 68fb ldr r3, [r7, #12] 8014eb2: 4a15 ldr r2, [pc, #84] ; (8014f08 ) 8014eb4: 669a str r2, [r3, #104] ; 0x68 } __HAL_UNLOCK(huart); 8014eb6: 68fb ldr r3, [r7, #12] 8014eb8: 2200 movs r2, #0 8014eba: f883 2074 strb.w r2, [r3, #116] ; 0x74 /* Enable the Transmit Data Register Empty interrupt */ ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE); 8014ebe: 68fb ldr r3, [r7, #12] 8014ec0: 681b ldr r3, [r3, #0] 8014ec2: 617b str r3, [r7, #20] */ __STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr) { uint32_t result; __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8014ec4: 697b ldr r3, [r7, #20] 8014ec6: e853 3f00 ldrex r3, [r3] 8014eca: 613b str r3, [r7, #16] return(result); 8014ecc: 693b ldr r3, [r7, #16] 8014ece: f043 0380 orr.w r3, r3, #128 ; 0x80 8014ed2: 627b str r3, [r7, #36] ; 0x24 8014ed4: 68fb ldr r3, [r7, #12] 8014ed6: 681b ldr r3, [r3, #0] 8014ed8: 461a mov r2, r3 8014eda: 6a7b ldr r3, [r7, #36] ; 0x24 8014edc: 623b str r3, [r7, #32] 8014ede: 61fa str r2, [r7, #28] */ __STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) { uint32_t result; __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8014ee0: 69f9 ldr r1, [r7, #28] 8014ee2: 6a3a ldr r2, [r7, #32] 8014ee4: e841 2300 strex r3, r2, [r1] 8014ee8: 61bb str r3, [r7, #24] return(result); 8014eea: 69bb ldr r3, [r7, #24] 8014eec: 2b00 cmp r3, #0 8014eee: d1e6 bne.n 8014ebe return HAL_OK; 8014ef0: 2300 movs r3, #0 8014ef2: e000 b.n 8014ef6 } else { return HAL_BUSY; 8014ef4: 2302 movs r3, #2 } } 8014ef6: 4618 mov r0, r3 8014ef8: 372c adds r7, #44 ; 0x2c 8014efa: 46bd mov sp, r7 8014efc: f85d 7b04 ldr.w r7, [sp], #4 8014f00: 4770 bx lr 8014f02: bf00 nop 8014f04: 08016203 .word 0x08016203 8014f08: 0801614d .word 0x0801614d 08014f0c : * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be * considered as completed only when user abort complete callback is executed (not when exiting function). * @retval HAL status */ HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) { 8014f0c: b580 push {r7, lr} 8014f0e: b0a2 sub sp, #136 ; 0x88 8014f10: af00 add r7, sp, #0 8014f12: 6078 str r0, [r7, #4] uint32_t abortcplt = 1U; 8014f14: 2301 movs r3, #1 8014f16: f8c7 3084 str.w r3, [r7, #132] ; 0x84 /* Disable interrupts */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_TCIE)); 8014f1a: 687b ldr r3, [r7, #4] 8014f1c: 681b ldr r3, [r3, #0] 8014f1e: 663b str r3, [r7, #96] ; 0x60 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8014f20: 6e3b ldr r3, [r7, #96] ; 0x60 8014f22: e853 3f00 ldrex r3, [r3] 8014f26: 65fb str r3, [r7, #92] ; 0x5c return(result); 8014f28: 6dfb ldr r3, [r7, #92] ; 0x5c 8014f2a: f423 73f0 bic.w r3, r3, #480 ; 0x1e0 8014f2e: f8c7 3080 str.w r3, [r7, #128] ; 0x80 8014f32: 687b ldr r3, [r7, #4] 8014f34: 681b ldr r3, [r3, #0] 8014f36: 461a mov r2, r3 8014f38: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 8014f3c: 66fb str r3, [r7, #108] ; 0x6c 8014f3e: 66ba str r2, [r7, #104] ; 0x68 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8014f40: 6eb9 ldr r1, [r7, #104] ; 0x68 8014f42: 6efa ldr r2, [r7, #108] ; 0x6c 8014f44: e841 2300 strex r3, r2, [r1] 8014f48: 667b str r3, [r7, #100] ; 0x64 return(result); 8014f4a: 6e7b ldr r3, [r7, #100] ; 0x64 8014f4c: 2b00 cmp r3, #0 8014f4e: d1e4 bne.n 8014f1a ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8014f50: 687b ldr r3, [r7, #4] 8014f52: 681b ldr r3, [r3, #0] 8014f54: 3308 adds r3, #8 8014f56: 64fb str r3, [r7, #76] ; 0x4c __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8014f58: 6cfb ldr r3, [r7, #76] ; 0x4c 8014f5a: e853 3f00 ldrex r3, [r3] 8014f5e: 64bb str r3, [r7, #72] ; 0x48 return(result); 8014f60: 6cbb ldr r3, [r7, #72] ; 0x48 8014f62: f023 0301 bic.w r3, r3, #1 8014f66: 67fb str r3, [r7, #124] ; 0x7c 8014f68: 687b ldr r3, [r7, #4] 8014f6a: 681b ldr r3, [r3, #0] 8014f6c: 3308 adds r3, #8 8014f6e: 6ffa ldr r2, [r7, #124] ; 0x7c 8014f70: 65ba str r2, [r7, #88] ; 0x58 8014f72: 657b str r3, [r7, #84] ; 0x54 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8014f74: 6d79 ldr r1, [r7, #84] ; 0x54 8014f76: 6dba ldr r2, [r7, #88] ; 0x58 8014f78: e841 2300 strex r3, r2, [r1] 8014f7c: 653b str r3, [r7, #80] ; 0x50 return(result); 8014f7e: 6d3b ldr r3, [r7, #80] ; 0x50 8014f80: 2b00 cmp r3, #0 8014f82: d1e5 bne.n 8014f50 /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 8014f84: 687b ldr r3, [r7, #4] 8014f86: 6e1b ldr r3, [r3, #96] ; 0x60 8014f88: 2b01 cmp r3, #1 8014f8a: d118 bne.n 8014fbe { ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); 8014f8c: 687b ldr r3, [r7, #4] 8014f8e: 681b ldr r3, [r3, #0] 8014f90: 63bb str r3, [r7, #56] ; 0x38 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8014f92: 6bbb ldr r3, [r7, #56] ; 0x38 8014f94: e853 3f00 ldrex r3, [r3] 8014f98: 637b str r3, [r7, #52] ; 0x34 return(result); 8014f9a: 6b7b ldr r3, [r7, #52] ; 0x34 8014f9c: f023 0310 bic.w r3, r3, #16 8014fa0: 67bb str r3, [r7, #120] ; 0x78 8014fa2: 687b ldr r3, [r7, #4] 8014fa4: 681b ldr r3, [r3, #0] 8014fa6: 461a mov r2, r3 8014fa8: 6fbb ldr r3, [r7, #120] ; 0x78 8014faa: 647b str r3, [r7, #68] ; 0x44 8014fac: 643a str r2, [r7, #64] ; 0x40 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8014fae: 6c39 ldr r1, [r7, #64] ; 0x40 8014fb0: 6c7a ldr r2, [r7, #68] ; 0x44 8014fb2: e841 2300 strex r3, r2, [r1] 8014fb6: 63fb str r3, [r7, #60] ; 0x3c return(result); 8014fb8: 6bfb ldr r3, [r7, #60] ; 0x3c 8014fba: 2b00 cmp r3, #0 8014fbc: d1e6 bne.n 8014f8c } /* If DMA Tx and/or DMA Rx Handles are associated to UART Handle, DMA Abort complete callbacks should be initialised before any call to DMA Abort functions */ /* DMA Tx Handle is valid */ if (huart->hdmatx != NULL) 8014fbe: 687b ldr r3, [r7, #4] 8014fc0: 6edb ldr r3, [r3, #108] ; 0x6c 8014fc2: 2b00 cmp r3, #0 8014fc4: d00f beq.n 8014fe6 { /* Set DMA Abort Complete callback if UART DMA Tx request if enabled. Otherwise, set it to NULL */ if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 8014fc6: 687b ldr r3, [r7, #4] 8014fc8: 681b ldr r3, [r3, #0] 8014fca: 689b ldr r3, [r3, #8] 8014fcc: f003 0380 and.w r3, r3, #128 ; 0x80 8014fd0: 2b80 cmp r3, #128 ; 0x80 8014fd2: d104 bne.n 8014fde { huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; 8014fd4: 687b ldr r3, [r7, #4] 8014fd6: 6edb ldr r3, [r3, #108] ; 0x6c 8014fd8: 4a5d ldr r2, [pc, #372] ; (8015150 ) 8014fda: 651a str r2, [r3, #80] ; 0x50 8014fdc: e003 b.n 8014fe6 } else { huart->hdmatx->XferAbortCallback = NULL; 8014fde: 687b ldr r3, [r7, #4] 8014fe0: 6edb ldr r3, [r3, #108] ; 0x6c 8014fe2: 2200 movs r2, #0 8014fe4: 651a str r2, [r3, #80] ; 0x50 } } /* DMA Rx Handle is valid */ if (huart->hdmarx != NULL) 8014fe6: 687b ldr r3, [r7, #4] 8014fe8: 6f1b ldr r3, [r3, #112] ; 0x70 8014fea: 2b00 cmp r3, #0 8014fec: d00f beq.n 801500e { /* Set DMA Abort Complete callback if UART DMA Rx request if enabled. Otherwise, set it to NULL */ if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 8014fee: 687b ldr r3, [r7, #4] 8014ff0: 681b ldr r3, [r3, #0] 8014ff2: 689b ldr r3, [r3, #8] 8014ff4: f003 0340 and.w r3, r3, #64 ; 0x40 8014ff8: 2b40 cmp r3, #64 ; 0x40 8014ffa: d104 bne.n 8015006 { huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; 8014ffc: 687b ldr r3, [r7, #4] 8014ffe: 6f1b ldr r3, [r3, #112] ; 0x70 8015000: 4a54 ldr r2, [pc, #336] ; (8015154 ) 8015002: 651a str r2, [r3, #80] ; 0x50 8015004: e003 b.n 801500e } else { huart->hdmarx->XferAbortCallback = NULL; 8015006: 687b ldr r3, [r7, #4] 8015008: 6f1b ldr r3, [r3, #112] ; 0x70 801500a: 2200 movs r2, #0 801500c: 651a str r2, [r3, #80] ; 0x50 } } /* Abort the UART DMA Tx channel if enabled */ if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 801500e: 687b ldr r3, [r7, #4] 8015010: 681b ldr r3, [r3, #0] 8015012: 689b ldr r3, [r3, #8] 8015014: f003 0380 and.w r3, r3, #128 ; 0x80 8015018: 2b80 cmp r3, #128 ; 0x80 801501a: d12d bne.n 8015078 { /* Disable DMA Tx at UART level */ ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 801501c: 687b ldr r3, [r7, #4] 801501e: 681b ldr r3, [r3, #0] 8015020: 3308 adds r3, #8 8015022: 627b str r3, [r7, #36] ; 0x24 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8015024: 6a7b ldr r3, [r7, #36] ; 0x24 8015026: e853 3f00 ldrex r3, [r3] 801502a: 623b str r3, [r7, #32] return(result); 801502c: 6a3b ldr r3, [r7, #32] 801502e: f023 0380 bic.w r3, r3, #128 ; 0x80 8015032: 677b str r3, [r7, #116] ; 0x74 8015034: 687b ldr r3, [r7, #4] 8015036: 681b ldr r3, [r3, #0] 8015038: 3308 adds r3, #8 801503a: 6f7a ldr r2, [r7, #116] ; 0x74 801503c: 633a str r2, [r7, #48] ; 0x30 801503e: 62fb str r3, [r7, #44] ; 0x2c __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8015040: 6af9 ldr r1, [r7, #44] ; 0x2c 8015042: 6b3a ldr r2, [r7, #48] ; 0x30 8015044: e841 2300 strex r3, r2, [r1] 8015048: 62bb str r3, [r7, #40] ; 0x28 return(result); 801504a: 6abb ldr r3, [r7, #40] ; 0x28 801504c: 2b00 cmp r3, #0 801504e: d1e5 bne.n 801501c /* Abort the UART DMA Tx channel : use non blocking DMA Abort API (callback) */ if (huart->hdmatx != NULL) 8015050: 687b ldr r3, [r7, #4] 8015052: 6edb ldr r3, [r3, #108] ; 0x6c 8015054: 2b00 cmp r3, #0 8015056: d00f beq.n 8015078 { /* UART Tx DMA Abort callback has already been initialised : will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ /* Abort DMA TX */ if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) 8015058: 687b ldr r3, [r7, #4] 801505a: 6edb ldr r3, [r3, #108] ; 0x6c 801505c: 4618 mov r0, r3 801505e: f7fc fc5e bl 801191e 8015062: 4603 mov r3, r0 8015064: 2b00 cmp r3, #0 8015066: d004 beq.n 8015072 { huart->hdmatx->XferAbortCallback = NULL; 8015068: 687b ldr r3, [r7, #4] 801506a: 6edb ldr r3, [r3, #108] ; 0x6c 801506c: 2200 movs r2, #0 801506e: 651a str r2, [r3, #80] ; 0x50 8015070: e002 b.n 8015078 } else { abortcplt = 0U; 8015072: 2300 movs r3, #0 8015074: f8c7 3084 str.w r3, [r7, #132] ; 0x84 } } } /* Abort the UART DMA Rx channel if enabled */ if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 8015078: 687b ldr r3, [r7, #4] 801507a: 681b ldr r3, [r3, #0] 801507c: 689b ldr r3, [r3, #8] 801507e: f003 0340 and.w r3, r3, #64 ; 0x40 8015082: 2b40 cmp r3, #64 ; 0x40 8015084: d130 bne.n 80150e8 { /* Disable the UART DMA Rx request if enabled */ ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 8015086: 687b ldr r3, [r7, #4] 8015088: 681b ldr r3, [r3, #0] 801508a: 3308 adds r3, #8 801508c: 613b str r3, [r7, #16] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 801508e: 693b ldr r3, [r7, #16] 8015090: e853 3f00 ldrex r3, [r3] 8015094: 60fb str r3, [r7, #12] return(result); 8015096: 68fb ldr r3, [r7, #12] 8015098: f023 0340 bic.w r3, r3, #64 ; 0x40 801509c: 673b str r3, [r7, #112] ; 0x70 801509e: 687b ldr r3, [r7, #4] 80150a0: 681b ldr r3, [r3, #0] 80150a2: 3308 adds r3, #8 80150a4: 6f3a ldr r2, [r7, #112] ; 0x70 80150a6: 61fa str r2, [r7, #28] 80150a8: 61bb str r3, [r7, #24] __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 80150aa: 69b9 ldr r1, [r7, #24] 80150ac: 69fa ldr r2, [r7, #28] 80150ae: e841 2300 strex r3, r2, [r1] 80150b2: 617b str r3, [r7, #20] return(result); 80150b4: 697b ldr r3, [r7, #20] 80150b6: 2b00 cmp r3, #0 80150b8: d1e5 bne.n 8015086 /* Abort the UART DMA Rx channel : use non blocking DMA Abort API (callback) */ if (huart->hdmarx != NULL) 80150ba: 687b ldr r3, [r7, #4] 80150bc: 6f1b ldr r3, [r3, #112] ; 0x70 80150be: 2b00 cmp r3, #0 80150c0: d012 beq.n 80150e8 { /* UART Rx DMA Abort callback has already been initialised : will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ /* Abort DMA RX */ if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 80150c2: 687b ldr r3, [r7, #4] 80150c4: 6f1b ldr r3, [r3, #112] ; 0x70 80150c6: 4618 mov r0, r3 80150c8: f7fc fc29 bl 801191e 80150cc: 4603 mov r3, r0 80150ce: 2b00 cmp r3, #0 80150d0: d007 beq.n 80150e2 { huart->hdmarx->XferAbortCallback = NULL; 80150d2: 687b ldr r3, [r7, #4] 80150d4: 6f1b ldr r3, [r3, #112] ; 0x70 80150d6: 2200 movs r2, #0 80150d8: 651a str r2, [r3, #80] ; 0x50 abortcplt = 1U; 80150da: 2301 movs r3, #1 80150dc: f8c7 3084 str.w r3, [r7, #132] ; 0x84 80150e0: e002 b.n 80150e8 } else { abortcplt = 0U; 80150e2: 2300 movs r3, #0 80150e4: f8c7 3084 str.w r3, [r7, #132] ; 0x84 } } } /* if no DMA abort complete callback execution is required => call user Abort Complete callback */ if (abortcplt == 1U) 80150e8: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 80150ec: 2b01 cmp r3, #1 80150ee: d129 bne.n 8015144 { /* Reset Tx and Rx transfer counters */ huart->TxXferCount = 0U; 80150f0: 687b ldr r3, [r7, #4] 80150f2: 2200 movs r2, #0 80150f4: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 huart->RxXferCount = 0U; 80150f8: 687b ldr r3, [r7, #4] 80150fa: 2200 movs r2, #0 80150fc: f8a3 205a strh.w r2, [r3, #90] ; 0x5a /* Clear ISR function pointers */ huart->RxISR = NULL; 8015100: 687b ldr r3, [r7, #4] 8015102: 2200 movs r2, #0 8015104: 665a str r2, [r3, #100] ; 0x64 huart->TxISR = NULL; 8015106: 687b ldr r3, [r7, #4] 8015108: 2200 movs r2, #0 801510a: 669a str r2, [r3, #104] ; 0x68 /* Reset errorCode */ huart->ErrorCode = HAL_UART_ERROR_NONE; 801510c: 687b ldr r3, [r7, #4] 801510e: 2200 movs r2, #0 8015110: f8c3 2080 str.w r2, [r3, #128] ; 0x80 /* Clear the Error flags in the ICR register */ __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); 8015114: 687b ldr r3, [r7, #4] 8015116: 681b ldr r3, [r3, #0] 8015118: 220f movs r2, #15 801511a: 621a str r2, [r3, #32] /* Discard the received data */ __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); 801511c: 687b ldr r3, [r7, #4] 801511e: 681b ldr r3, [r3, #0] 8015120: 687a ldr r2, [r7, #4] 8015122: 6812 ldr r2, [r2, #0] 8015124: 6992 ldr r2, [r2, #24] 8015126: f042 0208 orr.w r2, r2, #8 801512a: 619a str r2, [r3, #24] /* Restore huart->gState and huart->RxState to Ready */ huart->gState = HAL_UART_STATE_READY; 801512c: 687b ldr r3, [r7, #4] 801512e: 2220 movs r2, #32 8015130: 679a str r2, [r3, #120] ; 0x78 huart->RxState = HAL_UART_STATE_READY; 8015132: 687b ldr r3, [r7, #4] 8015134: 2220 movs r2, #32 8015136: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 8015138: 687b ldr r3, [r7, #4] 801513a: 2200 movs r2, #0 801513c: 661a str r2, [r3, #96] ; 0x60 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /* Call registered Abort complete callback */ huart->AbortCpltCallback(huart); #else /* Call legacy weak Abort complete callback */ HAL_UART_AbortCpltCallback(huart); 801513e: 6878 ldr r0, [r7, #4] 8015140: f000 faea bl 8015718 #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } return HAL_OK; 8015144: 2300 movs r3, #0 } 8015146: 4618 mov r0, r3 8015148: 3788 adds r7, #136 ; 0x88 801514a: 46bd mov sp, r7 801514c: bd80 pop {r7, pc} 801514e: bf00 nop 8015150: 08016069 .word 0x08016069 8015154: 080160d3 .word 0x080160d3 08015158 : * @brief Handle UART interrupt request. * @param huart UART handle. * @retval None */ void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) { 8015158: b580 push {r7, lr} 801515a: b0ba sub sp, #232 ; 0xe8 801515c: af00 add r7, sp, #0 801515e: 6078 str r0, [r7, #4] uint32_t isrflags = READ_REG(huart->Instance->ISR); 8015160: 687b ldr r3, [r7, #4] 8015162: 681b ldr r3, [r3, #0] 8015164: 69db ldr r3, [r3, #28] 8015166: f8c7 30e4 str.w r3, [r7, #228] ; 0xe4 uint32_t cr1its = READ_REG(huart->Instance->CR1); 801516a: 687b ldr r3, [r7, #4] 801516c: 681b ldr r3, [r3, #0] 801516e: 681b ldr r3, [r3, #0] 8015170: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0 uint32_t cr3its = READ_REG(huart->Instance->CR3); 8015174: 687b ldr r3, [r7, #4] 8015176: 681b ldr r3, [r3, #0] 8015178: 689b ldr r3, [r3, #8] 801517a: f8c7 30dc str.w r3, [r7, #220] ; 0xdc uint32_t errorflags; uint32_t errorcode; /* If no error occurs */ errorflags = (isrflags & (uint32_t)(USART_ISR_PE | USART_ISR_FE | USART_ISR_ORE | USART_ISR_NE | USART_ISR_RTOF)); 801517e: f8d7 20e4 ldr.w r2, [r7, #228] ; 0xe4 8015182: f640 030f movw r3, #2063 ; 0x80f 8015186: 4013 ands r3, r2 8015188: f8c7 30d8 str.w r3, [r7, #216] ; 0xd8 if (errorflags == 0U) 801518c: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 8015190: 2b00 cmp r3, #0 8015192: d115 bne.n 80151c0 { /* UART in mode Receiver ---------------------------------------------------*/ if (((isrflags & USART_ISR_RXNE) != 0U) 8015194: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 8015198: f003 0320 and.w r3, r3, #32 801519c: 2b00 cmp r3, #0 801519e: d00f beq.n 80151c0 && ((cr1its & USART_CR1_RXNEIE) != 0U)) 80151a0: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 80151a4: f003 0320 and.w r3, r3, #32 80151a8: 2b00 cmp r3, #0 80151aa: d009 beq.n 80151c0 { if (huart->RxISR != NULL) 80151ac: 687b ldr r3, [r7, #4] 80151ae: 6e5b ldr r3, [r3, #100] ; 0x64 80151b0: 2b00 cmp r3, #0 80151b2: f000 82a5 beq.w 8015700 { huart->RxISR(huart); 80151b6: 687b ldr r3, [r7, #4] 80151b8: 6e5b ldr r3, [r3, #100] ; 0x64 80151ba: 6878 ldr r0, [r7, #4] 80151bc: 4798 blx r3 } return; 80151be: e29f b.n 8015700 } } /* If some errors occur */ if ((errorflags != 0U) 80151c0: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 80151c4: 2b00 cmp r3, #0 80151c6: f000 8117 beq.w 80153f8 && (((cr3its & USART_CR3_EIE) != 0U) 80151ca: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc 80151ce: f003 0301 and.w r3, r3, #1 80151d2: 2b00 cmp r3, #0 80151d4: d106 bne.n 80151e4 || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_RTOIE)) != 0U))) 80151d6: f8d7 20e0 ldr.w r2, [r7, #224] ; 0xe0 80151da: 4b85 ldr r3, [pc, #532] ; (80153f0 ) 80151dc: 4013 ands r3, r2 80151de: 2b00 cmp r3, #0 80151e0: f000 810a beq.w 80153f8 { /* UART parity error interrupt occurred -------------------------------------*/ if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U)) 80151e4: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 80151e8: f003 0301 and.w r3, r3, #1 80151ec: 2b00 cmp r3, #0 80151ee: d011 beq.n 8015214 80151f0: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 80151f4: f403 7380 and.w r3, r3, #256 ; 0x100 80151f8: 2b00 cmp r3, #0 80151fa: d00b beq.n 8015214 { __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); 80151fc: 687b ldr r3, [r7, #4] 80151fe: 681b ldr r3, [r3, #0] 8015200: 2201 movs r2, #1 8015202: 621a str r2, [r3, #32] huart->ErrorCode |= HAL_UART_ERROR_PE; 8015204: 687b ldr r3, [r7, #4] 8015206: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 801520a: f043 0201 orr.w r2, r3, #1 801520e: 687b ldr r3, [r7, #4] 8015210: f8c3 2080 str.w r2, [r3, #128] ; 0x80 } /* UART frame error interrupt occurred --------------------------------------*/ if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) 8015214: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 8015218: f003 0302 and.w r3, r3, #2 801521c: 2b00 cmp r3, #0 801521e: d011 beq.n 8015244 8015220: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc 8015224: f003 0301 and.w r3, r3, #1 8015228: 2b00 cmp r3, #0 801522a: d00b beq.n 8015244 { __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); 801522c: 687b ldr r3, [r7, #4] 801522e: 681b ldr r3, [r3, #0] 8015230: 2202 movs r2, #2 8015232: 621a str r2, [r3, #32] huart->ErrorCode |= HAL_UART_ERROR_FE; 8015234: 687b ldr r3, [r7, #4] 8015236: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 801523a: f043 0204 orr.w r2, r3, #4 801523e: 687b ldr r3, [r7, #4] 8015240: f8c3 2080 str.w r2, [r3, #128] ; 0x80 } /* UART noise error interrupt occurred --------------------------------------*/ if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) 8015244: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 8015248: f003 0304 and.w r3, r3, #4 801524c: 2b00 cmp r3, #0 801524e: d011 beq.n 8015274 8015250: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc 8015254: f003 0301 and.w r3, r3, #1 8015258: 2b00 cmp r3, #0 801525a: d00b beq.n 8015274 { __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); 801525c: 687b ldr r3, [r7, #4] 801525e: 681b ldr r3, [r3, #0] 8015260: 2204 movs r2, #4 8015262: 621a str r2, [r3, #32] huart->ErrorCode |= HAL_UART_ERROR_NE; 8015264: 687b ldr r3, [r7, #4] 8015266: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 801526a: f043 0202 orr.w r2, r3, #2 801526e: 687b ldr r3, [r7, #4] 8015270: f8c3 2080 str.w r2, [r3, #128] ; 0x80 } /* UART Over-Run interrupt occurred -----------------------------------------*/ if (((isrflags & USART_ISR_ORE) != 0U) 8015274: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 8015278: f003 0308 and.w r3, r3, #8 801527c: 2b00 cmp r3, #0 801527e: d017 beq.n 80152b0 && (((cr1its & USART_CR1_RXNEIE) != 0U) || 8015280: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 8015284: f003 0320 and.w r3, r3, #32 8015288: 2b00 cmp r3, #0 801528a: d105 bne.n 8015298 ((cr3its & USART_CR3_EIE) != 0U))) 801528c: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc 8015290: f003 0301 and.w r3, r3, #1 && (((cr1its & USART_CR1_RXNEIE) != 0U) || 8015294: 2b00 cmp r3, #0 8015296: d00b beq.n 80152b0 { __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); 8015298: 687b ldr r3, [r7, #4] 801529a: 681b ldr r3, [r3, #0] 801529c: 2208 movs r2, #8 801529e: 621a str r2, [r3, #32] huart->ErrorCode |= HAL_UART_ERROR_ORE; 80152a0: 687b ldr r3, [r7, #4] 80152a2: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 80152a6: f043 0208 orr.w r2, r3, #8 80152aa: 687b ldr r3, [r7, #4] 80152ac: f8c3 2080 str.w r2, [r3, #128] ; 0x80 } /* UART Receiver Timeout interrupt occurred ---------------------------------*/ if (((isrflags & USART_ISR_RTOF) != 0U) && ((cr1its & USART_CR1_RTOIE) != 0U)) 80152b0: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 80152b4: f403 6300 and.w r3, r3, #2048 ; 0x800 80152b8: 2b00 cmp r3, #0 80152ba: d012 beq.n 80152e2 80152bc: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 80152c0: f003 6380 and.w r3, r3, #67108864 ; 0x4000000 80152c4: 2b00 cmp r3, #0 80152c6: d00c beq.n 80152e2 { __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); 80152c8: 687b ldr r3, [r7, #4] 80152ca: 681b ldr r3, [r3, #0] 80152cc: f44f 6200 mov.w r2, #2048 ; 0x800 80152d0: 621a str r2, [r3, #32] huart->ErrorCode |= HAL_UART_ERROR_RTO; 80152d2: 687b ldr r3, [r7, #4] 80152d4: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 80152d8: f043 0220 orr.w r2, r3, #32 80152dc: 687b ldr r3, [r7, #4] 80152de: f8c3 2080 str.w r2, [r3, #128] ; 0x80 } /* Call UART Error Call back function if need be ----------------------------*/ if (huart->ErrorCode != HAL_UART_ERROR_NONE) 80152e2: 687b ldr r3, [r7, #4] 80152e4: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 80152e8: 2b00 cmp r3, #0 80152ea: f000 820b beq.w 8015704 { /* UART in mode Receiver --------------------------------------------------*/ if (((isrflags & USART_ISR_RXNE) != 0U) 80152ee: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 80152f2: f003 0320 and.w r3, r3, #32 80152f6: 2b00 cmp r3, #0 80152f8: d00d beq.n 8015316 && ((cr1its & USART_CR1_RXNEIE) != 0U)) 80152fa: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 80152fe: f003 0320 and.w r3, r3, #32 8015302: 2b00 cmp r3, #0 8015304: d007 beq.n 8015316 { if (huart->RxISR != NULL) 8015306: 687b ldr r3, [r7, #4] 8015308: 6e5b ldr r3, [r3, #100] ; 0x64 801530a: 2b00 cmp r3, #0 801530c: d003 beq.n 8015316 { huart->RxISR(huart); 801530e: 687b ldr r3, [r7, #4] 8015310: 6e5b ldr r3, [r3, #100] ; 0x64 8015312: 6878 ldr r0, [r7, #4] 8015314: 4798 blx r3 /* If Error is to be considered as blocking : - Receiver Timeout error in Reception - Overrun error in Reception - any error occurs in DMA mode reception */ errorcode = huart->ErrorCode; 8015316: 687b ldr r3, [r7, #4] 8015318: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 801531c: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || 8015320: 687b ldr r3, [r7, #4] 8015322: 681b ldr r3, [r3, #0] 8015324: 689b ldr r3, [r3, #8] 8015326: f003 0340 and.w r3, r3, #64 ; 0x40 801532a: 2b40 cmp r3, #64 ; 0x40 801532c: d005 beq.n 801533a ((errorcode & (HAL_UART_ERROR_RTO | HAL_UART_ERROR_ORE)) != 0U)) 801532e: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4 8015332: f003 0328 and.w r3, r3, #40 ; 0x28 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || 8015336: 2b00 cmp r3, #0 8015338: d04f beq.n 80153da { /* Blocking error : transfer is aborted Set the UART state ready to be able to start again the process, Disable Rx Interrupts, and disable Rx DMA request, if ongoing */ UART_EndRxTransfer(huart); 801533a: 6878 ldr r0, [r7, #4] 801533c: f000 fe1b bl 8015f76 /* Abort the UART DMA Rx channel if enabled */ if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 8015340: 687b ldr r3, [r7, #4] 8015342: 681b ldr r3, [r3, #0] 8015344: 689b ldr r3, [r3, #8] 8015346: f003 0340 and.w r3, r3, #64 ; 0x40 801534a: 2b40 cmp r3, #64 ; 0x40 801534c: d141 bne.n 80153d2 { /* Disable the UART DMA Rx request if enabled */ ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 801534e: 687b ldr r3, [r7, #4] 8015350: 681b ldr r3, [r3, #0] 8015352: 3308 adds r3, #8 8015354: f8c7 309c str.w r3, [r7, #156] ; 0x9c __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8015358: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c 801535c: e853 3f00 ldrex r3, [r3] 8015360: f8c7 3098 str.w r3, [r7, #152] ; 0x98 return(result); 8015364: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 8015368: f023 0340 bic.w r3, r3, #64 ; 0x40 801536c: f8c7 30d0 str.w r3, [r7, #208] ; 0xd0 8015370: 687b ldr r3, [r7, #4] 8015372: 681b ldr r3, [r3, #0] 8015374: 3308 adds r3, #8 8015376: f8d7 20d0 ldr.w r2, [r7, #208] ; 0xd0 801537a: f8c7 20a8 str.w r2, [r7, #168] ; 0xa8 801537e: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8015382: f8d7 10a4 ldr.w r1, [r7, #164] ; 0xa4 8015386: f8d7 20a8 ldr.w r2, [r7, #168] ; 0xa8 801538a: e841 2300 strex r3, r2, [r1] 801538e: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 return(result); 8015392: f8d7 30a0 ldr.w r3, [r7, #160] ; 0xa0 8015396: 2b00 cmp r3, #0 8015398: d1d9 bne.n 801534e /* Abort the UART DMA Rx channel */ if (huart->hdmarx != NULL) 801539a: 687b ldr r3, [r7, #4] 801539c: 6f1b ldr r3, [r3, #112] ; 0x70 801539e: 2b00 cmp r3, #0 80153a0: d013 beq.n 80153ca { /* Set the UART DMA Abort callback : will lead to call HAL_UART_ErrorCallback() at end of DMA abort procedure */ huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; 80153a2: 687b ldr r3, [r7, #4] 80153a4: 6f1b ldr r3, [r3, #112] ; 0x70 80153a6: 4a13 ldr r2, [pc, #76] ; (80153f4 ) 80153a8: 651a str r2, [r3, #80] ; 0x50 /* Abort DMA RX */ if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 80153aa: 687b ldr r3, [r7, #4] 80153ac: 6f1b ldr r3, [r3, #112] ; 0x70 80153ae: 4618 mov r0, r3 80153b0: f7fc fab5 bl 801191e 80153b4: 4603 mov r3, r0 80153b6: 2b00 cmp r3, #0 80153b8: d017 beq.n 80153ea { /* Call Directly huart->hdmarx->XferAbortCallback function in case of error */ huart->hdmarx->XferAbortCallback(huart->hdmarx); 80153ba: 687b ldr r3, [r7, #4] 80153bc: 6f1b ldr r3, [r3, #112] ; 0x70 80153be: 6d1b ldr r3, [r3, #80] ; 0x50 80153c0: 687a ldr r2, [r7, #4] 80153c2: 6f12 ldr r2, [r2, #112] ; 0x70 80153c4: 4610 mov r0, r2 80153c6: 4798 blx r3 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 80153c8: e00f b.n 80153ea #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered error callback*/ huart->ErrorCallback(huart); #else /*Call legacy weak error callback*/ HAL_UART_ErrorCallback(huart); 80153ca: 6878 ldr r0, [r7, #4] 80153cc: f7fa fd7a bl 800fec4 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 80153d0: e00b b.n 80153ea #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered error callback*/ huart->ErrorCallback(huart); #else /*Call legacy weak error callback*/ HAL_UART_ErrorCallback(huart); 80153d2: 6878 ldr r0, [r7, #4] 80153d4: f7fa fd76 bl 800fec4 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 80153d8: e007 b.n 80153ea #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered error callback*/ huart->ErrorCallback(huart); #else /*Call legacy weak error callback*/ HAL_UART_ErrorCallback(huart); 80153da: 6878 ldr r0, [r7, #4] 80153dc: f7fa fd72 bl 800fec4 #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ huart->ErrorCode = HAL_UART_ERROR_NONE; 80153e0: 687b ldr r3, [r7, #4] 80153e2: 2200 movs r2, #0 80153e4: f8c3 2080 str.w r2, [r3, #128] ; 0x80 } } return; 80153e8: e18c b.n 8015704 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 80153ea: bf00 nop return; 80153ec: e18a b.n 8015704 80153ee: bf00 nop 80153f0: 04000120 .word 0x04000120 80153f4: 0801603d .word 0x0801603d } /* End if some error occurs */ /* Check current reception Mode : If Reception till IDLE event has been selected : */ if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 80153f8: 687b ldr r3, [r7, #4] 80153fa: 6e1b ldr r3, [r3, #96] ; 0x60 80153fc: 2b01 cmp r3, #1 80153fe: f040 8144 bne.w 801568a && ((isrflags & USART_ISR_IDLE) != 0U) 8015402: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 8015406: f003 0310 and.w r3, r3, #16 801540a: 2b00 cmp r3, #0 801540c: f000 813d beq.w 801568a && ((cr1its & USART_ISR_IDLE) != 0U)) 8015410: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 8015414: f003 0310 and.w r3, r3, #16 8015418: 2b00 cmp r3, #0 801541a: f000 8136 beq.w 801568a { __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); 801541e: 687b ldr r3, [r7, #4] 8015420: 681b ldr r3, [r3, #0] 8015422: 2210 movs r2, #16 8015424: 621a str r2, [r3, #32] /* Check if DMA mode is enabled in UART */ if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 8015426: 687b ldr r3, [r7, #4] 8015428: 681b ldr r3, [r3, #0] 801542a: 689b ldr r3, [r3, #8] 801542c: f003 0340 and.w r3, r3, #64 ; 0x40 8015430: 2b40 cmp r3, #64 ; 0x40 8015432: f040 80b2 bne.w 801559a { /* DMA mode enabled */ /* Check received length : If all expected data are received, do nothing, (DMA cplt callback will be called). Otherwise, if at least one data has already been received, IDLE event is to be notified to user */ uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); 8015436: 687b ldr r3, [r7, #4] 8015438: 6f1b ldr r3, [r3, #112] ; 0x70 801543a: 681b ldr r3, [r3, #0] 801543c: 685b ldr r3, [r3, #4] 801543e: f8a7 30ce strh.w r3, [r7, #206] ; 0xce if ((nb_remaining_rx_data > 0U) 8015442: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce 8015446: 2b00 cmp r3, #0 8015448: f000 815e beq.w 8015708 && (nb_remaining_rx_data < huart->RxXferSize)) 801544c: 687b ldr r3, [r7, #4] 801544e: f8b3 3058 ldrh.w r3, [r3, #88] ; 0x58 8015452: f8b7 20ce ldrh.w r2, [r7, #206] ; 0xce 8015456: 429a cmp r2, r3 8015458: f080 8156 bcs.w 8015708 { /* Reception is not complete */ huart->RxXferCount = nb_remaining_rx_data; 801545c: 687b ldr r3, [r7, #4] 801545e: f8b7 20ce ldrh.w r2, [r7, #206] ; 0xce 8015462: f8a3 205a strh.w r2, [r3, #90] ; 0x5a /* In Normal mode, end DMA xfer and HAL UART Rx process*/ if (huart->hdmarx->Init.Mode != DMA_CIRCULAR) 8015466: 687b ldr r3, [r7, #4] 8015468: 6f1b ldr r3, [r3, #112] ; 0x70 801546a: 69db ldr r3, [r3, #28] 801546c: f5b3 7f80 cmp.w r3, #256 ; 0x100 8015470: f000 8085 beq.w 801557e { /* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); 8015474: 687b ldr r3, [r7, #4] 8015476: 681b ldr r3, [r3, #0] 8015478: f8c7 3088 str.w r3, [r7, #136] ; 0x88 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 801547c: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 8015480: e853 3f00 ldrex r3, [r3] 8015484: f8c7 3084 str.w r3, [r7, #132] ; 0x84 return(result); 8015488: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 801548c: f423 7380 bic.w r3, r3, #256 ; 0x100 8015490: f8c7 30c8 str.w r3, [r7, #200] ; 0xc8 8015494: 687b ldr r3, [r7, #4] 8015496: 681b ldr r3, [r3, #0] 8015498: 461a mov r2, r3 801549a: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 801549e: f8c7 3094 str.w r3, [r7, #148] ; 0x94 80154a2: f8c7 2090 str.w r2, [r7, #144] ; 0x90 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 80154a6: f8d7 1090 ldr.w r1, [r7, #144] ; 0x90 80154aa: f8d7 2094 ldr.w r2, [r7, #148] ; 0x94 80154ae: e841 2300 strex r3, r2, [r1] 80154b2: f8c7 308c str.w r3, [r7, #140] ; 0x8c return(result); 80154b6: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c 80154ba: 2b00 cmp r3, #0 80154bc: d1da bne.n 8015474 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 80154be: 687b ldr r3, [r7, #4] 80154c0: 681b ldr r3, [r3, #0] 80154c2: 3308 adds r3, #8 80154c4: 677b str r3, [r7, #116] ; 0x74 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 80154c6: 6f7b ldr r3, [r7, #116] ; 0x74 80154c8: e853 3f00 ldrex r3, [r3] 80154cc: 673b str r3, [r7, #112] ; 0x70 return(result); 80154ce: 6f3b ldr r3, [r7, #112] ; 0x70 80154d0: f023 0301 bic.w r3, r3, #1 80154d4: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 80154d8: 687b ldr r3, [r7, #4] 80154da: 681b ldr r3, [r3, #0] 80154dc: 3308 adds r3, #8 80154de: f8d7 20c4 ldr.w r2, [r7, #196] ; 0xc4 80154e2: f8c7 2080 str.w r2, [r7, #128] ; 0x80 80154e6: 67fb str r3, [r7, #124] ; 0x7c __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 80154e8: 6ff9 ldr r1, [r7, #124] ; 0x7c 80154ea: f8d7 2080 ldr.w r2, [r7, #128] ; 0x80 80154ee: e841 2300 strex r3, r2, [r1] 80154f2: 67bb str r3, [r7, #120] ; 0x78 return(result); 80154f4: 6fbb ldr r3, [r7, #120] ; 0x78 80154f6: 2b00 cmp r3, #0 80154f8: d1e1 bne.n 80154be /* Disable the DMA transfer for the receiver request by resetting the DMAR bit in the UART CR3 register */ ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 80154fa: 687b ldr r3, [r7, #4] 80154fc: 681b ldr r3, [r3, #0] 80154fe: 3308 adds r3, #8 8015500: 663b str r3, [r7, #96] ; 0x60 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8015502: 6e3b ldr r3, [r7, #96] ; 0x60 8015504: e853 3f00 ldrex r3, [r3] 8015508: 65fb str r3, [r7, #92] ; 0x5c return(result); 801550a: 6dfb ldr r3, [r7, #92] ; 0x5c 801550c: f023 0340 bic.w r3, r3, #64 ; 0x40 8015510: f8c7 30c0 str.w r3, [r7, #192] ; 0xc0 8015514: 687b ldr r3, [r7, #4] 8015516: 681b ldr r3, [r3, #0] 8015518: 3308 adds r3, #8 801551a: f8d7 20c0 ldr.w r2, [r7, #192] ; 0xc0 801551e: 66fa str r2, [r7, #108] ; 0x6c 8015520: 66bb str r3, [r7, #104] ; 0x68 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8015522: 6eb9 ldr r1, [r7, #104] ; 0x68 8015524: 6efa ldr r2, [r7, #108] ; 0x6c 8015526: e841 2300 strex r3, r2, [r1] 801552a: 667b str r3, [r7, #100] ; 0x64 return(result); 801552c: 6e7b ldr r3, [r7, #100] ; 0x64 801552e: 2b00 cmp r3, #0 8015530: d1e3 bne.n 80154fa /* At end of Rx process, restore huart->RxState to Ready */ huart->RxState = HAL_UART_STATE_READY; 8015532: 687b ldr r3, [r7, #4] 8015534: 2220 movs r2, #32 8015536: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 8015538: 687b ldr r3, [r7, #4] 801553a: 2200 movs r2, #0 801553c: 661a str r2, [r3, #96] ; 0x60 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 801553e: 687b ldr r3, [r7, #4] 8015540: 681b ldr r3, [r3, #0] 8015542: 64fb str r3, [r7, #76] ; 0x4c __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8015544: 6cfb ldr r3, [r7, #76] ; 0x4c 8015546: e853 3f00 ldrex r3, [r3] 801554a: 64bb str r3, [r7, #72] ; 0x48 return(result); 801554c: 6cbb ldr r3, [r7, #72] ; 0x48 801554e: f023 0310 bic.w r3, r3, #16 8015552: f8c7 30bc str.w r3, [r7, #188] ; 0xbc 8015556: 687b ldr r3, [r7, #4] 8015558: 681b ldr r3, [r3, #0] 801555a: 461a mov r2, r3 801555c: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc 8015560: 65bb str r3, [r7, #88] ; 0x58 8015562: 657a str r2, [r7, #84] ; 0x54 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8015564: 6d79 ldr r1, [r7, #84] ; 0x54 8015566: 6dba ldr r2, [r7, #88] ; 0x58 8015568: e841 2300 strex r3, r2, [r1] 801556c: 653b str r3, [r7, #80] ; 0x50 return(result); 801556e: 6d3b ldr r3, [r7, #80] ; 0x50 8015570: 2b00 cmp r3, #0 8015572: d1e4 bne.n 801553e /* Last bytes received, so no need as the abort is immediate */ (void)HAL_DMA_Abort(huart->hdmarx); 8015574: 687b ldr r3, [r7, #4] 8015576: 6f1b ldr r3, [r3, #112] ; 0x70 8015578: 4618 mov r0, r3 801557a: f7fc f960 bl 801183e #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered Rx Event callback*/ huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); #else /*Call legacy weak Rx Event callback*/ HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); 801557e: 687b ldr r3, [r7, #4] 8015580: f8b3 2058 ldrh.w r2, [r3, #88] ; 0x58 8015584: 687b ldr r3, [r7, #4] 8015586: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a 801558a: b29b uxth r3, r3 801558c: 1ad3 subs r3, r2, r3 801558e: b29b uxth r3, r3 8015590: 4619 mov r1, r3 8015592: 6878 ldr r0, [r7, #4] 8015594: f000 f8ca bl 801572c #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ } return; 8015598: e0b6 b.n 8015708 else { /* DMA mode not enabled */ /* Check received length : If all expected data are received, do nothing. Otherwise, if at least one data has already been received, IDLE event is to be notified to user */ uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; 801559a: 687b ldr r3, [r7, #4] 801559c: f8b3 2058 ldrh.w r2, [r3, #88] ; 0x58 80155a0: 687b ldr r3, [r7, #4] 80155a2: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a 80155a6: b29b uxth r3, r3 80155a8: 1ad3 subs r3, r2, r3 80155aa: f8a7 30ba strh.w r3, [r7, #186] ; 0xba if ((huart->RxXferCount > 0U) 80155ae: 687b ldr r3, [r7, #4] 80155b0: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a 80155b4: b29b uxth r3, r3 80155b6: 2b00 cmp r3, #0 80155b8: f000 80a8 beq.w 801570c && (nb_rx_data > 0U)) 80155bc: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba 80155c0: 2b00 cmp r3, #0 80155c2: f000 80a3 beq.w 801570c { /* Disable the UART Parity Error Interrupt and RXNE interrupts */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); 80155c6: 687b ldr r3, [r7, #4] 80155c8: 681b ldr r3, [r3, #0] 80155ca: 63bb str r3, [r7, #56] ; 0x38 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 80155cc: 6bbb ldr r3, [r7, #56] ; 0x38 80155ce: e853 3f00 ldrex r3, [r3] 80155d2: 637b str r3, [r7, #52] ; 0x34 return(result); 80155d4: 6b7b ldr r3, [r7, #52] ; 0x34 80155d6: f423 7390 bic.w r3, r3, #288 ; 0x120 80155da: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 80155de: 687b ldr r3, [r7, #4] 80155e0: 681b ldr r3, [r3, #0] 80155e2: 461a mov r2, r3 80155e4: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 80155e8: 647b str r3, [r7, #68] ; 0x44 80155ea: 643a str r2, [r7, #64] ; 0x40 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 80155ec: 6c39 ldr r1, [r7, #64] ; 0x40 80155ee: 6c7a ldr r2, [r7, #68] ; 0x44 80155f0: e841 2300 strex r3, r2, [r1] 80155f4: 63fb str r3, [r7, #60] ; 0x3c return(result); 80155f6: 6bfb ldr r3, [r7, #60] ; 0x3c 80155f8: 2b00 cmp r3, #0 80155fa: d1e4 bne.n 80155c6 /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */ ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 80155fc: 687b ldr r3, [r7, #4] 80155fe: 681b ldr r3, [r3, #0] 8015600: 3308 adds r3, #8 8015602: 627b str r3, [r7, #36] ; 0x24 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8015604: 6a7b ldr r3, [r7, #36] ; 0x24 8015606: e853 3f00 ldrex r3, [r3] 801560a: 623b str r3, [r7, #32] return(result); 801560c: 6a3b ldr r3, [r7, #32] 801560e: f023 0301 bic.w r3, r3, #1 8015612: f8c7 30b0 str.w r3, [r7, #176] ; 0xb0 8015616: 687b ldr r3, [r7, #4] 8015618: 681b ldr r3, [r3, #0] 801561a: 3308 adds r3, #8 801561c: f8d7 20b0 ldr.w r2, [r7, #176] ; 0xb0 8015620: 633a str r2, [r7, #48] ; 0x30 8015622: 62fb str r3, [r7, #44] ; 0x2c __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8015624: 6af9 ldr r1, [r7, #44] ; 0x2c 8015626: 6b3a ldr r2, [r7, #48] ; 0x30 8015628: e841 2300 strex r3, r2, [r1] 801562c: 62bb str r3, [r7, #40] ; 0x28 return(result); 801562e: 6abb ldr r3, [r7, #40] ; 0x28 8015630: 2b00 cmp r3, #0 8015632: d1e3 bne.n 80155fc /* Rx process is completed, restore huart->RxState to Ready */ huart->RxState = HAL_UART_STATE_READY; 8015634: 687b ldr r3, [r7, #4] 8015636: 2220 movs r2, #32 8015638: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 801563a: 687b ldr r3, [r7, #4] 801563c: 2200 movs r2, #0 801563e: 661a str r2, [r3, #96] ; 0x60 /* Clear RxISR function pointer */ huart->RxISR = NULL; 8015640: 687b ldr r3, [r7, #4] 8015642: 2200 movs r2, #0 8015644: 665a str r2, [r3, #100] ; 0x64 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 8015646: 687b ldr r3, [r7, #4] 8015648: 681b ldr r3, [r3, #0] 801564a: 613b str r3, [r7, #16] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 801564c: 693b ldr r3, [r7, #16] 801564e: e853 3f00 ldrex r3, [r3] 8015652: 60fb str r3, [r7, #12] return(result); 8015654: 68fb ldr r3, [r7, #12] 8015656: f023 0310 bic.w r3, r3, #16 801565a: f8c7 30ac str.w r3, [r7, #172] ; 0xac 801565e: 687b ldr r3, [r7, #4] 8015660: 681b ldr r3, [r3, #0] 8015662: 461a mov r2, r3 8015664: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac 8015668: 61fb str r3, [r7, #28] 801566a: 61ba str r2, [r7, #24] __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 801566c: 69b9 ldr r1, [r7, #24] 801566e: 69fa ldr r2, [r7, #28] 8015670: e841 2300 strex r3, r2, [r1] 8015674: 617b str r3, [r7, #20] return(result); 8015676: 697b ldr r3, [r7, #20] 8015678: 2b00 cmp r3, #0 801567a: d1e4 bne.n 8015646 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered Rx complete callback*/ huart->RxEventCallback(huart, nb_rx_data); #else /*Call legacy weak Rx Event callback*/ HAL_UARTEx_RxEventCallback(huart, nb_rx_data); 801567c: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba 8015680: 4619 mov r1, r3 8015682: 6878 ldr r0, [r7, #4] 8015684: f000 f852 bl 801572c #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ } return; 8015688: e040 b.n 801570c } #if defined(USART_CR1_UESM) #if defined(USART_CR3_WUFIE) /* UART wakeup from Stop mode interrupt occurred ---------------------------*/ if (((isrflags & USART_ISR_WUF) != 0U) && ((cr3its & USART_CR3_WUFIE) != 0U)) 801568a: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 801568e: f403 1380 and.w r3, r3, #1048576 ; 0x100000 8015692: 2b00 cmp r3, #0 8015694: d00e beq.n 80156b4 8015696: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc 801569a: f403 0380 and.w r3, r3, #4194304 ; 0x400000 801569e: 2b00 cmp r3, #0 80156a0: d008 beq.n 80156b4 { __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF); 80156a2: 687b ldr r3, [r7, #4] 80156a4: 681b ldr r3, [r3, #0] 80156a6: f44f 1280 mov.w r2, #1048576 ; 0x100000 80156aa: 621a str r2, [r3, #32] #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /* Call registered Wakeup Callback */ huart->WakeupCallback(huart); #else /* Call legacy weak Wakeup Callback */ HAL_UARTEx_WakeupCallback(huart); 80156ac: 6878 ldr r0, [r7, #4] 80156ae: f000 f849 bl 8015744 #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ return; 80156b2: e02e b.n 8015712 } #endif /* USART_CR3_WUFIE */ #endif /* USART_CR1_UESM */ /* UART in mode Transmitter ------------------------------------------------*/ if (((isrflags & USART_ISR_TXE) != 0U) 80156b4: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 80156b8: f003 0380 and.w r3, r3, #128 ; 0x80 80156bc: 2b00 cmp r3, #0 80156be: d00e beq.n 80156de && ((cr1its & USART_CR1_TXEIE) != 0U)) 80156c0: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 80156c4: f003 0380 and.w r3, r3, #128 ; 0x80 80156c8: 2b00 cmp r3, #0 80156ca: d008 beq.n 80156de { if (huart->TxISR != NULL) 80156cc: 687b ldr r3, [r7, #4] 80156ce: 6e9b ldr r3, [r3, #104] ; 0x68 80156d0: 2b00 cmp r3, #0 80156d2: d01d beq.n 8015710 { huart->TxISR(huart); 80156d4: 687b ldr r3, [r7, #4] 80156d6: 6e9b ldr r3, [r3, #104] ; 0x68 80156d8: 6878 ldr r0, [r7, #4] 80156da: 4798 blx r3 } return; 80156dc: e018 b.n 8015710 } /* UART in mode Transmitter (transmission end) -----------------------------*/ if (((isrflags & USART_ISR_TC) != 0U) && ((cr1its & USART_CR1_TCIE) != 0U)) 80156de: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 80156e2: f003 0340 and.w r3, r3, #64 ; 0x40 80156e6: 2b00 cmp r3, #0 80156e8: d013 beq.n 8015712 80156ea: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 80156ee: f003 0340 and.w r3, r3, #64 ; 0x40 80156f2: 2b00 cmp r3, #0 80156f4: d00d beq.n 8015712 { UART_EndTransmit_IT(huart); 80156f6: 6878 ldr r0, [r7, #4] 80156f8: f000 fde2 bl 80162c0 return; 80156fc: bf00 nop 80156fe: e008 b.n 8015712 return; 8015700: bf00 nop 8015702: e006 b.n 8015712 return; 8015704: bf00 nop 8015706: e004 b.n 8015712 return; 8015708: bf00 nop 801570a: e002 b.n 8015712 return; 801570c: bf00 nop 801570e: e000 b.n 8015712 return; 8015710: bf00 nop } } 8015712: 37e8 adds r7, #232 ; 0xe8 8015714: 46bd mov sp, r7 8015716: bd80 pop {r7, pc} 08015718 : * @brief UART Abort Complete callback. * @param huart UART handle. * @retval None */ __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) { 8015718: b480 push {r7} 801571a: b083 sub sp, #12 801571c: af00 add r7, sp, #0 801571e: 6078 str r0, [r7, #4] UNUSED(huart); /* NOTE : This function should not be modified, when the callback is needed, the HAL_UART_AbortCpltCallback can be implemented in the user file. */ } 8015720: bf00 nop 8015722: 370c adds r7, #12 8015724: 46bd mov sp, r7 8015726: f85d 7b04 ldr.w r7, [sp], #4 801572a: 4770 bx lr 0801572c : * @param Size Number of data available in application reception buffer (indicates a position in * reception buffer until which, data are available) * @retval None */ __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) { 801572c: b480 push {r7} 801572e: b083 sub sp, #12 8015730: af00 add r7, sp, #0 8015732: 6078 str r0, [r7, #4] 8015734: 460b mov r3, r1 8015736: 807b strh r3, [r7, #2] UNUSED(Size); /* NOTE : This function should not be modified, when the callback is needed, the HAL_UARTEx_RxEventCallback can be implemented in the user file. */ } 8015738: bf00 nop 801573a: 370c adds r7, #12 801573c: 46bd mov sp, r7 801573e: f85d 7b04 ldr.w r7, [sp], #4 8015742: 4770 bx lr 08015744 : * @brief UART wakeup from Stop mode callback. * @param huart UART handle. * @retval None */ __weak void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart) { 8015744: b480 push {r7} 8015746: b083 sub sp, #12 8015748: af00 add r7, sp, #0 801574a: 6078 str r0, [r7, #4] UNUSED(huart); /* NOTE : This function should not be modified, when the callback is needed, the HAL_UARTEx_WakeupCallback can be implemented in the user file. */ } 801574c: bf00 nop 801574e: 370c adds r7, #12 8015750: 46bd mov sp, r7 8015752: f85d 7b04 ldr.w r7, [sp], #4 8015756: 4770 bx lr 08015758 : * @brief Configure the UART peripheral. * @param huart UART handle. * @retval HAL status */ HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) { 8015758: b580 push {r7, lr} 801575a: b088 sub sp, #32 801575c: af00 add r7, sp, #0 801575e: 6078 str r0, [r7, #4] uint32_t tmpreg; uint16_t brrtemp; UART_ClockSourceTypeDef clocksource; uint32_t usartdiv; HAL_StatusTypeDef ret = HAL_OK; 8015760: 2300 movs r3, #0 8015762: 77bb strb r3, [r7, #30] * the UART Word Length, Parity, Mode and oversampling: * set the M bits according to huart->Init.WordLength value * set PCE and PS bits according to huart->Init.Parity value * set TE and RE bits according to huart->Init.Mode value * set OVER8 bit according to huart->Init.OverSampling value */ tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.OverSampling ; 8015764: 687b ldr r3, [r7, #4] 8015766: 689a ldr r2, [r3, #8] 8015768: 687b ldr r3, [r7, #4] 801576a: 691b ldr r3, [r3, #16] 801576c: 431a orrs r2, r3 801576e: 687b ldr r3, [r7, #4] 8015770: 695b ldr r3, [r3, #20] 8015772: 431a orrs r2, r3 8015774: 687b ldr r3, [r7, #4] 8015776: 69db ldr r3, [r3, #28] 8015778: 4313 orrs r3, r2 801577a: 617b str r3, [r7, #20] MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); 801577c: 687b ldr r3, [r7, #4] 801577e: 681a ldr r2, [r3, #0] 8015780: 687b ldr r3, [r7, #4] 8015782: 681b ldr r3, [r3, #0] 8015784: 6819 ldr r1, [r3, #0] 8015786: 4bb3 ldr r3, [pc, #716] ; (8015a54 ) 8015788: 400b ands r3, r1 801578a: 6979 ldr r1, [r7, #20] 801578c: 430b orrs r3, r1 801578e: 6013 str r3, [r2, #0] /*-------------------------- USART CR2 Configuration -----------------------*/ /* Configure the UART Stop Bits: Set STOP[13:12] bits according * to huart->Init.StopBits value */ MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); 8015790: 687b ldr r3, [r7, #4] 8015792: 681b ldr r3, [r3, #0] 8015794: 687a ldr r2, [r7, #4] 8015796: 6812 ldr r2, [r2, #0] 8015798: 6852 ldr r2, [r2, #4] 801579a: f422 5140 bic.w r1, r2, #12288 ; 0x3000 801579e: 687a ldr r2, [r7, #4] 80157a0: 68d2 ldr r2, [r2, #12] 80157a2: 430a orrs r2, r1 80157a4: 605a str r2, [r3, #4] /* Configure * - UART HardWare Flow Control: set CTSE and RTSE bits according * to huart->Init.HwFlowCtl value * - one-bit sampling method versus three samples' majority rule according * to huart->Init.OneBitSampling (not applicable to LPUART) */ tmpreg = (uint32_t)huart->Init.HwFlowCtl; 80157a6: 687b ldr r3, [r7, #4] 80157a8: 699b ldr r3, [r3, #24] 80157aa: 617b str r3, [r7, #20] tmpreg |= huart->Init.OneBitSampling; 80157ac: 687b ldr r3, [r7, #4] 80157ae: 6a1b ldr r3, [r3, #32] 80157b0: 697a ldr r2, [r7, #20] 80157b2: 4313 orrs r3, r2 80157b4: 617b str r3, [r7, #20] MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); 80157b6: 687b ldr r3, [r7, #4] 80157b8: 681b ldr r3, [r3, #0] 80157ba: 687a ldr r2, [r7, #4] 80157bc: 6812 ldr r2, [r2, #0] 80157be: 6892 ldr r2, [r2, #8] 80157c0: f422 6130 bic.w r1, r2, #2816 ; 0xb00 80157c4: 697a ldr r2, [r7, #20] 80157c6: 430a orrs r2, r1 80157c8: 609a str r2, [r3, #8] /*-------------------------- USART BRR Configuration -----------------------*/ UART_GETCLOCKSOURCE(huart, clocksource); 80157ca: 687b ldr r3, [r7, #4] 80157cc: 681b ldr r3, [r3, #0] 80157ce: 4aa2 ldr r2, [pc, #648] ; (8015a58 ) 80157d0: 4293 cmp r3, r2 80157d2: d121 bne.n 8015818 80157d4: 4ba1 ldr r3, [pc, #644] ; (8015a5c ) 80157d6: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 80157da: f003 0303 and.w r3, r3, #3 80157de: 2b03 cmp r3, #3 80157e0: d816 bhi.n 8015810 80157e2: a201 add r2, pc, #4 ; (adr r2, 80157e8 ) 80157e4: f852 f023 ldr.w pc, [r2, r3, lsl #2] 80157e8: 080157f9 .word 0x080157f9 80157ec: 08015805 .word 0x08015805 80157f0: 080157ff .word 0x080157ff 80157f4: 0801580b .word 0x0801580b 80157f8: 2301 movs r3, #1 80157fa: 77fb strb r3, [r7, #31] 80157fc: e150 b.n 8015aa0 80157fe: 2302 movs r3, #2 8015800: 77fb strb r3, [r7, #31] 8015802: e14d b.n 8015aa0 8015804: 2304 movs r3, #4 8015806: 77fb strb r3, [r7, #31] 8015808: e14a b.n 8015aa0 801580a: 2308 movs r3, #8 801580c: 77fb strb r3, [r7, #31] 801580e: e147 b.n 8015aa0 8015810: 2310 movs r3, #16 8015812: 77fb strb r3, [r7, #31] 8015814: bf00 nop 8015816: e143 b.n 8015aa0 8015818: 687b ldr r3, [r7, #4] 801581a: 681b ldr r3, [r3, #0] 801581c: 4a90 ldr r2, [pc, #576] ; (8015a60 ) 801581e: 4293 cmp r3, r2 8015820: d134 bne.n 801588c 8015822: 4b8e ldr r3, [pc, #568] ; (8015a5c ) 8015824: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8015828: f003 030c and.w r3, r3, #12 801582c: 2b0c cmp r3, #12 801582e: d829 bhi.n 8015884 8015830: a201 add r2, pc, #4 ; (adr r2, 8015838 ) 8015832: f852 f023 ldr.w pc, [r2, r3, lsl #2] 8015836: bf00 nop 8015838: 0801586d .word 0x0801586d 801583c: 08015885 .word 0x08015885 8015840: 08015885 .word 0x08015885 8015844: 08015885 .word 0x08015885 8015848: 08015879 .word 0x08015879 801584c: 08015885 .word 0x08015885 8015850: 08015885 .word 0x08015885 8015854: 08015885 .word 0x08015885 8015858: 08015873 .word 0x08015873 801585c: 08015885 .word 0x08015885 8015860: 08015885 .word 0x08015885 8015864: 08015885 .word 0x08015885 8015868: 0801587f .word 0x0801587f 801586c: 2300 movs r3, #0 801586e: 77fb strb r3, [r7, #31] 8015870: e116 b.n 8015aa0 8015872: 2302 movs r3, #2 8015874: 77fb strb r3, [r7, #31] 8015876: e113 b.n 8015aa0 8015878: 2304 movs r3, #4 801587a: 77fb strb r3, [r7, #31] 801587c: e110 b.n 8015aa0 801587e: 2308 movs r3, #8 8015880: 77fb strb r3, [r7, #31] 8015882: e10d b.n 8015aa0 8015884: 2310 movs r3, #16 8015886: 77fb strb r3, [r7, #31] 8015888: bf00 nop 801588a: e109 b.n 8015aa0 801588c: 687b ldr r3, [r7, #4] 801588e: 681b ldr r3, [r3, #0] 8015890: 4a74 ldr r2, [pc, #464] ; (8015a64 ) 8015892: 4293 cmp r3, r2 8015894: d120 bne.n 80158d8 8015896: 4b71 ldr r3, [pc, #452] ; (8015a5c ) 8015898: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 801589c: f003 0330 and.w r3, r3, #48 ; 0x30 80158a0: 2b10 cmp r3, #16 80158a2: d00f beq.n 80158c4 80158a4: 2b10 cmp r3, #16 80158a6: d802 bhi.n 80158ae 80158a8: 2b00 cmp r3, #0 80158aa: d005 beq.n 80158b8 80158ac: e010 b.n 80158d0 80158ae: 2b20 cmp r3, #32 80158b0: d005 beq.n 80158be 80158b2: 2b30 cmp r3, #48 ; 0x30 80158b4: d009 beq.n 80158ca 80158b6: e00b b.n 80158d0 80158b8: 2300 movs r3, #0 80158ba: 77fb strb r3, [r7, #31] 80158bc: e0f0 b.n 8015aa0 80158be: 2302 movs r3, #2 80158c0: 77fb strb r3, [r7, #31] 80158c2: e0ed b.n 8015aa0 80158c4: 2304 movs r3, #4 80158c6: 77fb strb r3, [r7, #31] 80158c8: e0ea b.n 8015aa0 80158ca: 2308 movs r3, #8 80158cc: 77fb strb r3, [r7, #31] 80158ce: e0e7 b.n 8015aa0 80158d0: 2310 movs r3, #16 80158d2: 77fb strb r3, [r7, #31] 80158d4: bf00 nop 80158d6: e0e3 b.n 8015aa0 80158d8: 687b ldr r3, [r7, #4] 80158da: 681b ldr r3, [r3, #0] 80158dc: 4a62 ldr r2, [pc, #392] ; (8015a68 ) 80158de: 4293 cmp r3, r2 80158e0: d120 bne.n 8015924 80158e2: 4b5e ldr r3, [pc, #376] ; (8015a5c ) 80158e4: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 80158e8: f003 03c0 and.w r3, r3, #192 ; 0xc0 80158ec: 2b40 cmp r3, #64 ; 0x40 80158ee: d00f beq.n 8015910 80158f0: 2b40 cmp r3, #64 ; 0x40 80158f2: d802 bhi.n 80158fa 80158f4: 2b00 cmp r3, #0 80158f6: d005 beq.n 8015904 80158f8: e010 b.n 801591c 80158fa: 2b80 cmp r3, #128 ; 0x80 80158fc: d005 beq.n 801590a 80158fe: 2bc0 cmp r3, #192 ; 0xc0 8015900: d009 beq.n 8015916 8015902: e00b b.n 801591c 8015904: 2300 movs r3, #0 8015906: 77fb strb r3, [r7, #31] 8015908: e0ca b.n 8015aa0 801590a: 2302 movs r3, #2 801590c: 77fb strb r3, [r7, #31] 801590e: e0c7 b.n 8015aa0 8015910: 2304 movs r3, #4 8015912: 77fb strb r3, [r7, #31] 8015914: e0c4 b.n 8015aa0 8015916: 2308 movs r3, #8 8015918: 77fb strb r3, [r7, #31] 801591a: e0c1 b.n 8015aa0 801591c: 2310 movs r3, #16 801591e: 77fb strb r3, [r7, #31] 8015920: bf00 nop 8015922: e0bd b.n 8015aa0 8015924: 687b ldr r3, [r7, #4] 8015926: 681b ldr r3, [r3, #0] 8015928: 4a50 ldr r2, [pc, #320] ; (8015a6c ) 801592a: 4293 cmp r3, r2 801592c: d124 bne.n 8015978 801592e: 4b4b ldr r3, [pc, #300] ; (8015a5c ) 8015930: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8015934: f403 7340 and.w r3, r3, #768 ; 0x300 8015938: f5b3 7f80 cmp.w r3, #256 ; 0x100 801593c: d012 beq.n 8015964 801593e: f5b3 7f80 cmp.w r3, #256 ; 0x100 8015942: d802 bhi.n 801594a 8015944: 2b00 cmp r3, #0 8015946: d007 beq.n 8015958 8015948: e012 b.n 8015970 801594a: f5b3 7f00 cmp.w r3, #512 ; 0x200 801594e: d006 beq.n 801595e 8015950: f5b3 7f40 cmp.w r3, #768 ; 0x300 8015954: d009 beq.n 801596a 8015956: e00b b.n 8015970 8015958: 2300 movs r3, #0 801595a: 77fb strb r3, [r7, #31] 801595c: e0a0 b.n 8015aa0 801595e: 2302 movs r3, #2 8015960: 77fb strb r3, [r7, #31] 8015962: e09d b.n 8015aa0 8015964: 2304 movs r3, #4 8015966: 77fb strb r3, [r7, #31] 8015968: e09a b.n 8015aa0 801596a: 2308 movs r3, #8 801596c: 77fb strb r3, [r7, #31] 801596e: e097 b.n 8015aa0 8015970: 2310 movs r3, #16 8015972: 77fb strb r3, [r7, #31] 8015974: bf00 nop 8015976: e093 b.n 8015aa0 8015978: 687b ldr r3, [r7, #4] 801597a: 681b ldr r3, [r3, #0] 801597c: 4a3c ldr r2, [pc, #240] ; (8015a70 ) 801597e: 4293 cmp r3, r2 8015980: d124 bne.n 80159cc 8015982: 4b36 ldr r3, [pc, #216] ; (8015a5c ) 8015984: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8015988: f403 6340 and.w r3, r3, #3072 ; 0xc00 801598c: f5b3 6f80 cmp.w r3, #1024 ; 0x400 8015990: d012 beq.n 80159b8 8015992: f5b3 6f80 cmp.w r3, #1024 ; 0x400 8015996: d802 bhi.n 801599e 8015998: 2b00 cmp r3, #0 801599a: d007 beq.n 80159ac 801599c: e012 b.n 80159c4 801599e: f5b3 6f00 cmp.w r3, #2048 ; 0x800 80159a2: d006 beq.n 80159b2 80159a4: f5b3 6f40 cmp.w r3, #3072 ; 0xc00 80159a8: d009 beq.n 80159be 80159aa: e00b b.n 80159c4 80159ac: 2301 movs r3, #1 80159ae: 77fb strb r3, [r7, #31] 80159b0: e076 b.n 8015aa0 80159b2: 2302 movs r3, #2 80159b4: 77fb strb r3, [r7, #31] 80159b6: e073 b.n 8015aa0 80159b8: 2304 movs r3, #4 80159ba: 77fb strb r3, [r7, #31] 80159bc: e070 b.n 8015aa0 80159be: 2308 movs r3, #8 80159c0: 77fb strb r3, [r7, #31] 80159c2: e06d b.n 8015aa0 80159c4: 2310 movs r3, #16 80159c6: 77fb strb r3, [r7, #31] 80159c8: bf00 nop 80159ca: e069 b.n 8015aa0 80159cc: 687b ldr r3, [r7, #4] 80159ce: 681b ldr r3, [r3, #0] 80159d0: 4a28 ldr r2, [pc, #160] ; (8015a74 ) 80159d2: 4293 cmp r3, r2 80159d4: d124 bne.n 8015a20 80159d6: 4b21 ldr r3, [pc, #132] ; (8015a5c ) 80159d8: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 80159dc: f403 5340 and.w r3, r3, #12288 ; 0x3000 80159e0: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 80159e4: d012 beq.n 8015a0c 80159e6: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 80159ea: d802 bhi.n 80159f2 80159ec: 2b00 cmp r3, #0 80159ee: d007 beq.n 8015a00 80159f0: e012 b.n 8015a18 80159f2: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 80159f6: d006 beq.n 8015a06 80159f8: f5b3 5f40 cmp.w r3, #12288 ; 0x3000 80159fc: d009 beq.n 8015a12 80159fe: e00b b.n 8015a18 8015a00: 2300 movs r3, #0 8015a02: 77fb strb r3, [r7, #31] 8015a04: e04c b.n 8015aa0 8015a06: 2302 movs r3, #2 8015a08: 77fb strb r3, [r7, #31] 8015a0a: e049 b.n 8015aa0 8015a0c: 2304 movs r3, #4 8015a0e: 77fb strb r3, [r7, #31] 8015a10: e046 b.n 8015aa0 8015a12: 2308 movs r3, #8 8015a14: 77fb strb r3, [r7, #31] 8015a16: e043 b.n 8015aa0 8015a18: 2310 movs r3, #16 8015a1a: 77fb strb r3, [r7, #31] 8015a1c: bf00 nop 8015a1e: e03f b.n 8015aa0 8015a20: 687b ldr r3, [r7, #4] 8015a22: 681b ldr r3, [r3, #0] 8015a24: 4a14 ldr r2, [pc, #80] ; (8015a78 ) 8015a26: 4293 cmp r3, r2 8015a28: d138 bne.n 8015a9c 8015a2a: 4b0c ldr r3, [pc, #48] ; (8015a5c ) 8015a2c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8015a30: f403 4340 and.w r3, r3, #49152 ; 0xc000 8015a34: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 8015a38: d026 beq.n 8015a88 8015a3a: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 8015a3e: d802 bhi.n 8015a46 8015a40: 2b00 cmp r3, #0 8015a42: d01b beq.n 8015a7c 8015a44: e026 b.n 8015a94 8015a46: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 8015a4a: d01a beq.n 8015a82 8015a4c: f5b3 4f40 cmp.w r3, #49152 ; 0xc000 8015a50: d01d beq.n 8015a8e 8015a52: e01f b.n 8015a94 8015a54: efff69f3 .word 0xefff69f3 8015a58: 40011000 .word 0x40011000 8015a5c: 40023800 .word 0x40023800 8015a60: 40004400 .word 0x40004400 8015a64: 40004800 .word 0x40004800 8015a68: 40004c00 .word 0x40004c00 8015a6c: 40005000 .word 0x40005000 8015a70: 40011400 .word 0x40011400 8015a74: 40007800 .word 0x40007800 8015a78: 40007c00 .word 0x40007c00 8015a7c: 2300 movs r3, #0 8015a7e: 77fb strb r3, [r7, #31] 8015a80: e00e b.n 8015aa0 8015a82: 2302 movs r3, #2 8015a84: 77fb strb r3, [r7, #31] 8015a86: e00b b.n 8015aa0 8015a88: 2304 movs r3, #4 8015a8a: 77fb strb r3, [r7, #31] 8015a8c: e008 b.n 8015aa0 8015a8e: 2308 movs r3, #8 8015a90: 77fb strb r3, [r7, #31] 8015a92: e005 b.n 8015aa0 8015a94: 2310 movs r3, #16 8015a96: 77fb strb r3, [r7, #31] 8015a98: bf00 nop 8015a9a: e001 b.n 8015aa0 8015a9c: 2310 movs r3, #16 8015a9e: 77fb strb r3, [r7, #31] if (huart->Init.OverSampling == UART_OVERSAMPLING_8) 8015aa0: 687b ldr r3, [r7, #4] 8015aa2: 69db ldr r3, [r3, #28] 8015aa4: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 8015aa8: d15b bne.n 8015b62 { switch (clocksource) 8015aaa: 7ffb ldrb r3, [r7, #31] 8015aac: 2b08 cmp r3, #8 8015aae: d828 bhi.n 8015b02 8015ab0: a201 add r2, pc, #4 ; (adr r2, 8015ab8 ) 8015ab2: f852 f023 ldr.w pc, [r2, r3, lsl #2] 8015ab6: bf00 nop 8015ab8: 08015add .word 0x08015add 8015abc: 08015ae5 .word 0x08015ae5 8015ac0: 08015aed .word 0x08015aed 8015ac4: 08015b03 .word 0x08015b03 8015ac8: 08015af3 .word 0x08015af3 8015acc: 08015b03 .word 0x08015b03 8015ad0: 08015b03 .word 0x08015b03 8015ad4: 08015b03 .word 0x08015b03 8015ad8: 08015afb .word 0x08015afb { case UART_CLOCKSOURCE_PCLK1: pclk = HAL_RCC_GetPCLK1Freq(); 8015adc: f7fe f8d8 bl 8013c90 8015ae0: 61b8 str r0, [r7, #24] break; 8015ae2: e013 b.n 8015b0c case UART_CLOCKSOURCE_PCLK2: pclk = HAL_RCC_GetPCLK2Freq(); 8015ae4: f7fe f8e8 bl 8013cb8 8015ae8: 61b8 str r0, [r7, #24] break; 8015aea: e00f b.n 8015b0c case UART_CLOCKSOURCE_HSI: pclk = (uint32_t) HSI_VALUE; 8015aec: 4b49 ldr r3, [pc, #292] ; (8015c14 ) 8015aee: 61bb str r3, [r7, #24] break; 8015af0: e00c b.n 8015b0c case UART_CLOCKSOURCE_SYSCLK: pclk = HAL_RCC_GetSysClockFreq(); 8015af2: f7fe f80b bl 8013b0c 8015af6: 61b8 str r0, [r7, #24] break; 8015af8: e008 b.n 8015b0c case UART_CLOCKSOURCE_LSE: pclk = (uint32_t) LSE_VALUE; 8015afa: f44f 4300 mov.w r3, #32768 ; 0x8000 8015afe: 61bb str r3, [r7, #24] break; 8015b00: e004 b.n 8015b0c default: pclk = 0U; 8015b02: 2300 movs r3, #0 8015b04: 61bb str r3, [r7, #24] ret = HAL_ERROR; 8015b06: 2301 movs r3, #1 8015b08: 77bb strb r3, [r7, #30] break; 8015b0a: bf00 nop } /* USARTDIV must be greater than or equal to 0d16 */ if (pclk != 0U) 8015b0c: 69bb ldr r3, [r7, #24] 8015b0e: 2b00 cmp r3, #0 8015b10: d074 beq.n 8015bfc { usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate)); 8015b12: 69bb ldr r3, [r7, #24] 8015b14: 005a lsls r2, r3, #1 8015b16: 687b ldr r3, [r7, #4] 8015b18: 685b ldr r3, [r3, #4] 8015b1a: 085b lsrs r3, r3, #1 8015b1c: 441a add r2, r3 8015b1e: 687b ldr r3, [r7, #4] 8015b20: 685b ldr r3, [r3, #4] 8015b22: fbb2 f3f3 udiv r3, r2, r3 8015b26: 613b str r3, [r7, #16] if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) 8015b28: 693b ldr r3, [r7, #16] 8015b2a: 2b0f cmp r3, #15 8015b2c: d916 bls.n 8015b5c 8015b2e: 693b ldr r3, [r7, #16] 8015b30: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 8015b34: d212 bcs.n 8015b5c { brrtemp = (uint16_t)(usartdiv & 0xFFF0U); 8015b36: 693b ldr r3, [r7, #16] 8015b38: b29b uxth r3, r3 8015b3a: f023 030f bic.w r3, r3, #15 8015b3e: 81fb strh r3, [r7, #14] brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U); 8015b40: 693b ldr r3, [r7, #16] 8015b42: 085b lsrs r3, r3, #1 8015b44: b29b uxth r3, r3 8015b46: f003 0307 and.w r3, r3, #7 8015b4a: b29a uxth r2, r3 8015b4c: 89fb ldrh r3, [r7, #14] 8015b4e: 4313 orrs r3, r2 8015b50: 81fb strh r3, [r7, #14] huart->Instance->BRR = brrtemp; 8015b52: 687b ldr r3, [r7, #4] 8015b54: 681b ldr r3, [r3, #0] 8015b56: 89fa ldrh r2, [r7, #14] 8015b58: 60da str r2, [r3, #12] 8015b5a: e04f b.n 8015bfc } else { ret = HAL_ERROR; 8015b5c: 2301 movs r3, #1 8015b5e: 77bb strb r3, [r7, #30] 8015b60: e04c b.n 8015bfc } } } else { switch (clocksource) 8015b62: 7ffb ldrb r3, [r7, #31] 8015b64: 2b08 cmp r3, #8 8015b66: d828 bhi.n 8015bba 8015b68: a201 add r2, pc, #4 ; (adr r2, 8015b70 ) 8015b6a: f852 f023 ldr.w pc, [r2, r3, lsl #2] 8015b6e: bf00 nop 8015b70: 08015b95 .word 0x08015b95 8015b74: 08015b9d .word 0x08015b9d 8015b78: 08015ba5 .word 0x08015ba5 8015b7c: 08015bbb .word 0x08015bbb 8015b80: 08015bab .word 0x08015bab 8015b84: 08015bbb .word 0x08015bbb 8015b88: 08015bbb .word 0x08015bbb 8015b8c: 08015bbb .word 0x08015bbb 8015b90: 08015bb3 .word 0x08015bb3 { case UART_CLOCKSOURCE_PCLK1: pclk = HAL_RCC_GetPCLK1Freq(); 8015b94: f7fe f87c bl 8013c90 8015b98: 61b8 str r0, [r7, #24] break; 8015b9a: e013 b.n 8015bc4 case UART_CLOCKSOURCE_PCLK2: pclk = HAL_RCC_GetPCLK2Freq(); 8015b9c: f7fe f88c bl 8013cb8 8015ba0: 61b8 str r0, [r7, #24] break; 8015ba2: e00f b.n 8015bc4 case UART_CLOCKSOURCE_HSI: pclk = (uint32_t) HSI_VALUE; 8015ba4: 4b1b ldr r3, [pc, #108] ; (8015c14 ) 8015ba6: 61bb str r3, [r7, #24] break; 8015ba8: e00c b.n 8015bc4 case UART_CLOCKSOURCE_SYSCLK: pclk = HAL_RCC_GetSysClockFreq(); 8015baa: f7fd ffaf bl 8013b0c 8015bae: 61b8 str r0, [r7, #24] break; 8015bb0: e008 b.n 8015bc4 case UART_CLOCKSOURCE_LSE: pclk = (uint32_t) LSE_VALUE; 8015bb2: f44f 4300 mov.w r3, #32768 ; 0x8000 8015bb6: 61bb str r3, [r7, #24] break; 8015bb8: e004 b.n 8015bc4 default: pclk = 0U; 8015bba: 2300 movs r3, #0 8015bbc: 61bb str r3, [r7, #24] ret = HAL_ERROR; 8015bbe: 2301 movs r3, #1 8015bc0: 77bb strb r3, [r7, #30] break; 8015bc2: bf00 nop } if (pclk != 0U) 8015bc4: 69bb ldr r3, [r7, #24] 8015bc6: 2b00 cmp r3, #0 8015bc8: d018 beq.n 8015bfc { /* USARTDIV must be greater than or equal to 0d16 */ usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate)); 8015bca: 687b ldr r3, [r7, #4] 8015bcc: 685b ldr r3, [r3, #4] 8015bce: 085a lsrs r2, r3, #1 8015bd0: 69bb ldr r3, [r7, #24] 8015bd2: 441a add r2, r3 8015bd4: 687b ldr r3, [r7, #4] 8015bd6: 685b ldr r3, [r3, #4] 8015bd8: fbb2 f3f3 udiv r3, r2, r3 8015bdc: 613b str r3, [r7, #16] if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) 8015bde: 693b ldr r3, [r7, #16] 8015be0: 2b0f cmp r3, #15 8015be2: d909 bls.n 8015bf8 8015be4: 693b ldr r3, [r7, #16] 8015be6: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 8015bea: d205 bcs.n 8015bf8 { huart->Instance->BRR = (uint16_t)usartdiv; 8015bec: 687b ldr r3, [r7, #4] 8015bee: 681b ldr r3, [r3, #0] 8015bf0: 693a ldr r2, [r7, #16] 8015bf2: b292 uxth r2, r2 8015bf4: 60da str r2, [r3, #12] 8015bf6: e001 b.n 8015bfc } else { ret = HAL_ERROR; 8015bf8: 2301 movs r3, #1 8015bfa: 77bb strb r3, [r7, #30] } } /* Clear ISR function pointers */ huart->RxISR = NULL; 8015bfc: 687b ldr r3, [r7, #4] 8015bfe: 2200 movs r2, #0 8015c00: 665a str r2, [r3, #100] ; 0x64 huart->TxISR = NULL; 8015c02: 687b ldr r3, [r7, #4] 8015c04: 2200 movs r2, #0 8015c06: 669a str r2, [r3, #104] ; 0x68 return ret; 8015c08: 7fbb ldrb r3, [r7, #30] } 8015c0a: 4618 mov r0, r3 8015c0c: 3720 adds r7, #32 8015c0e: 46bd mov sp, r7 8015c10: bd80 pop {r7, pc} 8015c12: bf00 nop 8015c14: 00f42400 .word 0x00f42400 08015c18 : * @brief Configure the UART peripheral advanced features. * @param huart UART handle. * @retval None */ void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) { 8015c18: b480 push {r7} 8015c1a: b083 sub sp, #12 8015c1c: af00 add r7, sp, #0 8015c1e: 6078 str r0, [r7, #4] /* Check whether the set of advanced features to configure is properly set */ assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); /* if required, configure TX pin active level inversion */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) 8015c20: 687b ldr r3, [r7, #4] 8015c22: 6a5b ldr r3, [r3, #36] ; 0x24 8015c24: f003 0301 and.w r3, r3, #1 8015c28: 2b00 cmp r3, #0 8015c2a: d00a beq.n 8015c42 { assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); 8015c2c: 687b ldr r3, [r7, #4] 8015c2e: 681b ldr r3, [r3, #0] 8015c30: 687a ldr r2, [r7, #4] 8015c32: 6812 ldr r2, [r2, #0] 8015c34: 6852 ldr r2, [r2, #4] 8015c36: f422 3100 bic.w r1, r2, #131072 ; 0x20000 8015c3a: 687a ldr r2, [r7, #4] 8015c3c: 6a92 ldr r2, [r2, #40] ; 0x28 8015c3e: 430a orrs r2, r1 8015c40: 605a str r2, [r3, #4] } /* if required, configure RX pin active level inversion */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) 8015c42: 687b ldr r3, [r7, #4] 8015c44: 6a5b ldr r3, [r3, #36] ; 0x24 8015c46: f003 0302 and.w r3, r3, #2 8015c4a: 2b00 cmp r3, #0 8015c4c: d00a beq.n 8015c64 { assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); 8015c4e: 687b ldr r3, [r7, #4] 8015c50: 681b ldr r3, [r3, #0] 8015c52: 687a ldr r2, [r7, #4] 8015c54: 6812 ldr r2, [r2, #0] 8015c56: 6852 ldr r2, [r2, #4] 8015c58: f422 3180 bic.w r1, r2, #65536 ; 0x10000 8015c5c: 687a ldr r2, [r7, #4] 8015c5e: 6ad2 ldr r2, [r2, #44] ; 0x2c 8015c60: 430a orrs r2, r1 8015c62: 605a str r2, [r3, #4] } /* if required, configure data inversion */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) 8015c64: 687b ldr r3, [r7, #4] 8015c66: 6a5b ldr r3, [r3, #36] ; 0x24 8015c68: f003 0304 and.w r3, r3, #4 8015c6c: 2b00 cmp r3, #0 8015c6e: d00a beq.n 8015c86 { assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); 8015c70: 687b ldr r3, [r7, #4] 8015c72: 681b ldr r3, [r3, #0] 8015c74: 687a ldr r2, [r7, #4] 8015c76: 6812 ldr r2, [r2, #0] 8015c78: 6852 ldr r2, [r2, #4] 8015c7a: f422 2180 bic.w r1, r2, #262144 ; 0x40000 8015c7e: 687a ldr r2, [r7, #4] 8015c80: 6b12 ldr r2, [r2, #48] ; 0x30 8015c82: 430a orrs r2, r1 8015c84: 605a str r2, [r3, #4] } /* if required, configure RX/TX pins swap */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) 8015c86: 687b ldr r3, [r7, #4] 8015c88: 6a5b ldr r3, [r3, #36] ; 0x24 8015c8a: f003 0308 and.w r3, r3, #8 8015c8e: 2b00 cmp r3, #0 8015c90: d00a beq.n 8015ca8 { assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); 8015c92: 687b ldr r3, [r7, #4] 8015c94: 681b ldr r3, [r3, #0] 8015c96: 687a ldr r2, [r7, #4] 8015c98: 6812 ldr r2, [r2, #0] 8015c9a: 6852 ldr r2, [r2, #4] 8015c9c: f422 4100 bic.w r1, r2, #32768 ; 0x8000 8015ca0: 687a ldr r2, [r7, #4] 8015ca2: 6b52 ldr r2, [r2, #52] ; 0x34 8015ca4: 430a orrs r2, r1 8015ca6: 605a str r2, [r3, #4] } /* if required, configure RX overrun detection disabling */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) 8015ca8: 687b ldr r3, [r7, #4] 8015caa: 6a5b ldr r3, [r3, #36] ; 0x24 8015cac: f003 0310 and.w r3, r3, #16 8015cb0: 2b00 cmp r3, #0 8015cb2: d00a beq.n 8015cca { assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); 8015cb4: 687b ldr r3, [r7, #4] 8015cb6: 681b ldr r3, [r3, #0] 8015cb8: 687a ldr r2, [r7, #4] 8015cba: 6812 ldr r2, [r2, #0] 8015cbc: 6892 ldr r2, [r2, #8] 8015cbe: f422 5180 bic.w r1, r2, #4096 ; 0x1000 8015cc2: 687a ldr r2, [r7, #4] 8015cc4: 6b92 ldr r2, [r2, #56] ; 0x38 8015cc6: 430a orrs r2, r1 8015cc8: 609a str r2, [r3, #8] } /* if required, configure DMA disabling on reception error */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) 8015cca: 687b ldr r3, [r7, #4] 8015ccc: 6a5b ldr r3, [r3, #36] ; 0x24 8015cce: f003 0320 and.w r3, r3, #32 8015cd2: 2b00 cmp r3, #0 8015cd4: d00a beq.n 8015cec { assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); 8015cd6: 687b ldr r3, [r7, #4] 8015cd8: 681b ldr r3, [r3, #0] 8015cda: 687a ldr r2, [r7, #4] 8015cdc: 6812 ldr r2, [r2, #0] 8015cde: 6892 ldr r2, [r2, #8] 8015ce0: f422 5100 bic.w r1, r2, #8192 ; 0x2000 8015ce4: 687a ldr r2, [r7, #4] 8015ce6: 6bd2 ldr r2, [r2, #60] ; 0x3c 8015ce8: 430a orrs r2, r1 8015cea: 609a str r2, [r3, #8] } /* if required, configure auto Baud rate detection scheme */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) 8015cec: 687b ldr r3, [r7, #4] 8015cee: 6a5b ldr r3, [r3, #36] ; 0x24 8015cf0: f003 0340 and.w r3, r3, #64 ; 0x40 8015cf4: 2b00 cmp r3, #0 8015cf6: d01a beq.n 8015d2e { assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); 8015cf8: 687b ldr r3, [r7, #4] 8015cfa: 681b ldr r3, [r3, #0] 8015cfc: 687a ldr r2, [r7, #4] 8015cfe: 6812 ldr r2, [r2, #0] 8015d00: 6852 ldr r2, [r2, #4] 8015d02: f422 1180 bic.w r1, r2, #1048576 ; 0x100000 8015d06: 687a ldr r2, [r7, #4] 8015d08: 6c12 ldr r2, [r2, #64] ; 0x40 8015d0a: 430a orrs r2, r1 8015d0c: 605a str r2, [r3, #4] /* set auto Baudrate detection parameters if detection is enabled */ if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) 8015d0e: 687b ldr r3, [r7, #4] 8015d10: 6c1b ldr r3, [r3, #64] ; 0x40 8015d12: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000 8015d16: d10a bne.n 8015d2e { assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); 8015d18: 687b ldr r3, [r7, #4] 8015d1a: 681b ldr r3, [r3, #0] 8015d1c: 687a ldr r2, [r7, #4] 8015d1e: 6812 ldr r2, [r2, #0] 8015d20: 6852 ldr r2, [r2, #4] 8015d22: f422 01c0 bic.w r1, r2, #6291456 ; 0x600000 8015d26: 687a ldr r2, [r7, #4] 8015d28: 6c52 ldr r2, [r2, #68] ; 0x44 8015d2a: 430a orrs r2, r1 8015d2c: 605a str r2, [r3, #4] } } /* if required, configure MSB first on communication line */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) 8015d2e: 687b ldr r3, [r7, #4] 8015d30: 6a5b ldr r3, [r3, #36] ; 0x24 8015d32: f003 0380 and.w r3, r3, #128 ; 0x80 8015d36: 2b00 cmp r3, #0 8015d38: d00a beq.n 8015d50 { assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); 8015d3a: 687b ldr r3, [r7, #4] 8015d3c: 681b ldr r3, [r3, #0] 8015d3e: 687a ldr r2, [r7, #4] 8015d40: 6812 ldr r2, [r2, #0] 8015d42: 6852 ldr r2, [r2, #4] 8015d44: f422 2100 bic.w r1, r2, #524288 ; 0x80000 8015d48: 687a ldr r2, [r7, #4] 8015d4a: 6c92 ldr r2, [r2, #72] ; 0x48 8015d4c: 430a orrs r2, r1 8015d4e: 605a str r2, [r3, #4] } } 8015d50: bf00 nop 8015d52: 370c adds r7, #12 8015d54: 46bd mov sp, r7 8015d56: f85d 7b04 ldr.w r7, [sp], #4 8015d5a: 4770 bx lr 08015d5c : * @brief Check the UART Idle State. * @param huart UART handle. * @retval HAL status */ HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) { 8015d5c: b580 push {r7, lr} 8015d5e: b086 sub sp, #24 8015d60: af02 add r7, sp, #8 8015d62: 6078 str r0, [r7, #4] uint32_t tickstart; /* Initialize the UART ErrorCode */ huart->ErrorCode = HAL_UART_ERROR_NONE; 8015d64: 687b ldr r3, [r7, #4] 8015d66: 2200 movs r2, #0 8015d68: f8c3 2080 str.w r2, [r3, #128] ; 0x80 /* Init tickstart for timeout management */ tickstart = HAL_GetTick(); 8015d6c: f7fb fbfa bl 8011564 8015d70: 60f8 str r0, [r7, #12] /* Check if the Transmitter is enabled */ if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) 8015d72: 687b ldr r3, [r7, #4] 8015d74: 681b ldr r3, [r3, #0] 8015d76: 681b ldr r3, [r3, #0] 8015d78: f003 0308 and.w r3, r3, #8 8015d7c: 2b08 cmp r3, #8 8015d7e: d10e bne.n 8015d9e { /* Wait until TEACK flag is set */ if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK) 8015d80: f06f 437e mvn.w r3, #4261412864 ; 0xfe000000 8015d84: 9300 str r3, [sp, #0] 8015d86: 68fb ldr r3, [r7, #12] 8015d88: 2200 movs r2, #0 8015d8a: f44f 1100 mov.w r1, #2097152 ; 0x200000 8015d8e: 6878 ldr r0, [r7, #4] 8015d90: f000 f82d bl 8015dee 8015d94: 4603 mov r3, r0 8015d96: 2b00 cmp r3, #0 8015d98: d001 beq.n 8015d9e { /* Timeout occurred */ return HAL_TIMEOUT; 8015d9a: 2303 movs r3, #3 8015d9c: e023 b.n 8015de6 } } #if defined(USART_ISR_REACK) /* Check if the Receiver is enabled */ if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) 8015d9e: 687b ldr r3, [r7, #4] 8015da0: 681b ldr r3, [r3, #0] 8015da2: 681b ldr r3, [r3, #0] 8015da4: f003 0304 and.w r3, r3, #4 8015da8: 2b04 cmp r3, #4 8015daa: d10e bne.n 8015dca { /* Wait until REACK flag is set */ if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK) 8015dac: f06f 437e mvn.w r3, #4261412864 ; 0xfe000000 8015db0: 9300 str r3, [sp, #0] 8015db2: 68fb ldr r3, [r7, #12] 8015db4: 2200 movs r2, #0 8015db6: f44f 0180 mov.w r1, #4194304 ; 0x400000 8015dba: 6878 ldr r0, [r7, #4] 8015dbc: f000 f817 bl 8015dee 8015dc0: 4603 mov r3, r0 8015dc2: 2b00 cmp r3, #0 8015dc4: d001 beq.n 8015dca { /* Timeout occurred */ return HAL_TIMEOUT; 8015dc6: 2303 movs r3, #3 8015dc8: e00d b.n 8015de6 } } #endif /* Initialize the UART State */ huart->gState = HAL_UART_STATE_READY; 8015dca: 687b ldr r3, [r7, #4] 8015dcc: 2220 movs r2, #32 8015dce: 679a str r2, [r3, #120] ; 0x78 huart->RxState = HAL_UART_STATE_READY; 8015dd0: 687b ldr r3, [r7, #4] 8015dd2: 2220 movs r2, #32 8015dd4: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 8015dd6: 687b ldr r3, [r7, #4] 8015dd8: 2200 movs r2, #0 8015dda: 661a str r2, [r3, #96] ; 0x60 __HAL_UNLOCK(huart); 8015ddc: 687b ldr r3, [r7, #4] 8015dde: 2200 movs r2, #0 8015de0: f883 2074 strb.w r2, [r3, #116] ; 0x74 return HAL_OK; 8015de4: 2300 movs r3, #0 } 8015de6: 4618 mov r0, r3 8015de8: 3710 adds r7, #16 8015dea: 46bd mov sp, r7 8015dec: bd80 pop {r7, pc} 08015dee : * @param Timeout Timeout duration * @retval HAL status */ HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus Status, uint32_t Tickstart, uint32_t Timeout) { 8015dee: b580 push {r7, lr} 8015df0: b09c sub sp, #112 ; 0x70 8015df2: af00 add r7, sp, #0 8015df4: 60f8 str r0, [r7, #12] 8015df6: 60b9 str r1, [r7, #8] 8015df8: 603b str r3, [r7, #0] 8015dfa: 4613 mov r3, r2 8015dfc: 71fb strb r3, [r7, #7] /* Wait until flag is set */ while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) 8015dfe: e0a5 b.n 8015f4c { /* Check for the Timeout */ if (Timeout != HAL_MAX_DELAY) 8015e00: 6fbb ldr r3, [r7, #120] ; 0x78 8015e02: f1b3 3fff cmp.w r3, #4294967295 8015e06: f000 80a1 beq.w 8015f4c { if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 8015e0a: f7fb fbab bl 8011564 8015e0e: 4602 mov r2, r0 8015e10: 683b ldr r3, [r7, #0] 8015e12: 1ad2 subs r2, r2, r3 8015e14: 6fbb ldr r3, [r7, #120] ; 0x78 8015e16: 429a cmp r2, r3 8015e18: d802 bhi.n 8015e20 8015e1a: 6fbb ldr r3, [r7, #120] ; 0x78 8015e1c: 2b00 cmp r3, #0 8015e1e: d13e bne.n 8015e9e { /* Disable TXE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts for the interrupt process */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE)); 8015e20: 68fb ldr r3, [r7, #12] 8015e22: 681b ldr r3, [r3, #0] 8015e24: 653b str r3, [r7, #80] ; 0x50 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8015e26: 6d3b ldr r3, [r7, #80] ; 0x50 8015e28: e853 3f00 ldrex r3, [r3] 8015e2c: 64fb str r3, [r7, #76] ; 0x4c return(result); 8015e2e: 6cfb ldr r3, [r7, #76] ; 0x4c 8015e30: f423 73d0 bic.w r3, r3, #416 ; 0x1a0 8015e34: 667b str r3, [r7, #100] ; 0x64 8015e36: 68fb ldr r3, [r7, #12] 8015e38: 681b ldr r3, [r3, #0] 8015e3a: 461a mov r2, r3 8015e3c: 6e7b ldr r3, [r7, #100] ; 0x64 8015e3e: 65fb str r3, [r7, #92] ; 0x5c 8015e40: 65ba str r2, [r7, #88] ; 0x58 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8015e42: 6db9 ldr r1, [r7, #88] ; 0x58 8015e44: 6dfa ldr r2, [r7, #92] ; 0x5c 8015e46: e841 2300 strex r3, r2, [r1] 8015e4a: 657b str r3, [r7, #84] ; 0x54 return(result); 8015e4c: 6d7b ldr r3, [r7, #84] ; 0x54 8015e4e: 2b00 cmp r3, #0 8015e50: d1e6 bne.n 8015e20 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8015e52: 68fb ldr r3, [r7, #12] 8015e54: 681b ldr r3, [r3, #0] 8015e56: 3308 adds r3, #8 8015e58: 63fb str r3, [r7, #60] ; 0x3c __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8015e5a: 6bfb ldr r3, [r7, #60] ; 0x3c 8015e5c: e853 3f00 ldrex r3, [r3] 8015e60: 63bb str r3, [r7, #56] ; 0x38 return(result); 8015e62: 6bbb ldr r3, [r7, #56] ; 0x38 8015e64: f023 0301 bic.w r3, r3, #1 8015e68: 663b str r3, [r7, #96] ; 0x60 8015e6a: 68fb ldr r3, [r7, #12] 8015e6c: 681b ldr r3, [r3, #0] 8015e6e: 3308 adds r3, #8 8015e70: 6e3a ldr r2, [r7, #96] ; 0x60 8015e72: 64ba str r2, [r7, #72] ; 0x48 8015e74: 647b str r3, [r7, #68] ; 0x44 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8015e76: 6c79 ldr r1, [r7, #68] ; 0x44 8015e78: 6cba ldr r2, [r7, #72] ; 0x48 8015e7a: e841 2300 strex r3, r2, [r1] 8015e7e: 643b str r3, [r7, #64] ; 0x40 return(result); 8015e80: 6c3b ldr r3, [r7, #64] ; 0x40 8015e82: 2b00 cmp r3, #0 8015e84: d1e5 bne.n 8015e52 huart->gState = HAL_UART_STATE_READY; 8015e86: 68fb ldr r3, [r7, #12] 8015e88: 2220 movs r2, #32 8015e8a: 679a str r2, [r3, #120] ; 0x78 huart->RxState = HAL_UART_STATE_READY; 8015e8c: 68fb ldr r3, [r7, #12] 8015e8e: 2220 movs r2, #32 8015e90: 67da str r2, [r3, #124] ; 0x7c __HAL_UNLOCK(huart); 8015e92: 68fb ldr r3, [r7, #12] 8015e94: 2200 movs r2, #0 8015e96: f883 2074 strb.w r2, [r3, #116] ; 0x74 return HAL_TIMEOUT; 8015e9a: 2303 movs r3, #3 8015e9c: e067 b.n 8015f6e } if (READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) 8015e9e: 68fb ldr r3, [r7, #12] 8015ea0: 681b ldr r3, [r3, #0] 8015ea2: 681b ldr r3, [r3, #0] 8015ea4: f003 0304 and.w r3, r3, #4 8015ea8: 2b00 cmp r3, #0 8015eaa: d04f beq.n 8015f4c { if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) 8015eac: 68fb ldr r3, [r7, #12] 8015eae: 681b ldr r3, [r3, #0] 8015eb0: 69db ldr r3, [r3, #28] 8015eb2: f403 6300 and.w r3, r3, #2048 ; 0x800 8015eb6: f5b3 6f00 cmp.w r3, #2048 ; 0x800 8015eba: d147 bne.n 8015f4c { /* Clear Receiver Timeout flag*/ __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); 8015ebc: 68fb ldr r3, [r7, #12] 8015ebe: 681b ldr r3, [r3, #0] 8015ec0: f44f 6200 mov.w r2, #2048 ; 0x800 8015ec4: 621a str r2, [r3, #32] /* Disable TXE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts for the interrupt process */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE)); 8015ec6: 68fb ldr r3, [r7, #12] 8015ec8: 681b ldr r3, [r3, #0] 8015eca: 62bb str r3, [r7, #40] ; 0x28 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8015ecc: 6abb ldr r3, [r7, #40] ; 0x28 8015ece: e853 3f00 ldrex r3, [r3] 8015ed2: 627b str r3, [r7, #36] ; 0x24 return(result); 8015ed4: 6a7b ldr r3, [r7, #36] ; 0x24 8015ed6: f423 73d0 bic.w r3, r3, #416 ; 0x1a0 8015eda: 66fb str r3, [r7, #108] ; 0x6c 8015edc: 68fb ldr r3, [r7, #12] 8015ede: 681b ldr r3, [r3, #0] 8015ee0: 461a mov r2, r3 8015ee2: 6efb ldr r3, [r7, #108] ; 0x6c 8015ee4: 637b str r3, [r7, #52] ; 0x34 8015ee6: 633a str r2, [r7, #48] ; 0x30 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8015ee8: 6b39 ldr r1, [r7, #48] ; 0x30 8015eea: 6b7a ldr r2, [r7, #52] ; 0x34 8015eec: e841 2300 strex r3, r2, [r1] 8015ef0: 62fb str r3, [r7, #44] ; 0x2c return(result); 8015ef2: 6afb ldr r3, [r7, #44] ; 0x2c 8015ef4: 2b00 cmp r3, #0 8015ef6: d1e6 bne.n 8015ec6 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8015ef8: 68fb ldr r3, [r7, #12] 8015efa: 681b ldr r3, [r3, #0] 8015efc: 3308 adds r3, #8 8015efe: 617b str r3, [r7, #20] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8015f00: 697b ldr r3, [r7, #20] 8015f02: e853 3f00 ldrex r3, [r3] 8015f06: 613b str r3, [r7, #16] return(result); 8015f08: 693b ldr r3, [r7, #16] 8015f0a: f023 0301 bic.w r3, r3, #1 8015f0e: 66bb str r3, [r7, #104] ; 0x68 8015f10: 68fb ldr r3, [r7, #12] 8015f12: 681b ldr r3, [r3, #0] 8015f14: 3308 adds r3, #8 8015f16: 6eba ldr r2, [r7, #104] ; 0x68 8015f18: 623a str r2, [r7, #32] 8015f1a: 61fb str r3, [r7, #28] __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8015f1c: 69f9 ldr r1, [r7, #28] 8015f1e: 6a3a ldr r2, [r7, #32] 8015f20: e841 2300 strex r3, r2, [r1] 8015f24: 61bb str r3, [r7, #24] return(result); 8015f26: 69bb ldr r3, [r7, #24] 8015f28: 2b00 cmp r3, #0 8015f2a: d1e5 bne.n 8015ef8 huart->gState = HAL_UART_STATE_READY; 8015f2c: 68fb ldr r3, [r7, #12] 8015f2e: 2220 movs r2, #32 8015f30: 679a str r2, [r3, #120] ; 0x78 huart->RxState = HAL_UART_STATE_READY; 8015f32: 68fb ldr r3, [r7, #12] 8015f34: 2220 movs r2, #32 8015f36: 67da str r2, [r3, #124] ; 0x7c huart->ErrorCode = HAL_UART_ERROR_RTO; 8015f38: 68fb ldr r3, [r7, #12] 8015f3a: 2220 movs r2, #32 8015f3c: f8c3 2080 str.w r2, [r3, #128] ; 0x80 /* Process Unlocked */ __HAL_UNLOCK(huart); 8015f40: 68fb ldr r3, [r7, #12] 8015f42: 2200 movs r2, #0 8015f44: f883 2074 strb.w r2, [r3, #116] ; 0x74 return HAL_TIMEOUT; 8015f48: 2303 movs r3, #3 8015f4a: e010 b.n 8015f6e while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) 8015f4c: 68fb ldr r3, [r7, #12] 8015f4e: 681b ldr r3, [r3, #0] 8015f50: 69da ldr r2, [r3, #28] 8015f52: 68bb ldr r3, [r7, #8] 8015f54: 401a ands r2, r3 8015f56: 68bb ldr r3, [r7, #8] 8015f58: 429a cmp r2, r3 8015f5a: bf0c ite eq 8015f5c: 2301 moveq r3, #1 8015f5e: 2300 movne r3, #0 8015f60: b2db uxtb r3, r3 8015f62: 461a mov r2, r3 8015f64: 79fb ldrb r3, [r7, #7] 8015f66: 429a cmp r2, r3 8015f68: f43f af4a beq.w 8015e00 } } } } return HAL_OK; 8015f6c: 2300 movs r3, #0 } 8015f6e: 4618 mov r0, r3 8015f70: 3770 adds r7, #112 ; 0x70 8015f72: 46bd mov sp, r7 8015f74: bd80 pop {r7, pc} 08015f76 : * @brief End ongoing Rx transfer on UART peripheral (following error detection or Reception completion). * @param huart UART handle. * @retval None */ static void UART_EndRxTransfer(UART_HandleTypeDef *huart) { 8015f76: b480 push {r7} 8015f78: b095 sub sp, #84 ; 0x54 8015f7a: af00 add r7, sp, #0 8015f7c: 6078 str r0, [r7, #4] /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); 8015f7e: 687b ldr r3, [r7, #4] 8015f80: 681b ldr r3, [r3, #0] 8015f82: 637b str r3, [r7, #52] ; 0x34 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8015f84: 6b7b ldr r3, [r7, #52] ; 0x34 8015f86: e853 3f00 ldrex r3, [r3] 8015f8a: 633b str r3, [r7, #48] ; 0x30 return(result); 8015f8c: 6b3b ldr r3, [r7, #48] ; 0x30 8015f8e: f423 7390 bic.w r3, r3, #288 ; 0x120 8015f92: 64fb str r3, [r7, #76] ; 0x4c 8015f94: 687b ldr r3, [r7, #4] 8015f96: 681b ldr r3, [r3, #0] 8015f98: 461a mov r2, r3 8015f9a: 6cfb ldr r3, [r7, #76] ; 0x4c 8015f9c: 643b str r3, [r7, #64] ; 0x40 8015f9e: 63fa str r2, [r7, #60] ; 0x3c __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8015fa0: 6bf9 ldr r1, [r7, #60] ; 0x3c 8015fa2: 6c3a ldr r2, [r7, #64] ; 0x40 8015fa4: e841 2300 strex r3, r2, [r1] 8015fa8: 63bb str r3, [r7, #56] ; 0x38 return(result); 8015faa: 6bbb ldr r3, [r7, #56] ; 0x38 8015fac: 2b00 cmp r3, #0 8015fae: d1e6 bne.n 8015f7e ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8015fb0: 687b ldr r3, [r7, #4] 8015fb2: 681b ldr r3, [r3, #0] 8015fb4: 3308 adds r3, #8 8015fb6: 623b str r3, [r7, #32] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8015fb8: 6a3b ldr r3, [r7, #32] 8015fba: e853 3f00 ldrex r3, [r3] 8015fbe: 61fb str r3, [r7, #28] return(result); 8015fc0: 69fb ldr r3, [r7, #28] 8015fc2: f023 0301 bic.w r3, r3, #1 8015fc6: 64bb str r3, [r7, #72] ; 0x48 8015fc8: 687b ldr r3, [r7, #4] 8015fca: 681b ldr r3, [r3, #0] 8015fcc: 3308 adds r3, #8 8015fce: 6cba ldr r2, [r7, #72] ; 0x48 8015fd0: 62fa str r2, [r7, #44] ; 0x2c 8015fd2: 62bb str r3, [r7, #40] ; 0x28 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8015fd4: 6ab9 ldr r1, [r7, #40] ; 0x28 8015fd6: 6afa ldr r2, [r7, #44] ; 0x2c 8015fd8: e841 2300 strex r3, r2, [r1] 8015fdc: 627b str r3, [r7, #36] ; 0x24 return(result); 8015fde: 6a7b ldr r3, [r7, #36] ; 0x24 8015fe0: 2b00 cmp r3, #0 8015fe2: d1e5 bne.n 8015fb0 /* In case of reception waiting for IDLE event, disable also the IDLE IE interrupt source */ if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 8015fe4: 687b ldr r3, [r7, #4] 8015fe6: 6e1b ldr r3, [r3, #96] ; 0x60 8015fe8: 2b01 cmp r3, #1 8015fea: d118 bne.n 801601e { ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 8015fec: 687b ldr r3, [r7, #4] 8015fee: 681b ldr r3, [r3, #0] 8015ff0: 60fb str r3, [r7, #12] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8015ff2: 68fb ldr r3, [r7, #12] 8015ff4: e853 3f00 ldrex r3, [r3] 8015ff8: 60bb str r3, [r7, #8] return(result); 8015ffa: 68bb ldr r3, [r7, #8] 8015ffc: f023 0310 bic.w r3, r3, #16 8016000: 647b str r3, [r7, #68] ; 0x44 8016002: 687b ldr r3, [r7, #4] 8016004: 681b ldr r3, [r3, #0] 8016006: 461a mov r2, r3 8016008: 6c7b ldr r3, [r7, #68] ; 0x44 801600a: 61bb str r3, [r7, #24] 801600c: 617a str r2, [r7, #20] __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 801600e: 6979 ldr r1, [r7, #20] 8016010: 69ba ldr r2, [r7, #24] 8016012: e841 2300 strex r3, r2, [r1] 8016016: 613b str r3, [r7, #16] return(result); 8016018: 693b ldr r3, [r7, #16] 801601a: 2b00 cmp r3, #0 801601c: d1e6 bne.n 8015fec } /* At end of Rx process, restore huart->RxState to Ready */ huart->RxState = HAL_UART_STATE_READY; 801601e: 687b ldr r3, [r7, #4] 8016020: 2220 movs r2, #32 8016022: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 8016024: 687b ldr r3, [r7, #4] 8016026: 2200 movs r2, #0 8016028: 661a str r2, [r3, #96] ; 0x60 /* Reset RxIsr function pointer */ huart->RxISR = NULL; 801602a: 687b ldr r3, [r7, #4] 801602c: 2200 movs r2, #0 801602e: 665a str r2, [r3, #100] ; 0x64 } 8016030: bf00 nop 8016032: 3754 adds r7, #84 ; 0x54 8016034: 46bd mov sp, r7 8016036: f85d 7b04 ldr.w r7, [sp], #4 801603a: 4770 bx lr 0801603c : * (To be called at end of DMA Abort procedure following error occurrence). * @param hdma DMA handle. * @retval None */ static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma) { 801603c: b580 push {r7, lr} 801603e: b084 sub sp, #16 8016040: af00 add r7, sp, #0 8016042: 6078 str r0, [r7, #4] UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 8016044: 687b ldr r3, [r7, #4] 8016046: 6b9b ldr r3, [r3, #56] ; 0x38 8016048: 60fb str r3, [r7, #12] huart->RxXferCount = 0U; 801604a: 68fb ldr r3, [r7, #12] 801604c: 2200 movs r2, #0 801604e: f8a3 205a strh.w r2, [r3, #90] ; 0x5a huart->TxXferCount = 0U; 8016052: 68fb ldr r3, [r7, #12] 8016054: 2200 movs r2, #0 8016056: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered error callback*/ huart->ErrorCallback(huart); #else /*Call legacy weak error callback*/ HAL_UART_ErrorCallback(huart); 801605a: 68f8 ldr r0, [r7, #12] 801605c: f7f9 ff32 bl 800fec4 #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } 8016060: bf00 nop 8016062: 3710 adds r7, #16 8016064: 46bd mov sp, r7 8016066: bd80 pop {r7, pc} 08016068 : * Abort still ongoing for Rx DMA Handle. * @param hdma DMA handle. * @retval None */ static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma) { 8016068: b580 push {r7, lr} 801606a: b084 sub sp, #16 801606c: af00 add r7, sp, #0 801606e: 6078 str r0, [r7, #4] UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 8016070: 687b ldr r3, [r7, #4] 8016072: 6b9b ldr r3, [r3, #56] ; 0x38 8016074: 60fb str r3, [r7, #12] huart->hdmatx->XferAbortCallback = NULL; 8016076: 68fb ldr r3, [r7, #12] 8016078: 6edb ldr r3, [r3, #108] ; 0x6c 801607a: 2200 movs r2, #0 801607c: 651a str r2, [r3, #80] ; 0x50 /* Check if an Abort process is still ongoing */ if (huart->hdmarx != NULL) 801607e: 68fb ldr r3, [r7, #12] 8016080: 6f1b ldr r3, [r3, #112] ; 0x70 8016082: 2b00 cmp r3, #0 8016084: d004 beq.n 8016090 { if (huart->hdmarx->XferAbortCallback != NULL) 8016086: 68fb ldr r3, [r7, #12] 8016088: 6f1b ldr r3, [r3, #112] ; 0x70 801608a: 6d1b ldr r3, [r3, #80] ; 0x50 801608c: 2b00 cmp r3, #0 801608e: d11c bne.n 80160ca return; } } /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callback */ huart->TxXferCount = 0U; 8016090: 68fb ldr r3, [r7, #12] 8016092: 2200 movs r2, #0 8016094: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 huart->RxXferCount = 0U; 8016098: 68fb ldr r3, [r7, #12] 801609a: 2200 movs r2, #0 801609c: f8a3 205a strh.w r2, [r3, #90] ; 0x5a /* Reset errorCode */ huart->ErrorCode = HAL_UART_ERROR_NONE; 80160a0: 68fb ldr r3, [r7, #12] 80160a2: 2200 movs r2, #0 80160a4: f8c3 2080 str.w r2, [r3, #128] ; 0x80 /* Clear the Error flags in the ICR register */ __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); 80160a8: 68fb ldr r3, [r7, #12] 80160aa: 681b ldr r3, [r3, #0] 80160ac: 220f movs r2, #15 80160ae: 621a str r2, [r3, #32] /* Restore huart->gState and huart->RxState to Ready */ huart->gState = HAL_UART_STATE_READY; 80160b0: 68fb ldr r3, [r7, #12] 80160b2: 2220 movs r2, #32 80160b4: 679a str r2, [r3, #120] ; 0x78 huart->RxState = HAL_UART_STATE_READY; 80160b6: 68fb ldr r3, [r7, #12] 80160b8: 2220 movs r2, #32 80160ba: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 80160bc: 68fb ldr r3, [r7, #12] 80160be: 2200 movs r2, #0 80160c0: 661a str r2, [r3, #96] ; 0x60 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /* Call registered Abort complete callback */ huart->AbortCpltCallback(huart); #else /* Call legacy weak Abort complete callback */ HAL_UART_AbortCpltCallback(huart); 80160c2: 68f8 ldr r0, [r7, #12] 80160c4: f7ff fb28 bl 8015718 80160c8: e000 b.n 80160cc return; 80160ca: bf00 nop #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } 80160cc: 3710 adds r7, #16 80160ce: 46bd mov sp, r7 80160d0: bd80 pop {r7, pc} 080160d2 : * Abort still ongoing for Tx DMA Handle. * @param hdma DMA handle. * @retval None */ static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma) { 80160d2: b580 push {r7, lr} 80160d4: b084 sub sp, #16 80160d6: af00 add r7, sp, #0 80160d8: 6078 str r0, [r7, #4] UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 80160da: 687b ldr r3, [r7, #4] 80160dc: 6b9b ldr r3, [r3, #56] ; 0x38 80160de: 60fb str r3, [r7, #12] huart->hdmarx->XferAbortCallback = NULL; 80160e0: 68fb ldr r3, [r7, #12] 80160e2: 6f1b ldr r3, [r3, #112] ; 0x70 80160e4: 2200 movs r2, #0 80160e6: 651a str r2, [r3, #80] ; 0x50 /* Check if an Abort process is still ongoing */ if (huart->hdmatx != NULL) 80160e8: 68fb ldr r3, [r7, #12] 80160ea: 6edb ldr r3, [r3, #108] ; 0x6c 80160ec: 2b00 cmp r3, #0 80160ee: d004 beq.n 80160fa { if (huart->hdmatx->XferAbortCallback != NULL) 80160f0: 68fb ldr r3, [r7, #12] 80160f2: 6edb ldr r3, [r3, #108] ; 0x6c 80160f4: 6d1b ldr r3, [r3, #80] ; 0x50 80160f6: 2b00 cmp r3, #0 80160f8: d124 bne.n 8016144 return; } } /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callback */ huart->TxXferCount = 0U; 80160fa: 68fb ldr r3, [r7, #12] 80160fc: 2200 movs r2, #0 80160fe: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 huart->RxXferCount = 0U; 8016102: 68fb ldr r3, [r7, #12] 8016104: 2200 movs r2, #0 8016106: f8a3 205a strh.w r2, [r3, #90] ; 0x5a /* Reset errorCode */ huart->ErrorCode = HAL_UART_ERROR_NONE; 801610a: 68fb ldr r3, [r7, #12] 801610c: 2200 movs r2, #0 801610e: f8c3 2080 str.w r2, [r3, #128] ; 0x80 /* Clear the Error flags in the ICR register */ __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); 8016112: 68fb ldr r3, [r7, #12] 8016114: 681b ldr r3, [r3, #0] 8016116: 220f movs r2, #15 8016118: 621a str r2, [r3, #32] /* Discard the received data */ __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); 801611a: 68fb ldr r3, [r7, #12] 801611c: 681b ldr r3, [r3, #0] 801611e: 68fa ldr r2, [r7, #12] 8016120: 6812 ldr r2, [r2, #0] 8016122: 6992 ldr r2, [r2, #24] 8016124: f042 0208 orr.w r2, r2, #8 8016128: 619a str r2, [r3, #24] /* Restore huart->gState and huart->RxState to Ready */ huart->gState = HAL_UART_STATE_READY; 801612a: 68fb ldr r3, [r7, #12] 801612c: 2220 movs r2, #32 801612e: 679a str r2, [r3, #120] ; 0x78 huart->RxState = HAL_UART_STATE_READY; 8016130: 68fb ldr r3, [r7, #12] 8016132: 2220 movs r2, #32 8016134: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 8016136: 68fb ldr r3, [r7, #12] 8016138: 2200 movs r2, #0 801613a: 661a str r2, [r3, #96] ; 0x60 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /* Call registered Abort complete callback */ huart->AbortCpltCallback(huart); #else /* Call legacy weak Abort complete callback */ HAL_UART_AbortCpltCallback(huart); 801613c: 68f8 ldr r0, [r7, #12] 801613e: f7ff faeb bl 8015718 8016142: e000 b.n 8016146 return; 8016144: bf00 nop #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } 8016146: 3710 adds r7, #16 8016148: 46bd mov sp, r7 801614a: bd80 pop {r7, pc} 0801614c : * interruptions have been enabled by HAL_UART_Transmit_IT(). * @param huart UART handle. * @retval None */ static void UART_TxISR_8BIT(UART_HandleTypeDef *huart) { 801614c: b480 push {r7} 801614e: b08f sub sp, #60 ; 0x3c 8016150: af00 add r7, sp, #0 8016152: 6078 str r0, [r7, #4] /* Check that a Tx process is ongoing */ if (huart->gState == HAL_UART_STATE_BUSY_TX) 8016154: 687b ldr r3, [r7, #4] 8016156: 6f9b ldr r3, [r3, #120] ; 0x78 8016158: 2b21 cmp r3, #33 ; 0x21 801615a: d14c bne.n 80161f6 { if (huart->TxXferCount == 0U) 801615c: 687b ldr r3, [r7, #4] 801615e: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8016162: b29b uxth r3, r3 8016164: 2b00 cmp r3, #0 8016166: d132 bne.n 80161ce { /* Disable the UART Transmit Data Register Empty Interrupt */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE); 8016168: 687b ldr r3, [r7, #4] 801616a: 681b ldr r3, [r3, #0] 801616c: 623b str r3, [r7, #32] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 801616e: 6a3b ldr r3, [r7, #32] 8016170: e853 3f00 ldrex r3, [r3] 8016174: 61fb str r3, [r7, #28] return(result); 8016176: 69fb ldr r3, [r7, #28] 8016178: f023 0380 bic.w r3, r3, #128 ; 0x80 801617c: 637b str r3, [r7, #52] ; 0x34 801617e: 687b ldr r3, [r7, #4] 8016180: 681b ldr r3, [r3, #0] 8016182: 461a mov r2, r3 8016184: 6b7b ldr r3, [r7, #52] ; 0x34 8016186: 62fb str r3, [r7, #44] ; 0x2c 8016188: 62ba str r2, [r7, #40] ; 0x28 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 801618a: 6ab9 ldr r1, [r7, #40] ; 0x28 801618c: 6afa ldr r2, [r7, #44] ; 0x2c 801618e: e841 2300 strex r3, r2, [r1] 8016192: 627b str r3, [r7, #36] ; 0x24 return(result); 8016194: 6a7b ldr r3, [r7, #36] ; 0x24 8016196: 2b00 cmp r3, #0 8016198: d1e6 bne.n 8016168 /* Enable the UART Transmit Complete Interrupt */ ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); 801619a: 687b ldr r3, [r7, #4] 801619c: 681b ldr r3, [r3, #0] 801619e: 60fb str r3, [r7, #12] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 80161a0: 68fb ldr r3, [r7, #12] 80161a2: e853 3f00 ldrex r3, [r3] 80161a6: 60bb str r3, [r7, #8] return(result); 80161a8: 68bb ldr r3, [r7, #8] 80161aa: f043 0340 orr.w r3, r3, #64 ; 0x40 80161ae: 633b str r3, [r7, #48] ; 0x30 80161b0: 687b ldr r3, [r7, #4] 80161b2: 681b ldr r3, [r3, #0] 80161b4: 461a mov r2, r3 80161b6: 6b3b ldr r3, [r7, #48] ; 0x30 80161b8: 61bb str r3, [r7, #24] 80161ba: 617a str r2, [r7, #20] __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 80161bc: 6979 ldr r1, [r7, #20] 80161be: 69ba ldr r2, [r7, #24] 80161c0: e841 2300 strex r3, r2, [r1] 80161c4: 613b str r3, [r7, #16] return(result); 80161c6: 693b ldr r3, [r7, #16] 80161c8: 2b00 cmp r3, #0 80161ca: d1e6 bne.n 801619a huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); huart->pTxBuffPtr++; huart->TxXferCount--; } } } 80161cc: e013 b.n 80161f6 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); 80161ce: 687b ldr r3, [r7, #4] 80161d0: 681b ldr r3, [r3, #0] 80161d2: 687a ldr r2, [r7, #4] 80161d4: 6cd2 ldr r2, [r2, #76] ; 0x4c 80161d6: 7812 ldrb r2, [r2, #0] 80161d8: 629a str r2, [r3, #40] ; 0x28 huart->pTxBuffPtr++; 80161da: 687b ldr r3, [r7, #4] 80161dc: 6cdb ldr r3, [r3, #76] ; 0x4c 80161de: 1c5a adds r2, r3, #1 80161e0: 687b ldr r3, [r7, #4] 80161e2: 64da str r2, [r3, #76] ; 0x4c huart->TxXferCount--; 80161e4: 687b ldr r3, [r7, #4] 80161e6: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 80161ea: b29b uxth r3, r3 80161ec: 3b01 subs r3, #1 80161ee: b29a uxth r2, r3 80161f0: 687b ldr r3, [r7, #4] 80161f2: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 } 80161f6: bf00 nop 80161f8: 373c adds r7, #60 ; 0x3c 80161fa: 46bd mov sp, r7 80161fc: f85d 7b04 ldr.w r7, [sp], #4 8016200: 4770 bx lr 08016202 : * interruptions have been enabled by HAL_UART_Transmit_IT(). * @param huart UART handle. * @retval None */ static void UART_TxISR_16BIT(UART_HandleTypeDef *huart) { 8016202: b480 push {r7} 8016204: b091 sub sp, #68 ; 0x44 8016206: af00 add r7, sp, #0 8016208: 6078 str r0, [r7, #4] const uint16_t *tmp; /* Check that a Tx process is ongoing */ if (huart->gState == HAL_UART_STATE_BUSY_TX) 801620a: 687b ldr r3, [r7, #4] 801620c: 6f9b ldr r3, [r3, #120] ; 0x78 801620e: 2b21 cmp r3, #33 ; 0x21 8016210: d150 bne.n 80162b4 { if (huart->TxXferCount == 0U) 8016212: 687b ldr r3, [r7, #4] 8016214: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8016218: b29b uxth r3, r3 801621a: 2b00 cmp r3, #0 801621c: d132 bne.n 8016284 { /* Disable the UART Transmit Data Register Empty Interrupt */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE); 801621e: 687b ldr r3, [r7, #4] 8016220: 681b ldr r3, [r3, #0] 8016222: 627b str r3, [r7, #36] ; 0x24 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8016224: 6a7b ldr r3, [r7, #36] ; 0x24 8016226: e853 3f00 ldrex r3, [r3] 801622a: 623b str r3, [r7, #32] return(result); 801622c: 6a3b ldr r3, [r7, #32] 801622e: f023 0380 bic.w r3, r3, #128 ; 0x80 8016232: 63fb str r3, [r7, #60] ; 0x3c 8016234: 687b ldr r3, [r7, #4] 8016236: 681b ldr r3, [r3, #0] 8016238: 461a mov r2, r3 801623a: 6bfb ldr r3, [r7, #60] ; 0x3c 801623c: 633b str r3, [r7, #48] ; 0x30 801623e: 62fa str r2, [r7, #44] ; 0x2c __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8016240: 6af9 ldr r1, [r7, #44] ; 0x2c 8016242: 6b3a ldr r2, [r7, #48] ; 0x30 8016244: e841 2300 strex r3, r2, [r1] 8016248: 62bb str r3, [r7, #40] ; 0x28 return(result); 801624a: 6abb ldr r3, [r7, #40] ; 0x28 801624c: 2b00 cmp r3, #0 801624e: d1e6 bne.n 801621e /* Enable the UART Transmit Complete Interrupt */ ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); 8016250: 687b ldr r3, [r7, #4] 8016252: 681b ldr r3, [r3, #0] 8016254: 613b str r3, [r7, #16] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8016256: 693b ldr r3, [r7, #16] 8016258: e853 3f00 ldrex r3, [r3] 801625c: 60fb str r3, [r7, #12] return(result); 801625e: 68fb ldr r3, [r7, #12] 8016260: f043 0340 orr.w r3, r3, #64 ; 0x40 8016264: 63bb str r3, [r7, #56] ; 0x38 8016266: 687b ldr r3, [r7, #4] 8016268: 681b ldr r3, [r3, #0] 801626a: 461a mov r2, r3 801626c: 6bbb ldr r3, [r7, #56] ; 0x38 801626e: 61fb str r3, [r7, #28] 8016270: 61ba str r2, [r7, #24] __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8016272: 69b9 ldr r1, [r7, #24] 8016274: 69fa ldr r2, [r7, #28] 8016276: e841 2300 strex r3, r2, [r1] 801627a: 617b str r3, [r7, #20] return(result); 801627c: 697b ldr r3, [r7, #20] 801627e: 2b00 cmp r3, #0 8016280: d1e6 bne.n 8016250 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); huart->pTxBuffPtr += 2U; huart->TxXferCount--; } } } 8016282: e017 b.n 80162b4 tmp = (const uint16_t *) huart->pTxBuffPtr; 8016284: 687b ldr r3, [r7, #4] 8016286: 6cdb ldr r3, [r3, #76] ; 0x4c 8016288: 637b str r3, [r7, #52] ; 0x34 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); 801628a: 687b ldr r3, [r7, #4] 801628c: 681b ldr r3, [r3, #0] 801628e: 6b7a ldr r2, [r7, #52] ; 0x34 8016290: 8812 ldrh r2, [r2, #0] 8016292: f3c2 0208 ubfx r2, r2, #0, #9 8016296: 629a str r2, [r3, #40] ; 0x28 huart->pTxBuffPtr += 2U; 8016298: 687b ldr r3, [r7, #4] 801629a: 6cdb ldr r3, [r3, #76] ; 0x4c 801629c: 1c9a adds r2, r3, #2 801629e: 687b ldr r3, [r7, #4] 80162a0: 64da str r2, [r3, #76] ; 0x4c huart->TxXferCount--; 80162a2: 687b ldr r3, [r7, #4] 80162a4: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 80162a8: b29b uxth r3, r3 80162aa: 3b01 subs r3, #1 80162ac: b29a uxth r2, r3 80162ae: 687b ldr r3, [r7, #4] 80162b0: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 } 80162b4: bf00 nop 80162b6: 3744 adds r7, #68 ; 0x44 80162b8: 46bd mov sp, r7 80162ba: f85d 7b04 ldr.w r7, [sp], #4 80162be: 4770 bx lr 080162c0 : * @param huart pointer to a UART_HandleTypeDef structure that contains * the configuration information for the specified UART module. * @retval None */ static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) { 80162c0: b580 push {r7, lr} 80162c2: b088 sub sp, #32 80162c4: af00 add r7, sp, #0 80162c6: 6078 str r0, [r7, #4] /* Disable the UART Transmit Complete Interrupt */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); 80162c8: 687b ldr r3, [r7, #4] 80162ca: 681b ldr r3, [r3, #0] 80162cc: 60fb str r3, [r7, #12] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 80162ce: 68fb ldr r3, [r7, #12] 80162d0: e853 3f00 ldrex r3, [r3] 80162d4: 60bb str r3, [r7, #8] return(result); 80162d6: 68bb ldr r3, [r7, #8] 80162d8: f023 0340 bic.w r3, r3, #64 ; 0x40 80162dc: 61fb str r3, [r7, #28] 80162de: 687b ldr r3, [r7, #4] 80162e0: 681b ldr r3, [r3, #0] 80162e2: 461a mov r2, r3 80162e4: 69fb ldr r3, [r7, #28] 80162e6: 61bb str r3, [r7, #24] 80162e8: 617a str r2, [r7, #20] __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 80162ea: 6979 ldr r1, [r7, #20] 80162ec: 69ba ldr r2, [r7, #24] 80162ee: e841 2300 strex r3, r2, [r1] 80162f2: 613b str r3, [r7, #16] return(result); 80162f4: 693b ldr r3, [r7, #16] 80162f6: 2b00 cmp r3, #0 80162f8: d1e6 bne.n 80162c8 /* Tx process is ended, restore huart->gState to Ready */ huart->gState = HAL_UART_STATE_READY; 80162fa: 687b ldr r3, [r7, #4] 80162fc: 2220 movs r2, #32 80162fe: 679a str r2, [r3, #120] ; 0x78 /* Cleat TxISR function pointer */ huart->TxISR = NULL; 8016300: 687b ldr r3, [r7, #4] 8016302: 2200 movs r2, #0 8016304: 669a str r2, [r3, #104] ; 0x68 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered Tx complete callback*/ huart->TxCpltCallback(huart); #else /*Call legacy weak Tx complete callback*/ HAL_UART_TxCpltCallback(huart); 8016306: 6878 ldr r0, [r7, #4] 8016308: f7f9 fdb6 bl 800fe78 #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } 801630c: bf00 nop 801630e: 3720 adds r7, #32 8016310: 46bd mov sp, r7 8016312: bd80 pop {r7, pc} 08016314 : .section .text.Reset_Handler .weak Reset_Handler .type Reset_Handler, %function Reset_Handler: ldr sp, =_estack /* set stack pointer */ 8016314: f8df d034 ldr.w sp, [pc, #52] ; 801634c /* Copy the data segment initializers from flash to SRAM */ movs r1, #0 8016318: 2100 movs r1, #0 b LoopCopyDataInit 801631a: e003 b.n 8016324 0801631c : CopyDataInit: ldr r3, =_sidata 801631c: 4b0c ldr r3, [pc, #48] ; (8016350 ) ldr r3, [r3, r1] 801631e: 585b ldr r3, [r3, r1] str r3, [r0, r1] 8016320: 5043 str r3, [r0, r1] adds r1, r1, #4 8016322: 3104 adds r1, #4 08016324 : LoopCopyDataInit: ldr r0, =_sdata 8016324: 480b ldr r0, [pc, #44] ; (8016354 ) ldr r3, =_edata 8016326: 4b0c ldr r3, [pc, #48] ; (8016358 ) adds r2, r0, r1 8016328: 1842 adds r2, r0, r1 cmp r2, r3 801632a: 429a cmp r2, r3 bcc CopyDataInit 801632c: d3f6 bcc.n 801631c ldr r2, =_sbss 801632e: 4a0b ldr r2, [pc, #44] ; (801635c ) b LoopFillZerobss 8016330: e002 b.n 8016338 08016332 : /* Zero fill the bss segment. */ FillZerobss: movs r3, #0 8016332: 2300 movs r3, #0 str r3, [r2], #4 8016334: f842 3b04 str.w r3, [r2], #4 08016338 : LoopFillZerobss: ldr r3, = _ebss 8016338: 4b09 ldr r3, [pc, #36] ; (8016360 ) cmp r2, r3 801633a: 429a cmp r2, r3 bcc FillZerobss 801633c: d3f9 bcc.n 8016332 /* Call the clock system initialization function.*/ bl SystemInit 801633e: f7f9 fadd bl 800f8fc /* Call static constructors */ bl __libc_init_array 8016342: f000 f85f bl 8016404 <__libc_init_array> /* Call the application's entry point.*/ bl main 8016346: f7ef fbcb bl 8005ae0
bx lr 801634a: 4770 bx lr ldr sp, =_estack /* set stack pointer */ 801634c: 20080000 .word 0x20080000 ldr r3, =_sidata 8016350: 0802fcb4 .word 0x0802fcb4 ldr r0, =_sdata 8016354: 20020000 .word 0x20020000 ldr r3, =_edata 8016358: 200209a8 .word 0x200209a8 ldr r2, =_sbss 801635c: 200209a8 .word 0x200209a8 ldr r3, = _ebss 8016360: 2006c6e4 .word 0x2006c6e4 08016364 : * @retval None */ .section .text.Default_Handler,"ax",%progbits Default_Handler: Infinite_Loop: b Infinite_Loop 8016364: e7fe b.n 8016364 ... 08016368 : 8016368: ee10 2a10 vmov r2, s0 801636c: f3c2 51c7 ubfx r1, r2, #23, #8 8016370: 397f subs r1, #127 ; 0x7f 8016372: 2916 cmp r1, #22 8016374: b510 push {r4, lr} 8016376: ee10 3a10 vmov r3, s0 801637a: dc0c bgt.n 8016396 801637c: 2900 cmp r1, #0 801637e: da05 bge.n 801638c 8016380: f002 4300 and.w r3, r2, #2147483648 ; 0x80000000 8016384: 6003 str r3, [r0, #0] 8016386: ee00 2a10 vmov s0, r2 801638a: bd10 pop {r4, pc} 801638c: 4c09 ldr r4, [pc, #36] ; (80163b4 ) 801638e: fa44 f101 asr.w r1, r4, r1 8016392: 420a tst r2, r1 8016394: d103 bne.n 801639e 8016396: 6002 str r2, [r0, #0] 8016398: f003 4200 and.w r2, r3, #2147483648 ; 0x80000000 801639c: e7f3 b.n 8016386 801639e: ea22 0301 bic.w r3, r2, r1 80163a2: ee07 3a10 vmov s14, r3 80163a6: ee70 7a47 vsub.f32 s15, s0, s14 80163aa: 6003 str r3, [r0, #0] 80163ac: ee17 2a90 vmov r2, s15 80163b0: e7e9 b.n 8016386 80163b2: bf00 nop 80163b4: 007fffff .word 0x007fffff 080163b8 : 80163b8: ee10 0a10 vmov r0, s0 80163bc: f3c0 53c7 ubfx r3, r0, #23, #8 80163c0: f1a3 027f sub.w r2, r3, #127 ; 0x7f 80163c4: 2a16 cmp r2, #22 80163c6: dc15 bgt.n 80163f4 80163c8: 2a00 cmp r2, #0 80163ca: da08 bge.n 80163de 80163cc: 3201 adds r2, #1 80163ce: f000 4300 and.w r3, r0, #2147483648 ; 0x80000000 80163d2: d101 bne.n 80163d8 80163d4: f043 537e orr.w r3, r3, #1065353216 ; 0x3f800000 80163d8: ee00 3a10 vmov s0, r3 80163dc: 4770 bx lr 80163de: 4908 ldr r1, [pc, #32] ; (8016400 ) 80163e0: 4111 asrs r1, r2 80163e2: 4208 tst r0, r1 80163e4: d0fa beq.n 80163dc 80163e6: f44f 0380 mov.w r3, #4194304 ; 0x400000 80163ea: 4113 asrs r3, r2 80163ec: 4403 add r3, r0 80163ee: ea23 0301 bic.w r3, r3, r1 80163f2: e7f1 b.n 80163d8 80163f4: 2a80 cmp r2, #128 ; 0x80 80163f6: d1f1 bne.n 80163dc 80163f8: ee30 0a00 vadd.f32 s0, s0, s0 80163fc: 4770 bx lr 80163fe: bf00 nop 8016400: 007fffff .word 0x007fffff 08016404 <__libc_init_array>: 8016404: b570 push {r4, r5, r6, lr} 8016406: 4e0d ldr r6, [pc, #52] ; (801643c <__libc_init_array+0x38>) 8016408: 4c0d ldr r4, [pc, #52] ; (8016440 <__libc_init_array+0x3c>) 801640a: 1ba4 subs r4, r4, r6 801640c: 10a4 asrs r4, r4, #2 801640e: 2500 movs r5, #0 8016410: 42a5 cmp r5, r4 8016412: d109 bne.n 8016428 <__libc_init_array+0x24> 8016414: 4e0b ldr r6, [pc, #44] ; (8016444 <__libc_init_array+0x40>) 8016416: 4c0c ldr r4, [pc, #48] ; (8016448 <__libc_init_array+0x44>) 8016418: f000 f834 bl 8016484 <_init> 801641c: 1ba4 subs r4, r4, r6 801641e: 10a4 asrs r4, r4, #2 8016420: 2500 movs r5, #0 8016422: 42a5 cmp r5, r4 8016424: d105 bne.n 8016432 <__libc_init_array+0x2e> 8016426: bd70 pop {r4, r5, r6, pc} 8016428: f856 3025 ldr.w r3, [r6, r5, lsl #2] 801642c: 4798 blx r3 801642e: 3501 adds r5, #1 8016430: e7ee b.n 8016410 <__libc_init_array+0xc> 8016432: f856 3025 ldr.w r3, [r6, r5, lsl #2] 8016436: 4798 blx r3 8016438: 3501 adds r5, #1 801643a: e7f2 b.n 8016422 <__libc_init_array+0x1e> 801643c: 0802fcac .word 0x0802fcac 8016440: 0802fcac .word 0x0802fcac 8016444: 0802fcac .word 0x0802fcac 8016448: 0802fcb0 .word 0x0802fcb0 0801644c : 801644c: b510 push {r4, lr} 801644e: 1e43 subs r3, r0, #1 8016450: 440a add r2, r1 8016452: 4291 cmp r1, r2 8016454: d100 bne.n 8016458 8016456: bd10 pop {r4, pc} 8016458: f811 4b01 ldrb.w r4, [r1], #1 801645c: f803 4f01 strb.w r4, [r3, #1]! 8016460: e7f7 b.n 8016452 08016462 : 8016462: 4402 add r2, r0 8016464: 4603 mov r3, r0 8016466: 4293 cmp r3, r2 8016468: d100 bne.n 801646c 801646a: 4770 bx lr 801646c: f803 1b01 strb.w r1, [r3], #1 8016470: e7f9 b.n 8016466 08016472 : 8016472: 4603 mov r3, r0 8016474: f811 2b01 ldrb.w r2, [r1], #1 8016478: f803 2b01 strb.w r2, [r3], #1 801647c: 2a00 cmp r2, #0 801647e: d1f9 bne.n 8016474 8016480: 4770 bx lr ... 08016484 <_init>: 8016484: b5f8 push {r3, r4, r5, r6, r7, lr} 8016486: bf00 nop 8016488: bcf8 pop {r3, r4, r5, r6, r7} 801648a: bc08 pop {r3} 801648c: 469e mov lr, r3 801648e: 4770 bx lr 08016490 <_fini>: 8016490: b5f8 push {r3, r4, r5, r6, r7, lr} 8016492: bf00 nop 8016494: bcf8 pop {r3, r4, r5, r6, r7} 8016496: bc08 pop {r3} 8016498: 469e mov lr, r3 801649a: 4770 bx lr